Diapositivas utilizadas en la ponencia "Software Product Lines" en la Jornada de Actualización Tecnológica, Ingeniería de Sistemas y Computación. Universidad del Quindío.Armenia, Quindio, Colombia
6. Conceptos Básicos
La idea básica:
• Ensamblaje de partes de software previamente elaboradas
• Inspirada en los procesos de producción de sistemas físicos
• Producción de aviones, vehículos, computadores, aparatos
electrónicos, etc.
• Fundamentada en la Reutilización de Software
• Asume la existencia de una industria de partes
6
7. Desarrollo de Software Basado en
Componentes
7
Las aplicaciones se crean mediante la integración de componentes nuevos,
legados o de terceros (COTS)
10. El desarrollo de SPL consta de dos procesos básicos:
• La Ingeniería del Dominio, donde se establece cuáles son las partes
comunes y las variables, se construye un conjunto de activos como
partes de los sistemas.
• La Ingeniería de la Aplicación, donde los activos son reutilizados
sistemáticamente para derivar productos específicos.
De este modo se reducen costes y tiempo de desarrollo.
Procesos primordiales en SPL
10
11. El desarrollo de SPL tiene características que lo distinguen del
desarrollo de productos individuales. En concreto, la variabilidad, la
reusabilidad, la comunalidad, o la composicionabilidad son conceptos
específicos de este enfoque para la producción de software. Incluso, el
modelo de ciclo de vida de un producto desarrollado mediante SPL es
diferente al desarrollo de un producto único. De ahí que no sea posible
reutilizar con facilidad los métodos y técnicas de evaluación de la
calidad propuesta para productos individuales.
Características principales
11
12. Líneas de Productos de Software No es
oCopiar y Pegar: el desarrollo de un solo sistema con la reutilización
omodificar el código según sea necesario sólo para el sistema único
oLas bibliotecas de reutilización que contienen algoritmos, módulos, objetos o
componentes
oSólo el desarrollo basada en componentes o basada en servicios
ola selección de componentes o servicios de una biblioteca en la casa, el
mercado, o la Web sin foco arquitectura
oSólo una arquitectura configurable
oSólo un conjunto de normas técnicas
oRestringir opciones sin una estrategia de reutilización basado en la
arquitectura 12
13. Aplicaciones
13
Celsiustech: Sistema de Buques 2000
Una familia de 55 sistemas de la nave
• Necesidad de desarrolladores bajaron de 210 a
aproximadamente 30.
• Tiempo para el campo se redujo de aproximadamente 9 años a cerca de
3 años.
• Los objetivos de costos y el calendario son previsiblemente cumplido.
14. Cummins Inc.: Sistemas de Control de Diesel
Más de 20 grupos de productos, con más de 1000 aplicaciones de
motores independientes
• El tiempo de ciclo del producto se redujo de 250 personas-mes a unos
pocos
meses-persona.
• Los objetivos de calidad se superan.
• La satisfacción del cliente es alta.
• se cumplen los horarios de producto.
14
15. Nokia Mobile Phones
Las líneas de producto con 25 a 30 productos nuevos por año en comparación con 5 por año en un principio.
Al otro lado de los productos hay
• un número variable de llaves
• diferentes tamaños de pantalla
• diferentes conjuntos de características
• 58 idiomas soportados
• 130 países servidos
• múltiples protocolos
• las necesidades de compatibilidad con versiones anteriores
• características configurables
• las necesidades de comportamiento del producto
• El cambio después de la liberación
15
18. Beneficios
La entrega de productos de software de una manera
• Más rápida
• Económica
• Con una mejor calidad
Las SPL producen mejoras en:
• Tiempo de entrega del producto (time to market)
• Costos de ingeniería
• Tamaño del portafolio de productos
• Reducción de las tasas de defectos
• Calidad de los productos
18
19. Beneficios tácticos y estratégicos
(Krueger, 2006):
Beneficios tácticos de ingeniería:
Reducción en el tiempo promedio de creación y entrega de nuevos
productos
Reducción en el número promedio de defectos por producto
Reducción en el esfuerzo promedio requerido para desarrollar y mantener
los productos
Reducción en el costo promedio de producción de los productos
Incremento en el número total de productos que pueden ser efectivamente
desplegados y mantenidos
19
20. Beneficios tácticos y estratégicos
(Cont):Beneficios estratégicos de negocio:
Reducción en el tiempo de entrega (time-to-market) y el tiempo de retorno
(time-to-revenue) de nuevos productos
Mejoras en el valor competitivo del producto
Márgenes mayores de ganancias
20
21. Beneficios tácticos y estratégicos
(Cont):Beneficios estratégicos de negocio:
Mejor calidad de los productos
Mejoras en la reputación de la empresa
Mayor escalabilidad del modelo de negocios en términos de productos y
mercados
21
22. Beneficios tácticos y estratégicos
(Cont):Beneficios estratégicos de negocio:
Mayor agilidad para expandir el negocio a nuevos mercados
Reducción de riesgos en la entrega de productos
22
24. Aspectos Fundamentales
El paradigma de desarrollo de software SPL requiere que las empresas que lo adopten consideren:
• Aspectos conceptuales
Conceptos en los que las SPLse fundamentan
• Aspectos tecnológicos
Qué tecnologías son fundamentales para desarrollar y mantener activos y productos de software
• Aspectos metodológicos
Cómo desarrollar y mantener los activos y productos de software
• Aspectos organizativos
Cómo debe la empresa organizarse internamente
• Aspectos gerenciales
Cómo gestionar los proyectos de desarrollo de activos y productos 24
25. Conclusiones
Las Líneas de Productos de Software representan el estado
del arte en Reutilización del Software.
La implantación del paradigma SPL en una empresa es un
proceso complejo.
25
26. Conclusiones
Para manejar esta complejidad se requiere considerar
diferentes aspectos:
Conceptuales
Tecnológicos
Metodológicos
Organizacionales
Gerenciales
26
27. Bibliografía
• Krueger, Ch. Introduction to Software Product Lines.[on line]
www.softwareproductlines.com
• Clements and Northrop 2001] P. Clements and L. Northrop; Software
Product Lines: Practices and Patterns, Addison-Wesley, Reading,
Massachusetts, 2001.
• Linden, F. J., Schmid, K., & Rommes, E. (2007). SOFTWARE PRODUCT
LINES IN ACTION. New York: Springer.
• http://msdn.microsoft.com/es-es/library/ee943825.aspx
• https://www.sei.cmu.edu/productlines/tools/framework/
27