UML Ejecutable y MDA
Santiago, 11 de Enero de 2007. Santiago, 11 de Enero de 2007.
Agenda
Metas de la presentacin Ingeniera de Software: Ayer, Hoy y Maana UML en la Ingeniera de Software El Prximo Paso: UML Ejecutable y MDA Una Herramienta UML: Enterprise Architect Una Herramienta MDA: Enterprise Analyst
1
Metas de la presentacin presentaci presentacin
Identificar los problemas del desarrollo tradicional - Recorrer la historia de la ingeniera de software - Analizar los datos estadsticos de los proyectos Entender las ventajas del desarrollo orientado a modelos - Concepto de UML, UML Ejecutable y MDA (lo nuevo de OMG) - MDA en la luz de las estadsticas anteriores Demostrar los ejemplos de las Herramientas - Enterprise Architect de Sparx Systems (UML) - Enterprise Analyst de Craftware (MDA)
Negocios Hoy
Globalizacin
Velocidad
Muchos Recursos
Crecimiento
La gran mayora de los proyectos de software hoy, abarcan los sistemas de apoyo a procesos de negocio
2
Ingeniera de Desarrollo de Software Hoy Ingenier IngenieraNegocios y Sistemas Informticos - Los negocios modernos no solo dependen de los sistemas; los sistemas forman parte de los negocios - Amazon, DeRemate, Despegar.com, etc.
Ingeniero de Performance Analista
Desafos - Equipos ms grandes - Especializacin - DistribucinTesteador Liberacin y Distribucin Jefe de Proyecto Desarrollador
- Rapidez del cambio tecnolgico
Estadsticas de los Proyectos de Software Estad Estadsticas
Entre 30-80% de los Proyectos de Software
Nunca Terminan!
3
Estadsticas de los Proyectos de Software (cont.) Estad EstadsticasComo Terminan los Proyectos de Software?Terminan en tiempo26%
29%
6% 6% 8% 16% 9%
Terminan atrasados 200% Nunca Terminan
Por Qu los Proyectos de Software Fracasan? Por Qu Proyectos de Software Fracasan?
Requerimientos incompletos Falta de Involucramiento de Cliente/Usuario Falta de Recursos Expectativas poco Reales Falta del soporte de alta gerencia Requerimientos cambiantes Falta de Planificacin Perdida de la necesidad (atraso?) Falta de administracin Poco conocimiento de la tecnologa
13,1 12,4 10,6 9,9 9,3 8,7 8,1 7,5 6,2 4,3(en porcentajes)
4
Qu Marca los Proyectos Exitosos? Qu Qu
Involucramiento del Cliente/Usuario Soporte de alta gerencia Requerimientos claramente especificados Planificacin adecuada Expectativas reales Hitos ms pequeos Equipo comprometido Clara propiedad Visin y objetivos claros El equipo bien enfocado Otro
15,9 13,9 13 9,6 8,2 7,7 7,2 5,3 2,9 2,4 13,9(en porcentajes)
Los Errores en los Proyectos de SoftwareEn Qu Etapa se Introducen los errores?
Pruebas 20%
Anlisis 20%
Construccin 35%
Diseo 25%
Ms de 40% de los errores de software se introducen en las tareas de documentacin!
5
Los Errores en los Proyectos de Software (cont.)En Qu Etapa se detectan los errores?Operacin 5% Anlisis 10% Diseo 20%
Pruebas 45%Construccin 20%
Ms de 40% de los errores de software se detectan en las tareas de revisin de documentacin!
Costo de un Error en el Proyecto de SoftwareSi un error introducido en Anlisis y An detectado en Anlisis cuesta 1, entonces An entoncesError introducido en anlisis, detectado en operacin
Un error introducido en Anlisis An corregido en Diseo cuesta 5 Dise 5
Costo de error
Un error introducido en Anlisis An corregido en Construccin cuesta 10 Construcci 10Operacin Un error introducido en Anlisis A Construccin corregido en Testing cuesta 100 DEtapa de deteccin de error
Error introducido en anlisis y detectado en anlisis es el ms barato
Anlisis
Un error introducido en Anlisis corregido en Operacin cuesta 1000-10000!
O
P
C
Etapa de introduccin de error
6
Productos y Enfoques de Desarrollo de SoftwareProducto
AbstracciEnfoque n 00. - Integracin y servicios WEB 90. - ComponentesExpuestos alrededor de las clases OO
- Integracin de negocios
- Negocios individuales
- Partes de negocios - Sistemas genricos de uso comn - Formulas matemticas, operaciones bsicas
70. - Orientacin a objetos
Implementadas usando lenguajes orientados a objetos
60. - Lenguaje estructurado 50. - Lenguaje de mquina
Abstraccin en Desarrollo de Software Abstracci AbstraccinAbstraccin en SoftwareLa brecha entre las abstracciones demuestra una tendencia de crecimiento
Abstraccin
Producto Enfoque Tradicional
1950
1960
1970
1990
2000
2005
Aos
- Los ingenieros todava gastan la mayora de su tiempo sobre los cdigos fuentes - La abstraccin del producto ha superado este nivel hace mucho tiempo
7
Introduccin al UML Introducci IntroduccinLas dems ingenieras abandonaron hace mucho tiempo el modelo del master builder Diseo (ingenieros y arquitectos) separado de la construccin (programadores) Intercambio fuerte de informacin tcnica => elemento indispensable: lenguaje (grfico) preciso de especificacin UML nace desde las notaciones grficas existentes Historia:1995: 1997: 2000: 2005: Inicio de construccin de UML Primer estndar UML 1.1 liberado UML 1.4 liberado UML 2.0 liberado
Introduccin al UML (cont.) Introducci Introduccin UML (cont.)
UML Permite ver un sistema de distintos puntos de vista UML aleja al ingeniero de los cdigos fuentes UML logra un aumento de abstraccin de enfoque
8
Diagramas de UMLLa versin de UML 2.0 define 13 distintos diagramas:
Estructura- clases - objetos - compuesto - paquetes - componentes - despliege
Comportamiento- casos de uso - comunicacin - secuencias - interaccin - actividades - estados - temporal
Diagramas de Casos de Uso
Funcionalidad de Sistema, requisitosSistema de Pub
Informar Bodega
Sistema de Bodega extend
Vender Bebida
Barmen include
Registrar Venta
9
Diagramas de ClasesBodega Cliente 1 1..* 1 Venta + valor: Doble ImprimirBoleta() 0..* realiza 1 Barmen Jugo Natural Gaseosa
1 almacena Pedido tiene 1..* 0..* Bebida
protegee en nti
co
ah
Anlisis y Diseo Lgico y Fsico
orr a
posee
usa
Diagramas de SecuenciaUsuario Interfaz Operativa (from Trmites) Asignar tarea Controlador Tareas (from Trmites) Tareas (from Trmites)
Grabar tarea
Ver tareas asignadas
(from Actores)
Comportamiento del sistema
10
Diagramas de Componentes
Piezas fsicas de sistemaEA API
EA
ES Plug-In
:GUI
:Compiler
:Simulator
:Obj ect Space
:Class Model
Diagramas de Procesos de Negocio (UML extendido)
Flujos de procesos de negocio
goal Perforar no menos de 10.000 platos semanales : Quantitativ e Goal
achieve
people :Maestro process control
physical :Plato resource flow
Proceso de taladrado
resource flow
physical Perforado : Plato
Perforar
Calibrar
Leer instruccin de taladrado
Iniciar taladrado
Taladrar
resource :Mquina
information :Instrucciones
11
UML y ProductividadCdigo implementado Manualmentesin UML; 100 100 80 60 40 20 0 Interfaz Lgica Datos UML; 10 UML; 56 UML; 40 sin UML; 100 sin UML; 100
Una gran parte de cdigo (ms de la mitad) se puede generar directamente desde los modelos UML
UML y Errores IntroducidosErrores introducidossin UML; 100 100 UML; 30 50
0
A qu se debe esta baja de los errores? - Documentacin de mejor calidad y ms fcil de generar y revisar - Generacin automtica de los cdigos fuentes - Comunicacin entre todos menos ambigua, etc.
12
Abstraccin en Desarrollo de Software (cont.) Abstracci AbstraccinAbstraccin en SoftwareLa brecha entre las abstracciones con UML se va disminuyendo
Abstraccin
Producto Enfoque Tradicional Enfoque UML
1950
1960
1970
1990
2000
2005
Aos
- Los ingenieros se pueden enfocar en las tareas de anlisis y diseo
Problemas del UMLUML permite hacer especificaciones ms claras, pero no permite automatizar su validacin UML mantiene alta ambigedad de ciertos diagramas (casos de uso) UML est orientado a los ingenieros y tcnicos, y mantiene difcil comunicacin con los usuarios y clientes UML es relativamente complejo
UML no se puede ejecutar!
13
Introduccin al UML Ejecutable Introducci Introduccin
Un intento de resolver los problemas bsicos de UML, relacionados con su semntica dbil Nunca ha sido oficializado como un estndar Un paso intermedio entre UML y MDA Informalmente conocido como xUML
UML y UML Ejecutable
UMLSemnticamente dbil Complejo muchos diagramas Ambigedad presente Generacin parcial del cdigo (solo estructura) Lenguaje visual con descripciones textuales informales El modelo es dibujo
xUMLSemnticamente fuerte Simple pocos diagramas Sin ambigedad Generacin completa de cdigo (estructura + comportamiento) Lenguaje visual + lenguaje de acciones formal El modelo es cdigo
UML especifica los sistemas xUML implementa los sistemas
14
xUML ResumidoxUML xUMLFactura + monto: double nr: int fecha_pago: date 0..* pago(date) : void 0..*Usuario Cobrar Factura
=1 -
UML UML
-
Elementos Elementos ambiguos ambiguos
+
Lenguaje Lenguaje de de Acciones Acciones
Cliente RUT: string nombre: string
Ingresar Factura
1 Orden de Compra monto: int
pago( fecha: date):PAGADA
Ingresar Factura
pago ENTREGADA
self.fecha_pago = fecha self.estado = PAGADA [si]Serv idor
Cobrada? [no] Suspender Factura
perdida PERDIDA entrega
Cobrar Factura
Sistema Facturas
CREADA
Elementos de xUMLSistema- Es una estructura de Dominios y sus relaciones - Interfaz Usuaria, Mdulos Lgicos, Persistencia, etc.
Interfaz Usuaria
Dominio
- Representado usando diagrama de clases - Reutilizable - Se comunica con otro Dominio
Facturacin
e-mailing
Base de Datos
15
Elementos de xUML (cont.)Clases y Asociaciones
- Representan la estructura interna de Dominios - Altamente formales y validables
Factura + monto: double nr: int fecha_pago: date 0..* pago(date) : void 0..* Cliente 1 RUT: string nombre: string
1 Orden de Compra monto: int
Elementos de xUML (cont.)Mquinas de Estados-
Definen ciclo de vida de los objetos de clases Altamente formales y validables Base de ejecucin de los modelos Se comunican entre ellas enviando seales Ejecucin concurrentePAGADA
pago ENTREGADA
perdida PERDIDA entrega
CREADA
16
Elementos de xUML (cont.)Lenguaje de Acciones
- Define comportamiento de bajo nivel - Equivalente a los lenguajes de programacin, pero en nivel ms alto nivel de clases, objetos y estados - Especifica ejecucin de estados, transiciones, etc. - Se est estandarizando
pago( fecha: date): self.fecha_pago = fecha self.estado = PAGADA
Elementos de xUML (cont.)
Compilador/Generador
- Genera los cdigos fuentes desde los modelos - Pueden cubrir distintas arquitecturas - Generacin basada en las decisiones arquitectnicas
17
Resumen de UML Ejecutable
Agrega semntica formal de ejecucin a UML Alto porcentaje de cdigo generado (100% o casi 100%), pero poca flexibilidad No estandarizado ntimamente relacionado con los sistemas en tiempo real No directamente aplicable a los desarrollos de los sistemas corporativos (enterprise)
Introduccin al MDA (Model Driven Architecture) Introducci (Model Architecture) Introduccin
Nuevo estndar de la casa de UML - OMG Todava en la etapa de investigacin y propuestas Construido en base a los estndares anteriores: UML, OCL, XML, etc. Enfrenta los desarrollos modernos, corporativos y de gran escala
18
Metas de MDA
AbstraccinResolver los siguientes problemas de la ingeniera: Obsolescencia tecnolgica Portabilidad Productividad Durabilidad Calidad Integracin Mantenimiento Pruebas y simulacin ROI
Como?
Conceptos Claves de MDAModelo - Una especificacin formal del sistema de un punto de vista bien definido Punto de Vista -Tcnica de ver el sistema enfocndose en ciertos detalles, e ignorando todo aquello ajeno a ellos Plataforma - Un conjunto de los subsistemas claramente identificados, que proveen interfaz bien definida a otros subsistemas Independencia de la Plataforma - Cualidad que posee el modelo si sus detalles no dependen de cierta Plataforma Transformacin del Modelo - El proceso de conversin de un Modelo al otro, dentro del mismo sistema
19
Tres Puntos de Vista de MDAModelo Independiente de Computacin (CIM) - El modelo que no contiene informacin de estructura sistmica - Ejemplo: Modelo de negocio, modelo de dominio Modelo Independiente de Plataforma (PIM) - El modelo computacional, sin detalles de plataforma de implementacin - Ejemplo: Modelo conceptual, diagramas de estados Modelo Especfico de Plataforma (PSM) - El modelo con detalles de plataforma de implementacin - Ejemplo: Diagrama de clases J2EE o .NETPlataforma es un concepto relativo
El Proceso de Desarrollo MDABasado en una disminucin controlada de abstraccin - Modelamiento formal desde el inicio - Disminucin gradual de la brechas entre producto y el sistema - Definicin clara de punto de vista en cada momentoEjecucin/Simulacin del PIM
Modelo PIMTransformacin
Modelo PSM
Informacin complementariaNuevo PIM
Decisiones arquitectnicas
20
Transformaciones MDA
PIMModelo Conceptual Modelo de Estados Lenguaje de Acciones Modelo de Arquitectura Modelo de Implementacin
PSMtransformacin (Cliente/Servidor, Multicapas, etc.) transformacin (J2EE, .NET, etc) transformacin
Modelo de Arquitectura
Modelo de Implementacin Cdigos Fuentes (Vector, Coleccin, etc.)
Lenguaje de Transformaciones en Construccin
MDA y Productividad
Cdigo Implementado Manualmente100 80 60 40 20 0 Interfaz Lgica Datos 16 5 56 40 10 sin UML UML MDA 0 100 100 100
Casi todo el cdigo se genera automticamente a partir de los modelos simulados!
21
MDA y Errores IntroducidosErrores Introducidossin UML 100 sin UML 50 UML MDA 0 1 UML MDA
A qu se debe esta baja de los errores? - El modelo es documentacin y el cdigo - Generacin de los cdigos fuentes automtica - Simulacin en nivel abstracto pruebas tempranas
Abstraccin en Desarrollo de Software (cont.) Abstracci AbstraccinAbstraccin en Software140 120 100 80 60 40 20 0 1950 1960 1970 1990 Aos 2000 2005La brecha entre las abstracciones casi desapareci
Abstraccin
Producto Enfoque Tradicional Enfoque UML Enfoque MDA
- Los ingenieros se pueden enfocar en las tareas de anlisis, automatizando hasta diseo!
22
Por Qu los Proyectos de Software Fracasan? Por Qu Proyectos de Software Fracasan?Requerimientos incompletos Falta de Involucramiento de Cliente/Usuario Falta de Recursos Expectativas poco Reales Falta del soporte de alta gerencia Requerimientos cambiantes Falta de Planificacin Perdida de la necesidad (atraso?) Falta de administracin Poco conocimiento de la tecnologa 13,1 12,4 10,6 9,9 9,3 8,7 8,1 7,5 6,2 4,3
40% de los factores de fracaso directamente abarcados por MDA
Qu Marca los Proyectos Exitosos? Qu QuInvolucramiento del Cliente/Usuario Soporte de alta gerencia Requerimientos claramente especificados Planificacin adecuada Expectativas reales Hitos ms pequeos Equipo comprometido Clara propiedad Visin y objetivos claros El equipo bien enfocado Otro 15,9 13,9 13 9,6 8,2 7,7 7,2 5,3 2,9 2,4 13,9
30% de los factores de xito directamente abarcados por MDA
23
Transicin hacia MDA Transici TransicinAsume un Fuerte Cambio Organizacional - Debe ser gradual y controlado - Debe ser planificado - Debe tener fuerte soporte de alta gerencia
Paso 1: Hacia UML
Paso 2: Hacia MDA
Sin Modelo
Cdigo es Modelo
Modelo es Cdigo
Sin el uso de UML Sin especializacin de roles Enfoque en programacin Dependencia de Plataformas
Con uso de UML Roles ms especializados Enfoque en Diseo
Con uso de MDA Roles especializados Enfoque en Anlisis Independencia de Plataformas
Ejemplos de las HerramientasUna Herramienta UML: Enterprise Architect - Cobertura 100% de UML 2 - Gran presencia en Chile - Precio bajo - Capacitacin - Soporte metodolgico
Una Herramienta MDA: Enterprise Analyst - Add-in de EA - Validacin/Simulacin del modelo en nivel conceptual - Validacin/Generacin de la documentacin - Capacitacin - Soporte metodolgico
24
Bibliografa Bibliograf BibliografaExecutable UML, A Foundation for Model-Driven Architecture, S. J. Mellor, M. J. Balcer MDA Explained, The Model Driven Architecture: Practice and Promise, A. Kleppe, J. Warmer, W. Blast MDA Distilled, Principles of Model-Driven Architecture, S. J. Mellor, K. Scott, A. Uhl, D. Weise Model Driven Architecture, Applying MDA to Enterprise Computing, D. S. Frankel The Object Constraint Language Second Edition, Getting Your Models Ready for MDA, J. Warmer, A. Kleppe Domain-Frontier Aproach to MDA, Aleksandar Orlic, OMGs Second MDA Workshop, Orlando, Mayo 2004. Futuro de la Ingeniera de Software, Aleksandar Orlic, articulo en revista Informtica, edicin Enero/Febrero de 2006.
Bibliografa (cont.) Bibliograf BibliografaStandish Group Survey, 1999 The Basics of Model-Driven Architecture, Cephas Consulting Corp Model Driven Architecture, Applying MDA to Enterprise Computing, D. S. Frankel Operational Excellence through Efficient Software Testing Metrics, Ramesh Pusala, Infosys Requeriments Engineering, Dr. Annie I. Antn, NCSU www.omg.org/uml, www.omg.org/mda y otras fuentes en Internet.
25
Gracias! Gracias!Craftware Consultores Ltda. Craftware Consultores Ltda. www.craftware.net www.craftware.net [email protected] [email protected]
26