Líneas de Productos de Software (LPS)

Descripción del Curso

Este curso cubre los fundamentos y técnicas del desarrollo de software basado en el paradigma de Líneas de Productos de Software (LPS). Las LPS son una alternativa para aprovechar los elementos comunes de un conjunto de productos, a la vez que se gestionan eficientemente las variaciones de los mismos. Además, ofrecen un cambio estratégico al pasar de una producción artesanal, a una producción en masa con personalización de productos y servicios. Este paradigma ofrece beneficios como la reutilización, la disminución de errores y la disminución de tiempos y costos de producción. En el curso se estudian los procesos de Ingeniería de Dominio e Ingeniería de Aplicación como base del desarrollo de las LPS, se discuten los conceptos de Manejo de Variabilidad, el proceso de Administración de la Configuración para una Línea de Producto y demás estrategias para el desarrollo de Líneas de Producto de Software.

Información Básica

  • Profesor:
  • Créditos: 4
  • Horas de Clase: 3/semana
  • Horas de trabajo independiente: 9 / semana
  • Prerequisitos: Ninguno

Objetivos

Al finalizar el curso los participantes podrán:

  • Explicar los procesos de Ingeniería de Dominio e Ingeniería de Aplicación
  • Explicar los conceptos de la variabilidad en el marco de las líneas de productos.
  • Entender las estrategias disponibles para hacer análisis de requerimientos, diseño, implementación y pruebas de los assets relacionados con la línea de productos para definir en un caso de estudio una línea de productos de software.

Metodología

El curso contará con clases expositivas para explicar los diferentes conceptos propuestos en el curso. El participante pondrá en práctica los conceptos por medio de diferentes tareas y proyectos que se asignarán a lo largo del semestre. Así mismo, los participantes deberán investigar algunos conceptos que se discutirán luego en el desarrollo de las sesiones.

Contenido

  1. Alcance y análisis preliminar
    1. Línea de producción vs línea de producto
    2. Principios de la Ingeniería de Líneas de Productos
    3. Estudios de mercado y de factibilidad
    4. Estimación de costos, esfuerzo, tamaño y rentabilidad
    5. Definición del alcance de la línea de productos
  2. Ingeniería del dominio
    1. Ingeniería de requisitos de variabilidad de la elucidación al modelado
    2. Definición de una arquitectura de dominio reutilizable
    3. Gestión de defectos en los modelos de variabilidad
    4. Análisis diseño e implementación de componentes reutilizables de dominio
    5. Enlace entre los componentes reutlizables y los elementos de variabilidad
    6. Estrategias para probar líneas de productos
  3. Ingeniería de aplicaciones
    1. Proceso de configuración como un proceso de ingeniería de requisitos
    2. Proceso de derivación de productos
    3. Selección y personalización de la arquitectura y de los artefactos reutilizables
    4. Estrategias de ensamblaje de artefactos reutilizables
    5. Personalización del producto derivado
  4. Herramientas que soportan la ingeniería de líneas de productos

Evaluación

Porcentaje
Tareas y ejercicios clase 20%
Proyecto de aplicación I 25%
Proyecto de aplicación II 25%
Trabajos escritos 20%
Exposición 10%

Bibliografía

  1. Pohl K., Böckle G., van der Linden F., SoftwareProduct Line Engineering – Fundamentals, Principles, and Techniques. Berlin. Springer, 2010
  2. Clements, P. & Northrop, L. Software Product Lines: Practices and Patterns. Boston, MA: Addison-Wesley, 2002.
  3. Gomaa, H. Designing Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures.Addison-Wesley Professional. 2004
  4. Linda M. Northrop, Paul C. Clements. A Framework for Software Product Line Practice, Version 5.0. 2007
  5. Rafael Capilla, Jan Bosch, Kyo-Chul Kang. Systems and Software Variability Management: Concepts, Tools and Experiences. Springer. 2013
  6. Mikael Svahnberg, Jilles van Gurp, and Jan Bosch. 2005. A taxonomy of variability realization techniques: Research Articles. Softw. Pract. Exper. 35, 8 (July 2005), 705-754
  7. Mansell, J. “SOFTWARE PRODUCT LINES. Chapter 7: Experiences and Expectations Regarding the Introduction of Systematic Reuse in Small- and Medium-Sized Companies”. Springer Berlin Heidelberg. 2006, Part 1, 91-124.