1. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 1
01/06/2021
Tipos de modelado
Unidad 2
Material docente compilado por el docente Ph.D. Franklin Parrales Bravo
para uso de los cursos de Modelamiento de Software
2. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 2
01/06/2021
Objetivo general de la Unidad 2
Caracterizar el proceso de modelado identificando
los factores claves del proceso para definir el
alcance de los proyectos de software.
3. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 3
01/06/2021
Contenido
• Modelado de procesos de
negocios
– BPM
– BPMN
– Herramientas de modelado de
procesos de negocios
• Modelado estático del
sistema
– Diagrama de clases
– Lenguajes formales de
especificación
– Lenguaje restringido a objetos
(OCL)
• Modelado del
comportamiento
– Diagramas de estado
– Diagramas de secuencias
– Diagrama de actividades
• Modelado de arquitectura
– Diagramas de componentes
– Diagramas de despliegue
• Metamodelado
– MDA/MDE/Metamodelos
– Lenguajes de Dominio
Específico (DSL)
4. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 4
01/06/2021
Fundamentals of Business Process
Management
• Accesible en: http://0-
link.springer.com.fam
a.us.es/book/10.1007/
978-3-642-33143-
5/page/1
• Más información en:
http://fundamentals-
of-bpm.org/
5. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 5
01/06/2021
Contenido
• Modelado de procesos de
negocios
– BPM
– BPMN
– Herramientas de modelado de
procesos de negocios
• Modelado estático del
sistema
– Diagrama de clases
– Lenguajes formales de
especificación
– Lenguaje restringido a objetos
(OCL)
• Modelado del
comportamiento
– Diagramas de estado
– Diagramas de secuencias
– Diagrama de actividades
• Modelado de arquitectura
– Diagramas de componentes
– Diagramas de despliegue
• Metamodelado
– MDA/MDE/Metamodelos
– Lenguajes de Dominio
Específico (DSL)
6. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 6
01/06/2021
Modelado de procesos de negocios
• Los procesos de negocio son una colección de
eventos, actividades y puntos de decisión
interrelacionados que involucran a varios actores
y objetos y que de forma conjunta llevan a un
resultado que proporciona valor para al menos un
cliente (Dumas et al. 2013).
• Los modelos de procesos de negocio (BPM) son
un instrumento para comprender y analizar las
operaciones de negocio, y para impulsar el diseño
de soluciones de tecnología de información que
soportan la ejecución de procesos de negocio.
7. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 7
01/06/2021
Ejemplos: Procesos
• Order-to-cash: Este es un tipo de proceso realizado por un proveedor, que
comienza cuando el cliente envía una orden para comprar un producto o un
servicio y termina cuando el producto o servicio en cuestión haya sido
entregado al cliente y la cliente haya realizado el pago correspondiente
• Quote-to-order: Este tipo de proceso normalmente precede a un proceso
Order-to-cash. Se inicia desde el momento en que un proveedor recibe una
"Solicitud de Cotización“ de un cliente y termina cuando el cliente en
cuestión coloca una orden de compra en base a la cotización recibida.
• Issue-to-resolution. Este tipo de proceso se inicia cuando un cliente
plantea un problema o asunto, como una queja relacionada con un defecto
en un producto o un problema se encuentra cuando se consume un
servicio. El proceso continúa hasta que el cliente, el proveedor, o
preferiblemente ambos, de acuerdo en que el problema se ha resuelto.
9. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 9
01/06/2021
Procesos y Resultados
• Todo proceso lleva a uno o varios resultados:
– Los resultados positivos producen valor
– Los resultados negativos no producen valor (o lo reducen)
• Ejemplos
– Fallo reparado sin la intervención del técnico
– Fallo reparado con intervención mínima del técnico
– Fallo reparado cubierto totalmente por la garantía
– Fallo reparado cubierto parcialmente por la garantía
– Fallo reparado no cubierto por la garantía
– Fallo no reparado
10. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 10
01/06/2021
Propósitos de modelado de procesos
Process
identification
Conformance and
performance insights
Conformance and
performance insights
Process
monitoring and
controlling
Executable
process
model
Executable
process
model
Process
implementation To-be process
model
To-be process
model
Process
analysis
As-is process
model
As-is process
model
Process
discovery
Process architecture
Process architecture
Process
redesign
Insights on
weaknesses and
their impact
Insights on
weaknesses and
their impact
10
• Comunicación
• Documentación
• Análisis (por ejemplo
simulación)
• Automatización
• Testing
Conceptual
Conceptual
Ejecutable
11. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 11
01/06/2021
Contenido
• Modelado de procesos de
negocios
– BPM
– BPMN
– Herramientas de modelado de
procesos de negocios
• Modelado estático del
sistema
– Diagrama de clases
– Lenguajes formales de
especificación
– Lenguaje restringido a objetos
(OCL)
• Modelado del
comportamiento
– Diagramas de estado
– Diagramas de secuencias
– Diagrama de actividades
• Modelado de arquitectura
– Diagramas de componentes
– Diagramas de despliegue
• Metamodelado
– MDA/MDE/Metamodelos
– Lenguajes de Dominio
Específico (DSL)
12. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 12
01/06/2021
Business Process Model and Notation
(BPMN)
• OMG standard (nowadays BPMN 2.0)
• Soportado por muchas herramientas:
bpmn.org existen mas de 70 herramientas
• Valido para modelos conceptuales y
ejecutables
13. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 13
01/06/2021
Lecciones aprendidas
Tecnologías de
la Información
Cambio
Proceso
Proporciona
Proporciona
Valor de Negocio
Index Group (1982)
Permite
14. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 14
01/06/2021
BPMN
• BPMN viene de Business Process
Modeling Notation (Notación para el
Modelado de Procesos de Negocio).
• Es un estándar de representación gráfica
de procesos de negocio
• Pretende ser un lenguaje accesible tanto
para desarrolladores como para clientes y
directivos. http://www.bpmn.org/
15. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 15
01/06/2021
Tres niveles de BPMN
• Nivel 1 (Modelado descriptivo): Usa un
subconjunto reducido de elementos de
BPMN y su objetivo es facilitar la definición
de un proceso.
• Nivel 2 (Modelado analítico): Usa toda la
expresividad de BPMN para describir el
proceso de negocio de forma precisa,
incluyendo manejo de excepciones.
• Nivel 3 (Modelado ejecutable): Orientado a la
implementación del proceso de negocio.
15
18. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 18
01/06/2021
Convenciones de nombres
• Actividades: VERBO + NOMBRE (Primera letra
mayúsculas)
– Aprobar orden
• Eventos: NOMBRE + PARTICIPIO (Primera letra
mayúsculas)
– Factura emitida
• Procesos: NOMBRE + ADJETIVO (Minúsculas)
– Gestión de pagos
• Evitar nombres muy largos (< 5 palabras)
• Evitar verbos genéricos (ej. Hacer)
19. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 19
01/06/2021
BPMN…..
• Un modelo de procesos BPMN consiste de
un gráfico de cuatro tipo de elemento :
activity gateway
event sequence
flow
start end
20. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 20
01/06/2021
An order-to-cash: El proceso se desencadena
por la recepción de una orden de compra de
un cliente. Tras la recepción de la orden de
compra se revisa la disponibilidad de stock
para determinar si el artículo solicitado puede
ser atendido. Dependiendo de la disponibilidad
la orden de compra puede ser confirmada o
rechazada. Si el pedido es confirmado, una
factura se emite y los productos solicitados se
envían. El proceso se completa mediante el
archivo de la orden o si el pedido es
rechazado.
Empezaremos el modelado
21. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 21
01/06/2021
• An order-to-cash: El proceso se desencadena por
la recepción de una orden de compra de un
cliente.
• Tras la recepción de la orden de compra se
revisa la disponibilidad de stock para determinar
si el artículo solicitado puede ser atendido.
• Dependiendo de la disponibilidad la orden de
compra puede ser confirmada o rechazada.
• Si el pedido es confirmado, una factura se emite y
los productos solicitados se envían.
• El proceso se completa mediante el archivo de la
orden o si el pedido es rechazado.
Empezaremos el modelado -
Descomposición
22. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 22
01/06/2021
• An order-to-cash:
• El proceso se desencadena por la
recepción de una orden de compra de un
cliente.
• Tras la recepción de la orden de compra
se revisa la disponibilidad de stock para
determinar si el artículo solicitado puede
ser atendido.
• ……
Empezaremos el modelado -
Descomposición
23. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 23
01/06/2021
BPMN Model
Purchase
order
received
Check stock
availability
24. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 24
01/06/2021
• An order-to-cash:
• …….
• Dependiendo de la disponibilidad la orden
de compra puede ser confirmada o
rechazada.
• Si el pedido es confirmado, una factura se
emite y los productos solicitados se envían.
• El proceso se completa mediante el archivo
de la orden o si el pedido es rechazado.
Empezaremos el modelado -
Descomposición
25. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 25
01/06/2021
BPMN Model
start
event
end
event
activity
split gateway
Order-to-cash
Purchase
order
received
end
event
Ship goods
Order
rejected
Order
fulfilled
Archive
order
Check stock
Reject order
Confirm
order
Items in
stock
Items not in
stock
Check stock
availability
Emit
invoice
26. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 26
01/06/2021
Check stock
availability
Reject order
Confirm
order
Emit
invoice
Ship goods
Purchase
order
received
Items in
stock
Items not in
stock
Order
rejected
Order
fulfilled
Archive
order
Ejecución del Modelo de Proceso
The “token game”
Order #1
Order #2
Order #3
27. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 27
01/06/2021
[…] Si la orden es confirmada, una factura es emitida y
los productos solicitados son enviados. El proceso se
termina con el archive de la orden. […]
Ejemplo :Order-to-cash
Volviendo a revisar
Check stock
availability
Reject order
Confirm
order
Emit
invoice
Ship goods
Purchase
order
received
Items in
stock
Items not in
stock
Order
rejected
Order
fulfilled
Archive
order
28. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 28
01/06/2021
Check stock
availability
Reject order
Confirm
order
Emit
invoice
Ship goods
Purchase
order
received
Items in
stock
Items not in
stock
Order
rejected
Order
fulfilled
Archive
order
Check stock
availability
Reject order
Confirm
order
Purchase
order
received
Items in
stock
Items not in
stock
Order
rejected
Order
fulfilled
Archive
order
Emit invoice
Ship goods
Primer intento
split
split join
Order-to-cash
30. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 30
01/06/2021
Gateways
• Nodo exclusivo: el flujo continúa por la primera
alternativa que satisface la condición. Si
ninguna satisface, entonces continúa por la
alternativa que tiene la marca “/”
Condición 1
Condición 2
33. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 33
01/06/2021
Gateways
• Ejecución en paralelo (bifurcación): se usa
cuando dos o más tareas se empiezan a
llevar a cabo concurrentemente
34. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 34
01/06/2021
Gateways
• Ejecución en paralelo (unión): se usa para
postsincronizar dos o más tareas que se han
llevado a cabo concurrentemente. Espera un
token de todas las ramas.
37. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 37
01/06/2021
Check stock
availability
Reject order
Confirm order
Send invoice
Ship goods
Purchase
order
received
Items in
stock
Items not in
stock Order
rejected
Order
fulfilled
Archive
order
Order-to-cash: Revisión del Modelo de
Procesos
XOR-split
AND-split AND-join
37
38. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 38
01/06/2021
Gateways
• Nodo inclusivo: el flujo continúa por todas las
alternativas que satisfacen la condición.
• Inclusive merge: procede cuando todas las
ramas activas terminan.
Condición 1
Condición 2
46. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 46
01/06/2021
When?
Flows
Gateways
Which?
Data / Materials
What?
Tasks
Events
Who?
Organization
Puntos de Vista para el Modelamiento de Procesos
Lanes &
Pools
Data Objects,
Stores
48. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 48
01/06/2021
Order-to-cash: Procesos con lanes
49. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 49
01/06/2021
A Message Flow representa un flujo de información entre dos procesos (Pools).
Message
Message Flow
49
Pool 2
Pool
1
Pool
2
Pool
1
Send
Receive
Send Receive
50. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 50
01/06/2021
Order-to-cash
50
51. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 51
01/06/2021
Which?
Data / Materials
Process Modelling Viewpoints
Data Objects,
Stores
52. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 52
01/06/2021
Nuevamente el proceso: Order-to-
cash
Check stock
availability
Confirm
order
Reject order
Send
invoice
Ship goods
Purchase
order
received
Items not in
stock
Items in
stock
Order
rejected
Order
fulfilled
Archive
order
53. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 53
01/06/2021
Purchase
Order
Invoice
Check stock
availability
Confirm
order
Reject order
Send
invoice
Ship goods
Purchase
order
received
Items not in
stock
Items in
stock
Order
rejected
Order
fulfilled
Archive
order
Modelo con artefactos de información
Purchase
Order
Purchase
Order
[checked]
Purchase
Order
[rejected]
Purchase
Order
[approved]
Purchase
Order
Shipment
notice
Warehouse DB
Orders DB
Purchase
Order
54. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 54
01/06/2021
A Data Object
BPMN Information Artifacts
Emit
invoice
Purchase
order
Invoice
Retrieve client
information
Oracle CRM Client info
A Data Store
55. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 55
01/06/2021
Anotaciones
Quick Note: BPMN Text Annotations
Clear vendor
line items
For blocked invoices
Ship goods
Includes packaging
56. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 56
01/06/2021
BPMN Poster (link in “Readings” page)
57. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 57
01/06/2021
Contenido
• Modelado de procesos de
negocios
– BPM
– BPMN
– Herramientas de modelado de
procesos de negocios
• Modelado estático del
sistema
– Diagrama de clases
– Lenguajes formales de
especificación
– Lenguaje restringido a objetos
(OCL)
• Modelado del
comportamiento
– Diagramas de estado
– Diagramas de secuencias
– Diagrama de actividades
• Modelado de arquitectura
– Diagramas de componentes
– Diagramas de despliegue
• Metamodelado
– MDA/MDE/Metamodelos
– Lenguajes de Dominio
Específico (DSL)
58. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 58
01/06/2021
Contenido
• Modelado de procesos de
negocios
– BPM
– BPMN
– Herramientas de modelado de
procesos de negocios
• Modelado estático del
sistema
– Diagrama de clases
– Lenguajes formales de
especificación
– Lenguaje restringido a objetos
(OCL)
• Modelado del
comportamiento
– Diagramas de estado
– Diagramas de secuencias
– Diagrama de actividades
• Modelado de arquitectura
– Diagramas de componentes
– Diagramas de despliegue
• Metamodelado
– MDA/MDE/Metamodelos
– Lenguajes de Dominio
Específico (DSL)
59. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 59
01/06/2021
Diagramas de clases
• Definición
• Clases
• Atributos
• Métodos
• Encapsulamiento/Visibilidad
• Instancia
• Relaciones
60. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 60
01/06/2021
Diagrama de Clases
• Que es?
– Presenta las clases del sistema con sus
relaciones estructurales y de herencia.
• Objetivos
– Representar los aspectos estáticos del
sistema
• Que no hace?
– No representa la dinámica de los objetos
61. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 61
01/06/2021
Diagrama de Clases
62. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 62
01/06/2021
UML – Diagrama de Clases
• Parte central del diseño
• Relación muy cercana con el código final
– Herramientas que generan el esqueleto del
código de forma automática
• Se evitan defectos propios de la conversión manual
• Se describen
– Clases (nombre, atributos, métodos)
– Asociaciones entre clases
– Relaciones de herencia
63. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 63
01/06/2021
Diagrama de Clases
• Muestra las clases e interfaces que componen el
sistema y las relaciones que existen entre ellas
• Muestra aspectos estáticos
• Clase: conjunto de objetos que comparten:
– Atributos
– Operaciones
– Relaciones
– Semántica
• Modelo de Dominio (Conceptual): ayudan a entender los
conceptos del dominio del problema y el vocabulario del mismo. Se
excluyen detalles referentes a la implementación o al lenguaje de
programación.
• Diagramas de clases de implementación: muestran todos los
métodos y atributos necesarios para implementar cada clase. Es un
diagrama dependiente de la implementación y del lenguaje.
Nombre Clase
Atributos
Operaciones
64. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 64
01/06/2021
Elementos de un Diagrama de Clases
• Clases. Describen un conjunto de objetos
con propiedades y comportamientos
comunes.
• Relaciones. Enlaces entre los distintos
elementos de los diagramas.
• Interfases. Conjunto de operaciones de
una clase o paquete visibles desde otras
clases o paquetes.
65. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 65
01/06/2021
UML: diagramas de clases
1
2
push()
release()
1
1
blinkIdx
blinkSeconds()
blinkMinutes()
blinkHours()
stopBlinking()
referesh()
LCDDisplay Battery
load
1
2
1
Time
now
1
Watch
Clase
Asociación
Multiplicidad
Atributo
Operaciones
Los diagramas de clases representan la estructura del sistema
state
PushButton
66. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 66
01/06/2021
Diagramas de clases
• Definición
• Clases
• Atributos
• Métodos
• Encapsulamiento/Visibilidad
• Instancia
• Relaciones
67. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 67
01/06/2021
Clases
• Una clase es la descripción de un conjunto
de objetos con los mismos comportamientos
y propiedades.
• La estructura de una clase esta compuesta
de:
– Los atributos:
• Datos asociados a los elementos y que toman valor al
instanciar objetos de una clase.
– Las operaciones (métodos):
• Funciones o procesos propios de los objetos de una
clase.
68. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 68
01/06/2021
Notación UML para clases
Identificador de la clase,
si es abstracta va en cursiva
atributos
métodos
Rectángulo
longitud
ancho
crearRectangulo
obtenerArea
69. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 69
01/06/2021
Clase Instancia 1 Instancia 2
Perro unPerro
Fido
Sultán
unPerro
nombre
Clases
70. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 70
01/06/2021
Diagramas de clases
• Definición
• Clases
• Atributos
• Métodos
• Encapsulamiento/Visibilidad
• Instancia
• Relaciones
71. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 71
01/06/2021
Atributos
• Un atributo representa una propiedad de una clase.
– Ejemplo: Un persona tiene nombre, edad, etc.
• Los nombres de atributos son únicos dentro de una
misma clase.
• Cada atributo tiene un valor para cada instancia
• En UML:
– La primera letra de un atributo se escribe con minúscula.
– La sintaxis para los atributos en un diagrama UML de
clases es la siguiente:
• visibilidad nombre : tipo de dato
• Ejemplo: + nombre : String
72. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 72
01/06/2021
Clase Instancia 1 Instancia 2
atributo X valor x1 valor x2
Perro unPerro
nombre
peso
Sultán
19 libras
unPerro
Fido
9 libras
Atributos de Clases
73. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 73
01/06/2021
Perro
nombre
piel
peso
edad
estátus
Nombrar o identificar objetos
Describir características
Describir estados
Atributos de Clases
74. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 74
01/06/2021
Atributos
• Una entidad con estructura, comportamiento
o identidad debe ser modelado como una
clase, no como atributo de otra clase.
• Sólo considere atributos que directamente
estén relacionados a una aplicación
particular.
– Obtenga los atributos más importantes primero,
se adicionarán detalles después.
• Asegúrese de dar a cada atributo un nombre
significativo.
75. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 75
01/06/2021
Atributos
• Mostrar sólo tipos primitivos relativamente
“simples” como atributos.
• Las conexiones a otros conceptos se
representarán como asociaciones, no como
atributos.
Atributos
Pago
fecha : Fecha
hora : Hora
cantidad : Dinero
76. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 76
01/06/2021
No utilizar atributos para relacionar conceptos
• ¿Por qué?
Peor
Mejor
Cliente
…
Video
…
Alquila
1 1.. *
Cliente
Vídeos alquilados: Lista de Vídeos
Vídeo
alquilador : Cliente
77. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 77
01/06/2021
¿Cómo encontrar atributos?
• Para encontrar atributos de una clase
preguntarse:
– Qué información necesitamos conocer sobre ese
objeto?
– Qué características necesitamos recordar en el
tiempo?
– Qué dato es importante para soportar las
responsabilidades de la clase en el sistema?
– Algunos atributos podrían ser extraídos del
análisis de los sustantivos y añadidos a la clase
apropiada.
78. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 78
01/06/2021
Diagramas de clases
• Definición
• Clases
• Atributos
• Métodos
• Encapsulamiento/Visibilidad
• Instancia
• Relaciones
79. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 79
01/06/2021
Métodos
• Los métodos, son los procesos que una
clase sabe cómo llevar a cabo. Ejemplo:
cambiar-dirección.
• Un objeto se caracteriza por el
comportamiento que es capaz de mostrar, no
solo por sus atributos.
– En el modelo estático, únicamente se muestra los
nombres de los métodos.
– La información de las operaciones se muestra en
el modelo dinámico.
80. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 80
01/06/2021
Sinónimos de Método
• Operación
• Responsabilidad
• Servicio
• Función
81. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 81
01/06/2021
Clase Instancia 1 Instancia 2
Perro unPerro
atributo X valor x1 valor x2
nombre
peso
Sultán
19 libras
unPerro
Fido
9 libras
operación OPT OPT OPT
sentarse
girar
operaciones de
la clase
operaciones de
la clase
Métodos
82. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 82
01/06/2021
Métodos
• Puede ocurrir que una clase no tenga métodos.
• En UML:
– La primera letra de los nombres de los métodos se
escribe con minúscula.
– Los métodos pueden tener parámetros, y también
pueden retornar valores. La sintaxis para los
métodos en un diagrama UML de clases, es la
siguiente:
• visibilidad nombre (lista-de-parámetros): tipo-dato-a-retornar.
• Ejemplo: #addMessage (m : Message, len : Integer): Status
83. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 83
01/06/2021
Ejemplo de Clase/atributos/métodos
Objetos bicicletas
Abstraídos en
Clase Bicicleta
Atributos
Tamaño de frame
Tamaño de llanta
Material ...
Métodos
Cambio
Mover
Frenar...
84. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 84
01/06/2021
Diagramas de clases
• Definición
• Clases
• Atributos
• Métodos
• Encapsulamiento/Visibilidad
• Instancia
• Relaciones
85. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 85
01/06/2021
Clases: Encapsulación/ Visibilidad
▪ La encapsulación presenta dos ventajas básicas:
– Se protegen los datos de accesos indebidos
– El acoplamiento entre las clases se disminuye
– Favorece la modularidad y el mantenimiento
▪ Los atributos de una clase no deberían ser
manipulables directamente por el resto de objetos
86. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 86
01/06/2021
… Clases: Encapsulación/ Visibilidad
▪ Los niveles de encapsulación están heredados
de los niveles de C++:
– (-) Privado : es el más fuerte. Esta parte es
totalmente invisible (excepto para clases friends en
terminología C++)
– (#) Los atributos/operaciones protegidos están
visibles para las clases friends y para las clases
derivadas de la original
– (+) Los atributos/operaciones públicos son visibles a
otras clases (cuando se trata de atributos se está
transgrediendo el principio de encapsulación)
87. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 87
01/06/2021
… Clases: Encapsulación/ Visibilidad
▪ Ejemplo:
Reglas de visibilidad
+ Atributo público : int
# Atributo protegido : int
- Atributo privado : int
+ "Operación pública"
# "Operación protegida"
- "Operación privada"
88. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 88
01/06/2021
Ejemplo de Encapsulación/ Visibilidad
Persona
- nombre: String
- dirección: String
+getNombre ():String
+setNombre(nombre : String):void
+getDireccion():String
+setDireccion(direccion: String):void
# caminar():void
private
public
protected
89. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 89
01/06/2021
Ejemplo de Encapsulación/ Visibilidad
public class Alumno
{
private String nombre;
private String domicilio;
public Alumno(String n, String d)
{}
public void setNombre (String n)
{}
public String getNombre()
{}
}
UML
Java
Alumno
-nombre:
: String
-domicilio: String
+Alumno (n:String, d:String)
+setNombre(n:String):void
+getNombre():String
90. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 90
01/06/2021
Diagramas de clases
• Definición
• Clases
• Atributos
• Métodos
• Encapsulamiento/Visibilidad
• Instancia
• Relaciones
91. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 91
01/06/2021
Instancia
• Una instancia es un objeto creado a partir
de una clase.
• La clase describe la estructura de la
instancia (información y comportamiento),
mientras que el estado actual de la
instancia es definido por las operaciones
ejecutadas.
92. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 92
01/06/2021
Instancia
Alumno alumno3 = new Alumno(“Jose Lopez”, “Centenario”);
alumno3: Alumno
nombre = Jose Lopez
domicilio = Centenario
alumno2: Alumno
nombre = Abel García
domicilio = Los ceibos
alumno1: Alumno
nombre = Juan Perez
domicilio = Las Peñas
Alumno
-nombre:
: String
-domicilio: String
+Alumno (n:String, d:String)
+setNombre(n:String):void
+getNombre():String
Creación de instancias u objetos a partir de la clase Alumno:
Alumno alumno1 = new Alumno(“Juan Perez”, “Las Peñas”);
Alumno alumno2 = new Alumno(“Abel Garcia”, “Los ceibos”);
93. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 93
01/06/2021
Diagramas de clases
• Definición
• Clases
• Atributos
• Métodos
• Encapsulamiento/Visibilidad
• Instancia
• Relaciones
94. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 94
01/06/2021
Diagramas de clase: Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
95. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 95
01/06/2021
Modelamiento de Relaciones
• Un objeto por si solo no presenta
funcionalidad. Los objetos contribuyen al
comportamiento de un sistema
colaborando con otros.
• Son necesarias las relaciones para dar
significado y propósito a los objetos.
• Las relaciones entre objetos pueden ser
estáticas o dinámicas
96. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 96
01/06/2021
Centrarse en las asociaciones importantes
Vídeo
...
1
1..*
1 Política de préstamos
...
Cliente
...
Asociación importante
Necesito recordar
Asociación de poco valor
Es posible, pero ¿y qué?
Alquila
Influido-por
1..*
97. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 97
01/06/2021
Un
ejemplo
Catálogo
Descripción del vídeo
título
Categoría artículo
Alquiler de vídeo
Hora límite
1..* Fecha de devolución
Hora de devolución
Pago en efectivo
cantidad : Dinero
Vídeo
ID
1
Carnet de socio
ID
Fecha inicio
1
1
1
1..*
1
*
1
1
1
*
1
*
Transacción de alquiler
fecha
Política de préstamos
Cargo alquiler por día
Cargo alquiler por día extra
1
1..*
*
1..*
1
1
Videoclub
dirección
nombre
teléfono
Cliente
dirección
nombre
teléfono
1
0..1
1
*
1
1
Pagos-por-retrasos
Pago-por
Inicia
Alquila
Alquila-de Almacena
Posee-un
Mantiene
Define
Descrito-por
Determina-cargo-alquiler
Registra-alquiler-de
*
Tiene
1
1
1..*
98. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 98
01/06/2021
Diagramas de clase: Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
99. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 99
01/06/2021
Relaciones Dinámicas
• Los objetos están relacionados por sus
interacciones.
• Pertenecen a los modelos dinámicos.
• También conocidas como:
colaboraciones, interacciones.
100. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 100
01/06/2021
Diagramas de clase: Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
101. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 101
01/06/2021
Relaciones Estáticas
• Las relaciones estáticas representan
relaciones estructurales entre objetos de
diferentes clases.
• Las relaciones estáticas también se las
conoce como asociaciones o enlaces.
• Las asociaciones representan relaciones
entre clases. Ejemplo: Persona trabaja
en compañía.
102. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 102
01/06/2021
Diagramas de clase: Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
103. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 103
01/06/2021
Enlaces y Asociaciones
• Los enlaces y las asociaciones son lo más
significativo para establecer relaciones entre
objetos y clases.
• Las relaciones son usualmente llamadas
asociaciones cuando se aplican a clases, y
enlaces cuando son aplicadas a objetos.
• Un enlace es una conexión física o
conceptual entre instancias de objetos. Un
enlace es una instancia de una asociación.
Un objeto colabora con otros objetos a través
de sus enlaces con éstos.
104. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 104
01/06/2021
Enlaces y Asociaciones
• Una asociación describe un grupo de
enlaces con estructura común y semántica
común. Todos los enlaces en una
asociación conectan objetos de la misma
clase.
• Las asociaciones son intrínsecamente
bidireccionales. Por ejemplo: Una
persona trabaja para una compañía, una
compañía emplea a una persona.
105. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 105
01/06/2021
Asociación
asociación
Clase
Atributos
Métodos
Clase
Atributos
Métodos
106. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 106
01/06/2021
Diagramas de clase: Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
107. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 107
01/06/2021
Asociaciones
• Las asociaciones tienen los siguientes
componentes:
– Nombre
– Rol
– Multiplicidad
108. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 108
01/06/2021
Asociaciones (Nombre)
Trabaja para
Persona Compañía
Persona Compañía
Es empleado Es empleador
nombre
roles
Una asociación tiene una etiqueta (nombre) que describe su
significado.
109. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 109
01/06/2021
Asociaciones (Roles)
• Algunas veces se establecen roles en cada
lado de la asociación. El uso de nombres de
roles es opcional, pero es más fácil y menos
confuso asignar nombres de roles en lugar
de nombres de asociaciones. Por ejemplo:
empleado y empleador.
• Los nombres de roles son necesarios para
asociaciones entre dos objetos de la misma
clase. Por ejemplo: jefe y trabajador
distinguen a los empleados participantes en
la asociación administra.
110. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 110
01/06/2021
Asociaciones (Multiplicidad)
• La multiplicidad indica la cantidad de
objetos que participarán en una relación
dada.
• Una asociación puede ser caracterizada
por la multiplicidad en uno o en ambos
lados de la relación.
• La multiplicidad restringe el número de
objetos relacionados.
111. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 111
01/06/2021
Asociaciones (Multiplicidad)
• Los tipos de multiplicidad son:
– (1): Cada instancia de una clase está relacionada con
exactamente una instancia de la otra clase.
– (*): Cada instancia de una clase está relacionada con
cero, una o con más instancias de la otra clase.
– (0..1): Cada instancia de una clase está relacionada
con 0 ó 1 instancia de la otra clase.
– (1..*): Cada instancia de una clase está relacionada
con una o más instancias de la otra clase.
– Lista: 0..1, 3..4, 6..*: Cada instancia de una clase
está relacionada con cualquier número de instancias
de clase menos con 2 ó 5.
112. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 112
01/06/2021
A B
1
Una A siempre se asocia con una B
País Ciudad Capital
1
Vuelo Capitán
Cheque Beneficiario
1
1
Ejemplo de Asociaciones
113. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 113
01/06/2021
A B
1..*
Una A siempre se asocia con una o más B
Continente País
1..*
Compañía Persona
País Ciudad
1..*
1..*
Ejemplo de Asociaciones
114. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 114
01/06/2021
A B
0..1
Una A siempre se asocia con ninguna o con una B
Escritor Agente
0..1
Ejemplo de Asociaciones
115. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 115
01/06/2021
A B
*
Una A siempre se asocia con ninguna, con una o con más B
Persona Compañía
*
Ejemplo de Asociaciones
116. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 116
01/06/2021
Diagramas de clase: Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
117. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 117
01/06/2021
Clase de Asociación
• Algunas veces una clase está relacionada
más cercanamente a la asociación entre
otras dos clases que con cualquier otra
clase.
• Ejm: Una cuenta está relacionada a la
asociación entre una persona y un banco.
• Es ventajoso modelar una asociación como
una clase cuando los enlaces pueden
participar en asociaciones con otros objetos
o cuando los enlaces están sujetos a
operaciones.
118. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 118
01/06/2021
Clase de Asociación
• Las clases de asociación permiten añadir
atributos, operaciones y otras
características a las asociaciones.
Persona Compañía
Empleo
salario, cargo
119. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 119
01/06/2021
Persona Banco
Cuenta
número de cuenta
estatus
balance
calcular balance
depósito
retiro
cliente de
Ejemplo de Clase de Asociación
120. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 120
01/06/2021
Diagramas de clase: Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
121. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 121
01/06/2021
Asociaciones circulares
• Una asociación podría ser circular si:
– Una instancia de la clase esta relacionada
con otra instancia(s) de la misma clase.
• Esta asociación se modela como una asociación
que apunta de regreso a la misma clase.
• Nombre de roles son muy útiles para clarificar esta
asociación.
A
122. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 122
01/06/2021
Ejemplo de Asociación circular
Persona
*
1
trabajador
supervisor
123. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 123
01/06/2021
Asociaciones múltiples
• Asociaciones múltiples (diferentes) podrían ser
modeladas entre las mismas dos clases.
• Cada asociación tiene su propio nombre, rol y
multiplicidad.
• Los roles son muy útiles para clarificar las
asociaciones.
– Ejm: Entre un cliente de un club de vídeo y un vídeo.
pueden existir dos asociaciones: rentado y reservado.
– Ejm: Entre la clase usuario y directorio, cada
directorio tiene exactamente un usuario que es un
propietario, y muchos usuarios quienes están
autorizados a usar el directorio.
124. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 124
01/06/2021
r1 *
A B
a3
a1
a2
a5
a4
b1
b2
b3
b4
b5
r2
r1
r1
r1
r1
r2
r2
0..1
Ejemplo de Asociación múltiple
125. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 125
01/06/2021
Vic Jones
Tom Lee
Dora Mesa
Liz Taylor
tiene rentado
Joe Fernández
María Nato
The Wizard of OZ
Guerra de las Galaxias
Casa Blanca
Gone with the wind
Police Academy
The Sound of Music
Ben Hur
tiene rentado
tiene rentado
tiene rentado
tiene reservado
Cliente
club de vídeo Video
tiene rentado
tiene reservado
0..1
*
*
*
Ejemplo de Asociación múltiple
126. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 126
01/06/2021
Ejemplo de asociaciones múltiples
Estudiante Seminario
toma *
1..*
ayuda
*
0..1
ayudante
estudiante
127. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 127
01/06/2021
Ejemplo: Entre la clase usuario y directorio, cada directorio tiene
exactamente un usuario que es un propietario, y muchos usuarios
quienes están autorizados a usar el directorio.
Usuario Directorio
propietario
usuario autorizado
Luis Rossi
José Mieles
Fabián Aguirre
Letty Medina
C:TRABAJOS
C:PRUEBASDIA1
*
*
*
Ejemplo de asociaciones múltiples
128. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 128
01/06/2021
Diagramas de clase: Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
129. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 129
01/06/2021
Restricciones en las asociaciones
• Las restricciones son condiciones que
especifican limitaciones en las asociaciones,
es decir, limita la participación de los objetos,
a aquellos que cumplen con la condición.
• Con las restricciones se provee mayor
precisión en la información del modelo.
• Una restricción en una asociación entre la
clase A y la clase B quiere decir que: Para
cada enlace entre las instancias de A y B, la
condición señalada por la restricción es
verdadera.
130. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 130
01/06/2021
Restricciones en las asociaciones
Las restricciones pueden ser implícitas o explícitas:
• Implícitas: Las características de la notación en el
modelo implican la restricción. La multiplicidad
restringe una asociación. Esta restringe el número de
objetos relacionados a un objeto dado.
– Ejm: Los iconos que muestran multiplicidad en las
asociaciones, especifican restricciones en el número de
enlaces que podrían existir para las instancias de las
clases relacionadas.
– 0..1: cero o una instancia
• Explícitas: Las restricciones explícitas en el modelo,
generalmente se las especifican con llaves “{ }”.
– Ejm: Restricción entre persona y licencia de conducir.
– {edad del conductor no menor de 18}
131. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 131
01/06/2021
Restricción Implícita
Por cada instancia de A, existen: 0, una, o muchas
instancias de B y
Por cada instancia de B, existen: una o más instancias de
A
A B
r
1..*
*
132. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 132
01/06/2021
Restricción Explícita
Por cada enlace que exista entre una instancia de A y una
instancia de B, la condición en la restricción es
verdadera
A B
relación
{restricción}
133. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 133
01/06/2021
Ejemplo de Restricciones Explícitas
LicenciaConducir
Persona
nombre
dirección
edad
edad mínima
numero de licencia
fecha de caducidad
estatus
{edad de persona no es menor
que la edad mínima de la
licencia de conducir}
tiene
134. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 134
01/06/2021
Restricciones en las Asociaciones
• {or}: Una clase tiene múltiples asociaciones
con otra clase (o con otras dos clases), pero
cada una de las instancias de la clase,
participan en una cualquiera de las
asociaciones, pero no en las dos
• {subconjunto}: se dan cuando una clase
tiene dos asociaciones con otra clase y los
enlaces de una asociación son un
subconjunto de los enlaces de la otra.
135. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 135
01/06/2021
A B
r1
r2
C
{or}
Ejemplo de Restricción OR
{or}
Cliente
club de vídeo Video
tiene rentado
tiene reservado
0..1
*
*
*
136. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 136
01/06/2021
Restricción Subconjunto
a3
a1
a2
a5
a4
b1
b2
b3
b4
b5
r1
r1
r1
r1
r2
r2
A B
{subset}
r1
r2
r1
*
*
137. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 137
01/06/2021
es miembro de
es director de
Persona Comité
{subset}
1..*
Ejemplo de Restricción Subconjunto
A B
r1
r2
{subconjunto}
138. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 138
01/06/2021
Diagramas de clase: Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
139. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 139
01/06/2021
Agregación de Relaciones
• Las agregaciones son un tipo especial de asociación,
que describen una abstracción lógica de la relación
“parte-todo” o “una-parte-de” en la cual los objetos
que representan los componentes de algo son
asociados con un objeto que representa el ensamblaje
completo. Los componentes son parte del agregado
• Se indican con frases como “tiene”, “contiene” o “es
parte de”.
– Una mano tiene 5 dedos
– Un archivador contiene cajones
– Un teclado es parte de una computadora
• Pueden tener multiplicidad / condicionamiento en el
lado de la parte.
140. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 140
01/06/2021
A B
agregado parte
Agregación de Relaciones
• La agregación puede o no denotar contención física.
– La relación entre un aeroplano se compone de alas,
motores, tren de aterrizaje, etc. denota contención física
– La relación entre un accionista y sus acciones; no requiere
contención física.
• Puede tener un número arbitrario de niveles, esto es,
una agregación con componentes (partes) y
subcomponentes (subpartes).
• La agregación es dibujada igual que la asociación,
excepto por un pequeño diamante que indica el
agregado al final de la relación.
141. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 141
01/06/2021
Agregación de Relaciones
• La agregación tiene algunas consideraciones:
– La parte sólo puede existir si el agregado (el todo)
existe. Cuando el todo es eliminado, son eliminadas
también todas las partes.
– Los clientes deben acceder o comunicarse con las
partes a través del agregado.
– El agregado debe proveer la interfase para permitir a
un objeto cliente acceder o comunicarse con las
partes.
– Los clientes pueden tener relación con las partes.
Sin embargo, estas relaciones deben ser
establecidas y removidas a través del agregado.
142. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 142
01/06/2021
Agregación de Relaciones
• Para decidir entre asociación o agregación,
responder las siguientes preguntas:
– Usaría usted la frase parte de o está compuesto
de?
– Son algunas operaciones en el todo
automáticamente aplicadas a sus partes?
– Son algunos valores de atributos propagados
desde el todo a todos o algunas partes?
– El estado del todo cambia con el estado de su
parte?
143. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 143
01/06/2021
B es parte de A
o
A tiene una B
Modelamiento de Agregaciones
A
B
C contiene cero
o
más instancias de D
C
D
*
144. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 144
01/06/2021
Ejemplos de Agregación
Mesa
Pata
Partes
Agregado (el todo)
1..*
Compañía
Departamento
*
145. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 145
01/06/2021
Ejemplos de Agregación
Documento Párrafo Sentencia
Computador
Caja del Sist. Mouse Teclado
Monitor
Chasis CPU RAM
1..* 1..*
146. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 146
01/06/2021
Diagramas de clase: Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
147. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 147
01/06/2021
Composición
• Es un tipo especial de agregación donde el
todo es dueño de la parte, por todo el ciclo
de vida de esta.
• En una composición un objeto parte
solamente puede pertenecer a un todo al
mismo tiempo.
• El todo es responsable de la creación y
destrucción de sus partes.
• La integridad del todo se ve afectada, cuando
se elimina una de las partes.
148. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 148
01/06/2021
Ejemplo de Composición
Ventana
Frame
*
149. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 149
01/06/2021
Ejemplo de Agregación y Composición
Polígono
Punto
Estilo
color
Círculo
radio
3..*
150. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 150
01/06/2021
Diagramas de clase: Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
151. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 151
01/06/2021
Navegabilidad
• La navegación dentro de una asociación
es bidireccional a menos que se
especifique lo contrario.
• A veces es necesario limitar la navegación
a una sola dirección.
Usuario Clave
dueño
152. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 152
01/06/2021
Diagramas de clase: Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
153. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 153
01/06/2021
Generalización y Herencia
• La generalización es un tipo de relación entre
una clase general (superclase) y una clase
más específica (subclase).
• Este tipo de relación es jerárquica
• Las clases más específicas (subclases)
heredan los atributos y los métodos de las
clases más generales.
• Las subclases pueden añadir nuevas
operaciones y nuevas variables de instancia.
154. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 154
01/06/2021
• Generalización
• Una generalización da lugar al
polimorfismo entre clases
de una jerarquía de
generalizaciones:
• Un objeto de una subclase
puede sustituir a un objeto
de la superclase en cualquier
contexto. Lo inverso no es
cierto.
155. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 155
01/06/2021
Generalización y Herencia
• La herencia define una relación entre clases, en la
que una clase comparte la estructura de
comportamiento definida en una o más clases.
• Una misma operación de una superclase puede
comportarse de forma distinta en las subclases.
(Polimorfismo).
• Una clase puede tener cero, uno o más padres.
• Cuando una clase no tiene padres y tiene uno o
más hijos, se la llama clase base.
• Cuando una clase no tiene ningún hijo, se la llama
clase hoja.
156. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 156
01/06/2021
Generalización y Herencia
• Semánticamente, la herencia denota una relación “es
un o una” o “es un tipo de”. Por ejemplo: un oso “es
un tipo de” mamífero, una casa “es un” tipo de bien
mueble, una rosa “es una” flor, una motocicleta “es un
tipo de” vehículo.
• Se ha considerado a la herencia como sinónimo de
rehúso de código. Sin embargo el más importante
uso de herencia, es la simplificación conceptual que
viene de reducir el número de características
independientes en un sistema.
• Cuando una clase tiene un solo padre, se dice que
usa herencia simple.
• Cuando una clase tiene varios padres se dice que usa
herencia múltiple.
157. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 157
01/06/2021
Notación UML para la Generalización
A
B
Generalización
Especialización
B es un tipo de A
158. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 158
01/06/2021
Ejemplo de Generalización
Rectángulo
dibujar
mover
longitud
ancho
Circulo
dibujar
mover
radio
Figura Geométrica
dibujar
mover
color
posición
159. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 159
01/06/2021
Ejemplo de Generalización
Camión
Conductor
Auto Motocicleta
Vehículo registrado a nombre de
*
Pickup Trailer . . .
18 llantas
160. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 160
01/06/2021
unaCuentaBancaria
calcularBalance
deposito
retiro
unaCuentaDeAhorros
unaCuentaCorriente
emitirEstadoDeCuenta
Banco
calcularBalance
calcularBalance
Generalización y Herencia
• Restricciones:
– Desde el punto de vista del cliente de A, no hay
diferencia entre utilizar una instancia de A o de B.
– Sin embargo, instancias de la clase A no pueden ser
sustituidas por instancias de la clase B.
161. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 161
01/06/2021
unaCuentaBancaria
calcularBalance
deposito
retiro
unaCuentaDeAhorros
unaCuentaCorriente
emitirEstadoDeCuenta
Banco
emitirEstadoDeCuenta
emitirEstadoDeCuenta
Generalización y Herencia
162. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 162
01/06/2021
Herencia Múltiple
• Se da cuando una clase tiene más de una
clase padre.
• Una subclase hereda los atributos y
métodos de todas las clases padres.
• Smalltalk y C++ soportan herencia
múltiple, mientras que Java no.
163. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 163
01/06/2021
Ejemplo de Herencia Múltiple
RelojDigital RelojAnalógico
RelojDisplayDoble
164. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 164
01/06/2021
Clases Abstractas
• Una clase abstracta es una generalización
que no tiene instancias directas, pero si sus
especializaciones.
• Una clase concreta es una clase que es
instanciable; esto es, esta puede tener
instancias directas.
• Las clases abstractas organizan
características comunes a algunas clases.
• El uso de clases abstractas puede simplificar
el modelamiento de las clases que participan
en la misma relación con otras clases.
165. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 165
01/06/2021
Notación de Clases Abstractas
Ventana
{abstracto}
minimizar()
maximizar()
Ventana de Windows Ventana de Mac
minimizar()
maximizar()
minimizar()
maximizar()
166. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 166
01/06/2021
Jerarquías de Relaciones
Avión militar Avión comercial
Avión de carga Avión de pasajeros
Motor Vendedor de billetes
Avión
1..4
1
Piloto
Reserva
n
1
Línea aérea
Vuelo
n
1
1..2
n
n
1
1
n
n
▪ Las relaciones de Agregación y Generalización forman
jerarquías de clases
167. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 167
01/06/2021
Diagramas de clase: Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
168. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 168
01/06/2021
Realización
• Relación semántica entre clasificadores, donde un clasificador
especifica un contrato que otro clasificador garantiza que cumplirá.
• Se pueden encontrar en dos casos:
• Clases o componentes que realizan interfaces. Es decir, implementan
cada uno de los métodos especificados en dicha interfaz.
• Colaboraciones que realizan casos de uso.
Ventana
+abrir()
+cerrar()
+mover()
+dibujar()
<<Interface>>
IVentana
169. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 169
01/06/2021
Dependencia
❖ Una Dependencia modela una relación de uso.
❖ En una dependencia no es necesario especificar un nombre.
A
Dependencia
B
bb1(a1:A)
A
170. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 170
01/06/2021
Realización y dependencia
❖ Una Realización se da entre dos elementos cuando uno de ellos
especifica un contrato y el otro garantiza que se cumple. Por
ejemplo: Una interfaz presenta una relación de realización con
la/s clase/s que la implementa/n.
❖ Una Dependencia modela una relación de uso. En una
dependencia no es necesario especificar un nombre.
Collections
<<Interface>>
Collection
.add()
addAll()
...
LinkedList
Realización
Dependencia
171. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 171
01/06/2021
Contenido
• Modelado de procesos de
negocios
– BPM
– BPMN
– Herramientas de modelado de
procesos de negocios
• Modelado estático del
sistema
– Diagrama de clases
– Lenguajes formales de
especificación
– Lenguaje restringido a objetos
(OCL)
• Modelado del
comportamiento
– Diagramas de estado
– Diagramas de secuencias
– Diagrama de actividades
• Modelado de arquitectura
– Diagramas de componentes
– Diagramas de despliegue
• Metamodelado
– MDA/MDE/Metamodelos
– Lenguajes de Dominio
Específico (DSL)
172. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 172
01/06/2021
Métodos Formales
• Los métodos formales permiten al ingeniero de
software especificar, desarrollar y verificar un
sistema informático mediante la aplicación de una
notación matemática rigurosa.
• Utilizando un lenguaje de especificación formal,
un método formal proporciona los medios de
especificar un sistema de forma que se aseguren,
de forma sistemática, la consistencia, la
completitud y la corrección.
• Se suelen basar en notaciones matemáticas
similares a las del álgebra de conjuntos y la
lógica.
173. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 173
01/06/2021
Métodos Formales
Ventajas
• Se comprende mejor el sistema.
• La comunicación con el cliente
mejora ya que se dispone de una
descripción clara y no ambigua de
los requisitos del usuario.
• El sistema se describe de manera
más precisa.
• El sistema se asegura
matemáticamente que es correcto
según las especificaciones.
• Mayor calidad software respecto
al cumplimiento de las
especificaciones.
• Mayor productividad
Desventajas
• El desarrollo de herramientas que
apoyen la aplicación de métodos
formales es complicado y los
programas resultantes son
incómodos para los usuarios.
• Los investigadores por lo general
no conocen la realidad industrial.
• Es escasa la colaboración entre la
industria y el mundo académico,
que en ocasiones se muestra
demasiado dogmático.
• Se considera que la aplicación de
métodos formales encarece los
productos y ralentiza su
desarrollo.
174. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 174
01/06/2021
Métodos formales
OO
Conceptos
básicos
Fundamentos
matemáticos
básicos
Fundamentos
sobre OO
Proceso de
desarrollo de
software
Modelos
matemáticos
Lógica de primer
orden
Especificaciónes
algebraicas
Redes de Petri
Lógica temporal
Métodos semi-
formales
Métodos
generalistas
Métodos
orientados a
sistemas reactivos
Métodos
orientados a
componentes
Métodos formales
Métodos basados
en lógica de
primer orden
Métodos basados
en formalismos
algebraicos
Métodos basados
en redes de Petri
Métodos basados
en lógica temporal
175. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 175
01/06/2021
Clasificación de métodos Formales
La clasificación más común se realiza en base al modelo matemático
subyacente en cada método, de esta manera podrían clasificarse en:
• Especificaciones basadas en lógica de primer orden y teoría de
conjuntos: permiten especificar el sistema mediante un concepto
formal de estados y operaciones sobre estados. Los datos y
relaciones/funciones se describen en detalle y sus propiedades se
expresan en lógica de primer orden. La semántica de los lenguajes
está basada en la teoría de conjuntos. Los métodos de este tipo
más conocidos son: Z, VDM y B.
• Especificaciones algebraicas: proponen una descripción de
estructuras de datos estableciendo tipos y operaciones sobre esos
tipos. Para cada tipo se define un conjunto de valores y operaciones
sobre dichos valores. Las operaciones de un tipo se definen a
través de un conjunto de axiomas o ecuaciones que especifican las
restricciones que deben satisfacer las operaciones. Métodos más
conocidos: Larch, OBJ, TADs.
176. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 176
01/06/2021
Clasificación de métodos Formales
• Especificación de comportamiento:
– Métodos basados en álgebra de procesos: modelan la
interacción entre procesos concurrentes. Esto ha potenciado su
difusión en la especificación de sistemas de comunicación
(protocolos y servicios de telecomunicaciones) y de sistemas
distribuidos y concurrentes. Los más conocidos son: CCS,CSP y
LOTOS.
– Métodos basados en Redes de Petri: una red de petri es un
formalismo basado en autómatas, es decir, un modelo formal
basado en flujos de información. Permiten expresar eventos
concurrentes. Los formalismos basados en redes de petri
establecen la noción de estado de un sistema mediante lugares
que pueden contener marcas. Un conjunto de transiciones (con
pre y post condiciones) describe la evolución del sistema
entendida como la producción y consumo de marcas en varios
puntos de la red.
177. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 177
01/06/2021
Clasificación de métodos Formales
– Métodos basados en lógica temporal: se usan para
especificar sistemas concurrentes y reactivos. Los sistemas
reactivos son aquellos que mantienen una continua interacción
con su entorno respondiendo a los estímulos externos y
produciendo salidas en respuestas a los mismos, por lo tanto el
orden de los eventos en el sistema no es predecible y su
ejecución no tiene por qué terminar.
178. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 178
01/06/2021
Contenido
• Modelado de procesos de
negocios
– BPM
– BPMN
– Herramientas de modelado de
procesos de negocios
• Modelado estático del
sistema
– Diagrama de clases
– Lenguajes formales de
especificación
– Lenguaje restringido a objetos
(OCL)
• Modelado del
comportamiento
– Diagramas de estado
– Diagramas de secuencias
– Diagrama de actividades
• Modelado de arquitectura
– Diagramas de componentes
– Diagramas de despliegue
• Metamodelado
– MDA/MDE/Metamodelos
– Lenguajes de Dominio
Específico (DSL)
179. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 179
01/06/2021
Object Constraint Language 2.0 (OCL)
• Complemento a UML.
• Lenguaje para escribir expresiones formales acerca de
modelos UML.
• Usos:
• Especificación de invariantes en clases y tipos.
• Especificación de invariantes de tipo para Estereotipos.
• Describir pre- y post-condiciones en Operaciones.
• Describir condiciones de guarda.
• Especificar destinatarios para mensajes y acciones.
• Especificar restricciones en Operaciones.
• Especificar reglas de derivación para atributos.
180. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 180
01/06/2021
Object Constraint Language 2.0 (OCL)
• Invariantes:
• Condiciones o restricciones que deben cumplirse siempre.
• Ejemplo
“El número de empleados debe ser mayor que 50”
context Compañía inv:
self. númeroDeEmpleados > 50
Compañía
context c:Compañía inv suficientesEmpleados:
c.númeroDeEmpleados > 50
{self. númeroDeEmpleados > 50}
181. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 181
01/06/2021
Object Constraint Language 2.0 (OCL)
• Condiciones
• Pre-condiciones o post-condiciones que deben cumplirse en operaciones
• Sintaxis
context NombreTipo::NombreOperación(Param1 : Tipo1, ...
):TipoRetorno
pre parametroOk: param1 < ...
post resultadoOk : result > ...
• Ejemplo
context Persona::nómina(fecha : Date) : Integer
post: result > 650
182. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 182
01/06/2021
Object Constraint Language 2.0 (OCL)
• Valores iniciales y derivados
• Sintaxis
context NombreTipo::NombreAtributo: Tipo
init: –- alguna expresión representando el valor inicial
context NombreTipo::NombreRolAsociación: Tipo
derive: –- alguna expresión representando la regla de derivación
• Ejemplos
context Persona::estaEnParo: Boolean
init: true
derive: if self.empleador->notEmpty()
false
else
true
end if
183. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 183
01/06/2021
Object Constraint Language 2.0 (OCL)
• Definiciones
• Ejemplo
context Persona
def: ingresos : Integer = self.puesto.sueldo->sum()
def: apodo : String = ’Gallito rojo’
• Navegación y combinación de expresiones
• Ejemplos
a) “Los casados tienen al menos 18 años de edad”
context Persona inv:
b) “Una compañía tiene como mucho 50 empleados”
context Companía inv:
self.empleado
- >size() <= 50
self.esposa >notEmpty() implies self.esposa.edad >= 18 and
self.esposo >notEmpty() implies self.esposo.edad >= 18
184. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 184
01/06/2021
Contenido
• Modelado de procesos de
negocios
– BPM
– BPMN
– Herramientas de modelado de
procesos de negocios
• Modelado estático del
sistema
– Diagrama de clases
– Lenguajes formales de
especificación
– Lenguaje restringido a objetos
(OCL)
• Modelado del
comportamiento
– Diagramas de estado
– Diagramas de secuencias
– Diagrama de actividades
• Modelado de arquitectura
– Diagramas de componentes
– Diagramas de despliegue
• Metamodelado
– MDA/MDE/Metamodelos
– Lenguajes de Dominio
Específico (DSL)
185. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 185
01/06/2021
Contenido
• Modelado de procesos de
negocios
– BPM
– BPMN
– Herramientas de modelado de
procesos de negocios
• Modelado estático del
sistema
– Diagrama de clases
– Lenguajes formales de
especificación
– Lenguaje restringido a objetos
(OCL)
• Modelado del
comportamiento
– Diagramas de estado
– Diagramas de secuencias
– Diagrama de actividades
• Modelado de arquitectura
– Diagramas de componentes
– Diagramas de despliegue
• Metamodelado
– MDA/MDE/Metamodelos
– Lenguajes de Dominio
Específico (DSL)
186. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 186
01/06/2021
Diagrama de Estados
• Muestra el comportamiento de un objeto representando
los estados en que se puede encontrar y los eventos
que le hace pasar de uno a otro.
• Se utiliza para:
– Modelar el estado interno de una entidad
– Modelar el estado de un caso de uso
• Da una vista dinámica del sistema
• Permite:
– Anidamiento: un estado con subestados
– Estados paralelos: reduce el nro. de estados necesarios en el
modelo
– Condiciones de bifurcación
187. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 187
01/06/2021
Diagramas de estado para objetos con comportamiento dinámico
interesante
BlinkHours
BlinkMinutes
IncrementHrs
IncrementMin.
BlinkSeconds IncrementSec.
StopBlinking
[button1&2Pressed]
[button1Pressed]
[button2Pressed]
[button2Pressed]
[button2Pressed]
[button1Pressed]
[button1&2Pressed]
[button1&2Pressed]
State
Initial state
Final state
Transition
Event
Represent
behavior as
states and
transitions
188. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 188
01/06/2021
Diagrama de Estados – Ejemplo 1
Esperar
Tarjeta
Pedir PIN
ingreso tarjeta
Seleccionar
cuenta y monto
Devolver
Tarjeta
Dar Dinero
Contar Dispensar
Contar
retiro de tarjeta
ingresar PIN[ PIN correcto ]
ingreso PIN [PIN incorrecto]
Verificar
fondos
ingreso cuenta y monto
Dispensar
dinero suficiente
efectivo retirado
contesta[ fondos suficientes ]
fondos insuficientes
189. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 189
01/06/2021
Diagrama de Estados –Ejemplo 2
Wednesday, April 16, 2008
Ciclo de Vida de Incidentes
Versión 0.8
En Desarrollo
En
Análisis
En
Implementación
Asignado Programador
Especificación
Insuficiente
En
Testing
Desarrollado
No hay especificación CP
Reportes Invalidantes
No reproducible
Implementado
Testing
Propuesto En Desarrollo
Tomado por
Analista
En Validación
Verificado
Validado
Cerrado Pendiente Pasaje
a Producción
Pasaje a
Producción
Especificación
Insuficiente
Aprobar
estimación
Faltan CP
En Espera
Cancelado
No reproducible
Duplicado
Estimación no
aprobada
No
Cumple
Especificación
190. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 190
01/06/2021
Contenido
• Modelado de procesos de
negocios
– BPM
– BPMN
– Herramientas de modelado de
procesos de negocios
• Modelado estático del
sistema
– Diagrama de clases
– Lenguajes formales de
especificación
– Lenguaje restringido a objetos
(OCL)
• Modelado del
comportamiento
– Diagramas de estado
– Diagramas de secuencias
– Diagrama de actividades
• Modelado de arquitectura
– Diagramas de componentes
– Diagramas de despliegue
• Metamodelado
– MDA/MDE/Metamodelos
– Lenguajes de Dominio
Específico (DSL)
191. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 191
01/06/2021
Diagramas de secuencia
• El diagrama de secuencia de un sistema muestra
gráficamente los eventos que originan los actores y que
impactan al sistema.
• La creación de los diagramas de secuencia depende de la
formulación de los casos de uso.
• Durante la operación del sistema, los actores generan
eventos, solicitando alguna operación a cambio.
– Ejemplo: cuando un cajero ingresa un código de barras de un
artículo, está pidiendo al sistema de TPV que registre esa
compra. Con este evento se inicia una operación en el sistema.
192. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 192
01/06/2021
Diagramas de Secuencia
• El diagrama de secuencia de UML muestran la
forma en que los objetos se comunican entre si al
transcurrir el tiempo.
• Los diagramas de secuencia, formalmente
diagramas de traza de eventos o de interacción de
objetos, se utilizan con frecuencia para validar los
casos de uso.
• El diagrama muestra:
– Los objetos participando de la interacción con su
línea de vida
– La secuencia de mensajes intercambiados entre
objetos de una secuencia ordenada
– Línea de vida activa
193. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 193
01/06/2021
Antes de hacer el diseño lógico de la aplicación de software, es
conveniente investigar y definir su comportamiento como una "caja negra".
Se estudia el comportamiento del sistema, desde la perspectiva de qué
es lo que hace, y no de cómo lo hace.
Definición: El diagrama de secuencia de un sistema es una representación
que muestra, en determinado escenario de un caso de uso, los eventos
generados por actores externos, su orden y los eventos internos del sistema.
En esta fase del proyecto, el sistema mismo es una caja negra.
Diagramas de secuencia
194. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 194
01/06/2021
Diagramas de secuencia UML
• Utilizado durante el análisis de
requisitos
– Para refinar las descripciones de casos
de uso
– para encontrar objetos adicionales
("objetos participantes")
• Utilizado durante el diseño del
sistema
– para refinar las interfaces del subsistema
• Las clases están representadas
por columnas
• Los mensajes están representados
por flechas
• Las activaciones están
representadas por rectángulos
estrechos
• Las líneas de vida están
representadas por líneas
discontinuas
selectZone()
pickupChange()
pickUpTicket()
insertCoins()
Passenger
TicketMachine
196. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 196
01/06/2021
Diagramas de secuencia
197. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 197
01/06/2021
UML: Diagrama de secuencia
:LCDDisplay
blinkHours()
blinkMinutes()
refresh()
commitNewTime()
:Time
incrementMinutes()
stopBlinking()
:Watch
pressButton1()
pressButton2()
pressButtons1And2()
pressButton1()
:WatchUser
Objeto
Mensaje
Activación
Los diags. de sec. representan el comportamiento como interacciones
Actor
Línea de vida
198. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 198
01/06/2021
Supongamos el caso de uso Comprar productos:
Caso de uso: Comprar productos
Actores: Cliente, cajero
Tipo: Primario
Descripción: Un Cliente llega a la caja registradora con los artículos que va a
comprar. El Cajero registra los artículos y cobra el importe. Al
terminar la operación, el Cliente se marcha con los productos.
Diagramas de secuencia
199. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 199
01/06/2021
El diagrama de secuencia del caso de uso ComprarProductos podría ser el siguiente:
Diagramas de secuencia
200. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 200
01/06/2021
Ejemplo: llamada convencional
201. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 201
01/06/2021
Mensajes anidados
• El origen de una flecha indica la activación que envió el mensaje.
• Una activación es tan larga como todas las activaciones anidadas
• Las flechas discontinuas horizontales indican el flujo de datos
• Las líneas punteadas verticales indican líneas de vida
selectZone()
Passenger
ZoneButton TarifSchedule Display
lookupPrice(selection)
displayPrice(price)
price
Flujo de
datos
… continuará...
202. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 202
01/06/2021
Iteración y condición
• La iteración se indica con un * que precede al nombre del mensaje
• La condición se indica mediante una expresión booleana en [ ] antes
del nombre del mensaje
Passenger
ChangeProcessor
insertChange(coin)
CoinIdentifier Display CoinDrop
displayPrice(owedAmount)
lookupCoin(coin)
price
[owedAmount<0] returnChange(-owedAmount)
Iteración
Condición
… continuará...
… continúa de la diapositiva anterior ...
*
203. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 203
01/06/2021
Creación y destrucción
• La creación se indica con una flecha de mensaje que apunta al objeto.
• La destrucción se indica con una marca X al final de la activación de
destrucción.
• En entornos de recolección de basura (Ej. Garbage Collector de Java), la
destrucción se puede utilizar para indicar el final de la vida útil de un
objeto.
Passenger
ChangeProcessor
… continúa de la diapositiva anterior ...
Ticket
createTicket(selection)
free()
Creación
Destrucción
print()
204. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 204
01/06/2021
Resumen del diagrama de secuencia
• El diagrama de secuencia de UML
representa el comportamiento en términos
de interacciones.
• Útil para encontrar objetos perdidos.
• Consume mucho tiempo para elaborarlos
pero vale la pena la inversión.
• Complementa los diagramas de clases
(que representan la estructura).
205. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 205
01/06/2021
Contenido
• Modelado de procesos de
negocios
– BPM
– BPMN
– Herramientas de modelado de
procesos de negocios
• Modelado estático del
sistema
– Diagrama de clases
– Lenguajes formales de
especificación
– Lenguaje restringido a objetos
(OCL)
• Modelado del
comportamiento
– Diagramas de estado
– Diagramas de secuencias
– Diagrama de actividades
• Modelado de arquitectura
– Diagramas de componentes
– Diagramas de despliegue
• Metamodelado
– MDA/MDE/Metamodelos
– Lenguajes de Dominio
Específico (DSL)
206. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 206
01/06/2021
Análisis y Diseño OO
Las herramientas usadas en la etapa de análisis (investigación del problema) se
pueden resumir en la siguiente table:
Herramienta de análisis Preguntas que contesta
Diagramas de Actividades
¿Cómo se lleva a cabo cada proceso del
dominio?
Casos de uso ¿Cuáles son las tareas del dominio?
Modelo conceptual
¿Cuáles son los conceptos, los términos del
dominio?
Diagramas de interacción
¿Cuáles son los eventos y las operac. del
sistema?
207. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 207
01/06/2021
Diagrama de Actividades - Modelado del Negocio
•¿Qué es el modelado de negocio?
–El modelado de negocio es una técnica para modelar el
funcionamiento de una organización a través de sus procesos de
negocio.
•Técnicas habituales
–Casos de uso* de negocio: forma textual.
–Diagramas de actividades: forma diagramática.
•El concepto de actor
–Tanto en los casos de uso de negocio como en los diagramas de
actividades aparece el concepto de actor.
–En modelado de negocio, un actor es un rol o papel que juega
una persona u otro sistema en algún proceso de negocio de una
organización.
–La forma habitual de representar gráficamente a un actor es
mediante una especie de monigote.
*Los casos de uso se los verá en los próximos días.
Actor
208. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 208
01/06/2021
• ¿Qué son los diagramas de actividad?
–Es una notación que forma parte de UML y que se utiliza
principalmente para modelar procesos de negocio, especificando:
✓ La secuencia de actividades que componen los procesos de
negocio.
✓ Los actores que realizan las actividades (opcional).
✓ La información que fluye de unas actividades a otras
(opcional).
–Dentro del proceso de ingeniería de requisitos, se utilizarán para
modelar los procesos de negocio, tanto actuales como a
implantar, de la organización para la que se va a desarrollar el
sistema software.
–A partir del modelo del negocio al que el sistema software debe
dar soporte, se plantean los objetivos y requisitos del sistema a
desarrollar.
Diagrama de Actividades - Modelado del Negocio
209. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 209
01/06/2021
Diagrama de Actividad
• Se construye para modelar el flujo del control (workflow)
• Elementos:
• Permite modelar el flujo del trabajo
– En un sistema
– En una organización
Estado de Actividad (o de Acción)
Estado Inicial
Estado Final
Transiciones
Actividades concurrentes
Bifurcaciones
Condiciones de la bifurcación [ guarda ]
Andariveles
210. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 210
01/06/2021
Diagrama de Actividad - Ejemplo
Se abren Flujos
Paralelos
Sincronización
Guarda de
decisión
211. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 211
01/06/2021
Gestión de Pedidos
Ejemplo:
gestión
de
pedidos
Recibir Pedido
Enviar
Factura
Factura
Recibir
Pago
Satisfacer
Pedido
Pedido
Cerrar Pedido
Producción
Actividad inicial
Indica el comienzo del
proceso de negocio.
Actividad final
Indica el final del
proceso de negocio.
Calles
Permiten especificar qué
actividades hace cada actor.
Nodo de objeto
Representa información
o documentos (objetos)
que se generan en una
actividad y se
consumen en otra.
Comienzo de
paralelismo
Indica que a partir
de ahí se realizan
varias actividades en
paralelo.
Fin de paralelismo
Indica la terminación
de todas las
actividades que se
realizaban en
paralelo.
Transición
Indica que una
actividad ha
terminado y se pasa
a la siguiente.
Flujo de objeto
Representa un
flujo de
información
(objetos) entre
actividades.
Actividad compleja
Son actividades
complejas que
necesitan un
diagrama de
actividades propio
para ser descritas.
Facturación
Servicio al Cliente
Entregar
Pedido
Actividad
Representa un paso
en el proceso de
negocio.
212. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 212
01/06/2021
• Actividades
– Una actividad representa un paso dentro de
proceso de negocio.
• Su nombre, que debe ser siempre una forma
verbal, debe ser representativo y coherente
dentro del proceso de negocio.
• Si una actividad es compleja, puede ser necesario
mostrar su descomposición en actividades más
simples en otro diagrama.
• En cada diagrama de actividades, las actividades
deben tener un nivel de abstracción similar.
• Actividades iniciales y finales
– La actividad inicial, que debe ser única, indica dónde
comienza el proceso de negocio.
– Una actividad final, de las que puede haber varias o
ninguna (proceso sin fin), indica dónde puede
terminar el proceso
Diagrama de Actividades - Modelado del Negocio
Actividad
Actividad
compleja
Actividad
inicial
Actividad
final
213. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 213
01/06/2021
• Transiciones
– Indican la secuencia de actividades que componen el proceso de
negocio.
– Cuando una actividad termina de realizarse se produce la
transición hacia la siguiente actividad.
• Transiciones condicionales
– Indican que la siguiente actividad a realizar depende de
cierta condición.
– Como mínimo y como máximo, sólo puede haber una opción
válida al evaluar la condición
Diagrama de Actividades - Modelado del Negocio
Actividad 1 Actividad 2
– El símbolo de
condición se puede
usar también para
unir varios caminos
condicionales
(opcional).
Entrega de pedido
[otro caso] [urgente]
Entrega
Ordinaria
Entrega
Urgente
214. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 214
01/06/2021
• Paralelismo
– A veces, algunos pasos de un proceso de
negocio se realizan simultáneamente (en
paralelo) o sin un orden definido.
– Para indicar que comienzan varias actividades
a la vez se usa un símbolo de comienzo de
paralelismo (fork), al que llega una transición
y del que salen varias (al menos dos).
– Para indicar que todas las actividades que
se hacían en paralelo han terminado se usa
un símbolo de fin de paralelismo (join), al
que llegan varias transiciones (al menos
dos) y del que sale una sola transición.
– La transición de salida del join sólo se realiza
cuando han terminado todas las actividades
que se realizaban en paralelo.
Diagrama de Actividades - Modelado del Negocio
Realizar Práctica*
Seleccionar
Sistema
Presentar
Práctica
Estudiar
Negocio
Elaborar
Requisitos
Realizar
Modelos
*Proceso muy, muy simplificado.
215. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 215
01/06/2021
• Calles
– La división en calles permite asociar actividades con aquellos actores
que las realizan. Cada calle corresponde a un actor del proceso de
negocio.
Diagrama de Actividades - Modelado del Negocio
Gestión de fondosbibliotecarios
Director Bibliotecario Usuario
Catalogar
nuevo libro
Registrar
préstamo
Leer libro
Registrar
devolución
[libro OK]
Retirar
libro
[libro deteriorado]
216. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 216
01/06/2021
• Flujos de objetos
– Lo normal es que fluya información entre las
actividades de un proceso de negocio.
– En el caso de que resulte interesante mostrar ese flujo (no
siempre lo es), se pueden usar flujos de objetos.
– Si la información de salida de una actividad es la entrada de
otra actividad, se asume que existe una transición implícita
entre ambas.
Diagrama de Actividades - Modelado del Negocio
Aseguramiento de la calidad de losrequisitos
Validación
Verificación
Requisitos
[borrador]
Requisitos
[analizados]
Requisitos
[verificados]
Requisitos
[validados]
Análisis
transiciones implícitas
(no es necesario dibujarlas)
217. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 217
01/06/2021
Ejemplo:
venta
por
caja
Cliente Banco
Incluir compras
del carrito
Calcular tasas
y descuentos
Recibo
Caja
Carrito
Solicitar
Autorización
Pago
[pago al
contado] [otro caso]
Autorizar
pago
Emitir
Recibo
Comprar y
llenar carrito
Entregar
compras
Venta por caja
Cajero
218. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 218
01/06/2021
Contenido
• Modelado de procesos de
negocios
– BPM
– BPMN
– Herramientas de modelado de
procesos de negocios
• Modelado estático del
sistema
– Diagrama de clases
– Lenguajes formales de
especificación
– Lenguaje restringido a objetos
(OCL)
• Modelado del
comportamiento
– Diagramas de estado
– Diagramas de secuencias
– Diagrama de actividades
• Modelado de arquitectura
– Diagramas de componentes
– Diagramas de despliegue
• Metamodelado
– MDA/MDE/Metamodelos
– Lenguajes de Dominio
Específico (DSL)
219. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 219
01/06/2021
Contenido
• Modelado de procesos de
negocios
– BPM
– BPMN
– Herramientas de modelado de
procesos de negocios
• Modelado estático del
sistema
– Diagrama de clases
– Lenguajes formales de
especificación
– Lenguaje restringido a objetos
(OCL)
• Modelado del
comportamiento
– Diagramas de estado
– Diagramas de secuencias
– Diagrama de actividades
• Modelado de arquitectura
– Diagramas de componentes
– Diagramas de despliegue
• Metamodelado
– MDA/MDE/Metamodelos
– Lenguajes de Dominio
Específico (DSL)
220. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 220
01/06/2021
Desarrollo Basado en Componentes
• Surgimiento a fines de los ’90
– originado por el no cumplimiento de las expectativas de
reutilización que había prometido el desarrollo OO, debido a:
• Clases demasiado detalladas, específicas y ligadas a
las aplicaciones
• Muchas veces hacía necesario disponer del código
fuente => dificultades en comercialización
• Visión de componente: proveedor de
servicios
– Entidad ejecutable e independiente
– Publica la interfaz de servicios suministrados y las
interacciones son a través de ésta
– Generalmente también define interfaz de servicios
que debe proveer el sistema que lo utiliza
221. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 221
01/06/2021
Componentes
• Es una parte modular de un sistema que encapsula
el estado y comportamiento de un conjunto de
clasificadores (p.e. clases).
• Especifica un contrato de los servicios que
proporciona y de los que requiere en términos de
interfaces requeridas y proporcionadas
• Es una unidad reemplazable que se puede sustituir
en tiempo de diseño o ejecución por otro
componente que ofrezca la misma funcionalidad en
base a la compatibilidad de sus interfaces.
• Vista externa vs. Vista interna
222. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 222
01/06/2021
Componentes
• Un componente es una parte reemplazable de un
sistema, que conforma con/y proporciona la
implementación de un conjunto de interfaces.
• Un sistema basado en componentes está formado por
componentes que implementan las interfaces, junto con
otros que acceden a los servicios proporcionados por
esas interfaces.
• Servicios independientes de la localización y
reemplazables.
• Interfaces proporcionadas vs. Interfaces requeridas.
223. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 223
01/06/2021
Propiedades de un componente
• Es una unidad de despliegue independiente.
• Puede ser conectado con otros componentes
• En una aplicación dada existirá una única copia
• Es una parte sustituible de un sistema (conforma con
una o más interfaces)
• Realiza una función bien definida (cohesión física y
lógica)
• Abarca más de una colaboración de clases
• Existe en el contexto de una arquitectura bien definida.
• Presupone una infraestructura tecnológica en la que se
piensa utilizar
224. Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 224
01/06/2021
Mecanismos comunes de UML
• Dicotomía interfaz / implementación
IOrtografia
asistenteOrtografico
IUnknown
IDiccionario