Panorámica UML
Panorámica UML
Panorámica UML
¿Qué es un modelo?
• Es una simplificación de la realidad.
• Un buen modelo incluye los elementos esenciales
y omite aquellos que no resultan ser relevantes
para el nivel de abstracción que se desea
representar.
• Modelos posteriores
• Describir qué hará el software y cómo lo hará,
asignando entre los objetos las responsabilidades
para llevar a cabo el comportamiento del sistema.
El software
El mundo
Construido para entender. Construido para especificar.
Interpretado como una Interpretado como una
manifestación de hechos descripción de comportamiento
El software
El mundo
Construido para entender. Construido para especificar.
Interpretado como una Interpretado como una
manifestación de hechos descripción de comportamiento
ObjetoAmodificadoenestosmodelos por
aspectosdediseño. Expandidoenotros
Datos de A
ObjetoAmapeadoen
el modelodeanálisis
ComponenteA
del problema
Problemadel
mundoreal
Diseñodetallado
Diseñoarquitectónico
Fasedeanálisis
Fasedediseño
M odelosimplificadoquecaptalasemántica
del dominiodel problemaentérminosdelos M odelosquerepresentanel dominiodela
objetosrelacionadosysurepresentaciónpor solución. Afectados por aspectosde
mediodediagramasquemuestransu especificacióneimplementación.
estructuraycomportamiento. Copyright Cenfotec S.A. 2004
Vistas
• Es imposible captar los detalles de un sistema
complejo en una sola vista. Se debe comprender:
– La estructura de clases.
– Los mecanismos de herencia.
– Los comportamientos individuales de los objetos.
– Las interacciones entre los objetos.
– La dinámica del sistema en su conjunto.
I I III
II II
(a)
(b)
Vista estática.
Vista dinámica.
(estructura)
(comportamiento)
Relaciones entre objetos
ej. diagrama de clases.
Orden de acciones,
ej. diagrama de
secuencias.
El software
El mundo Modelos intermedios
Vista arquitectónica.
Dividir un sistema en
subsistemas
ej. Paquetes
Copyright Cenfotec S.A. 2004
Diagrama de interacción Diagrama de clases
Diagrama de transición de
estados
Orden
Item
envío
Proceso de Negocios
Sistema Computacional
Interfaz de Usuario
(Visual Basic,
Java, ..)
Lógica del Negocio
(C++, Java, ..)
Múltiples Sistemas
Servidor de BDs
(C++ & SQL, ..)
Modelar el sistema
independientemente
de la tecnología de Componentes
Reutilizados
implementación
Promover la reutilización
Copyright Cenfotec S.A. 2004
¿Qué es UML?
• UML = Unified Modeling Language
• Un lenguaje de propósito general para el modelaje
orientado a objetos
• Definido en documentos “OMG Unified Modeling
Language Specification”
• UML combina notaciones provenientes de:
– Modelado Orientado a Objetos
– Modelado de Datos
– Modelado de Componentes
– Modelado de Flujos de Trabajo (Workflows)
Copyright Cenfotec S.A. 2004
Situación de partida
• Diversos métodos y técnicas OO, con muchos
aspectos en común pero utilizando distintas
notaciones.
• Inconvenientes para el aprendizaje, aplicación,
construcción y uso de herramientas, etc.
• Pugna entre distintos enfoques (y correspondientes
gurúes)
Rumbaugh
Booch Jacobson
Odell
Meyer
Pre- and Post-conditions
Shlaer-Mellor UML
Object life cycles
Harel
State Charts
Gamma et. al.
Frameworks, patterns,
notes
Embly Wirfs-Brock
Singleton classes Responsabilities
Fusion
Operation descriptions,
message numbering
Copyright Cenfotec S.A. 2004
Aspectos novedosos
• Definición semi-formal del Metamodelo de UML
• Mecanismos de extensión en UML:
– Stereotypes
– Constraints
– Tagged Values
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 Despliegue
Estados Diagramas de
Actividad
Copyright Cenfotec S.A. 2004
Organización de los modelos
4+1 vistas de Kruchten (1995)
Vista de
Vista Lógica Implementación
Vista de los
Casos de Uso
Vista de Vista de
Procesos Distribución
Nombre de
paquete
Customers
Otra Clase
Customers
CheckingAccount
<<access>> (f rom Banking)
Banking Banking
CheckingAccount
Preparar Catálogo
Administrativo Sistema
Inventario
Tipos de Venta
Venta Normal
Venta en Rebajas
Vendedor
Venta en Ofertas
Solicitar Préstamo
Cliente
[Tarjeta Caducada]
<<extend>>
<<include>>
Reintegro Cuenta Corriente
<<include>>
prestar(video, socio)
verificar situación socio
registrar préstamo
entregar recibo
:Socio
:Video
5: entregar recibo
: Encargado 4: registrar préstamo
:Préstamo
Alumno
DNI : char[10]
número_exp : int
nombre : char[50]
alta()
poner_nota(asignatura : char *, año : int, nota : float)
matricular(cursos : asignatura, año : int)
listar_expediente()
dirige director
Departamento Profesor
0..1 1
empleador trabajadores
Empresa Empleado
* 1..*
Cargo
superior
nombre
sueldo 0..1
subordinado 1..*
Trabajador
{ disjunta, completa }
1..4 1..2 1
1 n
n
1 n 1 n
Avión Vuelo Reserva
n
{ disjunta, completa }
{ disjunta, completa }
alta baja
número_préstamos = 0
sin préstamos
Socio
número : int
nombre : char[50]
número_prestamos : int = 0
prestar devolver[ número_préstamos = 1 ]
alta()
baja()
prestar(código_libro : int, fecha : date)
devolver(código_libro : int, fecha : date) número_préstamos > 0
con préstamos
prestar
[ hay café ]
[ hay zumo ]
Encender
máquina
/ cafetera.On
Café en
preparación
indicador de fin
Solicitar
pasaje
Verificar
existencia vuelo
Dar detalles
vuelo
Informar alternativas y
precios
Seleccionar
vuelo
Solicitar Reservar
pago plazas
Confirmar plaza
Pagar reservada
pasaje
Emitir
billete
Interfaz de Terminal
Control y Análisis
Nodo
Acceso a BD Comment
Comment
Rutinas de Coneccion
Comment
Terminal de Consulta
Interfaz de Terminal
Rutinas de Coneccion
Comment Comment
Punto de Venta
Rutinas de Coneccion
Comment
Comment Comment
Acceso a BD
Servidor Central
Component Diagram:
Components / Servidor Rutinas de conexión
Central
Servidor Central
Rutinas de conexión
Punto de Venta
Punto de Venta Terminal de
Consulta Gestión de Cuentas Interfaz de Terminal
Terminal de Consulta
Rutinas de conexión Interfaz de Terminal
Component Diagram: Component Diagram:
Components / Punto de Components / Terminal
Venta de Consulta