SlideShare una empresa de Scribd logo
1 de 427
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 1
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 2
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 3
25/02/2023
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)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 4
25/02/2023
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/
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 5
25/02/2023
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)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 6
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 7
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 8
25/02/2023
Mi lavadora no funciona
issue-to-resolution process
VALUE
Customer
Warranty?
Parts
Store
Service
Dispatch
Technician
Customer
Call Centre
Customer
© Michael Rosemann
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 9
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 10
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 11
25/02/2023
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)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 12
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 13
25/02/2023
Lecciones aprendidas
Tecnologías de
la Información
Cambio
Proceso
Proporciona
Proporciona
Valor de Negocio
Index Group (1982)
Permite
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 14
25/02/2023
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/
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 15
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 16
25/02/2023
© M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
Un proceso sencillo
Actividades
Eventos
Flujo de
secuencia
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 17
25/02/2023
Tokens
© M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 18
25/02/2023
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)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 19
25/02/2023
BPMN…..
• Un modelo de procesos BPMN consiste de
un gráfico de cuatro tipo de elemento :
activity gateway
event sequence
flow
start end
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 20
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 21
25/02/2023
• 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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 22
25/02/2023
• 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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 23
25/02/2023
BPMN Model
Purchase
order
received
Check stock
availability
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 24
25/02/2023
• 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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 25
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 26
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 27
25/02/2023
[…] 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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 28
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 29
25/02/2023
Data-based XOR OR
AND
Complex
Event-based XOR
Fig 4.84. Gateway types in the BPMN, Object Management Group (2006)
M.
Weske:
Business
Process
Management,
©
Springer-Verlag
Berlin
Heidelberg
2007
Gateways
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 30
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 31
25/02/2023
Facturación
• Cuando se recibe la factura de un cliente, tiene que ser
comprobada. La comprobación puede resultar en tres
casos:
• No hay errores, en cuyo caso la factura es contabilizada;
• Hay errores pero pueden ser corregidos, en cuyo caso la
factura es reenviada al cliente, y
• Hay errores pero no pueden ser corregidos, en cuyo
caso la factura se bloquea. Al terminar una de estas tres
atividades, la factura es almacenada y el proceso
termina.
© M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 32
25/02/2023
Decisiones exclusivas
XOR split XOR join
© M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 33
25/02/2023
Gateways
• Ejecución en paralelo (bifurcación): se usa
cuando dos o más tareas se empiezan a
llevar a cabo concurrentemente
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 34
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 35
25/02/2023
Embarque ….
• Al recibir la tarjeta de embarque, los
pasajeros van al control de seguridad.
Aquí tienen que pasar el control personal
y el control del equipaje. Una vez
realizado, pueden pasar a la puerta de
embarque.
© M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 36
25/02/2023
Ejecución en paralelo
© M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 37
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 38
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 39
25/02/2023
Pedidos
• Una compañía tiene dos almacenes que
almacenan distintos productos, uno está en
Amsterdam y otro en Hamburgo. Cuando se
recibe un pedido, se distribuye a estos
almacenes: si alguno de los productos están
en Amsterdam, un subpedido se envía allí;
del mismo modo, si algún producto está en
Hamburgo, un subpedido se envía allí.
Después el pedido se registra y el proceso
termina.
© M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 40
25/02/2023
Decisión inclusiva
© M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 41
25/02/2023
Punto muerto
© M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 42
25/02/2023
Proceso de gestión de pedidos…
• Si el producto solicitado no está en stock, hace falta
fabricarlo antes de que la gestión del pedido pueda
continuar. Para fabricar un producto, es necesario pedir
los materiales para fabricarlo. Dependiendo del
producto, los materiales se pueden pedir al Proveedor 1,
al Proveedor 2 o a ambos. Una vez que los materiales
están disponibles, el producto se puede fabricar y el
pedido se confirma. Por otro lado, si el producto está en
stock, se obtiene del almacen antes de confirmar el
pedido.
© M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 43
25/02/2023
Proceso de gestión de pedidos…
© M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 44
25/02/2023
Ministerio de ….
• En el ministerio de hacienda, las peticiones recibidas se
registran en el sistema. Luego se investigan para
preparar una respuesta del ministerio. La finalización de
la respuesta incluye la preparación de la misma por un
miembro del gabinete y su revisión por parte del
responsible del mismo.
• Si éste no aprueba la respuesta, tiene que ser
preparada de nuevo por el miembro del gabinete. El
proceso termina cuando la respuesta es aprobada.
© M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 45
25/02/2023
Bucles
© M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 46
25/02/2023
When?
Flows
Gateways
Which?
Data / Materials
What?
Tasks
Events
Who?
Organization
Puntos de Vista para el Modelamiento de Procesos
Lanes &
Pools
Data Objects,
Stores
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 47
25/02/2023
Pools y lanes
• Los pools y lanes no tienen un significado
concreto, pero lo habitual es:
– Pools: Representan organizaciones / procesos
– Lanes: Representan roles o departamentos en
una organización (nunca personas concretas)
Pool
Flow Objects
Events
Activities Place
Order
Gateways
Connecting Objects
Sequence Flow
Message Flow
Association
Swimlanes
Lane
Data Object
Group
Artefacts
Annotation
Fig 4.78. Business Process Modeling Notation: categories of elements
M.
Weske:
Business
Process
Management,
©
Springer-Verlag
Berlin
Heidelberg
2007
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 48
25/02/2023
Order-to-cash: Procesos con lanes
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 49
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 50
25/02/2023
Order-to-cash
50
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 51
25/02/2023
Which?
Data / Materials
Process Modelling Viewpoints
Data Objects,
Stores
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 52
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 53
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 54
25/02/2023
A Data Object
BPMN Information Artifacts
Emit
invoice
Purchase
order
Invoice
Retrieve client
information
Oracle CRM Client info
A Data Store
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 55
25/02/2023
Anotaciones
Quick Note: BPMN Text Annotations
Clear vendor
line items
For blocked invoices
Ship goods
Includes packaging
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 56
25/02/2023
BPMN Poster (link in “Readings” page)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 57
25/02/2023
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)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 58
25/02/2023
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)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 59
25/02/2023
Diagramas de clases
• Definición
• Clases
• Atributos
• Métodos
• Encapsulamiento/Visibilidad
• Instancia
• Relaciones
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 60
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 61
25/02/2023
Diagrama de Clases
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 62
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 63
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 64
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 65
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 66
25/02/2023
Diagramas de clases
• Definición
• Clases
• Atributos
• Métodos
• Encapsulamiento/Visibilidad
• Instancia
• Relaciones
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 67
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 68
25/02/2023
Notación UML para clases
Identificador de la clase,
si es abstracta va en cursiva
atributos
métodos
Rectángulo
longitud
ancho
crearRectangulo
obtenerArea
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 69
25/02/2023
Clase Instancia 1 Instancia 2
Perro unPerro
Fido
Sultán
unPerro
nombre
Clases
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 70
25/02/2023
Diagramas de clases
• Definición
• Clases
• Atributos
• Métodos
• Encapsulamiento/Visibilidad
• Instancia
• Relaciones
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 71
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 72
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 73
25/02/2023
Perro
nombre
piel
peso
edad
estátus
Nombrar o identificar objetos
Describir características
Describir estados
Atributos de Clases
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 74
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 75
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 76
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 77
25/02/2023
¿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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 78
25/02/2023
Diagramas de clases
• Definición
• Clases
• Atributos
• Métodos
• Encapsulamiento/Visibilidad
• Instancia
• Relaciones
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 79
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 80
25/02/2023
Sinónimos de Método
• Operación
• Responsabilidad
• Servicio
• Función
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 81
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 82
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 83
25/02/2023
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...
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 84
25/02/2023
Diagramas de clases
• Definición
• Clases
• Atributos
• Métodos
• Encapsulamiento/Visibilidad
• Instancia
• Relaciones
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 85
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 86
25/02/2023
… 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)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 87
25/02/2023
… 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"
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 88
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 89
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 90
25/02/2023
Diagramas de clases
• Definición
• Clases
• Atributos
• Métodos
• Encapsulamiento/Visibilidad
• Instancia
• Relaciones
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 91
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 92
25/02/2023
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”);
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 93
25/02/2023
Diagramas de clases
• Definición
• Clases
• Atributos
• Métodos
• Encapsulamiento/Visibilidad
• Instancia
• Relaciones
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 94
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 95
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 96
25/02/2023
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..*
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 97
25/02/2023
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..*
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 98
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 99
25/02/2023
Relaciones Dinámicas
• Los objetos están relacionados por sus
interacciones.
• Pertenecen a los modelos dinámicos.
• También conocidas como:
colaboraciones, interacciones.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 100
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 101
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 102
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 103
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 104
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 105
25/02/2023
Asociación
asociación
Clase
Atributos
Métodos
Clase
Atributos
Métodos
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 106
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 107
25/02/2023
Asociaciones
• Las asociaciones tienen los siguientes
componentes:
– Nombre
– Rol
– Multiplicidad
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 108
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 109
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 110
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 111
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 112
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 113
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 114
25/02/2023
A B
0..1
Una A siempre se asocia con ninguna o con una B
Escritor Agente
0..1
Ejemplo de Asociaciones
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 115
25/02/2023
A B
*
Una A siempre se asocia con ninguna, con una o con más B
Persona Compañía
*
Ejemplo de Asociaciones
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 116
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 117
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 118
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 119
25/02/2023
Persona Banco
Cuenta
número de cuenta
estatus {A,I}
balance
calcular balance
depósito
retiro
cliente de 
Ejemplo de Clase de Asociación
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 120
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 121
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 122
25/02/2023
Ejemplo de Asociación circular
Persona
*
1
trabajador
supervisor
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 123
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 124
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 125
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 126
25/02/2023
Ejemplo de asociaciones múltiples
Estudiante Seminario
toma *
1..*
ayuda
*
0..1
ayudante
estudiante
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 127
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 128
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 129
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 130
25/02/2023
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}
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 131
25/02/2023
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..*
*
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 132
25/02/2023
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}
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 133
25/02/2023
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 
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 134
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 135
25/02/2023
A B
r1
r2
C
{or}
Ejemplo de Restricción OR
{or}
Cliente
club de vídeo Video
tiene rentado
tiene reservado
0..1
*
*
*
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 136
25/02/2023
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
*
*
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 137
25/02/2023
es miembro de
es director de
Persona Comité
{subset}
1..*
Ejemplo de Restricción Subconjunto
A B
r1
r2
{subconjunto}
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 138
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 139
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 140
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 141
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 142
25/02/2023
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?
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 143
25/02/2023
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
*
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 144
25/02/2023
Ejemplos de Agregación
Mesa
Pata
Partes
Agregado (el todo)
1..*
Compañía
Departamento
*
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 145
25/02/2023
Ejemplos de Agregación
Documento Párrafo Sentencia
Computador
Caja del Sist. Mouse Teclado
Monitor
Chasis CPU RAM
1..* 1..*
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 146
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 147
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 148
25/02/2023
Ejemplo de Composición
Ventana
Frame
*
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 149
25/02/2023
Ejemplo de Agregación y Composición
Polígono
Punto
Estilo
color
Círculo
radio
3..*
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 150
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 151
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 152
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 153
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 154
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 155
25/02/2023
Herencia
• La herencia indica una relación “es un tipo de"
– La herencia es una relación entre clases
– Las nuevas clases añaden especialización a las
existentes
Músico
Violinista
Clase base
Clase derivada
Generalización
Especialización ¿Es éste un buen
ejemplo de
herencia ?
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 156
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 157
25/02/2023
Notación UML para la Generalización
A
B
Generalización
Especialización
B es un tipo de A
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 158
25/02/2023
Ejemplo de Generalización
Rectángulo
dibujar
mover
longitud
ancho
Circulo
dibujar
mover
radio
Figura Geométrica
dibujar
mover
color
posición
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 159
25/02/2023
Ejemplo de Generalización
Camión
Conductor
Auto Motocicleta
Vehículo registrado a nombre de 
*
Pickup Trailer . . .
18 llantas
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 160
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 161
25/02/2023
unaCuentaBancaria
calcularBalance
deposito
retiro
unaCuentaDeAhorros
unaCuentaCorriente
emitirEstadoDeCuenta
Banco
emitirEstadoDeCuenta
emitirEstadoDeCuenta
Generalización y Herencia
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 162
25/02/2023
Herencia sencilla y múltiple
• Herencia sencilla: derivadas de una clase
base
• Herencia múltiple: derivadas de dos o más
clases base
Instrumento de
cuerda
Violín
Instrumento
musical
Instrumento de
cuerda
Con teclas
Violín tiene una
sola clase base
directa
Instrumento de cuerda
tiene dos clases base
directas
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 163
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 164
25/02/2023
Ejemplo de Herencia Múltiple
RelojDigital RelojAnalógico
RelojDisplayDoble
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 165
25/02/2023
• 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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 166
25/02/2023
¿Qué es el polimorfismo?
• El nombre del método reside en la clase base
• Las implementaciones del método residen en
las clases derivadas
ImpuestoBase
CalcularImpuesto( )
ImpuestoProvincial
CalcularImpuesto( )
ImpuestoCiudadano
CalcularImpuesto( )
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 167
25/02/2023
Polimorfismo
• El nombre del método reside en la clase base
• Los distintos cuerpos del método residen en
las clases derivadas
Músico de cuerda
AfinaTuInstrumento( )
Guitarrista
AfinaTuInstrumento( )
Violinista
AfinaTuInstrumento( )
Un método sin
cuerpo se llama
operación
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 168
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 169
25/02/2023
Notación de Clases Abstractas
Ventana
{abstracto}
minimizar()
maximizar()
Ventana de Windows Ventana de Mac
minimizar()
maximizar()
minimizar()
maximizar()
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 170
25/02/2023
Clases base abstractas
• Algunas clases existen sólo para ser clases
base
– No tiene sentido crear instancias de estas
clases
– Estas clases son abstractas
Músico de cuerda
{ abstract }
Guitarrista
« concrete »
Violinista
« concrete »
Se pueden crear instancias
de clases concretas
No se pueden crear instancias
de clases abstractas
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 171
25/02/2023
Jerarquías de clases
• Las clases con relaciones de herencia
forman jerarquías de clases
Músico
???
Músico de
cuerda
Violín
???
Instrumento
musical
toca
toca
toca
Violinista
Instrumento de
cuerda
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 172
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 173
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 174
25/02/2023
Interfaces
• Las interfaces contienen sólo operaciones,
no implementación
Músico de cuerda
{ abstract }
Violinista
« concrete »
Músico
« interface »
Nada más que operaciones.
No se pueden crear instancias
de una interfaz.
Puede contener implementación.
No se pueden crear instancias de
una interfaz.
Implementa las operaciones heredadas.
Se pueden crear instancias de una clase
concreta.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 175
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 176
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 177
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 178
25/02/2023
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)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 179
25/02/2023
Bibliografía consultada
• Pressman, Roger
S. "Ingeniería del
software." Un
enfoque (2011).
Cap. 21
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 180
25/02/2023
Métodos Formales
• “Los métodos formales utilizados en el desarrollo de sistemas
informáticos son técnicas basadas en matemáticas para
describir las propiedades del sistema. Dichos métodos
formales proporcionan marcos dentro de los cuales las
personas pueden especificar, desarrollar y verificar sistemas
de manera sistemática, en lugar de ad hoc.”
The Encyclopedia of Software Engineering [Mar01]
• El problema con las especificaciones convencionales:
– Contradicciones
– Ambigüedades
– Vaguedad
– Incompletitud
– Niveles mixtos de abstracción
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 181
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 182
25/02/2023
Especificación formal
• Las propiedades deseadas — consistencia, integridad
(completeness) y no ambigüedad — son los objetivos de
todos los métodos de especificación.
• La sintaxis formal de un lenguaje de especificación permite
que los requisitos o el diseño se interpreten de una sola
manera, eliminando la ambigüedad que a menudo ocurre
cuando se debe interpretar un lenguaje natural (por ejemplo,
inglés) o una notación gráfica.
– Las facilidades descriptivas de la teoría de conjuntos y la
notación lógica permiten una declaración clara de hechos
(requisitos).
• La consistencia se asegura probando matemáticamente que
los hechos iniciales pueden mapearse formalmente (usando
reglas de inferencia) en declaraciones posteriores dentro de
la especificación.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 183
25/02/2023
Conceptos de métodos formales
• invariante: una condición que se cumple durante la ejecución del
sistema que contiene una colección de datos
– Es decir, define lo que se garantiza que no cambia.
• estado
– En muchos lenguajes formales, como OCL, un sistema puede
estar en uno de varios estados, cada uno representando un
modo de comportamiento observable externamente.
– El lenguaje Z define un estado como los datos almacenados a
los que un sistema accede y altera
• operación—una acción que tiene lugar en un sistema y lee o
escribe datos en un estado
– La precondición define las circunstancias en las que una
operación en particular es válida.
– La poscondición define lo que sucede cuando una operación ha
completado su acción.
• Es decir, define lo que se garantiza que es verdadero hasta completar
una operación. Esto se define por su efecto sobre los datos.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 184
25/02/2023
Ejemplo: tabla simbólica
• Un programa se usa para
mantener una tabla
simbólica.
– Dicha tabla se utiliza
frecuentemente en muchos
tipos diferentes de
aplicaciones.
– Por ejemplo, una tabla que
utiliza un sistema operativo
para contener los nombres
de los usuarios del sistema
• Consiste en una colección
de ítems sin duplicación
alguna.
1) Wilson
2) Simpson
3) Abel
4) Fernandez
5)
6)
7)
8)
9)
10)
MaxIds = 10
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 185
25/02/2023
Ejemplo: tabla simbólica
• Suponga que la tabla que se presenta en este ejemplo
contiene no mas de MaxIds nombres.
• Esta afirmación, que coloca una restricción sobre la
tabla, es un componente de una condición conocida
como invariante de datos.
• La invariante de datos que se sostiene para la tabla
simbólica recién analizada tiene dos componentes:
1. que la tabla contendrá no mas de MaxIds nombres
2. que no habrá nombres duplicados en la tabla
• Esto significa que, en cualquier momento en el que se
examine la tabla simbólica durante la ejecución del
sistema, siempre se deben cumplir dichas
condiciones.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 186
25/02/2023
Ejemplo: tabla simbólica
• Así como en el lenguaje Z (el estado de un sistema se
representa por los datos almacenados del sistema), el
estado en el ejemplo es la tabla simbólica
• Operaciones:
– Si el programa de tabla simbólica tiene que ver con
agregar y remover nombres de la tabla simbólica,
entonces se asociara con dos operaciones:
• una operación para add() (agregar) un nombre especifico a la
tabla simbólica y
• otra para remove() (remover) un nombre existente de la tabla.
– Si el programa proporciona la facilidad para comprobar si
un nombre especifico esta contenido en la tabla, entonces
habría una operación que regresaría alguna indicación
acerca de si el nombre esta en la tabla.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 187
25/02/2023
Ejemplo: tabla simbólica
• Pueden asociarse tres tipos de condiciones con las
operaciones: invariantes, precondiciones y
poscondiciones. Por ejemplo:
– Invariante: el numero de elementos de la tabla es siempre es
menor que o igual a MaxIds.
– La precondición para una operación que agrega un nombre a
una tabla simbólica de identificadores de personal es valida solo
si el nombre que se agrega no esta contenido en la tabla y
también si hay menos de MaxIds identificadores de personal en
ella.
– Para la operación add(), la poscondición especificaría
matemáticamente que la tabla aumentó con el nuevo
identificador.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 188
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 189
25/02/2023
Métodos formales
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 190
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 191
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 192
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 193
25/02/2023
Conceptos matemáticos
• Conjuntos y especificación de conjuntos
constructivos
• Establecer operadores
• Operadores lógicos
– ej.: ∀i, j: N | 𝑖 > 𝑗 ⇒ 𝑖2
> 𝑗2
– que establece que, para cada par de valores
en el conjunto de números naturales, si i es
mayor que j, entonces i2 es mayor que j2.
• secuencias
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 194
25/02/2023
Conjuntos y especificación constructiva
• Un conjunto es una colección de objetos o
elementos y se utiliza como piedra angular de
los métodos formales.
– Enumeración
• {C++, Pascal, Ada, COBOL, Java}
• #{C++, Pascal, Ada, COBOL, Java} implica cardinalidad = 5
– La especificación de conjuntos constructivos es
preferible a la enumeración porque permite una
definición sucinta de conjuntos grandes.
• {x, y : N | x + y = 10 (x, y2)}
• *Sucinta significa que está expresado de manera breve,
concisa y precisa
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 195
25/02/2023
Operadores de conjuntos
• Se utiliza un conjunto especializado de simbología para
representar operaciones lógicas y de conjuntos.
– Ejemplos
• El operador P se utiliza para indicar la pertenencia a un conjunto. Por
ejemplo, la expresión
– x P X
• Los operadores , y # toman conjuntos como sus operandos. El
predicado
– A , B
• tiene el valor verdadero si los miembros del conjunto A están
contenidos en el conjunto B y tiene el valor falso en caso contrario.
– El operador de unión < toma dos conjuntos y forma un
conjunto que contiene todos los elementos del conjunto
con los duplicados eliminados.
• {File1, File2, Tax, Compiler} < {NewTax, D2, D3, File2} es el conjunto
{File1, File2, Tax, Compiler, NewTax, D2, D3}
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 196
25/02/2023
Operadores lógicos
• Otro componente importante de un método formal es la
lógica: el álgebra de expresiones verdaderas y falsas.
Ejemplos:
– V o
– ¬ negación
– => implicación
• La cuantificación universal es una forma de hacer una
declaración sobre los elementos de un conjunto que es
verdadera para cada miembro del conjunto. La cuantificación
universal utiliza el símbolo,. Un ejemplo de su uso es
– ∀i, j: N | 𝑖 > 𝑗 ⇒ 𝑖2
> 𝑗2
• que establece que, para cada par de valores en el conjunto
de números naturales, si i es mayor que j, entonces i2 es
mayor que j2.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 197
25/02/2023
Secuencias
• Las secuencias se designan mediante corchetes
angulares. Por ejemplo, la secuencia de la tabla
simbólica del ejemplo normalmente se escribiría como
– k Jones, Wilson, Shapiro, Estavezl
• Concatenación, X, es un operador binario que forma
una secuencia construida agregando su segundo
operando al final de su primer operando. Por ejemplo,
• k 2, 3, 34, 1l X k12, 33, 34, 200 l = k 2, 3, 34, 1, 12, 33, 34, 200 l
• Otros operadores que se pueden aplicar a las
secuencias son head, tail, front y last.
• head k 2, 3, 34, 1, 99, 101 l = 2
• tail k 2, 3, 34, 1, 99, 101 l = k 3, 34, 1,99, 101 l
• last k 2, 3, 34, 1, 99, 101 l = 101
• front k 2, 3, 34, 1, 99, 101 l = k 2, 3, 34, 1, 99 l
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 198
25/02/2023
Lenguajes de especificación formal
• Un lenguaje de especificación formal generalmente se
compone de tres componentes principales:
– una sintaxis que define la notación específica con la que
se representa la especificación
– semántica para ayudar a definir un "universo de objetos"
que se utilizará para describir el sistema
– un conjunto de relaciones que definen las reglas que
indican qué objetos satisfacen adecuadamente la
especificación
• El dominio sintáctico de un lenguaje de especificación formal
a menudo se basa en una sintaxis que se deriva de la
notación estándar de la teoría de conjuntos y el cálculo de
predicados.
• El dominio semántico de un lenguaje de especificación indica
cómo el lenguaje representa los requisitos del sistema.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 199
25/02/2023
Especificación formal: El manipulador de bloques
• El almacén de archivos esta compuesto de bloques de
almacenamiento que se mantienen en un dispositivo de
almacenamiento de archivos.
• Durante la operación de la computadora, se crearan y borraran
archivos, lo que requiere adquisición y liberación de bloques de
almacenamiento.
• Para poder lidiar con esto, el
subsistema de llenado
mantendrá un reservorio de
bloques no utilizados (libres) y
seguirá la pista de los bloques
que estén en uso actual.
• Cuando los bloques se liberan
de un archivo borrado, por lo
general se agregan a una fila de
bloques que esperan para
incorporarse al reservorio de
bloques no utilizados.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 200
25/02/2023
• Los bloques que esperan se mantienen en una fila en la que
cada elemento contiene un conjunto de bloques de un archivo
borrado.
• Para este subsistema, el estado es la colección de bloques
libres, la colección de bloques usados y la fila de bloques
regresados.
• La invariante de datos, que se expresa en lenguaje natural,
es:
– Ningún bloque se marcara como no utilizado y usado al mismo tiempo.
– Todos los conjuntos de bloques que se conservan en la fila serán
subconjuntos de la colección de los bloques actualmente utilizados.
– Ningún elemento de la fila contendrá el mismo numero de bloque.
– La colección de bloques utilizados y bloques que no se usan será la
colección total de bloques que constituyen los archivos.
– La colección de bloques no utilizados no tendrá números de bloque
duplicados.
– La colección de bloques utilizados no tendrá números de bloque
duplicados.
Especificación formal: El manipulador de bloques
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 201
25/02/2023
Especificación formal:
El manipulador de bloques
• El manipulador de bloques mantiene un depósito de bloques no utilizados y
también realizará un seguimiento de los bloques que están actualmente en
uso.
• Cuando los bloques se liberan de un archivo eliminado, normalmente se
agregan a una cola de bloques que esperan ser agregados al depósito de
bloques no utilizados.
– Estados
• used, free: P BLOCKS
• BlockQueue: seq P BLOCKS
– Invariante de datos
• used > free = 
• used < free = AllBlocks
• i: dom BlockQueue BlockQueue i # used
• i, j : dom BlockQueue i ≠ j => BlockQueue i > BlockQueue j = 
– Precondición
– #BlockQueue > 0
– Postcondición
• used' = used  head BlockQueue
• free’ = free < head BlockQueue
• BlockQueue' = tail BlockQueue
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 202
25/02/2023
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)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 203
25/02/2023
Object Constraint Language (OCL)
• Una notación formal desarrollada para que
los usuarios de UML puedan agregar más
precisión a sus especificaciones
• Todo el poder de la lógica y las matemáticas
discretas está disponible en este lenguaje
• Sin embargo, los diseñadores de OCL
decidieron que solo se deberían usar
caracteres ASCII (en lugar de la notación
matemática convencional) en las
declaraciones de OCL.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 204
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 205
25/02/2023
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}
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 206
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 207
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 208
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 209
25/02/2023
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)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 210
25/02/2023
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)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 211
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 212
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 213
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 214
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 215
25/02/2023
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)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 216
25/02/2023
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.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 217
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 218
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 219
25/02/2023
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
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 220
25/02/2023
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 221
25/02/2023
Diagramas de secuencia
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 222
25/02/2023
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
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado

Más contenido relacionado

La actualidad más candente

Caso 7 Los Rapidos SA - Gestion de una empresa de ambulancias.docx
Caso 7 Los Rapidos SA - Gestion de una empresa de ambulancias.docxCaso 7 Los Rapidos SA - Gestion de una empresa de ambulancias.docx
Caso 7 Los Rapidos SA - Gestion de una empresa de ambulancias.docxjean159471
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialJuank Grifin
 
Análisis y especificación de requerimientos
Análisis y especificación de requerimientosAnálisis y especificación de requerimientos
Análisis y especificación de requerimientosFranklin Parrales Bravo
 
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWAREPSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWAREFranklin Parrales Bravo
 
Sistemas Operativos I-Particionamiento de memoria
Sistemas Operativos I-Particionamiento de memoriaSistemas Operativos I-Particionamiento de memoria
Sistemas Operativos I-Particionamiento de memoriaMari Cruz
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
SO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas OperativosSO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas OperativosFranklin Parrales Bravo
 
IIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de SoftwareIIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de SoftwareFranklin Parrales Bravo
 
Introducción a la programación paralela
Introducción a la programación paralelaIntroducción a la programación paralela
Introducción a la programación paralelafmayosi
 
Metodologia web
Metodologia webMetodologia web
Metodologia webAnel Sosa
 
3.2 manejadores de bases de datos
3.2 manejadores de bases de datos3.2 manejadores de bases de datos
3.2 manejadores de bases de datosisraelmillan8
 
Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Julicamargo
 
Control de concurrencias investigación
Control de concurrencias investigaciónControl de concurrencias investigación
Control de concurrencias investigaciónJhoel Dgez Garcia
 
IDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientosIDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientosFranklin Parrales Bravo
 
Estimación para proyectos de software cap26
Estimación para proyectos de software cap26Estimación para proyectos de software cap26
Estimación para proyectos de software cap26DEBANI SALAS
 
El procesador y sus registros internos
El procesador y sus registros internosEl procesador y sus registros internos
El procesador y sus registros internosromo91
 

La actualidad más candente (20)

MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modeladoMOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
 
Caso 7 Los Rapidos SA - Gestion de una empresa de ambulancias.docx
Caso 7 Los Rapidos SA - Gestion de una empresa de ambulancias.docxCaso 7 Los Rapidos SA - Gestion de una empresa de ambulancias.docx
Caso 7 Los Rapidos SA - Gestion de una empresa de ambulancias.docx
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia Artificial
 
Gestion memoria windows
Gestion memoria windowsGestion memoria windows
Gestion memoria windows
 
Análisis y especificación de requerimientos
Análisis y especificación de requerimientosAnálisis y especificación de requerimientos
Análisis y especificación de requerimientos
 
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWAREPSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
 
Sistemas Operativos I-Particionamiento de memoria
Sistemas Operativos I-Particionamiento de memoriaSistemas Operativos I-Particionamiento de memoria
Sistemas Operativos I-Particionamiento de memoria
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
SO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas OperativosSO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas Operativos
 
IIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de SoftwareIIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de Software
 
Introducción a la programación paralela
Introducción a la programación paralelaIntroducción a la programación paralela
Introducción a la programación paralela
 
Metodologia web
Metodologia webMetodologia web
Metodologia web
 
3.2 manejadores de bases de datos
3.2 manejadores de bases de datos3.2 manejadores de bases de datos
3.2 manejadores de bases de datos
 
Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.
 
Control de concurrencias investigación
Control de concurrencias investigaciónControl de concurrencias investigación
Control de concurrencias investigación
 
IDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientosIDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientos
 
Estimación para proyectos de software cap26
Estimación para proyectos de software cap26Estimación para proyectos de software cap26
Estimación para proyectos de software cap26
 
El procesador y sus registros internos
El procesador y sus registros internosEl procesador y sus registros internos
El procesador y sus registros internos
 
Conceptos de diseño
Conceptos de diseñoConceptos de diseño
Conceptos de diseño
 

Similar a MOD Unidad 2: Tipos de modelado

Práctica SRUM - (Introducción) v1.pptx
Práctica SRUM - (Introducción) v1.pptxPráctica SRUM - (Introducción) v1.pptx
Práctica SRUM - (Introducción) v1.pptxEverCGonzalesRodrigo1
 
presentacioncmmi.pdf
presentacioncmmi.pdfpresentacioncmmi.pdf
presentacioncmmi.pdfLuis Manotas
 
Procesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECProcesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECmrojas_unitec
 
Gestion de proyectos informaticos 2013 2
Gestion de proyectos informaticos 2013 2Gestion de proyectos informaticos 2013 2
Gestion de proyectos informaticos 2013 2Virginia Polcan
 
05 masmodelosdeprocesodesoftware isi
05 masmodelosdeprocesodesoftware isi05 masmodelosdeprocesodesoftware isi
05 masmodelosdeprocesodesoftware isiChristian Bueno
 
Modelos de Procesos del Software
Modelos de Procesos del SoftwareModelos de Procesos del Software
Modelos de Procesos del SoftwareAnalisisDe
 
Presentacion de inf 162 grupo 6
Presentacion de inf 162 grupo 6Presentacion de inf 162 grupo 6
Presentacion de inf 162 grupo 6Samuel Qc
 
Modelo Cmmi 7
Modelo Cmmi 7Modelo Cmmi 7
Modelo Cmmi 7Su Vivian
 
Investigación de modelos
Investigación de modelos Investigación de modelos
Investigación de modelos bren1995
 
1 ingeniería de software
1 ingeniería de software1 ingeniería de software
1 ingeniería de softwareUVM
 
Smgp pc (plan de-calidad)-v3-docx
Smgp pc (plan de-calidad)-v3-docxSmgp pc (plan de-calidad)-v3-docx
Smgp pc (plan de-calidad)-v3-docxJose Farias
 
Complemento cmmi
Complemento cmmiComplemento cmmi
Complemento cmmiTensor
 
Gestión de Proyectos Informáticos
Gestión de Proyectos InformáticosGestión de Proyectos Informáticos
Gestión de Proyectos InformáticosPilar Pardo Hidalgo
 

Similar a MOD Unidad 2: Tipos de modelado (20)

Fabricas de software
Fabricas de softwareFabricas de software
Fabricas de software
 
SCRUM.pdf
SCRUM.pdfSCRUM.pdf
SCRUM.pdf
 
Práctica SRUM - (Introducción) v1.pptx
Práctica SRUM - (Introducción) v1.pptxPráctica SRUM - (Introducción) v1.pptx
Práctica SRUM - (Introducción) v1.pptx
 
Presentacion cmmi
Presentacion cmmiPresentacion cmmi
Presentacion cmmi
 
presentacioncmmi.pdf
presentacioncmmi.pdfpresentacioncmmi.pdf
presentacioncmmi.pdf
 
Webquest i 2019
Webquest i 2019Webquest i 2019
Webquest i 2019
 
Procesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECProcesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITEC
 
Tp ciclos de vida
Tp   ciclos de vidaTp   ciclos de vida
Tp ciclos de vida
 
Gestion de proyectos informaticos 2013 2
Gestion de proyectos informaticos 2013 2Gestion de proyectos informaticos 2013 2
Gestion de proyectos informaticos 2013 2
 
05 masmodelosdeprocesodesoftware isi
05 masmodelosdeprocesodesoftware isi05 masmodelosdeprocesodesoftware isi
05 masmodelosdeprocesodesoftware isi
 
Modelos de Procesos del Software
Modelos de Procesos del SoftwareModelos de Procesos del Software
Modelos de Procesos del Software
 
Modelo psp
Modelo pspModelo psp
Modelo psp
 
Presentacion de inf 162 grupo 6
Presentacion de inf 162 grupo 6Presentacion de inf 162 grupo 6
Presentacion de inf 162 grupo 6
 
Modelo Cmmi 7
Modelo Cmmi 7Modelo Cmmi 7
Modelo Cmmi 7
 
Investigación de modelos
Investigación de modelos Investigación de modelos
Investigación de modelos
 
SAP
SAPSAP
SAP
 
1 ingeniería de software
1 ingeniería de software1 ingeniería de software
1 ingeniería de software
 
Smgp pc (plan de-calidad)-v3-docx
Smgp pc (plan de-calidad)-v3-docxSmgp pc (plan de-calidad)-v3-docx
Smgp pc (plan de-calidad)-v3-docx
 
Complemento cmmi
Complemento cmmiComplemento cmmi
Complemento cmmi
 
Gestión de Proyectos Informáticos
Gestión de Proyectos InformáticosGestión de Proyectos Informáticos
Gestión de Proyectos Informáticos
 

Más de Franklin Parrales Bravo

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaFranklin Parrales Bravo
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebFranklin Parrales Bravo
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaFranklin Parrales Bravo
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosFranklin Parrales Bravo
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebFranklin Parrales Bravo
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasFranklin Parrales Bravo
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosFranklin Parrales Bravo
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosFranklin Parrales Bravo
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosFranklin Parrales Bravo
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosFranklin Parrales Bravo
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraFranklin Parrales Bravo
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareFranklin Parrales Bravo
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software Franklin Parrales Bravo
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosFranklin Parrales Bravo
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosFranklin Parrales Bravo
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosFranklin Parrales Bravo
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosFranklin Parrales Bravo
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoFranklin Parrales Bravo
 
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4Franklin Parrales Bravo
 
RD Unidad 1: Principios de Comunicación y Redes
RD Unidad 1: Principios de Comunicación y RedesRD Unidad 1: Principios de Comunicación y Redes
RD Unidad 1: Principios de Comunicación y RedesFranklin Parrales Bravo
 

Más de Franklin Parrales Bravo (20)

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en Cuenca
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería Web
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicua
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidas
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgos
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidos
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectos
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestra
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivos
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilos
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a Objetos
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a Objetos
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y Enrutamiento
 
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
 
RD Unidad 1: Principios de Comunicación y Redes
RD Unidad 1: Principios de Comunicación y RedesRD Unidad 1: Principios de Comunicación y Redes
RD Unidad 1: Principios de Comunicación y Redes
 

Último

Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 

Último (7)

Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 

MOD Unidad 2: Tipos de modelado

  • 1. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 1 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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.
  • 8. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 8 25/02/2023 Mi lavadora no funciona issue-to-resolution process VALUE Customer Warranty? Parts Store Service Dispatch Technician Customer Call Centre Customer © Michael Rosemann
  • 9. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 9 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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
  • 16. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 16 25/02/2023 © M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013 Un proceso sencillo Actividades Eventos Flujo de secuencia
  • 17. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 17 25/02/2023 Tokens © M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
  • 18. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 18 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 • 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 25/02/2023 • 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 25/02/2023 BPMN Model Purchase order received Check stock availability
  • 24. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 24 25/02/2023 • 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 25/02/2023 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 25/02/2023 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 25/02/2023 […] 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 25/02/2023 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
  • 29. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 29 25/02/2023 Data-based XOR OR AND Complex Event-based XOR Fig 4.84. Gateway types in the BPMN, Object Management Group (2006) M. Weske: Business Process Management, © Springer-Verlag Berlin Heidelberg 2007 Gateways
  • 30. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 30 25/02/2023 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
  • 31. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 31 25/02/2023 Facturación • Cuando se recibe la factura de un cliente, tiene que ser comprobada. La comprobación puede resultar en tres casos: • No hay errores, en cuyo caso la factura es contabilizada; • Hay errores pero pueden ser corregidos, en cuyo caso la factura es reenviada al cliente, y • Hay errores pero no pueden ser corregidos, en cuyo caso la factura se bloquea. Al terminar una de estas tres atividades, la factura es almacenada y el proceso termina. © M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
  • 32. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 32 25/02/2023 Decisiones exclusivas XOR split XOR join © M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
  • 33. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 33 25/02/2023 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 25/02/2023 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.
  • 35. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 35 25/02/2023 Embarque …. • Al recibir la tarjeta de embarque, los pasajeros van al control de seguridad. Aquí tienen que pasar el control personal y el control del equipaje. Una vez realizado, pueden pasar a la puerta de embarque. © M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
  • 36. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 36 25/02/2023 Ejecución en paralelo © M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
  • 37. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 37 25/02/2023 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 25/02/2023 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
  • 39. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 39 25/02/2023 Pedidos • Una compañía tiene dos almacenes que almacenan distintos productos, uno está en Amsterdam y otro en Hamburgo. Cuando se recibe un pedido, se distribuye a estos almacenes: si alguno de los productos están en Amsterdam, un subpedido se envía allí; del mismo modo, si algún producto está en Hamburgo, un subpedido se envía allí. Después el pedido se registra y el proceso termina. © M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
  • 40. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 40 25/02/2023 Decisión inclusiva © M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
  • 41. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 41 25/02/2023 Punto muerto © M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
  • 42. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 42 25/02/2023 Proceso de gestión de pedidos… • Si el producto solicitado no está en stock, hace falta fabricarlo antes de que la gestión del pedido pueda continuar. Para fabricar un producto, es necesario pedir los materiales para fabricarlo. Dependiendo del producto, los materiales se pueden pedir al Proveedor 1, al Proveedor 2 o a ambos. Una vez que los materiales están disponibles, el producto se puede fabricar y el pedido se confirma. Por otro lado, si el producto está en stock, se obtiene del almacen antes de confirmar el pedido. © M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
  • 43. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 43 25/02/2023 Proceso de gestión de pedidos… © M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
  • 44. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 44 25/02/2023 Ministerio de …. • En el ministerio de hacienda, las peticiones recibidas se registran en el sistema. Luego se investigan para preparar una respuesta del ministerio. La finalización de la respuesta incluye la preparación de la misma por un miembro del gabinete y su revisión por parte del responsible del mismo. • Si éste no aprueba la respuesta, tiene que ser preparada de nuevo por el miembro del gabinete. El proceso termina cuando la respuesta es aprobada. © M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
  • 45. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 45 25/02/2023 Bucles © M. Dumas et al. Fundamentals of BPM, Springer-Verlag, 2013
  • 46. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 46 25/02/2023 When? Flows Gateways Which? Data / Materials What? Tasks Events Who? Organization Puntos de Vista para el Modelamiento de Procesos Lanes & Pools Data Objects, Stores
  • 47. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 47 25/02/2023 Pools y lanes • Los pools y lanes no tienen un significado concreto, pero lo habitual es: – Pools: Representan organizaciones / procesos – Lanes: Representan roles o departamentos en una organización (nunca personas concretas) Pool Flow Objects Events Activities Place Order Gateways Connecting Objects Sequence Flow Message Flow Association Swimlanes Lane Data Object Group Artefacts Annotation Fig 4.78. Business Process Modeling Notation: categories of elements M. Weske: Business Process Management, © Springer-Verlag Berlin Heidelberg 2007
  • 48. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 48 25/02/2023 Order-to-cash: Procesos con lanes
  • 49. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 49 25/02/2023 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 25/02/2023 Order-to-cash 50
  • 51. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 51 25/02/2023 Which? Data / Materials Process Modelling Viewpoints Data Objects, Stores
  • 52. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 52 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 BPMN Poster (link in “Readings” page)
  • 57. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 57 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 Diagrama de Clases
  • 62. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 62 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 ¿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 25/02/2023 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 25/02/2023 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 25/02/2023 Sinónimos de Método • Operación • Responsabilidad • Servicio • Función
  • 81. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 81 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 … 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 25/02/2023 … 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 Asociación asociación Clase Atributos Métodos Clase Atributos Métodos
  • 106. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 106 25/02/2023 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 25/02/2023 Asociaciones • Las asociaciones tienen los siguientes componentes: – Nombre – Rol – Multiplicidad
  • 108. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 108 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 Persona Banco Cuenta número de cuenta estatus {A,I} 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 25/02/2023 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 25/02/2023 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 25/02/2023 Ejemplo de Asociación circular Persona * 1 trabajador supervisor
  • 123. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 123 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 Ejemplo de Composición Ventana Frame *
  • 149. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 149 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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.
  • 155. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 155 25/02/2023 Herencia • La herencia indica una relación “es un tipo de" – La herencia es una relación entre clases – Las nuevas clases añaden especialización a las existentes Músico Violinista Clase base Clase derivada Generalización Especialización ¿Es éste un buen ejemplo de herencia ?
  • 156. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 156 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 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 25/02/2023 Herencia sencilla y múltiple • Herencia sencilla: derivadas de una clase base • Herencia múltiple: derivadas de dos o más clases base Instrumento de cuerda Violín Instrumento musical Instrumento de cuerda Con teclas Violín tiene una sola clase base directa Instrumento de cuerda tiene dos clases base directas
  • 163. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 163 25/02/2023 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.
  • 164. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 164 25/02/2023 Ejemplo de Herencia Múltiple RelojDigital RelojAnalógico RelojDisplayDoble
  • 165. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 165 25/02/2023 • 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.
  • 166. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 166 25/02/2023 ¿Qué es el polimorfismo? • El nombre del método reside en la clase base • Las implementaciones del método residen en las clases derivadas ImpuestoBase CalcularImpuesto( ) ImpuestoProvincial CalcularImpuesto( ) ImpuestoCiudadano CalcularImpuesto( )
  • 167. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 167 25/02/2023 Polimorfismo • El nombre del método reside en la clase base • Los distintos cuerpos del método residen en las clases derivadas Músico de cuerda AfinaTuInstrumento( ) Guitarrista AfinaTuInstrumento( ) Violinista AfinaTuInstrumento( ) Un método sin cuerpo se llama operación
  • 168. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 168 25/02/2023 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.
  • 169. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 169 25/02/2023 Notación de Clases Abstractas Ventana {abstracto} minimizar() maximizar() Ventana de Windows Ventana de Mac minimizar() maximizar() minimizar() maximizar()
  • 170. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 170 25/02/2023 Clases base abstractas • Algunas clases existen sólo para ser clases base – No tiene sentido crear instancias de estas clases – Estas clases son abstractas Músico de cuerda { abstract } Guitarrista « concrete » Violinista « concrete » Se pueden crear instancias de clases concretas No se pueden crear instancias de clases abstractas
  • 171. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 171 25/02/2023 Jerarquías de clases • Las clases con relaciones de herencia forman jerarquías de clases Músico ??? Músico de cuerda Violín ??? Instrumento musical toca toca toca Violinista Instrumento de cuerda
  • 172. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 172 25/02/2023 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
  • 173. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 173 25/02/2023 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
  • 174. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 174 25/02/2023 Interfaces • Las interfaces contienen sólo operaciones, no implementación Músico de cuerda { abstract } Violinista « concrete » Músico « interface » Nada más que operaciones. No se pueden crear instancias de una interfaz. Puede contener implementación. No se pueden crear instancias de una interfaz. Implementa las operaciones heredadas. Se pueden crear instancias de una clase concreta.
  • 175. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 175 25/02/2023 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
  • 176. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 176 25/02/2023 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
  • 177. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 177 25/02/2023 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
  • 178. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 178 25/02/2023 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 25/02/2023 Bibliografía consultada • Pressman, Roger S. "Ingeniería del software." Un enfoque (2011). Cap. 21
  • 180. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 180 25/02/2023 Métodos Formales • “Los métodos formales utilizados en el desarrollo de sistemas informáticos son técnicas basadas en matemáticas para describir las propiedades del sistema. Dichos métodos formales proporcionan marcos dentro de los cuales las personas pueden especificar, desarrollar y verificar sistemas de manera sistemática, en lugar de ad hoc.” The Encyclopedia of Software Engineering [Mar01] • El problema con las especificaciones convencionales: – Contradicciones – Ambigüedades – Vaguedad – Incompletitud – Niveles mixtos de abstracción
  • 181. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 181 25/02/2023 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.
  • 182. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 182 25/02/2023 Especificación formal • Las propiedades deseadas — consistencia, integridad (completeness) y no ambigüedad — son los objetivos de todos los métodos de especificación. • La sintaxis formal de un lenguaje de especificación permite que los requisitos o el diseño se interpreten de una sola manera, eliminando la ambigüedad que a menudo ocurre cuando se debe interpretar un lenguaje natural (por ejemplo, inglés) o una notación gráfica. – Las facilidades descriptivas de la teoría de conjuntos y la notación lógica permiten una declaración clara de hechos (requisitos). • La consistencia se asegura probando matemáticamente que los hechos iniciales pueden mapearse formalmente (usando reglas de inferencia) en declaraciones posteriores dentro de la especificación.
  • 183. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 183 25/02/2023 Conceptos de métodos formales • invariante: una condición que se cumple durante la ejecución del sistema que contiene una colección de datos – Es decir, define lo que se garantiza que no cambia. • estado – En muchos lenguajes formales, como OCL, un sistema puede estar en uno de varios estados, cada uno representando un modo de comportamiento observable externamente. – El lenguaje Z define un estado como los datos almacenados a los que un sistema accede y altera • operación—una acción que tiene lugar en un sistema y lee o escribe datos en un estado – La precondición define las circunstancias en las que una operación en particular es válida. – La poscondición define lo que sucede cuando una operación ha completado su acción. • Es decir, define lo que se garantiza que es verdadero hasta completar una operación. Esto se define por su efecto sobre los datos.
  • 184. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 184 25/02/2023 Ejemplo: tabla simbólica • Un programa se usa para mantener una tabla simbólica. – Dicha tabla se utiliza frecuentemente en muchos tipos diferentes de aplicaciones. – Por ejemplo, una tabla que utiliza un sistema operativo para contener los nombres de los usuarios del sistema • Consiste en una colección de ítems sin duplicación alguna. 1) Wilson 2) Simpson 3) Abel 4) Fernandez 5) 6) 7) 8) 9) 10) MaxIds = 10
  • 185. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 185 25/02/2023 Ejemplo: tabla simbólica • Suponga que la tabla que se presenta en este ejemplo contiene no mas de MaxIds nombres. • Esta afirmación, que coloca una restricción sobre la tabla, es un componente de una condición conocida como invariante de datos. • La invariante de datos que se sostiene para la tabla simbólica recién analizada tiene dos componentes: 1. que la tabla contendrá no mas de MaxIds nombres 2. que no habrá nombres duplicados en la tabla • Esto significa que, en cualquier momento en el que se examine la tabla simbólica durante la ejecución del sistema, siempre se deben cumplir dichas condiciones.
  • 186. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 186 25/02/2023 Ejemplo: tabla simbólica • Así como en el lenguaje Z (el estado de un sistema se representa por los datos almacenados del sistema), el estado en el ejemplo es la tabla simbólica • Operaciones: – Si el programa de tabla simbólica tiene que ver con agregar y remover nombres de la tabla simbólica, entonces se asociara con dos operaciones: • una operación para add() (agregar) un nombre especifico a la tabla simbólica y • otra para remove() (remover) un nombre existente de la tabla. – Si el programa proporciona la facilidad para comprobar si un nombre especifico esta contenido en la tabla, entonces habría una operación que regresaría alguna indicación acerca de si el nombre esta en la tabla.
  • 187. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 187 25/02/2023 Ejemplo: tabla simbólica • Pueden asociarse tres tipos de condiciones con las operaciones: invariantes, precondiciones y poscondiciones. Por ejemplo: – Invariante: el numero de elementos de la tabla es siempre es menor que o igual a MaxIds. – La precondición para una operación que agrega un nombre a una tabla simbólica de identificadores de personal es valida solo si el nombre que se agrega no esta contenido en la tabla y también si hay menos de MaxIds identificadores de personal en ella. – Para la operación add(), la poscondición especificaría matemáticamente que la tabla aumentó con el nuevo identificador.
  • 188. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 188 25/02/2023 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.
  • 189. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 189 25/02/2023 Métodos formales 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
  • 190. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 190 25/02/2023 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.
  • 191. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 191 25/02/2023 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.
  • 192. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 192 25/02/2023 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.
  • 193. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 193 25/02/2023 Conceptos matemáticos • Conjuntos y especificación de conjuntos constructivos • Establecer operadores • Operadores lógicos – ej.: ∀i, j: N | 𝑖 > 𝑗 ⇒ 𝑖2 > 𝑗2 – que establece que, para cada par de valores en el conjunto de números naturales, si i es mayor que j, entonces i2 es mayor que j2. • secuencias
  • 194. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 194 25/02/2023 Conjuntos y especificación constructiva • Un conjunto es una colección de objetos o elementos y se utiliza como piedra angular de los métodos formales. – Enumeración • {C++, Pascal, Ada, COBOL, Java} • #{C++, Pascal, Ada, COBOL, Java} implica cardinalidad = 5 – La especificación de conjuntos constructivos es preferible a la enumeración porque permite una definición sucinta de conjuntos grandes. • {x, y : N | x + y = 10 (x, y2)} • *Sucinta significa que está expresado de manera breve, concisa y precisa
  • 195. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 195 25/02/2023 Operadores de conjuntos • Se utiliza un conjunto especializado de simbología para representar operaciones lógicas y de conjuntos. – Ejemplos • El operador P se utiliza para indicar la pertenencia a un conjunto. Por ejemplo, la expresión – x P X • Los operadores , y # toman conjuntos como sus operandos. El predicado – A , B • tiene el valor verdadero si los miembros del conjunto A están contenidos en el conjunto B y tiene el valor falso en caso contrario. – El operador de unión < toma dos conjuntos y forma un conjunto que contiene todos los elementos del conjunto con los duplicados eliminados. • {File1, File2, Tax, Compiler} < {NewTax, D2, D3, File2} es el conjunto {File1, File2, Tax, Compiler, NewTax, D2, D3}
  • 196. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 196 25/02/2023 Operadores lógicos • Otro componente importante de un método formal es la lógica: el álgebra de expresiones verdaderas y falsas. Ejemplos: – V o – ¬ negación – => implicación • La cuantificación universal es una forma de hacer una declaración sobre los elementos de un conjunto que es verdadera para cada miembro del conjunto. La cuantificación universal utiliza el símbolo,. Un ejemplo de su uso es – ∀i, j: N | 𝑖 > 𝑗 ⇒ 𝑖2 > 𝑗2 • que establece que, para cada par de valores en el conjunto de números naturales, si i es mayor que j, entonces i2 es mayor que j2.
  • 197. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 197 25/02/2023 Secuencias • Las secuencias se designan mediante corchetes angulares. Por ejemplo, la secuencia de la tabla simbólica del ejemplo normalmente se escribiría como – k Jones, Wilson, Shapiro, Estavezl • Concatenación, X, es un operador binario que forma una secuencia construida agregando su segundo operando al final de su primer operando. Por ejemplo, • k 2, 3, 34, 1l X k12, 33, 34, 200 l = k 2, 3, 34, 1, 12, 33, 34, 200 l • Otros operadores que se pueden aplicar a las secuencias son head, tail, front y last. • head k 2, 3, 34, 1, 99, 101 l = 2 • tail k 2, 3, 34, 1, 99, 101 l = k 3, 34, 1,99, 101 l • last k 2, 3, 34, 1, 99, 101 l = 101 • front k 2, 3, 34, 1, 99, 101 l = k 2, 3, 34, 1, 99 l
  • 198. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 198 25/02/2023 Lenguajes de especificación formal • Un lenguaje de especificación formal generalmente se compone de tres componentes principales: – una sintaxis que define la notación específica con la que se representa la especificación – semántica para ayudar a definir un "universo de objetos" que se utilizará para describir el sistema – un conjunto de relaciones que definen las reglas que indican qué objetos satisfacen adecuadamente la especificación • El dominio sintáctico de un lenguaje de especificación formal a menudo se basa en una sintaxis que se deriva de la notación estándar de la teoría de conjuntos y el cálculo de predicados. • El dominio semántico de un lenguaje de especificación indica cómo el lenguaje representa los requisitos del sistema.
  • 199. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 199 25/02/2023 Especificación formal: El manipulador de bloques • El almacén de archivos esta compuesto de bloques de almacenamiento que se mantienen en un dispositivo de almacenamiento de archivos. • Durante la operación de la computadora, se crearan y borraran archivos, lo que requiere adquisición y liberación de bloques de almacenamiento. • Para poder lidiar con esto, el subsistema de llenado mantendrá un reservorio de bloques no utilizados (libres) y seguirá la pista de los bloques que estén en uso actual. • Cuando los bloques se liberan de un archivo borrado, por lo general se agregan a una fila de bloques que esperan para incorporarse al reservorio de bloques no utilizados.
  • 200. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 200 25/02/2023 • Los bloques que esperan se mantienen en una fila en la que cada elemento contiene un conjunto de bloques de un archivo borrado. • Para este subsistema, el estado es la colección de bloques libres, la colección de bloques usados y la fila de bloques regresados. • La invariante de datos, que se expresa en lenguaje natural, es: – Ningún bloque se marcara como no utilizado y usado al mismo tiempo. – Todos los conjuntos de bloques que se conservan en la fila serán subconjuntos de la colección de los bloques actualmente utilizados. – Ningún elemento de la fila contendrá el mismo numero de bloque. – La colección de bloques utilizados y bloques que no se usan será la colección total de bloques que constituyen los archivos. – La colección de bloques no utilizados no tendrá números de bloque duplicados. – La colección de bloques utilizados no tendrá números de bloque duplicados. Especificación formal: El manipulador de bloques
  • 201. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 201 25/02/2023 Especificación formal: El manipulador de bloques • El manipulador de bloques mantiene un depósito de bloques no utilizados y también realizará un seguimiento de los bloques que están actualmente en uso. • Cuando los bloques se liberan de un archivo eliminado, normalmente se agregan a una cola de bloques que esperan ser agregados al depósito de bloques no utilizados. – Estados • used, free: P BLOCKS • BlockQueue: seq P BLOCKS – Invariante de datos • used > free = • used < free = AllBlocks • i: dom BlockQueue BlockQueue i # used • i, j : dom BlockQueue i ≠ j => BlockQueue i > BlockQueue j = – Precondición – #BlockQueue > 0 – Postcondición • used' = used head BlockQueue • free’ = free < head BlockQueue • BlockQueue' = tail BlockQueue
  • 202. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 202 25/02/2023 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)
  • 203. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 203 25/02/2023 Object Constraint Language (OCL) • Una notación formal desarrollada para que los usuarios de UML puedan agregar más precisión a sus especificaciones • Todo el poder de la lógica y las matemáticas discretas está disponible en este lenguaje • Sin embargo, los diseñadores de OCL decidieron que solo se deberían usar caracteres ASCII (en lugar de la notación matemática convencional) en las declaraciones de OCL.
  • 204. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 204 25/02/2023 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.
  • 205. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 205 25/02/2023 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}
  • 206. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 206 25/02/2023 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
  • 207. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 207 25/02/2023 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
  • 208. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 208 25/02/2023 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
  • 209. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 209 25/02/2023 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)
  • 210. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 210 25/02/2023 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)
  • 211. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 211 25/02/2023 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
  • 212. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 212 25/02/2023 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
  • 213. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 213 25/02/2023 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
  • 214. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 214 25/02/2023 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
  • 215. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 215 25/02/2023 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)
  • 216. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 216 25/02/2023 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.
  • 217. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 217 25/02/2023 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
  • 218. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 218 25/02/2023 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
  • 219. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 219 25/02/2023 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
  • 220. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 220 25/02/2023
  • 221. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 221 25/02/2023 Diagramas de secuencia
  • 222. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 222 25/02/2023 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