fábricas de software y líneas de producto: del estado de la...
TRANSCRIPT
1
Fábricas de Software y Líneas de Producto: delEstado de la Práctica al Estado del Arte
Jorge A. [email protected]
Agenda
● ¿Cuál es la situación actual?
XXVII Salón deInformática -Septiembre'2007 2
● ¿Por qué el problema es tan complejo?
● ¿A qué apostarle?
XXVII Salón deInformática -Septiembre'2007 3
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 unfactor fundamental
➢ Un problema en constante evolución: cuando encontremosuna solución, el problema habrá cambiado
➢ Una alta inercia en el medio
XXVII Salón deInformática -Septiembre'2007 4
Situación actual (2)
● Un problema en constante evolución:
➢ Los clientes responden a la innovación con mayoresrequerimientos
➢ 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 deInformática -Septiembre'2007 5
Situación actual (3)
● Algunos hechos:
➢ El aumento de la efectividad, basado en el mejoramiento delos procesos: indispensable, pero tiene límites.
➢ Las soluciones propuestas se han quedado cortas ante elaumento del problema
➢ La reutilización sólo ha sido una realidad en dominios de“bajo nivel”
➢ Es un problema complejo: cualquier solución debeconsiderar las distintas dimensiones del problema
XXVII Salón deInformática -Septiembre'2007 6
Algunas preguntas & reflexiones
● Pregunta: ¿Basta con utilizar bien lo que ya existe?
● Pregunta: ¿Es posible disminuir costos sin perdercalidad?
● Pregunta: ¿Hay manera de industrializar el proceso deconstrucción de software?
XXVII Salón deInformática -Septiembre'2007 7
Aspectos críticos
Reutilización& adaptación
Lenguajes yframeworks
especializados
Mecanismos decomposición
Control de calidad
& procesos
Formación &especialización
Focalización
XXVII Salón deInformática -Septiembre'2007 8
Aspectos críticos
Reutilización& adaptación
Lenguajes yframeworks
especializados
Mecanismos decomposición
Control de calidad
& procesos
Formación &especialización
Focalización
Elementos y estructuras adaptablesAdministración de la reutilizaciónMecanismos de adaptación
XXVII Salón deInformática -Septiembre'2007 9
Aspectos críticos
Reutilización& adaptación
Lenguajes yframeworks
especializados
Mecanismos decomposición
Control de calidad
& procesos
Formación &especialización
Focalización
Maneras de ensamblar laspartes, al nivel degranularidad adecuado
XXVII Salón deInformática -Septiembre'2007 10
Aspectos críticos
Reutilización& adaptación
Lenguajes yframeworks
especializados
Mecanismos decomposición
Control de calidad
& procesos
Formación &especialización
FocalizaciónHerramientas de generaciónArquitecturas con funcionalidad básicaLenguajes de dominio específicoModelos
XXVII Salón deInformática -Septiembre'2007 11
Aspectos críticos
Reutilización& adaptación
Lenguajes yframeworks
especializados
Mecanismos decomposición
Control de calidad
& procesos
Formación &especialización
Focalización
Alto grado de especializaciónDominio específico de trabajoFamilia de productos de software
XXVII Salón deInformática -Septiembre'2007 12
Aspectos críticos
Reutilización& adaptación
Lenguajes yframeworks
especializados
Mecanismos decomposición
Control de calidad
& procesos
Formación &especialización
FocalizaciónPersonal especializadoPermanente actualización
XXVII Salón deInformática -Septiembre'2007 13
Aspectos críticos
Reutilización& adaptación
Lenguajes yframeworks
especializados
Mecanismos decomposición
Control de calidad
& procesos
Formación &especialización
Focalización
Procesos y roles bien definidosPlan de mejoramiento continuo
XXVII Salón deInformática -Septiembre'2007 14
Aspectos críticos
Reutilización& adaptación
Lenguajes yframeworks
especializados
Mecanismos decomposición
Control de calidad
& procesos
Formación &especialización
Focalización
Activos
He
rra
mie
ntas
Modelos
Dominio
Personas
Procesos
Agenda
XXVII Salón deInformática -Septiembre'2007 15
● ¿Por qué el problema es tan complejo?
● ¿A qué apostarle?
Visión abstracta del desarrollo de software
XXVII Salón deInformática -Septiembre'2007 16
realidadproblema
oportunidad
modelo conceptual
análisis
modelocomputacional
diseño
solución
implementación
XXVII Salón deInformática -Septiembre'2007 17
Construcción de modelos: analizar
realidadproblema
oportunidad
modelo conceptual
análisis
Información incompletaInformación ambigua
Debilidad de los lenguajesNaturaleza del problemaNaturaleza del cliente
XXVII Salón deInformática -Septiembre'2007 18
¿Soluciones?
Mejorar los lenguajes de modeladoMejorar el proceso de abstracciónMejorar entrenamiento de las personas
Visión optimista:
Se puede mejorar la calidad de lainformación, pero debemos partir delhecho de que ésta es incompleta ypotencialmente ambigua.
Visión realista:
Transformación de modelos: diseñar
XXVII Salón deInformática -Septiembre'2007 19
modelo conceptualmodelo
computacional
diseño
Debe partir de un modelo conceptual abstracto eincompleto y llegar a un modelo computacional abstracto
transformación de modelos
ingeniería del producto
XXVII Salón deInformática -Septiembre'2007 20
Dificultades (1)
Ausencia de metodologías concretas: un proceso muybasado en la experiencia del diseñador
modeloconceptual
modelocomputacional
diseño
XXVII Salón deInformática -Septiembre'2007 21
Dificultades (2)
Dificultad (¿imposibilidad?) de automatizar un procesocreativo
modeloconceptual
modelocomputacional
diseño
XXVII Salón deInformática -Septiembre'2007 22
Dificultades (3)
Proceso muy sensible a los cambios del modeloconceptual inicial
modeloconceptual
modelocomputacional
diseño
XXVII Salón deInformática -Septiembre'2007 23
Dificultades (4)
Reutilización de diseños: el problema de “similar pero noidéntico”
modeloconceptual
modelocomputacional
diseño
XXVII Salón deInformática -Septiembre'2007 24
Dificultades (5)
Reutilización de diseños: la dificultad de componer “loinesperado”
modeloconceptual
modelocomputacional
diseño
XXVII Salón deInformática -Septiembre'2007 25
Dificultades (6)
Reutilización de diseños: las limitaciones de losmecanismos de composición
modeloconceptual
modelocomputacional
diseño
XXVII Salón deInformática -Septiembre'2007 26
Dificultades (7)
La cantidad, la complejidad y los distintos niveles deabstracción de la información que se debe manipular
modeloconceptual
modelocomputacional
diseño
XXVII Salón deInformática -Septiembre'2007 27
Dificultades (8)
Profunda relación entre la solución y la tecnologíautilizada
modeloconceptual
modelocomputacional
diseño
XXVII Salón deInformática -Septiembre'2007 28
Dificultades (9)
Dificultad para garantizar que el modelo computacionalsea una solución válida para el problema planteado en
el modelo conceptual
modeloconceptual
modelocomputacional
diseño
XXVII Salón deInformática -Septiembre'2007 29
Dificultades (10)
Dificultad para expresar y compartir el conocimiento dela transformación
modeloconceptual
modelocomputacional
diseño
XXVII Salón deInformática -Septiembre'2007 30
Transformación de modelos: implementar
modelocomputacional
solución
implementacióningeniería deproducción
Debe partir de un modelocomputacional abstracto y llegar a un
modelo computacional concreto
XXVII Salón deInformática -Septiembre'2007 31
Dificultades (1)
Aumento constante en la complejidad de la tecnología
modelocomputacional
solución
implementación
XXVII Salón deInformática -Septiembre'2007 32
Dificultades (2)
Debilidad de los lenguajes de especificación
modelocomputacional
solución
implementación
XXVII Salón deInformática -Septiembre'2007 33
Evolución y reutilización
realidadproblemaoportunidad
modelo conceptual
análisis
modelocomputacional
diseño
solución
implementación
realidadproblemaoportunidad
modelo conceptual
análisis
modelocomputacional
diseño
solución
implementación
evolución
reutilización
XXVII Salón deInformática -Septiembre'2007 34
Dificultades (1)
Dificultad para aislar los elementos de su contextoespecífico de aplicación
realidadproblemaoportunidad
modelo conceptual
análisis
modelocomputacional
diseño
solución
implementación
realidadproblemaoportunidad
modelo conceptual
análisis
modelocomputacional
diseño
solución
implementación
evolución
XXVII Salón deInformática -Septiembre'2007 35
Dificultades (2)
Dificultad para componer y manipular dos tipos distintosde modelos
realidadproblemaoportunidad
modelo conceptual
análisis
modelocomputacional
diseño
solución
implementación
realidadproblemaoportunidad
modelo conceptual
análisis
modelocomputacional
diseño
solución
implementación
evolución
Síntesis & reflexiones¿Dónde están los problemas complicados?
XXVII Salón deInformática -Septiembre'2007 36
Reutilización& adaptación
Lenguajes yframeworks
especializados
Mecanismos decomposición
Control de calidad
& procesos
Formación &especialización
Focalización madurez
Síntesis & reflexiones¿Dónde están los problemas complicados?
XXVII Salón deInformática -Septiembre'2007 37
Reutilización& adaptación
Lenguajes yframeworks
especializados
Mecanismos decomposición
Tipo y estructura de los activos:• adaptación (similar pero noidéntico): variabilidad
Caja negraCaja blancaCaja gris
ObjetosComponentesServiciosFuncionesModelos
ProcesosEventosBusesMensajería
Síntesis & reflexiones¿Dónde están los problemas complicados?
XXVII Salón deInformática -Septiembre'2007 38
Reutilización& adaptación
Lenguajes yframeworks
especializados
Mecanismos decomposición Tipo de composición de los activos:
• Fino nivel de granularidad• Posibilidad de “componer lo inesperado”• Desacoplamiento• Flexibilidad
HerenciaOrquestaciónAgregación
Intercepción
Síntesis & reflexiones¿Dónde están los problemas complicados?
XXVII Salón deInformática -Septiembre'2007 39
Reutilización& adaptación
Lenguajes yframeworks
especializados
Mecanismos decomposición
Apoyo a la automatización de tareas:• lenguajes de expresión de modelos• lenguajes de expresión de transformaciones• herramientas de administración de modelos• herramientas de transformación de modelos
Síntesis & reflexionesEl sueño…
XXVII Salón deInformática -Septiembre'2007 40
realidadproblema
oportunidad
modelo conceptual
análisis
modelo detransformación
solución
modelo de latecnología
Activos adaptadosy ensamblados
Espacio delproblema
Espacio de lasolución
Agenda
XXVII Salón deInformática -Septiembre'2007 41
● ¿A qué apostarle?
Una fábrica de software
XXVII Salón deInformática -Septiembre'2007 42
Reutilización& adaptación
Lenguajes yframeworks
especializados
Mecanismos decomposición
Familia desoluciones
Arquetipo deproducto
soluciónActivos adaptados
y ensamblados
Lenguajes
Otros activos
XXVII Salón deInformática -Septiembre'2007 43
Algunas definiciones
● Fábrica de software:
➢ Una configuración de lenguajes, patrones, frameworks yherramientas que pueden ser usados para producir de manerarápida y barata variantes de un arquetipo de producto
Por tener en cuenta…
● Los mercados objetivo son mucho más pequeños
● El conocimiento del dominio no se encuentra siempre disponiblepor 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 paraconstruir variantes:
● Composición funcional y composición no funcional
XXVII Salón deInformática -Septiembre'2007 44
XXVII Salón deInformática -Septiembre'2007 45
Un ejemploFamilia desoluciones
Control-based applications
XXVII Salón deInformática -Septiembre'2007 46
controltiempo
recursosdocumentos
auditoría
Definición de activos
XXVII Salón deInformática -Septiembre'2007 47
control
Modelos ejecutablesextensibles
Modelos ejecutables extensibles
XXVII Salón deInformá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 pruebasXXVII Salón deInformá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 notienen solución.
➢ Tienen el potencial de disminuir los costos y los tiempos dedesarrollo de software, sin disminuir la calidad.
➢ Implican la especialización en un dominio y la construcciónde un arquetipo de producto y de herramientas deespecialización / adaptación.
➢ Son críticos:➥ El tipo y la estructura de los activos
➥ Los mecanismos de composiciónXXVII Salón deInformática -Septiembre'2007 50
Preguntas?
XXVII Salón deInformática -Septiembre'2007 51