Académique Documents
Professionnel Documents
Culture Documents
Captulo 1
El Lenguaje Unificado de Modelado, UML
Introduccin a UML
Definicin de mtodo software Necesidad del modelado Presentacin de UML Modelado de Casos de Usos Diagramas de casos de uso Modelado estructural Diagramas de Clases
Introduccin a UML
Modelado del comportamiento Diagramas de Interaccin Diagramas de actividades Mquinas de estado Modelado de la implementacin Diagramas de componentes Diagramas de despliegue Colaboraciones Modelado con roles en UML
3
Definiciones
Mtodo
Conjunto ordenado de pasos para obtener un resultado
Metodologa
Estudio de una familia de mtodos
Mtodo
Establece cmo abordar de un modo sistemtico la construccin de software. Centrados en el anlisis (modelado del sistema) y diseo. Se describe el problema y la solucin mediante un conjunto de modelos. Tres dimensiones: Tecnolgica, Proceso y Organizacin
Mtodo
Dimensin Tecnolgica
Conceptos, Notacin, Tcnicas y Herramientas usadas para el modelado
Dimensin Proceso
Conjunto de pasos a realizarse y resultados obtenidos en cada paso (entregables)
Dimensin Organizacin
Cmo organizar las personas para acomodar el proceso
9
Mtodo
TECNOLOGIA
(OO, UML, Rational Rose)
ORGANIZACION
(SIUM)
PROCESO
(RUP)
10
Dimensin Tecnolgica
CONCEPTOS
Cmo soporta los conceptos OO?
NOTACION
Modelos requeridos Representacin de los modelos
Expresividad de la notacin Legibilidad de la notacin
Grfica, Especificaciones formales,
Agregacin, Generalizacin, Roles
11
Dimensin Tecnolgica
NOTACION
Dimensin Proceso
Pasos a realizar. Resultados que deben ser producidos en cada paso. Pueden tener diferentes escalas de tiempo: - Creacin de modelos
- Desarrollo de sistemas - Creacin de componentes reutilizables
13
Proceso
Para qu contexto de desarrollo es apropiado?
Nuevo software, Reingeniera, Prototipado, Reutilizacin
14
Heursticas
Mecanismos para seguimiento, validacin y verificacin
15
Proceso
Los procesos son iterativos y los entregables evolucionan Conviene centrarse en los aspectos crticos en las primeras iteraciones para minimizar riesgos.
Creacin de software es un proceso CREATIVO y EXPLORATORIO: no puede encerrarse en una secuencia de pasos fija.
16
Proceso
No existe proceso que asegure soluciones satisfactorias NO HAY RECETA MAGICA
Un mtodo debera describir procesos por defecto y sugerir documentacin: UNO DEBE CREARSE SU PROPIO PROCESO.
17
Organizacin
Software de alta calidad no puede producirse en el general software job shop. Es necesario un enfoque industrial para la produccin de software:
CAPACIDAD DE PRODUCIR PRODUCTOS DE ALTA CALIDAD A BAJO COSTE
Organizacin
Mltiples facetas:
Management, Finanzas, Marketing, Ventas, Control y Planificacin de la produccin, Especificacin de productos, Diseo y produccin.
19
Organizacin y Reutilizacin
La tecnologa de reutilizacin exige
i) invertir en componentes reusables ii) utilizacin de componentes reusables en el desarrollo de aplicaciones.
20
Mtodo completo
Adems de notacin, proceso y herramientas:
Guas de estimacin de costesTareas de manejo de proyecto Guas para elaboracin de los entregables Mtricas Polticas y Procesos para asegurar calidad del software Programas de entrenamiento Descripciones de roles Ejemplos elaborados de aplicacin y ejercicios para el aprendizaje. Tcnicas para adecuacin del mtodo
21
Pragmtica
Recursos disponibles Experiencia requerida Necesita herramientas CASE? Es orientado a un lenguaje de programacin? Para qu dominio es ms conveniente?
22
23
Mtodos de Anlisis OO
Booch OMT Jacobson Shlaer-Mellor Wirfs-Broks Fusion Catalysis Coad/Yourdon Champeaux Martin/Odell OOram BON Open
Y muchos ms!
24
En 1994, Booch, Rumbaugh (OMT) y Jacobson (Objectory) deciden unificar sus mtodos: Unified Modeling Language (UML) Proceso de estandarizacin promovido por el OMG
25
Evolucin UML
Grady Booch y Jim Rumbaugh comenzaron a unificar sus mtodos (Octubre, 1994). Borrador de UML (versin 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 peticin 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) Aparece UML 1.3 (Mayo 1999)
26
Historia de UML
2001 ? UML 2.0
2000 ?
1999 1998 Nov 97
UML aprobado por el OMG
UML 1.2
(Tomada de www.dsic.upv.es/~uml)
27
Shlaer-Mellor
Object life cycles
UML
State Charts
Harel
Embly
Singleton classes
Wirfs-Brock Fusion
Operation descriptions, message numbering Responsabilities
(Tomada de www.dsic.upv.es/~uml)
28
Ventajas de la unificacin
Reunir los puntos fuertes de cada mtodo Idear nuevas mejoras Proporcionar estabilidad al mercado
Proyectos basados en un lenguaje maduro Aparicin de potentes herramientas
29
UML y el modelado
UML es un lenguaje para visualizar, especificar, construir y documentar los artefactos de un sistema que involucra una gran cantidad de software, desde una perspectiva OO.
UML es una notacin, no es un proceso Se estn definiendo muchos procesos para UML. Rational ha ideado RUP, proceso unificado.
31
Por qu modelamos?
Una empresa software con xito es aquella que produce de manera consistente software de calidad que satisface las necesidades de los usuarios
El modelado es la parte central de todas las actividades que conducen a la produccin de software de calidad
32
Por qu modelamos?
Un modelo es una simplificacin de la realidad Construimos modelos para comprender mejor el sistema que estamos modelando Cuatro utilidades de los modelos:
Visualizar cmo es o queremos que sea el sistema Especificar la estructura y comportamiento del sistema Proporcionan plantillas que guan la construccin del sistema Documentan las decisiones
33
34
35
36
37
Utilidad de UML
Permite especificar todas las decisiones de anlisis, diseo e implementacin, construyndose modelos precisos, no ambiguos y completos. UML puede conectarse a lenguajes de programacin:
Ingeniera directa e inversa
Permite documentar todos los artefactos de un proceso de desarrollo (requisitos, arquitectura, pruebas, versiones,..)
38
Metamodelo UML
Cmo se expresa la semntica del modelo? Informalmente Formalmente
El metamodelo UML define la notacin de un modo riguroso, a travs de diagramas de la propia notacin y con OCL.
39
Generalizacin
Asociacion
1
ordered
2..*
Role de asociacin
40
Relaciones Diagramas
Mecanismos comunes
41
Elementos Estructurales
Partes estticas de un modelo
Ventana origen tamao abrir() cerrar() mover() dibujar()
<<Interface>> IAvisable
IAvisable
Interface
clase
ValidarTransaccion
caso de uso
42
Elementos Estructurales
Gestor Eventos
suspender() vaciarCola()
clase activa
Hola Mundo.class
colaboracin
componente
Gestin Pedidos
Servidor
nodo
43
Elementos de Comportamiento
Son las partes dinmicas de UML.
Interaccin Conjunto de mensajes intercambiados entre un conjunto de objetos con un propsito particular.
dibujar
mensaje
44
Elementos de Comportamiento
Son las partes dinmicas de UML.
Mquina de estados Secuencia de estados por las que pasa un objeto durante su vida en respuesta a eventos.
activado
estado
45
Elementos de Agrupacin
Son las partes organizativas de los modelos UML Paquete
Elementos de Anotacin
Son las partes explicativas de los modelos UML
Nota
47
Relaciones
Dependencias
0..1 *
patron
empleado
Asociaciones
Generalizaciones Realizacin
48
Diagramas de UML
Diagramas de Casos de Uso Diagramas de Clases Diagramas de Objetos Diagramas de Interaccin
Diagrama Secuencia Diagrama Colaboracin
Adornos
La notacin grfica bsica de cada elemento puede incluir adornos textuales o grficos para resaltar algunas propiedades de la especificacin.
50
Elena
Elena : Persona
: Persona
51
asistente Ortografico.dll
IOrtografia
52
Valores etiquetados
Extienden las propiedades de un bloque de construccin, aadiendo nueva informacin
Restricciones
Extiende la semntica de un bloque, aadiendo reglas o modificando las existentes.
53
<<Exception>>
aadir()
quitar() vaciar()
Overflow
{ordenado}
restriccin
54
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()
55
Hola, Mundo!
Applet
HolaMundo paint ()
Graphics
56
Panel
Applet HolaMundo
Hola, Mundo!
java
HolaMundo Applet
awt
lang
58
Hola, Mundo!
:Thread
run
:Toolkit
run
:ComponentPeer
callbackLoop
target:HolaMundo
handleExpose
paint
59
Hola, Mundo!
hello.java
HolaMundo.class
hello.html
60
Casos de Uso
Emisor Centralita Receptor
Emisor_listo Tono
Efectuar_llamada
Timbre_sonando Telefono_cogido
Marca_nmero
Tono_sonando
Para_tono
Para_timbre
ESCENARIO
CASO DE USO
62
Procesar Prstamo
ResponsablePrestamos
asociacion
64
Actores
Un actor representa un conjunto coherente de roles que juegan los usuarios de los casos de uso al interaccionar con el sistema. Roles jugados por personas, dispositivos, u otros sistemas. No forman parte del sistema
65
Actores
Un usuario puede jugar diferentes roles. En la realizacin de un caso de uso pueden intervenir diferentes actores. Un actor puede intervenir en varios casos de uso. Identificar casos de uso mediante actores y eventos externos. Un actor necesita el caso de uso y/o participa en l.
66
Actores
A. Cockburn distingue dos tipos de actores:
Primarios: Requieren al sistema el cumplimiento de un objetivo Secundarios: El sistema necesita de ellos para satisfacer un objetivo
67
69
Debe ser legible y comprensible para un usuario no experto. Debe indicarse: inicio y final, actores, objetos que fluyen, flujo
principal y flujos excepcionales.
70
Cajero
Comprar Articulos
Cliente
:Sistema
Comercio
75
Reservar Libro
Prestamo revista
Profesor
Prestamo Libro
Devolver revista
Bibliotecario
Extender Prestamo
Consultar
Socio
76
Rellenar Pedido
Analizar Viabilidad
JefeTecnico
Ordenar Fabricacion
Planificar Produccion
JefeProduccion
77
Una colaboracin tiene una parte esttica (diagramas de clases) y una parte dinmica (diagramas de secuencia).
78
Gestin Pedidos
realizacin
79
iniciarCompra()
nuevoCarroCompra(cliente)
seleccProducto(cantidad)
obtenerDescripcionDe(prod)
cargarProd(cliente,prod,cantidad)
confirmarCompra()
confirmarCompraDe(cliente)
decremStock(cantidad)
80
El objetivo de la arquitectura del sistema es encontrar el conjunto mnimo de colaboraciones bien estructuradas, que satisfacen el comportamiento especificado en todos los casos de uso del sistema
81
Inclusin
Un c.d.u. base incorpora explcitamente el comportamiento de otro en algn lugar de su secuencia.
Extensin
Un c.d.u. base incorpora implcitamente el comportamiento de otro c.d.u. en el lugar especificado indirectamente por este otro c.d.u.
82
Ejemplo
Relacin de extensin
extend
Hacer Pedido
(establecer prioridad)
include
Relacin de inclusin
Comprobar clave
Validar Usuario
Generalizacin
Seguir Pedido
include
Examinar retina
83
Relacin de inclusin
Permite factorizar un comportamiento en un caso de uso aparte y evitar repetir un mismo flujo en diferentes casos de uso. Ejemplo caso de uso Seguir Pedido:
Obtener y verificar el nmero de pedido. Include (Validar usuario). Examinar el estado de cada parte del pedido y preparar un informe para el usuario.
84
Relacin de extensin
El caso de uso base incluye una serie de puntos de extensin. Sirve para modelar
la parte opcional del sistema un subflujo que slo se ejecuta bajo ciertas condiciones varios flujos que se pueden insertar en un punto
2) Encontrar todos los roles que juegan los usuarios y que son relevantes al sistema. 3) Para cada role identificar todas las formas (objetivos) de interactuar con el sistema. 4) Crea un caso de uso por cada objetivo. 5) Estructurar los casos de uso. 6) Revisar y validar con el usuario.
86
Descripcin
Actores Asunciones Pasos
objetivo a conseguir
lista de actores Condiciones que deben cumplirse
Variaciones (opcional) cualquier variacin en los pasos No-funcional (opcional) lista requisitos no funcionales Cuestiones Lista de cuestiones que permanecen por
resolver
87
88
Ejemplo
Caso de Uso Descripcin Actores Asunciones Pasos Ordenar Fabricacin Se crearn rdenes de trabajo para cada producto solicitado en el pedido, y sern enviadas al jefe de produccin para su planificacin. Jefe tcnico Es viable la fabricacin de cada producto solicitado en el pedido. Existe una plantilla de fabricacin para cada producto solicitado. 1. REPETIR 1.1 Obtener un producto del pedido. 1.2 Buscar la plantilla de fabricacin asociada al producto. 1.3 Crear la orden de trabajo. 1.4 Almacenar la orden de trabajo con el estado pendiente. -
90
1. Asegurado enva reclamacin 2. Compaa verifica que asegurado tiene una pliza vlida 3. Compaa asigna agente 4. Agente verifica todos los detalles son conformes el contrato 5. La compaa paga al asegurado
91
1. Asegurado enva reclamacin 2. Compaa verifica que asegurado tiene una pliza vlida 3. Compaa asigna agente 4. Agente verifica todos los detalles son conformes el contrato 5. La compaa paga al asegurado
92
94
(B.Meyer, E. Berard)
Solo deben ser usados por equipos expertos en desarrollo OO Utiles para validacin
96
97
Granularidad
(M. Fowler)
Un objetivo implica una o ms interacciones. Primero construir un caso de uso por cada objetivo del usuario. Despus escribir casos de uso para cada interaccin que corresponda a un objetivo.
98
Granularidad
Ambito
Sistema
Funcionalidad requerida del sistema
(A. Cockburn)
Organizacin
Objetivo estratgico para la empresa, de mucho valor
Especificidad
Objetivo del usuario Colecciones de objetivos de usuario Subfunciones
99
Granularidad
Especificidad
Objetivo del usuario
(A. Cockburn)
Subfunciones
Un paso en la descripcin de un caso de uso (validar, buscar, log on)
Detalle de la interaccin
Interface de dialogo o Interface semntica
100
(Larman)
103
Recomendaciones
(M. Fowler)
Distinguir entre casos de uso del sistema y casos de uso del usuario.
104
Recomendaciones
A. Pols
Primero establecer los objetivos del proyecto. Despus identificar actores y sus responsabilidades, y las tareas que ejecutan son los casos de uso. Contrastar casos de uso frente a los objetivos. Cuidado con la ambigedad No profundizar en la descripcin de un caso de uso No te preocupes en exceso de la notacin
105
Recomendaciones
(A. Pols)
Evita redes complicadas de casos de uso: Cuidado con las relaciones included y extend. No considerar la interfaz del usuario Los casos de uso slo consideran los requisitos funcionales del proyecto, hay que aadir los nofuncionales.
106
Si se producen componentes
Asociarle su propio caso de uso
107
Modelado estructural
Se describen los tipos de objetos de un sistema y las relaciones estticas que existen entre ellos. Se expresa mediante los diagramas de clase. Normalmente contienen:
Clases Interfaces Relaciones de dependencia, realizacin, generalizacin y asociacin (agregacin, composicin)
Diagramas de Clase
Forman parte de la vista de diseo esttica del sistema. Los diagramas de clase se usan para modelar:
vocabulario del sistema
identificar clases para abstracciones relevantes del dominio del problema
109
110
Producto Especial
Producto Catalogado
Catalogo
Producto 1..*
tiene
Plantilla de Fabricacion
Cliente
1..1
Cliente
113
114
ConcreteSubject
subjectState
getState() setState()
+subject
115
another : Observer
116
Diagramas de Clase
Diferentes perspectivas: Conceptual
Se representan los conceptos del dominio estudiado.
Especificacin
Se representan los tipos que representan una interface cual puede tener cualquier implementacin la
Implementacin
Se representan las clases tal y como sern implementadas
117
Clases y asertos
Posibilidad de incluir en la especificacin:
Precondiciones Postcondiciones Invariante
118
Ingeniera inversa
Obtener un modelo a partir de cdigo. Ms difcil ya que hay prdida de informacin al pasar de los modelos al cdigo.
119
Atributos
[visibilidad] nombre [: tipo] [= valor_inicial ] [{propiedades}]
+ = pblica # = protegida - = privada
valor_inicial:
Nivel Conceptual: Los clientes tienen un nombre Nivel de Especificacin: El cliente puede almacenar y consultar su nombre Nivel de Implementacin: Cliente tiene un campo de tipo string que almacena su nombre y un mtodo que lo devuelve
121
Operaciones
[visibilidad] nombre [(lista_parametros)] [: tipo_retorno] [{propiedades}] visibilidad
+ = pblica # = protegida - = privada
nombre: nombre de la operacin lista_parmetros: tipo retorno: propiedades: lista de parmetros separados por comas
123
Nivel Especificacin
Protocolo de la clase (operaciones pblicas)
Nivel Implementacin
Conjunto de mtodos de la clase
124
Clases Parametrizadas
insert(T) remove(T)
Instanciaciones
Set<Empleado>
bind <Empleado>
SetEmpleados
125
Clases Parametrizadas
G Tabla count capacity put(G) item() : G
bind <Empleado>
Empleados Tabla<Cliente>
126
Otras propiedades
Clases diferidas Multiplicidad Variables y mtodos de clase
Cuenta codigo titular saldo $ UltimoCodigo reintegro() ingreso() nuevoCodigo()
127
Clases Estereotipadas
<<metaclass>> MetaclaseCuenta
<<exception>> FueraRango
Clock
Nodo
Lista
<<friend>>
129
Cuenta
Window
CuentaAhorro
CuentaCorriente
TextWindow
BoxDialog
131
Nivel Especificacin
La interface de CuentaCorriente incluye la interface de Cuenta Principio Sustitucin
Nivel Implementacin
Herencia
132
Disjoint/overlapping (restriccin):
clasificacin esttica vs. clasificacin dinmica
133
Generalizacin: overlapping
Vehculo
fuerza overlapping} fuerza Impulsado por motor medio { overlapping} medio Vehculo terrestre
Vehculo marino
Camin
Velero
135
Generalizacin: disjoint
rbol
{disjoint, incomplete}
Nogal
Pino
Olmo
136
Clasificacin Mltiple
Un objeto puede ser instancia de ms de una clase, no necesariamente conectadas por la herencia
Discriminador
Hombre Persona
sexo
role
Doctor
Enfermera
Mujer
{completo}
paciente
Paciente
Masajista
137
Clasificacin Dinmica
Un objeto puede cambiar de clase dentro de la jerarqua de subclases. Hombre Persona
sexo trabajo dynamic
Manager
Ingeniero
Mujer
{completo}
Vendedor
138
Persona
+empleado 1..*
+patron *
Empresa
Curso
*
impartido
1..*
Profesor
139
Asociaciones
Agregacin
Caso especial de asociacin Relacin estructural parte-de
Empresa
1..1
Departamento
140
Asociaciones
Nivel Conceptual
Muestran la relacin conceptual entre dos clases. Un cliente tiene varios pedidos
Nivel de Especificacin
Representan responsabilidades Detectamos los mensajes del protocolo de una clase con respecto a la otra
Nivel de Implementacin
Establecer atributos: navegabilidad
141
Asociaciones
Especificacin: class Pedido { public Cliente getCliente; public Set getLineaPedido;... } Implementacin class Pedido { private Cliente private Set _cliente; _lineasPedido; }
142
Navegacin
Posibilidad de limitar la navegacin a una sola direccin Determina si una clase de la asociacin tiene conocimiento de la otra. Nivel de especificacin o implementacin
Curso *
impartido 1..*
Profesor
143
Visibilidad
Pblica: +propietario Protegida: #propietario Privada: -propietario
GrupoUsuarios * *
Usuario
+propietario
1..1
-clave
*
Clave
144
Asociaciones calificadas
LneaPedido Producto 0..1 lineaPedido
Pedido
N. Conceptual: Dentro del mismo pedido no pueden existir dos lneas con el mismo producto
N. Especificacin: El acceso a lineaPedido es indexado por productos
Asociaciones calificadas
Class Pedido { private Tabla _lineasPedido;
public LineaPedido getLineaPedido(Producto unProducto); public void addLineaPedido (Integer cantidad, Producto elProducto); }
146
Ejemplo
Departamento
Profesor
147
Agregacin
Dos criterios:
Dependencia:
La existencia de una parte va ligada a la del agregado?
Exclusividad:
Una parte puede pertenecer a ms de un agregado?
148
Composicin
Es un caso particular de agregacin:
exclusiva y dependiente
Las partes pueden crearse despus del agregado compuesta al que pertenecen, pero una vez creadas viven y mueren con ella. La parte slo puede formar parte de un agregado. El agregado gestiona la creacin y destruccin de las partes. Las partes se pueden eliminar antes de eliminar el agregado.
149
Composicin
Ventana
agregado /todo
1..1
composicin
* Marco
parte
150
Composicin
Agregacin
POLGONO 1 3..* 1
Composicin
POLGONO 1 Relleno:Diseo
{ordered} Punto
151
Clases Asociacin
152
Clases Asociacin
Una clase asociacin aade una restriccin: Slo puede existir una instancia de la asociacin entre cualquiera par de objetos participantes No podramos modelar que una persona tiene diferentes contratos para una misma compaa a lo largo del tiempo.
153
Ejemplo
154
Asociaciones n-arias
Asociacin entre tres o ms clases.
Cada instancia de la asociacin es una n-tupla de valores de cada una de las respectivas clases .
Ao temporada * Equipo * equipo * portero Jugador
155
Asociaciones derivadas
recibe Estudiante Asignatura
/ensea
imparte
Profesor
156
Asociaciones derivadas
+componentes * Cuenta /operaciones * Operacion
CuentaSet 0..1
CuentaCorriente 1..1
157
Cuenta
{or}
Persona
{subconjunto}
+miembro 1..* Persona +Director 1..1
158
Miembro-de
Persona
1
{subconjunto}
Presidente-de *
Comit
159
empleado *
{Persona.patrn= Persona.jefe.patrn }
160
IPila
161
Dependencia
DataInput InputStream {abstract} Generalizacin DataInputStream Realizacin InputStream interface DataInput DataInputStream OrderReader
Dependencia
162
Paquetes
Elemento organizativo Puede contener elementos de cualquier tipo. Un elemento es exclusivo a un paquete. Posibilidad de anidar paquetes.
Modelo
Modelo
164
Paquetes
Un paquete bien estructurado debe:
ser cohesivo estar poco acoplado poco anidamientos conjunto equilibrado de elementos
165
Importacin/Exportacin en paquetes
Los paquetes permiten controlar la complejidad del manejo de un gran nmero de abstracciones, controlando los accesos mediante la importacin.
La parte pblica de un paquete son sus exportaciones. Las partes pblicas son visibles en los paquetes que importan al paquete contenedor. La importacin no es transitiva. Los paquetes anidados pueden ver todo lo que ven los paquetes que los contienen.
166
import
Politicas + ReglasPedidos + GUI:Ventana
import
Generalizacin de Paquetes
GUI + Ventana + Formulario # GestorEventos
MacGUI
168
Un modelo es un paquete incluyendo todos los elementos que constituyen una particular vista del sistema modelado.
169
Vistas UML
vocabulario funcionalidad ensamblado gestion conf.
Vista de Implementacion
Vista de Diseo
comportamiento
Vista de Procesos
Vista de Despliegue
Vistas UML
clases interfaces colaboraciones
Vista de Implementacion
componentes
Vista de Diseo
casos de uso
Vista de Procesos
Vista de Despliegue
clases activas
nodos
172
Vistas UML
Diagramas de clase Diagramas de interaccin Diagramas de estado Diagramas de componentes Diagrama de interaccin Diagramas de estado
Vista de Implementacin
Vista de Diseo
Vista de Procesos
Vista de Despliegue
Diagrama de Objetos
d:DiagramaClases
:Relacion :Clase
:Metodo
:Clase
:Clase
:Atributo
174
Diagrama de Objetos
:Universidad
d2:Departamento
d2:Departamento
director:Profesor
:Profesor
:Asignatur a
175
Enlaces y Asociaciones
Un enlace es :
una conexin semntica entre objetos. una instancia de una asociacin. un camino por el cual enviar un mensaje
enlace
p:Persona 1: asignar(desarrollo) :Empresa
mensaje
176
Interacciones y Mensajes
Interaccin: Comportamiento que comprende un
conjunto de mensajes intercambiados entre un conjunto de objetos dentro de un contexto para lograr un propsito.
177
178
Diagramas de Interaccin
Describen una interaccin. Dos tipos: Diagramas de Secuencia y Colaboracin Diagramas de Secuencia:
Destacan la ordenacin temporal de los mensajes
Diagramas de Colaboracin:
Destacan la organizacin estructural de los objetos participantes.
Equivalencia semntica
179
Diagramas de Secuencia
Representan escenarios. Incluye:
Objetos y su lnea de tiempo Mensajes : argumentos y self-delegation Informacin de control: condiciones y marcas de iteracin Indicar el objeto devuelto por el mensaje: return
(aadirlos slo cuando ayuden a clarificar la interaccin)
180
Sincronizacin
Envo de mensaje simple: Un solo hilo de ejecucin El objeto activo pasa el control al objeto pasivo
: Envo simple
Un cliente
Otro objeto
181
Sincronizacin
Envo de mensaje sncrono: Slo se desencadena la operacin cuando el servidor acepta el mensaje El cliente se bloquea hasta que el servidor lo acepta o rechaza
Un cliente
: Envo sncrono
Otro objeto
182
Sincronizacin
Envo de mensaje asncrono: Un mensaje asncrono no interrumpe la ejecucin del cliente El cliente enva el mensaje sin saber cundo ni si se llevar a cabo
: Envo asncrono
Un cliente
Otro objeto
183
Diagramas de Secuencia
:Interface Entrada Pedido preparar *preparar hayStock:=comprobar [hayStock] eliminar pedir?:=necesarioPedir [pedir?]<<create>> :Pedido :LineaDe Pedido :Item
PedidoItem ItemEntregado
[hayStock] <<create>>
184
Diagramas de Colaboracin
1: preparar :Interface Entrada Pedido :Pedido 2: *preparar :LineaDe Pedido
:Item
6: [pedir?]<<create>>
185
Diagrama de Secuencia
c:Cliente <<create>> establecerAcciones establecerValores :Transaccion p:ProxyODBC
tiempo
exito
establecerValores
Lnea de vida
<<destroy>>
Foco de control
186
Diagrama de Colaboracin
1: <<create>> 2: establecerAcciones 6: <<destroy>>
c:Cliente 5: exito :Transac cion
3: establecerValores 4: establecerValores
p:Proxy ODBC
187
Diagrama de Secuencia
c:Cliente
<<create>> :AgenteBilletes
a:Ayuda Planificacion
establecerItinerario(i)
calcularRuta ruta
<<destroy>>
notificar
188
Diagrama de Colaboracin
3: calcularRuta
a:Ayuda Planificacion
189
190
: Interfaz Compra
: CarroCompra
: Producto
seleccProducto(cantidad) obtenerDescripcionDe(prod)
cargarProd(cliente,prod,cantidad)
191
1: iniciarCompra() 2: nuevoCarroCompra(cliente) 3: seleccProducto(cantidad) 5: cargarProd(cliente,prod,cantidad) 6: confirmarCompra() 7: confirmarCompraDe(cliente) : Interfaz : Carro : Cliente Compra Compra
192
Diagrama de Secuencia
:OrderManager
:EvaluatedOrders
o : Order
: OrderLine
: Product
: WorkOrder
selectOrder(cod) o:=find(cod)
launchManufacturing()
launchManufacturing(cod)
createWO(tpl)
193
travelPermissionRequest() travelPermission()
194
darCursoPedido()
estudiarPedido() * analizarFabricacionProducto()
195
Patrn Observer
Subject subjectState Attach() Detach() Notify()
Observer
Update()
+subject
196
Patrn Observer
: Subject SetState( ) Notify( ) one : Observer another : Observer
Update( )
GetState( ) Update( ) GetState( )
197
Patrn Observer
2: Notify( )
6: GetState( )
5: Update( )
another : Observer
198
Colaboracin
ClienteDeGestor 1..* 1..1 Gestor 1..1 1..* 1..1 especifica necesita editar 1..1 editado con 1..* 1..* Editor FabricaDeEditor
0..*
ObjetoInformacion
1..*
199
Colaboracin
: ClienteDeGestor : Gestor : FabricaDeEditor : ObjetoInformacion : Editor
crearEditorCon(objInfo) Crear&IniciarCon(objInfo)
200
: Cliente
:ReceptorPedido
:RealizacionPedido
enviarPedido
tramitarPedido
confirmarPedido
201
: Cliente
:ReceptorPedidos enviarPedido
:AgenteTarjeta Credito
:RealizacionPedido
:AgenteFacturacion
procesarTarjeta
tramitarPedido
emitirFactura
confirmarPedido
202
203
: Usuario
: Base Datos
Encontrar Pedido ()
visualizarPedido (p)
new
new
Activacin
new
ok
Todo comprobado?
x
ok
validacin
Todo comprobado?
Objeto Autoeliminado
x
205
206
Diagramas de Actividades
Muestran un flujo de actividades. Es un caso especial de mquina de estados. Incluye:
estados actividad y estados accin transiciones objetos
Una actividad produce alguna accin que produce algn cambio en el sistema o retorna un valor.
207
Transiciones
estado inicial transiciones
Planificar proceso
Asignar tareas
estado final
209
Bifurcacin
Planificar proceso
[materiales no disponibles]
Volver a planificar
[materiales disponibles]
Asignar tareas
210
Divisin y Unin
Preparar conversacin
divisin
Descomprimir
unin
Limpieza
211
Solicitar Producto
Procesar Pedido
Extraer Articulos
Enviar Pedido
Recibir Producto
Facturar al cliente
Pagar Factura
Cerrar Pedido
Cliente
Ventas
Almacen
Solicitar Producto
Procesar Pedido
Extraer Articulos
Enviar Pedido
Recibir Producto
Facturar al cliente
Calles
Pagar Factura Cerrar Pedido
Cliente
Ventas
Almacen
Solicitar Producto
Procesar Pedido
Extraer Articulos
Enviar Pedido
Recibir Producto
Facturar al cliente
b: Factura [impagada]
o: Pedido [completado]
Pagar Factura
Cerrar Pedido
Ejemplo
Pasajero Vendedor Airline
Solicitar pasaje
Seleccionar vuelo
: Cliente
: Comercial :Catalogo
: JefeTecnico
: JefeProduccion
Rellenar Pedido
Analizar viabilidad
:Producto Especial
:Plantilla de Produccion
Ordenar fabricacion
Fin OK
217
Eventos
Un evento es un acontecimiento que ocupa un lugar en el tiempo y espacio. Un evento es un estmulo que dispara una transicin en una mquina de estados. Eventos externos vs. Eventos internos. Tipos de eventos:
Seales (excepciones) Llamadas Paso de tiempo Cambio de estado
218
Modelado Excepciones
<<exception>> Excepcion establecerManejador() primerManejador() ultimoManejador()
<<exception>> Duplicado
<<exception>> Overflow
<<exception>> Underflow
<<send>>
<<send>>
<<send>>
Estados
Un estado es una situacin en la vida de un objeto en la que satisface cierta condicin, realiza alguna actividad o espera algn evento. Elementos de un estado
Nombre Acciones entrada/salida Transiciones internas Subestados Eventos diferidos
220
Estados
221
Transiciones
Una transicin de un estado A a un estado B, se produce cuando se origina el evento asociado y se satisface la condicin especificada, en cuyo caso se ejecuta la accin de salida de A, la accin de entrada a B y la accin asociada a la transicin. Elementos de una transicin:
Estados origen y destino Evento de disparo Condicin de guarda Accin
222
Mquina de estados
Especifica la secuencia de estados por las que pasa un objeto a lo largo de su vida en respuesta a eventos, junto con sus respuestas a esos eventos.
til si las instancias de una clase tienen un comportamiento que depende de su historia o que deben responder a eventos externos: objetos reactivos. Se representa mediante un diagrama de estados.
223
ruido Inactivo
Buscando
Configuracin
Rastreando
Acoplamiento
contactar
224
Modificar hoja
Finaliza S.A.D.
Pendiente de aceptacin
No aceptada
Envo a factora
En realizacin
Realizada
Inicio
Envo a Bualgas
Pendiente de anlisis
Factible[ Analizado ]
Viable
No factible[ Analizado ]
Envo a jefe
Rechazado
Comunicacion de Rechazo a Central
No aprobado[ Estudiado ] Modificar hoja Administrador rechaza hoja Asignado a Hoja de Rutas Modificar hoja
Envo a factora
Pendiente de aprobacin
Aprobado[ Estudiado ]
Aprobado
Finaliza S.A.D
No realizado[ Hoja Rutas realizada ]
Aprobado
Pendiente de realizacin
No realizado
Realizado
Subestados secuenciales
introducirTarjeta Activo entry/leerTarjeta exit/expulsarTarjeta [continuar]
Procesando
Inactivo
Validacin
cancelar mantener
Seleccin
Mantenimiento
[no continuar]
Impresin
227
Subestados secuenciales
Siguiente_item [No todo items chequeado]
Activo
Chequeando Do/chequeo
[Todo item chequeado y disponible]
Enviando
Do/Iniciar_ entrega
Esperando
Item Recibido [algn item no disponible] cancelado
Cancelado
Entregado
228
Subestados concurrentes
Mantenimiento mantener Pruebas
Probar perifericos AutoDiagnosis
Inactivo
Manejo Ordenes
Espera
[no continuar]
229
Componentes
Un componente es una parte fsica y reemplazable de un sistema, que conforma con un conjunto de interfaces y proporciona su implementacin. Modela artefactos tales como: ejecutables, bibliotecas, tablas, ficheros, documentos,.. Representa el empaquetamiento fsico de elementos lgicos tales como clases, interfaces,.. Residirn en los nodos del sistema
230
Componentes
explorador.java
agenteFraudes.dll
231
Componentes
explorador.java
JerarquaElementos
arbol.java
El componente arbol.java puede ser reemplazado por otro que proporcione la interfaz JerarquaElementos.
232
Tipos de componentes
Despliegue
Necesarios y suficientes para formar un sistema ejecutable: libreras dinmicas(dll), ejecutables (exe),..
De ejecucin
Se crean durante la ejecucin: objeto COM, instanciado a partir de una dll.
233
Diagrama de Componentes
Modelado de ejecutables y bibliotecas Modelado de cdigo fuente Modelado de una API
234
Modelado de ejecutables
v.exe
Vwbas20.dll
vwdev20.dll
vwsrc20.dll
235
Ejemplo
Control y Anlisis Interf az de Terminal Comment Comment
Acceso a BD Comment
236
Nodos
Un nodo es un elemento fsico que existe en tiempo de ejecucin y representa un recurso computacional que puede tener memoria y capacidad de procesamiento. Los componentes se ejecutan en nodos Los nodos representan el despliegue fsico de los componentes.
237
Diagramas de Despliegue
Muestra la configuracin de los nodos que participan en la ejecucin y de los componentes que residen en los nodos. Incluye nodos y arcos que representan conexiones fsicas entre nodos. Modelado de sistemas empotrados, sistemas clienteservidor, sistemas distribuidos.
238
Diagrama de Despliegue
terminal
<<10-T-Ethernet>>
servidor
Unidad RAID
<<RS-232>> Consola
239
Modem
internet
<<procesador> servidor
<<procesador>> servidor
<<procesador>> servidor
240
Colaboraciones
Sociedad de clases, interfaces y otros elementos que colaboran para proporcionar un comportamiento cooperativo mayor que la suma de los comportamientos de los elementos.
Parte estructural (diagrama de clases) y parte de comportamiento (diagrama de secuencia).
241
Colaboraciones
El ncleo de la arquitectura de un sistema est formado por un conjunto de colaboraciones que representan las decisiones de diseo ms importantes. Un sistema orientado a objetos bien estructurado se compone de un conjunto relativamente pequeo de colaboraciones. Modelado de un caso de uso, operacin o mecanismo (patrn o framework)
242
Gestin Pedidos
realizacin
243
FabricaDeEditor
ObjetoInformacion 1..*
244
obtenerEditorPara(objInfo)
obtenerInterfazSoportada() soportaInterfaz(nombreInterfaz)
crearEditorCon(objInfo)
Crear&IniciarCon(objInfo)
245
Colaboraciones Parametrizadas
Modelado de patrones de diseo
Subject Observer
Observer Subject Observer
Alarma
Ventana
246
Observer
Update()
+subject
247
248