el lenguaje unificado de modelado, uml análisis y diseño del software curso 2004/2005 capítulo 1...
TRANSCRIPT
![Page 1: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/1.jpg)
El Lenguaje Unificado de Modelado, UML
Análisis y Diseño del Software
Curso 2004/2005
Capítulo 1
Jesús García MolinaDepartamento de Informática y Sistemas
Universidad de Murciahttp://dis.um.es/~jmolina
![Page 2: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/2.jpg)
2
Contenidos
• Modelado del software• Presentación de UML• Modelado de Casos de Usos
– Diagramas de casos de uso• Modelado Estructural
– Diagramas de Clases
![Page 3: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/3.jpg)
3
Contenidos
• Modelado del Comportamiento– Diagramas de interacción– Diagramas de actividades– Máquinas de estado
• Modelado de la Implementación– Diagramas de componentes– Diagramas de despliegue
• Colaboraciones • Formalización de UML: MOF y metamodelo
![Page 4: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/4.jpg)
4
Contenidos
• Modelado del software• Presentación de UML• Modelado de Casos de Usos
– Diagramas de casos de uso• Modelado Estructural
– Diagramas de Clases
![Page 5: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/5.jpg)
5
Bibliografía
G. Booch, J. Rumbaugh, I. Jacobson, “El lenguaje unificado de modelado”, Addison-Wesley, 1999.
C. Larman, “UML y Patrones: Una introducción al
análisis y diseño orientado a objetos y al proceso unificado”, Prentice-Hall, 2003.
http://www.uml.org/
![Page 6: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/6.jpg)
6
El lenguaje unificado de modelado, UML
• A mediados de los noventa existían muchos métodos A/DOO
– Mismos conceptos con distinta notación– Mucha confusión.
• En 1994, Booch, Rumbaugh y Jacobson deciden unificar las notaciones de sus métodos:
Unified Modeling Language (UML)
• Proceso de estandarización promovido por el OMGhttp://www.uml.org
![Page 7: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/7.jpg)
7
Explosión de métodos OO en los noventa
OMT Coad/YourdonBooch ChampeauxJacobson Martin/OdellShlaer-Mellor OOramWirfs-Broks BONFusion OpenCatalysis
¡Y muchos más!¡Guerra
de Métodos!
![Page 8: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/8.jpg)
8
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)
![Page 9: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/9.jpg)
9
Ventajas de la unificación
• Reunir los puntos fuertes de cada método
• Idear nuevas mejoras
• Proporcionar estabilidad al mercado– Proyectos basados en un lenguaje maduro– Aparición de potentes herramientas
• Eliminar confusión en los usuarios
![Page 10: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/10.jpg)
10
Objetivos en el diseño de UML
• Modelar sistemas, desde los requisitos hasta los artefactos ejecutables, 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.
![Page 11: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/11.jpg)
11
Modelado del Software
• El modelado es el diseño de aplicaciones software antes de escribir el código.
• Se crean un conjunto de modelos (“planos del software”) que permiten especificar aspectos del sistema como los requisitos, la estructura y el comportamiento.
• Los modelos – ayudan a razonar sobre el sistema
– permiten documentar las decisiones
– Permiten una generación automática de código
![Page 12: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/12.jpg)
12
¿Qué es un modelo?
“Un modelo es una simplificación de la realidad”
“Un modelo es una descripción de un sistema, escrito en un lenguaje bien definido”
![Page 13: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/13.jpg)
13
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.
![Page 14: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/14.jpg)
14
Modelos de Negocio y de Software
Modelo del Negocio
Modelo Software
Empresa Sistema software
Sistema de la empresa
describe
describe
derivado de
![Page 15: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/15.jpg)
15
Utilidad del modelado
“El modelado es la parte esencial de todas las actividades que conducen a la producción de software de calidad”
“Una empresa software con éxito es aquella que produce de manera consistente software de calidad que satisface las necesidades de los usuarios”
![Page 16: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/16.jpg)
16
Utilidad del modelado
¿Escribimos códigodirectamente?
Sería lo ideal pero ....
.... necesitamos escribir modelos
![Page 17: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/17.jpg)
17
Utilidad del modelado
• Hay estructuras que trascienden lo representable en un lenguaje de programación.
• Se facilita la comunicación entre el equipo al existir un lenguaje común.
• Se dispone de documentación que trasciende al proyecto.
![Page 18: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/18.jpg)
18
Utilidad del modelado
• Visualizar cómo es o queremos que sea el sistema• Especificar la estructura y comportamiento del sistema• Proporciona plantillas que guían la construcción del
sistema.• Documentan las decisiones.
![Page 19: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/19.jpg)
19
Propiedades del modelado
• La elección de los modelos tiene una profunda influencia sobre cómo se acomete el problema y se moldea la solución.
• Todo modelo debe estar ligado a la realidad.• Un único modelo no es suficiente. Cualquier sistema
trivial se aborda mejor a través de un pequeño conjunto de modelos casi independientes.
![Page 20: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/20.jpg)
20
¿Por qué las empresas no hacen modelado?
• Hasta ahora, la mayor parte de las empresas software no realizan ningún modelado.
• El modelado requiere:– aplicar un proceso de desarrollo– formación del equipo en la técnicas– concienciación de su importancia
• ¿Se obtienen beneficios con el modelado?
![Page 21: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/21.jpg)
21
¿Construimos software de calidad?
• Retrasos en los plazos• Proyectos cancelados• Rápido deterioro del sistema instalado• Tasa de defectos o fallos• Requisitos mal comprendidos• Cambios frecuentes en el dominio del problema• Buenos programadores se cansan y dejan el equipo
¿Modelado es la solución?
![Page 22: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/22.jpg)
22
Contenidos
• Modelado del software
• Presentación de UML• Modelado de Casos de Usos
– Diagramas de casos de uso• Modelado Estructural
– Diagramas de Clases
![Page 23: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/23.jpg)
23
UML y el modelado
• UML es una notación, no es un proceso
• Se han definido muchos procesos para UML.– Rational ha ideado RUP, el“proceso unificado”.
• Utilizable para sistemas que no sean software
UML es un lenguaje para visualizar, especificar, construir y documentar los artefactos (modelos) de un sistema que involucra una gran cantidad de software, desde una perspectiva orientada a objetos.
![Page 24: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/24.jpg)
24
Marco Conceptual de UML
• Bloques básicos de construcción– Elementos
Estructurales, Comportamiento, Agrupación, Anotación
– Relaciones– Diagramas
• Reglas para combinar bloques– Establecen qué es un modelo bien formado
• Mecanismos comunes– Especificaciones, Extensibilidad, Dicotomía clase-instancia,
Dicotomía interfaz-realización
![Page 25: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/25.jpg)
25
Elementos Estructurales
• Partes estáticas de un modelo
Ventana
origentamaño
abrir()cerrar()mover()dibujar()
clase
IAvisable<<Interface>>
IAvisable
Interface
ValidarTransaccioncaso de uso
![Page 26: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/26.jpg)
26
Elementos Estructurales
Gestor Eventos
suspender()
vaciarCola()
clase activa
componente
Gestión Pedidos
colaboración
Servidor
nodo
Hola Mundo.class
![Page 27: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/27.jpg)
27
Elementos de Comportamiento
Son las partes dinámicas de UML.
InteracciónConjunto de mensajes intercambiados entre un conjunto de objetos con un propósito particular.
mensajedibujar
![Page 28: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/28.jpg)
28
Elementos de Comportamiento
Son las partes dinámicas de UML.
Máquina de estadosSecuencia de estados por las que pasa un objeto durantesu vida en respuesta a eventos.
estadoactivado
![Page 29: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/29.jpg)
29
Elementos de Agrupación
Son las partes de organización de los modelos UML
Modelo del Negocio Paquete
Un paquete incluye un conjunto de elementos de cualquiernaturaleza.
Tiene una naturaleza conceptual.
![Page 30: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/30.jpg)
30
Elementos de Anotación
Son las partes explicativas de los modelos UML
NotaRetorna 0 si no existe el valor
![Page 31: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/31.jpg)
31
Relaciones
Dependencia
Asociaciónpatron empleado
0..1 *
Generalización
Realización
![Page 32: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/32.jpg)
32
Ejemplo
Cuenta Domiciliacion
0..n1
Ahorro Corriente
1 0..n
Operacion Periodica
IteradorCuenta
![Page 33: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/33.jpg)
Cliente
numeroCuentadireccion
crearPedido()
Pedido Desayuno
direcciónfechahoradescuento
calcularPrecio()
11..n
+cliente
1
+pedidos
1..n
Desayuno
numero
1..n
1
+desayuno1..n
+pedido 1
Parte
cantidad
Desayuno Estandar
nombreprecioestilo
Comestible
nombrecantidadMinimaprecioformaTransporte
0..n
0..n
0..n
0..n
0..n
1..n
0..n
1..nCambio
cantidad
![Page 34: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/34.jpg)
34
Diagramas de UML
• Diagramas de Casos de Uso• Diagramas de Clases• Diagramas de Objetos• Diagramas de Interacción
– Diagrama Secuencia– Diagrama Colaboración
• Diagramas de Estados • Diagramas de Actividades• Diagramas de Componentes• Diagramas de Despliegue
Diagramas no son
modelos
![Page 35: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/35.jpg)
35
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– 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
![Page 36: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/36.jpg)
Modelo del Negocio
Cambiar admitidos
Registrar Curso
Hay alumnos?
no
Cerrar Curso
Aprobar Curso
Preinscripción
Matriculación
Cancelar Curso
Hay alumnos?
no
Avisar Admitidos
Crear Proyecto
SistemaAlumnoServ icio PEResponsable
Diagrama de actividades
![Page 37: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/37.jpg)
ModeloCasos de Usos
Teleoperador Participante
Realizar puja ordinaria
Cancelar puja ordinaria
Rechazar adjudicación
Pujador
Anular anuncio de subasta
Anular edición de subasta
Crear edición de subasta
Administrador
Cerrar edición de subasta
Realizar pago de subasta ordinaria
Notif icar adjudicatario
Sistema
Diagrama de casos de
uso
![Page 38: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/38.jpg)
ModeloEstructural
PujaOrdinaria
datosTarjetaestado
Esto representa la especif icación de un artículo.
Participante
nombreapellidosnumIDdomiciliodireccionEnv iotelef onoreputacion
PagoAnuncio
PagoCuota
Articulo
idEspeccaracteristicaspv pRecomend
EdicionSubasta
idEdicionf echaIniciof echaCierreestado
Adjudicacion
+p
+pa
+pc
+puja
ArticuloConcreto
codArticulo+articulos
+art
AnuncioSubasta
pv pRecomendpujaMinimacuotagastosEnv ioplazof ormaPagoanticipo
+es+anuncios
+as
+adjudicaciones+pujas
+as
+articulos
Diagrama de clases
![Page 39: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/39.jpg)
Modelo deComportamiento
: Sistema
as : AnuncioSubasta
pujas : PujaOrdinaria
adj : Adjudicacion
: ArticuloConcreto
Se crean tantas adjudicaciones como pujas ganadoras haya. Cada adjudicación se asocia con un ArticuloConcreto, una puja adjudicataria y con la subasta.
: ControladorAnuncios
Se recorre la colección de pujas obteniendo las pujas ganadoras (consideramos que la colección está ordenada de mayor a menor valor de puja).
adjudicaciones : Adjudicacion
: EdicionSubasta
int numAjudicaciones = Minimo(pujas.length(), articulos.length());
: AnuncioSubasta
5. numAdjs = calcularAdjudicaciones()
1. cerrarEdicionSubasta(es)
6. [1..numAdjs]* pg := get()
8. [1..numAdjs]* adj := crear(as, pg, a)
7. [1..numAdjs]* a:= get()
9. [1..numAdjs]* add(adj)
2. cerrar()
4. * cerrar()
3. * as := get()
Diagrama de colaboración
![Page 40: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/40.jpg)
40
Máquina de Estado
Espera Venta Introduccion Productos
Espera Pago
introducirProducto
introducirProducto
Terminar Venta
Autorizacion Pago
efectuar Pago Efectivo
efectuar Pago Tarjeta
manejarRespuesta
Diagrama de estado
![Page 41: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/41.jpg)
41
Mecanismos comunes de UML
• Especificaciones– Proporcionan una semántica para cada elemento
– Los diagramas son proyecciones de esa base
• Adornos– La notación gráfica básica de cada elemento puede incluir
adornos textuales o gráficos para resaltar algunas propiedades de la especificación.
![Page 42: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/42.jpg)
42
Mecanismos comunes de UML
• Dicotomía clasificador /instancia
Persona
nombre
direccion
telefonoElena : Persona
: Persona
Elena
CLASE Objetos
Objeto de la clase Persona que no se muestra en forma explícita
Se indica en forma explícita que es un objeto Persona
Objeto Persona anónimo
UML distingue un objeto utilizando el mismo símbolo de la clase y subrayando el nombre del objeto
Casi todos lo bloque de construcción UML presentan esta dicotomía Clase/Objeto:
Ej. Caso uso e instancia de caso de uso
Componente e instancias de componentes
Nodos e instancias de nodos
![Page 43: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/43.jpg)
43
Mecanismos comunes de UML
• Dicotomía interfaz / implementación
IOrtografia
asistente
Ortografico.dll
Casi todos los bloques de construcción UML presentan esta dicotomía interfaz/implementación.
Ej. Casos de uso y las colaboraciones que los realizan
operaciones y los métodos que los implementan
Una Interfaz declara un contrato y una implementación representa una realización concreta de ese contrato, responsable de hacer ejecutar de forma fidedigna la semántica completa de la interfaz
![Page 44: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/44.jpg)
44
Mecanismos de extensibilidad de UML
• Estereotipos– Extienden el vocabulario de UML, permiten definir nuevos
tipos elementos y relaciones a partir de los existentes.– Algunos son predefinidos en UML
• Valores etiquetados– Extienden las propiedades de un elemento, añadiendo nueva
información. – Par etiqueta/valor: { etiqueta = “valor” }
• Restricciones– Restricciones semánticas a elementos o relaciones. Definidos
por el modelador o incluidos en UML. – Ejemplo: { emp.vacaciones < 28 }
![Page 45: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/45.jpg)
45
Ejemplo Estereotipo predefinido
Cliente<<Actor>>Cliente
ClaseClase
estereotipada
Cliente
![Page 46: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/46.jpg)
46
Ejemplo Estereotipo Predefinido
Clase estereotipad
a
IComparator
compare()
<<Interface>>
IComparator
![Page 47: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/47.jpg)
47
Mecanismos de extensibilidad de UML
Overflow
<<Exception>>
ColaEventos {version 3.2; autor: jgm}
añadir()
quitar()
vaciar()
{ordenado}
estereotipovalor etiquetado
restricción
![Page 48: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/48.jpg)
48
import java.awt.Graphics;class HolaMundo extends java.applet.Applet {
public void paint (Graphics g) {g.drawString (“¡Hola, Mundo!”,10,10);
}}
¡Hola, Mundo!
HolaMundo
paint()
g.drawString
("Hola, mundo”)
Paquete Java en el cual se encuentra la Clase Graphics La clase Graphics esta disponible
para el código que sigue Introduce la nueva clase Holamundo especificando que es una subclase de Applet que se encuentra en paquete java.applet
Operación
Operación invocada por paint
ABSTRACCIONES claves para HolaMundo
( captura los aspectos básicos de la aplicación “¡HolaMundo!” pero deja fuera varias cosas)
parámetro
![Page 49: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/49.jpg)
49
Diagrama de Clases
Applet
HolaMundo
paint()
Graphics(from awt)
La Clase Applet se utiliza como padre de HolaMundo
Y la clase Graphics se utiliza en la signatura e implementación de una
de sus operaciones, paint.
generalización
dependencia
![Page 50: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/50.jpg)
Applet
Panel(from awt)
Container(from awt)
Component(from awt)
HolaMundo
paint()
Graphics(from awt)
ImageObserver
imageUpdate()
(from image)
Jerarquía de Herencia de HolaMundo
Al revisar las bibliotecas de Java para Applet y Graphics se verá que son parte de una
jerarquía mayor
Component implementa a ImageObserver
![Page 51: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/51.jpg)
51
Organización en Paquetes
HolaMundo
paint()
java
(from Logical View)
Organización de paquetes de HolaMundo
![Page 52: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/52.jpg)
52
Organización en Paquetes
java
lang
awt
AppletHolaMundo
![Page 53: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/53.jpg)
53
Diagrama de Secuencia
: Toolkit : Thread : ComponentPeer target : HolaMundo
1. run()1.1. callbackLoop()
1.1.1. handleExpose()1.1.1.1. paint()
Mecanismos para Dibujar ( se establece el orden de los eventos)
La figura muestra la colaboración de varios objetos , incluida una instancia de la clase HolaMundo. Los objetos son parte del entorno Java
activación
Operaciones invocadas
Nombre del objeto
![Page 54: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/54.jpg)
54
Diagrama de Componentes
HolaMundo.classhola.java
hola.html hola.jpg
Componente ejecutable
Cada uno de los íconos de esta figura representa un elemento UML en la vista de implementación del sistema
Código fuente de la clase HolaMundoPágina Web
![Page 55: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/55.jpg)
55
Contenidos
• Modelado del software
• Presentación de UML
• Modelado de Casos de Usos– Diagramas de casos de uso
• Modelado Estructural– Diagramas de Clases
![Page 56: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/56.jpg)
56
Modelado de Casos de Uso
• Un caso de uso especifica un comportamiento deseado del sistema.
• Representan los requisitos funcionales del sistema.
“Un caso de uso especifica una secuencia de acciones, incluyendo variantes, que el sistema puede ejecutar y que produce un resultado observable de valor para un particular actor”
• Describen qué hace el sistema, no cómo lo hace.
![Page 57: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/57.jpg)
Emisor Centralita Receptor
listo( )
tono
marcar_numero
tono_sonando
timbre_sonando
telefono_cogido
para_tono
para_timbre
ESCENARIO
• Casos de uso son ideados por Jacobson a principios de los noventa• Se inspira en los escenarios utilizados para describir procesos
![Page 58: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/58.jpg)
58
Otras definiciones de caso de uso
• “Describe un conjunto de interacciones entre actores externos y el sistema en consideración orientadas a satisfacer un objetivo de un actor”. [D. Bredemeyer]
• “Es una colección de posibles secuencias de interacciones entre el sistema en discusión y sus actores externos, relacionado con un objetivo particular”. [A. Cockburn]
• “Es una colección de escenarios de éxito y fracaso relacionados que describe a los actores que usan un sistema para conseguir un objetivo” [C. Larman]
![Page 59: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/59.jpg)
59
Ejemplo Caso de Uso
actor caso de uso
asociacion
Responsable Prestamos
Gestionar Préstamos
![Page 60: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/60.jpg)
60
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.
• El tiempo puede ser un actor (“procesos iniciados por el sistema”)
• No forman parte del sistema
![Page 61: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/61.jpg)
61
Actores
• Un usuario puede jugar diferentes roles.• En la realización 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.
![Page 62: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/62.jpg)
62
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
![Page 63: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/63.jpg)
63
Propiedades de los casos de uso
• Son iniciados por un actor con un objetivo en mente y es completado con éxito cuando el sistema lo satisface.
• Puede incluir secuencias alternativas que llevan al éxito y fracaso en la consecución del objetivo.
• El sistema es considerado como una “caja negra” y las interacciones se perciben desde fuera.
• El conjunto completo de casos de uso especifica todas las posibles formas de usar el sistema, esto es el comportamiento requerido.
![Page 64: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/64.jpg)
64
Escenarios y Casos de Uso
• Un caso de uso describe un conjunto de secuencias de interacciones o escenarios: flujo principal y flujos alternativos o excepcionales
• Un escenario es una instancia de un caso de uso• Escenarios principales vs. Escenarios secundarios• Especificación con diagramas de secuencia o textual.
![Page 65: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/65.jpg)
65
Descripción de un caso de uso
• Describir el flujo de eventos– Texto estructurado informal
– Texto estructurado formal (plantillas)
– Pseudocódigo
– Notaciones gráficas: diagramas de secuencia
• Debe ser legible y comprensible para un usuario no experto.
• Debe indicarse: inicio y final, actores, objetos que fluyen, flujo principal y flujos excepcionales.
![Page 66: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/66.jpg)
66
Descripción de un caso de uso
Comprar artículos (en un terminal de punto de venta)
Flujo Principal: Un cliente llega al TPV con un conjunto de articulos. El Cajero registra los artículos y se genera un ticket. El cliente paga en efectivo y recoge los artículos.
1. El cliente llega al TPV con los artículos.
2. El cajero registra el identificador de cada artículo.
3. El sistema obtiene el precio de cada artículo y añade la información a la transacción de venta.
4. Al acabar el cajero indica la finalización de la introducción de artículos.
5. El sistema calcula el total de la compra y lo muestra.
![Page 67: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/67.jpg)
67
Descripción de un caso de uso
Comprar articulos (en un terminal de punto de venta)
6. El Cajero le dice al cliente el total.
7. El cliente realiza el pago.
8. El cajero registra la cantidad de dinero recibida.
9. El sistema muestra la cantidad a retornar al cliente y genera un recibo.
10. El cajero deposita el dinero recibido y saca la cantidad a devolver que entrega al cliente junto al ticket de compra.
11. El sistema almacena la compra completada.
12. El cliente recoge los artículos comprados.
![Page 68: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/68.jpg)
: Cajero
:Sistema
introducirItem(upc,cantidad)
finalizarVenta()
hacerPago(cantidad)
Cajero Comprar Articulos Cliente
![Page 69: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/69.jpg)
69
Descripción de un caso de uso
Validar Usuario (contexto de un cajero automático)
Flujo Principal: El sistema pide el NIP. El cliente lo introduce a través del teclado y pulsa Enter. El sistema comprueba la validez del NIP. Si es válido el sistema acepta la entrada y finaliza el caso de uso.
Flujo Excepcional: El cliente puede cancelar la transacción en cualquier momento, pulsando el botón Cancelar, reiniciando el caso de uso.
Flujo Excepcional: Si el NIP introducido es inválido entonces se reinicia el caso de uso. Si esto ocurre tres veces, el sistema cancela la transacción completa y se queda con la tarjeta.
![Page 70: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/70.jpg)
Ejemplo diagrama de casos de uso
Rebajar Mínimo
Registrar curso
Cerrar curso
Responsable
Aprobar curso Servicio CPE
Servicio ContabilidadCrear proyecto
Matriculación
Realizar preinscripción
AlumnoAvisar admitidos
Cancelar curso
Fin matriculacion
Sistema
![Page 71: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/71.jpg)
Ejemplo diagrama de casos de uso
Realizar preinscripción Gestión ExpedientesAlumno
Matriculación Entidad Bancaria
Actores Secundar
io
Actor Principal
![Page 72: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/72.jpg)
72
Ejemplo diagrama de casos de uso
Reservar Libro
Prestamo Libro
Devolver libro
Socio
Extender Prestamo
Prestamo revista
Profesor
Devolver revista
BibliotecarioActualizar catalogo
SocioConsultar
![Page 73: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/73.jpg)
73
Casos de uso y Colaboraciones
• Con un caso de uso se describe un comportamiento esperado del sistema, pero no se especifica cómo se implementa.
• Una caso de uso se implementa a través de una colaboración:
“Sociedad de clases y otros elementos que colaborarán para realizar el comportamiento expresado en un caso de uso”
• Una colaboración tiene una parte estática (diagramas de clases) y una parte dinámica (diagramas de secuencia).
![Page 74: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/74.jpg)
74
Casos de uso y Colaboraciones
Hacer Pedido
Gestión Pedidos
caso de uso
colaboración
realización
![Page 75: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/75.jpg)
75
Casos de uso y Colaboraciones
“El objetivo de la arquitectura del sistema es encontrar el conjunto mínimo de colaboraciones bien estructuradas, que satisfacen el comportamiento especificado en todos los casos de uso del sistema”
![Page 76: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/76.jpg)
76
Organización de Casos de uso
• Tres tipos de relaciones:
– Generalización• Un cdu hereda el comportamiento y significado de otro
– Inclusión• Un cdu base incorpora explícitamente el comportamiento de
otro en algún lugar de su secuencia.
– Extensión• Un cdu base incorpora implícitamente el comportamiento de
otro cdu en el lugar especificado indirectamente por este otro cdu
![Page 77: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/77.jpg)
77
Ejemplo
Generalización
Comprobar clave
Examinar retina
Validar Usuario
Hacer Pedido
Seguir Pedido
(establecerprioridad)
Hacer Pedido Urgente
«extend»
Relación de extensión
«include»
«include»
Relación deinclusión
![Page 78: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/78.jpg)
78
Relación de inclusión
• 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 “Hacer Pedido”:“Obtener y verificar el número de pedido. Include (Validar usuario). Examinar el estado de cada parte del pedido y preparar un informe para el usuario”.
![Page 79: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/79.jpg)
79
Relación de extensión
• El caso de uso base incluye una serie de puntos de extensión.
• Sirve para modelar – la parte opcional del sistema
– un subflujo que sólo se ejecuta bajo ciertas condiciones
– varios flujos que se pueden insertar en un punto
• Ejemplo caso de uso “Hacer Pedido”:“ Include (Validar usuario). Recoger los ítems del pedido del usuario. (establecer prioridad). Enviar pedido para ser procesado.
![Page 80: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/80.jpg)
80
Obtención de casos de uso
1) Identificar los usuarios del sistema.2) Encontrar todos los roles que juegan los usuarios
y que son relevantes al sistema.3) Para cada rol 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. (¡Cuidado!)6) Revisar y validar con el usuario.
![Page 81: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/81.jpg)
81
Plantilla para casos de uso (D. Coleman)
Caso de Uso identificador / historia
Descripciónobjetivo a conseguir
Actores lista de actores
Asunciones condiciones que deben cumplirse
Pasos interacciones entre los actores y el sistema necesarias para obtener el objetivo
Variaciones (opcional) cualquier variación en los pasos
No-funcional (opcional) lista requisitos no funcionales
Cuestiones lista de cuestiones que permanecen por resolver
![Page 82: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/82.jpg)
82
Plantilla para casos de uso (D. Coleman)
Ejemplo campo “pasos”:
1. Operador es notificado de problema en la red
2. Operador inicia una sesión de reparación3. REPETIR
3.1. Operador ejecuta aplicación diagnósticos en la red.3.2. Operador identifica elementos que deben cambiarse y sus
nuevos valores para los parámetros.3.3. EN PARALELO
3.3.1. Ingeniero mantenimiento comprueba elementos en la red ||
3.3.2. Ingeniero mantenimiento envía informe fallo4. Operador cierra sesión
![Page 83: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/83.jpg)
83
Plantilla para casos de uso (D. Coleman)
Relación de uso: PERFORM c.d.u.
Relación de extensión:
Caso de uso extensión c.d.u. extends c.d.u.
Cambio objetivo que debe conseguirse
Pasos ...
Variaciones ...
No funcional ...
Cuestiones ...
![Page 84: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/84.jpg)
84
Plantilla usecases.org (Larman)
• Actor Principal• Personas involucradas e Intereses• Precondiciones• Postcondiciones• Escenario Principal (Flujo Básico)• Extensiones (Flujos Alternativos)• Requisitos especiales• Tecnología y Lista Variaciones de datos• Frecuencia• Cuestiones abiertas
![Page 85: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/85.jpg)
85
¿Por qué casos de uso?
• “Ofrecen un medio sistemático e intuitivo para capturar los requisitos funcionales, centrándose en el valor añadido para el usuario”
• Dirigen todo el proceso de desarrollo puesto que la mayoría de actividades (planificación, análisis, diseño, validación, test,..) se realizan a partir de los casos de uso.
• Mecanismo importante para soportar “trazabilidad” entre modelos.
![Page 86: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/86.jpg)
86
Críticas a los casos de uso (B.Meyer)
• Los casos de uso no son adecuados en el modelado orientado a objetos porque:
i) Favorecen un enfoque funcional, basado en procesosii) Se centran en secuencias de acciones
iii) Se basan en los escenarios actuales del sistema
“Solo deben ser usados por equipos expertos en desarrollo OO”
• Útiles para validación
![Page 87: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/87.jpg)
87
Utilidad de los casos de uso
• Hay consenso en considerar casos de uso como esenciales para capturar requisitos y guiar el modelado.
• Pero existe (¿ha existido?) mucha confusión sobre cómo usarlos.
• Diferentes opiniones sobre el número de casos de uso conveniente:– 20 para un proyecto 10 personas/año (Jacobson)
– depende de la granularidad
![Page 88: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/88.jpg)
88
Granularidad
• Diferente granularidad• Un caso de uso puede describir:
– Un objetivo o propósito del usuario
– Una interacción con el sistema
• Un objetivo implica una o más interacciones.• Construir un caso de uso por cada objetivo del usuario.
![Page 89: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/89.jpg)
89
Granularidad (A. Cockburn)
• Ambito– Sistema
• Funcionalidad requerida del sistema
– Organización• Objetivo estratégico para la empresa, de mucho valor
• Especificidad– Objetivo del usuario cdu– Colecciones de objetivos de usuario cdu negocio– Subfunciones inclusión de cdu
Caso de uso del negocio
Caso de uso
![Page 90: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/90.jpg)
90
Granularidad (A. Cockburn)
• Especificidad– Objetivo del usuario
• Tarea del usuario o “proceso de negocio elemental”
– Colecciones de objetivos de usuario• Recoge casos de uso de usuario relacionados
– Subfunciones• Un paso en la descripción de un caso de uso (validar, buscar, log on)
• Detalle de la interacción– Interfaz de dialogo o Interfaz semántica
![Page 91: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/91.jpg)
91
Tipos de casos de uso
• Según el nivel de detalle– Breve : Descripción en unas pocas líneas– Informal : Varios párrafos que cubren varios escenarios– Expandido : Descripción detallada con una plantilla
• Según la importancia– Primario, secundario u opcional
• Según el nivel de abstracción– Esencial : ¿Qué hace el sistema?– Concreto : Se contemplan detalles de implementación (GUI y
tecnología)
![Page 92: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/92.jpg)
92
Recomendaciones
• Especificar casos de uso no es una actividad de dibujar diagramas sino de escribir con el detalle necesario el flujo principal y los flujos alternativos: “centrado en la escritura en vez del dibujo”
• No hay que preocuparse demasiado por las relaciones entre casos de uso ni entre actores.
• El objetivo inicial es identificar los actores y a partir de sus objetivos encontrar los casos de uso, el diagrama de casos de uso es una ayuda visual.
• Los actores deben interactuar con el sistema
![Page 93: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/93.jpg)
93
Recomendaciones
• ¿Qué granularidad es apropiada para un caso de uso?• En un sistema de venta por internet,
– “Añadir producto al carro de la compra”
– “Introducir datos facturación”
¿son casos de uso?
• Deben ser objetivos del usuario
• Error común: no identificar como casos de uso las tareas que inicia el propio sistema – “Anular reservas pasados quince días”
![Page 94: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/94.jpg)
94
Recomendaciones
• No incluir como caso de uso las operaciones CRUD sobre un objeto de negocio (alta, consulta, borrado, actualización): función del sistema aparte, excepto si se trata de operaciones relevantes para el sistema, como “registrar cliente” en un sistema de venta por internet
• Cuidado con el empleo de la relación “include”¡NO HACER UNA DESCOMPOSICION FUNCIONAL!
• Escribir casos de uso independientes de la interfaz o de detalles de implementación, escribirlos a nivel esencial.
• ¿A qué nivel de detalle se describe un caso de uso?– Primero informal, luego expandido
![Page 95: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/95.jpg)
95
Recomendaciones
• Hay que comprobar que los casos de uso incluyen toda la funcionalidad del sistema.
• Preocupación por mantener la validez y consistencia del conjunto de casos de uso.
• Cada compañía debe tener un manual sobre uso de los casos de uso.
• Los casos de uso sólo consideran los requisitos funcionales del proyecto, hay que añadir los no-funcionales.
![Page 96: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/96.jpg)
96
• http://alistair.cockburn.us/usecases/usecases.html• “Writing effective uses case”, Alistair Cockburn, Addison-Wesley, 2000
• C. Larman, “UML y Patrones: Una introducción al análisis y diseño orientado a objetos y al proceso unificado”, Prentice-Hall, 2003.
Referencias
![Page 97: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/97.jpg)
97
Contenidos
• Modelado del software
• Presentación de UML• Modelado de Casos de Usos
– Diagramas de casos de uso
• Modelado Estructural– Diagramas de Clases
![Page 98: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/98.jpg)
98
Modelado estructural
• Se describen los tipos de objetos de un sistema y las relaciones estáticas que existen entre ellos.– Clases– Interfaces– Relaciones de dependencia, realización, generalización y
asociación (agregación, composición)– También pueden incluir paquetes y colaboraciones
• Un diagrama de clase es una representación gráfica de un modelo estructural.
![Page 99: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/99.jpg)
99
Modelado estructural
• Diferentes perspectivas.• Modelado Conceptual
– Conceptos del dominio del problema: atributos, restricciones y relaciones entre ellos.
• Modelo del Análisis– Clases que corresponden a conceptos del dominio– Atributos y métodos
• Modelo de Diseño– Incluye clases que corresponden a decisiones del diseño
• Modelo de Implementación– Clases que corresponden a un lenguaje de programación
![Page 100: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/100.jpg)
Modelo Conceptual
Cliente
numeroCuentadireccion
crearPedido()
Pedido Desayuno
direcciónfechahoradescuento
calcularPrecio()
11..n
+cliente
1
+pedidos
1..n
Desayuno
numero
1..n
1
+desayuno1..n
+pedido 1
Parte
cantidad
Desayuno Estandar
nombreprecioestilo
Comestible
nombrecantidadMinimaprecioformaTransporte
0..n
0..n
0..n
0..n
0..n
1..n
0..n
1..nCambio
cantidad
![Page 101: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/101.jpg)
101
Del Modelo Conceptual a las clases
• Los modelos de análisis se obtienen a partir del modelo conceptual:– Conceptos a clases– Atributos de un concepto a atributos de la clase– Añadir comportamiento (métodos)
![Page 102: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/102.jpg)
Cuenta Domiciliacion
0..n1
Ahorro Corriente
1 0..n
Operacion Periodica
IteradorCuentaModelo de
diseño
![Page 103: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/103.jpg)
¿Modelo Conceptual o de Análisis?
PujaOrdinaria
datosTarjetaestado
Esto representa la especif icación de un artículo.
Participante
nombreapellidosnumIDdomiciliodireccionEnv iotelef onoreputacion
PagoAnuncio
PagoCuota
Articulo
idEspeccaracteristicaspv pRecomend
EdicionSubasta
idEdicionf echaIniciof echaCierreestado
Adjudicacion
+p
+pa
+pc
+puja
ArticuloConcreto
codArticulo+articulos
+art
AnuncioSubasta
pv pRecomendpujaMinimacuotagastosEnv ioplazof ormaPagoanticipo
+es+anuncios
+as
+adjudicaciones+pujas
+as
+articulos
![Page 104: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/104.jpg)
Modelo deComportamiento
: Sistema
as : AnuncioSubasta
pujas : PujaOrdinaria
adj : Adjudicacion
: ArticuloConcreto
Se crean tantas adjudicaciones como pujas ganadoras haya. Cada adjudicación se asocia con un ArticuloConcreto, una puja adjudicataria y con la subasta.
: ControladorAnuncios
Se recorre la colección de pujas obteniendo las pujas ganadoras (consideramos que la colección está ordenada de mayor a menor valor de puja).
adjudicaciones : Adjudicacion
: EdicionSubasta
int numAjudicaciones = Minimo(pujas.length(), articulos.length());
: AnuncioSubasta
5. numAdjs = calcularAdjudicaciones()
1. cerrarEdicionSubasta(es)
6. [1..numAdjs]* pg := get()
8. [1..numAdjs]* adj := crear(as, pg, a)
7. [1..numAdjs]* a:= get()
9. [1..numAdjs]* add(adj)
2. cerrar()
4. * cerrar()
3. * as := get()
![Page 105: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/105.jpg)
105
Colaboración (parte estática)
Pedido
numerotipoPagoestadocaducidad
Usuario
nombrenifemailloginclave
0..n1 0..n1
CarroCompra
precioitems
1
1
1
1
ItemCarro
unidadestotal
1..n1 1..n1
ItemPedido
unidadestotal
1..n1 1..n1
Producto
nombredescripcionprecio10..n 10..n
1
0..n0..n
1
![Page 106: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/106.jpg)
106
Colaboración (parte dinámica)
: Usuario
: CarroCompras
: ItemCarro
i : ItemCarro
: Producto
: MostrarProductos : Añadir
: CatalagoProductos
11: recalcularTotal()
1: añadirItem(codigo)
5: i:=getItemCarro(codigo)
10: [nuevoItem]put(codigo,i)
6: [!nuevoItem]incrementarUnidades()
9: [nuevoItem]i:=creaItem(p)7: [nuevoItem]p:=get(codigo)
2: añadirItem(codigo) 3: [primer producto] crear()
4: añadirItem(codigo)
8: [nuevoItem]p:=buscar(codigo)
![Page 107: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/107.jpg)
107
Patrón de diseño (Parte Estática)
Observer
Update()
Subject
subjectState
Attach()
Detach()
Notify()
1..*1..1 1..*
+observers
1..1
ConcreteSubject
subjectState
getState()
setState()
ConcreteObserver
observerState
update()
+subject
observerState=
subject.getState()
for all o in observers
{o.update()}
![Page 108: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/108.jpg)
108
Patrón de diseño (Parte dinámica)
: Subject o1 : Observer o2 : Observer
1. setState()
1.1. notify()
1.1.1. update()
1.1.2. update()
![Page 109: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/109.jpg)
109
Ingeniería directa e Inversa
• Ingeniería directa– Transformar modelos en código en un lenguaje de
programación determinado
• Ingeniería inversa– Obtener un modelo a partir de código.– Más difícil ya que hay pérdida de información al
pasar de los modelos al código.
![Page 110: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/110.jpg)
110
visibilidad
nombre: nombre del atributo
tipo: tipo del atributo
valor_inicial: valor inicial o por defecto
[visibilidad] nombre [: tipo] [= valor_inicial ] [{propiedades}]
+ = pública # = protegida - = privada
propiedades: {frozen} {addOnly}
Atributos
![Page 111: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/111.jpg)
111
Atributos
• Nivel Conceptual: “Los clientes tienen un nombre”
• Nivel de Especificación: “El cliente puede almacenar y consultar su nombre”
• Nivel de Implementación: “Una instancia de Cliente tiene un campo de tipo String que almacena su nombre y un método que lo devuelve”
Cliente
nombre : String
![Page 112: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/112.jpg)
112
visibilidad
nombre: nombre de la operación
lista_parámetros: lista de parámetros separados por comas
tipo retorno: tipo de valor devuelto por la operación
propiedades: {isQuery}, {sequential}, {concurrent}
+ = pública # = protegida - = privada
[visibilidad] nombre [(lista_parametros)] [: tipo_retorno] [{propiedades}]
Operaciones
![Page 113: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/113.jpg)
113
Operaciones
Atributos
Operaciones
Cuenta
ultimoCodigocodigoclientesaldoultimasOperaciones
getSaldo()getUltimasOperaciones()nuevoCodigo()
![Page 114: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/114.jpg)
114
Clases Parametrizadas
«bind» <Empleado>
G
Tabla
countcapacity
put(G)item() : G
EmpleadosTabla<Cliente>
ClaseParametrizada
Instanciación
![Page 115: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/115.jpg)
115
Otras propiedades
• Clases y métodos diferidos• Multiplicidad• Variables y métodos de clase
Figura
rotar()trasladar()
visualizar()
<<abstract>>Cuenta
ultimoCodigocodigoclientesaldoultimasOperaciones
getSaldo()getUltimasOperaciones()nuevoCodigo()
![Page 116: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/116.jpg)
116
Clases Estereotipadas
MetaclaseCuenta
<<metaclass>>
FueraRango
<<exception>>
Clases y valores etiquetados
Cuenta {autor: jgm, version: 2.0}
ultimoCodigocodigoclientesaldoultimasOperaciones
getSaldo()getUltimasOperaciones()nuevoCodigo()
![Page 117: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/117.jpg)
117
Relaciones
• DependenciaUn cambio en la especificación de un elemento afecta a otro
Windowpositionparentchildrensize
open()close()move()resize()
Clock
PlanDelCurso
añadir(c : Curso)eliminar(c : Curso)
Curso
Nodo Lista
<<friend>>
![Page 118: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/118.jpg)
118
Estereotipos para dependencias
• bind: entre una clase genérica y una instanciación
• friend: dependencia de clase amiga
• refine: relación de refinamiento
• use: relación de uso
• import: un paquete importa los elementos de otro.
• extend: para casos de uso
• include: para casos de uso
![Page 119: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/119.jpg)
119
Relaciones
• Generalización– “Es-un-tipo-de”
Window
TextWindow BoxDialog
Cuenta
CuentaAhorro CuentaCorriente
![Page 120: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/120.jpg)
120
Generalización
• Nivel Conceptual– “Todas las instancias de CuentaCorriente son instancias de
Cuenta”
• Nivel Especificación– “La interfaz de CuentaCorriente incluye la interfaz de Cuenta”
– Principio Sustitución
• Nivel Implementación– Herencia
![Page 121: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/121.jpg)
121
Asociación
• Asociación– Relación estructural que especifica que los objetos de un tipo
están conectados con los de otro.
Persona Empresa
*1..*
+patron+empleado
1..* *
Curso Profesor1..** 1..**
impartido
![Page 122: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/122.jpg)
122
Asociaciones
• Agregación– Caso especial de asociación– Relación estructural parte-de
Empresa
1..1
*
Departamento
1..1
*
![Page 123: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/123.jpg)
123
Asociaciones
• Nivel Conceptual– Muestran la relación conceptual entre dos clases.
“Un cliente tiene varios pedidos”
• Nivel de Especificación – Representan responsabilidades
– Detectamos los mensajes del protocolo de una clase con respecto a la otra
• Nivel de Implementación– Establecer atributos: navegabilidad
![Page 124: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/124.jpg)
124
Asociaciones
• Especificación:
class Pedido {public Cliente getCliente();public Set getLineaPedido();... }
• Implementación
class Pedido {private Cliente _cliente;private HashSet _lineasPedido; …}
![Page 125: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/125.jpg)
125
Navegación
• Posibilidad de limitar la navegación a una sola dirección
• Determina si una clase de la asociación tiene “conocimiento” de la otra.
• Nivel de especificación o implementación
Curso Profesor
1..** 1..**
impartido
![Page 126: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/126.jpg)
126
Visibilidad
• Pública: +propietario
• Protegida: #propietario
• Privada: -propietario
GrupoUsuarios Usuario
**
Clave
*1..1** *
-clave+propietario
1..1
![Page 127: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/127.jpg)
127
Asociaciones calificadas
• Nivel Conceptual: “Dentro del mismo pedido no pueden existir dos líneas con el mismo producto”
• Nivel Especificación: “El acceso a ItemPedido es indexado por productos”
• Nivel Implementación: “Se usa una tabla para almacenar las líneas de pedido”
Pedido
numerotipoPagoestadocaducidad 1
producto
1
ItemPedido
unidadestotal
![Page 128: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/128.jpg)
128
Asociaciones calificadas
Class Pedido {
private Hashtable _lineasPedido;
public ItemPedido getItemPedido(Producto unProducto);
public void addItemPedido (Integer cantidad, Producto elProducto);
…
}
![Page 129: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/129.jpg)
129
Agregación
• Dos criterios:– Dependencia:
¿La existencia de una parte va ligada a la del agregado?
– Exclusividad: ¿Una parte puede pertenecer a más de un agregado?
• Cuatro posibles tipos de agregación
![Page 130: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/130.jpg)
130
Composición
• Es un caso particular de agregación: exclusiva y dependiente
• Las partes pueden crearse después del agregado compuesta al que pertenecen, pero una vez creadas viven y mueren con ella.
• La parte sólo puede formar parte de un agregado.• El agregado gestiona la creación y destrucción de las
partes.• Las partes se pueden eliminar antes de eliminar el
agregado.
![Page 131: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/131.jpg)
131
Composición
Marco
Ventana
1..1
*
1..1
*
agregado /todo
parte
composición
![Page 132: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/132.jpg)
132
Composición
POLIGONO
1
Relleno:Diseño
Punto
{ordered} 3..*
1
Punto
Poligono
1
3..nDiseño
colortextura
11 1
3..n {ordered}
![Page 133: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/133.jpg)
133
Clases Asociación
• Una asociación que también es una clase• Una clase asociación añade una restricción:
“Sólo puede existir una instancia de la asociación entre cualquiera par de objetos participantes”
• No podríamos modelar que una persona tiene diferentes contratos para una misma compañía a lo largo del tiempo.
![Page 134: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/134.jpg)
134
Ejemplo de clase asociación
Empleado
id0..n0..n
HistoriaSalario
iniciofinsalario
NivelSalario
minmaxiniciofinnameid
0..n0..n
![Page 135: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/135.jpg)
135
Ejemplo de clase asociación
Persona Compañia
*1..*
Trabajo
descripcionfechaContratosalario
+patron
*
+empleado
1..*
![Page 136: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/136.jpg)
136
Asociaciones derivadas
Asociación
Derivada
Pedido
numerotipoPagoestadocaducidad
Cliente
nombredireccionemail
0..n
1
Factura
numerofechatotal0..11
0..n
1
1
0..n
1 0..1
/facturaCliente
1
0..n
![Page 137: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/137.jpg)
137
Asociaciones derivadas
Asignatura
Profesor
imparte
Estudianterecibe
/enseña
Asociación
Derivada
![Page 138: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/138.jpg)
138
Restricciones para Asociaciones
Empresa
Cuenta
Persona
{or}
Departamento
Persona
*
1..11..*
* *
+Director
1..1+miembro 1..*
*
{subconjunto}
![Page 139: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/139.jpg)
139
Restricciones para Asociaciones
PersonaCompañia* 0..1
empleado*
0..1
{Persona.patrón=
Persona.jefe.patrón }
patrón
jefe
operario
![Page 140: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/140.jpg)
140
Realización
Relación entre clasificadores, un clasificador especificaun contrato que otro clasificador garantiza que cumplirá.
IPila
push()pop()top()
<<Interface>>
Pila
IPila
Pila
![Page 141: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/141.jpg)
141
Clases Abstractas e Interfaces
DataInput(from io)
DataInputStream(from io)
FilterInputStream(from io)
InputStream(from io)
InputStreamReader(from io)
Clase Abstracta
Interfaz
![Page 142: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/142.jpg)
142
Clases Abstractas e Interfaces
DataInput(from io)
<<Interface>>
DataInputStream(from io)
FilterInputStream(from io)
InputStream(from io)
InputStreamReader(from io)
Interfaz
![Page 143: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/143.jpg)
143
Paquetes
• Elemento organizativo• Puede agrupar elementos de cualquier tipo.• Un elemento es exclusivo a un paquete.• Establece un espacio de nombres• Posibilidad de anidar paquetes.
Modelo
Modelo
+ Producto+ CarroCompra+ Comercio
![Page 144: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/144.jpg)
144
Importación/Exportación en paquetes
• “Los paquetes permiten controlar la complejidad del manejo de un gran número de abstracciones, controlando los accesos mediante la importación”.
• Relaciones de importación, acceso y generalización• La parte pública de un paquete son sus exportaciones.• Las partes públicas son visibles en los paquetes que
importan al paquete contenedor.• La importación no es transitiva.• Los paquetes anidados pueden ver todo lo que ven los
paquetes que los contienen.
![Page 145: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/145.jpg)
Servidor
+ BaseDeDatos+ ServicioDeRegistro
Cliente
+ FormularioPedido+ FormularioDeSeguimiento- Pedido
GUI
+ Ventana+ Formulario# GestorEventos
Politicas
+ ReglasPedidos+ GUI:Ventana
<<import>>
<<import>>
![Page 146: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/146.jpg)
146
Generalización de Paquetes
WindowsGUI
+ GUI:Ventana+ Formulario# GUI:GestorEventos+ VBForm
GUI
+ Ventana+ Formulario# GestorEventos
MacGUI
![Page 147: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/147.jpg)
![Page 148: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/148.jpg)
148
Paquetes
• Un paquete bien estructurado debe:– ser cohesivo– estar poco acoplado– pocos anidamientos– conjunto equilibrado de elementos
![Page 149: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/149.jpg)
149
Uso de los paquetes
Struts<<framework>>
Diseño<<model>>
Pedidos<<subsystem>>
Servicios Básicos
<<layer>>
![Page 150: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/150.jpg)
150
Uso de los paquetes
• Agrupar elementos relacionados para manejarlo en conjunto.
Paquete “Clases e interfaces del modelo”Paquete “Interfaces de usuario”Paquete “Servicios base de datos”Paquete “Modelo del análisis”
• Un modelo es un paquete incluyendo todos los elementos que constituyen una particular vista del sistema modelado.
![Page 151: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/151.jpg)
151
Sistema, modelo, vista, diagrama
• Un sistema es aquello que se está desarrollando y para lo que se crean modelos.
• Un sistema debe ser modelado desde dos puntos de vista:– Modelar el problema: comprender el problema
– Modelar el producto a crear: diseñar la solución
• Modelado OO ofrece una correspondencia directa entre los dos puntos de vista, a través del concepto de “objeto”
![Page 152: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/152.jpg)
152
Sistema, modelo, vista, diagrama
• Un modelo captura una vista de un sistema físico. Es una abstracción de ese sistema con cierto propósito, por ejemplo modelar su comportamiento en relación a unas personas que tienen determinado interés.
• Un modelo contiene todos los elementos de modelado necesarios, organizados en una jerarquía de paquetes/ subsistemas.
• Un modelo y sus elementos tienen una especificación.• Un modelo y sus elementos se representan mediante
diagramas, que expresan una vista del modelo.
![Page 153: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/153.jpg)
153
Subsistema
• Un subsistema es una “unidad de comportamiento” en el sistema.
• Permite descomponer el sistema• Un subsistema ofrece interfaces, tiene operaciones, y
distingue entre especificación e implementación.
![Page 154: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/154.jpg)
![Page 155: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/155.jpg)
![Page 156: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/156.jpg)
156
Vistas UML
Vista de DiseñoVista de Implementacion
Vista de Procesos Vista de Despliegue
Vista de casos de uso
vocabulariofuncionalidad
ensambladogestion conf.
topologíaentregadistribucióninstalación
Funcionamientoescalabilidadrendimiento
comportamiento
Modelo de la Arquitectura de un sistema
![Page 157: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/157.jpg)
157
Vistas UML
Vista de DiseñoVista de Implementacion
Vista de Procesos Vista de Despliegue
Vista de casos de uso
clasesinterfacescolaboraciones
componentes
nodosclases activas
casos de uso
![Page 158: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/158.jpg)
158
Vistas UML
Vista de DiseñoVista de Implementación
Vista de Procesos Vista de Despliegue
Vista de casos de uso
Diagramas de claseDiagramas de interacciónDiagramas de estado
Diagramas de componentesDiagrama de interacciónDiagramas de estado
Diagramas de despliegueDiagrama de interacciónDiagramas de estado
Diagramas de casos de uso
Diagramas de claseDiagramas de interacciónDiagramas de estado
![Page 159: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/159.jpg)
159
Diagrama de Objetos
: Cuenta
: Tarjeta : Transaccion : Cliente : CodigoCuenta
: Perfil
Modelan las instancias de los elementos contenidos en los diagramas de clases
Muestra un conjunto de objetos y sus relaciones en un momento concreto
Se utilizan para modelar la vista de diseño estática o la vista de procesos estática de un sistema
Enlace
Objeto
Multiobjeto (colección de objetos anónimos)
![Page 160: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/160.jpg)
160
Diagrama de Objetos
: Curso
: Profesor
: Alumno
: Expediente : Departamento
director : Profesor : GrupoInvestigacion
: Tarjeta : Tarjeta
![Page 161: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/161.jpg)
161
Contenidos
• Modelado del Comportamiento– Diagramas de interacción– Diagramas de actividades– Máquinas de estado
• Modelado de la Implementación– Diagramas de componentes– Diagramas de despliegue
• Colaboraciones • Formalización de UML: MOF y metamodelo
![Page 162: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/162.jpg)
162
Enlaces y Asociaciones
• Un enlace es :– una conexión semántica entre objetos.
– una instancia de una asociación.
– un camino por el cual enviar un mensaje
Persona
calcularCompensacion()asignar()
Empresa
*1..*
+patron+empleado
*1..*
p:Persona :Empresa
1: asignar(desarrollo)
mensaje
enlace
![Page 163: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/163.jpg)
163
Interacciones y Mensajes
• Interacción: Comportamiento que comprende un conjunto de mensajes intercambiados entre un conjunto de objetos dentro de un contexto para lograr un propósito.
• Mensaje: especificación de una comunicación entre objetos que transmite información, con la expectativa de desencadenar una actividad.
![Page 164: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/164.jpg)
164
Modelado del comportamiento
• Se describe cómo los objetos colaboran entre sí para realizar cierta actividad.
• Se expresan mediante los diagramas de interacción:– Diagramas de Secuencia y Diagramas de Colaboración.
• También se describe las máquinas de estado que caracterizan a los objetos– Diagramas de estado
– Diagramas de actividades
![Page 165: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/165.jpg)
165
Diagramas de Interacción
• Describen una interacción.• Dos tipos: Diagramas de Secuencia y Colaboración• Diagramas de Secuencia:
– Destacan la ordenación temporal de los mensajes
• Diagramas de Colaboración:– Destacan la organización estructural de los objetos
participantes.
• Equivalencia semántica
![Page 166: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/166.jpg)
166
Diagramas de Secuencia
• Incluye:– Objetos y su línea de tiempo– Focos de control o activación– Mensajes: a instancias o de creación– Mensaje self ( especifica que el objeto correspondiente es
visible porque es el emisor del mensaje)
– Información de control: condiciones ( entre corchetes)y marcas de iteración ( asterisco)
– Indicar el objeto devuelto por el mensaje: return(añadirlos sólo cuando ayuden a clarificar la interacción)
![Page 167: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/167.jpg)
167
Mensajes
• Simple: metodo(arg) • Creación de objetos: <<create>>• Condición: [cond] metodo()• Iteración: * metodo() • Asignación: v:= getObjeto()
• Numeración jerárquica o secuencial o ninguna
![Page 168: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/168.jpg)
168
Diagramas de Secuencia
: InterfacePedido
: ControladorPedido
: Pedido : LineaPedido : Item
: ItemPedido
: ItemEntregado
1: preparar()2: preparar() 3: * preparar()
4: hayStock:=check()
5: [hayStock] eliminar()
6: pedir?:= necesarioPedir()
7: [pedir?] <<create>>8:
9: [hayStock] <<create>>
![Page 169: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/169.jpg)
169
Diagramas de Colaboración
: InterfacePedido
: ControladorPedido : Pedido
: LineaPedido
: Item
: ItemPedido :
ItemEntregado
1: preparar() 2: preparar()
3: * preparar()
4: hayStock:=check()5: [hayStock] eliminar()
6: pedir?:= necesarioPedir()
7: [pedir?] <<create>> 8: [hayStock] <<create>>
![Page 170: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/170.jpg)
170
Diagrama de Secuencia
c:Cliente
:Transaccion
p:ProxyODBC
<<create>>
establecerAcciones
establecerValores
exito
<<destroy>>
establecerValorestiempoLínea de vida
Foco de control
![Page 171: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/171.jpg)
171
Diagrama de Colaboración
c:Cliente :Transaccion
p:ProxyODBC
1: <<create>>2: establecerAcciones
3: establecerValores
5: exito
4: establecerValores
6: <<destroy>>
![Page 172: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/172.jpg)
172
Diagrama de Secuencia
c:Cliente
:AgenteBilletes
a:AyudaPlanificacion
<<create>>
establecerItinerario(i)
calcularRuta
ruta
<<destroy>>
notificar
![Page 173: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/173.jpg)
173
Diagrama de Colaboración
a:AyudaPlanificacion
c:Cliente :AgenteBilletes
3: calcularRuta
1: <<create>>2: establecerItinerario(i)
5: <<destroy>>
4: ruta
6: notificar
![Page 174: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/174.jpg)
174
Numeración secuencial
: A : B : C
: D
1: m1()
2: m2()
3: m3()
4: m4()
Confusión en el flujo de ejecución
![Page 175: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/175.jpg)
175
Numeración jerárquica
: A : B : C : D
1. m1()
1.1. m2()
1.2. m3()
1.3. m4()
![Page 176: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/176.jpg)
176
Numeración jerárquica
: A : B : C
: D
1. m1( )
1.1. m2( )
1.3. m4( )
1.2. m3( )
![Page 177: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/177.jpg)
177
Numeración jerárquica
: A : B : C : D
1. m1( )1.1. m2( )
1.2. m4( )
1.1.1. m3( )
![Page 178: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/178.jpg)
178
Numeración jerárquica
: A : B : C
: D
1. m1( )
1.1. m2( )
1.1.1. m3( )
1.2. m4( )
![Page 179: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/179.jpg)
179
Numeración jerárquica
: A : B : C
: D
1. m1()
1.1. m2()
1.2. m3()
1.3. m4()
![Page 180: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/180.jpg)
180
Tipos de mensajes
• Simple– Llamada de operación o flujo anidado de control
• Síncrono (llamada)– El emisor espera hasta recibir el resultado
• Asíncrono– El emisor no espera a recibir el resultado
• Retorno– Indica el retorno de una llamada
![Page 181: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/181.jpg)
![Page 182: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/182.jpg)
![Page 183: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/183.jpg)
183
Uso de los diagramas de interacción
• Modelado del aspecto dinámico.• Modelado del flujo de control que caracteriza el
comportamiento de un sistema:– casos de uso
– colaboraciones
– patrones
– frameworks
– operaciones
![Page 184: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/184.jpg)
184
Caso de Uso (Escenario)
: Cliente:ReceptorPedidos :AgenteTarjeta
Credito:GestionPedido :AgenteFacturacion
enviarPedido
procesarTarjeta
tramitarPedido
confirmarPedido
emitirFactura
![Page 185: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/185.jpg)
185
:OrderManager: TechnicalResponsible
: LaunchManufacturing GUI
:EvaluatedOrders o : Order : Product : WorkOrder : OrderLine
selectOrder()selectOrder(cod)
o:=find(cod)
launchManufacturing()launchManufacturing(cod)
launch manufacturing()*generateWO()
tpl:=getTemplate()
createWO(tpl)
Caso de uso (Colaboración)
![Page 186: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/186.jpg)
186
Caso de uso de negocio
viajero: Empleado encargado: Empleado contable : Empleado pagador : Empleado
solicitudPermisoViaje()
PermisoViaje()
informeGastos(unInforme)
OKgastos(unInforme)
solicitudPago(viajero)
![Page 187: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/187.jpg)
187
Caso de uso de negocio
: JefeTecnico: Cliente : Comercial : JefeProduccion
darCursoPedido()estudiarPedido()
* analizarFabricacionProducto()
informarAnalisisPedido()
planificarFabricacion()
acceptarPedido()
![Page 188: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/188.jpg)
188
Diagramas de Secuencia vs. Diagramas de Colaboración
• Equivalencia semántica• Simples para comportamientos simples.• Si hay mucho comportamiento condicional, usar
diferentes escenarios.• Diagramas de secuencia muestran mejor el orden en que
se ejecutan los mensajes• Diagramas de colaboración muestran claramente los
objetos con que interactúa un determinado objeto.
![Page 189: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/189.jpg)
189
Diagramas de Actividades
• Muestran un flujo de actividades.• Es un caso especial de máquina de estados.• Incluye:
– estados actividad y estados acción
– transiciones
– objetos
• Una actividad produce alguna acción que produce algún cambio en el sistema o retorna un valor.
![Page 190: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/190.jpg)
190
Estados Acción y Estados Actividad
Procesar Pedido
• Un estado acción no se puede descomponer, representa una computación atómica.
• Un estado actividad no es atómico, se compone de otros estados acción y actividad.
• Al entrar se ejecuta la acción o actividad, al terminar el flujo de control pasa a la siguiente acción o actividad.
• Misma notación
![Page 191: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/191.jpg)
191
Transiciones
estado final
estado inicial
transiciones
Planificar Proceso
Asignar Tareas
![Page 192: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/192.jpg)
192
Bifurcación
[ hay materiales ]
Planificar Proceso
Asignar Tareas
Volver a Planificar
[ no hay materiales ]
![Page 193: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/193.jpg)
193
División y Unión
Preparar conversación
Limpieza
Emitir audio
Gesticular
Descomprimir
Mover boca
división
unión
![Page 194: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/194.jpg)
Solicitar Producto
Procesar PedidoExtraer Articulos
Enviar Pedido
Recibir Producto Facturar al cliente
Pagar FacturaCerrar Pedido
![Page 195: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/195.jpg)
Cliente Ventas Almacen
Solicitar Producto
Procesar PedidoExtraer Articulos
Enviar Pedido
Recibir Producto Facturar al cliente
Pagar FacturaCerrar Pedido
Calles
![Page 196: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/196.jpg)
Cliente Ventas Almacen
Solicitar Producto
Procesar PedidoExtraer Articulos
Enviar Pedido
Recibir Producto Facturar al cliente
Pagar FacturaCerrar Pedido
o: Pedido[en progreso]
o: Pedido[completado]
b: Factura[impagada]
![Page 197: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/197.jpg)
Rellenar Pedido
Cursar pedido
Notificar aceptacionde pedido
Fin OK
Notificar rechazode pedido
Fin KO
Analizar viabilidad
¿Viable ?[ NO ]
Planificar produccion
[ SI ]
: JefeProduccion: JefeTecnico : Comercial : Cliente
p:Pedido[propuesto]
p:Pedido[rechazado]
p:Pedido[aceptado]
:Orden deTrabajo
[pendiente]
:Plantilla deProduccion
:Catalogo
:ProductoEspecial
p:Pedido[en_evaluacion]
p:Pedido[evaluado]
:Plantilla deProduccion
Ordenar fabricacion
Mucha información
![Page 198: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/198.jpg)
Inicio
Introducir Pedido
Cursar Pedido
Denegar Pedido
Aceptar Pedido
Analizar Pedido Viable
Viable
[no]
Ordenar Fabricacion
Planificar Produccion
[si]
Jefe ProduccionJefe TecnicoComercialCliente
![Page 199: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/199.jpg)
199
Utilidad de los diagramas de actividades
• Modelado de flujos de trabajo (workflow) como son los procesos de negocio (business process).
• Se puede asociar a cualquier elemento de modelado, pero lo más normal es asociarlo a una operación: diagrama de flujo de las acciones.
![Page 200: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/200.jpg)
200
Eventos
• Un evento es un acontecimiento que ocupa un lugar en el tiempo y espacio.
• Un evento es un estímulo que dispara una transición en una máquina de estados.
• Eventos externos vs. Eventos internos.• Tipos de eventos:
– Señales (excepciones)
– Llamadas
– Paso de tiempo
– Cambio de estado
![Page 201: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/201.jpg)
Señales
![Page 202: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/202.jpg)
Modelado Excepciones
Conjunto
añadir()eliminar()
Excepcion
establecerManejador()primerManejador()ultimoManejador()
<<exception>>
Duplicado<<exception>>
Overflow<<exception>>
Underflow<<exception>>
<<send>><<send>> <<send>>
![Page 203: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/203.jpg)
203
Estados
• Un estado es una situación en la vida de un objeto en la que satisface cierta condición, realiza alguna actividad o espera algún evento.
• Elementos de un estado– Nombre
– Acciones entrada/salida
– Transiciones internas
– Subestados
– Eventos diferidos
![Page 204: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/204.jpg)
204
Estados
Rastreandoentry/ activarModo(enRastreo)exit / activarModo(noRastreo)nuevoObjetivo/rastreador.adquirirdo / seguirObjetivoautotest / defer
acción entradaacción salida
transición interna
evento diferido
acción entrada
actividad
![Page 205: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/205.jpg)
205
Transiciones
• Una transición de un estado A a un estado B, se produce cuando se origina el evento asociado y se satisface la condición especificada, en cuyo caso se ejecuta la acción de salida de A, la acción de entrada a B y la acción asociada a la transición.
• Elementos de una transición:– Estados origen y destino– Evento de disparo– Condición de guarda– Acción
![Page 206: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/206.jpg)
206
Máquina 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.
![Page 207: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/207.jpg)
Inactivo
Rastreando
Buscando Configuración
Acoplamiento
ruido
After (2 sec) send c.estaActivo
contactar
objetivoEn(p)[representaAmenaza] / t.añadirObjetivo(p)
![Page 208: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/208.jpg)
208
Diagrama de Estado (Caso de Uso)
Espera Venta Introduccion Productos
Espera Pago
introducirProducto
introducirProducto
Terminar Venta
Autorizacion Pago
efectuar Pago Efectivo
efectuar Pago Tarjeta
manejarRespuesta
![Page 209: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/209.jpg)
209
Diagrama de Estado (Caso de Uso)
Establecer Cliente y Verificar pago
cerrarPedido( (codigoCuenta, direcciónEnvio, fechaTarjeta,.. )
Pago
Envio
enviarCargo (codigoCuenta,..)
Pago No apobado
rechazarPago
enviarCargo (codigoCuenta,..)
Entregado
pagoAprobado
pedidoEntregado
![Page 210: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/210.jpg)
210
Subestados secuenciales
Selección
Mantenimiento
Activo
Validación
Inactivo
Procesando
Impresión
mantener
introducirTarjeta
cancelar[continuar]
[no continuar]
entry/leerTarjetaexit/expulsarTarjeta
![Page 211: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/211.jpg)
211
Subestados concurrentes
Mantenimiento
Probarperifericos
InactivoAutoDiagnosis
mantener
[continuar]
[no continuar]
Pruebas
Espera Orden
Manejo Ordenes
Pulsar tecla
![Page 212: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/212.jpg)
212
Subestados Concurrentes
![Page 213: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/213.jpg)
213
Contenidos
• Modelado del Comportamiento– Diagramas de interacción– Diagramas de actividades– Máquinas de estado
• Modelado de la Implementación– Diagramas de componentes– Diagramas de despliegue
• Colaboraciones • Formalización de UML: MOF y metamodelo
![Page 214: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/214.jpg)
214
Componentes
• Un componente es una parte física y reemplazable de un sistema, que conforma con un conjunto de interfaces y proporciona su implementación.
• Modela artefactos tales como: ejecutables, bibliotecas, tablas, ficheros, documentos,..
• Representa el empaquetamiento físico de elementos lógicos tales como clases, interfaces,..
• Residirán en los nodos del sistema
Estereotipos: executable, library, file, table, document
![Page 215: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/215.jpg)
215
Componentes (UML 1.5)
“Es una parte de un sistema reemplazable, modular y desplegable que encapsula una implementación y expone un conjunto de interfaces. Normalmente especificado por uno o más clasificadores (clases, interfaces, tipo de dato,..) que residen en el componente, y un conjunto de ellos define su interfaz externa. Conforma a las interfaces que expone al exterior, y puede ser implementado por un fichero binario, ejecutable o script. Puede ser desplegado sobre un nodo”
![Page 216: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/216.jpg)
Propiedades de un componente
• Es una unidad de despliegue independiente.• Puede ser conectado con otros componentes• En una aplicación dada existirá una única copia• Es una parte sustituible de un sistema (conforma con una
interfaz)• Realiza una función bien definida (cohesión física y lógica)• Abarca más de una colaboración de clases• Existe en el contexto de una arquitectura bien definida.• Presupone una infraestructura tecnológica en la que se
piensa utilizar
![Page 217: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/217.jpg)
217
Propiedades de un componente
InterfazComponente
EspecificaciónComponente
ImplementaciónComponente
InstalaciónComponente
InstanciaComponente
1..* *1
*
1
*
1
*
Interfaz soportada
realización
instalación
instancia
![Page 218: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/218.jpg)
218
Componentes
agenteFraudes.dll
Realiza
agenteFraudespoliticaFraudesbusquedaPatrones
Explorador<<EXE>>
![Page 219: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/219.jpg)
219
Componentes
explorador.java arbol.java
El componente arbol.java puede ser reemplazado por otroque proporcione la interfaz JerarquíaElementos.
JerarquíaElementos
![Page 220: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/220.jpg)
220
Componentes
AsignacionAula.exe
AsignaturaUSP
AulaUSP
Reserva
Asignacion
![Page 221: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/221.jpg)
221
Tipos de componentes
• Despliegue– Necesarios y suficientes para formar un sistema ejecutable:
librerías dinámicas (dll), ejecutables (exe),..
• Productos del trabajo– Permanecen al final del proceso de desarrollo: archivos código
fuentes, ficheros de datos,..– Con ellos se crean los componentes de despliegue
• De ejecución– Se crean durante la ejecución: objeto COM, instanciado a partir
de una dll.
![Page 222: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/222.jpg)
222
Diagrama de Componentes
• Modelado de ejecutables y bibliotecas
• Modelado de código fuente
• Modelado de una API
![Page 223: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/223.jpg)
223
Modelado de ejecutables
v.exe
Vwbas20.dll vwdev20.dllvwsrc20.dll
![Page 224: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/224.jpg)
224
Componentes (UML 2.0)
• “Es una parte modular de un sistema que encapsula su contenido y cuya manifestación se puede reemplazar en su entorno”
• Define su comportamiento en términos de las interfaces que requiere y proporciona.
• Puede actuar como un tipo.• Es una unidad auto-contenida que encapsula el estado y
comportamiento de clasificadores (cdu, clases, interfaces)
![Page 225: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/225.jpg)
225
Componentes (UML 2.0)
Interfaces proporcionadas
Interfaces requeridas
![Page 226: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/226.jpg)
226
Componentes (UML 2.0)
Interfaz proporcionada
Interfaz requerida
![Page 227: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/227.jpg)
227
Componentes (UML 2.0)
![Page 228: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/228.jpg)
228
Componentes (UML 2.0)
![Page 229: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/229.jpg)
229
Nodos
• Un nodo es un elemento físico que existe en tiempo de ejecución y representa un recurso computacional que puede tener memoria y capacidad de procesamiento.
• Los componentes se ejecutan en nodos• Los nodos representan el despliegue físico de los
componentes.
![Page 230: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/230.jpg)
230
Diagramas de Despliegue
• Muestra la configuración de los nodos que participan en la ejecución y de los componentes que residen en los nodos.
• Incluye nodos y arcos que representan conexiones físicas entre nodos.
• Modelado de sistemas empotrados, sistemas cliente-servidor, sistemas distribuidos.
![Page 231: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/231.jpg)
231
Diagrama de Despliegue
servidor Unidad RAID
Consola
<<RS-232>>
terminal
<<10-T-Ethernet>>
![Page 232: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/232.jpg)
servidor cache<<procesador>
servidor cache<<procesador>>
servidor principal
<<procesador>servidor
<<procesador>servidor
<<procesador>>servidor
<<procesador>>
<<red>> red local
internet
Modem
![Page 233: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/233.jpg)
![Page 234: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/234.jpg)
234
Contenidos
• Modelado del Comportamiento– Diagramas de interacción– Diagramas de actividades– Máquinas de estado
• Modelado de la Implementación– Diagramas de componentes– Diagramas de despliegue
• Colaboraciones • Formalización de UML: MOF y metamodelo
![Page 235: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/235.jpg)
235
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).
![Page 236: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/236.jpg)
236
Colaboraciones
• El núcleo de la arquitectura de un sistema está formado por un conjunto de colaboraciones que representan las decisiones de diseño más importantes.
• Un sistema orientado a objetos bien estructurado se compone de un conjunto relativamente pequeño de colaboraciones.
• Modelado de un caso de uso, operación o mecanismo (patrón o framework)
![Page 237: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/237.jpg)
237
Casos de uso y Colaboraciones
Hacer Pedido
Gestión Pedidos
caso de uso
colaboración
realización
![Page 238: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/238.jpg)
238
Ejercicio
Diseña una colaboración de un mecanismo Object Trading que separa la representación de una información de su presentación y edición; las clases que representan a los objetos información no conocen a las clases que representan editores y viceversa. Un mismo editor puede editar diferentes tipos de información y una misma información puede ser editada por diferentes editores.
El propósito del mecanismo es seleccionar un editor que colaborará adecuadamente con el objeto información, creará un objeto editor y lo ligará con el objeto información.
Un objeto cliente solicitará a un objeto Trader editar cierta información.
![Page 239: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/239.jpg)
239
Mecanismo trading (Parte estática)
FactoriaEdi tor
Editor
1..1
1..1
1..1
1..1
especifica
Trader
1..n1..1 1..n1..1
ObjetoInformacion
1..n1..n 1..n1..n
editado con
ClienteDeGestor
1..11..n 1..11..n
1..n
0..n
1..n
0..n
necesita editar
![Page 240: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/240.jpg)
240
Mecanismo trading (Comportamiento)
: ClienteDeGestor : Trader : FactoriaEditor info : ObjetoInformacion
: Editor
editar(info)* i:= getInterfaz()
p:= soportaInterfaz(i)
[p] crearEditor(info)<<create>>
¿Clases Cliente, Editor y ObjetoInformacion?
![Page 241: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/241.jpg)
241
Mecanismo trading (Comportamiento)
: Cliente... : Trader : FactoriaEditor
info : ObjetoInformacion : Editor
1: edi tar(info)
2: * i := getInterfaz()4: [p] crearEdi tor(info)
3: p:= soportaInterfaz(i )5: <<create>>
¿Clases Cliente, Editor y ObjetoInformacion?
![Page 242: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/242.jpg)
242
Colaboraciones Parametrizadas
Observer
SubjectObserver
Alarma Ventana
Subject Observer
Modelado de patrones de diseño
![Page 243: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/243.jpg)
243
Patrón de diseño (Parte Estática)
Observer
Update()
Subject
subjectState
Attach()Detach()Notify()
1..*1..1 1..*
+observers
1..1
ConcreteSubject
subjectState
getState()setState()
ConcreteObserver
observerState
update()
+subject
observerState= subject->getState()
for all o in observers {o->update}
![Page 244: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/244.jpg)
244
Patrón de diseño (Parte dinámica)
: Subject one : Observer
Update( )
SetState( )
Notify( )
GetState( )
another : Observer
Update( )
GetState( )
![Page 245: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/245.jpg)
245
Contenidos
• Modelado del Comportamiento– Diagramas de interacción– Diagramas de actividades– Máquinas de estado
• Modelado de la Implementación– Diagramas de componentes– Diagramas de despliegue
• Colaboraciones • Formalización de UML: MOF y metamodelo
![Page 246: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/246.jpg)
246
Lenguajes OMG
• MOF (Meta Object Facility)• UML• OCL• AS (Action Semantics)
– Definir semántica de modelos de comportamiento– Muy bajo nivel– No define una sintaxis concreta
![Page 247: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/247.jpg)
247
Lenguajes OMG
• Perfiles UML (Profiles)– Subconjunto de UML con extensiones para un dominio
concreto– Perfiles estándar OMG: EDOC, Corba, EAI,..
• QVT (Query, Views,Transformations)– Lenguaje estándar para definir transformaciones
![Page 248: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/248.jpg)
248
Metamodelo UML
• ¿Cómo se define formalmente un lenguaje de modelado?• UML es definido con un metamodelo escrito es un
metalenguaje, MOF.• Los cuatro niveles de modelado del OMG
– Nivel MO: el sistema
– Nivel M1: el modelo del sistema
– Nivel M2: el modelo del modelo
– Nivel M3. el modelo de M2
![Page 249: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/249.jpg)
249
Arquitectura de cuatro capas del OMG
the MOFMMM
the UMLMM
a UMLmodel m
a particularuse of m
the SPEMMM
the CWMMM
another UMLmodel m’
anotheruse of m
Level M3
Level M2
Level M1
Level M0
EBN
Fth
e Pascalgram
mar
a Pascalprogram
Pan ex
ecutionX
of program
P
![Page 250: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/250.jpg)
250
Metamodelo UML
• Nivel M0– Sistema de pedidos por internet
• Nivel M1– Un modelo estructural que incluye un diagrama de
clases UML– Clase Pedido con atributos fecha y producto
• Nivel M2– Metamodelo– Especificación de clase o atributo UML
• Nivel M3– Metametamodelo (Lenguaje estándar MOF)
![Page 251: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/251.jpg)
Arq
uite
ctura
de cu
atro
cap
as
del O
MG
![Page 252: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/252.jpg)
252
Metamodelo UML
ModelElement
DataType Interface
TypedClassifier
0..1 0..n
+type
0..1 0..n
Parameter
Class
Feature
0..n
1
0..n
1
![Page 253: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/253.jpg)
253
MOF
• Proporciona conceptos y herramientas para razonar sobre lenguajes de modelado y transformaciones.
• Repositorio MOF• Define un formato de intercambio para modelos de
M1 llamado XMI (XML Metadata Interchange), basado en XML.
![Page 254: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/254.jpg)
254
MDA (Model Driven Architecture)
• Nuevo paradigma de desarrollo de software (noviembre, 2000):– Desarrollo dirigido por el modelado– Ingeniería de modelos
• Artefactos del proceso de desarrollo– Modelo Independiente de la Plataforma, PIM– Modelo Específico de la Plataforma, PSM– Código
![Page 255: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/255.jpg)
MDA
“MDA separa la especificación de la funcionalidad del sistema de la especificación de la implementación de esa funcionalidad sobre una plataforma específica, y proporciona un conjunto de guías para estructurar especificaciones expresadas como modelos”
“ El paradigma MDA y los estándares que lo soportan permiten especificar en un modelo la funcionalidad del sistema que debe ser realizada sobre diferentes plataformas mediante mappings estándar para cada plataforma, y permite que diferentes aplicaciones puedan ser integradas relacionando explícitamente sus modelos, permitiendo integración e interoperabilidad y soportar la evolución del sistema conforme las tecnologías van cambiando”
![Page 256: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/256.jpg)
256
PIM y PSM
• PIM describe la funcionalidad de un sistema software (nivel de captura de requisitos y análisis).
• PSM incorpora al PIM los aspectos relacionados con la plataforma (nivel de diseño).
• Un PIM puede transformarse en uno o más PSM para una misma aplicación
![Page 257: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/257.jpg)
PIM
Cliente
numeroCuentadireccion
crearPedido()
Pedido Desayuno
direcciónfechahoradescuento
calcularPrecio()
11..n
+cliente
1
+pedidos
1..n
Desayuno
numero
1..n
1
+desayuno1..n
+pedido 1
Parte
cantidad
Desayuno Estandar
nombreprecioestilo
Comestible
nombrecantidadMinimaprecioformaTransporte
0..n
0..n
0..n
0..n
0..n
1..n
0..n
1..nCambio
cantidad
![Page 258: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/258.jpg)
258
Transformaciones de modelos
PIM PSM CódigoTMM TMC
Definición Transformación
Definición Transformación
L3L2L1
![Page 259: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/259.jpg)
259
OCL (Object Constraint Language )
• Lenguaje de especificación para escribir expresiones sobre modelos, p.e. queries, reglas de derivación de atributos, el cuerpo de operaciones de consulta, pre y postcondiciones o el invariante, guardas.
• Extiende la potencia expresiva de UML y permite crear modelos más precisos y más completos.
• Es tipado, cada expresión OCL tiene un tipo.• Utilizado para escribir las restricciones
![Page 260: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/260.jpg)
260
Expresiones OCL
context c : Company inv enoughEmployees:c.numberOfEmployees > 50
context Company inv:self.employee.select(p : Person | p.age > 50)->notEmpty()
context Person::getCurrentSpouse() : Personpre: self.isMarried = truebody: self.mariages->select( m | m.ended = false ).spouse
![Page 261: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/261.jpg)
261
Expresiones OCL
context Jobinv: self.employer.numberOfEmployees >= 1inv: self.employee.age > 21
context Person::birthdayHappens()post: age = age@pre + 1
context Company::hireEmployee(p : Person)post: employees = employees@pre->including(p) andstockprice() = stockprice@pre() + 10
![Page 262: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/262.jpg)
262
Profiles UML (Perfiles)
• Mecanismo de especialización.• Un profile (perfil) define una forma específica
de usar UML.• Agrupación de un conjunto de estereotipos,
valores etiquetados y restricciones, con su correspondiente notación para adaptar UML a un dominio concreto: EJB, aplicaciones web, CORBA, modelado del negocio,...
![Page 263: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/263.jpg)
263
Perfiles UML
• Un perfil define un metamodelo mediante la especialización de un subconjunto del metamodelo de UML.
• Usados como lenguajes de un PSM• Dos alternativas para extender UML
– Definir un perfil – Un nuevo lenguaje definido con MOF (por ejemplo
CWM)
![Page 264: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/264.jpg)
264
Perfiles UML
• Profile = Packages• Estereotipos definir nuevas meta-clases• Valores etiquetados definir nuevos meta-
atributos y nuevas asociaciones• Definir restricciones• Modelar gráficamente los perfiles
![Page 265: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/265.jpg)
265
Ejemplo de definición de Perfil UML
Node *
+localnodes
1 *
MainNode
*
+target
+source
Edge
«metamodel» MyTopology
LocalEdge
location: String
“Modelar conexiones entre elementos de un sistema de información conectadossegún la topología estrella”
![Page 266: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/266.jpg)
266
Ejemplo de definición de un Perfil UML
«profile» TopologyProfile
«stereotype» Node
«stereotype» MainNode
location: String
«metaclass» Class
«metaclass» Association
«stereotype» Egde
«stereotype» LocalEdge
![Page 267: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/267.jpg)
267
Ejemplo Perfil UML
«profile» WeightsAndColors
«stereotype» Colored
color: Color
«metaclass» Class
«metaclass» Association
«enumeration» Color
«stereotype» Weighed
weight: Integer
green yellow red blue
Estereotipos
Valores etiquetados
![Page 268: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/268.jpg)
268
Ejemplo de definición de un Perfil UML
context MyTopology::MainNode inv : self.localnodes ->forAll (n : Node | n.location = self.location) inv: self.target ->forAll(n : MainNode | n.location <> self.location )
context UML::InfrastructureLibrary::Core::Constructs::Class inv : self.isStereotyped(“Node”) implies
self.connection->select(isStereotyped(“LocalEdge”))->size = 1 andself.connection->select(isStereotyped(“Edge”))->isEmpty
context UML::InfrastructureLibrary::Core::Constructs::Association inv : self.isStereotyped(“LocalEdge”) implies
self.connection->select(participant.isStereotyped(“Node”) or participant.isStereotyped(“MainNode”) ) -> forAll(n1, n2 | n1.location =
n2.location) inv : self.isStereotyped(“LocalEdge”) implies
self.connection-> exists(participant.isStereotyped(“MainNode”) and multiplicity.min=1 and multiplicity.max=1)
inv : self.isStereotyped(“Edge”) implies self.connection->select(participant.isStereotyped(“Node”))->isEmpty and self.connection->select(participant.isStereotyped(“MainNode”) ) ->
forAll(n1, n2 | n1.location <> n2.location)
![Page 269: El Lenguaje Unificado de Modelado, UML Análisis y Diseño del Software Curso 2004/2005 Capítulo 1 Jesús García Molina Departamento de Informática y Sistemas](https://reader036.vdocumento.com/reader036/viewer/2022062809/5665b4711a28abb57c918170/html5/thumbnails/269.jpg)
Uso de un Perfil UML
«profile»
WeightsAndColors «profile»
TopologyProfile
MyApplication
«apply» «apply»
«Node» location=”uma.es”
«MainNode, Colored» CentralOffice
«Node» Branch
«Weighed» weight=10
«LocalEdge, Weighed»
1..10 1
«MainNode» location=”uma.es” «Colored» color=red