Diagramas Uml
Diagramas Uml
¿QUÉ ES UML?
Rumbaugh
Booch Jacobson
Odell
Meyer
Pre- and Post-conditions
Shlaer-Mellor UML
Object life cycles
Harel
State Charts
Gamma et. al.
Frameworks, patterns,
notes
Embly Wirfs-Brock
Singleton classes Responsabilities
Fusion
Operation descriptions,
message numbering
UML, es un lenguaje visual para
especificar, construir y documentar
sistemas.
Unified: Aporte de muchos métodos y
notaciones. Independiente de implementación,
plataforma y lenguajes.
Modeling: Los modelos son utilizados en todas
las ingenierías.
Language: Si hay gente, requieren comunicarse.
Si se tienen que comunicar, se tienen que
entender. Para entenderse necesitan un lenguaje
común.
UML, es un lenguaje de modelado, y
no un método. La mayor parte de los
métodos consisten, al menos al
principio, en un lenguaje y en un
proceso para modelar.
El lenguaje de modelado es la
notación (principalmente gráfica) de
que se valen los métodos para
expresar los diseños. El proceso es
la orientación que nos dan sobre los
pasos a seguir para hacer el diseño.
2010 -May UML 2.3
2009 -Feb UML 2.2
2007 -Nov UML 2.1.2
2007 -Ago UML 2.1.1
2005 -Jul UML 2.0
2003 UML 1.5
2000 UML 1.4
Existen 4 tipos:
1. Elementos estructurales;
2. Elementos de
comportamiento;
3. Elementos de agrupación;
4. Elementos de anotación.
IOrtografía
colaboración: define una
interacción y es una sociedad de
roles y otros elementos que
colaboran para proporcionar un
comportamiento cooperativo mayor
que la suma de los
comportamientos de sus elementos;
Cadena de
responsabilidad
Caso de uso: es una descripción de
un conjunto de secuencias de
acciones que un sistema ejucuta y
que produce un resultado
observable. Se utiliza para
estructurar los aspectos de
comportamiento en un modelo. Un
caso de uso es realizado por una
colaboración;
Realizar pedido
Clase activa: es una clase cuyos
objetos tienen uno o más procesos
o hilos de ejecución. Es igual que
una clase, excepto en que sus
objetos representan elementos cuyo
comportamiento es concurrente
con otros elementos;
GestorEventos
Suspender()
VaciarCola()
componente: es una parte física y
reemplazable de un sistema que
conforma con un conjunto de
interfaces y proporciona la
implementación de dicho conjunto.
Representa típicamente el
empaquetamiento físico de
diferentes elementos lógicos;
Orderform.java
nodo: elemento físico que existe en
tiempo de ejecución y representa
un recurso computacional, que por
general dispone de memoria y
capacidad de procesamiento.
Servidor
1.2 Elementos de comportamiento
dibujar
esperando
1.3 Elementos de agrupación
Existen 4 tipos:
1. Dependencia; >
2. Asociación;
3. Generalización;
4. Realización.
Es la representación gráfica de un
conjunto de elementos.
Diagrama de Casos de Uso
Diagrama de Clases
Diagrama de Objetos
Diagramas de Comportamiento
Diagrama de Estados
Diagrama de Actividad
Diagramas de Interacción
Diagrama de Secuencia
Diagrama de Colaboración
Diagramas de implementación
Diagrama de Componentes
Diagrama de Despliegue
State
State
Use Case Diagramas de
Diagrams
Use Case Diagrams State
Use Case Diagramas de
Diagrams Clases State
Use Case Diagrams Diagramas de
Diagrams
Diagramas de
Diagrams Casos de Uso Diagrams
Diagrams Objetos
Secuencia
Scenario State
Scenario State
Diagramas de
Diagrams Diagramas de
Diagrams
Diagrams Diagrams
Colaboración Modelos Componentes
Scenario Component
Scenario Component
Diagramas de
Diagrams
Diagramas de
Diagrams Diagrams
Diagrams despliegue
Estados Diagramas de
Actividad
UML 2.0
Diferente
granularidad y nivel
de detalle; control
Estereotipos
específicos para el
análisis,
entidad
Estructural :
pkg Diagrama de Paquete
cmp Diagrama Componentes
Dinámica o Comportamiento
uc Diagrama de Casos de Uso
act Diagrama de Actividad
stm Diagrama de Máquina de
Estados
sd Diagrama de Secuencia
El Diagrama de Casos de Uso permiten,
entre otras cosas, refinar el MCU a través
de las asociaciones de: <<incluye>>).
Permite incorporar el flujo de eventos de
un caso de uso pequeño dentro de un caso
de uso base de la aplicación.
<<extend>>). Permite incorporar el flujo
de eventos de un caso de uso pequeño
bajo la ocurrencia de una determinada
condición, cuando la misma evalúa
verdadero.
El Diagrama de Clases, no ha sufrido
cambios radicales en OMG UML 2.0.
El Diagrama de Secuencia, se le ha
incorporado:
opt : Indica que el fragmento de diagrama es opcional;
alt : Indica que el fragmento de diagrama es una alternativa;
loop: Indica que el fragmento de diagrama se ejecuta
repetidas veces;
par: Indica que el fragmento de diagrama incluye hilos de
ejecución paralelo;
critical: Indica una secuencia que no puede ser interrumpida
por otro proceso;
sd: Representa un diagrama de secuencia.
El Diagrama de Clases de diseño.
El Diagrama de Componentes, uno de los
elementos incorporados consiste en la
definición de puertos a través de los cuales
cada componente software entrega un
conjunto de servicios a través de interfaces
proveídas .
El Despliegue de la Solución sobre la
Infraestructura TI, A través del diagrama de
despliegue se combina la Arquitectura de TI
con la Arquitectura de Aplicación o
Software.
Diagramas de Estructura:
Diagrama de clases
Diagrama de componentes
Diagrama de objetos
Diagrama de estructura compuesta (UML 2.0)
Diagrama de despliegue
Diagrama de paquetes
Diagramas de Comportamiento:
Diagrama de actividades
Diagrama de casos de uso
Diagrama de estados
Diagramas de Interacción:
Diagrama de secuencia
Diagrama de colaboración
Diagrama de tiempos (UML 2.0)
Diagrama de vista de interacción (UML 2.0)
UML 2.3
Nombre_atributo[multiplicidad]:Tipo =
Valor_inicial
Diagrama
de Clase Diagrama
Diagrama de Secuencia
de Actividades
Diagrama
Diagrama
de Estados
de Colaboración
Modelando Clases
Nombre
Operaciones Operación(parámetros:
Tipo de dato):valor de
retorno
Modelando un atributo
Elemento Ejemplo
Nombre totalOrderAmount
Definir argumentos/ totalOrderAmount (order:
Parámetros, corresponden integer)
a una instancia de Order
Definir el tipo de dato de totalOrderAmount (order:
retorno integer) : Dollar
Identificar y describir totalOrderAmount (order:
restricciones integer) : {El total es la suma
de cada item (p.u. x cantidad)
Visibilidad + totalOrderAmount (order:
integer) : {El total es la suma ….
Diagrama de Clases: Asociaciones
Asociación
Agregación
Composción
AGREGACIÓN BASICA
Perro
Desventajas:
· No representan aspectos irremplazables del sistema
Conclusión
Podemos concluir que los diagramas de componentes son una herramienta muy útil
para conocer la manera que se desarrolla el sistema pero incluyendo sus componentes
físicos y estos a la vez relacionados con las clases que nos muestran proporcionan una
perspectiva estática del sistema.
DIAGRAMA DE
objetos
DIAGRAMA DE OBJETOS
Los diagramas de objetos son
utilizados durante el proceso de
Análisis y Diseño de los sistemas
informáticos en la metodología
UML.
Se puede considerar un caso especial de un diagrama de clases en el
que se muestran instancias específicas de clases (objetos) en un
momento particular del sistema. Los diagramas de objetos utilizan un
subconjunto de los elementos de un diagrama de clase. Los diagramas
de objetos no muestran la multiplicidad ni los roles, aunque su
notación es similar a los diagramas de clase. Estos no muestran nada
diferente en su
arquitectura a los diagramas de secuencia, pero reflejan multiplicidad
y roles.
ESTADOS DE ACCION
TRANSICIONES SIMPLES
ESTADOS DE ACCION COMPUESTAS
ESTADOS DE ACCION INICIALES Y FINALES
DESISIONES
ANDARIVELES
ESTADOS DE ACCION
Solicitar
pasaje
Verificar
existencia vuelo
Dar detalles
vuelo
Informar alternativas y
precios
Seleccionar
vuelo
Solicitar Reservar
pago plazas
Confirmar plaza
Pagar reservada
pasaje
Emitir
billete
TRANSICIONES CONCURRENTES
PUEDE TENER
MUCHAS
ACCIONES
ORIGEN Y
MUCHAS
ACCIONES
DESTINO
Pasos que se siguen en la construcción del diagrama de actividades
Ejemplo: Proceso de creación de un Documento
Posible secuencia para este proceso:
1. Abrir la aplicación para procesamiento de textos.
2. Crear un archivo.
3. Guardar un archivo con un nombre único en una carpeta.
4. Teclear el documento.
5. Si se necesitan ilustraciones, se abre la aplicación relacionada, se
generan los gráficos y se colocan en el documento.
6. Si se necesita una hoja de cálculo, se abre aplicación relacionada,
se crea la hoja correspondiente y se pone en el documento.
7. Se guarda el archivo.
8. Se imprime el documento.
9. Se sale de la aplicación de oficina.
DIAGRAMA DE ACTIVIDADES
EJEMPLO 1
EJEMPLO 2
EJEMPLO 3
BIFURCACION
EJEMPLO
DIAGRAMA DE caso
de uso
CONCEPTO:
EXTENSION (EXTEND)
GENERALIZACION
INCLUSION (INCLUDE O USE)
El diagrama de la derecha
describe la funcionalidad
de un Sistema
Restaurante muy simple.
Los casos de uso están
representados por elipses
y los actores están, por
ejemplo, los casos de uso
se muestran como parte
del sistema que está
siendo modelado, los
actores no.
DIAGRAMA DE estado
¿QUE ES EL DIAGRAMA DE
ESTADO ?
es un diagrama utilizado para
identificar cada una de las rutas o
caminos que puede tomar un flujo
de información luego de
ejecutarse cada proceso.
MAQUINA DE ESTADO
Una MÁQUINA DE ESTADO es un comportamiento que especifica las
secuencias de estados por las que pasa un objeto a lo largo de su vida en
respuesta a eventos, junto con sus respuestas a estos eventos.
Estado
Identifica un periodo de tiempo del objeto (no instantáneo) en el cual el
objeto está esperando alguna operación, tiene cierto estado
característico o puede recibir cierto tipo de estímulos. Se representa
mediante un rectángulo con los bordes redondeados, que puede tener tres
compartimientos: uno para el nombre, otro para el valor característico de
los atributos del objeto en ese estado y otro para las acciones que se
realizan al entrar, salir o estar en un estado (entry, exit o do,
respectivamente).
Eventos
Es una ocurrencia que puede causar la transición de un estado a otro de
un objeto. Esta ocurrencia puede ser una de varias cosas:
· Condición que toma el valor de verdadero o falso
· Recepción de una señal de otro objeto en el modelo
· Recepción de un mensaje
· Paso de cierto período de tiempo, después de entrar al estado o de
cierta hora y fecha particular
El nombre de un evento tiene alcance dentro del paquete en el cual está
definido, no es local a la clase que lo nombre.
Envío de mensajes
Además de mostrar y transición de estados por medio de eventos,
puede representarse el momento en el cual se envían mensajes a
otros objetos. Esto se realiza mediante una línea punteada dirigida
al diagrama de estados del objeto receptor del mensaje.
Transición simple
Una transición simple es una relación entre dos estados que indica
que un objeto en el primer estado puede entrar al segundo estado
y ejecutar ciertas operaciones, cuando un evento ocurre y si
ciertas condiciones son satisfechas. Se representa como una línea
sólida entre dos estados, que puede venir acompañada de un texto
con el siguiente formato:
event-signature es la descripción del evento que da lugar la
transición, guard-condition son las condiciones adicionales al
evento necesarias para que la transición ocurra, action-
expression es un mensaje al objeto o a otro objeto que se ejecuta
como resultado de la transición y el cambio de estado y send-
clause son acciones adicionales que se ejecutan con el cambio de
estado, por ejemplo, el envío de eventos a otros paquetes o
clases.
Transición interna
Es una transición que permanece en el mismo estado, en vez de
involucrar dos estados distintos. Representa un evento que no
causa cambio de estado. Se denota como una cadena adicional en
el compartimiento de acciones del estado.
Acciones:
Podemos especificar la solicitud de un servicio a otro objeto como
consecuencia de la transición. Se puede especificar el ejecutar
una acción como consecuencia de entrar, salir, estar en un estado,
o por la ocurrencia de un evento.
Generalización de Estados:
· Podemos reducir la complejidad de estos diagramas usando la
generalización de estados.
· Distinguimos así entre superestado y subestados.
· Un estado puede contener varios subestados disjuntos.
· Los subestados heredan las variables de estado y las transiciones
externas.
· La agregación de estados es la composición de un estado a partir
de varios estados independientes.
La composición es concurrente por lo que el objeto estará en
alguno de los estados de cada uno de los subestados concurrentes.
La destrucción de un objeto es efectiva cuando el flujo de control
del autómata alcanza un estado final no anidado. La llegada a un
estado final anidado implica la subida al superestado asociado, no
el fin del objeto.
Subestados
Un estado puede descomponerse en subestados, con
transiciones entre ellos y conexiones al nivel superior.
Las conexiones se ven al nivel inferior como estados de
inicio o fin, los cuales se suponen conectados a las
entradas y salidas del nivel inmediatamente superior.
Transacción Compleja
Una transición compleja relaciona tres o más estados
en una transición de múltiples fuentes y/o múltiples
destinos. Representa la subdivisión en threads del
control del objeto o una sincronización. Se representa
como una línea vertical de la cual salen o entran varias
líneas de transición de estado.
Transición a estados anidados
Una transición de hacia un estado complejo (descrito
mediante estados anidados) significa la entrada al
estado inicial del subdiagrama. Las transiciones que
salen del estado complejo se entienden como
transiciones desde cada uno de los subestados hacia
afuera (a cualquier nivel de profundidad).
Transiciones temporizadas
· Las esperas son actividades que tienen asociada
cierta duración.
· La actividad de espera se interrumpe cuando el
evento esperado tiene lugar.
· Este evento desencadena una transición que permite
salir del estado que alberga la actividad de espera. El
flujo de control se transmite entonces a otro estado.
DIAGRAMA DE
secuencia
CONCEPTO
Contiene detalles de implementación del escenario, incluyendo los objetos y clases que
se usan para implementar el escenario, y mensajes intercambiados entre los objetos.
Los mensajes se dibujan cronológicamente desde la parte superior del diagrama a la parte
inferior; la distribución horizontal de los objetos es arbitraria. Durante el análisis inicial,
el modelador típicamente coloca el nombre “business” de un mensaje en la línea del
mensaje.
Más tarde, durante el diseño, el nombre “business” es reemplazado con el
nombre del método que está siendo llamado por un objeto en el otro. El
método llamado, o invocado, pertenece a la definición de la clase instanciada
por el objeto en la recepción final del mensaje.
DIAGRAMA DE
emplazamiento
Es aquel que muestra las relaciones físicas entre los componentes de
software y de hardware en el sistema entregado. Así, el diagrama de
emplazamiento es un buen sitio para mostrar cómo se enrutan (se refiere a
la selección del camino en una red de computadoras por donde se envían
datos) y se mueven los componentes y los objetos, dentro de un sistema
distribuido.
Cada nodo de un diagrama de emplazamiento representa
alguna clase de unidad de cómputo; en la mayoría de los casos
se trata de una pieza de hardware. El hardware puede ser un
dispositivo o un sensor simple, o puede tratarse de un
mainframe (Computadora grande, poderosa y costosa utilizada
principalmente en empresas que necesitan procesar gran
cantidad de datos o soportar gran cantidad de usuarios.).
Muestra cómo las instancias específicas de las clases trabajan juntas para
conseguir un objetivo común.
Consiste especificar un contrato entre objetos
Implementa las asociaciones del diagrama de clases mediante el paso de
mensajes de un objeto a otro. Dicha implementación es llamada "enlace".
¿Que representa el algoritmo
de colabora ración?
Representa la parte
esencial para la
descripción de un patrón
de diseño.
DIAGRAMA DE COLABORACION
Un Diagrama de Colaboración muestra una
interacción organizada basándose en los objetos
que toman parte en la interacción y los enlaces entre
los mismos (en cuanto a la interacción se refiere).
UML –Interacciones
Los objetos interactúan entre sí pasándose
mensajes.
Los objetos se conectan a través de enlaces.
Mensaje: especifica transmisión de información
entre objetos.
Enlace: especifica un camino a lo largo del cual un
objeto puede enviar un mensaje a otro objeto.
Es una conexión semántica entre objetos.
Es una instancia de una relación.
Puede contener los adornos de la relación.
Las Interacciones modelan aspectos dinámicos
del sistema
Llamada.-Invoca una operación sobre un objeto. Puede
ser a sí mismo.
Secuenciación
El flujo de mensajes forma una secuencia.
La secuencia es indicada por un número antes del mensaje y
una flecha dirigida.
Para modelar caminos alternativos, se coloca el mismo
número de secuencia seguido de un número de
subsecuencia.
Secuenciación
devuelve información
el libro es entregado
entrega el libro
Diagrama de colaboración
5:El libro es entregado()
ASISTENTE
4:Solicita que le alcance el libro ()
BIBLIOTECARIO
2:Busca el libro ()
3:devuelve información ()
6:Entrega libro ()
INDICE
1:Solicita libro ()
dándole el titulo ()
LECTOR
DEPENDENCIAS
Estos son:
•NODOS
•INSTANCIAS DE COMPONENTES DE
SOFTWARE
•INSTANCIA DE NODO
•ESTEREOTIPO DE NODO
•ARTEFACTOS
•ASOCIACIÓN
•NODO COMO CONTENEDOR
NODO: es un objeto físico en tiempo de
ejecución que representa un recurso
computacional, generalmente con memoria
y capacidad de procesamiento.
INSTANCIAS DE COMPONENTES DE
SOFTWARE: muestran unidades de software
en tiempo de ejecución y generalmente
ayudan a identificar sus dependencias y su
localización en nodos.
DICTIONARY
INSTANCIA DE NODO:. Una instancia se
puede distinguir desde un nodo por el
hecho de que su nombre esta
subrayado y tiene dos puntos antes del
tipo de nodo base.
ESTEREOTIPO DE NODO:
Un número de estereotipos estándar se
proveen para los nodos, nombrados
«cdrom», «computer», «pc», «pc
client», «pc server», «user pc».
ARTEFACTO: Un artefacto es un
producto del proceso de desarrollo de
software, que puede incluir los
modelos del proceso.
ASOCIACIÓN:
En el contexto del diagrama de
despliegue, una asociación
representa una ruta de comunicación
entre los nodos.
NODO COMO CONTENEDOR:
Un nodo puede contener otros elementos,
como componentes o artefactos.
Notacion
El Diagrama de Despliegue es muy similar al de componentes por lo
que también comparte la forma de notación que se ve a
continuación:
El diagrama de despliegue :