Fuentes: Bran Selic, ICSE03 UML2.0 Tutorial y nmero especial sobre MDD, IEEE Software, September 2003, pag. 19-25
Modelado de ...
Sistemas...
Familias de sistemas
Modelos de ingeniera
Modelo de ingeniera:
Propsito:
Ayudar a comprender un problema complejo (o solucin) Comunicar ideas acerca de un problema o solucin Guiar la implementacin
Enfatiza los elementos importantes y oculta los irrelevantes Fcil de comprender por los observadores Representa de forma fiel el sistema que modela Se pueden usar para deducir conclusiones sobre el sistema que modela Mucho ms barato y sencillo de construir que el sistema que modela
Comprensible
Preciso
Predictivo
Barato
Cmo se usan
Para detectar errores u omisiones en el diseo antes de comprometer recursos para la implementacin
Analizar y experimentar Investigar y comparar soluciones alternativas Minimizar riesgos Clientes, usuarios, implementadores, encargados de pruebas, documentadores, etc.
El modelo es la implementacin
Lo esencial en MDD
En MDD el enfoque y los artefactos fundamentales son modelos (y no programas) La mayor ventaja es que los conceptos de modelado estn mucho menos ligados a la tecnologa de implementacin y ms cerca del dominio del problema Los modelos son ms fciles de especificar, comprender y mantener
Tecnologa
Se generan automticamente programas completos a partir de modelos (y no slo esqueletos o fragmentos de cdigo ) Se verifican automticamente modelos en una computadora (por ejemplo, ejecutndolos)
La prctica
Modelos Observables
Es necesario que las herramientas nos den informacin sobre errores, al igual que lo hacen los compiladores (o los depuradores)
...La prctica
Modelos ejecutables
El hola_mundo Debe ser posible trabajar con modelos incompletos (pero bien formados) 15 % de diferencia con las herramientas actuales
...La prctica
Escalabilidad
Grandes sistemas:
Tiempo de generacin/compilacin del sistema Tiempo de generacin/compilacin de cada
incremento
Modelado y lenguajes
2005?
Evolucin de UML
septiembre de 2001 Abril 1999:
UML 2.0
UML 1.5 UML 1.4 UML 1.3
Documentos pblicos
Publicacin de UML 1.1 Septiembre 1997 Publicacin de UML 1.0 Enero 1997 Junio 96 y Octubre 1996 OOPSLA95
Estandarizacin
UML 0.9 & 0.91 Colaboradores y expertos Mtodo Unificado 0.8 OMT-2
Unificacin
Fragmentacin
OMT-1 OOSE
E.g., C++ in pictures Business and similar processes modeling Large-scale systems Non-functional aspects (quality of service specifications) Too many concepts Overlapping concepts Vague or missing (e.g., inheritance, dynamic semantics) Informal definition (not suitable for code generation or executable models)
Too complex
se refieren a la arquitectura, reestructuracin y mecanismos de extensin. Indican cmo UML 2.0 es definido y estructurado como un metamodelo. se refieren al refinamiento y extensin de la notacin y la semntica de UML 1.x. afectan tanto a los cambios en la infraestructura como a los de la superestructura.
Requisitos de la superestructura:
Requisitos generales:
- Mejorar la alineacin arquitectnica con otros estndares de modelado del OMG, como MOF (Meta Object Facility) y XMI (XML Metadata Interchange). - Reestructurar la arquitectura del lenguaje, para que fuera ms sencillo de entender, implementar y extender, manteniendo la semntica que ya haba sido contrastada. - Proporcionar perfiles y mecanismos de extensin de primera clase (metaclases) que fueran consistentes con la arquitectura del metamodelo.
desarrollo basado en componentes, modelado de procesos de negocios, modelado arquitectnico modelos ejecutables
Componentes y arquitectura
Mejorar el soporte para desarrollos basados en componentes. Era necesario demostrar que se podan especificar contenedores de ejecucin y perfiles para las principales arquitecturas de componentes, como EJB y COM+ Aumentar el soporte para arquitecturas de tiempo de ejecucin (comparar modelos ejecutables) incluyendo la especificacin de estructuras jerrquicas y comportamientos dinmicos.
Fue tambin definido por el OMG y actualmente se encuentra en su versin 2.0 La alineacin del metamodelo UML 2.0 con el metamodelo MOF simplificar el intercambio de modelos va XMI y la interoperabilidad cruzada entre herramientas. La especificacin del ncleo unificado MOF 2.0 debe estar arquitectnicamente alineada con la Infraestructura de UML
Nivel M3: MOF. Nivel M2: UML. Nivel M1: Modelo del usuario. Nivel M0: Instancias en tiempo de ejecucin.
Arquitectura de UML/MOF
Infraestructura
a) Alineacin arquitectnica y reestructuracin b) Extensibilidad
Aunque el metamodelo UML 1.x era compatible con el metamodelo MOF, no se cea estrictamente al patrn de metamodelo de 4 niveles, en el que cada metamodelo es una instancia de slo un meta-metamodelo En UML 2.0 el metamodelo UML est perfectamente alineado con el metamodelo MOF Adems, el ncleo de UML y el ncleo de MOF deben compartir los mismos elementos de metamodelo,
b) Extensibilidad
Los perfiles UML incorporan mecanismos de extensin (estereotipos, valores etiquetados y restricciones) que permiten personalizarlo para distintas aplicaciones y tecnologas.
En el OMG se est trabajando con ellos, algunos ya han sido adoptados y otros estn en proceso de adopcin. Por ejemplo existen perfiles para: CORBA IDL, Modelo de Componentes CORBA (CCM), Computacin de Empresa de Objetos Distribuidos (EDOC).
Se ha incluido un mecanismo de extensibilidad de primera clase, que permite a los desarrolladores definir y aadir sus propias metaclases (que sern instancias de las meta-metaclases MOF), dando as soporte a la "familia de lenguajes basada en UML.
Superestructura
Pensada para el modelado arquitectnico
Objetos con estructura externa e interna (objetos arquitectnicos) Modelado de sistemas complejos
Constructor de clase crea la estructura deseada automticamente El destructor de la clase hace la limpieza automticamente Expresividad, fiabilidad y productividad
Nuevos elementos
Clases estructuradas Puertos Protocolos Componentes ...
Clases estructuradas
Puertos
Protocolos
Componentes
MDD requirements (precision, code generation, executability) Small number of new features + consolidation of existing ones Scaleable to large software systems (architectural modeling Modular structure for easier adoption (core + optional) Increased semantic precision and conceptual clarity Suitable foundation for MDA (executable models, full code generation)
UML 2.0:
Arquitectura de UML/MOF
Modelado de objetos
Descripcin de los objetos en trminos de sus propiedades y de sus relaciones Idea bsica: describir un grupo de objetos similares en trminos de clases, que son instanciadas para crear objetos individuales Los objetos se relacionan con las clases de las que son creados por la relacin SerInstanciaDe (IsInstanceOf)
...Modelado de objetos
Una situacin parecida ocurre con las relaciones. Una clase define los tipos de relaciones que sus instancias pueden tener con instancias de otras clases
Metamodelado...
Se basa en la idea de reificar las entidades que forman un cierto tipo de modelo y describir las propiedades comunes del tipo de modelo en forma de un modelo de objetos Cuando se ve la clase como un objeto, la clase es una instancia de otra clase
Metamodelado...
...Metamodelado
La idea fundamental en el metamodelado es que las entidades del modelo (clases) juegan dos papeles: el papel de plantilla (cuando se ve como una clase) y el papel de instancia (cuando se ve como objeto
Terminologa de metamodelado...
La idea de ver las clases como objetos puede ser aplicada repetidamente para crear una jerarqua de instanciacin del clases y objetos En principio est jerarqua podra continuar hasta cualquier profundidad arbitraria, pero en la prctica no se extiende ms all de cuatro niveles de profundidad
Terminologa de metamodelado...
Si la jerarqua tiene una profundidad fijada, se puede utilizar un esquema de nombres para describir el nivel en que reside una entidad dada en la jerarqua de instanciacin
...Terminologa de metamodelado