Líneas de productos de software ( SPL ), o desarrollo de líneas de productos de software , se refiere a métodos, herramientas y técnicas de ingeniería de software para crear una colección de sistemas de software similares a partir de un conjunto compartido de activos de software utilizando un medio de producción común . [1] [2]
El Carnegie Mellon Software Engineering Institute define una línea de productos de software como "un conjunto de sistemas intensivos en software que comparten un conjunto común de características administradas que satisfacen las necesidades específicas de una misión o segmento de mercado en particular y que se desarrollan a partir de un conjunto común de activos de una manera prescrita ". [3]
Descripción
Los fabricantes han empleado durante mucho tiempo técnicas de ingeniería análogas para crear una línea de productos similares utilizando una fábrica común que ensambla y configura piezas diseñadas para ser reutilizadas en toda la línea de productos. Por ejemplo, los fabricantes de automóviles pueden crear variaciones únicas de un modelo de automóvil utilizando un solo grupo de piezas cuidadosamente diseñadas y una fábrica diseñada específicamente para configurar y ensamblar esas piezas.
La característica que distingue las líneas de productos de software de los esfuerzos anteriores es la reutilización de software predictiva frente a la oportunista . En lugar de colocar componentes de software generales en una biblioteca con la esperanza de que surjan oportunidades de reutilización, las líneas de productos de software solo requieren la creación de artefactos de software cuando se predice la reutilización en uno o más productos de una línea de productos bien definida. [4]
Los avances recientes en el campo de la línea de productos de software han demostrado que la aplicación estrecha y estratégica de estos conceptos puede producir mejoras de orden de magnitud en la capacidad de ingeniería de software. [ cita requerida ] El resultado es a menudo un salto discontinuo en la ventaja comercial competitiva [ cita requerida ] , similar al visto cuando los fabricantes adoptan la producción en masa y los paradigmas de personalización en masa .
Desarrollo
Si bien los primeros métodos de la línea de productos de software en la génesis del campo proporcionaron las mejores métricas de mejora de la ingeniería de software vistas en cuatro décadas, la última generación de métodos y herramientas de la línea de productos de software está exhibiendo mejoras aún mayores. Los métodos de nueva generación están extendiendo los beneficios más allá de la creación de productos hacia el mantenimiento y la evolución , reduciendo la complejidad general del desarrollo de la línea de productos, aumentando la escalabilidad de las carteras de la línea de productos y permitiendo a las organizaciones hacer la transición a la práctica de la línea de productos de software con órdenes de magnitud menos tiempo. costo y esfuerzo.
Recientemente, los conceptos de las líneas de productos de software se han ampliado para abarcar sistemas e ingeniería de software de forma integral. Esto se refleja en la aparición de familias de estándares industriales como ISO 265xx sobre prácticas de ingeniería de sistemas y software para líneas de productos. [5]
Ver también
- Fábrica de software
- Ingeniería de dominio
- Modelo de característica
- Programación orientada a funciones : un paradigma para el desarrollo de líneas de productos de software
- Ingeniería de familia de productos
Referencias
- ^ Líneas de productos de software Sitio web del Instituto de ingeniería de software Carnegie Mellon
- ^ Charles W. koushik, Introducción a las líneas de productos de software Archivado el 4 de febrero de 2012en la Wayback Machine.
- ^ Líneas de productos de software Sitio web del Instituto de ingeniería de software Carnegie Mellon
- ^ Charles W. Krueger, Introducción a la práctica emergente del desarrollo de líneas de productos de software
- ^ ISO 26550: 2015 - Ingeniería de software y sistemas - Modelo de referencia para la ingeniería y gestión de la línea de productos.
enlaces externos
- [1] Conceptos básicos de las líneas de productos de software, página 19. Sitio web del Carnegie Mellon Software Engineering Institute
- Sitio web de la comunidad de líneas de productos de software y foros de discusión
- Introducción a la práctica emergente del desarrollo de líneas de productos de software
- Proyecto AMPLE
- Curso de ingeniería de línea de productos de software, B. Tekinerdogan, Bilkent University