Está en la página 1de 51

Fábricas de Software y Líneas de Producto: del

Estado de la Práctica al Estado del Arte

Jorge A. Villalobos
jvillalo@uniandes.edu.co

1
Agenda
● ¿Cuál es la situación actual?

● ¿Por qué el problema es tan complejo?

● ¿A qué apostarle?

XXVII Salón de
Informática -
Septiembre'2007 2
Situación actual (1)

● Una crisis permanente:


➢ Costos y tiempos no cumplidos, clientes insatisfechos,
problemas de evolución…
➢ Un mercado global muy competido, donde los costos son un
factor fundamental
➢ Un problema en constante evolución: cuando encontremos
una solución, el problema habrá cambiado
➢ Una alta inercia en el medio

XXVII Salón de
Informática -
Septiembre'2007 3
Situación actual (2)

● Un problema en constante evolución:


➢ Los clientes responden a la innovación con mayores
requerimientos
➢ Ciclos más cortos de los productos
➢ Requerimientos no funcionales cada vez más complejos
➢ Rápidos cambios tecnológicos
➢ Necesidad de software cada vez más robusto

XXVII Salón de
Informática -
Septiembre'2007 4
Situación actual (3)

● Algunos hechos:
➢ El aumento de la efectividad, basado en el mejoramiento de
los procesos: indispensable, pero tiene límites.
➢ Las soluciones propuestas se han quedado cortas ante el
aumento del problema
➢ La reutilización sólo ha sido una realidad en dominios de
“bajo nivel”
➢ Es un problema complejo: cualquier solución debe
considerar las distintas dimensiones del problema
XXVII Salón de
Informática -
Septiembre'2007 5
Algunas preguntas & reflexiones

● Pregunta: ¿Basta con utilizar bien lo que ya existe?

● Pregunta: ¿Es posible disminuir costos sin perder


calidad?

● Pregunta: ¿Hay manera de industrializar el proceso de


construcción de software?
XXVII Salón de
Informática -
Septiembre'2007 6
Aspectos críticos

Reutilización
& adaptación
Control de
Mecanismos de calidad
composición & procesos

Lenguajes y Formación &


frameworks especialización
especializados

Focalización

XXVII Salón de
Informática -
Septiembre'2007 7
Aspectos críticos

Reutilización
& adaptación
Control de
Elementos y estructuras adaptables
Mecanismos de calidad
Administración de la reutilización
composición & procesos
Mecanismos de adaptación

Lenguajes y Formación &


frameworks especialización
especializados

Focalización

XXVII Salón de
Informática -
Septiembre'2007 8
Aspectos críticos

Reutilización
& adaptación
Control de
Mecanismos de calidad
composición & procesos

Maneras de ensamblar las


partes, al nivel de
Lenguajes ygranularidad adecuado Formación &
frameworks especialización
especializados

Focalización

XXVII Salón de
Informática -
Septiembre'2007 9
Aspectos críticos

Reutilización
& adaptación
Control de
Mecanismos de calidad
composición & procesos

Lenguajes y Formación &


frameworks especialización
especializados

Herramientas de generación
Focalización
Arquitecturas con funcionalidad básica
Lenguajes de dominio específico
XXVII Salón de Modelos
Informática -
Septiembre'2007 10
Aspectos críticos

Reutilización
& adaptación
Control de
Mecanismos de calidad
composición & procesos

Lenguajes y Formación &


frameworks especialización
especializados

Focalización
Alto grado de especialización
Dominio específico de trabajo
XXVII Salón de
Familia de productos de software
Informática -
Septiembre'2007 11
Aspectos críticos

Reutilización
& adaptación
Control de
Mecanismos de calidad
composición & procesos

Lenguajes y Formación &


frameworks especialización
especializados

Personal especializado
Focalización
Permanente actualización

XXVII Salón de
Informática -
Septiembre'2007 12
Aspectos críticos

Reutilización
& adaptación
Control de
Mecanismos de calidad
composición & procesos

Procesos y roles bien definidos


Plan de mejoramiento continuo
Lenguajes y Formación &
frameworks especialización
especializados

Focalización

XXVII Salón de
Informática -
Septiembre'2007 13
Aspectos críticos

Reutilización
Procesos
Activos
& adaptación
Control de
Mecanismos de calidad
Herramientas

composición & procesos

Lenguajes y Formación &


frameworks especialización
especializados

Focalización Personas
Modelos
XXVII Salón de
Informática - Dominio
Septiembre'2007 14
Agenda

● ¿Por qué el problema es tan complejo?

● ¿A qué apostarle?

XXVII Salón de
Informática -
Septiembre'2007 15
Visión abstracta del desarrollo de software

diseño modelo
modelo conceptual
computacional

análisis implementación

problema solución
oportunidad realidad

XXVII Salón de
Informática -
Septiembre'2007 16
Construcción de modelos: analizar

modelo conceptual
Información incompleta
Información ambigua
análisis

problema Debilidad de los lenguajes


oportunidad realidad Naturaleza del problema
Naturaleza del cliente

XXVII Salón de
Informática -
Septiembre'2007 17
¿Soluciones?

Mejorar los lenguajes de modelado


Visión optimista: Mejorar el proceso de abstracción
Mejorar entrenamiento de las personas

Se puede mejorar la calidad de la


Visión realista: información, pero debemos partir del
hecho de que ésta es incompleta y
potencialmente ambigua.

XXVII Salón de
Informática -
Septiembre'2007 18
Transformación de modelos: diseñar

ingeniería del producto

diseño modelo
modelo conceptual
computacional

transformación
de modelos

Debe partir de un modelo conceptual abstracto e


incompleto y llegar a un modelo computacional abstracto

XXVII Salón de
Informática -
Septiembre'2007 19
Dificultades (1)

Ausencia de metodologías concretas: un proceso muy


basado en la experiencia del diseñador

modelo diseño modelo


conceptual computacional
XXVII Salón de
Informática -
Septiembre'2007 20
Dificultades (2)

Dificultad (¿imposibilidad?) de automatizar un proceso


creativo

modelo diseño modelo


conceptual computacional
XXVII Salón de
Informática -
Septiembre'2007 21
Dificultades (3)

Proceso muy sensible a los cambios del modelo


conceptual inicial

modelo diseño modelo


conceptual computacional
XXVII Salón de
Informática -
Septiembre'2007 22
Dificultades (4)

Reutilización de diseños: el problema de “similar pero no


idéntico”

modelo diseño modelo


conceptual computacional
XXVII Salón de
Informática -
Septiembre'2007 23
Dificultades (5)

Reutilización de diseños: la dificultad de componer “lo


inesperado”

modelo diseño modelo


conceptual computacional
XXVII Salón de
Informática -
Septiembre'2007 24
Dificultades (6)

Reutilización de diseños: las limitaciones de los


mecanismos de composición

modelo diseño modelo


conceptual computacional
XXVII Salón de
Informática -
Septiembre'2007 25
Dificultades (7)

La cantidad, la complejidad y los distintos niveles de


abstracción de la información que se debe manipular

modelo diseño modelo


conceptual computacional
XXVII Salón de
Informática -
Septiembre'2007 26
Dificultades (8)

Profunda relación entre la solución y la tecnología


utilizada

modelo diseño modelo


conceptual computacional
XXVII Salón de
Informática -
Septiembre'2007 27
Dificultades (9)

Dificultad para garantizar que el modelo computacional


sea una solución válida para el problema planteado en
el modelo conceptual

modelo diseño modelo


conceptual computacional
XXVII Salón de
Informática -
Septiembre'2007 28
Dificultades (10)

Dificultad para expresar y compartir el conocimiento de


la transformación

modelo diseño modelo


conceptual computacional
XXVII Salón de
Informática -
Septiembre'2007 29
Transformación de modelos: implementar

modelo
computacional

ingeniería de implementación
producción

solución
Debe partir de un modelo
computacional abstracto y llegar a un
modelo computacional concreto
XXVII Salón de
Informática -
Septiembre'2007 30
Dificultades (1)

Aumento constante en la complejidad de la tecnología

modelo
computacional

implementación

solución
XXVII Salón de
Informática -
Septiembre'2007 31
Dificultades (2)

Debilidad de los lenguajes de especificación

modelo
computacional

implementación

solución
XXVII Salón de
Informática -
Septiembre'2007 32
Evolución y reutilización

diseño modelo
modelo conceptual
computacional
diseño modelo
modelo conceptual
computacional análisis implementación

análisis implementación
problema realidad solución
oportunidad
problema realidad solución
oportunidad

evolución

reutilización

XXVII Salón de
Informática -
Septiembre'2007 33
Dificultades (1)

Dificultad para aislar los elementos de su contexto


específico de aplicación

diseño modelo diseño modelo


modelo conceptual modelo conceptual
computacional computacional

análisis implementación análisis implementación

problema realidad solución problema realidad solución


oportunidad oportunidad

XXVII Salón de evolución


Informática -
Septiembre'2007 34
Dificultades (2)

Dificultad para componer y manipular dos tipos distintos


de modelos

diseño modelo diseño modelo


modelo conceptual modelo conceptual
computacional computacional

análisis implementación análisis implementación

problema realidad solución problema realidad solución


oportunidad oportunidad

XXVII Salón de evolución


Informática -
Septiembre'2007 35
Síntesis & reflexiones
¿Dónde están los problemas complicados?

Reutilización
& adaptación
Control de
Mecanismos de calidad
composición & procesos

Lenguajes y Formación &


frameworks especialización
especializados

Focalización madurez

XXVII Salón de
Informática -
Septiembre'2007 36
Síntesis & reflexiones
¿Dónde están los problemas complicados?

Reutilización
& adaptación
Tipo y estructura de los activos:
• adaptación (similar pero no
Mecanismos de idéntico): variabilidad
composición

Caja negra
Caja blanca
Lenguajes y Caja gris
frameworks
especializados Objetos Procesos
Componentes Eventos
Servicios Buses
Funciones Mensajería
Modelos
XXVII Salón de
Informática -
Septiembre'2007 37
Síntesis & reflexiones
¿Dónde están los problemas complicados?

Reutilización
& adaptación

Mecanismos de
composición Tipo de composición de los activos:
• Fino nivel de granularidad
• Posibilidad de “componer lo inesperado”
• Desacoplamiento
Lenguajes y • Flexibilidad
frameworks
especializados Herencia Intercepción
Orquestación
Agregación

XXVII Salón de
Informática -
Septiembre'2007 38
Síntesis & reflexiones
¿Dónde están los problemas complicados?

Reutilización
& adaptación

Mecanismos de
composición
Apoyo a la automatización de tareas:
• lenguajes de expresión de modelos
Lenguajes y • lenguajes de expresión de transformaciones
frameworks • herramientas de administración de modelos
especializados • herramientas de transformación de modelos

XXVII Salón de
Informática -
Septiembre'2007 39
Síntesis & reflexiones
El sueño…
modelo de la
Espacio del tecnología modelo de
problema transformación

modelo conceptual

análisis

Espacio de la
problema solución
solución
oportunidad realidad
Activos adaptados
y ensamblados
XXVII Salón de
Informática -
Septiembre'2007 40
Agenda

● ¿A qué apostarle?

XXVII Salón de
Informática -
Septiembre'2007 41
Una fábrica de software

Reutilización
& adaptación
Familia de
Mecanismos de soluciones
composición

Arquetipo de Otros activos


Lenguajes y
frameworks producto
especializados
Lenguajes

Activos adaptados
y ensamblados solución

XXVII Salón de
Informática -
Septiembre'2007 42
Algunas definiciones

● Fábrica de software:
➢ Una configuración de lenguajes, patrones, frameworks y
herramientas que pueden ser usados para producir de manera
rápida y barata variantes de un arquetipo de producto

XXVII Salón de
Informática -
Septiembre'2007 43
Por tener en cuenta…

● Los mercados objetivo son mucho más pequeños


● El conocimiento del dominio no se encuentra siempre disponible
por fuera de las organizaciones
● Arquetipo de producto:
● Elemento crítico de la aproximación
● El reto: generalidad sin pérdida de eficiencia
● Costo de construir el arquetipo vs. número de programas potenciales
● Mayor especialización => mayor productividad => familia más pequeña
● Mecanismos de adaptación/extensión del arquetipo para
construir variantes:
● Composición funcional y composición no funcional

XXVII Salón de
Informática -
Septiembre'2007 44
Familia de
Un ejemplo
soluciones

Control-based applications

XXVII Salón de
Informática -
Septiembre'2007 45
Definición de activos

tiempo
control

documentos
recursos
auditoría

XXVII Salón de
Informática -
Septiembre'2007 46
Modelos ejecutables
extensibles

control

XXVII Salón de
Informática -
Septiembre'2007 47
Modelos ejecutables extensibles

XXVII Salón de
Informática -
Septiembre'2007 48
Modelos ejecutables extensibles

● Mecanismos de adaptación:
➢ Extensión
➢ Especialización

➢ Redefinición

● Mecanismos de composición:
➢ Tejido e instrumentación de autómatas
● Herramientas:
➢ Motor
➢ Editor

➢ Framework de pruebas
XXVII Salón de
Informática -
Septiembre'2007 49
Conclusiones

● Las fábricas de software:


➢ Son un tema abierto de investigación: muchos de los
problemas están sin resolver y muchos de los problemas no
tienen solución.
➢ Tienen el potencial de disminuir los costos y los tiempos de
desarrollo de software, sin disminuir la calidad.
➢ Implican la especialización en un dominio y la construcción
de un arquetipo de producto y de herramientas de
especialización / adaptación.
➢ Son críticos:
➥ El tipo y la estructura de los activos
➥ Los mecanismos de composición
XXVII Salón de
Informática -
Septiembre'2007 50
Preguntas?

XXVII Salón de
Informática -
Septiembre'2007 51

También podría gustarte