Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
-
Upload
ignacio-resendiz -
Category
Documents
-
view
3 -
download
0
Transcript of Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
![Page 1: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/1.jpg)
Arquitectura de software Arquitectura de software dirigida por modelosdirigida por modelos(Model-Driven Architecture)(Model-Driven Architecture)
Liliana FavreLiliana FavreUNCPBAUNCPBA
20062006
![Page 2: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/2.jpg)
UMLUML
(Unified Modeling (Unified Modeling Language)Language)
![Page 3: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/3.jpg)
UML UML
UML es un lenguaje paraUML es un lenguaje para
VisualizarVisualizar EspecificarEspecificar Construir Construir DocumentarDocumentar
artefactos de sistemas intensivos de softwareartefactos de sistemas intensivos de software
![Page 4: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/4.jpg)
Lenguajes de modelado, Lenguajes de modelado, modelos y diagramas modelos y diagramas
Un Un lenguaje de modeladolenguaje de modelado permite expresar los permite expresar los distintos modelos que se producen en el proceso de distintos modelos que se producen en el proceso de desarrollo. desarrollo.
Un Un modelomodelo es una representación abstracta de una es una representación abstracta de una especificación, un diseño o un sistema desde un punto especificación, un diseño o un sistema desde un punto de vista particular.de vista particular.
Un Un diagramadiagrama es una representación de (parte de) un es una representación de (parte de) un modelo de diseñomodelo de diseño
Un modelo se representa por uno o más Un modelo se representa por uno o más diagramasdiagramas
![Page 5: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/5.jpg)
Lenguaje de Modelado Lenguaje de Modelado UML 2.0UML 2.0
Elementos primitivos de modelado Elementos primitivos de modelado (estáticos, dinámicos, agrupamiento, anotaciones)(estáticos, dinámicos, agrupamiento, anotaciones)
RelacionesRelaciones DependenciaDependencia AsociaciónAsociación GeneralizaciónGeneralización RealizaciónRealización
Diagramas UML (13 diagramas)Diagramas UML (13 diagramas) Diagramas estáticosDiagramas estáticos Diagramas de comportamientoDiagramas de comportamiento
![Page 6: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/6.jpg)
RELACIONESRELACIONES
DependenciaDependencia
Una relación semántica entre dos elementos, tal queUna relación semántica entre dos elementos, tal que
un cambio en una de ellos (el independiente) puedeun cambio en una de ellos (el independiente) puede
afectar al otro (el dependiente). afectar al otro (el dependiente).
A BA B
““B depende de A”B depende de A”
![Page 7: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/7.jpg)
RELACIONESRELACIONES
AsociaciónAsociación
Es una relación estructural que describe unEs una relación estructural que describe un
conjunto de links, siendo un link una conexiónconjunto de links, siendo un link una conexión
entre objetosentre objetos
0..1 *0..1 *
empleador empleadoempleador empleado
![Page 8: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/8.jpg)
RELACIONESRELACIONES
GeneralizaciónGeneralización
Una relación de generalización/especialización
en la que el elemento especializado
(descendiente) se construye sobre la
especificación del elemento generalizado
(ancestro)
![Page 9: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/9.jpg)
RELACIONESRELACIONES
RealizaciónRealización
Es una relación semántica en la que unEs una relación semántica en la que un
clasificador, tal como una interfaz o un caso declasificador, tal como una interfaz o un caso de
uso, especifica un “contrato” que otrouso, especifica un “contrato” que otro
clasificador, tal como una clase o unaclasificador, tal como una clase o una
colaboración, garantiza llevar a cabo.colaboración, garantiza llevar a cabo.
![Page 10: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/10.jpg)
DIAGRAMAS UMLDIAGRAMAS UML
Diagramas estáticosDiagramas estáticos Diagrama de clases
Diagrama de objetos
Diagrama de componentes
Diagrama de estructura compuesta
Diagrama de paquetes
Diagrama de despliegue
![Page 11: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/11.jpg)
Diagrama de clasesDiagrama de clases
Muestra un Muestra un conjunto de conjunto de
clases, interfaces, clases, interfaces,
colaboraciones y colaboraciones y
sus relaciones sus relaciones
![Page 12: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/12.jpg)
Diagrama de objetosDiagrama de objetos
Muestra una Muestra una instantánea instantánea
de un conjunto de de un conjunto de
objetos y sus objetos y sus relacionesrelaciones
![Page 13: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/13.jpg)
Diagrama de componentesDiagrama de componentes
Muestra la organización yMuestra la organización y
dependencias entre undependencias entre un
conjunto de componentes, laconjunto de componentes, la
vista de implementación devista de implementación de
un sistema. un sistema.
Están relacionados a diagramasEstán relacionados a diagramas
de clases en donde unde clases en donde un
componente se correspondecomponente se corresponde
con una o más clases,interfacescon una o más clases,interfaces
o colaboraciones.o colaboraciones.
![Page 14: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/14.jpg)
Diagrama de estructura compuestaDiagrama de estructura compuesta(Composite Structural Diagram)(Composite Structural Diagram)
Muestra la estructuraMuestra la estructura
interna (incluyendointerna (incluyendo
partes y conectores) departes y conectores) de
un clasificador o unaun clasificador o una
colaboración estructuradacolaboración estructurada. .
![Page 15: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/15.jpg)
Diagrama de paquetesDiagrama de paquetes
Muestra laMuestra la
descomposición deldescomposición del
modelo en unidades modelo en unidades dede
organización y susorganización y sus
dependencias.dependencias.
![Page 16: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/16.jpg)
Diagrama de despliegueDiagrama de despliegue
Muestra los enlaces deMuestra los enlaces de
comunicación físicacomunicación física
entre elementos deentre elementos de
hardware y las hardware y las relacionesrelaciones
entre máquinas físicas entre máquinas físicas yy
procesos: qué se procesos: qué se ejecutaejecuta
y dóndey dónde
![Page 17: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/17.jpg)
Diagramas UMLDiagramas UML
Diagramas de comportamientoDiagramas de comportamiento Diagramas de casos de uso Diagrama de secuencia Diagrama de colaboración Diagrama de estados Diagrama de actividades Diagrama cronológico Diagrama general de interacciones
![Page 18: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/18.jpg)
Diagrama de casos de usoDiagrama de casos de uso
Muestra un conjunto de casos de uso y Muestra un conjunto de casos de uso y actores y susactores y sus
relacionesrelaciones
![Page 19: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/19.jpg)
Diagrama de secuenciaDiagrama de secuencia
Es un Es un diagrama dediagrama de
interaccióninteracción que muestra que muestra loslos
objetos y actores queobjetos y actores que
participan en unaparticipan en una
colaboración poniendo colaboración poniendo elel
énfasis en el énfasis en el ordenamientoordenamiento
en el tiempo de losen el tiempo de los
mensajes mensajes
![Page 20: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/20.jpg)
Diagrama de colaboraciónDiagrama de colaboración
Un diagrama de Un diagrama de interaccióninteracción
que pone el énfasis que pone el énfasis en laen la
organización organización estructural deestructural de
los objetos o roles los objetos o roles queque
envían y reciben envían y reciben mensajes.mensajes.
![Page 21: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/21.jpg)
Diagrama de estadosDiagrama de estados
Muestra un Muestra un autómataautómata
que consiste de que consiste de estados,estados,
transiciones, eventos transiciones, eventos yy
actividadesactividades
![Page 22: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/22.jpg)
Diagrama de actividadesDiagrama de actividades
Muestra la Muestra la estructura deestructura de
un proceso u otro un proceso u otro cálculocálculo
como el flujo de como el flujo de controlcontrol
y datos paso a paso y datos paso a paso en elen el
cálculo.cálculo.
![Page 23: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/23.jpg)
Diagrama cronológicoDiagrama cronológico(Timing Diagram)(Timing Diagram)
Es un diagrama deEs un diagrama de
interacción que interacción que muestramuestra
tiempos a lo largo detiempos a lo largo de
diferentes objetos odiferentes objetos o
roles, y no roles, y no secuenciassecuencias
relativas de relativas de mensajesmensajes
![Page 24: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/24.jpg)
Diagrama de interacciones generalDiagrama de interacciones general(Interaction Overview Diagram)(Interaction Overview Diagram)
Es un híbrido de Es un híbrido de
diagramas de diagramas de actividadactividad
y de secuencia.y de secuencia.
![Page 25: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/25.jpg)
Diagramas estáticos UMLDiagramas estáticos UML
Diagrama de clasesDiagrama de clases
![Page 26: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/26.jpg)
Diagrama de clasesDiagrama de clases
Es el diagrama más común en modelos orientados aEs el diagrama más común en modelos orientados a
objetos.objetos.
Elementos de un diagrama de clasesElementos de un diagrama de clases ClasesClases
Interfaz, clases abstractas, clases parametrizadasInterfaz, clases abstractas, clases parametrizadas Relaciones de dependencia, generalización y Relaciones de dependencia, generalización y
asociaciónasociación ColaboracionesColaboraciones Notas y constraintsNotas y constraints
![Page 27: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/27.jpg)
Diagrama de clases- Diagrama de clases- EjemploEjemplo
![Page 28: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/28.jpg)
Diagrama de claseDiagrama de claseClasesClases
Una clase es una descripción de un conjunto deUna clase es una descripción de un conjunto de
objetos que comparten los mismos atributos,objetos que comparten los mismos atributos,
operaciones, relaciones y semántica.operaciones, relaciones y semántica.
nombrenombre
atributosatributos
operacionesoperaciones
![Page 29: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/29.jpg)
Diagrama de clases Diagrama de clases ResponsabilidadesResponsabilidades
Una responsabilidad es un contrato o unaUna responsabilidad es un contrato o una
obligación de una clase.obligación de una clase. ShipmentShipment
ResponsabilitiesResponsabilities --maintain the information--maintain the information
regarding products shipped regarding products shipped
against an order against an order
--track the status and location of--track the status and location of
the shipped productsthe shipped products
![Page 30: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/30.jpg)
Diagrama de clasesDiagrama de clasesVisibilidadVisibilidad
UML permite diferentes formas de acceso aUML permite diferentes formas de acceso a
miembros de una clase:miembros de una clase:
+ Público+ Público # Protegido# Protegido - Privado- Privado
![Page 31: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/31.jpg)
Diagrama de clasesDiagrama de clasesRelacionesRelaciones
Las relaciones más importantes entre clases son:Las relaciones más importantes entre clases son:
Dependencia Dependencia GeneralizaciónGeneralización
AsociaciónAsociación
![Page 32: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/32.jpg)
Diagrama de clasesDiagrama de clasesAsociacionesAsociaciones
Una Una asociaciónasociación es una relación estructural que es una relación estructural que
especifica que objetos de una clase estánespecifica que objetos de una clase están
conectados a objetos de otraconectados a objetos de otra
Tipos de asociacionesTipos de asociaciones UnariaUnaria BinariaBinaria N-ariaN-aria
![Page 33: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/33.jpg)
Diagrama de clasesDiagrama de clasesAsociacionesAsociaciones
Multiplicidad Multiplicidad nombrenombre
0..1 Trabaja-para *0..1 Trabaja-para * empleador empleadoempleador empleado rol rol
![Page 34: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/34.jpg)
Diagrama de clasesDiagrama de clasesAsociacionesAsociaciones
NombreNombreRolRolCuando una clase participa en una asociación,Cuando una clase participa en una asociación,tiene un rol específico que juega en tal relación.tiene un rol específico que juega en tal relación.MultiplicidadMultiplicidadPuede ser un rango de valores o un valor explícito:Puede ser un rango de valores o un valor explícito:
Exactamente 1Exactamente 1 11 Cero 0..1 Cero 0..1 0..10..1 Cero o másCero o más 0..*0..* Uno o más Uno o más 1..*1..* Subrango Subrango m..nm..n
NavegabilidadNavegabilidad
![Page 35: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/35.jpg)
Diagrama de clasesDiagrama de clasesAgregación- ComposiciónAgregación- Composición
Relaciones “es-parte-de”, una clase representa al “todo”Relaciones “es-parte-de”, una clase representa al “todo”y otra a las “partes”.y otra a las “partes”.Agregación Diamante blancoAgregación Diamante blancoComposición Diamante negroComposición Diamante negroEn una composición hay relación entre los ciclos deEn una composición hay relación entre los ciclos devida del “todo” y sus “partes”. La multiplicidad en elvida del “todo” y sus “partes”. La multiplicidad en elextremo del “todo” en una composición debe ser 1 óextremo del “todo” en una composición debe ser 1 ó0..10..1
una “parte” no puede pertencer a más de un una “parte” no puede pertencer a más de un “todo”“todo”
![Page 36: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/36.jpg)
Diagrama de clasesDiagrama de clasesAsociacionesAsociaciones
![Page 37: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/37.jpg)
Diagrama de clasesDiagrama de clasesInterfazInterfaz
Una interfaz es una colección de operaciones queUna interfaz es una colección de operaciones que
son usadas para especificar un servicio de unason usadas para especificar un servicio de una
claseclase No especifican estructura ( no tiene atributos)No especifican estructura ( no tiene atributos) No tiene asociadas implementaciones con ninguna de No tiene asociadas implementaciones con ninguna de
las operacioneslas operaciones
No necesita especificar todas las operacionesNo necesita especificar todas las operaciones Una clase podría incluir varias interfaces diferentes Una clase podría incluir varias interfaces diferentes
![Page 38: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/38.jpg)
Diagrama de clasesDiagrama de clasesInterfacesInterfaces
![Page 39: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/39.jpg)
Diagrama de clasesDiagrama de clasesClases AbstractasClases Abstractas
Pueden tener implementaciones definidas paraPueden tener implementaciones definidas para
algunas de sus operaciones ( al menos una noalgunas de sus operaciones ( al menos una no
está definida)está definida)
Una clase abstracta en la que ninguna de lasUna clase abstracta en la que ninguna de las
operaciones tiene implementación y no tieneoperaciones tiene implementación y no tiene
atributos es lo mismo que una interfaz.atributos es lo mismo que una interfaz.
![Page 40: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/40.jpg)
Diagrama de clasesDiagrama de clasesClases AbstractasClases Abstractas
![Page 41: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/41.jpg)
Diagrama de clasesDiagrama de clasesClases parametrizadasClases parametrizadas
![Page 42: Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.](https://reader035.fdocuments.net/reader035/viewer/2022062617/54ba5d8a49795953418b5d1f/html5/thumbnails/42.jpg)
Las gráficas fueron extraídas de Las gráficas fueron extraídas de los siguienteslos siguientes
textos:textos:
Booch, G., Rumbaugh, J., Jacobson, I. The Unified Modeling Booch, G., Rumbaugh, J., Jacobson, I. The Unified Modeling Language. User Guide. Addison Wesley. (2005)Language. User Guide. Addison Wesley. (2005)
Stevens, P. Pooley R. Utilización de UML en Ingeniería del Stevens, P. Pooley R. Utilización de UML en Ingeniería del software con objetos y componentes (2002)software con objetos y componentes (2002)