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

Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)katherine revelo gomez
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)Yadith Miranda Silva
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentesmartin
 
Estrategias de aplicaciones para las pruebas de integración
Estrategias  de aplicaciones para las pruebas de integraciónEstrategias  de aplicaciones para las pruebas de integración
Estrategias de aplicaciones para las pruebas de integraciónPablo Navarrete
 
Presentacion herramientas CASE
Presentacion herramientas CASEPresentacion herramientas CASE
Presentacion herramientas CASEdavidsande
 
Dependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de DatosDependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de DatosEsteban Andres Diaz Mina
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Marta Silvia Tabares
 
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
 
51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-softwareMiguel Angel Rodriguez
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
Metodología tradicional
Metodología tradicionalMetodología tradicional
Metodología tradicionalJesenia Escobar
 
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARECUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWAREFreddy Aguilar
 
Cuadro comparativo entre moprosoft y cmmi
Cuadro comparativo entre moprosoft y cmmiCuadro comparativo entre moprosoft y cmmi
Cuadro comparativo entre moprosoft y cmmiJimmy Davila
 
TAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSTAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSxinithazangels
 
Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)Jenyfer Utitiaja
 

La actualidad más candente (20)

Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentes
 
Estrategias de aplicaciones para las pruebas de integración
Estrategias  de aplicaciones para las pruebas de integraciónEstrategias  de aplicaciones para las pruebas de integración
Estrategias de aplicaciones para las pruebas de integración
 
Roles desarrollo del software
Roles desarrollo del softwareRoles desarrollo del software
Roles desarrollo del software
 
Arquitectura fisica y logica
Arquitectura fisica y logicaArquitectura fisica y logica
Arquitectura fisica y logica
 
Presentacion herramientas CASE
Presentacion herramientas CASEPresentacion herramientas CASE
Presentacion herramientas CASE
 
Dependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de DatosDependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de Datos
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
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
 
Metodología CommonKADS
Metodología CommonKADSMetodología CommonKADS
Metodología CommonKADS
 
51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
Metodología tradicional
Metodología tradicionalMetodología tradicional
Metodología tradicional
 
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARECUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
 
Cuadro comparativo entre moprosoft y cmmi
Cuadro comparativo entre moprosoft y cmmiCuadro comparativo entre moprosoft y cmmi
Cuadro comparativo entre moprosoft y cmmi
 
TAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSTAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOS
 
Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)
 
Recuperación de-datos-en-my sql
Recuperación de-datos-en-my sqlRecuperación de-datos-en-my sql
Recuperación de-datos-en-my sql
 

Similar a MOD Unidad 2: Tipos de modelado

presentacioncmmi.pdf
presentacioncmmi.pdfpresentacioncmmi.pdf
presentacioncmmi.pdfLuis Manotas
 
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
 
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
 
Metodologiaclasicaencascada 130303210847-phpapp01
Metodologiaclasicaencascada 130303210847-phpapp01Metodologiaclasicaencascada 130303210847-phpapp01
Metodologiaclasicaencascada 130303210847-phpapp01CHRIST PANTOJA
 
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
 
Modelos de Procesos del Software
Modelos de Procesos del SoftwareModelos de Procesos del Software
Modelos de Procesos del SoftwareAnalisisDe
 
Investigación de modelos
Investigación de modelos Investigación de modelos
Investigación de modelos bren1995
 
Gestión de proyectos informáticos
Gestión de proyectos informáticos Gestión de proyectos informáticos
Gestión de proyectos informáticos bastian becerra
 
15 Unidad 4. Aseguramiento de Calidad de Software QA, Evaluación del proyecto...
15 Unidad 4. Aseguramiento de Calidad de Software QA, Evaluación del proyecto...15 Unidad 4. Aseguramiento de Calidad de Software QA, Evaluación del proyecto...
15 Unidad 4. Aseguramiento de Calidad de Software QA, Evaluación del proyecto...Luis Fernando Aguas Bucheli
 
Complemento cmmi
Complemento cmmiComplemento cmmi
Complemento cmmiTensor
 
Propuesta adopción metodológica bpm soa v.1.4
Propuesta adopción metodológica bpm soa v.1.4Propuesta adopción metodológica bpm soa v.1.4
Propuesta adopción metodológica bpm soa v.1.4Cencosud S.A.
 

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

MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modeladoMOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
 
PSW Unidad 2 MODELOS DE PROCESO
PSW Unidad 2 MODELOS DE PROCESOPSW Unidad 2 MODELOS DE PROCESO
PSW Unidad 2 MODELOS DE PROCESO
 
Presentacion cmmi
Presentacion cmmiPresentacion cmmi
Presentacion cmmi
 
presentacioncmmi.pdf
presentacioncmmi.pdfpresentacioncmmi.pdf
presentacioncmmi.pdf
 
Fabricas de software
Fabricas de softwareFabricas de software
Fabricas de software
 
Tp ciclos de vida
Tp   ciclos de vidaTp   ciclos de vida
Tp ciclos de vida
 
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 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
 
Webquest i 2019
Webquest i 2019Webquest i 2019
Webquest i 2019
 
Metodologiaclasicaencascada 130303210847-phpapp01
Metodologiaclasicaencascada 130303210847-phpapp01Metodologiaclasicaencascada 130303210847-phpapp01
Metodologiaclasicaencascada 130303210847-phpapp01
 
Gestión de Proyectos Informáticos
Gestión de Proyectos InformáticosGestión de Proyectos Informáticos
Gestión de Proyectos Informáticos
 
Gestion de proyectos de SW
Gestion de proyectos de SWGestion de proyectos de SW
Gestion de proyectos de SW
 
Modelos de Procesos del Software
Modelos de Procesos del SoftwareModelos de Procesos del Software
Modelos de Procesos del Software
 
Investigación de modelos
Investigación de modelos Investigación de modelos
Investigación de modelos
 
Gestión de proyectos informáticos
Gestión de proyectos informáticos Gestión de proyectos informáticos
Gestión de proyectos informáticos
 
15 Unidad 4. Aseguramiento de Calidad de Software QA, Evaluación del proyecto...
15 Unidad 4. Aseguramiento de Calidad de Software QA, Evaluación del proyecto...15 Unidad 4. Aseguramiento de Calidad de Software QA, Evaluación del proyecto...
15 Unidad 4. Aseguramiento de Calidad de Software QA, Evaluación del proyecto...
 
Complemento cmmi
Complemento cmmiComplemento cmmi
Complemento cmmi
 
Propuesta adopción metodológica bpm soa v.1.4
Propuesta adopción metodológica bpm soa v.1.4Propuesta adopción metodológica bpm soa v.1.4
Propuesta adopción metodológica bpm soa v.1.4
 
Modelo psp
Modelo pspModelo psp
Modelo psp
 

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 Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaFranklin 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
 

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 Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuida
 
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
 

Último

SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 

Último (20)

SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 

MOD Unidad 2: Tipos de modelado

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