Accesos directos a las distintas zonas del curso

Ir a los contenidos

Ir a menú navegación principal

Ir a menú pie de página

DESARROLLO DE LÍNEAS DE PRODUCTO SOFTWARE MEDIANTE UN ENFOQUE GENERATIVO

Curso 2018/2019/Subject's code31105043

DESARROLLO DE LÍNEAS DE PRODUCTO SOFTWARE MEDIANTE UN ENFOQUE GENERATIVO

NAME SUBJECT DESARROLLO DE LÍNEAS DE PRODUCTO SOFTWARE MEDIANTE UN ENFOQUE GENERATIVO
CODE 31105043
SESSION 2018/2019
DEGREE IN WHICH IT IS OFFERED MÁSTER UNIVERSITARIO EN INVESTIGACIÓN EN INGENIERÍA DE SOFTWARE Y SISTEMAS INFORMÁTICOS
TYPE CONTENIDOS
ECTS 9
HOURS 225.0
PERIOD ANUAL
OFFER LANGUAGES CASTELLANO

PRESENTACIÓN Y CONTEXTUALIZACIÓN

Aunque algunas estimaciones realizadas en los años 80, pronosticaban que el 60% de cualquier aplicación informática se desarrollaría ensamblando componentes reutilizables, el nivel de reutilización alcanzado hoy día es bastante inferior. Muchos autores consideran que este fracaso se debe a que la mayoría de los procesos de desarrollo de software, ya sean formales o ágiles, persiguen la construcción de productos aislados. Al no disponerse de contextos suficientemente amplios como para detectar con precisión qué elementos son reutilizables y cuáles son las situaciones donde puede sacarse más partido a la reutilización, se desemboca en una reutilización oportunista del software. Para que la reutilización del software fuera sistemática, los procesos de desarrollo deberían abordar la construcción colectiva de familias de productos relacionados por un dominio.

Otros autores han llegado a conclusiones similares al tratar de aplicar en la fabricación de software los principios de economía de escala y de alcance, comúnmente utilizados en la industria para reducir los costes y tiempos de fabricación y mejorar la calidad de los productos. La economía de escala se refiere a la fabricación de múltiples unidades de un mismo producto. Cuanto más se produce, menores son los costes. Se logra por diversas causas: reparto de los costes fijos entre más unidades producidas (disminución del coste medio), rappel sobre compras, mejora tecnológica, incremento de la racionalidad en el trabajo (especialización y división del trabajo)… La economía de alcance se da en la fabricación colectiva de productos similares. Se consigue principalmente porque los problemas comunes en la fabricación de los diversos productos se resuelven una sola vez. La fabricación industrial de un producto consta fundamentalmente de dos etapas: (i) la fase de desarrollo, donde se crean el diseño del producto y unos pocos prototipos para la validación del diseño; y (ii) la fase de producción, donde se crean de forma masiva instancias del producto. La economía de escala ocurre sobre todo durante la fase de producción. La naturaleza esencialmente lógica del software hace que los costes se concentren en la etapa de desarrollo (el coste de producir las copias de un sistema informático es despreciable comparado con el coste de desarrollo del sistema) y, por tanto, sea la economía de alcance el principio más aplicable en la fabricación de software.

En resumen, el desarrollo de familias de productos, frente a la construcción individual de productos aislados, es un paso decisivo hacia la reutilización sistemática de software y la obtención de economía de alcance. Esta asignatura cubre las distintas fases de desarrollo de una familia de productos software.

La asignatura “Desarrollo de Líneas de Producto Software Mediante un Enfoque Generativo” se enmarca en la materia de “Ingeniería del Desarrollo de Software”, del itinerario de “Ingeniería de Software”, del Máster y corresponde al bloque de asignaturas con Contenidos Formativos Fundamentales (CFF) o troncales. A continuación se resume su relación con otras asignaturas del máster:

La asignatura “Especificación de los Sistemas Software” trata la especificación formal de sistemas software.  Los contenidos de esta asignatura se aplicarán en (i) el tema 2 de “desarrollo de familias de productos de software desde un enfoque generativo”, donde estudiaremos cómo especificar formalmente la variabilidad de una familia de productos, y (ii) el tema 3, donde se explicará como metamodelar un lenguaje específico de dominio.

La asignatura “Arquitecturas para Sistemas Software” está íntimamente relacionada con “desarrollo de familias de productos de software desde un enfoque generativo”. De hecho, la arquitectura de una línea de productos software es la generalización de las distintas arquitecturas de cada producto particular.

La asignatura “Generación Automática de Código” trata en profundidad la producción generativa de software. Dicha asignatura puede considerarse una ampliación de parte del contenido de los temas 4 y 5 del presente curso.

La asignatura “Arquitecturas Orientadas a Servicios” presenta la reutilización de componentes software distribuidos en Internet. El principal objetivo de una línea de productos software es la reutilización sistemática de software.  Por lo tanto, la relación entre ambas asignaturas es evidente.