Está en la página 1de 73

INGENIERIA DE SOFTWARE 2

ARQUITECTURA DE SOFTWARE
DIRIGIDA POR MODELOS
(MODEL-DRIVEN ARCHITECTURE)

ROGELIO COHELLO AGUIRRE


UML
(Unified Modeling Language)
UML

UML es un lenguaje para

• Visualizar
• Especificar
• Construir
• Documentar
artefactos de sistemas intensivos de software
LENGUAJES DE MODELADO,
MODELOS Y DIAGRAMAS
• Un lenguaje de modelado permite expresar los distintos
modelos que se producen en el proceso de desarrollo.
• Un modelo es una representación abstracta de una
especificación, un diseño o un sistema desde un punto de
vista particular.
• Un diagrama es una representación de (parte de) un
modelo de diseño
• Un modelo se representa por uno o más diagramas
LENGUAJE DE MODELADO UML 2.0
• Elementos primitivos de modelado
(estáticos, dinámicos, agrupamiento, anotaciones)

• Relaciones
• Dependencia
• Asociación
• Generalización
• Realización
• Diagramas UML (13 diagramas)
• Diagramas estáticos
• Diagramas de comportamiento
RELACIONES

Dependencia
Una relación semántica entre dos elementos, tal que
un cambio en una de ellos (el independiente) puede
afectar al otro (el dependiente).
A B
“B depende de A”
RELACIONES

Asociación
Es una relación estructural que describe un
conjunto de links, siendo un link una conexión
entre objetos
0..1 *
empleador empleado
RELACIONES

Generalizació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)
RELACIONES

Realización
Es una relación semántica en la que un
clasificador, tal como una interfaz o un caso de
uso, especifica un “contrato” que otro
clasificador, tal como una clase o una
colaboración, garantiza llevar a cabo.
DIAGRAMAS UML

Diagramas estáticos
• Diagrama de clases
• Diagrama de objetos
• Diagrama de componentes
• Diagrama de estructura compuesta
• Diagrama de paquetes
• Diagrama de despliegue
DIAGRAMA DE CLASES

Muestra un conjunto de
clases, interfaces,
colaboraciones y
sus relaciones
DIAGRAMA DE OBJETOS

Muestra una instantánea


de un conjunto de
objetos y sus relaciones
DIAGRAMA DE COMPONENTES
Muestra la organización y
dependencias entre un
conjunto de componentes, la
vista de implementación de
un sistema.
Están relacionados a diagramas
de clases en donde un
componente se corresponde
con una o más clases,interfaces
o colaboraciones.
DIAGRAMA DE ESTRUCTURA
COMPUESTA
(COMPOSITE STRUCTURAL
DIAGRAM)
Muestra la estructura
interna (incluyendo
partes y conectores) de
un clasificador o una
colaboración estructurada.
DIAGRAMA DE PAQUETES

Muestra la
descomposición del
modelo en unidades de
organización y sus
dependencias.
DIAGRAMA DE DESPLIEGUE

Muestra los enlaces de


comunicación física
entre elementos de
hardware y las relaciones
entre máquinas físicas y
procesos: qué se ejecuta
y dónde
DIAGRAMAS UML

Diagramas 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
DIAGRAMA DE CASOS DE USO

Muestra un conjunto de casos de uso y actores y sus


relaciones
DIAGRAMA DE SECUENCIA

Es un diagrama de
interacción que muestra los
objetos y actores que
participan en una
colaboración poniendo el
énfasis en el ordenamiento
en el tiempo de los
mensajes
DIAGRAMA DE COLABORACIÓN

Un diagrama de
interacción
que pone el énfasis en la
organización estructural de
los objetos o roles que
envían y reciben mensajes.
DIAGRAMA DE ESTADOS

Muestra un autómata
que consiste de estados,
transiciones, eventos y
actividades
DIAGRAMA DE ACTIVIDADES

Muestra la estructura de
un proceso u otro cálculo
como el flujo de control
y datos paso a paso en el
cálculo.
DIAGRAMA CRONOLÓGICO
(TIMING DIAGRAM)
Es un diagrama de
interacción que muestra
tiempos a lo largo de
diferentes objetos o
roles, y no secuencias
relativas de mensajes
DIAGRAMA DE INTERACCIONES
GENERAL
(INTERACTION OVERVIEW
DIAGRAM)
Es un híbrido de
diagramas de actividad
y de secuencia.
Diagramas estáticos UML
Diagrama de clases
DIAGRAMA DE CLASES

Es el diagrama más común en modelos orientados a


objetos.
Elementos de un diagrama de clases
• Clases
• Interfaz, clases abstractas, clases parametrizadas
• Relaciones de dependencia, generalización y asociación
• Colaboraciones
• Notas y constraints
DIAGRAMA DE CLASES- EJEMPLO
DIAGRAMA DE CLASE
CLASES
Una clase es una descripción de un conjunto de
objetos que comparten los mismos atributos,
operaciones, relaciones y semántica.

nombre

atributos

operaciones
DIAGRAMA DE CLASES
RESPONSABILIDADES
Una responsabilidad es un contrato o una

obligación de una clase. Shipment

Responsabilities
--maintain the information
regarding products shipped
against an order
--track the status and location of
the shipped products
DIAGRAMA DE CLASES
VISIBILIDAD
UML permite diferentes formas de acceso a
miembros de una clase:

• + Público
• # Protegido
• - Privado
DIAGRAMA DE CLASES
RELACIONES
Las relaciones más importantes entre clases son:

• Dependencia
• Generalización
• Asociación
DIAGRAMA DE CLASES
ASOCIACIONES
Una asociación es una relación estructural que
especifica que objetos de una clase están
conectados a objetos de otra
Tipos de asociaciones
• Unaria
• Binaria
• N-aria
DIAGRAMA DE CLASES
ASOCIACIONES

Multiplicidad nombre
0..1 Trabaja-para *

empleador empleado
rol
DIAGRAMA DE CLASES
ASOCIACIONES
Nombre
Rol
Cuando una clase participa en una asociación,
tiene un rol específico que juega en tal relación.
Multiplicidad
Puede ser un rango de valores o un valor explícito:
• Exactamente 1 1
• Cero 0..1 0..1
• Cero o más 0..*
• Uno o más 1..*
• Subrango m..n
Navegabilidad
DIAGRAMA DE CLASES
AGREGACIÓN- COMPOSICIÓN
Relaciones “es-parte-de”, una clase representa al “todo”
y otra a las “partes”.
Agregación Diamante blanco
Composición Diamante negro
En una composición hay relación entre los ciclos de
vida del “todo” y sus “partes”. La multiplicidad en el
extremo del “todo” en una composición debe ser 1 ó
0..1
• una “parte” no puede pertencer a más de un “todo”
DIAGRAMA DE CLASES
ASOCIACIONES
DIAGRAMA DE CLASES
INTERFAZ
Una interfaz es una colección de operaciones que
son usadas para especificar un servicio de una
clase
• No especifican estructura ( no tiene atributos)
• No tiene asociadas implementaciones con ninguna de las
operaciones
No necesita especificar todas las operaciones
• Una clase podría incluir varias interfaces diferentes
DIAGRAMA DE CLASES
INTERFACES
DIAGRAMA DE CLASES
CLASES ABSTRACTAS
Pueden tener implementaciones definidas para
algunas de sus operaciones ( al menos una no
está definida)
Una clase abstracta en la que ninguna de las
operaciones tiene implementación y no tiene
atributos es lo mismo que una interfaz.
DIAGRAMA DE CLASES
CLASES ABSTRACTAS
DIAGRAMA DE CLASES
CLASES PARAMETRIZADAS
DIAGRAMAS DE UML

State
State
Use Case Diagramas de
Diagrams
Use Case Diagrams State
Use Case Diagramas de
Diagrams Clases State
Use Case Diagrams Diagramas de
Diagrams
Diagramas de
Diagrams Casos de Uso Diagrams
Diagrams Objetos
Secuencia

Scenario State
Scenario State
Diagramas de
Diagrams Diagramas de
Diagrams
Diagrams Diagrams
Colaboración Modelo Componentes

Scenario Component
Scenario Component
Diagramas
Diagrams de
Diagramas de
Diagrams Diagrams
Diagrams Distribución
Estados Diagramas de
Actividad
42
“Un modelo es una descripción completa de un sistema desde una perspectiva concreta”
DIAGRAMAS DE UML
State
State
Use Case Diagramas de
Diagrams
Use Case Diagrams State
Use Case Diagramas de
Diagrams Clases State
Use Case Diagrams Diagramas de
Diagrams
Diagramas de
Diagrams Casos de Uso Diagrams
Diagrams Objetos
Secuencia

Estructural
Interacción Comportamiento
Scenario State
Scenario State
Diagramas de
Diagrams Diagramas de
Diagrams
Diagrams Diagrams
Colaboración Modelo Componentes

Implementación
Scenario Component
Scenario Component
Diagramas
Diagrams de
Diagramas de
Diagrams Diagrams
Diagrams Despliegue
Estados Diagramas de
Actividad
DIAGRAMAS DE CLASE

• Los diagramas de clase muestran la vista estática de un sistema a


través de un conjunto de clases, interfaces y colaboraciones junto con
sus relaciones.

• Un Diagrama de Clases muestra la abstracción de una parte del


dominio.

• Son los diagramas más comunes en el modelado de sistemas


orientados a objetos

44
DIAGRAMAS DE CLASE

45
DIAGRAMAS DE OBJETOS

• Un diagrama de objetos muestra un conjunto de objetos y sus


relaciones.
• Representan un instante de la instancia de los elementos
encontrados en el diagrama de clases.
• Un objeto se puede ver desde dos perspectivas relacionadas:
como una entidad de un determinado instante de tiempo que
posee un valor específico y como un poseedor de identidad
que tiene distintos valores a lo largo del tiempo

46
DIAGRAMAS DE CASOS DE USO

• Un diagrama de casos de uso muestra la vista estática de


casos de uso a través de un conjunto de casos de uso, actores
y sus relaciones.
• No pertenece estrictamente al enfoque orientado a objeto, es
una técnica para captura de requisitos.
• Los casos de uso intervienen durante todo el ciclo de vida. El
proceso de desarrollo estará dirigido por los casos de uso.

47
DIAGRAMAS DE CASOS DE USO

48
DIAGRAMAS DE INTERACCIÓN

• Un diagrama de interacción permite visualizar como un


conjunto de objetos interactúan entre sí mediante sus
relaciones y mensajes.
• Existen dos tipos de diagramas de interacción, los de
secuencia y los de colaboración.
• El diagrama de secuencia las acciones entre objetos se
ordenan de acuerdo al tiempo en que ocurren los mensajes.
• El de colaboración el énfasis es en la organización estructural
de los objetos que envían y reciben mensajes.
49
DIAGRAMAS DE INTERACCIÓN

50
DIAGRAMAS DE ESTADO

• El diagrama de estados también maneja la vista dinámica del


sistema, y consiste en una máquina de estados formada por
estados, transiciones, eventos y actividades.

• Estos diagramas permiten el modelado del comportamiento de


una interface, clase o colaboración.

• Muestra el conjunto de estados por los cuales pasa un objeto


durante su vida en una aplicación, junto con los cambios que
permiten pasar de un estado a otro.

51
DIAGRAMAS DE ESTADO

52
DIAGRAMAS DE ACTIVIDADES

• El diagrama de actividades es una clase especial del


diagrama de estados y muestra el flujo desde una actividad a
otra dentro del sistema y sirven para modelar las funciones
del mismo.

• Un diagrama de actividades es provechoso para entender el


comportamiento de alto nivel de la ejecución de un sistema, sin
profundizar en los detalles internos de los mensajes.

53
DIAGRAMAS DE ACTIVIDADES

54
DIAGRAMAS DE COMPONENTES

• Los diagramas de componentes describen los elementos físicos del


sistema y sus relaciones.

• Muestran las opciones de realización incluyendo código fuente,


binario y ejecutable.

• Los componentes representan todos los tipos de elementos software


que entran en la fabricación de aplicaciones informáticas.

55
DIAGRAMAS DE COMPONENTES

56
DIAGRAMAS DE DESPLIEGUE

• Los diagramas de despliegue muestran la disposición


física de los distintos nodos que componen un sistema y el
reparto de los componentes sobre dichos nodos.

• La vista de despliegue representa la disposición de las


instancias de componentes de ejecución en instancias de
nodos conectados por enlaces de comunicación.

57
DIAGRAMAS DE DESPLIEGUE

58
RESÚMEN DE DIAGRAMAS UML DE UN SISTEMA
SOFTWARE
Repository DocumentList

Diagramas Estáticos FileMgr

fetchDoc( )
sortByName( )

FileList
DocumentList

add( )
delete( )
Document
name : int
docid : int
numField : int
get( )
open( )
close( )
read( )
read() fill the
code..
FileManager

Document
sortFileList( )
fList create( )
fillDocument( )
add( )
delete( )
1

GraphicFile
rep
File FileList
Repository File

Use Case 1 (from Persistence)


read( )
GrpFile
name : char * = 0
read( )
Actor A Actor B
readDoc( )
readFile( ) open( )
create( )
fillFile( )

Use Case 2

Use Case 3
Diagramas de Clases Diagramas de Componentes

Diagramas de Casos de Uso mainWnd : MainWnd


Window95
Windows95

Windows95

¹®¼°ü¸®
Ŭ¶óÀ̾ðÆ®.EXE
¹®¼°ü¸® ¾ÖÇø´

fileMgr : FileMgr gFile : GrpFile Windows


NT

Solaris

¹®¼°ü¸® ¿£Áø.EXE

fileMgr : FileMgr Alpha


UNIX
ÀÀ¿ë¼¹ö.EXE

Windows
NT

IBM
Mainframe

document : Document µ¥ÀÌŸº£À̽º¼¹ö

repository : Repository
BO Contrapartida
[operación insertada]

Diagramas de Despliegue
Validar y Completar
Operación -Operador BO

Diagramas de Objetos
-K+ (interfaz)

-KBO
[ ok ] Calcular Flujos
de Caja

Notificar Error a Contabilizar -KBO


FO Operación -Host:Contabilidad (interfaz)

[error operación]
[ prima es en divisa ]
Generar Avances
para Extranjero
-Operador BO

-KBO
-Host: Liquidaciones (interfaz)

Enviar
Confirmación
Evalua
Confirmación
-KBO
-Host:SWIFT (interfaz)

-KBO

[ confirmación rechazada ]

Registrar Error

Diagramas Dinámicos
-Operador BO
-KBO (interfaz) [operación contratada]

Identificar
Motivo Rechazo
-Operador BO

Determinar Acciones
Correcion

[operacion no contratada]

Diagramas de Actividad
mainWnd fileMgr : document : gFile repository
user FileMgr Document
9: sortByName ( )

add file ƯÁ¤¹®¼¿¡ ´ëÇÑ º¸±â¸¦ 1: Doc view request ( )


»ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.

2: fetchDoc( )

mainWnd : MainWnd
3: create ( )

1: Doc view request ( )

4: create ( )
Writing 2: fetchDoc( )
add file [ numberOffile==MAX ] /
flag OFF gFile : GrpFile
4: create ( ) 5: readDoc ( )

8: fillFile ( )
Openning
ÈÀÏ°ü¸®ÀÚ´Â Àоî¿Â 6: fillDocument ( )
user : Clerk ¹®¼ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼
°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.

close file fileMgr : FileMgr 7: readFile ( )

3: create ( )
6: fillDocument ( ) 8: fillFile ( )

close file
Closing È¸é °´Ã¼´Â ÀоîµéÀÎ 9: sortByName ( )
Reading °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î
Á¤·ÄÀ» ½ÃÄÑ È¸é¿¡
7: readFile ( ) º¸¿©ÁØ´Ù.

5: readDoc ( )
document : Document
repository : Repository

59
Diagramas de Estados Diagramas de Colaboracion Diagramas de Secuencia
REGLAS DE UML

• Los bloques de construcción de UML no se pueden


combinar de cualquier manera.
• UML tiene un número de reglas que especifican a qué
debe parecersce un modelo bien formado.
• UML tiene reglas semánticas para:
• Nombres
• Como llamar a los elementos, relaciones y diagramas

60
REGLAS DE UML

• UML tiene reglas semánticas para:


• Alcance
• El contexto que da un significado específico a un nombre
• Visibilidad
• Cómo se pueden ver y utilizar esos nombre por otros
• Integridad
• Cómo se relacionan apropiada y consistentemente unos elementos
con otros
• Ejecución
• Qué significa ejecutar o simular un modelo

61
REGLAS DE UML

• Además de los modelos bien formados, se pueden


construir modelos que sean:
• Abreviados: Ciertos elementos se ocultan para simplificar la
vista del modelo.
• Incompletos: Pueden estar ausente ciertos elementos
• Inconsistentes: No se garantiza la integridad del modelo

62
MECANISMOS COMUNES

• UML cuenta con ciertos patrones comunes que se pueden


utilizar en los diferentes diagramas con el fin de ayudar
asu interpretación y calridad.
• Los mecanismos son:
• Especificaciones
• Adornos
• Divisiones comunes
• Mecanismos de extensibilidad
63
MECANISMOS COMUNES:
ESPECIFICACIONES
• Las especificaciones de UML proporcionan una base semántica que
incluye a todos los modelos de un sistema.
• Cada elemento esta relacionado con otros de manera consistente.
• UML es algo más que un lenguaje gráfico.
• La notación gráfica de UML se utiliza para visualizar un modelo.
• La especificación de UML se utiliza para enunciar los detalles del
sistema.

64
MECANISMOS COMUNES: ADORNOS

• La mayoria de los elementos de UML tienen una única y clara


notación gráfica que proporciona una representación visual de
los aspectos más importantes del elemento.

• A estas notaciones se les puede agregar detalles “que


aclaren” o complementen la información que se quiere mostrar.

• A estos detalles adicionales se les conoce como adornos.

65
MECANISMOS COMUNES: DIVISIONES
COMUNES
• En el modelado OO, se pueden ver las cosas desde la
generalidad (abstración) y/o lo particular (concreto).

• Casi todos los bloque de construcción presentan esta


posibilidad.
• Clase / Objeto
• Casos de Uso / Instancias casos de uso
• Componentes / Instancias de componentes

66
MECANISMOS COMUNES: DIVISIONES
COMUNES
• Otra dicotomía que se suele presentar es la de que un
elemento nos presenta una “declaración” –interfaz- y
otro lo complementa haciendo su implementación.

67
MECANISMOS COMUNES:
EXTENSIBILIDAD
• UML proporciona un lenguaje estándar para escribir planos
de software, pero es posible que no sea suficiente para cubrir
todos los matices de todos los modelos en todos los dominios y
en todos los modelos.
• Los mecanismos de extensibilidad permiten configurar y
extender UML para las necesidades de un proyecto.
• Los mecanismos que permiten extender el lenguaje en UML
son:
• Esteriotipos
• Valores etiquetados
• Restricciones

68
MECANISMOS COMUNES
EXTENSIBILIDAD
• Los esteriotipos permiten crear nuevos tipos de bloques de
construcción que deriven de los existentes, pero que sean
específicos a un problema.
• Valor Etiquetado, extiende las propiedades de un bloque de
construcción, permitiendo añadir nueva información en la
especificación de un elemento.
• Restricciones extiende la semántica de un bloque de construcción
de UML.

69
METODOLOGÍA DE DESARROLLO

Requerimientos Análisis Diseño Implementación Certificación

Modelo Modelo Modelo Modelo Modelo Modelo


Casos de Uso Análisis Diseño de Componentes de Despliegue de Certificación

Diagr. de
Diagr. de
Diagr. de
Diagr. de
Diagr. de
Diagr. Diagr.
de de Diagr. de
Casos deActividad
Uso Secuencia
Colaboración
Clases/Objetos
Estados
Componentes
Despliegue
70
LECTURAS RECOMENDADAS

71
BIBLIOGRAFIA

• El Lenguaje Unificado de Modelado UML –G. Booch- J.


Rumbauhugh – I Jacobson.
• UML Distilled Martin Fowler – Kendall Scott
• www.vico.org

72
Fin

73

También podría gustarte