Articulo de referencia

Ingeniería de familias de productos

La ingeniería de familias de productos ( PFE ), también conocida como ingeniería de líneas de productos (PLE) , se basa en las ideas de la " ingeniería de dominio " creadas por ...

La ingeniería de familias de productos ( PFE ), también conocida como ingeniería de líneas de productos (PLE) , se basa en las ideas de la " ingeniería de dominio " creadas por el Software Engineering Institute , término acuñado por James Neighbors en su tesis doctoral de 1980 [ 1 ] en la Universidad de California, Irvine . Las líneas de productos de software son bastante comunes en nuestra vida diaria, pero antes de que una familia de productos pueda establecerse con éxito, se debe seguir un proceso extenso. Este proceso se conoce como ingeniería de familias de productos.

La ingeniería de familias de productos se define como un método que crea la arquitectura subyacente de la plataforma de productos de una organización . Proporciona una arquitectura basada en elementos comunes y variaciones planificadas. Las distintas variantes de producto se derivan de la familia de productos básica, lo que permite reutilizar y diferenciar los productos dentro de la misma. La ingeniería de familias de productos es conceptualmente similar al uso generalizado de plataformas de vehículos en la industria automotriz .

La ingeniería de familias de productos es un enfoque relativamente nuevo para la creación de nuevos productos, que recientemente ha evolucionado hacia la ingeniería de líneas de productos basada en modelos (MBPLE), haciendo hincapié en la importancia de un enfoque centrado en modelos en la ingeniería de líneas de productos. Se centra en el proceso de ingeniería de nuevos productos de manera que sea posible reutilizar componentes y aplicar variabilidad con costes y tiempo reducidos. La ingeniería de familias de productos se basa en la reutilización de componentes y estructuras en la mayor medida posible, según las normas ISO/IEC 26550/2015 y la más reciente ISO/IEC 26580/2021, que introdujo el concepto de ingeniería de líneas de productos basada en características.

Varios estudios han demostrado que utilizar un enfoque de ingeniería de familias de productos para el desarrollo de productos puede tener varios beneficios. [ 2 ] Aquí hay una lista de algunos de ellos:

  • Mayor productividad
  • Mayor calidad
  • Mayor rapidez para lanzar productos al mercado.
  • Menores necesidades de mano de obra

El caso de Nokia que se menciona a continuación también ilustra estas ventajas.

En 2025, la publicación del libro Model-Based Product Line Engineering (MBPLE): The feature-based path to product lines success de Marco Forlingieri, Tim Weilkiens y Hugo Guillermo Chalé-Gongora formalizó los fundamentos de la disciplina, incluyendo mejores prácticas y nuevos casos industriales. [ 3 ]

Proceso general

El proceso de ingeniería de la familia de productos consta de varias fases. Las tres fases principales son:

El proceso se ha modelado con un nivel de abstracción superior. Esto tiene la ventaja de que puede aplicarse a todo tipo de líneas y familias de productos, no solo a software . El modelo puede aplicarse a cualquier familia de productos. La Figura 1 (abajo) muestra un modelo del proceso completo. A continuación, se describe el proceso en detalle. La descripción del proceso incluye explicaciones de las actividades y los conceptos importantes que se utilizan. Todos los conceptos que aparecen en cursiva se explican en la Tabla 1.

Fase 1: gestión de productos

La primera fase consiste en la puesta en marcha de todo el proceso. En esta fase se definen aspectos importantes, especialmente en lo que respecta a los aspectos económicos. Esta fase se encarga de trazar las estrategias de mercado y definir el alcance , que indica qué debe y qué no debe incluirse en la familia de productos.

Evaluar la visión empresarial

Durante esta primera actividad, se recopila y evalúa toda la información contextual relevante para definir el alcance de la línea de productos. Es importante definir una estrategia de mercado clara y tener en cuenta la información del mercado externo, como las demandas de los consumidores. La actividad debe generar un documento de contexto que contenga directrices , restricciones y la estrategia del producto .

Definir el alcance de la línea de productos

Se aplican técnicas de delimitación para definir qué aspectos se incluyen en el alcance. Esto se basa en el paso anterior del proceso, donde se han tenido en cuenta factores externos. El resultado es una descripción del portafolio de productos , que incluye una lista de productos actuales y futuros , así como una hoja de ruta de productos .

Cabe debatir si la fase 1, la gestión de productos, forma parte del proceso de ingeniería de la familia de productos, ya que podría considerarse un proceso empresarial independiente más centrado en los aspectos de gestión que en los del producto. Sin embargo, la fase 2 requiere información importante de esta fase, dado que gran parte de su alcance se define en ella. Por lo tanto, desde esta perspectiva, es fundamental integrar la fase de gestión de productos (fase 1) en todo el proceso como base para el proceso de ingeniería de dominio.

Fase 2: ingeniería de dominio

Durante las fases de ingeniería de dominio, se recopilan los requisitos variables y comunes para toda la línea de productos. El objetivo es establecer una plataforma reutilizable. El resultado de esta fase es un conjunto de requisitos comunes y variables para todos los productos de la línea.

Analizar los requisitos del dominio

Esta actividad incluye todas las actividades para analizar el dominio con respecto a los requisitos conceptuales. Los requisitos se categorizan y se dividen en dos nuevas actividades. El resultado es un documento con el análisis del dominio .

Como se puede observar en la Figura 1, el proceso de definición de requisitos comunes es un proceso paralelo al de definición de requisitos variables. Ambas actividades se realizan simultáneamente.

Definir requisitos comunes

Incluye todas las actividades para obtener y documentar los requisitos comunes de la línea de productos, lo que da como resultado un documento con requisitos comunes reutilizables .

Definir requisitos variables

Incluye todas las actividades para obtener y documentar los requisitos variables de la línea de productos, lo que da como resultado un documento con requisitos variables .

Dominio del diseño

Esta etapa del proceso consiste en actividades para definir la arquitectura de referencia de la línea de productos. Esto genera una estructura abstracta para todos los productos de la línea.

Implementar dominio

Durante esta etapa se crea un diseño detallado de los componentes reutilizables y se procede a la implementación de dichos componentes.

Dominio de prueba

Valida y verifica la reutilización de los componentes. Los componentes se prueban según sus especificaciones. Tras probar satisfactoriamente todos los componentes en diferentes casos de uso y escenarios, se completa la fase de ingeniería de dominio.

Fase 3: ingeniería de producto

En la fase final, se diseña el producto X. Este producto X aprovecha las características comunes y las diferencias de la fase de ingeniería de dominio, por lo que se deriva de la plataforma establecida en dicha fase. Básicamente, incorpora todos los requisitos comunes y las similitudes de la fase anterior, además de sus propios requisitos variables. Utilizando la base de la fase de ingeniería de dominio y los requisitos individuales de la fase de ingeniería de producto, se puede construir un producto nuevo y completo. Una vez que el producto ha sido probado y aprobado exhaustivamente, se puede entregar el producto X.

Definir los requisitos del producto

Desarrollar la especificación de requisitos del producto para cada producto individual y reutilizar los requisitos de la fase anterior.

Diseño de producto

Todas las actividades para producir la arquitectura del producto . Se utiliza la arquitectura de referencia del paso "dominio de diseño", se seleccionan y configuran las partes necesarias de la arquitectura de referencia y se incorporan adaptaciones específicas del producto.

Construir producto

Durante este proceso se construye el producto, utilizando selecciones y configuraciones de los componentes reutilizables .

Producto de prueba

Durante esta etapa, el producto se verifica y valida según sus especificaciones. Un informe de prueba proporciona información sobre todas las pruebas realizadas, lo que permite identificar posibles errores. Si el producto no se acepta en la siguiente etapa, el proceso vuelve a la fase de "fabricación del producto", que en la Figura 1 se indica como "[insatisfecho]".

Entregar y dar soporte al producto

El último paso es la aceptación del producto final. Si ha superado las pruebas y se ha aprobado que está completo, se puede entregar. Si el producto no cumple con las especificaciones, debe reconstruirse y someterse a nuevas pruebas.

La siguiente figura muestra el proceso general de ingeniería de familias de productos, tal como se describió anteriormente. Se trata de una descripción general completa del proceso, con todos los conceptos asociados a las diferentes etapas.

Diagrama de datos del proceso

En el lado izquierdo se ha dibujado todo el proceso de arriba abajo. Todas las actividades del lado izquierdo están vinculadas a los conceptos del lado derecho mediante líneas punteadas. Cada concepto tiene un número que refleja su relación con otros conceptos.

Figura 1: Diagrama de datos del proceso

Lista de conceptos

A continuación se explicará la lista de conceptos. La mayoría de las definiciones se han extraído de Pohl, Bockle y Linden (2005), y también se han añadido algunas definiciones nuevas.

Tabla 1: Lista de conceptos

Ejemplo

Existen buenos ejemplos del uso de la ingeniería de familias de productos, que han tenido bastante éxito. El modelo abstracto de ingeniería de familias de productos permite diversos usos, la mayoría relacionados con el mercado de la electrónica de consumo . A continuación, se presenta un ejemplo de aplicación del proceso de ingeniería de líneas de productos, basado en la experiencia real de Nokia.

Nokia fabrica distintos tipos de productos. Entre ellos se encuentra una familia de teléfonos móviles que actualmente incorpora entre 25 y 30 nuevos productos cada año. Estos productos se venden en todo el mundo, lo que exige compatibilidad con numerosos idiomas e interfaces de usuario. Un problema fundamental es la necesidad de admitir varias interfaces de usuario diferentes, y dado que los nuevos productos se suceden con mucha rapidez, esto debe hacerse de la forma más eficiente posible. La ingeniería de familias de productos permite crear software para los distintos productos y utilizar la variabilidad para personalizar el software para cada teléfono móvil.

El caso de Nokia es comparable al de una línea de productos de software convencional . Durante la primera fase, la gestión del producto , se define el alcance de las diferentes series de teléfonos móviles. En la segunda fase, la ingeniería de dominio , se definen los requisitos para la familia y para los distintos tipos de teléfonos, por ejemplo, las series 6100/8300. En esta fase, se establecen los requisitos de software, que sirven de base para toda la familia de productos. Esto agiliza el proceso general de desarrollo del software. La última fase, la ingeniería de producto , se centra en los distintos tipos de teléfonos. Los requisitos de la fase anterior se utilizan para crear software específico para el tipo de teléfono que se está desarrollando.

El uso de una línea de productos le dio a Nokia la oportunidad de aumentar su producción de nuevos modelos de teléfonos móviles de 5-10 a alrededor de 30. [ 4 ]

Véase también

Referencias

  1. https://escholarship.org/uc/item/5687j6g6 Construcción de software mediante componentes, consultado el 9 de enero de 2021
  2. Clements P. y Northrop LM (2003). Líneas de productos de software. Presentación del Instituto de Ingeniería de Software de Carnegie Mellon. Recuperado el 26 de marzo de 2006 de: http://www.sei.cmu.edu/
  3. Forlingieri M., Weilkiens T. y Chalé-Gongora HG (2025). Ingeniería de líneas de productos basada en modelos (MBPLE): El camino basado en características hacia el éxito de las líneas de productos. Wiley & Sons.
  4. Instituto de Ingeniería de Software de Carnegie Mellon (SEI). Líneas de productos de software. Recuperado el 17 de febrero de 2006 de: https://web.archive.org/web/20171005173029/http://www.sei.cmu.edu/productlines/
  • Jan Bosch , Diseño y uso de arquitecturas de software: adopción y evolución de un enfoque de línea de productos, ACM Press/Addison-Wesley Publishing Co., Nueva York, NY, 2000 ISBN 978-0201674941https://www.amazon.com/Design-Use-Software-Architectures-Bosch/dp/0201674947
  • Instituto Europeo de Software (ESI). Recuperado el 17 de febrero de 2006 de: https://web.archive.org/web/20070203151901/http://www.esi.es/Families/famResults.html
  • Pohl K., Bockle G. y Linden F. van der (2005). Ingeniería de línea de productos de software. Berlín, Heidelberg, Nueva York: Springer-Verlag. ISBN 978-3-540-28901-2https://www.amazon.com/Software-Product-Line-Engineering-Foundations-dp-3540243720/dp/3540243720
  • Líneas de productos de software del Instituto de Ingeniería de Software (SEI) de Carnegie Mellon (Copia archivada)
  • Instituto Europeo de Software (ESI)
  • Líneas de productos de software
  • Curso de Ingeniería de Líneas de Productos de Software, B. Tekinerdogan, Universidad de Bilkent
  • Universidad de Trier, Informática