Modelado de sistemas software: Introducción Diciembre 2006 Miguel A. Laguna Fuentes: Bran Selic, ICSE’03 UML2.0 Tutorial y número especial sobre MDD, IEEE.

Slides:



Advertisements
Presentaciones similares
Modelado de sistemas software: Introducción
Advertisements

Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
Introducción al modelado Unificado
UML 2.0 Integrantes: Diana Carolina Valencia M. Jhon Fernando Lopez T. Carlos Alberto Castillo.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Clase 09.  Garantizar la calidad de software  La prueba nunca termina, del IS translada se translada al usuario  Las casas de software invierte del.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Lcda. Ingrid Graü Diseño de Sistemas 1. Lcda. Ingrid Graü Diseño de Sistemas 2.
Modelado de sistemas software: Introducción. Modelado de... Sistemas... Sistemas web Sistemas de control/tiempo real Familias de sistemas Variabilidad.
CMS ABIERTO Y CMS CERRADO MARÍA CAMILA MUÑOZ U TATIANA ARIAS CHAPARRO U CAROLINA FIGUEROA U
Diagrama de Arquitectura de Procesos M. en TI. Omar Téllez Barrientos.
San Juan Bautista Tuxtepec, Oaxaca a 01 de Septiembre de 2016 INSTITUTO TECNOLÓGICO de Tuxtepec PROGRAMACION EN AMBIENTE CLIENTE-SERVIDOR CORBA PRESENTA:
Ingeniería del Software Diseñó de Software Universidad de los Andes Demián Gutierrez Abril 2009.
INGENIERÍA DE SOFTWARE RODRÍGUEZ CADENA CYNTHIA VIRIDIANA GRANADOS HERNÁNDEZ ERICK METODOLOGÍA OMT.
Organizaciones involucradas: El centro de cálculo noruego. Crea lenguaje llamado Simula 67, desarrollado por Krinsten Nygaard y Ole-Johan Dahl, en 1967.
Análisis de Proyecto de Software.
Herencia Multiple en Java
INGENIERÍA DE INFORMACIÓN Y APLICACIONES
Prof: Dra. Roxana Giandini
GESTIÓN DEL RIESGO E INGENERÍA DE SOFTWARE BASADO EN COMPONENTES
Lenguaje Unificado de Modelado
El Lenguaje de Modelación Unificado
Ingeniería de requisitos y
IEEE-std Práctica Recomendada para la Especificación de Requerimientos de Software Fuente: IEEE Recommendad Practice for Software Requirements.
Programación Orientada a Objetos
U.T. 11: Introducción A Las Bases De Datos
Gestión de Riesgos Corporativos
LENGUAJE DE PROGRAMACIÓN Y SOFTWARE PROPIETARIO
MODELO CLIENTE -SERVIDOR
UNIVERSIDAD ICEP INTELIGENCIA ARTIFICIAL INGENIERÍA EN SISTEMAS COMPUTACIONALES Martes, 24 de Octubre de 2017 REPRESENTACIÓN DEL CONOCIMIENTO Y RAZONAMIENTO.
METODOLOGÍA DE SISTEMAS
Ingeniería de Sistemas Requerimientos
Ingeniería de Software Somerville
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Tema 3. Lenguaje unificado de modelado UML
AUTODESK Computacion. 5 semestre Alumno: Rosendo Espinosa Arzate.
UNIVERSIDAD NACIONAL DE LOJA Área de la Educación, el Arte y la Comunicación Informática Educativa IV INGENIERIA DE SOFTWARE Taller de Análisis y Diseño.
Software Es intangible, existe como información, ideas, conceptos, símbolos, pero no ocupa un espacio físico, se podría decir que no tiene sustancia. Se.
MDA (Model Driven Architecture)
Representación del Conocimiento
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
Resumen: Análisis de requerimientos
Introducción al modelado
Ingeniería del Software
Modelo de interacción de usuario.  El Desarrollo basado en modelos de la interfaz de usuario, en inglés Model-based User Interface Development (MB-UID),
FUNDAMENTOS DE PROGRAMACION EN ENTORNO WEB. Rodrigo Cabello Ing. Informático Director de proyectos Think – Ideas in Motion FUNDAMENTOS.
Base de Datos TECNICATURA SUPERIOR EN INFORMÁTICA PROF.: GUANUCO, JUAN CARLOS.
Ciclo de vida del Software
Universidad Nacional de Colombia - Leguajes de Programación
Metodologías de Desarrollo de Software RUP – Proceso Racional Unificado Gilber BASILIO ROBLES I.E.S.T.P. “DANIEL ALCIDES CARRIÓN” Taller de Modelamiento.
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
Análisis y diseño de aplicaciones. Introducción Crisis del software - conferencia organizada en 1968 por la Comisión de Ciencias de la OTAN en Garmisch.
Programación Orientada a Objetos. ¿Qué es un ordenador? “Un sistema digital con tecnología microelectrónica capaz de procesar información a partir de.
ANALISIS DE SISTEMAS ANALISIS ORIENTADO A OBJETOS.
Autores: Ñauñay Colcha Jorge Luis Bravo Maldonado Paulo Dennis
Web Application Development Focused on BP Specifications
Se hizo popular en la década de 1980 y todavía es utilizado por muchos. Consiste en interpretar el concepto del sistema (o situaciones del mundo real)
Programacion Orientada a Objetos
1 Taller de Proyecto Tema 1. Metodología de desarrollo de software Rational Unified Process –RUP [1,2] Prof. Nora La Serna © Prof. Nora La Serna.
Tema: Administración de la configuración de software UNIVERSIDAD TECNOLÓGICA ISRAEL CALIDAD DE SOFTWARE.
Metodologías de Desarrollo Web
Metodología de Desarrollo de Sistemas II Ingeniería de Software  DEFINICIÓN La ingeniería del software es el establecimiento y uso de principios de.
1 Introducción al proceso unificado de desarrollo de software.
PRESENTACION DE INGENIERIA ORIENTADA A OBJETOS. INTRODUCCION. ¿ Qué es UML ?. UML, por sus siglas en Ingles, Unified Modeling Languaje.(Lenguaje Unificado.
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
ASIGNATURA: REINGENIERÍA DEL SOFTWARE CUATRIMESTRE: I DOCENTE: ING. IRENE MARTÍNEZ MEJÍA CORREO: Managua, 26 de Enero 2019
AUTOR: MIGUEL GARZON DIRECTOR: ING. DARWIN ALULEMA Msc. SANGOLQUÍ 2019
INTRODUCCIÓN A UML.  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
ICI 502 Procesos de Software
Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Copyright 2019 Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Derechos reservados UML.
Transcripción de la presentación:

Modelado de sistemas software: Introducción Diciembre 2006 Miguel A. Laguna Fuentes: Bran Selic, ICSE’03 UML2.0 Tutorial y número especial sobre MDD, IEEE Software, September 2003, pag

Modelado de... Sistemas... Sistemas web Sistemas de control/tiempo real Familias de sistemas Variabilidad Patrones de alto nivel Restricciones Requisitos Procesos...Modelos ¿ejecutables?

La importancia de los modelos

Modelos de ingeniería Modelo de ingeniería: Representación reducida de un sistema Propósito: Ayudar a comprender un problema complejo (o solución) Comunicar ideas acerca de un problema o solución Guiar la implementación

Características de los modelos Abstracto Enfatiza los elementos importantes y oculta los irrelevantes Comprensible Fácil de comprender por los observadores Preciso Representa de forma fiel el sistema que modela Predictivo Se pueden usar para deducir conclusiones sobre el sistema que modela Barato Mucho más barato y sencillo de construir que el sistema que modela Los modelos de ingeniería eficaces deben satisfacer todas estas características

Cómo se usan Para detectar errores u omisiones en el diseño antes de comprometer recursos para la implementación Analizar y experimentar Investigar y comparar soluciones alternativas Minimizar riesgos Para comunicarse con los “stakeholders” Clientes, usuarios, implementadores, encargados de pruebas, documentadores, etc. Para guiar la implementación

Desarrollo guiado por modelos ( “Model-Driven development” o MDD) Una aproximación al desarrollo de software en el que el enfoque y los artefactos fundamentales son modelos (y no programas) Implica la generación automática de programas a partir de modelos Utilizando lenguajes de modelado directamente como herramientas de implementación “El modelo es la implementación”

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 están mucho menos ligados a la tecnología de implementación y más cerca del dominio del problema Los modelos son más fáciles de especificar, comprender y mantener

Tecnología Se generan automáticamente programas completos a partir de modelos (y no sólo esqueletos o fragmentos de código ) Se “verifican” automáticamente modelos en una computadora (por ejemplo, ejecutándolos)

Estándares: Model-Driven Architecture Iniciativa MDA de OMG Es un marco para definir estándares: MOF UML XML SOAP SPEM RAS....

La práctica Modelos Observables Es necesario que las herramientas nos den información sobre errores, al igual que lo hacen los compiladores (o los depuradores)

...La práctica Modelos ejecutables El “hola_mundo” Debe ser posible trabajar con modelos incompletos (pero bien formados) Eficiencia del sistema generado 15 % de diferencia con las herramientas actuales

...La práctica Escalabilidad Grandes sistemas:  Tiempo de generación/compilación del sistema  Tiempo de generación/compilación de cada incremento En realidad el tiempo de generación representa un 10 % Integración con sistemas legados

Modelado y lenguajes

Lenguajes para MDA/MDD

Evolución de UML Otros métodos Booch’91 OMT-1 OOSE Booch’93 OMT-2 OOPSLA’95 Método Unificado 0.8 Junio 96 y Octubre 1996 UML 0.9 & 0.91 UML 1.0 Publicación de UML 1.0 Enero 1997 UML 1.1 Publicación de UML 1.1 Septiembre 1997 Colaboradores y expertos Documentos públicos Fragmentación Unificación Estandarización UML 1.3 Abril 1999: septiembre de 2001 UML 1.4 UML 1.5 UML ?

Críticas a UML 1.X excesivo tamaño, complejidad gratuita, semántica imprecisa, personalización limitada, Soporte inadecuado para desarrollos basados en componentes, implementaciones no estándar falta de soporte para intercambio de diagramas.

Qué ha ido mal en UML 1.X Does not fully exploit MDD potential of models, E.g., “C++ in pictures” Inadequate modeling capabilities Business and similar processes modeling Large-scale systems Non-functional aspects (quality of service specifications) Too complex Too many concepts Overlapping concepts Inadequate semantics definition Vague or missing (e.g., inheritance, dynamic semantics) Informal definition (not suitable for code generation or executable models) No diagram interchange capability Not fully aligned with MOF Leads to model interchange problems (XMI)

Requisitos para UML 2.0 Requisitos de la infraestructura: se refieren a la arquitectura, reestructuración y mecanismos de extensión. Indican cómo UML 2.0 es definido y estructurado como un metamodelo. Requisitos de la superestructura: se refieren al refinamiento y extensión de la notación y la semántica de UML 1.x. Requisitos generales: afectan tanto a los cambios en la infraestructura como a los de la superestructura.

Qué se le pide a UML 2.0 Se ha dividido la petición en varios RPF (peticiones de propuestas)

UML 2.0 RPF "UML 2.0 Infrastructure RFP". Documento OMG ad/ UML interno base conceptual precisa para soporte de MDA "UML 2.0 Superstructure RFP". Documento OMG ad/ Características para el usuario Capacidades nuevas para sistemas grandes Consolidación

...UML 2.0 RPF "UML 2.0 OCL RPF". Documento OMG ad/ Lenguaje de restricciones Alineamiento con UML "UML 2.0 Diagram Interchange RFP". Documento OMG ad/ Estándar de intercambio de diagramas Incluye información gráfica

UML 2.0 Infrastructure RFP Solicitaba propuestas que mejorasen las bases arquitectónicas de UML, incluyendo su núcleo y sus mecanismos de extensión: - Mejorar la alineación arquitectónica con otros estándares de modelado del OMG, como MOF (Meta Object Facility) y XMI (XML Metadata Interchange). - Reestructurar la arquitectura del lenguaje, para que fuera más sencillo de entender, implementar y extender, manteniendo la semántica que ya había sido contrastada. - Proporcionar perfiles y mecanismos de extensión de primera clase (metaclases) que fueran consistentes con la arquitectura del metamodelo.

UML 2.0 Superstructure RFP Solicitaba propuestas que actualizasen y mejorasen el soporte que UML proporciona al desarrollo del software, en áreas tales como desarrollo basado en componentes, modelado de procesos de negocios, modelado arquitectónico modelos ejecutables Requería la revisión de ciertos aspectos estructurales y de comportamiento.

Componentes y arquitectura Mejorar el soporte para desarrollos basados en componentes. Era necesario demostrar que se podían especificar contenedores de ejecución y perfiles para las principales arquitecturas de componentes, como EJB y COM+ Aumentar el soporte para arquitecturas de tiempo de ejecución (comparar modelos ejecutables) incluyendo la especificación de estructuras jerárquicas y comportamientos dinámicos.

Revisión de ciertos aspectos... Refinar la semántica de las relaciones, incluyendo generalización, asociación y dependencia. Mejorar el encapsulamiento y la escalabilidad en los modelos de comportamiento, especialmente en los diagramas de estado y en los diagramas de interacción. Refinar la semántica gráfica de las actividades, centrándose en la gestión de eventos y el flujo de control y de objetos.

UML 2.0 OCL RFP Solicitaba propuestas que definiesen un metamodelo de Lenguaje de Restricciones de Objetos (OCL) acorde al metamodelo de UML. Esto incrementaría la precisión y consistencia de las implementaciones OCL y facilitaría el intercambio de constructores OCL entre distintas herramientas. Aunque se la Infraestructura como la Superestructura utilizan OCL para especificar sus reglas, ninguno de sus respectivos RFP dependen de éste.

UML 2.0 Diagram Interchange RFP Solicitaba propuestas que definieran un metamodelo para el intercambio de elementos de diagramas entre herramientas UML. Este metamodelo necesitaría soportar el intercambio de características tales como la posición de los elementos, el agrupamiento de elementos, la alineación de elementos, las configuraciones de las fuentes, los caracteres y los colores.

Facilidad Meta-Objetos (MOF) MOF, Meta-Object Facility es un lenguaje para definir lenguajes de modelado Permite a los usuarios definir totalmente nuevos lenguajes a partir de metamodelos Fue también definido por el OMG y actualmente se encuentra en su versión 2.0 La alineación del metamodelo UML 2.0 con el metamodelo MOF simplificará el intercambio de modelos vía XMI y la interoperabilidad cruzada entre herramientas. La especificación del núcleo unificado MOF 2.0 debe estar arquitectónicamente alineada con la Infraestructura de UML

Arquitectura de Lenguajes de Modelado MOF define una Arquitectura de Lenguajes de Modelado en la que existen 4 capas o niveles: – Nivel M3: MOF. – Nivel M2: UML. – Nivel M1: Modelo del usuario. – Nivel M0: Instancias en tiempo de ejecución.

Arquitectura de UML/MOF

Situación actual: finalización UML 2.0 Infrastructure RFP: adoptado en agosto de 2003 la especificación final UML 2.0 Superstructure RFP: adoptada en agosto de 2003 la especificación final UML 2.0 OCL RFP: adoptado en agosto de 2003 el borrador de la especificación, UML 2.0 Diagram Interchange RFP: adoptado en julio de 2003 el borrador de la especificación, Se aprobó en agosto de 2005

Infraestructura a) Alineación arquitectónica y reestructuración b) Extensibilidad

a) Alineación arquitectónica y reestructuración Aunque el metamodelo UML 1.x era compatible con el metamodelo MOF, no se ceñía estrictamente al patrón de metamodelo de 4 niveles, en el que cada metamodelo es una instancia de sólo un meta-metamodelo En UML 2.0 el metamodelo UML está perfectamente alineado con el metamodelo MOF Además, el núcleo de UML y el núcleo de MOF deben compartir los mismos elementos de metamodelo,

UML 2.0 y MOF 2.0

b) Extensibilidad Los perfiles UML incorporan mecanismos de extensión (estereotipos, valores etiquetados y restricciones) que permiten personalizarlo para distintas aplicaciones y tecnologías. En el OMG se está trabajando con ellos, algunos ya han sido adoptados y otros están en proceso de adopción. Por ejemplo existen perfiles para: CORBA IDL, Modelo de Componentes CORBA (CCM), Computación de Empresa de Objetos Distribuidos (EDOC). Se ha incluido un mecanismo de extensibilidad de primera clase, que permite a los desarrolladores definir y añadir sus propias metaclases (que serán instancias de las meta-metaclases MOF), dando así soporte a la "familia de lenguajes“ basada en UML.

Superestructura Pensada para el modelado arquitectónico Objetos con estructura externa e interna (objetos arquitectónicos) Modelado de sistemas complejos La estructura deseada es declarada (asserted) más que construida Constructor de clase crea la estructura deseada automáticamente El destructor de la clase hace la limpieza automáticamente Expresividad, fiabilidad y productividad Basado en lenguajes de descripción arquitectónica (ADLs) UML-RT profile: Selic and Rumbaugh (1998) ACME: Garlan et al. SDL (ITU-T standard Z.100)

Nuevos elementos Clases estructuradas Puertos Protocolos Componentes...

Clases estructuradas

Puertos

Protocolos

Componentes

Sumario de UML 2.0 First major revision of UML Original standard had to be adjusted to deal with MDD requirements (precision, code generation, executability) UML 2.0: 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)

Arquitectura de UML/MOF

Descripción de los objetos en términos de sus propiedades y de sus relaciones Idea básica: describir un grupo de objetos similares en términos de clases, que son instanciadas para crear objetos individuales Los objetos se relacionan con las clases de las que son creados por la relación “SerInstanciaDe” (“IsInstanceOf”) Modelado de objetos

Una situación parecida ocurre con las relaciones. Una clase define los tipos de relaciones que sus instancias pueden tener con instancias de otras clases...Modelado de objetos

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... Las clases pueden participar en relaciones con otros objetos

...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

La idea de ver las clases como objetos puede ser aplicada repetidamente para crear una jerarquía de instanciación del clases y objetos En principio está jerarquía podría continuar hasta cualquier profundidad arbitraria, pero en la práctica no se extiende más allá de cuatro niveles de profundidad Terminología de metamodelado...

Si la jerarquía tiene una profundidad fijada, se puede utilizar un esquema de nombres para describir el nivel en que reside una entidad dada en la jerarquía de instanciación Terminología de metamodelado...

...Terminología de metamodelado