Curso UML 2010.pdf

Post on 01-Mar-2018

230 views 0 download

Transcript of Curso UML 2010.pdf

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 1/278

Modelamiento de Software conUML

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 2/278

Contenidos

• Modelado del software

• Presentación de UML

• Modelado de Casos de Usos – Diagramas de casos de uso

• Modelado Estructural

 – Diagramas de Clases

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 3/278

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

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 4/278

Contenidos

• Modelado del software• Presentación de UML

• Modelado de Casos de Usos – Diagramas de casos de uso

• Modelado Estructural – Diagramas de Clases

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 5/278

• La gran mayoría de los programas

modelan algo.

• ¿Qué significa modelar? – Un modelo es una representación

simplificada. Incluye característicasque se consideran importantes parael que lo usa, a la vez que desecha

otras que no lo son.

 – Por ejemplo, un modelo de un autode plástico para un niño, muestralos detalles del exterior y las ruedas,pero obvia por completo el motor yla transmisión, una versión mássofisticada puede incluir un motor

que funcione y unos detalles muyrealistas en el interior. Porsupuesto, mientras más realista ydetallado sea el modelo, máscostosa será su creación

IntroducciónProgramas y Modelos

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 6/278

Introducción Objetos,Comportamiento y Clases

• Los elementos del modelo en los programas Orientado porObjetos se llama Objetos.

• Los objetos que comparten cierto comportamiento se puedenagrupar en distintas categorías llamadas clases. – Objetos:

• Veamos la siguiente comparación:

Modelo de la Encargada Modelo Java

La encargada delmantenimiento modela cadauno de los 43 mecánicos con

un alfiler

En Java, los mecánicos semodelarán por un objetoMecánico y se instancian 43

La encargada modela a susclientes con chinchetas.

En Java, los clientes seránmodelados por objeto Cliente.

Cuando se produce unallamada de un cliente, laencargada pincha unachincheta en el mapa.

En Java se instancia un objetoCliente.

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 7/278

Elemento que representa

Mecánicos

Elemento que representa

Clientes

1

5

9

13

17

21

25

1 5 9 13 17 21

EjemploServicio de Mantenimiento

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 8/278

Clase que representa

Mecánicos

Clase que representa

Clientes

Mecánico

Cliente

EjemploServicio de Mantenimiento

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 9/278

Modelo de Mecánicos en el mapa conalfileres

Cada mecánico tiene caracteristicaspropias, como:

•Nombre

•Calle (X)

•Carrera (Y)

Jorge CastroX: 6 , Y: 7

Pedro PerezX: 17 , Y: 12

Luis DiazX: 1 , Y: 22

KAOS S.A.X: 19 , Y: 17

INETI S.A.X: 6 , Y: 12

Modelo de Clientes en el mapa concanchetas

Cada cliente tiene caracteristicaspropias, como:

•Razon social

•Calle (X)•Carrera (Y)

EjemploServicio de Mantenimiento

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 10/278

Clase que representa

Mecánicos

Clase que representa

Clientes

MecánicoNombre: Jorge CastroX: 6Y: 7

ClienteNombre: INETI S.A.X: 6Y: 12

MecánicoNombre: Luis DiazX: 1Y: 22

MecánicoNombre: Pedro PerezX: 17Y: 12

ClienteNombre: KAOS S.A.X: 19Y: 17

EjemploServicio de Mantenimiento

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 11/278

Acción externaComportamiento asociadomover()

Acción externaComportamiento asociadomover()

Jorge CastroX: 6 , Y: 7

Pedro PerezX: 17 , Y: 12

Luis DiazX: 1 , Y: 22

KAOS S.A.X: 19 , Y: 17

INETI S.A.X: 6 , Y: 12

EjemploServicio de Mantenimiento

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 12/278

Jorge CastroX: 6 , Y: 12

Pedro PerezX: 19 , Y: 17

Luis DiazX: 1 , Y: 22

KAOS S.A.X: 19 , Y: 17

INETI S.A.X: 6 , Y: 12

EjemploServicio de Mantenimiento

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 13/278

Clase que representa

Mecánicos

Clase que representa

Clientes

MecánicoNombre: Jorge CastroX: 6Y: 12

ClienteNombre: INETI S.A.X: 6Y: 12

MecánicoNombre: Luis DiazX: 1Y: 22

MecánicoNombre: Pedro PerezX: 19Y: 17

ClienteNombre: KAOS S.A.X: 19Y: 17

mover(6, 12) mover(19, 17)mover( , )

EjemploServicio de Mantenimiento

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 14/278

Jorge CastroX: 6 , Y: 12

Pedro PerezX: 19 , Y: 17

Luis DiazX: 1 , Y: 22

KAOS S.A.X: 19 , Y: 17

INETI S.A.X: 6 , Y: 12

Cuando un cliente llama, se coloca unachincheta en el mapa.

NOVA A.G.X: 10 , Y: 15

EjemploServicio de Mantenimiento

Ej l

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 15/278

Clase que representa

Mecánicos

Clase que representa

Clientes

MecánicoNombre: Jorge CastroX: 6Y: 12

ClienteNombre: INETI S.A.X: 6Y: 12

MecánicoNombre: Luis DiazX: 1Y: 22

MecánicoNombre: Pedro PerezX: 19Y: 17

ClienteNombre: KAOS S.A.X: 19Y: 17

mover(6, 12) mover(19, 17)mover( , )

ClienteNombre: NOVA A.G.X: 10Y: 15

EjemploServicio de Mantenimiento

Ej l

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 16/278

Jorge CastroX: 6 , Y: 12

Pedro PerezX: 19 , Y: 17

Luis DiazX: 1 , Y: 22

KAOS S.A.X: 19 , Y: 17

INETI S.A.X: 6 , Y: 12

Una vez se tenga el llamado de uncliente, se debe ubicar un mecánico ydesplazarlo hasta el cliente para queeste haga su trabajo.

NOVA A.G.X: 10 , Y: 15

EjemploServicio de Mantenimiento

Ej l

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 17/278

Jorge CastroX: 6 , Y: 12

Pedro PerezX: 19 , Y: 17

Luis DiazX: 10 , Y: 15

KAOS S.A.X: 19 , Y: 17

INETI S.A.X: 6 , Y: 12

Una vez se tenga la llamada de uncliente, se debe ubicar un mecánico ydesplazarlo hasta el cliente para queeste haga su trabajo.

NOVA A.G.X: 10 , Y: 15

EjemploServicio de Mantenimiento

Ej l

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 18/278

Clase que representa

Mecánicos

Clase que representa

Clientes

MecánicoNombre: Jorge CastroX: 6Y: 12

ClienteNombre: INETI S.A.X: 6Y: 12

MecánicoNombre: Luis DiazX: 10Y: 25

MecánicoNombre: Pedro PerezX: 19Y: 17

ClienteNombre: KAOS S.A.X: 19Y: 17

mover(6, 12) mover(19, 17)mover( 10, 15 )

ClienteNombre: NOVA A.G.X: 10Y: 15

EjemploServicio de Mantenimiento

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 19/278

IntroducciónProgramas y Modelos

• Características de los modelos: – Ya sea un modelo del mundo real o uno hipotético, comparten

las siguientes características:• Los elementos del modelo representan otras entidades más complejas;

por ejemplo, alfileres que se utilizan como representación del personalde mantenimiento en un mapa.

• Estos elementos exhiben un comportamiento consistente;por ejemplo, los alfileres indican posición, y se pueden mover • Los elementos del modelo se pueden agrupar en categorías diferentes

basándose en su comportamiento común;por ejemplo, las chinchetas aparecen y desaparecen. Una vez que sehan pinchado en el mapa, no se mueven hasta que se quitan. Por elcontrario, los alfileres permanecen todo el tiempo en el mapa pero sepueden mover. (esto refleja el hecho de que el personal demantenimiento viaja, pero las localizaciones de los clientes, biennecesitan un servicio, o bien no).

•  Acciones externas sobre los elementos del modelo les hacen exhibir elcomportamiento asociado a los mismos;por ejemplo, una mano mueve el alfiler.

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 20/278

Objetivos en el diseño de UML

• Modelar sistemas, desde los requisitos hastalos artefactos ejecutables, utilizando técnicasOO.

• Cubrir las cuestiones relacionadas con eltamaño propias de los sistemas complejos ycríticos.

• Lenguaje utilizable por las personas y las

máquinas• Encontrar equilibrio entre expresividad y

simplicidad.

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 21/278

Resumiendo modelado delSoftware

• El modelado es el diseño de aplicacionessoftware antes de escribir el código.

• Se crean un conjunto de modelos (“planos

del software”) que permiten especificaraspectos del sistema como los requisitos, laestructura y el comportamiento.

• Los modelos

 – ayudan a razonar sobre el sistema – permiten documentar las decisiones – Permiten una generación automática de código

Ti d d l

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 22/278

Tipos de modelo

• ¿En qué etapa del proceso se usa? ¿Análisis oDiseño?

• ¿Cuál es su grado de detalle? ¿Abstracto odetallado?

• ¿Qué sistema describe? ¿Modelo de negocio omodelo software?

• ¿Qué aspecto describe? ¿Estructural o decomportamiento?

• ¿Es específico o independiente de la plataforma?• ¿A qué plataforma va dirigido? EJB, JDBC, .NET,

CORBA, etc.

M d l d N i d

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 23/278

Modelos de Negocio y deSoftware

Modelo del Negocio

Modelo Software

Empresa Sistemasoftware

Sistema dela empresa

describe

describe

derivado de

Utilid d d l d l d

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 24/278

• “Una empresa desoftware con éxito esaquella que producede manera

consistente softwarede calidad quesatisface lasnecesidades de losusuarios”

• “El modelado es laparte esencial detodas las actividadesque conducen a la

producción desoftware de calidad

Utilidad del modelado

Utilid d d l d l d

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 25/278

Utilidad del modelado

¿Escribimos códigodirectamente?

Sería lo ideal pero ........ necesitamos escribir modelos

Utilid d d l d l d

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 26/278

Utilidad del modelado

• Hay estructuras que trascienden lorepresentable en un lenguaje deprogramación.

• Se facilita la comunicación entre el equipoal existir un lenguaje común.

• Se dispone de documentación que

trasciende al proyecto.

Utilid d d l d l d

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 27/278

Utilidad del modelado

• Visualizar cómo es o queremos que sea elsistema

• Especificar la estructura y comportamiento

del sistema• Proporciona plantillas que guían la

construcción del sistema.

• Documentan las decisiones.

P i d d d l d l d

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 28/278

Propiedades del modelado

• La elección de los modelos tiene unaprofunda influencia sobre cómo se acometeel 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 casiindependientes.

P é l h

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 29/278

¿Por qué las empresas no hacenmodelado?

• Hasta ahora, la mayor parte de lasempresas software no realizan ningúnmodelado.

• 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?

C t i ft d

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 30/278

¿Construimos software decalidad?

• 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 elequipo

• ¿Modelado es la solución?

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 31/278

Conceptos de Programación

Orientada a Objetos

DEFINICIONES DE OBJETO

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 32/278

DEFINICIONES DE OBJETO

•  Abstracción de software que modela todoslos aspectos relevantes de una realidad.

• Representación de la realidad que tieneestructura, estado y comportamiento.

• Entidad real o abstracta acerca de la cualse almacenan datos y operaciones queoperan sobre ellos

OBJETO = ESTADO +

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 33/278

ESTADO

• Conjunto de Atributos

• Condición actual delobjeto

• Varía dinámicamente

• No es accesible desdeafuera

• No es directamentemodificable desde afuera

MÉTODOS

• “Puertos” de entrada del

objeto

• Responden a mensajes

• Unifica forma de entradaal objeto

OBJETO = ESTADO +MÉTODOS

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 34/278

Mecánico

Nombre: Pedro PerezX: 19Y: 17

mover(19, 17)

¿Qué es la Programación

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 35/278

¿Qué es la ProgramaciónOrientada a Objetos?

• Es la manera standard actual de enfocar laprogramación.

• Un programa contiene objetos que

responden a los mensajes que se les envían.• Un Mensaje (llamada a una función) es una

petición a un objeto para que haga algo.

•  A las acciones que realizan los objetos se lesllama Métodos.

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 36/278

• Todos los objetos son ejemplares de unacategoría o Clase. El método invocadopor un objeto en respuesta a un mensaje

queda determinado por la clase delreceptor 

• Todos los objetos de una clase dada usan

el mismo método de respuesta amensajes similares.

Definición de Clase

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 37/278

Definición de Clase

“Grupo de objetos marcado porcaracterísticas comunes que incluyen

estructura y comportamiento”(Booch)

 – Los objetos son instancias de una clase – Los métodos del objeto son virtuales:• Solo están definidos en la clase

Origen de las Clases

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 38/278

Origen de las Clases

• Cosas tangibles: – Persona, Vehículo, producto, ...

• Papeles que representa: – Agente, profesor, vendedor, ...

• Eventos: – Aterrizaje, Suspensión, Venta, Devolución, ...

• Interacción: – Préstamo, Matrícula, Registro Público, ...

• Organizaciones: – Financiera, Sindicato, ...

Origen de las Clases

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 39/278

Origen de las Clases

• Conceptos: – Proyecto, Materia, ...

• Localizaciones:

 – Punto de Venta, Bodega, Oficina, ...• Visibles en la interfaz:

 – Icono, Imagen, Ventana, ...

• Dispositivos: – Sensor, Lector de Tarjeta, Teclado, Pantalla,...

Características Programación OO

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 40/278

Características Programación OO

• Encapsulación – Caja Negra

• Polimorfismo – Permitir un usar un nombre para especificar

una clase general de acciones

• Herencia

 – Un objeto puede adquirir las propiedades deotro

Claves en Desarrollo de SI

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 41/278

Claves en Desarrollo de SI

Herramientas Proceso

NotaciónI. Introducción: Modelado de SWI

Abstracción Modelado Visual

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 42/278

Sistema Computacional

Proceso de Negocios

Orden

Item

envío

“El modelado captura laspartes esenc iales del sistema ” 

Abstracción - Modelado Visual(MV)I. Introducción: Modelado de SW

II Notación (Visual) Beneficios

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 43/278

II. Notación (Visual) - Beneficios

Interface de Usuario(Visual Basic,

Java, ..)Lógica del Negocio

(C++, Java, ..)

Servidor de BDs(C++ & SQL, ..)

Múltiples Sistemas

ComponentesReutilizados

Manejar la complejidad

“Modelar el sistema

independientementedel lenguaje de implementación” Promover la Reutilización

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 44/278

¿Qué es UML?

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 45/278

¿Qué es UML?

• UML = Unified Modeling Language• Un lenguaje de propósito general para el

modelado orientado a objetos• Documento “OMG Unified Modeling

Language Specification”• UML combina notaciones provenientes

desde: – Modelado Orientado a Objetos – Modelado de Datos – Modelado de Componentes – Modelado de Flujos de Trabajo (Workflows)

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 46/278

Historia de UML

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 47/278

Historia de UML

• Comenzó como el “Método Unificado”, conla participación de Grady Booch y JimRumbaugh. Se presentó en el

OOPSLA’95

• El mismo año se unió Ivar Jacobson. Los“Tres Amigos” fueron socios en la

compañía Rational Software. HerramientaCASE Rational Rose

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 48/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 49/278

UML “aglutina” enfoques OO

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 50/278

UML aglutina enfoques OO

UML

RumbaughJacobson

Meyer 

Harel

Wirfs-BrockFusion

Embly

Gamma et. al.

Shlaer-Mellor 

Odell

Booch

Pre- and Post-conditions

State Charts

Responsabilities

Operation descriptions,message numbering

Singleton classes

Frameworks, patterns,notes

Object life cycles

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 51/278

Inconvenientes en UML

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 52/278

Inconvenientes en UML

• Definición del proceso de desarrollo usandoUML. – UML no es una metodología

• Falta integración con respecto de otras

técnicas tales como patrones de diseño,interfaces de usuario, documentación, etc.

• Ejemplos aislados

 – “Monopolio de conceptos, técnicas y métodos entorno a UML”

Perspectivas de UML

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 53/278

Perspectivas de UML

• UML es el lenguaje de modelado orientado aobjetos estándar predominante los próximosaños

• Razones:

 – Participación de metodólogos influyentes – Participación de importantes empresas – Aceptación del OMG como notación estándar 

• Evidencias: – Herramientas que proveen la notación UML – “Edición” de libros

 – Congresos, cursos, “camisetas”, etc.

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 54/278

UML y el modelado

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 55/278

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.

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 56/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 57/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 58/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 59/278

Elementos de Comportamiento

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 60/278

Elementos de Comportamiento

• Son las partes dinámicas de UML. – Máquina de estados

• Secuencia de estados por las que pasa un objeto

durante su vida en respuesta a eventos.

estadoactivado

Elementos de Agrupación

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 61/278

Elementos de Agrupación

• Son las partes de organización de los modelosUML

 – Un paquete incluye un conjunto de elementos decualquier naturaleza.

 – Tiene una naturaleza conceptual.

Modelo del Negocio Paquete

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 62/278

Relaciones

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 63/278

Relaciones

Dependencia

Asociaciónpatron empleado0..1 *

Generalización

Realización

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 64/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 65/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 66/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 67/278

Modelo del Negocio

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 68/278

Cambiar

admitidos

Registrar Curso

Hay alumnos?

no

Cerrar Curso

 Aprobar Curso

Preinscripción

Matriculación

Cancelar Curso

Hay alumnos?

no

 Avisar

 Admitidos

Crear Proyecto

SistemaAlumnoServicio PEResponsable

Diagramade

actividades

g

Modelo de Casos de Usos

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 69/278

Teleoperador Part ic ipante

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

Diagramade casosde uso

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 70/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 71/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 72/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 73/278

Mecanismos comunes de UML

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 74/278

• Dicotomía clasificador /instancia

Personanombre

direccion

telefonoElena :Persona

: Persona

Elena

Mecanismos comunes de UML

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 75/278

• Dicotomía interfaz / implementación

IOrtografia

asistente

Ortografico.dll

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 76/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 77/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 78/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 79/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 80/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 81/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 82/278

Organización en Paquetes

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 83/278

Organización en Paquetes

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 84/278

 java

lang

awt

 Applet

HolaMundo

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 85/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 86/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 87/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 88/278

ESCENARIO

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 89/278

Emisor Centralita Receptor  

listo( )

tono

marcar_numero

tono_sonandotimbre_sonando

telefono_cogido

para_tono

para_timbre

• Casos de uso son ideados por Jacobson a principios de losnoventa

• Se inspira en los escenarios utilizados para describirprocesos

Otras definiciones de caso de uso

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 90/278

“Describe un conjunto de interacciones entre actores externos yel sistema en consideración orientadas a satisfacer unobjetivo de un actor”.

[D. Bredemeyer]

“Es una colección de posibles secuencias de interacciones entre

el sistema en discusión y sus actores externos, relacionadocon 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 paraconseguir un objetivo”

[C. Larman]

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 91/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 92/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 93/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 94/278

Propiedades de los casos de uso

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 95/278

• Son iniciados por un actor con un objetivo enmente y es completado con éxito cuando elsistema 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, estoes el comportamiento requerido.

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 96/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 97/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 98/278

Descripción de un caso de uso

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 99/278

Comprar artículos (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.

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 100/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 101/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 102/278

Ejemplo diagrama de casos deuso

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 103/278

uso

Realizar preinscripciónGestión Expedientes Alumno

Matriculación Entidad Bancaria

 ActoresSecundario

 Actor Principal

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 104/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 105/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 106/278

Casos de uso y Colaboraciones

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 107/278

“El objetivo de la arquitectura del sistema

es encontrar el conjunto mínimo de

colaboraciones bien estructuradas, quesatisfacen el comportamiento especificadoen todos los casos de uso del sistema”

Organización de Casos de uso

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 108/278

• 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 susecuencia.

 – Extensión• Un cdu base incorpora implícitamente el

comportamiento de otro cdu en el lugar especificadoindirectamente por este otro cdu

Ejemplo

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 109/278

Generalización

Comprobar clave

Examinar retina

Validar Usuario

Hacer Pedido

Seguir Pedido

(establecer prioridad)

Hacer PedidoUrgente

«extend»

Relación de extensión

«include»

«include»

Relación deinclusión

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 110/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 111/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 112/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 113/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 114/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 115/278

Plantilla usecases.org (Larman)

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 116/278

•  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

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 117/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 118/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 119/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 120/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 121/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 122/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 123/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 124/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 125/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 126/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 127/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 128/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 129/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 130/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 131/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 132/278

Del Modelo Conceptual a lasclases

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 133/278

• Los modelos de análisis se obtienen apartir del modelo conceptual: – Conceptos a clases

 – Atributos de un concepto a atributos de laclase

 – Añadir comportamiento (métodos)

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 134/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 135/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 136/278

Colaboración (parte estática)

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 137/278

Colaboración (parte dinámica)

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 138/278

 : 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)

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 139/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 140/278

Ingeniería directa e Inversa

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 141/278

• 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ónal pasar de los modelos al código.

Atributos

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 142/278

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}

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 143/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 144/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 145/278

Clases Parametrizadas

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 146/278

«bind» <Empleado>

G

Tabla

countcapacity

put(G)item() : G

EmpleadosTabla<Cliente>

Clase 

Parametrizada 

Instanciación 

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 147/278

Clases Estereotipadas

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 148/278

MetaclaseCuenta

<<metaclass>>

FueraRango

<<exception>>

Clases y valores etiquetados

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 149/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 150/278

Relaciones

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 151/278

• Generalización – “Es-un-tipo-de”

Window

TextWindow BoxDialog

Cuenta

CuentaAhorro CuentaCorriente

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 152/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 153/278

Asociaciones

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 154/278

•  Agregación – Caso especial de asociación

 – Relación estructural parte-deEmpresa

1..1

*

Departamento

1..1

*

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 155/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 156/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 157/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 158/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 159/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 160/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 161/278

Composición

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 162/278

• 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 unagregado.

 – El agregado gestiona la creación y destrucciónde las partes.

 – Las partes se pueden eliminar antes de eliminarel agregado.

Composición

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 163/278

Marco

Ventana

1..1

*

1..1

*

agregado /todo

parte

composición

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 164/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 165/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 166/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 167/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 168/278

Asociaciones derivadas

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 169/278

 Asignatura

Profesor 

imparte

Estudianterecibe

 /enseña

 AsociaciónDerivada

Restricciones para Asociaciones

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 170/278

Empresa

Cuenta

Persona

{or}

Departamento

Persona

*

1..11..*

* *

+Director 

1..1+miembro 1..*

*

{subconjunto}

Restricciones para Asociaciones

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 171/278

PersonaCompañia* 0..1

empleado

*0..1

{Persona.patrón=

Persona.jefe.patrón }

patrón

 jefe

operario

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 172/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 173/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 174/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 175/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 176/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 177/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 178/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 179/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 180/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 181/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 182/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 183/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 184/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 185/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 186/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 187/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 188/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 189/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 190/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 191/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 192/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 193/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 194/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 195/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 196/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 197/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 198/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 199/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 200/278

Diagramas de Colaboración

1: preparar() 2: preparar()

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 201/278

 :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>>

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 202/278

Diagrama de Colaboración

1: <<create>>

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 203/278

c:Cliente :Transaccion

p:ProxyODBC

1: <<create>>

2: establecerAcciones

3: establecerValores

5: exito

4: establecerValores

6: <<destroy>>

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 204/278

Diagrama de Colaboración

3 l l R t

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 205/278

a:Ayuda

Planificacion

c:Cliente :Agente

Billetes

3: calcularRuta

1: <<create>>2: establecerItinerario(i)

5: <<destroy>>

4: ruta

6: notificar 

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 206/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 207/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 208/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 209/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 210/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 211/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 212/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 213/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 214/278

Uso de los diagramas deinteracción

• Modelado del aspecto dinámico

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 215/278

Modelado del aspecto dinámico.• Modelado del flujo de control que

caracteriza el comportamiento de unsistema:

 – casos de uso – colaboraciones – patrones

 – frameworks – operaciones

Caso de Uso (Escenario)

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 216/278

: Cliente:ReceptorPedidos :AgenteTarjeta

Credito:GestionPedido :AgenteFacturacion

enviarPedido

procesarTarjeta

tramitarPedido

confirmarPedido

emitirFactura

Caso de uso (Colaboración)

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 217/278

: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 de negocio

viajero: Empleado

encargado: Empleado

contable : Empleado

pagador : Empleado

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 218/278

viajero: Empleado encargado: Empleado contable : Empleado pagador : Empleado

solicitudPermisoViaje()

PermisoViaje()

informeGastos(unInforme)

OKgastos(unInforme)

solicitudPago(viajero)

Caso de uso de negocio

: JefeTecnico: Cliente : Comercial : JefeProduccion

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 219/278

darCursoPedido()estudiarPedido()

* analizarFabricacionProducto()

informarAnalisisPedido()

planificarFabricacion()

acceptarPedido()

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 220/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 221/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 222/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 223/278

Bifurcación

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 224/278

[ hay materiales ]

PlanificarProceso

 Asignar Tareas

Volver aPlanificar 

[ no hay materiales ]

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 225/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 226/278

Cliente Ventas  Almacen

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 227/278

Solicitar Producto

Procesar PedidoExtraer Articulos

Enviar Pedido

Recibir Producto Facturar al cliente

Pagar Factura Cerrar Pedido

Calles

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 228/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 229/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 230/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 231/278

Eventos

• Un evento es un acontecimiento que ocupa

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 232/278

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

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 233/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 234/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 235/278

Estados

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 236/278

Rastreando

entry/ activarModo(enRastreo)exit / activarModo(noRastreo)nuevoObjetivo/rastreador.adquirir do / seguirObjetivo

autotest / defer 

acción entrada

acción salidatransición interna

evento diferido

acción entrada

actividad

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 237/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 238/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 239/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 240/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 241/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 242/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 243/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 244/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 245/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 246/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 247/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 248/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 249/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 250/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 251/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 252/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 253/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 254/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 255/278

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 256/278

Componentes (UML 2.0)

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 257/278

Interfaces

proporcionadas

Interfaces

requeridas

Componentes (UML 2.0)

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 258/278

Interfazproporcionada

Interfazrequerida

Componentes (UML 2.0)

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 259/278

Componentes (UML 2.0)

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 260/278

Nodos

• Un nodo es un elemento físico que existeti d j ió t

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 261/278

en tiempo de ejecución y representa unrecurso computacional que puede tenermemoria y capacidad de procesamiento.

• Los componentes se ejecutan en nodos• Los nodos representan el despliegue

físico de los componentes.

Diagramas de Despliegue

• Muestra la configuración de los nodos que

ti i l j ió d l

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 262/278

participan en la ejecución y de loscomponentes que residen en los nodos.

• Incluye nodos y arcos que representanconexiones físicas entre nodos.

• Modelado de sistemas empotrados, sistemascliente-servidor, sistemas distribuidos.

Diagrama de Despliegue

i l

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 263/278

servidor UnidadRAID

Consola

<<RS-232>>

terminal

<<10-T-Ethernet>>

Modem

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 264/278

servidor cache<<procesador>

servidor cache<<procesador>>

servidorprincipal

<<procesador>servidor 

<<procesador>servidor 

<<procesador>>servidor 

<<procesador>>

<<red>> red local

internet

Deployment Diagram

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 265/278

Contenidos

• Modelado del Comportamiento

– Diagramas de interacción

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 266/278

 – 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

Colaboraciones

• Sociedad de clases, interfaces y otros

elementos q e colaboran para

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 267/278

elementos que colaboran paraproporcionar un comportamientocooperativo mayor que la suma de loscomportamientos de los elementos.

• Parte estructural (diagrama de clases) yparte de comportamiento (diagrama desecuencia).

Colaboraciones

• El núcleo de la arquitectura de un sistema

está formado por un conjunto de

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 268/278

está formado por un conjunto decolaboraciones que representan lasdecisiones de diseño más importantes.

• Un sistema orientado a objetos bienestructurado se compone de un conjuntorelativamente pequeño de colaboraciones.

• Modelado de un caso de uso, operación omecanismo (patrón o framework)

Casos de uso y Colaboraciones

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 269/278

Hacer Pedido

Gestión Pedidos

caso de uso

colaboración

realización

Ejercicio

• Diseña una colaboración de un mecanismo Object

Trading que separa la representación de unainformación de su presentación y edición; las clases

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 270/278

Trading que separa la representación de unainformación de su presentación y edición; las clasesque representan a los objetos información no conocena las clases que representan editores y viceversa. Unmismo editor puede editar diferentes tipos deinformación y una misma información puede sereditada por diferentes editores.

• El propósito del mecanismo es seleccionar un editorque colaborará adecuadamente con el objetoinformación, creará un objeto editor y lo ligará con elobjeto información.

• Un objeto cliente solicitará a un objeto Trader editarcierta información.

Mecanismo trading (Parte estática)

F t i EditT dCli t D G t

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 271/278

FactoriaEditor 

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 

Mecanismo trading(Comportamiento)

: ClienteDeGestor : Trader : FactoriaEditor info :

ObjetoInformacion

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 272/278

: Editor 

editar(info)* i:= getInterfaz()

p:= soportaInterfaz(i)

[p] crearEditor(info)<<create>>

¿Clases Cliente, Editor y ObjetoInformacion?

Mecanismo trading(Comportamiento)

2: * i:= getInterfaz()

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 273/278

 :

Cliente... : Trader   : FactoriaEdi tor 

info :

ObjetoInformacion  : Editor 

1: edi tar(info)

g ()

4: [p] crearEditor(info)

3: p:= soportaInterfaz(i)5: <<create>>

¿Clases Cliente, Editor y ObjetoInformacion?

Colaboraciones Parametrizadas

Modelado de patrones de diseño

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 274/278

Observer 

SubjectObserver 

 Alarma Ventana

Subject Observer 

Patrón de diseño (Parte Estática)

Observer 

Subject

subjectState +observers

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 275/278

Update() 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}

Patrón de diseño (Parte dinámica)

 : Subject one : Observer  

SetState( )

another : Observer 

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 276/278

Update( )

SetState( )

Notify( )

GetState( )

Update( )

GetState( )

Contenidos

• Modelado del Comportamiento– Diagramas de interacción

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 277/278

 – Diagramas de interacción

 – Diagramas de actividades

 – Máquinas de estado

• Modelado de la Implementación – Diagramas de componentes

 – Diagramas de despliegue

• Colaboraciones

F I N

7/26/2019 Curso UML 2010.pdf

http://slidepdf.com/reader/full/curso-uml-2010pdf 278/278