software product lines
DESCRIPTION
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, ColombiaTRANSCRIPT
SOFTWARE PRODUCT LINES
Jose Gregorio Hernández HoyosChristian David Álvarez García
Fáber Danilo Giraldo Velásquez, MSc
SOFTWARE PRODUCT LINES
Jose Gregorio Hernández HoyosChristian David Álvarez García
Fáber Danilo Giraldo Velásquez, MSc
3
Agenda
• Introducción• Conceptos Básicos• Aplicaciones• Beneficios• Conclusiones• Bibliografía• Preguntas
4
El éxito del negocio Requiere Software Sofisticado
Introducción
5
6
Conceptos BásicosLa 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
7
Desarrollo de Software Basado en Componentes
Las aplicaciones se crean mediante la integración de componentes nuevos, legados o de terceros (COTS)
8
Modelo Básico de una SPL
Producción
9
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
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
12
Líneas de Productos de Software No esoCopiar 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 o la 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
13
AplicacionesCelsiustech: 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.
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
16
17
18
BeneficiosLa entrega de productos de software de una manera• Más rápida• Económica • Con una mejor calidadLas 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
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 productoReducción en el esfuerzo promedio requerido para desarrollar y
mantener los productosReducción en el costo promedio de producción de los productosIncremento en el número total de productos que pueden ser
efectivamente desplegados y mantenidos
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
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
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
23
|
24
Aspectos Fundamentales
El paradigma de desarrollo de software SPL requiere que las empresas que lo adopten consideren:• Aspectos conceptualesConceptos en los que las SPLse fundamentan
• Aspectos tecnológicosQué tecnologías son fundamentales para desarrollar y mantener activos y productos de software
• Aspectos metodológicosCómo desarrollar y mantener los activos y productos de software
• Aspectos organizativosCómo debe la empresa organizarse internamente
• Aspectos gerencialesCómo gestionar los proyectos de desarrollo de activos y productos
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.
26
ConclusionesPara manejar esta complejidad se requiere considerar
diferentes aspectos:
Conceptuales Tecnológicos Metodológicos Organizacionales Gerenciales
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/
28
¿Preguntas?
30