Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Objetivo
Al finalizar el repaso los
participantes recordarán el uso
de todos los diagramas de UML
para realizar modelos visuales
orientados a objetos para
generar proyectos de software
de mayor calidad.
2
Contenidos del Taller
1. Introducción
2. Diagrama de Actividades
3. Modelo de Casos de Uso
4. El Modelo Conceptual y el Análisis de
Sustantivos
5. Diagramas de Interacción
6. Diagrama de Clases
7. Diagrama de Estados
8. Modelo de Componentes
9. Modelo de Distribución
3
Introducción
4
Qué Necesita el Usuario
Qué Pidió el Usuario
6
Cómo lo Vio el Analista
7
Cómo se Diseñó
8
Cómo lo Escribió el Programador
9
Cómo Funciona el Sistema
(en ocasiones...)
10
La Moraleja
La moraleja de la historia
Comunicación
Efectiva comunicación multi-
disciplinaria
La Torre de Babel
Cada participante maneja su propio
lenguaje
11
El Proceso de Desarrollo
12
Análisis Orientado a
Objetos con UML
13
Diagramas de
Actividad
Modelado de Negocios y
Comportamiento de Casos de
Uso
14
Objetivo
El alumno aprenderá a describir un
proceso utilizando los diagramas de
actividad
Entenderá los elementos que conforman
un diagrama de actividad
Aprenderá a describir escenarios y
procesos utilizando diagramas de
actividad
15
Utilidad
16
Propósito
Entender la estructura y dinámica de una
organización
Asegurar que los clientes, usuarios finales
y desarrolladores tienen un entendimiento
común de la organización
Determinar requerimientos sobre el
sistema que den soporte a la organización
17
Elementos
Estados y Actividades
Transición de Estados
Sincronizaciones
Decisiones
Carriles
Objetos y Flujos de
Objetos
18
Estados y Actividades
Actividad
Actividad
Representa el desarrollo de
una tarea dentro del flujo de
trabajo
Estado Final
Estado Final Muestra el término de un
flujo de trabajo en un
diagrama de actividad
19
Transición
Transición
Estado Inicial Paso de una actividad a
otra al ser completada
Actividad 1 Actividad 2
Estado Final
20
Sincronizaciones
21
Decisiones
Caj eroAutomatico SistemaBancario Lugar específico donde el
flujo de trabajo puede
ramificarse según una
Ingresar NIP Validar NIP
condición de guarda
Pueden existir más de
dos transacciones
Decision
[ NIP Incorrecto ] salientes, aunque la
[ NIP Correcto ]
mayoría de las
Pantalla de
Transacciones
decisiones tendrán sólo
dos
22
Carriles
Similares a un objeto
Ordenar
Producto
Obtener
Producto Indican responsable
Enviar Producto
de ejecutar una
actividad específica
23
Objetos y Flujos de Objetos
Presionar Boton
Reproducir Objeto
Flujos de
Objeto Representan algo tangible
Reproductor de
CD
Presionar Boton Diagramar relaciones de
Pausa
[Reproduciendo] entrada y salida entre
actividades
Reproducto
r de CD
Presionar Boton
Alto
Flujo de Objeto
[Pausado]
Representa la relación entre
Objeto
Reproducto una actividad y el objeto que
r de CD
[Detenido]
la crea (como una salida) o
usa (como una entrada)
24
Diagrama de Actividad
Alumno Administrador de Alumnos
Buscar Alumno
Procesar
Busqueda
25
Ejercicio
26
Conclusiones
El diagrama de actividades se utiliza para
mostrar la secuencia de pasos en un
proceso, en un caso de uso o en una
operación
Puede utilizarse para analizar y modelar
procesos de negocio
Permite mostrar los cambios de estados al
entrar o salir de una actividad
27
El Modelo Conceptual
y el Análisis de
Sustantivos
El Análisis del Dominio
28
Objetivos
El alumno aprenderá a identificar los
conceptos del negocio y los datos que los
definen.
Aprenderá a desarrollar un modelo
conceptual para representar gráficamente
los conceptos importantes de un dominio.
29
Modelo Conceptual
Es la representación de conceptos en el
dominio de un problema.
Muestra los conceptos relevantes en el
dominio de un problema.
La identificación de los conceptos del
negocio es la base para el desarrollo
orientado a objetos.
Su propósito en esta fase consiste en
clarificar el dominio o las reglas del
negocio.
30
Elementos del Modelo Conceptual
31
Representación del Mundo Real
Una característica básica de un modelo
conceptual es que es una representación
de cosas del mundo real, NO de
Venta
elementos de software
Fecha
Total
Venta
BaseDeDatosDeVenta
Fecha
Total
Imprimir ( )
32
Concepto
Empresa Persona
33
Atributos de Conceptos
Son los datos simples que representan las
características de un concepto (objeto)
Empresa Persona
Razón Social Nombre
RFC Edad
34
¿Atributo o Concepto?
Un error bastante común en los modelos conceptuales
consiste en presentar los conceptos como atributos de
otros conceptos.
Si no pensamos en un atributo como algo simple, tal como un
texto o un número, entonces lo más probable es que se trate de
un concepto.
Ante la duda es mejor ponerlo como concepto, en lugar de
atributo.
Empresa Dirección
35
Llaves Foráneas como Atributos
Los atributos no deberían de ser usados
para relacionar conceptos en el modelo
conceptual
¿¿¿Llaves Foráneas??? !! NO !!
Pertenece
Tarjeta Tarjeta Cuenta
1 1
Clave Numero
Clave
NumeroCuenta
36
Asociaciones entre Conceptos
Muestran la relación lógica o física que
existe en el mundo real entre dos
conceptos.
Se puede nombrar a las asociaciones
para clarificar el modelo
Empresa Persona
Emplea-a
Razón Social Nombre
Dirección Edad
37
Multiplicidad
Describe cuántas instancias de un
concepto (objeto) existen con respecto a
otro objeto en una asociación en un
momento dado.
Empresa Persona
1 Emplea-a 1..*
Razón Social Nombre
Dirección Edad
38
Multiplicidades
¿Cuántas instancias participan en
la relación? 1
Concepto
exactamente 1 3
Concepto
exactamente 3
1..5
desde 1 hasta 5 Concepto
exactamente 3, 5 ó 10 3,5,10
Concepto
cero o más
n
cero o más Concepto
1 o más *
Concepto
1..*
Concepto
39
Identificación de Conceptos
Se obtienen a partir de casos de
uso y documentos con información
del problema
40
Análisis de Casos de Uso
Es el proceso de examinar los casos de uso para
descubrir objetos y clases para el sistema a
desarrollar
Selecciona un caso de uso
Identificación de conceptos
1. Sacar una lista de los sustantivos
2. Clasificar los sustantivos en objetos, actores, clases,
atributos o ninguno
3. Seleccionar conceptos o clases candidatos
4. Para los objetos abstraer sus clases correspondientes
Representar los conceptos y atributos en un diagrama
de clases
41
Lectura del Modelo Conceptual
Una regla no escrita es que el modelo se
lee de arriba hacia abajo y de izquierda a
derecha
El nombre de la asociación comienza con
Aerolínea mayúscula y si arma una frase se separa
1
con guión
Emplea
1..*
Asignada-a Asignado-a
Persona 1 *
Vuelo * 1
Avión
1 *
Supervisa
42
Glosario de Términos
El glosario de términos es un artefacto de
RUP que sirve para especificar el
significado de los términos manejados en
el proyecto
Incluye la definición de los conceptos y
atributos
Es un diccionario de términos donde se
describe de forma breve los términos o
conceptos manejados en el negocio.
Es necesario para que tanto usuarios
como desarrolladores manejen la misma
terminología.
43
Glosario de Términos
Concepto Definición
Empresa Entidad constituida legalmente que se
crea para comercializar productos o
servicios
Empleado Persona que ofrece sus servicios a
una empresa a cambio de una
retribución económica
Dirección Ubicación de la empresa, que consta
de Colonia, Calle, Delegación y
Ciudad
44
Descripción de Actores
Como parte del glosario de términos se tiene
que describir de forma breve a los actores.
Concepto Definición
45
Ejemplo
46
Conclusiones
Un concepto es cualquier cosa idea u objeto
El modelo conceptual es la representación de
los conceptos del mundo real relevantes en el
dominio
Un concepto modelado para el sistema debe
representar información útil dentro del contexto
analizado
Los atributos son los datos simples que
describen al concepto
Dos conceptos están asociados cuando existe
una relación entre ellos en el contexto analizado
47
Conclusiones
La multiplicidad entre dos conceptos indica el
número de repeticiones de un concepto en
relación al otro
El análisis de sustantivos es la técnica utilizada
para identificar posible conceptos del dominio a
partir de los sustantivos identificados en los
casos de uso y otros documentos
El glosario de términos es el artefacto donde se
describe y estandariza el significado de la
terminología o conceptos del sistema a
desarrollar
48
El Modelo de
Casos de Uso
El Eje de la Calidad
49
Objetivos
El alumno aprenderá a describir el
comportamiento general de un sistema por
medio de casos de uso
Entenderá qué es un actor y cómo representar
su interacción con el sistema
Comprenderá las formas de granularizar los
casos de uso
Conocerá los mecanismos de extensión de
UML en los diagramas de casos de uso
50
Diagrama de Casos de Uso
Muestra el
Comportamiento
del Sistema
Muestra el Conducir Transacciones
Alcance del Bancarias
Cliente Sist.Bancario
Sistema
Interacciones Correr Reportes
con entidades
Operador ATM
externas Mantenimiento ATM
51
Elementos del Diagrama de Casos
de Uso
Asociación
Cliente
Retirar Efectivo
Actor
Caso de Uso
52
Actores
No son parte del sistema, representan roles
que un usuario puede jugar
Intercambian información con el sistema
Puede ser un recipiente pasivo de
información
Puede representar un humano, una
máquina u otro sistema
Se nombran generalmente con sustantivos
en singular
Cliente, vendedor, administrador, alumno,
Actor Sistema de nómina, etc.
53
Un Usuario/Dos Actores
Inserta
tarjeta 123
456 Carlos como Operador
789
*0#
Cliente
54
Dos Usuarios/Un Actor
Inserta
tarjeta 123
456 Roberto como cliente
789
*0#
Cliente
55
Casos de Uso
Un caso de uso modela el diálogo entre los
actores y el sistema
Un caso de uso es iniciado por un actor al
invocar cierta funcionalidad en el sistema
Un caso de uso es un flujo de eventos
completo y con significado para el usuario
Un caso de uso debe proporcionar valor real
Caso de Uso al usuario
Al unir todos los casos de uso se tienen
todas las formas posibles de usar el sistema
Se nombran generalmente con un verbo en
infinitivo:
Realizar venta, Cotizar seguro, Generar
nómina, etc.
56
Cajero Automático
Conducir Transacciones
Bancarias
Cliente Sist. Bancario
Correr Reportes
Operador ATM
Mantenimiento ATM
57
Granularidad de los Casos de Uso
?????
Aplicar Descuento
?????
Realizar Venta
Vendedor
Autorizar Crédito
58
Estereotipos
Mecanismos para extender el significado
de los elementos de UML
Algunos existentes en UML
El desarrollador puede crear nuevos
<<include>>
60
Relación Include
Indica que un caso de uso incluye dentro de su
funcionalidad a otro caso de uso
¿Es suficientemente obvio si el caso de uso Realizar Venta
incluye la Autorización de Créditos o es necesario hacerlo
explícito?
<<include>>
Realizar Venta
Vendedor
Autorizar Crédito
61
Caso de Uso Base e Incluído
El Caso de Uso incluído forma parte del caso de uso
base Caso de Uso Base
Caso de Uso Incluído
<<include>>
Realizar Venta
Vendedor
Autorizar Crédito
62
Relación Extend
Cuando un caso de uso extiende a otro caso de uso,
significa que le agrega pasos o actividades
adicionales, pero el caso de uso base está completo
aún si no existiera el que lo extiende
<<extend>>
Realizar Venta
Vendedor
Aplicar descuento
63
Paquetes
Los paquetes sirven
para agrupar de una
manera lógica Paquete
elementos de UML y
reducir la complejidad
Casos de uso
Clases
Componentes
64
Paquetes de Casos de Uso
Nómina Administración Un paquete de
casos de uso
representa
agrupación lógica
de funcionalidad.
Ejemplo:
módulos,
subsistemas,
sistemas.
65
Ejercicio
Desarrollar un diagrama de casos de uso
con todos sus elementos para el caso de
estudio.
Actores
Casos de uso
Relaciones entre actores y casos de uso
Relaciones <<includes>> y <<extends>>
entre casos de uso
66
Conclusiones
El diagrama de casos de uso muestra el
comportamiento del sistema y las interacciones con
las entidades externas
Los tipos de relaciones entre casos de uso están
definidos por los estereotipos extends e includes
Un actor es una entidad externa que interactúa con
el sistema
Un caso de uso es un conjunto de interacciones
entre el sistema y uno o más actores
Los casos de uso se pueden agrupar en paquetes
para reducir la complejidad y organizarlos en
subsistemas y módulos
67
Documentación de
Casos de Uso
Flujos de Eventos y Glosario
de Términos
68
Objetivos
El alumno aprenderá a documentar los
requerimientos del sistema mediante el uso de
flujos de eventos y escenarios
Entenderá la estructura de un flujo de eventos
Comprenderá la ventaja de los flujos de eventos
sobre el enfoque basado en listas de
requerimientos
Comprenderá el uso que tiene este artefacto
para mejorar la comunicación entre las partes
involucradas en el proyecto
69
Documentación de los Casos de
Uso
Los casos de uso se documentan
con:
Una breve descripción
El propósito del caso de uso en unas
cuantas líneas
El flujo detallado de los eventos
Descripción detallada de eventos
Terminología y redacción simple
orientada al negocio/usuario
70
Estructura de los Flujos de Eventos
71
Precondiciones
Es el estado en que se encuentra el sistema
antes de iniciar el caso de uso, y que es
necesario para poder llevarlo a cabo
exitosamente
Generalmente son aspectos que no van a ser
validados durante el caso de uso, sino que se dan
por ciertos
Ejemplo:
Precondiciones para Retirar Efectivo:
Que el cajero cuente con efectivo
Que el cliente haya accesado a su cuenta
Que haya conección con el sistema bancario central
72
Contenido del Flujo de Eventos
Describe sólo los eventos que ocurren dentro del caso
de uso y no lo que pasa en otros casos de uso
Evita terminología vaga como por ejemplo,
“información” y “etc.”
El flujo de eventos debe describir:
Cómo y cuándo comienza y termina el caso de uso
Cuándo interactúa el sistema con el actor en el caso de
uso
Qué información es intercambiada entre un actor y el
sistema
No describir los detalles de la interface de usuario
El flujo básico de eventos
Cualquier flujo alterno
73
Tipos de Secuencias o Flujos
• Cada caso de uso
– Tiene un flujo primario, normal de transacciones,
pasos o interacciones (el happy path)
– Puede tener varios flujos alternos
– Normalmente tiene flujos excepcionales de eventos
para el caso de situaciones erróneas
Flujos alternos
Flujo principal
Flujos
excepcionales
74
Post Condiciones
Es el estado en el que debe quedar el
sistema después de haber llevado a cabo
exitosamente un caso de uso
En Retiro de Efectivo:
La cuenta del cliente queda reducida con el monto
retirado
La transacción queda registrada en el log del
cajero
75
Usuarios de los Casos de Uso
Clientes – validan que los desarrolladores
comprendieron el problema
Usuarios – clarifican sus ideas respecto al problema
Desarrolladores – comprenden lo que el usuario espera
del sistema a desarrollar
Revisores – verifican la calidad de los requerimientos
Analistas y diseñadores – base para el análisis y el
diseño
Tester – a partir de estos validan que el sistema hace lo
que el cliente/usuario pidió
Líder de proyecto – es la base para el plan de trabajo
Documentador – lo usan como base aproximada de un
manual de usuario
76
Prototipo GUI
Facilita el levantamiento de
requerimientos
Al usuario y a los desarrolladores les ayuda a
aterrizar y esclarecer ideas
Reduce riesgos de requerimientos mal
entendidos
Realizarlos en paralelo con los casos de
uso
77
El Prototipo y el Caso de Uso
Caso de Uso: Cotizar
Seguro de Vida
Descripción: El caso de
uso comienza cuando el
ejecutivo registra los
datos del asegurado, el
sistema utiliza los
parámetros de cotización
para indicar el monto ...
78
Ejercicio
Desarrollar para el caso de uso
especificado:
Las precondiciones
El flujo de eventos primario
Los flujos de eventos alternos
Un flujo excepcional
Las postcondiciones
79
Conclusiones
Los flujos de eventos son la forma en que se
describen textualmente y a detalle los casos de
uso
Los flujos de eventos permiten especificar el
funcionamiento del sistema
Es uno de los principales artefactos de entrada
utilizados por los diferentes stakeholders
Los prototipos GUI facilitan la identificación de
requerimientos y casos de uso, y ayudan a
eliminar riesgos tempranamente
80
Diseño Orientado a
Objetos
81
Diagramas de
Interacción
El Diagrama de
Secuencia y de
Colaboración
82
Objetivos
Aprender cómo modelar la estructura dinámica
de un sistema
Aprender a desarrollar un diagrama de
secuencia para modelar el comportamiento de
los objetos en un sistema
Aprender a desarrollar un diagrama de
colaboración
Entender las diferencias y similitudes entre los
2 tipos de diagramas de interacción
83
Diagrama de Interacción
Son los artefactos de UML mediante
los cuales se modelan las
interacciones entre las clases para
llevar a cabo (o realizar) un caso de
uso, una parte de este o un
escenario en particular.
Es la representación gráfica de un
flujo de eventos.
84
Tipos de Diagramas de Interacción
85
Diagramas de Interacción
Diagrama de Secuencia Diagrama de
Colaboración
1: Mensaje Objeto :
Objeto : Clase Objeto2 : Clase Clase
Juan : Actor
1: Mensaje
Pasos o
2: Operacion ( ) 2: Operacion ( ) 3: Mensaje Reflexivo
eventos del
Juan : Actor
caso de
uso. << Foco de 3: Mensaje Reflexivo
Control
Objeto2 :
Clase
<< Linea de
Vida
86
Diagrama de Secuencia
Es el artefacto de UML que se utiliza para
mostrar las interacciones entre los
objetos, enfocándose en el orden o la
secuencia de pasos del caso de uso.
Pantalla Objeto : Clase
: Cliente
Mensaje 1
Mensaje 2
87
Elementos del D. de Secuencia
Objeto : Clase Objeto2 : Clase
Juan : Actor
1: Mensaje
Pasos o
2: Operacion ( )
eventos del
caso de
uso. << Foco de 3: Mensaje Reflexivo
Control
<< Linea de
Vida
88
Objetos y Clases
Existen 3 formas de mostrar un objeto o clase
en un diagrama de secuencia
Únicamente el nombre del objeto
nombre del objeto y clase asociada
Únicamente el
o instancia nombre de la clase
89
Línea de Vida
Línea vertical punteada
que representa la :Avion
existencia de un objeto
en un momento create
:Vuelo
determinado.
Es posible indicar la destroy
creación y destrucción
del objeto.
90
Mensaje
Las flechas que van de una línea de vida a otra son
mensajes entre los objetos
El objeto que recibe el mensaje es el servidor y el que envía el
mensaje es el cliente
Un mensaje puede corresponder a una operación en
una clase o a un trigger en un diagrama de estados
:Avion :Vuelo
Vuelo
Asignar (IdAvion)
91
Foco de Control
Periodo de tiempo en el que un objeto
está realizando una acción, ya sea
directamente o mediante un procedimiento
subordinado
Foco de control del
:Avion :Vuelo :Plan procedimiento
Asignar(IdAvion)
92
Foco de Control Jerárquico
Sirve para remarcar el control que tiene un
subprocedimiento de un objeto
:Avion :Vuelo
Foco de control del
Asignar (IdAvion) procedimiento
Asignar(IdAvion)
VerificarSalida ( )
Tiempo en que se
ejecuta VerificarSalida
93
Notación de Mensajes
:Avion :Vuelo
1.1 VerificarSalida ( )
94
Numeración de Mensajes
:Cajero :Cuenta :PersCuenta
Enteros 1. AplicarRetiro ( )
2. ValidarCuenta ( )
secuenciales
3. CrearTransaccion ( )
1. AplicarRetiro ( )
1.1. ValidarCuenta ( )
95
Numeración de Mensajes
:Cajero :Cuenta :PersCuenta
Sin AplicarRetiro ( )
ValidarCuenta ( )
numeración
CrearTransaccion ( )
1. AplicarRetiro ( )
1.1a. [NIPValido]ValidarCuenta( )
96
Mensajes Iterativos
Para expresar que un mensaje se envía
repetidamente al objeto receptor se utiliza
un ‘*’
:POST :Venta
:POST :Venta
1*: [i:=1..10]li:= siguienteRenglonVenta():RenglonVenta
97
Mensajes
Verificar edad del empleado
Mensaje
llamada a
procedimiento
98
Relación entre el Diagrama de
Secuencia y el de Clases
1: Inicializa Venta
2: Inicializar(Cliente, Fecha)
3: Agrega producto
4: AgregarProducto(ClaveProducto, Cantidad)
5: Crear(ClaveProducto, Cantidad)
99
Ejercicio
Desarrollar el diagrama de secuencia del
caso de uso especificado.
100
Diagrama de Colaboración
101
Diagrama de Colaboración
1: Mensaje Objeto :
Clase
Ligas
Objeto2 :
Clase
102
Objetos y Clases
Indica el objeto y/o clase que interviene en
la interacción
Puede estar descrito de 3 formas
diferentes:
:Clase : Empleado
Objeto
objEmpleado
Objeto:Clase objEmpleado :
Empleado
103
Colecciones de Objetos
En el diagrama de
colaboración las
: Empleado
colecciones de
objetos aparecen
gráficamente con la colEmpleados :
Empleado
siguiente notación
Representan grupos ListaEmpleados :
Empleado
de objetos con
multiplicidad mayor a
uno
104
Colecciones de Objetos
Colección en Colección en
Diagrama de Clases Diagrama de
Colaboración
:
Empresa
Empresa
+ListaEmpleados
1..*
ListaEmpleados :
Empleado Empleado
105
Ligas
Sirve para indicar que
dos objetos pueden
realizar interacciones :
Empresa
entre sí : Empleado
Junto a la liga se
indica cada uno de los ListaEmpleados :
106
Mensajes
Es una llamada de un
objeto a otro
2.2. CalculaEdad(FechaActual):Integer
Se coloca junto a la liga
entre dos objetos 2.1. ObtenAñoNacimiento():Integer
1: Mensaje
Pasos o
2: Operacion ( ) 2: Operacion ( ) 3: Mensaje Reflexivo
eventos del
Juan : Actor
caso de
uso. << Foco de 3: Mensaje Reflexivo
Control
Objeto2 :
Clase
<< Linea de
Vida
108
Ejercicio
109
Conclusiones
Los diagramas de interacción muestran la forma
en que se da la comunicación entre las clases
participantes en un caso de uso o escenario.
Existen 2 tipos de diagramas de interacción: de
secuencia y de colaboración.
Cada uno de los tipos de diagramas de
colaboración se enfoca a aspectos específicos
de la colaboración entre los objetos.
110
El Diagrama de
Clases
La Estructura Estática del
Sistema
111
Objetivos
Conocer los elementos de UML para
modelar un diagrama de clases
El alumno podrá desarrollar un diagrama
de clases con base en los artefactos
generados durante el análisis
El alumno conocerá los elementos de un
diagrama de clases
112
Diagrama de Clases
Es el artefacto principal en el desarrollo
orientado a objetos
Muestra las clases en las que se
implementará el sistema, sus relaciones,
atributos y operaciones
113
Elementos en un Diagrama de Clases (1/2)
Clases
Atributos
Operaciones
Scope o alcance de atributos y
operaciones
114
Elementos en un Diagrama de Clases
(2/2)
Relaciones
Elementos de las Asociaciones y
Agregaciones
Navegabilidad
Roles
Multiplicidad
115
Atributos
Descripción de un dato
que define a una clase
El atributo debe tener
especificado un nombre,
tipo de dato y scope
Cada objeto instanciado
de una clase tiene su
propio valor para el
atributo
116
Operaciones
Especificación de una transformación o query
que puede ser solicitado a un objeto
Consta de un nombre y una serie de parámetros
(firma de la operación)
Un método es la implementación de una
operación
117
Scope de Atributos y Operaciones
118
Control de Acceso y Encapsulamiento
Operaciones
protegidas y
privadas
Operaciones
públicas
119
Especificación del Control de Acceso
120
Especificación del Control de Acceso
Curso
- maxAlumnos
- Nombre
+ agregarAlumno ()
+ estaLleno ()
# determinarTamañoCurso ()
121
Tipos de Relaciones entre Clases
Modulo
Asociación Curso
Agregación y
Composición
Generalización
Dependencia Alumno
Diplomado
122
Asociación
Es la relación más simple entre dos clases
Indica que 2 clases pueden verse o
solicitar sus servicios
Asociación
Clase Clase2
123
Clases Asociación
Alumno Curso
3..10 4
Calificación
Promedio
124
Roles
En términos de análisis indica el rol que toma una clase
con respecto a otra en una relación de asociación
En términos de implementación es el nombre de la
instancia u objeto que se utilizará para solicitar los
servicios de la clase y para asignarle valores a sus
atributos
125
Navegabilidad
La asociación sin flechas indica que ambas clases
pueden verse y comunicarse entre sí
Pero, en ocasiones no es necesario eso, sino que una
sola clase es la que requiere comunicarse con la otra,
en este caso indicamos que existe navegabilidad hacia
un solo lado por medio de una punta de flecha al final de
la asociación
126
Agregación
Es una clase especial de asociación
donde una clase “contiene” a otra clase, o
donde una clase “es parte de” otra clase
Un Motor “contiene” Válvulas (o las válvulas
son parte del motor)
Motor Válvula
127
Composición
Es un tipo de agregación más sólido donde las
partes sólo existen cuando existe el contenedor
Una mano está compuesta de dedos
Si la mano desaparece los dedos no sirven de nada
Sólo puede ser parte de un contenedor
Mano Dedo
128
Herencia
Es una relación donde una clase es
un tipo especial de otra clase. Es
decir, tiene todas las características
(atributos, operaciones y relaciones)
de la súperclase más otras
especiales
Un carro es un tipo especial de
transporte
Existen dos formas de identificar la
herencia:
Generalización
Especialización
129
Generalización
Cuando obtenemos características comunes de
varias clases para crear una súperclase de la cual
van a heredar todas las subclases las características
comunes
Carro Barco
Motor Motor
Llantas Aspas
130
Generalización
Transporte
Motor
Carro Barco
Llantas Aspas
131
Especialización
Es la técnica mediante la cual se identifica que una clase
puede comportarse o tener características diferentes
dependiendo de cierta situación o condición
Identificamos cuáles son las características que nunca
cambian y las dejamos en una súperclase, y las
características especiales las ponemos en nuevas clases
llamadas subclases
Transporte
Transporte Motor
Motor
Llantas
Carro Barco
Aspas
Llantas Aspas
132
Dependencia
Es un tipo de relación menos duradera
que una asociación o una agregación
La comunicación sólo es posible en
momentos específicos de la clase
dependiente (p.ej. cuando instancía o recibe
como parámetro a la 2a clase)
Nomina Empresa
133
Visibilidad
Existen cuatro opciones de visibilidad
Global
El objeto servidor es un objeto global
Parámetro
El objeto servidor es un parámetro de una operación del
objeto cliente
Local
El objeto servidor se declara localmente
Campo
El objeto servidor es un campo contenido en el objeto cliente
134
Visibilidad
Indica cómo y bajo
que circunstancias Visibilidad Tipo de
pueden Relación
comunicarse dos Global dependencia
clases Por parámetro dependencia
relacionadas
Local dependencia
Por campo asociación,
agregación o
composición
135
Elaboración del Diagrama de
Clases
Identificar operaciones y su scope (usar d.
de interacción)
Identificar atributos con su tipo de dato y
scope
Identificar relaciones entre clases (usar d.
de interacción)
Organizar clases en paquetes lógicos
136
Información en Diagrama de
Interacción
El diagrama de interacción es uno de los productos de entrada más
importantes para elaborar el de clases
Pasos para Refinar el Diagrama de Clases a partir del de
interacción
Convertir mensajes en operaciones
Definir scope de las operaciones
Decidir visibilidad requerida entre 2 clases comunicándose en el d. De
interacción
Si es global, local o por parámetro mostrar una dependencia en el d. De
clases
Si es por campo
Identificar si es una relación de un todo con sus partes
Si la parte, sólo es “parte” en una relación de composición, marcarla como
composión
Si no marcarla como agregación
Si no, marcarla como asociación
Mostrar la multiplicidad, navegabilidad y rol
137
Paquetes de Clases
Las clases se pueden agrupar
lógicamente en paquetes
Las clases que se agrupan son las Paquete
que guardan una relación cercana
entre sí, ya sea de funcionalidad o
de datos
Estos grupos o paquetes lógicos de
clases son los que suelen
convertirse en componentes
138
Paquete de Clases
Nómina Empresa
Empleado Empresa
Nómina Dirección
Ventas
Impuestos
Venta Cliente
Producto Factura
139
Ejercicio
140
Conclusiones
El diagrama de clases muestra la estructura
estática del sistema
Un diagrama de clases muestra las clases y sus
relaciones
Existen diferentes tipos de relaciones y
visibilidad entre las clases
Las clases se pueden agrupar lógicamente en
paquetes para reducir la complejidad
141
Diagrama de
Estados
142
Objetivos
Aprenderá a modelar los posibles estados
de una clase por medio de un diagrama
de transición de estados
Entenderá el comportamiento de un
sistema a partir de sus cambios de estado
Podrá interpretar el diagrama de estados
en código
143
Definición
144
Ejemplos Simples
Niñez
Estados de un Avión
Encendido
Adolescencia Madurez
Despegue Volando
Senectud
Apagado Aterrizando
145
Estado
Un estado es una
condición o situación
en la vida de un
objeto durante la cual
satisface alguna
condición,
realiza algunas
actividades o
está en espera de
algún evento
146
Elementos
Estados
Transiciones
Eventos
Condiciones de Guarda
Acciones
Estados Anidados
Historia
147
Estado
Es una de las posibles
condiciones en la que un
objeto puede existir y está
determinada por una de las
3:
Abierto Valores de atributos
Espera de algún evento
Ejecución de alguna acción
Nombre único a nivel de
clase o a nivel de
superestado
Estados con el mismo
nombre en un diagrama
representan el mismo estado
148
Estados Especiales o Pseudoestados
Estado Inicial.
Un pseudo estado que indica el
primer estado que toma un objeto
Inicializando
cuando es creado
do/ Inicializar el objeto curso
Es obligatorio
Sólo se permite uno
Estado Final
RegistroCompletado
Indica el final de la vida de un objeto
do/ Generar lista del curso Es opcional
Puede existir más de uno
149
Transición de Estado
Abierto
agregarAlumno
Es un cambio del estado
entry/ Registrar un alumno
original a un estado
sucesor como respuesta a
un estímulo
[ numAlumnos = 10 ]
Elestado sucesor puede
Cerrado ser el estado original
do/ Reportar que el curso esta cerrado En respuesta a un evento
Al cumplirse una
condición
evento (argumentos) [condición] / acción ^ objetivo.enviarEvento (argumentos)
150
Eventos
Encender PC
Es una ocurrencia que
Inicialización
sucede en un instante
de tiempo dado
El estado de un objeto
Operación
determina la respuesta a
Apagar PC
diferentes eventos
Apagada
151
Condición de Guarda
agregarAlumno
Es una expresión
Abierto Booleana sobre el valor
de los atributos de un
[ numAlumnos = 10 ] objeto que se debe
cumplir para que se dé
Cerrado la transición de estado
152
Acciones
Es una operación que
puede estar asociada a
agregarAlumno una transición o a un
Abierto
estado
Transición
Instantáneas
[ numAlumnos = 10 ]
No interrumpibles
Estado
Cerrado No instantáneas
Interrumpibles
Se ejecutan a la entrada,
durante, a la salida o al
ocurrir un evento.
153
Estados Anidados o Compuestos
Reducir la complejidad
Registrando
El superestado anida
subestados
NoAsignado
do/ Asignar profesor al curso Las transiciones comunes
agregarAlumno / numAlumnos = 0 a los subestados se
Abierto
agregarAlumno
representan a nivel de
entry/ Registrar un alumno superestado
[ numAlumnos = 10 ]
Anidamiento a cualquier
Cerrado
nivel de profundidad
do/ Reportar que el curso esta cerrado
154
Historia
Al regresar a un
Registrando superestado, éste
recuerda cual fue el
último estado visitado e
NoAsignado inicia ahí
do/ Asignar profesor al curso
agregarAlumno / numAlumnos = 0
Si la característica de
Abierto
agregarAlumno historia no es
entry/ Registrar un alumno
empleada, al regresar
al superestado se
[ numAlumnos = 10 ]
ingresará siempre al
Cerrado
estado inicial
do/ Reportar que el curso esta cerrado
155
Consideraciones
156
Conclusiones
Un diagrama de transición de estados
sirve para mostrar los posibles estados y
transiciones de un objeto.
Una transición indica el posible cambio de
un estado a otro cuando ocurre un evento
y/o se cumple una condición.
Los estados compuestos o súper estados
agrupan un conjunto de estados.
157
El Modelo de
Componentes
158
Objetivos
El alumno aprenderá a modelar los
componentes que conforman a un sistema
Comprender qué es un componente de software
Enlistar los beneficios de los componentes
Aprender en qué consiste el desarrollo de
software basado en componentes
Apreciar los beneficios del desarrollo de
software basado en componentes
El alumno aprenderá a modelar la distribución
del sistema en componentes de hardware
159
Desarrollo Basado en
Componentes
El desarrollo basado en componentes es la
adopción e implantación de métodos, técnicas,
herramientas, estándares y tecnologías de
soporte para crear sistemas de software a
partir de componentes predefinidos.
160
Componente de Software
Los componentes son agregaciones de piezas más pequeñas de
software (p.ej. Clases)
Los componentes se utilizan como bloques de construcción de la
estructura de un sistema
Es una parte física reemplazable de un sistema de software que
tiene una interfaz que proporciona acceso a sus servicios.
Factura
161
Encapsulamiento en Componentes
Un componente encapsula la
complejidad de la
implementación mostrando
únicamente la interfaz.
La interfaz es todo aquello que
puede ser visto y controlado por
el usuario para hacer uso del
componente
162
Beneficios de los Componentes
Aumenta la productividad de la gente
Aumenta la calidad
Disminuye el tiempo de entrega
Fáciles de utilizar
163
Tipos de Componentes
Existen diferentes tipos de componentes
Librerías
.cpp
.h <<EXE>>
.java Factura
.class
Ejecutables
.exe
.dll
164
Diagrama de Componentes
Conta.exe Compras.exe
Sistema Cotizacion.dll
Cotizador
Productos.dll
Contable Catalogo
Cotizacion CtrlProveedores
Producto CtrlSolicitud
Cotizacion Proveedor
Producto Solicitud
165
Interfaces
Un especificador de las operaciones externamente visibles de una
clase, componentes u otras entidades como los paquetes
Interface: IGestorVentas IGestor
Servicios: Ventas
Registrar
Agregar Producto
Imprimir
Ventas
Un componente puede implementar una o más interfaces.
Se simboliza con un círculo asociado con una línea al componente
166
Implementación de Interfaces
Equivale a una clase abstracta sin
atributos ni métodos, únicamente contiene
operaciones abstractas
Características:
Estructura interna no especificada
No tienen implementación
No tienen atributos, estados o asociaciones
Sólo tienen operaciones (pero no métodos)
Pueden tener relaciones de generalización
167
Realización
La clase que se ocupa de
la implementación de las
operaciones de una
interface tiene una relación
de realización con la
interface (o con la clase
abstracta)
El componente donde está
la clase que la implementa
también tiene una relación Nomina
de realización IEmpleado
168
Dependencia entre Componentes
Si un componente depende de otro significa que una clase del
primer componente utiliza los servicios de una clase del segundo
componente
Factura depende de Productos
Factura no funciona si no existe Productos, pero lo contrario si es
posible
Factura Productos
Renglon
Producto
Venta
169
Clases dentro de Componentes
Tips para seleccionar las clases de cada
componente:
Juntas forman un solo objeto más complejo desde la
perspectiva del usuario
Existe mucha dependencia entre ellas
Si los servicios de una de las clases son requeridos
por más de 1 componente entonces tal vez debería
de estar en un componente aparte para poder ser
utilizada por varios
170
Clases dentro de Componentes
Si una clase “es parte” únicamente de una
clase X y de ninguna otra, entonces debería
de encontrarse en el mismo componente.
El componente debe ofrecer pocos servicios y
muy especializados hacia el exterior
171
Clases en Componentes
Empresa
Empleado
Dirección
Nómina
Producto
Impuestos Venta
Cliente
Factura
172
Componente: CtasCliente.dll
CtasCliente
173
Comunicación con Interfaces
<<DLL>>
SistCentral
Interf aceSis
Central
<<DLL>>
CtasCliente
<<DLL>>
Movimientos
Mov imiento
Cuenta
174
Ejercicio
Agrupa las clases del caso de estudio y
define los componentes en un diagrama
de distribución
175
Conclusiones
Un componente es una parte física reemplazable de un
sistema
Los componentes agrupan clases lógicamente
relacionadas entre sí
Los componentes pueden implementar una o varias
interfaces
Una interface es un conjunto de servicios con un nombre
La dependencia entre componentes indica que una
clase dentro de un componente utiliza a otra en otro
componente
176
Diagrama de
Distribución o
Despliegue
177
Objetivos
Que el alumno sea capaz de modelar la
arquitectura física de un sistema
Entenderá los elementos de un diagrama
de distribución
178
Diagrama de Distribución
Muestra la implementación física de los componentes de
software en componentes de hardware, así como el tipo de
conexión entre estos.
Detalla:
Capacidad de la red, especificaciones de servidores,
requerimientos de hardware y demás información
necesaria para distribuir el sistema propuesto
Cliente Servidor
c/Browser UNIX
Internet
179
Nodos
Los nodos se utilizan para representar cualquier servidor,
estación de trabajo o cualquier otro hardware utilizado para
distribuir los componentes en el ambiente de producción
Ejemplo: Servidor 3PentiumIII, Cliente Pentium II, Servidor
de BD.
Servidor
UNIX
180
Ligas
Muestra la conexión entre dos dispositivos
de hardware (nodos).
Se le pueden agregar notas o estereotipos
para indicar el tipo de conección y/o protocolo
utilizado.
Cliente Servidor
c/Browser UNIX
Internet
181
Distribución de Componentes
Pueden combinarse el
diagrama de
componentes con el de
distribución para mostrar
qué componentes de
software irán en qué
nodo de hardware
Algunas herramientas
de modelado no
soportan este tipo de
notación
182
Ejemplo
183
Dispositivos
Además de los nodos, que representan
computadoras y/o procesadores en este
diagrama pueden mostrarse los
dispositivos especiales requeridos:
Lectores ópticos, monitores, sensores, etc.
Se conectan mediante ligas al nodo que
representa la computadora a la cual van
conectados físicamente
184
Diagrama de Despliegue
185
Ejercicio:
Desarrollar el Diagrama de Distribución
para el caso de estudio.
186
Conclusiones
El diagrama de distribución muestra la ubicación
de los componentes de software en
componentes de hardware
El diagrama de distribución está compuesto de
nodos y ligas
Se puede mostrar en un nodo los componentes
que corren en este
187