Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2
Bibliografía
http://www.uml.org/
3
Contenidos
4
El lenguaje unificado de modelado, UML
5
Explosión de métodos OO en los noventa
OMT Coad/Yourdon
Booch Champeaux
Jacobson Martin/Odell
Shlaer-Mellor OOram
Wirfs-Broks BON
Fusion Open
Catalysis
¡Y muchos más! ¡Guerra de
métodos!
6
Evolución UML
• Grady Booch y Jim Rumbaugh comenzaron a unificar sus métodos
(Octubre, 1994).
• Borrador de UML (versión 0.8) (Octubre, 1995)
• Ivar Jacobson se une al proyecto (Noviembre, 1995).
• UML 0.9 y se crea un consorcio (Junio, 1996)
• OMG lanza una petición para un lenguaje unificado (1996)
• UML 1.0 es ofrecido al OMG (Enero, 1997)
• Se extiende el consorcio (Enero-Julio, 1997)
• UML 1.1 es ofrecido al OMG (Julio, 1997)
• OMG adopta UML 1.1 (Noviembre, 1997)
• Se crea el UML RTF (1998)
• UML 1.3 (Mayo 1999)
• UML 2.0 (principios de 2005)
7
Ventajas de la unificación
8
Objetivos en el diseño de UML
• Modelar sistemas, desde los requisitos hasta los
artefactos ejecutables desplegados en nodos,
utilizando técnicas OO.
• Cubrir las cuestiones relacionadas con el tamaño
propias de los sistemas complejos y críticos.
• Lenguaje utilizable por las personas y las máquinas
• Encontrar equilibrio entre expresividad y
simplicidad.
9
Modelado del Software
11
¿Construimos software de calidad?
¿Modelado es la solución?
12
Modelo
Estructural
1. cerrarEdicionSubasta(es)
int numAjudicaciones =
: Minimo(pujas.length(),
ControladorAnuncios articulos.length());
: Sistema
9. [1..numAdjs]* add(adj)
4. * cerrar()
: AnuncioSubasta : EdicionSubasta as : adjudicaciones :
AnuncioSubasta Adjudicacion
3. * as := get()
adj :
Se recorre la colección de
Adjudicacion
pujas obteniendo las pujas
: ArticuloConcreto
ganadoras (consideramos
que la colección está
ordenada de mayor a menor Se crean tantas adjudicaciones
valor de puja). como pujas ganadoras haya.
Cada adjudicación se asocia
con un ArticuloConcreto, una
puja adjudicataria y con la
subasta.
Modelo de
Comportamiento
Utilidad del modelado
17
Utilidad del modelado
• Los modelos:
– visualizan cómo es o queremos que sea el sistema
– especifican la estructura y comportamiento del
sistema.
– guían la construcción del sistema.
– documentan las decisiones.
18
Modelos en otras áreas
19
¿Qué es un modelo?
20
¿Qué es un modelo software?
21
Un modelo software
22
Modelos en UML
• Modelado de Casos de Uso
– Diagrama de Casos de Uso Diagramas no
• Modelado Estructural son modelos
– Diagrama de Clases
• Modelado de Comportamiento
– Diagramas de Interacción
– Diagramas de Estados
• Modelado de flujos de Actividades
– Diagramas de actividades
• Modelado de Implementación
– Diagrama de Componentes
• Modelado de Despliegue
– Diagramas de Despliegue
23
Tipos de modelo
• ¿En qué etapa del proceso se usa? ¿Análisis o
Diseño?
• ¿Cuál es su grado de detalle? ¿Abstracto o detallado?
• ¿Qué sistema describe? ¿Modelo de negocio o
modelo software?
• ¿Qué aspecto describe? ¿Estructural o de
comportamiento?
• ¿Es específico o independiente de la plataforma?
• ¿A qué plataforma va dirigido? EJB, JDBC, .NET,
CORBA, etc.
24
Propiedades del modelado
25
Contenidos
26
UML y el modelado
abrir()
cerrar()
Interface Gestión Pedidos
mover()
dibujar()
clase
ValidarTransaccio
n caso de uso
29
Elementos Estructurales
Gestor Eventos
clase activa
suspender() FormularioPedido
vaciarCola()
componente
<<artifact>>
window.dll
Servidor
nodo
artefacto
30
Elementos de Comportamiento
Interacción
Conjunto de mensajes intercambiados entre un conjunto
de objetos con un propósito particular.
dibujar
mensaje
31
Elementos de Comportamiento
Máquina de estados
Secuencia de estados por los que pasa un objeto durante
su vida en respuesta a eventos.
activado estado
32
Elementos de Agrupación
paquete
Modelo del Negocio
Retorna 0 si no Nota
existe el valor
34
Relaciones
Dependencia
0..1 *
Asociación
patron empleado
Generalización
Realización
35
Ejemplo
IteradorCuenta
Cuenta Domiciliacion
1 0..n
Ahorro Corriente
Operacion
Periodica
36
Diagramas de UML
• Diagrama de Casos de Uso Diagramas no
• Diagrama de Clases son modelos
• Diagrama de Objetos
• Diagrama de Secuencia
• Diagrama de Comunicación (UML 2.0)
• Diagrama de Estados
• Diagrama de Actividades
• Diagrama de Componentes
• Diagrama de Despliegue
• Diagrama de Estructura Compuesta (UML 2.0)
• Diagrama de Vista de interacción (UML 2.0)
• Diagrama de Paquetes (UML 2.0)
• Diagrama de Tiempos (UML 2.0)
38
Diagramas de UML
39
Modelos en UML
• Modelado de Casos de Uso
– Diagrama de Casos de Uso
• Modelado Estructural
– Diagrama de Clases
• Modelado de Comportamiento
– Diagramas de Interacción: Secuencia y Comunicación
– Diagramas de Estados
• Modelado de flujos de actividades (p.e. Modelo del Negocio)
– Diagramas de actividades
• Modelado Implementación
– Diagrama de Componentes
• Modelado de Despliegue
– Diagramas de Despliegue
40
Responsable Serv icio PE Alumno Sistema
Registrar Curso
Aprobar Curso
Modelo del
Preinscripción Negocio
Avisar
Admitidos
Matriculación
Hay alumnos?
no
Cambiar
admitidos Hay alumnos?
Diagrama
no
de
actividad
Cancelar Curso
Crear Proyecto
Cerrar Curso
Modelo de
Casos de Usos
Rechazar adjudicación
Sistema
Notif icar adjudicatario
Teleoperador Participante
9. [1..numAdjs]* add(adj)
4. * cerrar()
: AnuncioSubasta : EdicionSubasta as : adjudicaciones :
AnuncioSubasta Adjudicacion
3. * as := get()
adj :
Se recorre la colección de
Adjudicacion
pujas obteniendo las pujas
: ArticuloConcreto
ganadoras (consideramos
que la colección está
ordenada de mayor a menor Se crean tantas adjudicaciones
valor de puja). como pujas ganadoras haya.
Cada adjudicación se asocia
con un ArticuloConcreto, una
puja adjudicataria y con la
subasta.
Modelo de
Comportamiento
Diagrama de introducirProducto
estado
Terminar Venta
manejarRespuesta
efectuar Pago Efectivo Espera
Pago
Autorizacion
Pago
efectuar Pago Tarjeta
Modelo de
Comportamiento
Mecanismos comunes de UML
Persona
Elena
nombre
direccion
telefono
Elena :
Persona
: Persona
46
Mecanismos comunes de UML
IOrtografia
asistenteOrtografico
IDiccionario
IUnknown
47
Mecanismos comunes de UML
Pedido
cliente: Persona
Clase Clase
estereotipad estereotipad
a a
<<Actor>>
Cliente
IComparator
Cliente
50
Mecanismos de extensibilidad de UML
valor etiquetado
estereotipo
<<authored>>
ColaEventos
<<Exception>> <<authored>>
añadir()
Overflow quitar() version: 3.2;
vaciar() autor: jgm
{ordenado}
restricción
51
Mecanismos de extensibilidad de UML
{xor}
restricciones
52
¡Hola, Mundo!
import java.awt.Graphics;
class HolaMundo extends java.applet.Applet {
public void paint (Graphics g) {
g.drawString (“¡Hola, Mundo!”,10,10);
}
}
HolaMundo
g.drawString
("Hola, Mundo”)
paint()
53
Diagrama de Clases
54