SlideShare una empresa de Scribd logo
1 de 285
Programa de
Formación:
José Asdrúbal Asencio
v2.0
Conformidad del Curso
1. El contenido del presente curso es conforme a la
especificación de OMG para la superestructura del Lenguaje
de Modelado Unificado versión 2.0 y la especificación de
OMG para la infraestructura del Lenguaje de Modelado
Unificado versión 2.0.
2. Las Imágenes no pertenecen a la especificación de UML,
aunque se utilizan con fines de ejemplificar y aclarar
términos, ideas, etc.
3. Definiciones y/o aclaratorias complementarias a lo
definido en la especificación, se identificaran expresamente
la fuente de donde en la lamina respectiva.
Objetivos del día 1
Generar transferencia de conocimiento a los integrantes del curso, en cuanto
a los siguientes elementos:
1. Necesidad de Modelar.
2. Conceptualización formal de UML, antecedentes, Casos de Usos y
Clases.
3. Identificar, modelar diagramas de Casos de Usos y su especificación.
4. Diseñar diagrama de clases.
Agenda (Día 1)
1. La necesidad Modelar. Ejercicio – Duraci ón: 8:00 AM – 8:30 AM
2. Antecedentes de UML – Duración: 8:30 AM – 9:00 AM
3. Conceptualización y Conformidad de UML – Duración 9:00 AM – 9:15 AM
4. Casos de Usos, Tema y Actores – Duración 9:15 AM – 9:30 AM
Receso
5. Identificando Casos de Usos – Ejercicio – Duración 10:00 AM – 10:20 AM
6. Especificando Casos de Usos - Duración: 9:30 – 11:00 AM
7. Documentando un Casos de Usos Extend- Duración: 11:00 AM – 11:20 AM
8. Documentando un Casos de Usos Include- Duración: 11:20 AM - 11:45 AM
9. Escenarios y Pruebas de Casos de Usos - Duración: 11:45 AM – 12:00 PM
Almuerzo
10. Diagrama de Clases : Definiciones Preliminares – Duración 01:30 PM – 02:25 PM
11. Clasificador, Clase, Relación, Asociación, Operación, Característica Estructural, Propiedad Tipos
de Visibilidad – Duración 02:25 PM – 03:30 PM
Receso
7. Diagrama de Clases (Ontología) y Ejercicio - Duración: 03:30 PM – 3:50 PM
8. Paquetes de clases Duración: 3:50 PM –4:05 PM
9. Modelo Conceptual – Duración 4:05 PM – 4:50 PM
10. Metamodelo UML – Duración 4:50 PM – 5:00 PM
¿ Qué es un Modelo?
Un modulo captura una vista de un sistema del
mundo real. Es una abstracción de dicho sistema,
considerando un cierto propósito. Así, el modelo
describe completamente aquellos aspectos del
sistema que son relevantes a su propósito y
apropiado nivel de detalle.
¿Por qué modelar ?
Construcción de una casa para “koki”
Puede hacerlo una sola persona
Requiere:
Modelado mínimo
Proceso simple
Herramientas simples
Fuente: Software Architecture and UML”
Grady Booch
Construcción de una casa
Construida eficientemente y en un tiempo
razonable por un equipo
Requiere:
Modelado
Proceso bien definido
Herramientas más sofisticadas
Fuente: Software Architecture and UML”
Grady Booch
Modelar una Casa
Construcción de un rascacielos
Ejercicio 1
Actividad Individual:
Dibujar en una hoja en blanco cada uno de los
elementos que usted visualiza en está sala.
Tiempo: 10 minutos
¿ Qué es UML?
UML es un lenguaje estándar ISO/IEC 19501, el
cual esta hecho para especificar, visualizar,
construir, y documentar artefactos de sistemas
de software, así como el modelamiento del
negocio y otros sistemas fuera de estos ámbitos.
Actualmente se encuentra en la versión 2.0 de
OMG.
¿Qué no es UML?
• UML no es una metodología
• UML no es una técnica.
• UML no es una herramienta.
• UML no es Software Libre, ni Propietario.
• UML no es un método.
Objetivo de UML
Proporcionar a los Arquitectos, Ingenieros, y
Desarrolladores de Software con herramientas
para el análisis, diseño e implementación de
sistemas basados en software así como el
modelamiento de negocio y procesos
similares.
Conformidad de UML
1. UML es un lenguaje con un amplio alcance que
cubre diversos conjuntos de dominios de
aplicación.
2. No todas las capacidades de modelamiento son
necesariamente útiles para todos los dominios o
aplicaciones.
3. UML proporciona nivel de conformidad para
incrementar la probabilidad de interoperabilidad
entre distintas herramientas.
4. Los conceptos de modelamiento son agrupados en
unidades de lenguajes
UML Versión 2.0
OOPSLA
Conferencia
1995
OMG obtiene
Copyright UML
ISO acceptance 10/19/00
(ISO/DIN 19501-1)
Booch
Booch
OMT
Rumbauh
UML 0.8
Booch/ Rumbaugh
UML 0.9
‘’ Three Amigos’
1996 OCL
IBM
UML 1.1
OMG 1997
Unified Process
Jacobson and
others
(UML 1.2)
OMG 1998
XMI
UML 1.3
OMG 1999
UML 1.4
OMG 2001
UML 1.5
OMG 2003
UML 2.0
OMG2003/ adoptado
OCUP
Certification
OOSE
Jacobson
State Charts
Harel
UML 2.0
OMG 2005/Final
UML 2.1
OMG 2006
UML 2.1.1
OMG Ago- 2007
OMG
17/11/97
Permanecio
no oficial debido
a demanda
Antecedentes de UML
UML 2.0
OMG Nov- 2007
UML 2.2
OMG Nov- 2009
UML 2.0
OMG May- 2010
Nov ‘97 UML aprobado por el OMG
1998
1999
2000
UML 1.2
UML 1.3
UML 1.4
2001-2005
UML 2.0
Revisiones menores
2007
Ago - 2007 UML 2.1.1
UML 2.2
Nov - 2007
Feb - 2009
UML 2.0
May - 2010 UML 2.0Antecedentes de
UML
(Resumen)
La Importancia de Modelar - ¿Por que usar UML?
R. Desde una perspectiva Organizacional
• El análisis y diseño de sistemas se puede realizar
usando UML, representando enfoques estructurales y
dinámicos.
• Metodologías de desarrollo de software usan UML
como notación estándar (Ej. RUP).
• Disciplinas como la Arquitectura Empresarial usan
UML para representar distintos enfoques del negocio.
• Las Organizaciones requieren comunicar modelos
sin ambigüedad.
• Los modelos comunican visiones a
todos los involucrados de lo que se quiere
construir.
•El Diseño juega un rol importante en el
resultado del producto a construir.
• Algunas organizaciones buscan
eficiencia funcional sin diseño y en
muchos casos consiguen re-trabajo, uso
ineficaz de los recursos y aumento de los
costos asociados a los proyectos.
La Importancia de Modelar- ¿ Por que usar UML ?
(cont…)
R. Desde la perspectiva del Diseño:
• UML provee soporte de las marcas de la
Industria de mayor impacto en el desarrollo de
software, alineada con las practicas actuales
(SOA, BPMN, etc).
La Importancia de Modelar- ¿ Por que usa UML?
(cont…)
R. Desde la perspectiva de la Herramientas
disponibles:
¿ Quienes usan UML ?
•Arquitecto de Software
•Desarrollador
•Analista de Negocio
•Analista de Pruebas
•Técnico de Infraestructura
•Técnico en Configuración de Aplicaciones y
Servidores.
Conectando Modelar con UML…
UML ES UN LENGUAJE
Recordando un poco…
Un lenguaje es la capacidad del ser humano para comunicarse mediante un
sistema de signos o lengua para ello .
Taxonomía de los diagramas en UML
Diagramas
Diagramas de
Estructura
Diagramas de
Comportamiento
Diagrama de
Clase
Diagrama de
componentes
Diagrama de
Composición
de Estructuras
Diagrama de
Despliegue
Diagrama de
Paquete
Diagrama de
Objeto
1
2
Día en que se realizara la
Capacitación
Diagrama de
Maquinas de
Estados
Diagramas
de Actividad
Diagrama de
Casos de
Usos
Diagramas
de
Interacción
Diagrama
de
Secuencia
Diagrama de
Interacción de
Información
General
Diagrama de
Colaboración
Diagrama de
Tiempo
12
3
2
Diagrama
Es una representación gráfica de una colección de
elementos de modelado, a menudo dibujada como un
grafo con vértices conectados por arcos.
Elemento
Parte constituyente de un Modelo
Definiciones Preliminares
Casos de Usos
¿ Qué es un caso de uso ?
(definición formal)
ES UN MEDIO PARA ESPECIFICAR LOS
REQUERIMIENTOS DE USO DE UN SISTEMA.
SU REPRESENTACIÓN COMO EN UN ELEMENTO
DE MODELO ES A TRAVÉS DE LOS SIGUIENTES
ESTEREOTIPOS:
NOMBRE
Nombre
¿ Qué es un caso de uso ?
(Definición Informal)
Es una forma de identificar aquellas cosas
que se repiten o son frecuentes en
términos de comportamiento en un sistema,
al cual denominamos Caso y que es utilizado
(Uso) por uno o más Actores.
Fuente: José Asencio
¿ Qué no es un caso de uso ?
• Cualquier acción simple o atómica.
Ejemplo
- Imprimir
- Insertar Registro
• Cualquier acción compleja, pero su ocurrencia en el
sistema es excepcional o no es relevante para los
actores del sistema (La cantidad de ocurrencias del
caso es mínima o bien no ha ocurrido).
Ejemplo
- Un sismo o temblor.
- Especificar el caso de uso Cepillarse los Dientes
¿ Donde es usado ?
Típicamente son usados para capturar los
requerimientos de un Sistema. Esto es, que es
lo que se supone el sistema deba hacer.
¿Donde es usado? (2)
De acuerdo a una encuesta realizada por De 171
Analistas / Programadores quienes usan UML en
proyectos de desarrollo de software, indican que
el 44% utilizan la narración (especificación) de
casos de usos.
Fuente: COMMUNICATIONS OF THE ACM May 2006/Vol. 49, No. 5.
Tema (Subject)
Tema
Es el sistema a consideración, bajo el
cual el caso de uso aplica.
El Comportamiento requerido por el
tema es especificado por uno o más
casos de uso, el cual esta definido a
partir de las necesidades de los
actores.
Nota: En Principio, un caso de uso
puede aplicar a Múltiples temas.
Actor
Un actor especifica un rol jugado
por un usuario o cualquier otro
sistema que interactúe con el tema.
Un actor no necesariamente
representa una entidad especifica.
Ejemplo: La temperatura puede ser
un actor en un sistema.
Los Actores son externos al tema
Restricciones de un Actor
1. Solo se puede asociar a:
• Casos de Usos
• Clases
• Componentes
Además estas asociaciones son Binarias,
es decir, ocurren o no ocurren.
2. Un Actor debe tener un Nombre. En versiones
anterior a la 2.0 esto no era restricción.
Semántica de un Actor
Cuando ocurre una asociación entre un actor y un caso de uso
con multiciplicidad mayor que uno, significa que un actor dado
puede estar involucrado en múltiples casos de uso de ese tipo.
Por Ejemplo:
• Caso de Uso: Chat.
Un Actor puede interactuar a través de la mensajería del chat
con múltiples (mayor que uno) usuarios (en paralelo o
concurrentemente).
Lineamientos de Estilo para un Actor
1. El nombre del actor es con la primera letra en
Mayúscula. Ej. Nombre del Actor: Cliente,
Cajero, Usuario, etc.
2. Si el Actor es un Abstracto entonces el nombre
deberían mostrarse en Itálica. Ej. Nombre del
Actor: Persona.
Ejemplos – Modelos de Casos de Usos
Registrar Solicitud
Organismo
Fiscal
Pagar ISLR
Supervisor
Contribuyente
Ejemplos – Modelos de Casos de Usos
Persona
Comprar producto
<<extend>>
Ver Detalle
Ejemplos – Modelos de Casos de Usos
Operador Cambiario
Recibir Solicitud de Viajes
<<include>>
Procesar solicitudes
Recibir Solicitud de
Operaciones Electrónicas
<<include>>
Ejemplo de Notación Rectángulo para modelos
de casos de usos
Notación Rectángulo: Utilizada cuando el modelo de caso
de caso de uso incorpora un lote considerable de casos de
uso de extensión y que los mismos generan o podrían crear
ruido en el diagrama.
Ejemplo:
OrderStationery : PlaceOrder
extension points
order created : in Created state
order processed : in Processed state
order cancelled : in Cancelled state
order rejected : in Rejected state
order completed : in Completed state
order destroyed : in Destroyed state
order delivered : in Delivered state
order obfuscated : in Obfuscated state
Ejemplo de Casos de Usos - Narrativa
Un Banco requiere implementar una
funcionalidad en el sistema de Banca en Línea
que se encargue de recibir las solicitudes de
compras de títulos valores de los clientes
persona natural con apertura de cuenta mayor
a 90 días.
Modelando Casos de Uso
Tema: Sistema de Banca en Línea
Actor: Clientes - Persona Natural
Caso de Usos Identificados: Iniciar Sesión, Solicitar compra de
titulo – valor.
Sistema de Banca en Línea
Iniciar Sesión
Solicitar
Compra
Titulo-Valor
Cliente
<<Persona
Natural>>
Receso
Narrativa del Sistema:
Un empresa posee una cadena de tiendas a
nivel nacional y desea actualizar su sistema de
ventas de productos, debido a que tiene
productos de software para la gestión de
ventas por cada tienda.
Ejemplo de Casos de Usos – Narrativa (2)
Modelando Casos de Uso
Tema: Sistema de Punto de Ventas.
Actor: Cajero, Cliente.
Caso de Usos Identificados: Comprar Producto,
Registrar Datos.
Sistema de Punto de Venta
Comprar
Productos
Registrar
Datos
Cajero Cliente
Ejercicio 2
Actividad Individual:
• Identifique si existe: Tema, actor y casos de uso en las siguientes narrativas
y genere el diagrama de casos de usos.
• Narrativa del Sistema 1:
Una empresa de ventas de productos al detal requiere la información de
los costos de envío para comunicárselos a sus clientes cada que vez que
realicen una compra.
• Narrativa del Sistema 2:
Un ejecutivo de ventas requiere una clasificación atípica de segmentación
de clientes (Volumen diario de ventas por municipio) y solicita a la
Gerencia de TI la información de ventas en el mes en curso basado en tal
clasificación.
Tiempo: 10 minutos
Especificando Casos de Usos
• Pre-Condiciones y Post-Condiciones
• Flujos Básicos
• Flujos Alternos
Específicando Casos de Usos Alto Nivel
Caso de Uso: Comprar Producto
Actores: Cliente, Cajero
Propósito Capturar una venta y su pago en efectivo
Descripción: Un cliente llega a la caja registradora con
los artículos que comprará. El cajero
registra los artículos y cobra el importe. Al
terminar la operación, el cliente se marcha
con los productos
Versión 0.1
Acción del actor Respuesta del Sistema
1. Este caso de uso comienza cuando un
cliente llega a una caja TPDV [terminal punto
de venta) con productos que desea comprar.
2. El Cajero registra el identificador de cada
producto.
Si hay varios productos de una misma
categoría, el cajero también puede introducir
la cantidad.
3. Determinar el precio del producto e incorpora
a la transición actual la información
correspondiente.
Se presenta la descripción y el precio del
producto actual.
4. Al terminar de introducir el producto, el
cajero indica a TPDV que se concluyo la
captura del producto.
5. Calcula y presenta el total de la venta.
6. El Cajero le indica el total al cliente.
7. El Cliente efectúa un pago en efectivo
Curso Normal de los Eventos o Flujo Básico
Versión 0.2
8. El Cajero registra la cantidad de
efectivo recibida.
9. Muestra al cliente la diferencia. Genera
un recibo.
10. El Cajero deposita el efectivo recibido
y extrae al cambio del pago.
El Cajero da al cliente el cambio y el
recibo impreso.
11. Registra la venta concluida.
12. El Cliente se marcha con los artículos
comprados.
Curso Alternos
Curso Normal de los Eventos o Flujo Básico (continuación)
• Línea 2 : Introducción de identificador inválido. Indicar error.
•Línea 7: El Cliente no tenia suficiente dinero. Cancelar la transacción de venta.
Versión 0.2
Versión preliminar del Documento de Casos de Uso
Ver Ejemplo Impreso en Documentación del Curso
Versión preliminar del Documento de Casos de Uso
Ejercicio 3 – Documentando un Caso de Uso
Actividad Individual:
1. Requerimiento: Especifique el caso de uso de comprar productos para una
tienda de comercio electrónico. Identifique los elementos descritos en la
plantilla proporcionada.
2. Genere el Diagrama de Casos de Usos y asígnele la versión 0.1
Nota: Cada participante puede especificar una
secuencia distinta.
Tiempo: 15 minutos
Casos de Uso Extend
Una relación que específica que el comportamiento
de un caso de uso puede ser extendido por el
comportamiento de otro caso de uso.
La extensión toma lugar en uno o mas puntos de
extensión específicos, definido el caso de uso
extendido.
Extendiendo Caso de Usos
Punto de extension
seleccion
<< extend>>
Ejecutar ATM
transacción
Ayuda en Linea
Condición: {Cliente selecciono Ayuda}
Punto de Extensión: selección
Los puntos de extensión referenciado por la relación
de extensión deben pertenecer al caso de uso que esta
siendo extendido.
Ejemplo:
Ejercicio 4 – Documentando un Caso de Uso
extend
Actividad Individual:
1. Requerimiento: Especifique el caso de uso para una tienda de comercio
electrónico que calcule los costos de envío del producto que esta comprando
el cliente. Identifique los elementos descritos en la plantilla proporcionada.
2. Actualice el Diagrama de Casos de Usos y asígnele la versión 0.2
Nota: Cada participante puede especificar una
secuencia distinta.
Tiempo: 15 minutos
Incluyendo Casos de Usos - ¿ Qué es el Include?
Retirar
<< include >> Identificar
Tarjeta
Es una relación que define que un caso de
uso contiene el comportamiento definido
en otro caso de uso.
Ejemplo:
Ejercicio 5 – Documentando un Caso de Uso
include
Actividad Individual:
1. Requerimiento: Especifique el caso de uso para una tienda de comercio
electrónico que permita realizar pagos con Tarjetas de Crédito. Identifique los
elementos descritos en la plantilla proporcionada.
2. Actualice el Diagrama de Casos de Usos y asígnele la versión 0.3
Nota 1: Cada participante puede especificar una secuencia distinta.
Nota 2: Revise el Diagrama; realice las actualizaciones y cambie la versión a
1.0
Tiempo: 15 minutos
Diseñando Casos de Usos
«subsystem»
ATM system
Withdraw
Transfer Funds
Deposit
Money
Register ATM
at Bank
Read Log
Customer
Administrator
Bank
11
1
1
1
1
0..1
0..1
0..1
0..1
 Ejemplo:
Nótese:
Tema: SubSistema ATM
Cardinalidad del caso de Uso
Actores: Están afuera del tema
1
0..1
0..*
0..*
Paquetes de Casos de Usos
package T ransactionUseCases
Card
Identification
Perform ATM
Transaction
«extends»
On-Line
Help
«includes»
package ATM Services
«includes»
Withdraw Transfer Funds
Deposit
Funds
package Administration
Read Log
Register ATM
at Bank
condition: {customer
selected HELP}
extension point: Selection
Un Paquete, es un mecanismo de propósito
general para agrupar elementos.
Ejercicio 4
La biblioteca ABC contiene libros y revistas. Puede haber varias copias de un libro dado. Algunos
libros se prestan sólo para un período de 3 días. El resto de libros se prestan para 3 semanas a
cualquier socio de la biblioteca. Se puede tener en préstamo hasta 6 libros a la vez. Sólo los
trabajadores de la biblioteca pueden tomar en préstamo revistas. Los trabajadores de la biblioteca
pueden tener hasta 12 libros/revistas en préstamo. El sistema debe almacenar cuándo se toman
en préstamo y devuelven todos los libros/revistas. Cuando se quiere tomar en préstamo una copia
de un libro y no está disponible es posible hacer una reserva del libro. Es posible extender la fecha
del préstamo del libro. Para ello hay que llevar dicho libro, mostrarlo en la biblioteca y, si no hay
reservas hechas para dicho libro, entonces se pone la nueva fecha de entrega (3 días/semanas
después). Se puede consultar el catálogo de la biblioteca (tanto libros como revistas) por distintos
campos de búsqueda. No hace falta ser socio de la biblioteca para ello. Sólo algunos de los
trabajadores de la biblioteca pueden actualizar el catálogo (cuando llegan libros/revistas nuevos o
se dan de baja).
Tiempo: 20 minutos
Cliente: Biblioteca ABC
Paleta de Simbolos
Escenarios de Casos de Usos
Es la selección de un camino o conjunto de pasos en
un caso de uso especificado que indique la secuencia
a realizar desde la iniciación del caso hasta su
completitud en su flujo básico o alternativo y que
permiten validar que se cumplen con los
requerimientos del cliente
Las Pruebas y los Casos de Usos
• Las pruebas son por casos de usos, y se definen
varias por iteración o por fase del proyecto:
– Pruebas de Caja Negra
• Pruebas de Interfaz
• Pruebas de validación de campos
• Pruebas de seguridad
• Pruebas de Carga
– Pruebas de Caja Blanca
• Pruebas funcionales
• Pruebas unitarias
• Pruebas de Integración
• Pruebas de Regresión
• Pruebas de Progresión
Buen Provecho
Diagrama de Clases
Definiciones Preliminares
• Espacio de Nombre
• Instancia
• Objeto
• Estereotipo
Espacio de Nombre
• En parte de un modelo y representa el
conjunto de nombres definidos, usados y con
definición única
11-Sep 5 de Julio
Ejemplo:
Instancia
• Es una entidad que tiene una única identidad, un
conjunto de operaciones que puede ser aplicada
sobre el y un estado que almacena los efectos de las
operaciones.
Mesa 1 Puerta
principal
Laptop serial
abc123
Clientes
Empresa: Farmatodo
Ubicación: las Mercedes
Objeto
• Definición 1: Es una instancia de una clase
• Definición 2: Es un elemento individual con un
estado, un conjunto de valores establecido por sus
atributos y un conjuntos de operaciones que
pueden ser invocadas.
Ejemplos:
• Es una clase que define como una metaclase puede ser
extendida. En un concepto utilzado para encapsular
comportamiento.
Ejemplo:
El estererotipo del <<cajero>> (hereda del clasificador Persona).
Entre las características de los Estereotipos tenemos:
- Un Estereotipo puede ser usado para agregar restricciones al
modelo
- Sirve como elemento de comunicación entre el análisis y el diseño
Estereotipo
Ejercicio 6
Actividad Individual:
• Identifique una lista de los elementos del espacio de
nombre de su organización.
Características:
– Están Definidos
– Son usados
– Su significado es único
Tiempo Estimado: 5 minutos
Ejercicio 6 (Cont…)
Actividad Individual:
Del listado Anterior, Identifique cuales elementos son
estereotipos. En caso de cumplirse, identifique a que
elemento general pertenece.
Tiempo Estimado: 5 minutos
Contenido (Diagrama de Clases)
1. Definición
2. Clasificador
3. Clase
4. Relación
5. Asociación
6. Operación
7. Característica Estructural
8. Propiedad
9. Tipos de Visibilidad
1. Definición: Diagrama de Clases
 El Diagrama de clases es un Diagrama de Estructura en el
que se muestra un conjunto de elementos de modelo de
forma declarativa (estática).
Ticket Servicio de
actorización de
Pago con TDC
Algoritmo de
Asignación de
Asientos
Ejemplo: Sistema de Reservación de Línea
Los Diagramas de Estructura no muestra detalle del comportamiento dinámico
2. Clasificador
• Es una colección de Instancias que tiene algo en común
Ejemplo:
Laptop serial
abc123
Laptop serial
abc124
Laptop serial
abc125
Laptop serial
abc126
2. Clasificador (cont…)
Un clasificador puede tener características que
caracterizan sus instancias.
Es un clasificador que describe un conjunto de objetos que
comparten la misma especificación, restricciones y semántica.
Notación:
Atributos
Nombre de
La Clase
Operaciones
3. Clase
Restricciones
A. Lineamientos de Estilo.
B. Enumeración.
3. Clase (cont..)
A. Clase: Lineamientos de Estilo
• Primera Letra del nombre de la clase en mayúscula
• Primera Letra en atributos y operaciones en
minúsculas
• Si la clase es abstracta colocar el nombre en Itálica.
• Muestre los atributos cuando sea necesario y
suprímalos en otros contextos para referirse solo a las
clases
Ejemplos:
Enumeración es una clase de tipo de dato, en la cual
sus instancias puede ser cualquier número de
literales definido por el usuario.
B. Clase: Enumeración
Lenguaje de Programación: java
generación
de código
Ejemplo:
4. Relación
Es un concepto abstracto que específica alguna clase de conexión entre
elementos. Una relación referencia uno o más elementos relacionados.
La relación no tiene semántica especifica, es decir las clases mas
específicas (subclases) darán la semántica apropiada para el concepto
que se represente.
Notación:
1. No tiene específica notación
2. Cada específica subclase de una relación definirá su propia notación.
En la mayoría de los casos la notación es una variación de una línea dibujada
entre los elementos relacionados.
4. Relación: Generalización
Es una relación binaria entre un clasificador (clase) mas general (superclase) y un
clasificador (clase) mas específico (subclase).
Cada instancia del clasificador específico es también una instancia indirecta del
clasificador general.
El clasificador específico hereda las características del clasificador mas general.
Notación:
Clasificador
más general
Clasificador
más específico
A
B
Características
Características
Redefinición
5. Asociación
• Es una relación que puede ocurrir entre instancias de
clasificadores.
• Una asociación específica una relación semántica que puede
ocurrir entre instancias de un tipo dado.
• La asociación tiene al menos dos extremos representado por
propiedades, donde cada extremo es conectado con el tipo
del extremo.
• Una asociación describe un conjunto de tuplas de las cuales
los valores refieren a tipos de instancias. (Ver ejemplo)
¿Que Observa ?
Una Instancia de una asociación es llamada enlace (link)
Una asociación declara que pueden existir enlaces entre los tipos asociados
5. Asociación: Ejemplo
La asociación tiene al menos dos
extremos representado por
propiedades, donde cada extremo
es conectado con el tipo del
extremo.
Cuando uno o más extremos de la
asociación tienen el atributo
esUnico = falso, es posible tener
varias asociaciones entre el mismo
conjunto de instancias
involucradas; En tal caso, es
necesario un identificador, a parte
del valor en los extremos
5. Asociación
A. Tipos de Agregación
B. Navegabilidad
C. Propiedad de los Extremos
Tipos de
Agregación
Navegabilidad
Propietario
de los Extremos
A. Tipos de Agregación
Compartida Composición
Es una asociación, que difiere de una asociación binaria, ya que
añade un diamante vacío o lleno en uno de los extremos de la
asociación
Asociación por Composición
Mano
10..5
Dedo
Casa
Cuarto
Principal: Cuarto
Huésped: Cuarto
Los Pérez:Casa
Ejemplos
Diagrama de Clases Diagrama de Objetos
Asociación Compartida
Ejemplo Diagrama de Clases
Contexto: Sistema para Punto de Venta
PuntodeVenta
Pago
Tienda CatalogodeProducto
Producto
Venta
Ejemplo Diagrama de Clases (Cont...)
Contexto: Aplicación GPS
B. Navegabilidad
Navegabilidad significa instancias participantes a través de enlaces en tiempo de
ejecución.
Una asociación marcada con una flecha de navegación significa que La Asociación
es navegable en la dirección de aquel extremo.
El mecanismo preciso en el cual el acceso entre instancias es específico de la
implementación.
:Lapicero :Cuaderno
B. Navegabilidad (cont..)
En UML, no navegable significa que el acceso puede
o no ser posible o incluso no ser eficiente.
Everest: Montaña Alpinista: José
Una asociación con ningún extremo marcado por las flechas de
navegación significa que:
-La asociación es navegable en ambas direcciones.
-La navegabilidad no esta específicada.
- Cada extremo de la asociación es de propiedad del
clasificador en el extremo opuesto.
B. Navegabilidad (cont…)
A B
Extremo A Extremo B
1. El par AB muestra la asociación
binaria con dos extremos
navegables
2. El par CD muestra la asociación
binaria con dos estremos no
navegables.
3. El par EF muestra la asociación
binaria con navegabilidad no
especificada.
4. El par GH muestra la asociación
binaria con un extremo
navegable y el otro no-navegable.
5. El par IJ muestra una asociación
binaria con un extremo navegable
y el otro con navegabilidad no
especificada
Asociación Binaria - Ejemplos
Aquellas asociaciones que no explicitamente nombradas y estan
dados los nombre en los extremos se construye de acuerdo a la
siguiente regla de producción:
"A_" <nombre del extremo de la asociación 1> "_" < nombre del
extremo de la asociación 2 >
Convenciones en nombre de asociaciones
La propiedad del extremo de una asociación será del
clasificador asociado y puede ser indicado
gráficamente por un circulo pequeño relleno, que
podrá ser visto como un punto.
C. Propiedad de los Extremos
A B
Extremo A Extremo B
Asociación Binaria AB
El ejemplo muestra que el
extremo A, es propiedad del
Clasificador B
Notación utilizada en los extremos de las asociaciones
• Multiplicidad { 0 | 1 | 0..* | 0..1 | 1.. | 1..* }
• Restricciones
Una propiedad especificada entre llaves { }
1. Sub-Conjunto <Nombre de la Propiedad>
La restricción {subconjunto en el extremo A} significa que el extremo de la asociación en
el cual la restricción es aplicada es una especialización de extremo de la asociación
(extremo Libreta de Dirección) que es parte de la asociación que esta siendo
especializada.
Ejemplo:
• Restricción Redefinir (Redefine) Extremo
Esta restricción significa que el extremo de la asociación
en el cual la restricción es aplicada, indica que esta
parte de la asociación esta especializada.
Ejemplo
Notación utilizada en los extremos de las asociaciones
(cont…)
Triciclo Rueda
{redefine
vehículo}
1. Si el extremo de una asociación no esta etiquetado, el
nombre por defecto para el extremo es el nombre de la
clase al cual el extremo es unido, modificado de forma tal
que la primera letra es una minúscula.
2. Por convención, los extremos de asociaciones no
navegables están frecuentemente no etiquetadas (no es
necesario referirla explícitamente textualmente).
BA
ba
Notación utilizada en los extremos de las asociaciones
(cont…)
• Es una declaración de una relación semántica entre
clasificadores.
• Es tanto una clase, como una asociación
• Tiene un conjunto de características que son propias.
• Comparten al igual que una clase la misma
especificación de características, restricciones y
semántica
• La clase Asociación es un tipo de Clase
5. Asociación: Clase Asociación
Clase Asociación (Ejemplo)
Relación
semántica
• Una especificación de instancia en la cual el clasificador es una asociación que se
representa como un enlace y se muestra usando la misma notación como para una
asociación.
Aspectos a Considerar:
– No es necesario mostrar el nombre de la instancia si es clara la conexión a la mísma.
– Los nombres en los extremos pueden adonarlos. Las flechas se pueden mostrar, pero si
se muestran deben ser de acuerdo con la navegación de los extremos de la asociación.
Luis: Persona José: Persona
padre hijo
5. Asociación: Enlace entre Instancias
Es una relación taxonomica entre un
clasificador más general y uno más específico
Figura
Geométrica
Triangulo RectánguloCuadrado
5. Asociación: Herencia
6. Operación
• La Operación es una característica que declara un
servicio que puede ser llevado a cabo por instancias
de clasificadores del cual ellas son instancias.
• El método es la implementación de la operación.
Diagrama de Operación
Operacion
+operación +Parámetro Formal
0..1 {subconjunto espacio de
nombre}
{redefine Parámetro Formal} *
+pre Contexto +pre condición
{sub conjunto contexto,
sub conjunto espacio de
nombre}
0..1
{sub conjunto reglas del dueño}*
+post Contexto +post condición
0..1 {sub conjunto Reglas del Dueño}*
+Cuerpo del Contexto +Condición del Cuerpo
0..1 {sub conjunto Reglas del Dueño}
0..1
+/tipo
0..1
+ Excepción alcanzada
+Operación redefinida
{redefine Excepciones
Alcanzadas}
*
*
Parametro
Restriccion
Tipo
{sub conjunto contexto,
sub conjunto espacio de
nombre}
{sub conjunto contexto,
sub conjunto espacio de
nombre}
*
*
*
7. Característica Estructural
Es una característica que específica la estructura de
instancias del clasificador.
Es una metaclase abstracta, es decir es una clase cuya
instancia son clases y sus métodos son abstractos.
Los métodos abstractos son aquellos que no tienen un
cuerpo en la clase abstracta en la que son definidos.
La especialización de la característica estructural es la
Propiedad
8. Propiedad
Es una característica estructural
- Es un valor nombrado denotando una característica de un
elemento con un impacto semántico.
Atributo:
Es una característica estructural de un clasificador que
caracteriza instancias del clasificador.
Es un tipo Enumerado con los siguiente valores
literales:
• Publico (+): Es un elemento visible a todos los elementos que
pueden acceder al contenido del espacio de nombre al que
pertenece.
• Privado (-): Es un elemento que solo es visible dentro del
espacio de nombre que pertenece.
• Protegido (#): Es un elemento visible que tiene una relación
de generalización en el espacio de nombre en el que
pertenece.
• Paquete (~): Es un elemento visible a todos los elementos
que estén en el mismo paquete.
9. Tipos de Visibilidad
Ejemplo de Atributos
Público
Protegido
Privado
Ejemplo Diagrama de Clases (Aplicación GPS)
Ejemplo Diagrama de Clases
Receso
Ejercicio 7
Actividad Individual:
Una agencia matrimonial que se dedica a emparejar personas de diferente sexo,
quiere informatizar su gestión de manera que se tiene una base de datos de
personas que quieren encontrar pareja, con sus datos personales y sus
preferencias. Se lleva un histórico con las citas concertadas entre los clientes, con
control de fecha, lugar y un histórico de los matrimonios resultados de los
emparejamientos realizados. Realizar un diagrama de clases que represente los
objetos del dominio del problema y sus relaciones.
Tiempo Estimado: 15 minutos
Resumen: Diagrama de Clases (ontología)
Ejercicio 8
Actividad Individual:
Elabore un diagrama de clases para el acta
arbitral de un partido de fútbol (alineación,
goles, tarjetas, expulsiones, sustituciones ...)
Tiempo Estimado: 10 minutos
Paquetes de Clases
Es un Paquete cuyos elementos de modelo son clases
o incluso paquetes.
Ejemplo: En java los paquetes tienen extensión .jar y
dentro de el tiene varios archivos con extensión .class
Operaciones:
• Merge
• Import (Paquete público) / access (paquete
privado)
Ejemplo de Importación de Paquetes
Los elementos de los Paquetes Auxiliar y Tipo son
importados en el paquete Carrito de Compra, y los
elementos importado desde el paquete Tienda Web
solo pueden acceder a los elementos del Paquete
Tipo y no a los elementos del Paquete Auxiliar
Vista Conceptual del merge entre Paquete
Nótese, que el Paquete B es redefinido (especializado) a partir del Paquete B
Modelo Conceptual
Es un modelo que identifica los elementos de
modelo para un dominio de negocio y/o
problema, en un nivel de abstracción
suficiente de forma que comunique sin
ambigüedad a todos los involucrados el
ámbito sobre el cual aplica el sistema.
Ejemplo: Modelo Conceptual
Modelo de Dominio: Sonido Display
Ejemplo: Modelo Conceptual (Cont…)
Modelo de Dominio: Sonido Display
Ejemplo: Modelo Conceptual (Cont…)
Modelo de Dominio: Sonido Display
Ejemplo: Modelo Conceptual
Modelo de Dominio: Banca
Ejemplo: Modelo Conceptual
Modelo de Dominio: Transporte de Valores
Ejercicio 8
Actividad Individual:
Elabore el modelo conceptual del negocio de su organización
Tiempo Estimado: 20 minutos
Element
Relationship
Directed Relationship
+/propietario
0..1{union}
+/owned Element
{union}
Comment
+owned Comment
0.1 {subsets owned Element} *
Element
+/related Element
{union} 1..* Comment
Body: String
+anntated Element
*
+/target
1..*
{union,
Subsets related Element}
{union, 1..*
Subsets related Element}
+/source
Metamodelo de UML (Resumen)
Fin Día 1
Programa de
Formación:
v2.0
Día 2
Taxonomía de los diagramas en UML
Diagramas
Diagramas de
Estructura
Diagramas de
Comportamiento
Diagrama de
Clase
Diagrama de
componentes
Diagrama de
Composición
de Estructuras
Diagrama de
Despliegue
Diagrama de
Paquete
Diagrama de
Objeto
1
3
Día en que se realizara la
Capacitación
Diagrama de
Maquinas de
Estados
Diagramas
de Actividad
Diagrama de
Casos de
Usos
Diagramas
de
Interacción
Diagrama
de
Secuencia
Diagrama de
Interacción de
Información
General
Diagrama de
Colaboración
Diagrama de
Tiempo
12
3
2
Objetivos del día 2
Generar transferencia de conocimiento a los integrantes del curso, en cuanto
a los siguientes elementos:
1. Reforzar conocimientos en el Modelado con Diagrama de Clases y
modelado de dominio del negocio.
2. Modelar Diagramas de Actividades.
3. Modelar Diagramas de Estados.
Agenda (Día 2)
1. Repaso de Diagrama de Clases. Ejercicio – Duración: 8:30 AM – 10:00 AM
Receso
2. Definición de Diagrama de Actividades – Duración: 10:15 AM – 10:20 AM
3. Perspectivas en Niveles de Diagrama de Actividades – Duración: 10:15 AM
– 10:20 AM
4. Paquetes para Diagrama de actividad – Duración: 10:20 AM – 10:25 AM
5. Elemento de modelo utilizados – Duración: 10:20 AM – 12:00 PM
6. Ejemplos - Duración: 12:00 AM – 12:30 PM
Almuerzo
7. Ejercicios Diagrama de Actividades – Duración 02:00 PM – 02:30 PM
8. Diagramas de Estados – Duración 02:30 PM – 03:15 PM
Receso
9. Ejercicios Diagramas de Estados – Duración 03:30 PM – 05:00 PM
Repaso de Diagrama de
Clases
Caso: Modelado del Dominio
Ejercicio:
• Seleccione un proyecto en curso y genere el Modelo
de Dominio.
• Compare el modelo de dominio generado con el modelo
del día anterior.
• ¿ Qué puede comentar ?
Ejercicio:• A partir del siguiente ejemplo complete, corrija y extienda el siguiente Modelo Conceptual.
Incluya asociaciones (nombre en los extremos, nombre de la asociación, cadinalidad);
caracterice las Entidades y/o identifique operaciones que desde su punto de vista impacten el
modelo.
– Palabras Claves: Aduana, Cadivi, Importador
Receso
Diagrama de Actividad
Contexto
El modelamiento de Actividad enfatiza la
secuencia y condiciones para coordinar
comportamiento de bajo nivel. Las acciones
coordinadas en los modelos pueden ser
iniciada porque otras acciones finaliza la
ejecución.
Contenido (Diagrama de Actividades)
1. Definición
2. Perspectivas en Niveles del Diagrama de
Actividad
3. Paquetes para Diagrama de actividad
4. Elemento de modelo utilizados
5. Ejemplos
6. Ejercicios
Definición
Un diagrama de actividad es un modelo usado para
visualizar el comportamiento de un sistema, y la
manera en que éste comportamiento está
relacionado con un flujo global del sistema.
Nivel de Actividades Fundamental
Nivel de Actividades Básica
Nivel de Actividades Intermedia
Nivel de Actividades Completa
Nivel de Actividades Extra Estructuradas
Nivel de Actividades Estructuradas Completas
Define las Actividades las cuales
Incluyen acciones.
Se incluye control de secuencias y flujo
de datos entres acciones.
Modelamiento de Diagramas de
Actividades que incluye control
concurrente y flujos de datos (similar a
Redes de Petri).
Incluye constructores para extender
modelo de bajo nivel, tales como peso a
arcos y streaming.
Este nivel añade soporte de
modelamiento de los tradicionales
lenguajes de programación.
Este nivel añade soporte a flujo de datos
con salida de secuencias de pins.
Este nivel añade soporte al manejo de
excepciones.
Niveles para el Diagrama de Actividad
Nivel de Actividades Estructuradas
Perspectiva de Paquetes de los Niveles de los
Diagrama de Actividad
Diagrama de Actividad – Elementos de
Modelado
1. Acción: acción con pin de salida y acción con pin de entrada, acción con
parámetro de salida de excepción y agrupación de parámetros.
2. Actividad: arcos y actividad parametrizada.
3. Enviar Señal de Acción
4. Aceptar Evento para Acción
5. Nodo Objeto: nodo objeto de almacén de Datos y nodo de buffer
Central.
6. Nodo de Control: nodo inicial, nodo de flujo final, nodo final, nodo
decisión, nodo bifurcación, nodo unión y nodo combinar.
7. Conectores
8. Partición de Actividades
9. Región de Actividad Interrumpible
1. Acción
Es la unidad fundamental de especificación de comportamiento que
representa alguna transformación o procesamiento en el sistema
modelado.
Una acción toma un conjunto de entradas y las convierte luego en un
conjunto de salidas, aunque una o ambas puede estar vacías.
Las acciones están definidas para aceptar eventos, incluyendo invocación
de operaciones, recuperación de valores en propiedad de un objeto,
difusión de señales, creación y destrucción de objetos.
Es una vía de comunicación asíncrona
1. Acción (cont…)
Las acciones representan un simple paso dentro de una
actividad.
La Actividad representa un comportamiento que es
compuesto por elementos individuales que son acciones.
Ejemplo:Notación:
Descripción del
comportamiento de
la acción
• Pin
Un pin es un elemento de un tipo y multiplicidad que
proporciona valores a las acciones y acepta los valores
resultantes de la misma.
Un representa la entrada o salida de una acción.
Clases de Pin:
– Pin de Entrada: Es un pin que contiene los valores de
entrada a ser consumidos por la acción.
• Existe un tipo de Pin denominado “Pin Valorado” el
cual proporciona un valor para la evaluación de una
especificación, de modo de tener la forma más básica
de insumos en las acciones
– Pin de Salida: Es un pin que mantiene los valores de
salida producidos por una acción
• Pin (cont…)
Pin de salida
Notación para pin
independiente:
El pin de entrada y el pin de
salida tienen el mismo
nombre y el mismo tipo
Pin de entrada
• Clase especial de pin
• Parámetros de Streaming (reflejado con {STREAM}): Acepta o proporciona uno o mas valores
mientras la acción se esta ejecutando
• Parámetros de Salida con Excepción (reflejado con un triángulo)
– Provee valores para la exclusión de cualquier parámetro de salida o control de salida de la acción.
– La acción debe ser inmediatamente terminada
Estilo
Independiente
• Clase especial de pin (cont...)
• Conjunto de Parámetros
– Grupo de parámetros
– La acción solo puede aceptar
entradas de los pines en uno de los
conjuntos.
– La acción solo puede proporcionar
salidas de los pines a alguno de los
conjuntos.
• Pin Valorado: Clase especial de pin de
entrada definido para proporcionar
valores constantes (el tipo específicado
debe ser compatible con el tipo del valor
del pin). π
Computar área
de
circunferencia3.14
Radio
value
La Salida es proporciona solo para el
primero o para el segundo conjunto.
• Modelo para el PIN Básico (Resumen)
2. Actividad
Una especificación que coordina la ejecución de
comportamientos subordinados (en las cuales los
elementos primitivos son acciones individuales),
usando un control y modelo de flujo de datos.
El Flujo de Ejecución es modelado como nodos de
actividad conectados por arcos.
Notación:
Un nodo puede ser la ejecución de un
comportamiento subordinado, tales como: calculo
aritmético, una invocación de una operación o
simplemente la manipulación del contenido de un
objeto
• Actividades
La especificación de actividades permite varios hilos
de control ejecutándose a la vez y sincronizándose
con mecanismo de control para asegurar que las
actividades se ejecuten en el orden especificado.
• Parámetro para Nodo Actividad
Un parámetro para nodo actividad es un nodo objeto
para entrada y salida en actividades.
Notación:
Ejemplo:
Nombre
parámetro
Nombre
parámetro Nombre
parámetro
Parámetro
de Salida
Nodo
Actividad
ArcoParámetro
de Entrada
• Pre & post condiciones
• Puede ser referido a una actividad o a una acción (condición local)
• UML intencionalmente no específica cuando las pre/post condiciones son
probadas (tiempo de diseño, tiempo de ejecución, etc.)
• UML también no define que efecto en tiempo de ejecución o que
recomendación dar en caso de una falla en una pre/post condición (error
que detiene la ejejcución, advertencia, sin acción)
• Pre & post condiciones (cont...)
3. Enviar Señal de Acción (SendSignalAction)
 Una Señal es la especificación de un estimulo asíncrono que dispara una reacción
en el receptor en una forma asíncrona y sin respuesta.
 El objeto receptor maneja la señal como está especificada para su recepción.
 Crea una instancia señal a partir de sus entradas y la transmite al obejto destino
(local o remoto)
 Cualquier respuesta es ignorada.
Notación: Ejemplo:
4. Aceptar Evento para Acción (AcceptEventAction)
Espera por la ocurrencia de un evento en las condiciones específicada
Existen dos clases de Aceptar Evento para Acción:
• Aceptar Evento para acción – Acepta la señal del evento generado
Aceptar evento
para acción
Sin Arcos entrantes Con Arcos entrantes
Esta Acción permanece
habilitada después de
aceptar un evento
• Aceptar Evento para Acción (Continuación)
Espera por la ocurrencia de un evento en las condiciones específicada
Existen dos clases de Aceptar Evento para Acción:
• Esperar acción de tiempo– Acepta evento de Tiempos
El Objeto Personal
almacenado es solo
recuperado cuando nodo
unión (join) es exitoso
(solo una vez al año)
Espera
acción de
tiempo
• Disparadores de Tiempo y eventos de Tiempo
 Un disparador de tiempo es un disparador que específique
cuando un evento de tiempo puede ser generado.
 Eventos de Tiempo ocurre en el instante cuando es
específicado.
 Los tiempos pueden ser relativo o absoluto
– Disparador de Tiempo Relativo: es especificado con la
clave ‘after (después)’ seguido por una expresión que
evalua a un valor de tiempo.
– Disparador de Tiempo Absoluto: es especificado como una
expresión que evalua un valor de tiempo.
1-Ene-2011, medianocheDespués (5 segundos)
Disparador de
tiempo relativo
Disparador de
Tiempo Absoluto
Nodo Actividad
• Corresponden al flujo de ejecución de la Actividad
• Los Nodos Actividad también incluye flujo de
control, tales como sincronización, decisión y control
de concurrencia.
• Nodo Actividad (Cont…)
El Nodo Actividad se especializa en:
– Nodos Objetos
– Nodos de Control
5. Nodo Objeto
• Un nodo Objeto es un nodo actividad que parte de una definición de objeto de
flujo en una actividad.
• Un arco de Objeto de Flujo es un arco usado para mostrar flujo de datos de objetos
y testigos de datos entre nodos acción.
Características
– Mantienen data temporalmente mientras se espera mover a través del gráfico.
– Específico tipos de valores pueden mantener (si el tipo no específicado, ellos pueden
mantener valores de cualquier tipo) .
– Puede mantener el estado del objeto mantenido Ejemplo:
Notación
5. Nodo Objeto (cont…)
Pins
(Tres notaciones distintas)
Parámtero para nodo
Actividad
Nodos de
Buffer Central
Nodos para
Almacén de
Datos
Existen cuatro clases de Nodos Objetos
Es un nodo
objeto que
gestiona flujos
desde multiples
fuentes y
destinos
Es un específico nodo
de buffer central
El cual almacena
objetos
persistentemente.
6. Nodo de Control
• Un nodo de Control, es un nodo actividad abstracto
que coordina los flujos entre otros nodos. Este
abarca el nodo inicial, nodo final, nodos de
bifurcaciones, nodos unión, nodos decisión y nodos
merge.
Notación:
Ejemplo:
Nodo Control– nodo inicial
• En una actividad el flujo inicia con el nodo
inicial, el cual retorna el control con el arco de
salida.
• Si hay más que un nodo inicial, un testigo de
control es colocado en cada nodo inicial
cuando la actividad es iniciada, iniciando
múltiples flujos.
Nodo Control– nodo decision
• Enruta el flujo a uno de los arcos salientes (los testigos no son
duplicados)
• Las condiciones o guardas son específicas al arco saliente o
con el estereotipo «Estrada de decision»
• Existe una predefinida condición o guarda [sino] seleccionada
solo si el token no es aceptado por los otros arcos.
• Si todas las condiciones o guardas fallas, el testigo permanece
en el nodo objeto origen hasta que la condición o guarda sea
aceptada.
Nodo Control– nodo combinar (merge)
• Reunir múltiples flujos alternativos.
• Todos los controles y datos que llegan al nodo
combinar (merge) son inmediatamente pasados al
arco saliente.
• No existe sincronización de flujos o uniones de
testigos.
Nodo Control–nodo bifurcación (fork)
• Nodo bifurcación (fork) divide el flujo en múltiples
flujos concurrentes (los testigos son duplicados).
• La actividad se bifurca en un modelo de paralelismo
sin restricciones.
Nodo control – nodo unión (join)
• El nodo unión (join) sincroniza múltiples flujos.
• Generalmente, controles o datos deben estar disponible en todos los
arcos entrantes de modo de ser pasado al arco saliente, pero los usuarios
pueden específicar diferentes condiciones bajo el cual una unión (join)
acepta controles y datos de entrada usando una específicación unión
(join)
Nodo Control– nodo final
• Flujo final:
– Destruye los testigos que llegan al nodo
– La actividad es terminada cuando todos los testigos en el gráfico están
destruidos.
• Nodo Final:
– La actividad es terminada cuando el primer testigo llega.
Carrera Intencional
entre flujos
7. Conectores - Arcos (activity edges)
• Un arco puede ser simbolizado usando un conector.
• Todos los conectores con una etiqueta dada, deben tener
otro con el mísmo nombre en el mísmo diagrama de
actividad.
es equivalente a
9. Partición de Actividades
• Es una clase de actividad de grupo para identificar acciones que tengan características en
común.
• Mecanismo para organizar actividades de bajo nivel de acuerdo a varios criterios.
• Las particiones divide los nodos y arcos para identificar acciones que tienen características en
común
• Ellos frecuentemente corresponde a las unidades organizacionales en un modelo de negocio.
• Las Particiones pueden ser jerárquicas y multidimensional.
• Notación adicional es provista: Colocar el nombre de la partición en paréntesis sobre el
nombre de la actividad.
Partición de Actividades (cont...)
Observe el
primer y
segundo
Modelo de
Actividad
10. Región de Actividad Interrumpible
• Es una actividad de grupo (conjunto de nodos y arcos) que soportan la
terminación del testigo.
• Cuando un testigo deja una región interrumpible vía un arco de
interrupción, todos los testigos y comportamientos en la región son
terminados.
• Transferir un testigo es aún atomico: Una transición del testigo nunca es
parcial; o es completa o no sucede
Arco de
Interrupción
Notación:
Buen Provecho
Ejemplos de Diagramas de
Actividades
Ejemplo 3
Se tiene un proceso de solicitud de servicio. El cliente
realiza la solicitud de un servicio, el vendedor
pregunta si es cliente nuevo, en caso de serlo le pide
sus datos y los registra. Luego pide los datos del
servicio, indica el plan de tarifas y los indica al
cliente. En caso de ser aceptada por el cliente, el
vendedor programa servicio.
Realice un Diagrama de Actividad para el caso
planteado
Solución (ejemplo 3)
Ejemplo 4: Uso de Conectores
Ejercicio 1
• Genere un Diagrama de Actividad del Caso de
Uso Comprar Producto
Ejercicio 2: ¿Qué significa este diagrama ?
Ejercicio 3: De la especificación de Casos de
Usos a un Diagramas de Actividad
Nombre UC-01. Añadir Nuevo Enlace
Precondición No
Secuencia Principal 1. El visitante selecciona la opción añadir nuevo enlace
2. El Sistema solicita la información del nuevo enlace
3. El Usuario introduce la información del enlace
4. Sistema almacena el nuevo enlace
Secuencia Alternativa 2.1 Si sucede un error recuperando las categorías o no se encuentra ninguna
categoría, el sistema muestra un mensaje de error y este caso de uso
termina.
3.1 En cualquier momento el usuario puede cancelar la operación y este caso de
uso termina
3.2 Si los datos no son correctos, el sistema muestra un mensaje de error y se
repite el paso 2
4.1 Si sucede un error almacenando el enlace, el sistema muestra un mensaje
de error y este caso de uso termina
Post -Condición El nuevo enlace se almacena en el sistema.
Ejercicio 4: Casos de Usos y Diagrama de
Actividades
• Identifique los casos de uso de la operación del
negocio de Alquiler de Salas para Conferencia.
• Genere el Diagrama de Actividad del caso de uso
indicado por el instructor
• Genere un Diagrama de Actividad para la operación
del negocio de Alquiler de Salas para Conferencia.
(caso de uso: Usar sala)
Ejercicio 5
• Elabore un Diagrama de Actividad del Caso de
Uso Dictar Curso
Ejercicio 6
• Un Gerente de Proyecto requiere modelar un
diagrama de actividad de Instalación y Configuración
de Servidores a los programadores y desarrolladores,
de modo que evidencie que la misma es realizada
por ambos.
Ejercicio 7
• Elabore un Diagrama de Actividad del Caso de Uso:
Trabajar con hijos
Receso
Diagrama de Estado
Los Diagramas de Estado en UML son usados para
Modelar la dinamica de los objetos.
El objeto es modelado como una maquina de Estado
- Una maquina de estado es un modelo que especifica
las secuencias de estados que un objeto puede recorrer
durante su existencia.
DIAGRAMA DE ESTADO
- Los cambios de estado obedecen a eventos u
operaciones que ocacionan la transición entre
estados.
- El Diagrama de Estado modela los diferentes
estados de un objeto de negocio o sistema.
DIAGRAMA DE ESTADO (Cont…)
• Estado
• Evento
• Diagrama de Estado
• Transición
Contenido (Diagrama de Estado)
Estado
Es una condición o situación durante el ciclo de vida
de un objeto en el cual se satisface alguna condición,
se lleva a cabo alguna actividad o se espera por algún
evento.
Evento
Es la especificación de una significante ocurrencia
que una localización en tiempo y espacio y puede
causar la ejecución de un comportamiento asociado.
En el contexto de diagrama de estados, un evento es
una ocurrencia que puede desencadenar una
transición.
Diagrama de Estado
Un diagrama de estado describe todos los posibles
estados de un objeto y las rutas para obtener desde
un estado a otro cuando un evento externo es
recibido.
Transición
Es la relación entre dos estados y se
encuentran unidos por flechas; indicando que
un objeto que está en el primer estado
realizará una acción especificada y entrará en
el segundo estado cuando un evento implícito
ocurra y unas condiciones especificas sean
satisfechas.
Notación usada en el diagrama de maquina de
estado
• Estados se muestran como cajas con con los bordes
redondeados
• El nombre del estado se recomienda ser simple, pero
descriptivo, por lo general en tiempo presente.
• Ejemplos:
En la Plataforma
En Préstamo
Transiciones entre estados
• Una transición es una relación entre dos estados
– Un movimiento entre estados en respuesta a algún evento sobre el
objeto
– Indica que un objeto en el primer estado podría cuando es
especificado un conjunto de eventos y condiciones satisfechas, llevar a
cabo ciertas acciones y entrar en el segundo estado
– Mostrar una línea sólida con una flecha en un extremo apuntando al
próximo estado
– La ocurrencia de un evento que desencadene la transición de estado
– La transición es etiquetada para mostrar el evento que causo la
transición.
En Disponibilidad En Préstamo
prestar()
retornar()
Transiciones a si mísma
• Una transición a si misma es una transición en el
origen y el estado destino es el mismo.
En préstamo
renovar()
Marcadores de Inicio y Parada
• Marcador de Inicio
– Pueden existir cero o un estado inicial en un
diagrama.
• Marcador de Parada
– Pueden ser cero o más estados finales.
Reservación
por Confirmar
Reservación
Confirmada
Reservación
Cancelada
Reservación
Consumida
Ejemplo 1
Ejemplo 2
Ejemplo 3
Espera Proceso
end end
start
stop
Ejemplo 4
Ejercicio
Genere un Diagrama de Estado para una sala de cines.
Relación entre Diagrama de Actividades y
Diagrama de Estados
DIAGRAMA DE ACTIVIDAD
(Comportamiento dinámico del sistema)
__________________________________
DIAGRAMA DE ESTADO
(Cambios de estado de Objetos en el sistema)
Programa de
Formación:
v2.0
Día 3
Taxonomía de los diagramas en UML
Diagramas
Diagramas de
Estructura
Diagramas de
Comportamiento
Diagrama de
Clase
Diagrama de
componentes
Diagrama de
Composición
de Estructuras
Diagrama de
Despliegue
Diagrama de
Paquete
Diagrama de
Objeto
1
3
Día en que se realizara la
Capacitación
Diagrama de
Maquinas de
Estados
Diagramas
de Actividad
Diagrama de
Casos de
Usos
Diagramas
de
Interacción
Diagrama
de
Secuencia
Diagrama de
Interacción de
Información
General
Diagrama de
Colaboración
Diagrama de
Tiempo
12
3
2
Objetivos del día 3
Generar transferencia de conocimiento a los integrantes del
curso, en cuanto a los siguientes elementos:
1. Modelar Diagramas de Despliegue.
2. Modelar Diagramas de Secuencia.
3. Practicar los diagramas de UML a través de un Caso de Estudio
4. Conocer las Tendencias alrededor de UML.
Diagrama de
Despliegue
Agenda (Día 3)
1. Diagramas de Despliegue – Duración: 8:30 AM – 10:00 AM
Receso
2. Diagrama de Despliegue – Duración: 10:15 AM – 10:40 AM
3. Ejercicios de Diagramas de Secuencia – Duración: 10: 40 AM
– 12:00 AM
Almuerzo
4. Ejercicios Diagrama de Secuencia – Duración 02:00 PM –
02:30 PM
5. Caso de Estudio – Proyecto - – Duración 02:30 PM – 03:00 PM
Receso
6. Caso de Estudio – Proyecto - Duración 03:15 PM – 05:00 PM
7. Tendencias en UML - Duración 04:45 PM – 05:00 PM
Contenido (Diagrama de Despliegue)
1. Artefacto
2. Abstracción
3. Materialización
4. Definición
5. Características de un Diagrama de Despliegue
6. Nodo
7. Estereotipo de un Nodo
8. Tipos de Nodo
9. Despliegue
10. Instancia de un Nodo
11. Artefacto Desplegado
12. Especificación de Despliegue
13. Rutas de Comunicación (Asociación)
14. Uso de Paquetes en Diagramas de Despliegue
15. Ejemplos (correctos e incorrectos)
16. Ejercicios
Artefacto
Un artefacto es un producto generado a través de un
proceso de desarrollo de software (ejemplo modelos
de Casos de Uso, modelos de Diseño, etc.), archivos
fuente, ejecutables, documentos de diseño, reportes
de prueba, prototipos, manuales de usuario y más.
Un artefacto se denota por un rectángulo mostrando
el nombre del artefacto, el estereotipo «artefacto» y
un icono de documento, como a continuación.
Abstracción
Una abstracción es una relación que refiere a dos elementos o
conjuntos de elementos que representan el mismo concepto
en diferentes niveles de abstracción o en diferentes puntos de
vista.
Ejemplo:
Empleado RegistroEmpleado
<<refine>>
Materialización
Es la física representación concreta de uno o más
elementos de modelo por un artefacto. Esto es,
aquellos elementos de modelo que son utilizados en
la construcción (o generación) del artefacto.
Artefactos (Resumen - Elementos de modelo relacionados)
Definición
Un Diagrama de Despliegue modela la arquitectura
en tiempo de ejecución de un sistema. Esto muestra
la configuración de los elementos de hardware y
donde los artefactos del software se ubican.
La colección de elementos de modelos para el
paquete despliegue, se considera suficiente para la
mayoría de las aplicaciones modernas.
Características de un Diagrama de Despliegue
• Es una vista estructural del sistema.
• Captura la topología de un sistema de hardware.
• Representa una vista de arquitectura de software, de
acuerdo al modelo 4+1 de Kruchten.
• Su propósito es especificar la distribución de
componente.
Nodo
Un Nodo es un elemento de modelo que representa
hardware o software.
Esto se muestra con la forma de una caja en tres
dimensiones.
Ejemplo:
Nodo (cont…)
• Un conjunto de artefactos pueden residir en un nodo
y pueden ser movido de nodo en nodo
• Los Nodos están conectados a través de rutas de
comunicación para crear sistemas en redes de
arbitraria complejidad.
Estereotipo de un Nodo
Son especializaciones establecidas a nodos, en función
de su comportamiento y semántica.
Existen varios estereotipos estándar los cuales se
mostrarán con un icono apropiado en la esquina
derecha arriba del símbolo nodo.
Ejemplos:
Tipos de Nodos
Tipo Descripción Estereotipo
Dispositivo Un dispositivo es recurso físico
computacional con capacidad
de procesamiento sobre el cual
los artefactos pueden ser
desplegados para ejecución.
<<Device>>
Entorno de
Ejecución
Es un nodo que ofrece entorno
de ejecución para ciertos tipos
de componentes que son
desplegados en la forma de
artefactos ejecutables
<<ExecutionEnvironment>>
Ejemplo de Nodos Dispositivo y Entorno de
Ejecución
Despliegue
El Despliegue es una especificación de un conjunto
de elementos de modelo que pueden ser usado para
definir la ejecución de un sistema y representa la
asignación de artefactos de software a nodos.
Se conoce como despliegue meta a la localización de
un artefacto desplegado.
Instancia de un Nodo
Una instancia de nodo se puede mostrar en un
diagrama.
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. Una
instancia puede o no tener un nombre antes de los
dos puntos. El siguiente diagrama muestra una
instancia nombrada de una computadora.
Artefacto Desplegado
• Es un artefacto que se encuentra en un despliegue
meta.
• En General, un componente desplegado es el
despliegue de uno o mas artefactos en un despliegue
meta, opcionalmente parametrizado por una
especificación de despliegue (ej. archivos de
configuración).
• El estereotipo usado para indicar que el Artefacto i se
despliega en el nodo j es <<deploy>>
Artefacto Desplegado (cont…)
• Un Artefacto representa un elemento concreto en el mundo
físico
• Una particular instancia (o copia de) es desplegada en un
nodo instancia.
• Los Artefactos pueden tener asociaciones de composición a
otros artefactos.
Ejemplo 1:
Ejemplos de Artefactos Desplegados
Ejemplo 2
Ejemplo 3 Ejemplo 3
Especificación de despliegue
• Es un mecanismo general para parametrizar una relación de
despliegue, como en común en el software y hardware.
• Específica un conjunto de propiedades que determinan los
parámetros de ejecución de un componente desplegado.
• La notación para la especificación de despliegue es
gráficamente un rectángulo conectado con el artefacto
desplegado a través de una flecha de dependencia.
• La especificación de despliegue tiene dos atributos:
– Localización del despliegue: Este es un directorio o dirección de
memoria.
– Localización de ejecución: Este puede ser una dirección remota o local.
Ejemplos de especificación de despliegue
Ejemplo 2Ejemplo 1
Asociación en el contexto del diagrama de despliegue
• Una asociación representa una ruta de comunicación
entre los nodos.
• A través de la ruta de comunicación se intercambian
señales y mensajes.
• Las ruta de comunicación pueden tener cardinalidad
en sus extremos, así como navegabilidad
Uso de Paquetes en Diagrama de Despliegue
• El paquete como mecanismo de propósito general
para agrupar elementos de modelo es aplicable a los
diagrama de despliegue.
• Es útil para representar diagramas de despliegue
comunes en una arquitectura de ejecución de un
sistema.
Ejemplo del uso de paquetes en Diagrama de
Despliegues.
Ejemplos de Diagrama de Despliegue
Ejemplos de Diagrama de Despliegue (cont…)
1..50
1
Ejemplos de Diagrama de Despliegue (cont…)
Diagramas de Despliegue incorrectos
Diagramas de Despliegue incorrectos
Diagramas de Despliegue incorrectos
Receso
Ejercicio 1
Una empresa tiene un conjunto de tiendas al detal a nivel nacional y
tiene que desplegar una aplicación de punto de ventas llamada
tpdv.jar; la misma es un manifiesto de los diagramas de casos de
usos, diagrama de diseño detallado (clases), diagramas de
actividades y diagrama de estado generado de los productos
adquiridos por los clientes.
Así mismo es importante saber que existe un repositorio central
donde se sincroniza todas las operaciones de ventas y solicitudes de
orden de compra.
Desde el punto de vista tecnológico, la base de datos es Oracle 8i en
toda la infraestructura; el servidor Web es IBM http Server y el de
aplicaciones es IBM WebSphere. Genere un diagrama de despliegue
para este sistema.
Tiempo Estimado: 20 minutos
Ejercicio 2
Lea el siguiente modelo. ¿Cómo podría enriquecerlo?
Diagrama de Secuencia
Contenido (Diagrama de Secuencia)
1. Definición
2. Características
3. Objeto
4. Mensaje
5. Valor de Retorno
6. Mensajes Sincronos
7. Creación de Objetos
8. Destrucción de Objetos
9. Información de control
10. Fragmentos
11. Ejercicios
Definición
Un diagrama de secuencia es un modelo que
muestra la interacción de un conjunto de objetos en
una aplicación a través del tiempo y se modela para
cada método de la clase
Características
• Aclara como los objetos interactúan con otros
objetos.
• Enfatiza tiempo y orden en los mensajes.
• Permite modelar simple flujos secuenciales,
ramificaciones, iteraciones y concurrencia
Objeto
• Nombramiento de Objetos:
– syntax:
[nombredelaInstancia][:NombredelaClase]
– Nombre de Clases consistentemente con el
Diagrama de Clases.
– Incluye nombre de instancias cuando existen
varios objetos del mismo tipo en el diagrama.
– La línea de vida representa la vida del objeto
durante la interacción.
miCumple
:Fecha
Mensajes
• Una Interacción entre dos objetos es llevada a cabo
como un mensaje enviado desde un objeto a otro
(una operación call, señales RPC)
• Si un objeto obj1 envía un mensaje a otro objeto
obj2 algún enlace debe existir entre aquellos dos
objetos
Mensajes (cont…)
• Un mensaje es representado por una flecha entre
líneas de vida de dos objetos.
– Llamadas a si mismo son permitidas.
– El tiempo requerido por el objeto receptor que
procesa el mensaje es denotado por una caja de
activación
– Un mensaje es etiquetado como mínimo con el
nombre del mensaje
– Argumentos e información de control (condición,
iteración) puede ser incluido.
Valores de Retorno
• Opcionalmente se indica usando una flecha
pespunteada con una etiqueta indicando el valor a
retornar.
– No modele un valor de retorno cuando es obvio
que valor esta siendo retornado. Ejemplo:
getTotal()
– Modele un valor de retorno solo cuando tu
necesitas referirlo en otra parte. Ejemplo: cuando
se pasa en un parámetro de otro mensaje
– Modele valores de retornos como parte de
métodos de invocación, ejemplo ok=isValid()
Mensajes Sincronos
• Control de Flujo anidado, típicamente es implementado como
una operación call. Esta operación es una petición al objeto
destino, donde esta pueda causar la invocación de un
comportamiento asociado.
• La rutina que maneja el mensaje es completada antes que el
llamador (caller) reanude la ejecución.
:A :B
hacerAlgo()
Llamador
Bloqueado
retornar
(opcional)yes
Creación de Objetos
• Un objeto puede crear otro objeto via un mensaje
<<create>>.
:A :B
<<create>>
Constructor
:A
<<create>>
:B
Preferido
Destrucción de Objetos
• Un objeto puede destruir otro vía un mensaje
<<destroy>>.
– Un Objeto puede destruirse a si mísmo
– Evite modelar destrucción de objetos a menos que la
gestión de memoria sea crítica.
:A :B
<<destroy>>
Información de Control
• Condición
– Sintaxis: ‘[‘ expresión ’]’ mensaje en la etiqueta
– El mensaje es enviado solo si la condición es verdad
Ejemplo:
• Iteración
– Sintaxis: * [ ‘[‘ expresión ‘]’ ] mensaje en la etiqueta.
– El mensaje es enviado muchas veces y a multiples
receptores objetos.
[ok] pedirPrestado(bibliotecario)
Información de Control (cont…)
• Ejemplo de Iteración:
:Controlador
*[hasta que este
lleno] insertar()
:Bus
Esta sintaxis de
expresiones no
es un estándar
:FiguraCompuesta :Figura
*dibujar()
dibujar()
Ejemplo 1
bibliotecario:
PersonalBiblioteca
libro:Libro :CopiaLibro
pedirPrestado(libro)
ok = puedePedir()
[ok] pedir(bibliotecario)
tomarlo(bibliotecario)
bibliotecario:
PersonalBiblioteca book:Book
:Book
Copy
pedirPrestado(libro)
ok = puedePedir ()
[ok] pedir(bibliotecario)
tomarlo(bibliotecraio)
Eje X (objetos)
EjeY(tiempo)
Objeto
Linea
de vida
mensaje
Caja de
Activación
condición
Ejemplo 2 (cont…)
• Los mecanismos de control de los diagramas de
secuencia satisfacen solo modelamiento para simples
alternativas.
– Considere dibujar diagramas de secuencia para
modelamiento de complejos escenarios
– No utilice los diagramas de secuencia para el
modelamiento detallado de algoritmos (Es mejor
para ello un pseudo-código, diagrama de
actividad, o maquina de estados).
Información de Control (cont…)
Fragmentos
Un fragmento combinado es una o más secuencias
de procesos incluidas en un marco y ejecutadas bajo
circunstancias nombradas específicas. Los
fragmentos disponibles son:
– Fragmento Alternative (alt) modela estructuras
if…then…else.
– Fragmento Option (opt) modela estructuras switch.
– Fragmento Break modela una secuencia alternativa de
eventos que se procesa en lugar de todo del resto del
diagrama.
– Fragmento Parallel (denotado “par”) modela procesos
concurrentes.
Fragmentos (cont…)
• El fragmento de secuenciado Strict (strict) incluye una serie de
mensajes que se deben procesar en el orden proporcionado.
• El fragmento Negative (neg) incluye una serie de mensajes
inválidos.
• El fragmento Critical incluye una sección crítica.
• El fragmento Ignore declara un mensaje o mensajes que no son de
ningún interés si este aparece en el contexto actual.
• El fragmento Consider es el opuesto del fragmento Ignore:
cualquier mensaje que no se incluya en el fragmento Consider se
debería ignorar.
• El fragmento Assertion (assert) designa que cualquier secuencia
que no se muestra como un operando de la aserción es inválida.
• El fragmento Loop incluye una serie de mensajes que están
repetidos
Fragmentos (cont…) - Ejemplo
Fragmentos (cont…) - Ejemplo
Fragmentos (cont…) - Ejemplo
Ejemplo 3: Caso de uso Comprar Producto en el
Punto de Venta
Ejemplo 4: Caso de Uso Realizar reintegro
[D] Confirmación
Ejemplo 5: Caso de Uso: Reservar Vuelo
Persona Vuelo
Consulta(p)
trataConsulta(p)
Horario(v)
Aeropuerto
Horario(v)consultaAeropuerto(v)
infoaeropuerto
[No D] Vuelo lleno
imprimir(doc,cliente)
Ejemplo 6: Caso de Uso: Imprimir Documento
Cliente
:ServidorImpresión :Cola
:Impresora
Proxy
encolar(job)
estatus
job=desencolar()
[job]imprimir(job.doc)
[job] hecho(estatus)
Repetir con
intervalos de 1 min
Objeto
Activo
Ejercicio
• Generar Diagrama de Secuencia para el caso de uso:
– Matricular Asignatura
– Registrar Usuario persona natural
– Retirar Efectivo de un ATM
Buen Provecho
Caso de Estudio
Caso de Estudio:
1. Seleccione un área de dominio de su organización
2. Identifique 3 (tres) casos de usos de su organización.
3. Identifique el / los objetos críticos que manejan los tres casos de
usos
4. Genere el Diagrama de clases
5. Genere el diagrama de actividad por cada casos de uso
6. Genere el diagrama de secuencia por cada caso de uso
7. Genere el diagrama de despliegue, a partir de los infraestructura
tecnológica de su organización
Tendencia en UML
Contenido (Tendencia en UML)
1. Abstracción
2. xUML
3. Model Driven Architecture (MDA)
4. Estado del Software 2031.
Abstracción en Desarrollo de Software
Abstracción en Desarrollo de Software
xUML
1. UML ejecutable es un paso intermedio entre UML y
MDA.
2. UML ejecutable es la mayor innovación en el campo
del desarrollo de software. Esta diseñado para
producir un comprensible y entendible modelo de
una solución independiente de la organización de la
implementación del software. Se trata de una
herramienta de pensamiento muy abstracto que
ayuda a la formalización del conocimiento, y
también una forma de describir los conceptos que
constituyen soluciones abstractas a los problemas
de desarrollo de software.
Fuente: Executable UML: A Foundation for Model-Driven Architecture
By Stephen J. Mellor, Marc J. Balcer
Model Driven Architecture
Es un acercamiento al diseño de software, propuesto
y patrocinado por el Object Management Group.
MDA se ha concebido para dar soporte a la
ingeniería dirigida a modelos de los sistemas de
software.
Fuente: http://es.wikipedia.org/wiki/Model_Driven_Architecture
Pasos
1. Dado un modelo de definición de la plataforma
(Platform Definition Model o PDM),
correspondiente a CORBA, .NET, web.
2. La funcionalidad del sistema será definida en
primer lugar como un modelo independiente de la
plataforma (Platform-Independent Model o PIM)..
3. Traducir el modelo PIM a uno o más modelos
específicos de la plataforma (Platform-specific
models o PSMs) para la implementación
correspondiente, usando diferentes lenguajes
específicos del dominio, o lenguajes de propósito
general como Java, C#, Python, etc
Fuente: http://es.wikipedia.org/wiki/Model_Driven_Architecture
Código Implementado manualmente
Fuente: http://www.enterpriseanalyst.net/download/UML_Ejecutable_y_MDA.pdf
MDA y Errores Introducidos
Fuente: http://www.enterpriseanalyst.net/download/UML_Ejecutable_y_MDA.pdf
Abstracción en el Desarrollo de Software
Fuente: http://www.enterpriseanalyst.net/download/UML_Ejecutable_y_MDA.pdf
El estado del Software 2031
• Plataformas
• Lenguajes
• Sistemas Operativos & Middleware
• Interconectividad
• Seguridad
• Robótica
• Experiencia en Desarrollo
Fuente: http://www.scribd.com/doc/22617449/Tendencias-en-
Ingenieria-de-Software-Ing-Grady-Booch
Lenguajes
• Muchos programadores aún escribirán algoritmos de
librerías en el contexto de un mar de objetos
• Persisten Legacy XML, Java, C++ y UML
• Framework de dominio específico será la corriente
principal.
Fuente: http://www.scribd.com/doc/22617449/Tendencias-en-
Ingenieria-de-Software-Ing-Grady-Booch
Contacto
asdrubal.asencio@cursosnl.com
+58 (414) 173.69.67
+58 (212) 524.87.00
www.cursosnl.com
Recursos
Casos de Usos
• Plantilla Documento de Casos de Uso
• Ejercicio con Plantilla
• Ejemplo Documentado – Empresa ACME
Paleta de elementos para el Diagrama de Clases
Paleta de elementos de modelo para el
diagrama de despliegue

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

diagrama de colaboracion
diagrama de colaboraciondiagrama de colaboracion
diagrama de colaboracion
 
Diagrama de Actividades
Diagrama de ActividadesDiagrama de Actividades
Diagrama de Actividades
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
Diagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegueDiagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegue
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a Objetos
 
Diagramas De Caso De Uso
Diagramas De Caso De UsoDiagramas De Caso De Uso
Diagramas De Caso De Uso
 
Diagrama de casos de usos
Diagrama de casos de usosDiagrama de casos de usos
Diagrama de casos de usos
 
Diagrama de Colaboración
Diagrama de ColaboraciónDiagrama de Colaboración
Diagrama de Colaboración
 
SQL Injection - Newsletter
SQL Injection - NewsletterSQL Injection - Newsletter
SQL Injection - Newsletter
 
UML: CASOS DE USO
UML: CASOS DE USOUML: CASOS DE USO
UML: CASOS DE USO
 
Ejemplos de herramientas case más utilizadas
Ejemplos de herramientas case más utilizadasEjemplos de herramientas case más utilizadas
Ejemplos de herramientas case más utilizadas
 
Arreglos
ArreglosArreglos
Arreglos
 
Formato ieee830(srs lleno)
Formato ieee830(srs lleno)Formato ieee830(srs lleno)
Formato ieee830(srs lleno)
 
Ejemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupEjemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rup
 
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCH
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCHLINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCH
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCH
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
Bases de Datos NoSQL
Bases de Datos NoSQLBases de Datos NoSQL
Bases de Datos NoSQL
 
Los 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentesLos 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentes
 
proceso unificado de desarrollo
proceso unificado de desarrollo proceso unificado de desarrollo
proceso unificado de desarrollo
 
Ejemplo rup
Ejemplo rupEjemplo rup
Ejemplo rup
 

Destacado

UML Exposición de analisis y diseño de Siatemas
UML Exposición de analisis y diseño de SiatemasUML Exposición de analisis y diseño de Siatemas
UML Exposición de analisis y diseño de SiatemasEder Nuñez Ochoa
 
Transparencia - Métricas en la calidad de Software
Transparencia - Métricas en la calidad de SoftwareTransparencia - Métricas en la calidad de Software
Transparencia - Métricas en la calidad de SoftwareDaniel Chandia
 
10 midiendo la calidad del software
10 midiendo la calidad del software10 midiendo la calidad del software
10 midiendo la calidad del softwareUVM
 
Introduccion a UML
Introduccion a UMLIntroduccion a UML
Introduccion a UMLJuan Antonio
 
Metricas de software
Metricas de softwareMetricas de software
Metricas de softwaresophialara123
 
Curso Uml 2.1 Diagramas De Cu Y Clases
Curso Uml   2.1 Diagramas De Cu Y ClasesCurso Uml   2.1 Diagramas De Cu Y Clases
Curso Uml 2.1 Diagramas De Cu Y ClasesEmilio Aviles Avila
 
Introducción a la Programación con Java
Introducción a la Programación con JavaIntroducción a la Programación con Java
Introducción a la Programación con Javaflekoso
 
Metricas de calidad de software
Metricas de calidad de softwareMetricas de calidad de software
Metricas de calidad de softwareisisparada
 
Métricas de calidad de software
Métricas de calidad de softwareMétricas de calidad de software
Métricas de calidad de softwaredaners08
 
UML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento UnificadoUML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento UnificadoEliseo Castro
 

Destacado (15)

UML Exposición de analisis y diseño de Siatemas
UML Exposición de analisis y diseño de SiatemasUML Exposición de analisis y diseño de Siatemas
UML Exposición de analisis y diseño de Siatemas
 
Transparencia - Métricas en la calidad de Software
Transparencia - Métricas en la calidad de SoftwareTransparencia - Métricas en la calidad de Software
Transparencia - Métricas en la calidad de Software
 
Metricas
MetricasMetricas
Metricas
 
10 midiendo la calidad del software
10 midiendo la calidad del software10 midiendo la calidad del software
10 midiendo la calidad del software
 
IntroduccióN Uml
IntroduccióN UmlIntroduccióN Uml
IntroduccióN Uml
 
Curso Uml 1 Introduccion
Curso Uml   1 IntroduccionCurso Uml   1 Introduccion
Curso Uml 1 Introduccion
 
Metricas de calidad
Metricas de calidadMetricas de calidad
Metricas de calidad
 
Que Es Java
Que Es JavaQue Es Java
Que Es Java
 
Introduccion a UML
Introduccion a UMLIntroduccion a UML
Introduccion a UML
 
Metricas de software
Metricas de softwareMetricas de software
Metricas de software
 
Curso Uml 2.1 Diagramas De Cu Y Clases
Curso Uml   2.1 Diagramas De Cu Y ClasesCurso Uml   2.1 Diagramas De Cu Y Clases
Curso Uml 2.1 Diagramas De Cu Y Clases
 
Introducción a la Programación con Java
Introducción a la Programación con JavaIntroducción a la Programación con Java
Introducción a la Programación con Java
 
Metricas de calidad de software
Metricas de calidad de softwareMetricas de calidad de software
Metricas de calidad de software
 
Métricas de calidad de software
Métricas de calidad de softwareMétricas de calidad de software
Métricas de calidad de software
 
UML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento UnificadoUML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento Unificado
 

Similar a Curso de UML 2.0 (20)

Generacion en los diferentes diagramas de uml
Generacion en los diferentes diagramas de uml Generacion en los diferentes diagramas de uml
Generacion en los diferentes diagramas de uml
 
Curso
CursoCurso
Curso
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Teoria del modelado de objetos modificado
Teoria del modelado de objetos modificadoTeoria del modelado de objetos modificado
Teoria del modelado de objetos modificado
 
UML - Analisis de Sistemas
UML - Analisis de SistemasUML - Analisis de Sistemas
UML - Analisis de Sistemas
 
Uml
UmlUml
Uml
 
cursoUML.ppt
cursoUML.pptcursoUML.ppt
cursoUML.ppt
 
Modelado de sistemas software
Modelado de sistemas softwareModelado de sistemas software
Modelado de sistemas software
 
Uml
UmlUml
Uml
 
analisis y diseño 2.pdf
analisis y diseño 2.pdfanalisis y diseño 2.pdf
analisis y diseño 2.pdf
 
Modelado, Ingenieria de Software
Modelado, Ingenieria de SoftwareModelado, Ingenieria de Software
Modelado, Ingenieria de Software
 
UML
UMLUML
UML
 
UML
UMLUML
UML
 
Sesion1.1 uml
Sesion1.1 umlSesion1.1 uml
Sesion1.1 uml
 
El Proceso UML Ing. de Sistemas 7° Sem. "UNEFA"
El Proceso UML Ing. de Sistemas 7° Sem. "UNEFA"El Proceso UML Ing. de Sistemas 7° Sem. "UNEFA"
El Proceso UML Ing. de Sistemas 7° Sem. "UNEFA"
 
Umbrello UML Modeller
Umbrello UML ModellerUmbrello UML Modeller
Umbrello UML Modeller
 
UML
UMLUML
UML
 
UML
UMLUML
UML
 
Objeto de Aprendizaje : Introducción a UML
Objeto de Aprendizaje : Introducción a UMLObjeto de Aprendizaje : Introducción a UML
Objeto de Aprendizaje : Introducción a UML
 
Uml
UmlUml
Uml
 

Último

MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++luzgaray6
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.CeteliInmaculada
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Leonardo J. Caballero G.
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Leonardo J. Caballero G.
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 

Último (6)

MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 

Curso de UML 2.0

  • 2. Conformidad del Curso 1. El contenido del presente curso es conforme a la especificación de OMG para la superestructura del Lenguaje de Modelado Unificado versión 2.0 y la especificación de OMG para la infraestructura del Lenguaje de Modelado Unificado versión 2.0. 2. Las Imágenes no pertenecen a la especificación de UML, aunque se utilizan con fines de ejemplificar y aclarar términos, ideas, etc. 3. Definiciones y/o aclaratorias complementarias a lo definido en la especificación, se identificaran expresamente la fuente de donde en la lamina respectiva.
  • 3. Objetivos del día 1 Generar transferencia de conocimiento a los integrantes del curso, en cuanto a los siguientes elementos: 1. Necesidad de Modelar. 2. Conceptualización formal de UML, antecedentes, Casos de Usos y Clases. 3. Identificar, modelar diagramas de Casos de Usos y su especificación. 4. Diseñar diagrama de clases.
  • 4. Agenda (Día 1) 1. La necesidad Modelar. Ejercicio – Duraci ón: 8:00 AM – 8:30 AM 2. Antecedentes de UML – Duración: 8:30 AM – 9:00 AM 3. Conceptualización y Conformidad de UML – Duración 9:00 AM – 9:15 AM 4. Casos de Usos, Tema y Actores – Duración 9:15 AM – 9:30 AM Receso 5. Identificando Casos de Usos – Ejercicio – Duración 10:00 AM – 10:20 AM 6. Especificando Casos de Usos - Duración: 9:30 – 11:00 AM 7. Documentando un Casos de Usos Extend- Duración: 11:00 AM – 11:20 AM 8. Documentando un Casos de Usos Include- Duración: 11:20 AM - 11:45 AM 9. Escenarios y Pruebas de Casos de Usos - Duración: 11:45 AM – 12:00 PM Almuerzo 10. Diagrama de Clases : Definiciones Preliminares – Duración 01:30 PM – 02:25 PM 11. Clasificador, Clase, Relación, Asociación, Operación, Característica Estructural, Propiedad Tipos de Visibilidad – Duración 02:25 PM – 03:30 PM Receso 7. Diagrama de Clases (Ontología) y Ejercicio - Duración: 03:30 PM – 3:50 PM 8. Paquetes de clases Duración: 3:50 PM –4:05 PM 9. Modelo Conceptual – Duración 4:05 PM – 4:50 PM 10. Metamodelo UML – Duración 4:50 PM – 5:00 PM
  • 5. ¿ Qué es un Modelo? Un modulo captura una vista de un sistema del mundo real. Es una abstracción de dicho sistema, considerando un cierto propósito. Así, el modelo describe completamente aquellos aspectos del sistema que son relevantes a su propósito y apropiado nivel de detalle.
  • 7. Construcción de una casa para “koki” Puede hacerlo una sola persona Requiere: Modelado mínimo Proceso simple Herramientas simples Fuente: Software Architecture and UML” Grady Booch
  • 8. Construcción de una casa Construida eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas más sofisticadas Fuente: Software Architecture and UML” Grady Booch
  • 10. Construcción de un rascacielos
  • 11. Ejercicio 1 Actividad Individual: Dibujar en una hoja en blanco cada uno de los elementos que usted visualiza en está sala. Tiempo: 10 minutos
  • 12. ¿ Qué es UML? UML es un lenguaje estándar ISO/IEC 19501, el cual esta hecho para especificar, visualizar, construir, y documentar artefactos de sistemas de software, así como el modelamiento del negocio y otros sistemas fuera de estos ámbitos. Actualmente se encuentra en la versión 2.0 de OMG.
  • 13. ¿Qué no es UML? • UML no es una metodología • UML no es una técnica. • UML no es una herramienta. • UML no es Software Libre, ni Propietario. • UML no es un método.
  • 14. Objetivo de UML Proporcionar a los Arquitectos, Ingenieros, y Desarrolladores de Software con herramientas para el análisis, diseño e implementación de sistemas basados en software así como el modelamiento de negocio y procesos similares.
  • 15. Conformidad de UML 1. UML es un lenguaje con un amplio alcance que cubre diversos conjuntos de dominios de aplicación. 2. No todas las capacidades de modelamiento son necesariamente útiles para todos los dominios o aplicaciones. 3. UML proporciona nivel de conformidad para incrementar la probabilidad de interoperabilidad entre distintas herramientas. 4. Los conceptos de modelamiento son agrupados en unidades de lenguajes UML Versión 2.0
  • 16. OOPSLA Conferencia 1995 OMG obtiene Copyright UML ISO acceptance 10/19/00 (ISO/DIN 19501-1) Booch Booch OMT Rumbauh UML 0.8 Booch/ Rumbaugh UML 0.9 ‘’ Three Amigos’ 1996 OCL IBM UML 1.1 OMG 1997 Unified Process Jacobson and others (UML 1.2) OMG 1998 XMI UML 1.3 OMG 1999 UML 1.4 OMG 2001 UML 1.5 OMG 2003 UML 2.0 OMG2003/ adoptado OCUP Certification OOSE Jacobson State Charts Harel UML 2.0 OMG 2005/Final UML 2.1 OMG 2006 UML 2.1.1 OMG Ago- 2007 OMG 17/11/97 Permanecio no oficial debido a demanda Antecedentes de UML UML 2.0 OMG Nov- 2007 UML 2.2 OMG Nov- 2009 UML 2.0 OMG May- 2010
  • 17. Nov ‘97 UML aprobado por el OMG 1998 1999 2000 UML 1.2 UML 1.3 UML 1.4 2001-2005 UML 2.0 Revisiones menores 2007 Ago - 2007 UML 2.1.1 UML 2.2 Nov - 2007 Feb - 2009 UML 2.0 May - 2010 UML 2.0Antecedentes de UML (Resumen)
  • 18. La Importancia de Modelar - ¿Por que usar UML? R. Desde una perspectiva Organizacional • El análisis y diseño de sistemas se puede realizar usando UML, representando enfoques estructurales y dinámicos. • Metodologías de desarrollo de software usan UML como notación estándar (Ej. RUP). • Disciplinas como la Arquitectura Empresarial usan UML para representar distintos enfoques del negocio. • Las Organizaciones requieren comunicar modelos sin ambigüedad.
  • 19. • Los modelos comunican visiones a todos los involucrados de lo que se quiere construir. •El Diseño juega un rol importante en el resultado del producto a construir. • Algunas organizaciones buscan eficiencia funcional sin diseño y en muchos casos consiguen re-trabajo, uso ineficaz de los recursos y aumento de los costos asociados a los proyectos. La Importancia de Modelar- ¿ Por que usar UML ? (cont…) R. Desde la perspectiva del Diseño:
  • 20. • UML provee soporte de las marcas de la Industria de mayor impacto en el desarrollo de software, alineada con las practicas actuales (SOA, BPMN, etc). La Importancia de Modelar- ¿ Por que usa UML? (cont…) R. Desde la perspectiva de la Herramientas disponibles:
  • 21. ¿ Quienes usan UML ? •Arquitecto de Software •Desarrollador •Analista de Negocio •Analista de Pruebas •Técnico de Infraestructura •Técnico en Configuración de Aplicaciones y Servidores.
  • 22. Conectando Modelar con UML… UML ES UN LENGUAJE Recordando un poco… Un lenguaje es la capacidad del ser humano para comunicarse mediante un sistema de signos o lengua para ello .
  • 23. Taxonomía de los diagramas en UML Diagramas Diagramas de Estructura Diagramas de Comportamiento Diagrama de Clase Diagrama de componentes Diagrama de Composición de Estructuras Diagrama de Despliegue Diagrama de Paquete Diagrama de Objeto 1 2 Día en que se realizara la Capacitación Diagrama de Maquinas de Estados Diagramas de Actividad Diagrama de Casos de Usos Diagramas de Interacción Diagrama de Secuencia Diagrama de Interacción de Información General Diagrama de Colaboración Diagrama de Tiempo 12 3 2
  • 24. Diagrama Es una representación gráfica de una colección de elementos de modelado, a menudo dibujada como un grafo con vértices conectados por arcos. Elemento Parte constituyente de un Modelo Definiciones Preliminares
  • 26. ¿ Qué es un caso de uso ? (definición formal) ES UN MEDIO PARA ESPECIFICAR LOS REQUERIMIENTOS DE USO DE UN SISTEMA. SU REPRESENTACIÓN COMO EN UN ELEMENTO DE MODELO ES A TRAVÉS DE LOS SIGUIENTES ESTEREOTIPOS: NOMBRE Nombre
  • 27. ¿ Qué es un caso de uso ? (Definición Informal) Es una forma de identificar aquellas cosas que se repiten o son frecuentes en términos de comportamiento en un sistema, al cual denominamos Caso y que es utilizado (Uso) por uno o más Actores. Fuente: José Asencio
  • 28. ¿ Qué no es un caso de uso ? • Cualquier acción simple o atómica. Ejemplo - Imprimir - Insertar Registro • Cualquier acción compleja, pero su ocurrencia en el sistema es excepcional o no es relevante para los actores del sistema (La cantidad de ocurrencias del caso es mínima o bien no ha ocurrido). Ejemplo - Un sismo o temblor. - Especificar el caso de uso Cepillarse los Dientes
  • 29. ¿ Donde es usado ? Típicamente son usados para capturar los requerimientos de un Sistema. Esto es, que es lo que se supone el sistema deba hacer.
  • 30. ¿Donde es usado? (2) De acuerdo a una encuesta realizada por De 171 Analistas / Programadores quienes usan UML en proyectos de desarrollo de software, indican que el 44% utilizan la narración (especificación) de casos de usos. Fuente: COMMUNICATIONS OF THE ACM May 2006/Vol. 49, No. 5.
  • 31. Tema (Subject) Tema Es el sistema a consideración, bajo el cual el caso de uso aplica. El Comportamiento requerido por el tema es especificado por uno o más casos de uso, el cual esta definido a partir de las necesidades de los actores. Nota: En Principio, un caso de uso puede aplicar a Múltiples temas.
  • 32. Actor Un actor especifica un rol jugado por un usuario o cualquier otro sistema que interactúe con el tema. Un actor no necesariamente representa una entidad especifica. Ejemplo: La temperatura puede ser un actor en un sistema. Los Actores son externos al tema
  • 33. Restricciones de un Actor 1. Solo se puede asociar a: • Casos de Usos • Clases • Componentes Además estas asociaciones son Binarias, es decir, ocurren o no ocurren. 2. Un Actor debe tener un Nombre. En versiones anterior a la 2.0 esto no era restricción.
  • 34. Semántica de un Actor Cuando ocurre una asociación entre un actor y un caso de uso con multiciplicidad mayor que uno, significa que un actor dado puede estar involucrado en múltiples casos de uso de ese tipo. Por Ejemplo: • Caso de Uso: Chat. Un Actor puede interactuar a través de la mensajería del chat con múltiples (mayor que uno) usuarios (en paralelo o concurrentemente).
  • 35. Lineamientos de Estilo para un Actor 1. El nombre del actor es con la primera letra en Mayúscula. Ej. Nombre del Actor: Cliente, Cajero, Usuario, etc. 2. Si el Actor es un Abstracto entonces el nombre deberían mostrarse en Itálica. Ej. Nombre del Actor: Persona.
  • 36. Ejemplos – Modelos de Casos de Usos Registrar Solicitud Organismo Fiscal Pagar ISLR Supervisor Contribuyente
  • 37. Ejemplos – Modelos de Casos de Usos Persona Comprar producto <<extend>> Ver Detalle
  • 38. Ejemplos – Modelos de Casos de Usos Operador Cambiario Recibir Solicitud de Viajes <<include>> Procesar solicitudes Recibir Solicitud de Operaciones Electrónicas <<include>>
  • 39. Ejemplo de Notación Rectángulo para modelos de casos de usos Notación Rectángulo: Utilizada cuando el modelo de caso de caso de uso incorpora un lote considerable de casos de uso de extensión y que los mismos generan o podrían crear ruido en el diagrama. Ejemplo: OrderStationery : PlaceOrder extension points order created : in Created state order processed : in Processed state order cancelled : in Cancelled state order rejected : in Rejected state order completed : in Completed state order destroyed : in Destroyed state order delivered : in Delivered state order obfuscated : in Obfuscated state
  • 40. Ejemplo de Casos de Usos - Narrativa Un Banco requiere implementar una funcionalidad en el sistema de Banca en Línea que se encargue de recibir las solicitudes de compras de títulos valores de los clientes persona natural con apertura de cuenta mayor a 90 días.
  • 41. Modelando Casos de Uso Tema: Sistema de Banca en Línea Actor: Clientes - Persona Natural Caso de Usos Identificados: Iniciar Sesión, Solicitar compra de titulo – valor. Sistema de Banca en Línea Iniciar Sesión Solicitar Compra Titulo-Valor Cliente <<Persona Natural>>
  • 43. Narrativa del Sistema: Un empresa posee una cadena de tiendas a nivel nacional y desea actualizar su sistema de ventas de productos, debido a que tiene productos de software para la gestión de ventas por cada tienda. Ejemplo de Casos de Usos – Narrativa (2)
  • 44. Modelando Casos de Uso Tema: Sistema de Punto de Ventas. Actor: Cajero, Cliente. Caso de Usos Identificados: Comprar Producto, Registrar Datos. Sistema de Punto de Venta Comprar Productos Registrar Datos Cajero Cliente
  • 45. Ejercicio 2 Actividad Individual: • Identifique si existe: Tema, actor y casos de uso en las siguientes narrativas y genere el diagrama de casos de usos. • Narrativa del Sistema 1: Una empresa de ventas de productos al detal requiere la información de los costos de envío para comunicárselos a sus clientes cada que vez que realicen una compra. • Narrativa del Sistema 2: Un ejecutivo de ventas requiere una clasificación atípica de segmentación de clientes (Volumen diario de ventas por municipio) y solicita a la Gerencia de TI la información de ventas en el mes en curso basado en tal clasificación. Tiempo: 10 minutos
  • 46. Especificando Casos de Usos • Pre-Condiciones y Post-Condiciones • Flujos Básicos • Flujos Alternos
  • 47. Específicando Casos de Usos Alto Nivel Caso de Uso: Comprar Producto Actores: Cliente, Cajero Propósito Capturar una venta y su pago en efectivo Descripción: Un cliente llega a la caja registradora con los artículos que comprará. El cajero registra los artículos y cobra el importe. Al terminar la operación, el cliente se marcha con los productos Versión 0.1
  • 48. Acción del actor Respuesta del Sistema 1. Este caso de uso comienza cuando un cliente llega a una caja TPDV [terminal punto de venta) con productos que desea comprar. 2. El Cajero registra el identificador de cada producto. Si hay varios productos de una misma categoría, el cajero también puede introducir la cantidad. 3. Determinar el precio del producto e incorpora a la transición actual la información correspondiente. Se presenta la descripción y el precio del producto actual. 4. Al terminar de introducir el producto, el cajero indica a TPDV que se concluyo la captura del producto. 5. Calcula y presenta el total de la venta. 6. El Cajero le indica el total al cliente. 7. El Cliente efectúa un pago en efectivo Curso Normal de los Eventos o Flujo Básico Versión 0.2
  • 49. 8. El Cajero registra la cantidad de efectivo recibida. 9. Muestra al cliente la diferencia. Genera un recibo. 10. El Cajero deposita el efectivo recibido y extrae al cambio del pago. El Cajero da al cliente el cambio y el recibo impreso. 11. Registra la venta concluida. 12. El Cliente se marcha con los artículos comprados. Curso Alternos Curso Normal de los Eventos o Flujo Básico (continuación) • Línea 2 : Introducción de identificador inválido. Indicar error. •Línea 7: El Cliente no tenia suficiente dinero. Cancelar la transacción de venta. Versión 0.2
  • 50. Versión preliminar del Documento de Casos de Uso Ver Ejemplo Impreso en Documentación del Curso
  • 51. Versión preliminar del Documento de Casos de Uso
  • 52. Ejercicio 3 – Documentando un Caso de Uso Actividad Individual: 1. Requerimiento: Especifique el caso de uso de comprar productos para una tienda de comercio electrónico. Identifique los elementos descritos en la plantilla proporcionada. 2. Genere el Diagrama de Casos de Usos y asígnele la versión 0.1 Nota: Cada participante puede especificar una secuencia distinta. Tiempo: 15 minutos
  • 53. Casos de Uso Extend Una relación que específica que el comportamiento de un caso de uso puede ser extendido por el comportamiento de otro caso de uso. La extensión toma lugar en uno o mas puntos de extensión específicos, definido el caso de uso extendido.
  • 54. Extendiendo Caso de Usos Punto de extension seleccion << extend>> Ejecutar ATM transacción Ayuda en Linea Condición: {Cliente selecciono Ayuda} Punto de Extensión: selección Los puntos de extensión referenciado por la relación de extensión deben pertenecer al caso de uso que esta siendo extendido. Ejemplo:
  • 55. Ejercicio 4 – Documentando un Caso de Uso extend Actividad Individual: 1. Requerimiento: Especifique el caso de uso para una tienda de comercio electrónico que calcule los costos de envío del producto que esta comprando el cliente. Identifique los elementos descritos en la plantilla proporcionada. 2. Actualice el Diagrama de Casos de Usos y asígnele la versión 0.2 Nota: Cada participante puede especificar una secuencia distinta. Tiempo: 15 minutos
  • 56. Incluyendo Casos de Usos - ¿ Qué es el Include? Retirar << include >> Identificar Tarjeta Es una relación que define que un caso de uso contiene el comportamiento definido en otro caso de uso. Ejemplo:
  • 57. Ejercicio 5 – Documentando un Caso de Uso include Actividad Individual: 1. Requerimiento: Especifique el caso de uso para una tienda de comercio electrónico que permita realizar pagos con Tarjetas de Crédito. Identifique los elementos descritos en la plantilla proporcionada. 2. Actualice el Diagrama de Casos de Usos y asígnele la versión 0.3 Nota 1: Cada participante puede especificar una secuencia distinta. Nota 2: Revise el Diagrama; realice las actualizaciones y cambie la versión a 1.0 Tiempo: 15 minutos
  • 58. Diseñando Casos de Usos «subsystem» ATM system Withdraw Transfer Funds Deposit Money Register ATM at Bank Read Log Customer Administrator Bank 11 1 1 1 1 0..1 0..1 0..1 0..1  Ejemplo: Nótese: Tema: SubSistema ATM Cardinalidad del caso de Uso Actores: Están afuera del tema 1 0..1 0..* 0..*
  • 59. Paquetes de Casos de Usos package T ransactionUseCases Card Identification Perform ATM Transaction «extends» On-Line Help «includes» package ATM Services «includes» Withdraw Transfer Funds Deposit Funds package Administration Read Log Register ATM at Bank condition: {customer selected HELP} extension point: Selection Un Paquete, es un mecanismo de propósito general para agrupar elementos.
  • 60. Ejercicio 4 La biblioteca ABC contiene libros y revistas. Puede haber varias copias de un libro dado. Algunos libros se prestan sólo para un período de 3 días. El resto de libros se prestan para 3 semanas a cualquier socio de la biblioteca. Se puede tener en préstamo hasta 6 libros a la vez. Sólo los trabajadores de la biblioteca pueden tomar en préstamo revistas. Los trabajadores de la biblioteca pueden tener hasta 12 libros/revistas en préstamo. El sistema debe almacenar cuándo se toman en préstamo y devuelven todos los libros/revistas. Cuando se quiere tomar en préstamo una copia de un libro y no está disponible es posible hacer una reserva del libro. Es posible extender la fecha del préstamo del libro. Para ello hay que llevar dicho libro, mostrarlo en la biblioteca y, si no hay reservas hechas para dicho libro, entonces se pone la nueva fecha de entrega (3 días/semanas después). Se puede consultar el catálogo de la biblioteca (tanto libros como revistas) por distintos campos de búsqueda. No hace falta ser socio de la biblioteca para ello. Sólo algunos de los trabajadores de la biblioteca pueden actualizar el catálogo (cuando llegan libros/revistas nuevos o se dan de baja). Tiempo: 20 minutos Cliente: Biblioteca ABC Paleta de Simbolos
  • 61. Escenarios de Casos de Usos Es la selección de un camino o conjunto de pasos en un caso de uso especificado que indique la secuencia a realizar desde la iniciación del caso hasta su completitud en su flujo básico o alternativo y que permiten validar que se cumplen con los requerimientos del cliente
  • 62. Las Pruebas y los Casos de Usos • Las pruebas son por casos de usos, y se definen varias por iteración o por fase del proyecto: – Pruebas de Caja Negra • Pruebas de Interfaz • Pruebas de validación de campos • Pruebas de seguridad • Pruebas de Carga – Pruebas de Caja Blanca • Pruebas funcionales • Pruebas unitarias • Pruebas de Integración • Pruebas de Regresión • Pruebas de Progresión
  • 65. Definiciones Preliminares • Espacio de Nombre • Instancia • Objeto • Estereotipo
  • 66. Espacio de Nombre • En parte de un modelo y representa el conjunto de nombres definidos, usados y con definición única 11-Sep 5 de Julio Ejemplo:
  • 67. Instancia • Es una entidad que tiene una única identidad, un conjunto de operaciones que puede ser aplicada sobre el y un estado que almacena los efectos de las operaciones. Mesa 1 Puerta principal Laptop serial abc123 Clientes Empresa: Farmatodo Ubicación: las Mercedes
  • 68. Objeto • Definición 1: Es una instancia de una clase • Definición 2: Es un elemento individual con un estado, un conjunto de valores establecido por sus atributos y un conjuntos de operaciones que pueden ser invocadas. Ejemplos:
  • 69. • Es una clase que define como una metaclase puede ser extendida. En un concepto utilzado para encapsular comportamiento. Ejemplo: El estererotipo del <<cajero>> (hereda del clasificador Persona). Entre las características de los Estereotipos tenemos: - Un Estereotipo puede ser usado para agregar restricciones al modelo - Sirve como elemento de comunicación entre el análisis y el diseño Estereotipo
  • 70. Ejercicio 6 Actividad Individual: • Identifique una lista de los elementos del espacio de nombre de su organización. Características: – Están Definidos – Son usados – Su significado es único Tiempo Estimado: 5 minutos
  • 71. Ejercicio 6 (Cont…) Actividad Individual: Del listado Anterior, Identifique cuales elementos son estereotipos. En caso de cumplirse, identifique a que elemento general pertenece. Tiempo Estimado: 5 minutos
  • 72. Contenido (Diagrama de Clases) 1. Definición 2. Clasificador 3. Clase 4. Relación 5. Asociación 6. Operación 7. Característica Estructural 8. Propiedad 9. Tipos de Visibilidad
  • 73. 1. Definición: Diagrama de Clases  El Diagrama de clases es un Diagrama de Estructura en el que se muestra un conjunto de elementos de modelo de forma declarativa (estática). Ticket Servicio de actorización de Pago con TDC Algoritmo de Asignación de Asientos Ejemplo: Sistema de Reservación de Línea Los Diagramas de Estructura no muestra detalle del comportamiento dinámico
  • 74. 2. Clasificador • Es una colección de Instancias que tiene algo en común Ejemplo: Laptop serial abc123 Laptop serial abc124 Laptop serial abc125 Laptop serial abc126
  • 75. 2. Clasificador (cont…) Un clasificador puede tener características que caracterizan sus instancias.
  • 76. Es un clasificador que describe un conjunto de objetos que comparten la misma especificación, restricciones y semántica. Notación: Atributos Nombre de La Clase Operaciones 3. Clase Restricciones
  • 77. A. Lineamientos de Estilo. B. Enumeración. 3. Clase (cont..)
  • 78. A. Clase: Lineamientos de Estilo • Primera Letra del nombre de la clase en mayúscula • Primera Letra en atributos y operaciones en minúsculas • Si la clase es abstracta colocar el nombre en Itálica. • Muestre los atributos cuando sea necesario y suprímalos en otros contextos para referirse solo a las clases Ejemplos:
  • 79. Enumeración es una clase de tipo de dato, en la cual sus instancias puede ser cualquier número de literales definido por el usuario. B. Clase: Enumeración Lenguaje de Programación: java generación de código Ejemplo:
  • 80. 4. Relación Es un concepto abstracto que específica alguna clase de conexión entre elementos. Una relación referencia uno o más elementos relacionados. La relación no tiene semántica especifica, es decir las clases mas específicas (subclases) darán la semántica apropiada para el concepto que se represente. Notación: 1. No tiene específica notación 2. Cada específica subclase de una relación definirá su propia notación. En la mayoría de los casos la notación es una variación de una línea dibujada entre los elementos relacionados.
  • 81. 4. Relación: Generalización Es una relación binaria entre un clasificador (clase) mas general (superclase) y un clasificador (clase) mas específico (subclase). Cada instancia del clasificador específico es también una instancia indirecta del clasificador general. El clasificador específico hereda las características del clasificador mas general. Notación: Clasificador más general Clasificador más específico A B Características Características Redefinición
  • 82. 5. Asociación • Es una relación que puede ocurrir entre instancias de clasificadores. • Una asociación específica una relación semántica que puede ocurrir entre instancias de un tipo dado. • La asociación tiene al menos dos extremos representado por propiedades, donde cada extremo es conectado con el tipo del extremo. • Una asociación describe un conjunto de tuplas de las cuales los valores refieren a tipos de instancias. (Ver ejemplo)
  • 83. ¿Que Observa ? Una Instancia de una asociación es llamada enlace (link) Una asociación declara que pueden existir enlaces entre los tipos asociados 5. Asociación: Ejemplo La asociación tiene al menos dos extremos representado por propiedades, donde cada extremo es conectado con el tipo del extremo. Cuando uno o más extremos de la asociación tienen el atributo esUnico = falso, es posible tener varias asociaciones entre el mismo conjunto de instancias involucradas; En tal caso, es necesario un identificador, a parte del valor en los extremos
  • 84. 5. Asociación A. Tipos de Agregación B. Navegabilidad C. Propiedad de los Extremos Tipos de Agregación Navegabilidad Propietario de los Extremos
  • 85. A. Tipos de Agregación Compartida Composición Es una asociación, que difiere de una asociación binaria, ya que añade un diamante vacío o lleno en uno de los extremos de la asociación
  • 86. Asociación por Composición Mano 10..5 Dedo Casa Cuarto Principal: Cuarto Huésped: Cuarto Los Pérez:Casa Ejemplos Diagrama de Clases Diagrama de Objetos
  • 88. Ejemplo Diagrama de Clases Contexto: Sistema para Punto de Venta PuntodeVenta Pago Tienda CatalogodeProducto Producto Venta
  • 89. Ejemplo Diagrama de Clases (Cont...) Contexto: Aplicación GPS
  • 90. B. Navegabilidad Navegabilidad significa instancias participantes a través de enlaces en tiempo de ejecución. Una asociación marcada con una flecha de navegación significa que La Asociación es navegable en la dirección de aquel extremo. El mecanismo preciso en el cual el acceso entre instancias es específico de la implementación. :Lapicero :Cuaderno
  • 91. B. Navegabilidad (cont..) En UML, no navegable significa que el acceso puede o no ser posible o incluso no ser eficiente. Everest: Montaña Alpinista: José
  • 92. Una asociación con ningún extremo marcado por las flechas de navegación significa que: -La asociación es navegable en ambas direcciones. -La navegabilidad no esta específicada. - Cada extremo de la asociación es de propiedad del clasificador en el extremo opuesto. B. Navegabilidad (cont…) A B Extremo A Extremo B
  • 93. 1. El par AB muestra la asociación binaria con dos extremos navegables 2. El par CD muestra la asociación binaria con dos estremos no navegables. 3. El par EF muestra la asociación binaria con navegabilidad no especificada. 4. El par GH muestra la asociación binaria con un extremo navegable y el otro no-navegable. 5. El par IJ muestra una asociación binaria con un extremo navegable y el otro con navegabilidad no especificada Asociación Binaria - Ejemplos
  • 94. Aquellas asociaciones que no explicitamente nombradas y estan dados los nombre en los extremos se construye de acuerdo a la siguiente regla de producción: "A_" <nombre del extremo de la asociación 1> "_" < nombre del extremo de la asociación 2 > Convenciones en nombre de asociaciones
  • 95. La propiedad del extremo de una asociación será del clasificador asociado y puede ser indicado gráficamente por un circulo pequeño relleno, que podrá ser visto como un punto. C. Propiedad de los Extremos A B Extremo A Extremo B Asociación Binaria AB El ejemplo muestra que el extremo A, es propiedad del Clasificador B
  • 96. Notación utilizada en los extremos de las asociaciones • Multiplicidad { 0 | 1 | 0..* | 0..1 | 1.. | 1..* } • Restricciones Una propiedad especificada entre llaves { } 1. Sub-Conjunto <Nombre de la Propiedad> La restricción {subconjunto en el extremo A} significa que el extremo de la asociación en el cual la restricción es aplicada es una especialización de extremo de la asociación (extremo Libreta de Dirección) que es parte de la asociación que esta siendo especializada. Ejemplo:
  • 97. • Restricción Redefinir (Redefine) Extremo Esta restricción significa que el extremo de la asociación en el cual la restricción es aplicada, indica que esta parte de la asociación esta especializada. Ejemplo Notación utilizada en los extremos de las asociaciones (cont…) Triciclo Rueda {redefine vehículo}
  • 98. 1. Si el extremo de una asociación no esta etiquetado, el nombre por defecto para el extremo es el nombre de la clase al cual el extremo es unido, modificado de forma tal que la primera letra es una minúscula. 2. Por convención, los extremos de asociaciones no navegables están frecuentemente no etiquetadas (no es necesario referirla explícitamente textualmente). BA ba Notación utilizada en los extremos de las asociaciones (cont…)
  • 99. • Es una declaración de una relación semántica entre clasificadores. • Es tanto una clase, como una asociación • Tiene un conjunto de características que son propias. • Comparten al igual que una clase la misma especificación de características, restricciones y semántica • La clase Asociación es un tipo de Clase 5. Asociación: Clase Asociación
  • 101. • Una especificación de instancia en la cual el clasificador es una asociación que se representa como un enlace y se muestra usando la misma notación como para una asociación. Aspectos a Considerar: – No es necesario mostrar el nombre de la instancia si es clara la conexión a la mísma. – Los nombres en los extremos pueden adonarlos. Las flechas se pueden mostrar, pero si se muestran deben ser de acuerdo con la navegación de los extremos de la asociación. Luis: Persona José: Persona padre hijo 5. Asociación: Enlace entre Instancias
  • 102. Es una relación taxonomica entre un clasificador más general y uno más específico Figura Geométrica Triangulo RectánguloCuadrado 5. Asociación: Herencia
  • 103. 6. Operación • La Operación es una característica que declara un servicio que puede ser llevado a cabo por instancias de clasificadores del cual ellas son instancias. • El método es la implementación de la operación.
  • 104. Diagrama de Operación Operacion +operación +Parámetro Formal 0..1 {subconjunto espacio de nombre} {redefine Parámetro Formal} * +pre Contexto +pre condición {sub conjunto contexto, sub conjunto espacio de nombre} 0..1 {sub conjunto reglas del dueño}* +post Contexto +post condición 0..1 {sub conjunto Reglas del Dueño}* +Cuerpo del Contexto +Condición del Cuerpo 0..1 {sub conjunto Reglas del Dueño} 0..1 +/tipo 0..1 + Excepción alcanzada +Operación redefinida {redefine Excepciones Alcanzadas} * * Parametro Restriccion Tipo {sub conjunto contexto, sub conjunto espacio de nombre} {sub conjunto contexto, sub conjunto espacio de nombre} * * *
  • 105. 7. Característica Estructural Es una característica que específica la estructura de instancias del clasificador. Es una metaclase abstracta, es decir es una clase cuya instancia son clases y sus métodos son abstractos. Los métodos abstractos son aquellos que no tienen un cuerpo en la clase abstracta en la que son definidos. La especialización de la característica estructural es la Propiedad
  • 106. 8. Propiedad Es una característica estructural - Es un valor nombrado denotando una característica de un elemento con un impacto semántico. Atributo: Es una característica estructural de un clasificador que caracteriza instancias del clasificador.
  • 107. Es un tipo Enumerado con los siguiente valores literales: • Publico (+): Es un elemento visible a todos los elementos que pueden acceder al contenido del espacio de nombre al que pertenece. • Privado (-): Es un elemento que solo es visible dentro del espacio de nombre que pertenece. • Protegido (#): Es un elemento visible que tiene una relación de generalización en el espacio de nombre en el que pertenece. • Paquete (~): Es un elemento visible a todos los elementos que estén en el mismo paquete. 9. Tipos de Visibilidad
  • 109. Ejemplo Diagrama de Clases (Aplicación GPS)
  • 111. Receso
  • 112. Ejercicio 7 Actividad Individual: Una agencia matrimonial que se dedica a emparejar personas de diferente sexo, quiere informatizar su gestión de manera que se tiene una base de datos de personas que quieren encontrar pareja, con sus datos personales y sus preferencias. Se lleva un histórico con las citas concertadas entre los clientes, con control de fecha, lugar y un histórico de los matrimonios resultados de los emparejamientos realizados. Realizar un diagrama de clases que represente los objetos del dominio del problema y sus relaciones. Tiempo Estimado: 15 minutos
  • 113. Resumen: Diagrama de Clases (ontología)
  • 114. Ejercicio 8 Actividad Individual: Elabore un diagrama de clases para el acta arbitral de un partido de fútbol (alineación, goles, tarjetas, expulsiones, sustituciones ...) Tiempo Estimado: 10 minutos
  • 115. Paquetes de Clases Es un Paquete cuyos elementos de modelo son clases o incluso paquetes. Ejemplo: En java los paquetes tienen extensión .jar y dentro de el tiene varios archivos con extensión .class Operaciones: • Merge • Import (Paquete público) / access (paquete privado)
  • 116. Ejemplo de Importación de Paquetes Los elementos de los Paquetes Auxiliar y Tipo son importados en el paquete Carrito de Compra, y los elementos importado desde el paquete Tienda Web solo pueden acceder a los elementos del Paquete Tipo y no a los elementos del Paquete Auxiliar
  • 117. Vista Conceptual del merge entre Paquete Nótese, que el Paquete B es redefinido (especializado) a partir del Paquete B
  • 118. Modelo Conceptual Es un modelo que identifica los elementos de modelo para un dominio de negocio y/o problema, en un nivel de abstracción suficiente de forma que comunique sin ambigüedad a todos los involucrados el ámbito sobre el cual aplica el sistema.
  • 119. Ejemplo: Modelo Conceptual Modelo de Dominio: Sonido Display
  • 120. Ejemplo: Modelo Conceptual (Cont…) Modelo de Dominio: Sonido Display
  • 121. Ejemplo: Modelo Conceptual (Cont…) Modelo de Dominio: Sonido Display
  • 122. Ejemplo: Modelo Conceptual Modelo de Dominio: Banca
  • 123. Ejemplo: Modelo Conceptual Modelo de Dominio: Transporte de Valores
  • 124. Ejercicio 8 Actividad Individual: Elabore el modelo conceptual del negocio de su organización Tiempo Estimado: 20 minutos
  • 125. Element Relationship Directed Relationship +/propietario 0..1{union} +/owned Element {union} Comment +owned Comment 0.1 {subsets owned Element} * Element +/related Element {union} 1..* Comment Body: String +anntated Element * +/target 1..* {union, Subsets related Element} {union, 1..* Subsets related Element} +/source Metamodelo de UML (Resumen)
  • 128. Taxonomía de los diagramas en UML Diagramas Diagramas de Estructura Diagramas de Comportamiento Diagrama de Clase Diagrama de componentes Diagrama de Composición de Estructuras Diagrama de Despliegue Diagrama de Paquete Diagrama de Objeto 1 3 Día en que se realizara la Capacitación Diagrama de Maquinas de Estados Diagramas de Actividad Diagrama de Casos de Usos Diagramas de Interacción Diagrama de Secuencia Diagrama de Interacción de Información General Diagrama de Colaboración Diagrama de Tiempo 12 3 2
  • 129. Objetivos del día 2 Generar transferencia de conocimiento a los integrantes del curso, en cuanto a los siguientes elementos: 1. Reforzar conocimientos en el Modelado con Diagrama de Clases y modelado de dominio del negocio. 2. Modelar Diagramas de Actividades. 3. Modelar Diagramas de Estados.
  • 130. Agenda (Día 2) 1. Repaso de Diagrama de Clases. Ejercicio – Duración: 8:30 AM – 10:00 AM Receso 2. Definición de Diagrama de Actividades – Duración: 10:15 AM – 10:20 AM 3. Perspectivas en Niveles de Diagrama de Actividades – Duración: 10:15 AM – 10:20 AM 4. Paquetes para Diagrama de actividad – Duración: 10:20 AM – 10:25 AM 5. Elemento de modelo utilizados – Duración: 10:20 AM – 12:00 PM 6. Ejemplos - Duración: 12:00 AM – 12:30 PM Almuerzo 7. Ejercicios Diagrama de Actividades – Duración 02:00 PM – 02:30 PM 8. Diagramas de Estados – Duración 02:30 PM – 03:15 PM Receso 9. Ejercicios Diagramas de Estados – Duración 03:30 PM – 05:00 PM
  • 131. Repaso de Diagrama de Clases
  • 132. Caso: Modelado del Dominio Ejercicio: • Seleccione un proyecto en curso y genere el Modelo de Dominio. • Compare el modelo de dominio generado con el modelo del día anterior. • ¿ Qué puede comentar ?
  • 133. Ejercicio:• A partir del siguiente ejemplo complete, corrija y extienda el siguiente Modelo Conceptual. Incluya asociaciones (nombre en los extremos, nombre de la asociación, cadinalidad); caracterice las Entidades y/o identifique operaciones que desde su punto de vista impacten el modelo. – Palabras Claves: Aduana, Cadivi, Importador
  • 134. Receso
  • 136. Contexto El modelamiento de Actividad enfatiza la secuencia y condiciones para coordinar comportamiento de bajo nivel. Las acciones coordinadas en los modelos pueden ser iniciada porque otras acciones finaliza la ejecución.
  • 137. Contenido (Diagrama de Actividades) 1. Definición 2. Perspectivas en Niveles del Diagrama de Actividad 3. Paquetes para Diagrama de actividad 4. Elemento de modelo utilizados 5. Ejemplos 6. Ejercicios
  • 138. Definición Un diagrama de actividad es un modelo usado para visualizar el comportamiento de un sistema, y la manera en que éste comportamiento está relacionado con un flujo global del sistema.
  • 139. Nivel de Actividades Fundamental Nivel de Actividades Básica Nivel de Actividades Intermedia Nivel de Actividades Completa Nivel de Actividades Extra Estructuradas Nivel de Actividades Estructuradas Completas Define las Actividades las cuales Incluyen acciones. Se incluye control de secuencias y flujo de datos entres acciones. Modelamiento de Diagramas de Actividades que incluye control concurrente y flujos de datos (similar a Redes de Petri). Incluye constructores para extender modelo de bajo nivel, tales como peso a arcos y streaming. Este nivel añade soporte de modelamiento de los tradicionales lenguajes de programación. Este nivel añade soporte a flujo de datos con salida de secuencias de pins. Este nivel añade soporte al manejo de excepciones. Niveles para el Diagrama de Actividad Nivel de Actividades Estructuradas
  • 140. Perspectiva de Paquetes de los Niveles de los Diagrama de Actividad
  • 141. Diagrama de Actividad – Elementos de Modelado 1. Acción: acción con pin de salida y acción con pin de entrada, acción con parámetro de salida de excepción y agrupación de parámetros. 2. Actividad: arcos y actividad parametrizada. 3. Enviar Señal de Acción 4. Aceptar Evento para Acción 5. Nodo Objeto: nodo objeto de almacén de Datos y nodo de buffer Central. 6. Nodo de Control: nodo inicial, nodo de flujo final, nodo final, nodo decisión, nodo bifurcación, nodo unión y nodo combinar. 7. Conectores 8. Partición de Actividades 9. Región de Actividad Interrumpible
  • 142. 1. Acción Es la unidad fundamental de especificación de comportamiento que representa alguna transformación o procesamiento en el sistema modelado. Una acción toma un conjunto de entradas y las convierte luego en un conjunto de salidas, aunque una o ambas puede estar vacías. Las acciones están definidas para aceptar eventos, incluyendo invocación de operaciones, recuperación de valores en propiedad de un objeto, difusión de señales, creación y destrucción de objetos. Es una vía de comunicación asíncrona
  • 143. 1. Acción (cont…) Las acciones representan un simple paso dentro de una actividad. La Actividad representa un comportamiento que es compuesto por elementos individuales que son acciones. Ejemplo:Notación: Descripción del comportamiento de la acción
  • 144. • Pin Un pin es un elemento de un tipo y multiplicidad que proporciona valores a las acciones y acepta los valores resultantes de la misma. Un representa la entrada o salida de una acción. Clases de Pin: – Pin de Entrada: Es un pin que contiene los valores de entrada a ser consumidos por la acción. • Existe un tipo de Pin denominado “Pin Valorado” el cual proporciona un valor para la evaluación de una especificación, de modo de tener la forma más básica de insumos en las acciones – Pin de Salida: Es un pin que mantiene los valores de salida producidos por una acción
  • 145. • Pin (cont…) Pin de salida Notación para pin independiente: El pin de entrada y el pin de salida tienen el mismo nombre y el mismo tipo Pin de entrada
  • 146. • Clase especial de pin • Parámetros de Streaming (reflejado con {STREAM}): Acepta o proporciona uno o mas valores mientras la acción se esta ejecutando • Parámetros de Salida con Excepción (reflejado con un triángulo) – Provee valores para la exclusión de cualquier parámetro de salida o control de salida de la acción. – La acción debe ser inmediatamente terminada Estilo Independiente
  • 147. • Clase especial de pin (cont...) • Conjunto de Parámetros – Grupo de parámetros – La acción solo puede aceptar entradas de los pines en uno de los conjuntos. – La acción solo puede proporcionar salidas de los pines a alguno de los conjuntos. • Pin Valorado: Clase especial de pin de entrada definido para proporcionar valores constantes (el tipo específicado debe ser compatible con el tipo del valor del pin). π Computar área de circunferencia3.14 Radio value La Salida es proporciona solo para el primero o para el segundo conjunto.
  • 148. • Modelo para el PIN Básico (Resumen)
  • 149. 2. Actividad Una especificación que coordina la ejecución de comportamientos subordinados (en las cuales los elementos primitivos son acciones individuales), usando un control y modelo de flujo de datos. El Flujo de Ejecución es modelado como nodos de actividad conectados por arcos. Notación: Un nodo puede ser la ejecución de un comportamiento subordinado, tales como: calculo aritmético, una invocación de una operación o simplemente la manipulación del contenido de un objeto
  • 150. • Actividades La especificación de actividades permite varios hilos de control ejecutándose a la vez y sincronizándose con mecanismo de control para asegurar que las actividades se ejecuten en el orden especificado.
  • 151. • Parámetro para Nodo Actividad Un parámetro para nodo actividad es un nodo objeto para entrada y salida en actividades. Notación: Ejemplo: Nombre parámetro Nombre parámetro Nombre parámetro Parámetro de Salida Nodo Actividad ArcoParámetro de Entrada
  • 152. • Pre & post condiciones • Puede ser referido a una actividad o a una acción (condición local) • UML intencionalmente no específica cuando las pre/post condiciones son probadas (tiempo de diseño, tiempo de ejecución, etc.) • UML también no define que efecto en tiempo de ejecución o que recomendación dar en caso de una falla en una pre/post condición (error que detiene la ejejcución, advertencia, sin acción)
  • 153. • Pre & post condiciones (cont...)
  • 154. 3. Enviar Señal de Acción (SendSignalAction)  Una Señal es la especificación de un estimulo asíncrono que dispara una reacción en el receptor en una forma asíncrona y sin respuesta.  El objeto receptor maneja la señal como está especificada para su recepción.  Crea una instancia señal a partir de sus entradas y la transmite al obejto destino (local o remoto)  Cualquier respuesta es ignorada. Notación: Ejemplo:
  • 155. 4. Aceptar Evento para Acción (AcceptEventAction) Espera por la ocurrencia de un evento en las condiciones específicada Existen dos clases de Aceptar Evento para Acción: • Aceptar Evento para acción – Acepta la señal del evento generado Aceptar evento para acción Sin Arcos entrantes Con Arcos entrantes Esta Acción permanece habilitada después de aceptar un evento
  • 156. • Aceptar Evento para Acción (Continuación) Espera por la ocurrencia de un evento en las condiciones específicada Existen dos clases de Aceptar Evento para Acción: • Esperar acción de tiempo– Acepta evento de Tiempos El Objeto Personal almacenado es solo recuperado cuando nodo unión (join) es exitoso (solo una vez al año) Espera acción de tiempo
  • 157. • Disparadores de Tiempo y eventos de Tiempo  Un disparador de tiempo es un disparador que específique cuando un evento de tiempo puede ser generado.  Eventos de Tiempo ocurre en el instante cuando es específicado.  Los tiempos pueden ser relativo o absoluto – Disparador de Tiempo Relativo: es especificado con la clave ‘after (después)’ seguido por una expresión que evalua a un valor de tiempo. – Disparador de Tiempo Absoluto: es especificado como una expresión que evalua un valor de tiempo. 1-Ene-2011, medianocheDespués (5 segundos) Disparador de tiempo relativo Disparador de Tiempo Absoluto
  • 158. Nodo Actividad • Corresponden al flujo de ejecución de la Actividad • Los Nodos Actividad también incluye flujo de control, tales como sincronización, decisión y control de concurrencia.
  • 159. • Nodo Actividad (Cont…) El Nodo Actividad se especializa en: – Nodos Objetos – Nodos de Control
  • 160. 5. Nodo Objeto • Un nodo Objeto es un nodo actividad que parte de una definición de objeto de flujo en una actividad. • Un arco de Objeto de Flujo es un arco usado para mostrar flujo de datos de objetos y testigos de datos entre nodos acción. Características – Mantienen data temporalmente mientras se espera mover a través del gráfico. – Específico tipos de valores pueden mantener (si el tipo no específicado, ellos pueden mantener valores de cualquier tipo) . – Puede mantener el estado del objeto mantenido Ejemplo: Notación
  • 161. 5. Nodo Objeto (cont…) Pins (Tres notaciones distintas) Parámtero para nodo Actividad Nodos de Buffer Central Nodos para Almacén de Datos Existen cuatro clases de Nodos Objetos Es un nodo objeto que gestiona flujos desde multiples fuentes y destinos Es un específico nodo de buffer central El cual almacena objetos persistentemente.
  • 162. 6. Nodo de Control • Un nodo de Control, es un nodo actividad abstracto que coordina los flujos entre otros nodos. Este abarca el nodo inicial, nodo final, nodos de bifurcaciones, nodos unión, nodos decisión y nodos merge. Notación: Ejemplo:
  • 163. Nodo Control– nodo inicial • En una actividad el flujo inicia con el nodo inicial, el cual retorna el control con el arco de salida. • Si hay más que un nodo inicial, un testigo de control es colocado en cada nodo inicial cuando la actividad es iniciada, iniciando múltiples flujos.
  • 164. Nodo Control– nodo decision • Enruta el flujo a uno de los arcos salientes (los testigos no son duplicados) • Las condiciones o guardas son específicas al arco saliente o con el estereotipo «Estrada de decision» • Existe una predefinida condición o guarda [sino] seleccionada solo si el token no es aceptado por los otros arcos. • Si todas las condiciones o guardas fallas, el testigo permanece en el nodo objeto origen hasta que la condición o guarda sea aceptada.
  • 165. Nodo Control– nodo combinar (merge) • Reunir múltiples flujos alternativos. • Todos los controles y datos que llegan al nodo combinar (merge) son inmediatamente pasados al arco saliente. • No existe sincronización de flujos o uniones de testigos.
  • 166. Nodo Control–nodo bifurcación (fork) • Nodo bifurcación (fork) divide el flujo en múltiples flujos concurrentes (los testigos son duplicados). • La actividad se bifurca en un modelo de paralelismo sin restricciones.
  • 167. Nodo control – nodo unión (join) • El nodo unión (join) sincroniza múltiples flujos. • Generalmente, controles o datos deben estar disponible en todos los arcos entrantes de modo de ser pasado al arco saliente, pero los usuarios pueden específicar diferentes condiciones bajo el cual una unión (join) acepta controles y datos de entrada usando una específicación unión (join)
  • 168. Nodo Control– nodo final • Flujo final: – Destruye los testigos que llegan al nodo – La actividad es terminada cuando todos los testigos en el gráfico están destruidos. • Nodo Final: – La actividad es terminada cuando el primer testigo llega. Carrera Intencional entre flujos
  • 169. 7. Conectores - Arcos (activity edges) • Un arco puede ser simbolizado usando un conector. • Todos los conectores con una etiqueta dada, deben tener otro con el mísmo nombre en el mísmo diagrama de actividad. es equivalente a
  • 170. 9. Partición de Actividades • Es una clase de actividad de grupo para identificar acciones que tengan características en común. • Mecanismo para organizar actividades de bajo nivel de acuerdo a varios criterios. • Las particiones divide los nodos y arcos para identificar acciones que tienen características en común • Ellos frecuentemente corresponde a las unidades organizacionales en un modelo de negocio. • Las Particiones pueden ser jerárquicas y multidimensional. • Notación adicional es provista: Colocar el nombre de la partición en paréntesis sobre el nombre de la actividad.
  • 171. Partición de Actividades (cont...) Observe el primer y segundo Modelo de Actividad
  • 172. 10. Región de Actividad Interrumpible • Es una actividad de grupo (conjunto de nodos y arcos) que soportan la terminación del testigo. • Cuando un testigo deja una región interrumpible vía un arco de interrupción, todos los testigos y comportamientos en la región son terminados. • Transferir un testigo es aún atomico: Una transición del testigo nunca es parcial; o es completa o no sucede Arco de Interrupción Notación:
  • 174. Ejemplos de Diagramas de Actividades
  • 175. Ejemplo 3 Se tiene un proceso de solicitud de servicio. El cliente realiza la solicitud de un servicio, el vendedor pregunta si es cliente nuevo, en caso de serlo le pide sus datos y los registra. Luego pide los datos del servicio, indica el plan de tarifas y los indica al cliente. En caso de ser aceptada por el cliente, el vendedor programa servicio. Realice un Diagrama de Actividad para el caso planteado
  • 177. Ejemplo 4: Uso de Conectores
  • 178. Ejercicio 1 • Genere un Diagrama de Actividad del Caso de Uso Comprar Producto
  • 179. Ejercicio 2: ¿Qué significa este diagrama ?
  • 180. Ejercicio 3: De la especificación de Casos de Usos a un Diagramas de Actividad Nombre UC-01. Añadir Nuevo Enlace Precondición No Secuencia Principal 1. El visitante selecciona la opción añadir nuevo enlace 2. El Sistema solicita la información del nuevo enlace 3. El Usuario introduce la información del enlace 4. Sistema almacena el nuevo enlace Secuencia Alternativa 2.1 Si sucede un error recuperando las categorías o no se encuentra ninguna categoría, el sistema muestra un mensaje de error y este caso de uso termina. 3.1 En cualquier momento el usuario puede cancelar la operación y este caso de uso termina 3.2 Si los datos no son correctos, el sistema muestra un mensaje de error y se repite el paso 2 4.1 Si sucede un error almacenando el enlace, el sistema muestra un mensaje de error y este caso de uso termina Post -Condición El nuevo enlace se almacena en el sistema.
  • 181. Ejercicio 4: Casos de Usos y Diagrama de Actividades • Identifique los casos de uso de la operación del negocio de Alquiler de Salas para Conferencia. • Genere el Diagrama de Actividad del caso de uso indicado por el instructor • Genere un Diagrama de Actividad para la operación del negocio de Alquiler de Salas para Conferencia. (caso de uso: Usar sala)
  • 182. Ejercicio 5 • Elabore un Diagrama de Actividad del Caso de Uso Dictar Curso
  • 183. Ejercicio 6 • Un Gerente de Proyecto requiere modelar un diagrama de actividad de Instalación y Configuración de Servidores a los programadores y desarrolladores, de modo que evidencie que la misma es realizada por ambos.
  • 184. Ejercicio 7 • Elabore un Diagrama de Actividad del Caso de Uso: Trabajar con hijos
  • 185. Receso
  • 187. Los Diagramas de Estado en UML son usados para Modelar la dinamica de los objetos. El objeto es modelado como una maquina de Estado - Una maquina de estado es un modelo que especifica las secuencias de estados que un objeto puede recorrer durante su existencia. DIAGRAMA DE ESTADO
  • 188. - Los cambios de estado obedecen a eventos u operaciones que ocacionan la transición entre estados. - El Diagrama de Estado modela los diferentes estados de un objeto de negocio o sistema. DIAGRAMA DE ESTADO (Cont…)
  • 189. • Estado • Evento • Diagrama de Estado • Transición Contenido (Diagrama de Estado)
  • 190. Estado Es una condición o situación durante el ciclo de vida de un objeto en el cual se satisface alguna condición, se lleva a cabo alguna actividad o se espera por algún evento.
  • 191. Evento Es la especificación de una significante ocurrencia que una localización en tiempo y espacio y puede causar la ejecución de un comportamiento asociado. En el contexto de diagrama de estados, un evento es una ocurrencia que puede desencadenar una transición.
  • 192. Diagrama de Estado Un diagrama de estado describe todos los posibles estados de un objeto y las rutas para obtener desde un estado a otro cuando un evento externo es recibido.
  • 193. Transición Es la relación entre dos estados y se encuentran unidos por flechas; indicando que un objeto que está en el primer estado realizará una acción especificada y entrará en el segundo estado cuando un evento implícito ocurra y unas condiciones especificas sean satisfechas.
  • 194. Notación usada en el diagrama de maquina de estado • Estados se muestran como cajas con con los bordes redondeados • El nombre del estado se recomienda ser simple, pero descriptivo, por lo general en tiempo presente. • Ejemplos: En la Plataforma En Préstamo
  • 195. Transiciones entre estados • Una transición es una relación entre dos estados – Un movimiento entre estados en respuesta a algún evento sobre el objeto – Indica que un objeto en el primer estado podría cuando es especificado un conjunto de eventos y condiciones satisfechas, llevar a cabo ciertas acciones y entrar en el segundo estado – Mostrar una línea sólida con una flecha en un extremo apuntando al próximo estado – La ocurrencia de un evento que desencadene la transición de estado – La transición es etiquetada para mostrar el evento que causo la transición. En Disponibilidad En Préstamo prestar() retornar()
  • 196. Transiciones a si mísma • Una transición a si misma es una transición en el origen y el estado destino es el mismo. En préstamo renovar()
  • 197. Marcadores de Inicio y Parada • Marcador de Inicio – Pueden existir cero o un estado inicial en un diagrama. • Marcador de Parada – Pueden ser cero o más estados finales.
  • 200. Ejemplo 3 Espera Proceso end end start stop
  • 202. Ejercicio Genere un Diagrama de Estado para una sala de cines.
  • 203. Relación entre Diagrama de Actividades y Diagrama de Estados DIAGRAMA DE ACTIVIDAD (Comportamiento dinámico del sistema) __________________________________ DIAGRAMA DE ESTADO (Cambios de estado de Objetos en el sistema)
  • 205. Taxonomía de los diagramas en UML Diagramas Diagramas de Estructura Diagramas de Comportamiento Diagrama de Clase Diagrama de componentes Diagrama de Composición de Estructuras Diagrama de Despliegue Diagrama de Paquete Diagrama de Objeto 1 3 Día en que se realizara la Capacitación Diagrama de Maquinas de Estados Diagramas de Actividad Diagrama de Casos de Usos Diagramas de Interacción Diagrama de Secuencia Diagrama de Interacción de Información General Diagrama de Colaboración Diagrama de Tiempo 12 3 2
  • 206. Objetivos del día 3 Generar transferencia de conocimiento a los integrantes del curso, en cuanto a los siguientes elementos: 1. Modelar Diagramas de Despliegue. 2. Modelar Diagramas de Secuencia. 3. Practicar los diagramas de UML a través de un Caso de Estudio 4. Conocer las Tendencias alrededor de UML.
  • 208. Agenda (Día 3) 1. Diagramas de Despliegue – Duración: 8:30 AM – 10:00 AM Receso 2. Diagrama de Despliegue – Duración: 10:15 AM – 10:40 AM 3. Ejercicios de Diagramas de Secuencia – Duración: 10: 40 AM – 12:00 AM Almuerzo 4. Ejercicios Diagrama de Secuencia – Duración 02:00 PM – 02:30 PM 5. Caso de Estudio – Proyecto - – Duración 02:30 PM – 03:00 PM Receso 6. Caso de Estudio – Proyecto - Duración 03:15 PM – 05:00 PM 7. Tendencias en UML - Duración 04:45 PM – 05:00 PM
  • 209. Contenido (Diagrama de Despliegue) 1. Artefacto 2. Abstracción 3. Materialización 4. Definición 5. Características de un Diagrama de Despliegue 6. Nodo 7. Estereotipo de un Nodo 8. Tipos de Nodo 9. Despliegue 10. Instancia de un Nodo 11. Artefacto Desplegado 12. Especificación de Despliegue 13. Rutas de Comunicación (Asociación) 14. Uso de Paquetes en Diagramas de Despliegue 15. Ejemplos (correctos e incorrectos) 16. Ejercicios
  • 210. Artefacto Un artefacto es un producto generado a través de un proceso de desarrollo de software (ejemplo modelos de Casos de Uso, modelos de Diseño, etc.), archivos fuente, ejecutables, documentos de diseño, reportes de prueba, prototipos, manuales de usuario y más. Un artefacto se denota por un rectángulo mostrando el nombre del artefacto, el estereotipo «artefacto» y un icono de documento, como a continuación.
  • 211. Abstracción Una abstracción es una relación que refiere a dos elementos o conjuntos de elementos que representan el mismo concepto en diferentes niveles de abstracción o en diferentes puntos de vista. Ejemplo: Empleado RegistroEmpleado <<refine>>
  • 212. Materialización Es la física representación concreta de uno o más elementos de modelo por un artefacto. Esto es, aquellos elementos de modelo que son utilizados en la construcción (o generación) del artefacto.
  • 213. Artefactos (Resumen - Elementos de modelo relacionados)
  • 214. Definición Un Diagrama de Despliegue modela la arquitectura en tiempo de ejecución de un sistema. Esto muestra la configuración de los elementos de hardware y donde los artefactos del software se ubican. La colección de elementos de modelos para el paquete despliegue, se considera suficiente para la mayoría de las aplicaciones modernas.
  • 215. Características de un Diagrama de Despliegue • Es una vista estructural del sistema. • Captura la topología de un sistema de hardware. • Representa una vista de arquitectura de software, de acuerdo al modelo 4+1 de Kruchten. • Su propósito es especificar la distribución de componente.
  • 216. Nodo Un Nodo es un elemento de modelo que representa hardware o software. Esto se muestra con la forma de una caja en tres dimensiones. Ejemplo:
  • 217. Nodo (cont…) • Un conjunto de artefactos pueden residir en un nodo y pueden ser movido de nodo en nodo • Los Nodos están conectados a través de rutas de comunicación para crear sistemas en redes de arbitraria complejidad.
  • 218. Estereotipo de un Nodo Son especializaciones establecidas a nodos, en función de su comportamiento y semántica. Existen varios estereotipos estándar los cuales se mostrarán con un icono apropiado en la esquina derecha arriba del símbolo nodo. Ejemplos:
  • 219. Tipos de Nodos Tipo Descripción Estereotipo Dispositivo Un dispositivo es recurso físico computacional con capacidad de procesamiento sobre el cual los artefactos pueden ser desplegados para ejecución. <<Device>> Entorno de Ejecución Es un nodo que ofrece entorno de ejecución para ciertos tipos de componentes que son desplegados en la forma de artefactos ejecutables <<ExecutionEnvironment>>
  • 220. Ejemplo de Nodos Dispositivo y Entorno de Ejecución
  • 221. Despliegue El Despliegue es una especificación de un conjunto de elementos de modelo que pueden ser usado para definir la ejecución de un sistema y representa la asignación de artefactos de software a nodos. Se conoce como despliegue meta a la localización de un artefacto desplegado.
  • 222. Instancia de un Nodo Una instancia de nodo se puede mostrar en un diagrama. 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. Una instancia puede o no tener un nombre antes de los dos puntos. El siguiente diagrama muestra una instancia nombrada de una computadora.
  • 223. Artefacto Desplegado • Es un artefacto que se encuentra en un despliegue meta. • En General, un componente desplegado es el despliegue de uno o mas artefactos en un despliegue meta, opcionalmente parametrizado por una especificación de despliegue (ej. archivos de configuración). • El estereotipo usado para indicar que el Artefacto i se despliega en el nodo j es <<deploy>>
  • 224. Artefacto Desplegado (cont…) • Un Artefacto representa un elemento concreto en el mundo físico • Una particular instancia (o copia de) es desplegada en un nodo instancia. • Los Artefactos pueden tener asociaciones de composición a otros artefactos. Ejemplo 1:
  • 225. Ejemplos de Artefactos Desplegados Ejemplo 2 Ejemplo 3 Ejemplo 3
  • 226. Especificación de despliegue • Es un mecanismo general para parametrizar una relación de despliegue, como en común en el software y hardware. • Específica un conjunto de propiedades que determinan los parámetros de ejecución de un componente desplegado. • La notación para la especificación de despliegue es gráficamente un rectángulo conectado con el artefacto desplegado a través de una flecha de dependencia. • La especificación de despliegue tiene dos atributos: – Localización del despliegue: Este es un directorio o dirección de memoria. – Localización de ejecución: Este puede ser una dirección remota o local.
  • 227. Ejemplos de especificación de despliegue Ejemplo 2Ejemplo 1
  • 228. Asociación en el contexto del diagrama de despliegue • Una asociación representa una ruta de comunicación entre los nodos. • A través de la ruta de comunicación se intercambian señales y mensajes. • Las ruta de comunicación pueden tener cardinalidad en sus extremos, así como navegabilidad
  • 229. Uso de Paquetes en Diagrama de Despliegue • El paquete como mecanismo de propósito general para agrupar elementos de modelo es aplicable a los diagrama de despliegue. • Es útil para representar diagramas de despliegue comunes en una arquitectura de ejecución de un sistema.
  • 230. Ejemplo del uso de paquetes en Diagrama de Despliegues.
  • 231. Ejemplos de Diagrama de Despliegue
  • 232. Ejemplos de Diagrama de Despliegue (cont…) 1..50 1
  • 233. Ejemplos de Diagrama de Despliegue (cont…)
  • 234. Diagramas de Despliegue incorrectos
  • 235. Diagramas de Despliegue incorrectos
  • 236. Diagramas de Despliegue incorrectos
  • 237. Receso
  • 238. Ejercicio 1 Una empresa tiene un conjunto de tiendas al detal a nivel nacional y tiene que desplegar una aplicación de punto de ventas llamada tpdv.jar; la misma es un manifiesto de los diagramas de casos de usos, diagrama de diseño detallado (clases), diagramas de actividades y diagrama de estado generado de los productos adquiridos por los clientes. Así mismo es importante saber que existe un repositorio central donde se sincroniza todas las operaciones de ventas y solicitudes de orden de compra. Desde el punto de vista tecnológico, la base de datos es Oracle 8i en toda la infraestructura; el servidor Web es IBM http Server y el de aplicaciones es IBM WebSphere. Genere un diagrama de despliegue para este sistema. Tiempo Estimado: 20 minutos
  • 239. Ejercicio 2 Lea el siguiente modelo. ¿Cómo podría enriquecerlo?
  • 241. Contenido (Diagrama de Secuencia) 1. Definición 2. Características 3. Objeto 4. Mensaje 5. Valor de Retorno 6. Mensajes Sincronos 7. Creación de Objetos 8. Destrucción de Objetos 9. Información de control 10. Fragmentos 11. Ejercicios
  • 242. Definición Un diagrama de secuencia es un modelo que muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo y se modela para cada método de la clase
  • 243. Características • Aclara como los objetos interactúan con otros objetos. • Enfatiza tiempo y orden en los mensajes. • Permite modelar simple flujos secuenciales, ramificaciones, iteraciones y concurrencia
  • 244. Objeto • Nombramiento de Objetos: – syntax: [nombredelaInstancia][:NombredelaClase] – Nombre de Clases consistentemente con el Diagrama de Clases. – Incluye nombre de instancias cuando existen varios objetos del mismo tipo en el diagrama. – La línea de vida representa la vida del objeto durante la interacción. miCumple :Fecha
  • 245. Mensajes • Una Interacción entre dos objetos es llevada a cabo como un mensaje enviado desde un objeto a otro (una operación call, señales RPC) • Si un objeto obj1 envía un mensaje a otro objeto obj2 algún enlace debe existir entre aquellos dos objetos
  • 246. Mensajes (cont…) • Un mensaje es representado por una flecha entre líneas de vida de dos objetos. – Llamadas a si mismo son permitidas. – El tiempo requerido por el objeto receptor que procesa el mensaje es denotado por una caja de activación – Un mensaje es etiquetado como mínimo con el nombre del mensaje – Argumentos e información de control (condición, iteración) puede ser incluido.
  • 247. Valores de Retorno • Opcionalmente se indica usando una flecha pespunteada con una etiqueta indicando el valor a retornar. – No modele un valor de retorno cuando es obvio que valor esta siendo retornado. Ejemplo: getTotal() – Modele un valor de retorno solo cuando tu necesitas referirlo en otra parte. Ejemplo: cuando se pasa en un parámetro de otro mensaje – Modele valores de retornos como parte de métodos de invocación, ejemplo ok=isValid()
  • 248. Mensajes Sincronos • Control de Flujo anidado, típicamente es implementado como una operación call. Esta operación es una petición al objeto destino, donde esta pueda causar la invocación de un comportamiento asociado. • La rutina que maneja el mensaje es completada antes que el llamador (caller) reanude la ejecución. :A :B hacerAlgo() Llamador Bloqueado retornar (opcional)yes
  • 249. Creación de Objetos • Un objeto puede crear otro objeto via un mensaje <<create>>. :A :B <<create>> Constructor :A <<create>> :B Preferido
  • 250. Destrucción de Objetos • Un objeto puede destruir otro vía un mensaje <<destroy>>. – Un Objeto puede destruirse a si mísmo – Evite modelar destrucción de objetos a menos que la gestión de memoria sea crítica. :A :B <<destroy>>
  • 251. Información de Control • Condición – Sintaxis: ‘[‘ expresión ’]’ mensaje en la etiqueta – El mensaje es enviado solo si la condición es verdad Ejemplo: • Iteración – Sintaxis: * [ ‘[‘ expresión ‘]’ ] mensaje en la etiqueta. – El mensaje es enviado muchas veces y a multiples receptores objetos. [ok] pedirPrestado(bibliotecario)
  • 252. Información de Control (cont…) • Ejemplo de Iteración: :Controlador *[hasta que este lleno] insertar() :Bus Esta sintaxis de expresiones no es un estándar :FiguraCompuesta :Figura *dibujar() dibujar()
  • 253. Ejemplo 1 bibliotecario: PersonalBiblioteca libro:Libro :CopiaLibro pedirPrestado(libro) ok = puedePedir() [ok] pedir(bibliotecario) tomarlo(bibliotecario)
  • 254. bibliotecario: PersonalBiblioteca book:Book :Book Copy pedirPrestado(libro) ok = puedePedir () [ok] pedir(bibliotecario) tomarlo(bibliotecraio) Eje X (objetos) EjeY(tiempo) Objeto Linea de vida mensaje Caja de Activación condición Ejemplo 2 (cont…)
  • 255. • Los mecanismos de control de los diagramas de secuencia satisfacen solo modelamiento para simples alternativas. – Considere dibujar diagramas de secuencia para modelamiento de complejos escenarios – No utilice los diagramas de secuencia para el modelamiento detallado de algoritmos (Es mejor para ello un pseudo-código, diagrama de actividad, o maquina de estados). Información de Control (cont…)
  • 256. Fragmentos Un fragmento combinado es una o más secuencias de procesos incluidas en un marco y ejecutadas bajo circunstancias nombradas específicas. Los fragmentos disponibles son: – Fragmento Alternative (alt) modela estructuras if…then…else. – Fragmento Option (opt) modela estructuras switch. – Fragmento Break modela una secuencia alternativa de eventos que se procesa en lugar de todo del resto del diagrama. – Fragmento Parallel (denotado “par”) modela procesos concurrentes.
  • 257. Fragmentos (cont…) • El fragmento de secuenciado Strict (strict) incluye una serie de mensajes que se deben procesar en el orden proporcionado. • El fragmento Negative (neg) incluye una serie de mensajes inválidos. • El fragmento Critical incluye una sección crítica. • El fragmento Ignore declara un mensaje o mensajes que no son de ningún interés si este aparece en el contexto actual. • El fragmento Consider es el opuesto del fragmento Ignore: cualquier mensaje que no se incluya en el fragmento Consider se debería ignorar. • El fragmento Assertion (assert) designa que cualquier secuencia que no se muestra como un operando de la aserción es inválida. • El fragmento Loop incluye una serie de mensajes que están repetidos
  • 261. Ejemplo 3: Caso de uso Comprar Producto en el Punto de Venta
  • 262. Ejemplo 4: Caso de Uso Realizar reintegro
  • 263. [D] Confirmación Ejemplo 5: Caso de Uso: Reservar Vuelo Persona Vuelo Consulta(p) trataConsulta(p) Horario(v) Aeropuerto Horario(v)consultaAeropuerto(v) infoaeropuerto [No D] Vuelo lleno
  • 264. imprimir(doc,cliente) Ejemplo 6: Caso de Uso: Imprimir Documento Cliente :ServidorImpresión :Cola :Impresora Proxy encolar(job) estatus job=desencolar() [job]imprimir(job.doc) [job] hecho(estatus) Repetir con intervalos de 1 min Objeto Activo
  • 265. Ejercicio • Generar Diagrama de Secuencia para el caso de uso: – Matricular Asignatura – Registrar Usuario persona natural – Retirar Efectivo de un ATM
  • 268. Caso de Estudio: 1. Seleccione un área de dominio de su organización 2. Identifique 3 (tres) casos de usos de su organización. 3. Identifique el / los objetos críticos que manejan los tres casos de usos 4. Genere el Diagrama de clases 5. Genere el diagrama de actividad por cada casos de uso 6. Genere el diagrama de secuencia por cada caso de uso 7. Genere el diagrama de despliegue, a partir de los infraestructura tecnológica de su organización
  • 270. Contenido (Tendencia en UML) 1. Abstracción 2. xUML 3. Model Driven Architecture (MDA) 4. Estado del Software 2031.
  • 273. xUML 1. UML ejecutable es un paso intermedio entre UML y MDA. 2. UML ejecutable es la mayor innovación en el campo del desarrollo de software. Esta diseñado para producir un comprensible y entendible modelo de una solución independiente de la organización de la implementación del software. Se trata de una herramienta de pensamiento muy abstracto que ayuda a la formalización del conocimiento, y también una forma de describir los conceptos que constituyen soluciones abstractas a los problemas de desarrollo de software. Fuente: Executable UML: A Foundation for Model-Driven Architecture By Stephen J. Mellor, Marc J. Balcer
  • 274. Model Driven Architecture Es un acercamiento al diseño de software, propuesto y patrocinado por el Object Management Group. MDA se ha concebido para dar soporte a la ingeniería dirigida a modelos de los sistemas de software. Fuente: http://es.wikipedia.org/wiki/Model_Driven_Architecture
  • 275. Pasos 1. Dado un modelo de definición de la plataforma (Platform Definition Model o PDM), correspondiente a CORBA, .NET, web. 2. La funcionalidad del sistema será definida en primer lugar como un modelo independiente de la plataforma (Platform-Independent Model o PIM).. 3. Traducir el modelo PIM a uno o más modelos específicos de la plataforma (Platform-specific models o PSMs) para la implementación correspondiente, usando diferentes lenguajes específicos del dominio, o lenguajes de propósito general como Java, C#, Python, etc Fuente: http://es.wikipedia.org/wiki/Model_Driven_Architecture
  • 276. Código Implementado manualmente Fuente: http://www.enterpriseanalyst.net/download/UML_Ejecutable_y_MDA.pdf
  • 277. MDA y Errores Introducidos Fuente: http://www.enterpriseanalyst.net/download/UML_Ejecutable_y_MDA.pdf
  • 278. Abstracción en el Desarrollo de Software Fuente: http://www.enterpriseanalyst.net/download/UML_Ejecutable_y_MDA.pdf
  • 279. El estado del Software 2031 • Plataformas • Lenguajes • Sistemas Operativos & Middleware • Interconectividad • Seguridad • Robótica • Experiencia en Desarrollo Fuente: http://www.scribd.com/doc/22617449/Tendencias-en- Ingenieria-de-Software-Ing-Grady-Booch
  • 280. Lenguajes • Muchos programadores aún escribirán algoritmos de librerías en el contexto de un mar de objetos • Persisten Legacy XML, Java, C++ y UML • Framework de dominio específico será la corriente principal. Fuente: http://www.scribd.com/doc/22617449/Tendencias-en- Ingenieria-de-Software-Ing-Grady-Booch
  • 283. Casos de Usos • Plantilla Documento de Casos de Uso • Ejercicio con Plantilla • Ejemplo Documentado – Empresa ACME
  • 284. Paleta de elementos para el Diagrama de Clases
  • 285. Paleta de elementos de modelo para el diagrama de despliegue