Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INFORMACIÓN
UML
Ms. MIRKO MANRIQUE RONCEROS
Modelado del software
• Ejemplos • Modelado
•
sofisticadas
Puede hacerlo una
sola persona • Construcción de un
Requiere: rascacielos
• Modelado mínimo • Contexto de desarrollo
• Proceso simple • Determinar
• Herramientas simples configuración del
proceso
• Construcción de una casa
• Recursos necesarios
• Construida • Herramientas más
eficientemente y en sofisticadas aún.
un tiempo razonable
de un equipo
Claves en Desarrollo de SI
Notación
Herramientas Proceso
Abstracción - Modelado Visual (MV)
“El modelado captura las
partes esenciales del sistema”
Orden
Item
envío
Proceso de Negocios
Sistema Computacional
¿Qué es UML?
UNPSJB - 2005
UML “aglutina” enfoques OO
Rumbaugh
Booch Jacobson
Odell
Meyer
Pre- and Post-conditions
Shlaer-Mellor UML
Object life cycles
Harel
State Charts
Gamma et. al.
Frameworks, patterns,
notes
Embly Wirfs-Brock
Singleton classes Responsabilities
Fusion
Operation descriptions,
message numbering
Aspectos Novedosos
Scenario State
Scenario State
Diagramas de
Diagrams Diagramas de
Diagrams
Diagrams Diagrams
Colaboración Modelo Componentes
Scenario Component
Scenario Component
Diagramas
Diagrams de
Diagramas de
Diagrams Diagrams
Diagrams Distribución
Estados Diagramas de
Actividad
Organización de Modelos
• 4+1 vistas de Kruchten (1995)
Vista de
Vista Lógica Realización
Vista de los
Casos de Uso
Vista de Vista de
Procesos Distribución
Nombre de
paquete
… Paquetes en UML
• Cada paquete corresponde a un submodelo
(subsistema) del modelo (sistema)
• Un paquete puede contener otros paquetes, sin límite
de anidamiento pero cada elemento pertenece a (está
definido en) sólo un paquete
• Una clase de un paquete puede aparecer en otro
paquete por la importación a través de una relación de
dependencia entre paquetes
… Paquetes en UML
• Todas las clases no son
necesariamente visibles
desde el exterior del paquete,
es decir, un paquete
encapsula a la vez que agrupa
• El operador “::” permite
designar una clase definida
en un contexto distinto del
actual
… Paquetes en UML
Diagrama de Casos de Uso
de cómo un sistema o
negocio trabaja, o de cómo
se desea que trabaje
• No pertenece estrictamente
Administrativo
Preparar Catálogo
Sistema
al enfoque orientado a Inventario
objeto, es una técnica para
captura de requisitos
Tipos de Venta
… Ejemplos
En el paquete tipos de venta: Otro Ejemplo
[Tarjeta Caducada]
<<extend>>
Venta en Rebajas
Vendedor
<<include>>
Reintegro Cuenta Corriente
<<include>>
prestar(video, socio)
verificar situación socio
registrar préstamo
entregar recibo
Diagrama de Colaboración
:Socio
:Video
5: entregar recibo
: Encargado 4: registrar préstamo
:Préstamo
Diagrama de Clases
dirige director
Departamento Profesor
0..1 1
… Ejemplos (Clase Asociación)
empleador trabajadores
Empresa Empleado
* 1..*
Cargo
superior
nombre
sueldo 0..1
subordinado 1..*
… Ejemplos (Generalización)
Trabajador
{ disjunta, completa }
1..4 1..2 1
1 n
n
1 n 1 n
Avión Vuelo Reserva
n
{ disjunta, completa }
{ disjunta, completa }
número_préstamos = 0
sin préstamos
Socio
número : int
nombre : char[50]
número_prestamos : int = 0
prestar devolver[ número_préstamos = 1 ]
alta()
baja()
prestar(código_libro : int, fecha : date)
devolver(código_libro : int, fecha : date)
número_préstamos > 0
con préstamos
prestar
Encender máquina
/ cafetera.On
Café en preparación
indicador de fin
Servir café
Beber
… Otro Ejemplo (con swim lines)
Pasajero Vendedor Airline
Solicitar pasaje
Verificar
existencia vuelo
Informar alternativas
y precios
Seleccionar vuelo
Confirmar
Pagar pasaje plaza reservada
Emitir billete
Diagrama Componentes
Control y Análisis
Interf az de Terminal
Comment
Comment
Acceso a BD Comment
Comment
Rutinas de Coneccion
Comment
T erminal de Consulta
Interfaz de Terminal
Rutinas de Coneccion
Comment Comment
Punto de Venta
Rutinas de Coneccion
Comment
Comment Comment
Resumen
--Wolfgang Strigel
… Problemas en OO
• Un objeto contiene datos y operaciones que operan sobre los datos,
pero ...
• Podemos distinguir dos tipos de objetos degenerados:
• Un objeto sin datos (que sería lo mismo que una biblioteca de
funciones)
• Un objeto sin “operaciones”, con sólo operaciones del tipo crear,
recuperar, actualizar y borrar (que se correspondería con las
estructuras de datos tradicionales)
• Un sistema construido con objetos degenerados no es un sistema
verdaderamente orientado a objetos
DFDs DEs
Enfoque Entornos de
Estructurado E-R Programación
Modelo Visual
Diagramas de Casos de Uso Relacional
Diagramas de Actividad
Diagramas de Secuencia
Diagramas de Colaboración d Modelo
Relacional !! Bases de Datos
(Objeto-)
Enfoque OO Diagrama de Clases
Relacionales
Diagrama de Estados
Diagramas de Actividad
Diagramas de Casos de
Uso
Casos de Uso
• Los Casos de Uso (Ivar Jacobson) • Comparación con respecto a los Diagramas de
describen bajo la forma de Flujo de Datos del Enfoque Estructurado
acciones y reacciones el
comportamiento de un sistema
• Un caso de uso es una función atómica
ofrecida por el sistema al entorno (actores)
desde el p.d.v. del usuario
• DFD puede ser detallada en un DFD Hijo
• Permiten definir los límites del • Caso Uso y Proceso igual modelado, pero
sistema y las relaciones entre el caso de uso expresa funcionalidad
sistema y el entorno mediante interacción de actores
• Los Casos de Uso son • Caso de uno no modela detalle funcional
interno
descripciones de la funcionalidad
del sistema independientes de la • Relaciones de extensión y generalización
implementación de CU no tienen igual en DFD
… Casos de Uso
conjunto de necesidades
atendiendo a la categoría de
usuarios que participan en el Caso de Uso B
mismo Actor B
• Actores:
• Principales: personas que usan el sistema
• Secundarios: personas que mantienen o administran el sistema
• Material externo: dispositivos materiales imprescindibles que forman
parte del ámbito de la aplicación y deben ser utilizados
• Otros sistemas: sistemas con los que el sistema interactúa
• La misma persona física puede interpretar varios papeles como actores
distintos
• El nombre del actor describe el papel desempeñado
… Casos de Uso
Caso de Uso
• <<include>> reemplazó al
Actor denominado <<uses>>
… Casos de Uso: Relaciones
• Herencia : el Caso de
Uso origen hereda la
• Extensión : el Caso de especificación del Caso
Uso origen extiende el de Uso destino y
comportamiento del posiblemente la
Caso de Uso destino modifica y/o amplía
<<extend>>
Identificación
<<include>>
• Ejemplo:
Cliente
Transferencia
<<extend>>
Transferencia en Internet
… Casos de Uso: Relaciones
• Ejemplo:
Casos de Uso: Construcción
A
… Mensajes
1: distancia:= mover(x,y)
B
color
cilindrada
velocidad maxima
arrancar
acelerar
frenar
Clases: Notación Gráfica
• Otros ejemplos:
lista
pila
primero
ultimo apilar
añadir desapilar
quitar cardinalidad
cardinalidad
Clases: Encapsulación
Universidad Estudiante
Una asociación
… Asociación
• Ejemplo:
marido
casado-con 0.. 1
0.. 1 trabaja-para * Compañía
mujer Persona *
nombre emplea-a
jefe nombre
0.. 1 s. s. dirección
Administra * empleado
… Asociación
Tablero fila 1 1
columna
Cuadro
Ajedrez
Multiplicidad Mínima
Multiplicidad Máxima
0 nulos permitidos (mínc, máxc) 1 univaluado
> 0 nulos no permitidos
> 1 multivaluado
Objeto Componente
... Agregación: Caracterización
* * Persona
Cuenta Asociación excluyente
or
*
Empresa
1
* está-autorizado-en *
Usuario Estación
Autorización
prioridad
Clase de asociación privilegios
camb_privil
Clases y Objetos
Funcionando Estropeado
{ estática }
Avión Helicóptero
... Generalización
{ dinámica }
Funcionando Estropeado
... Generalización
int(A) int(B)
ext(B) ext(A)
B
... Generalización
• Clasificación
C
Estática
0
C1 Cn
... Generalización
• Clasificación
C
Dinámica
0
uso
Vehículo Aéreo
estructura
Avión Helicóptero
Clasificación Múltiple (herencia múltiple)
cubertura comida
Animal
Con Plumas cobertura
comida
cobertura Carnívoro
Con Escamas
Conejo
Principio de Sustitución
• El Principio de Sustitución de Liskow (1987) afirma que:
“Debe ser posible utilizar cualquier objeto instancia de una
subclase en el lugar de cualquier objeto instancia de su
superclase sin que la semántica del programa escrito en
los términos de la superclase se vea afectado.”
… Principio de Sustitución
?
León Oso Tigre
… Polimorfismo
Animal Dormir()
{
dormir()
}
A B
perder empleo
jubilarse
jubilarse
jubilado
Acciones
• Podemos especificar la solicitud de un servicio a otro
objeto como consecuencia de la transición:
B
… Acciones
• Se puede especificar el ejecutar una acción como
consecuencia de entrar, salir, estar en un estado, o por
la ocurrencia de un evento
estado A
entry: acción por entrar
exit: acción por salir
do: acción mientras en estado
on evento: acción
Generalización de Estados
• Podemos reducir la complejidad de estos diagramas
usando la generalización de estados
• Distinguimos así entre superestado y subestados
• Un estado puede contener varios subestados disjuntos
• Los subestados heredan las variables de estado y las
transiciones externas
Generalización de Estados
• Ejemplo:
e1
A B
e2
e2
C
Generalización de Estados
• Quedaría como:
e1
Aa b
B
e2
C
… Generalización de Estados
• Las transiciones de entrada deben ir hacia subestados
específicos:
e1
Aa Bb
e2
e0
C
… Generalización de Estados
• Es preferible tener estados iniciales de entrada a un
nivel de manera que desde los niveles superiores no se
sepa a qué subestado se entra:
e1
Aa b
B
e2 C
e0
… Generalización de Estados
e1
e1
… Generalización de Estados
• Ejemplo:
Historia
• Por defecto, los autómatas no tienen memoria
• Es posible memorizar el último subestado visitado para
recuperarlo en una transición entrante en el
superestado que lo engloba
• También es posible la memorización para cualquiera de
los subestados anidados (aparece un * junto a la H)
… Historia
A
• Ejemplo:
d2
B
in
D x y
out
d1
C
H*
… Historia
• Ejemplo:
Espera
Destrucción del Objeto
despegar aterrizar
Crear(matricula)
En tierra
Transiciones temporizadas
Depósito efectuado
B
Diagrama de Actividad
• El Diagrama de Actividad es una especialización del
Diagrama de Estado, organizado respecto de las
acciones y usado para especificar:
• Un método
• Un caso de uso
• Un proceso de negocio (Workflow)
• Las actividades se enlazan por transiciones
automáticas. Cuando una actividad termina se
desencadena el paso a la siguiente actividad
Ejemplos
... Ejemplos
... Ejemplos
Diagrama de
Componentes
Diagrama de Componentes
Nodo
… Diagrama de Despliegue
<<RDSI>>
<<RDSI>>
Podemos distinguir tipos Control
de nodos y connexiones
por estereotipado
Proceso de Desarrollo
de SW basado en UML
¿Qué es un Proceso de Desarrollo de SW?
Enfoque Ericsson
Dos dimensiones
Fases e Hitos (Milestones)
tiempo
Elementos en RUP
• Workflows (Disciplinas)
• Workflows Primarios
• Business Modeling (Modado del Negocio)
• Requirements (Requisitos)
• Analysis & Design (Análisis y Diseño)
• Implementation (Implementación)
• Test (Pruebas)
• Deployment (Despliegue)
• Workflows de Apoyo
• Environment (Entorno)
• Project Management (Gestión del Proyecto)
• Configuration & Change Management (Gestión de Configuración y Cambios)
... Elementos en RUP
Workers Artefactos
144
Actividades
... Elementos en RUP
• Workers
• Analyst workers Testing professional workers
• Business-Process Analyst
• Test Designer
• Business Designer
• Tester
Manager workers
• Business-Model Reviewer
• Requirements Reviewer
• Change Control Manager
• System Analyst
•
•
Configuration Manager
Deployment Manager
• Use-Case Specifier • Process Engineer
• User-Interface Designer • Project Manager
• Developer workers • Project Reviewer
• Architect Other workers
• Architecture Reviewer • Any Worker
• Capsule Designer • Course Developer
• Code Reviewer • Graphic Artist
• Database Designer • Stakeholder
• Design Reviewer • System Administrator
• Designer • Technical Writer
• Implementer • Tool Specialist
• Integrator
... Elementos en RUP
• Workers, Actividades, Artefactos
• Ejemplo: System Analyst Worker
... Elementos en RUP
• Conjuntos de Artefactos
• Business Modeling Set
• Artefactos
• Requirements Set
• Resultado parcial o final que
• Analysis & Design Set
es producido y usado
durante el proyecto. Son las • Implementation Set
entradas y salidas de las • Test Set
actividades
•
• Un artefacto puede ser un
•
Deployment Set
Project Management Set
documento, un modelo o un
elemento de modelo • Configuration & Change
Management Set
• Environment Set
... Elementos en RUP
• Artefactos, Workers, Actividades
• Ejemplo:Business Modeling Artifact Set
148
Características Esenciales de RUP
Capturar, definir y
Requisitos
validar los casos de uso
Verificar que se
Pruebas satisfacen los casos
de uso
... Proceso dirigido por los Casos de Uso
«trace» «trace»
«trace»
«trace»
Pruebas
Unitarias
Pruebas Funcionales X
Caso de Prueba
[The Unified Software Development Process. I. Jacobson, G. Booch and J. Rumbaugh. Addison-Wesley, 1999]
..Proceso dirigido por los casos de Uso
Proceso Iterativo e Incremental
Análisis
Diseño
Codific.
n veces Pruebas e
Integración
... Proceso Iterativo e Incremental
Enfoque
Cascada
Enfoque
Iterativo e
Incremental
... Proceso Iterativo e Incremental
157
Proceso Centrado en la Arquitectura
Architecture
Fases del Ciclo de Vida
• Transición
• Se libera el producto y se entrega al usuario para un uso real
• Se incluyen tareas de marketing, empaquetado atractivo,
instalación, configuración, entrenamiento, soporte,
mantenimiento, etc.
• Los manuales de usuario se completan y refinan con la
información anterior
• Estas tareas se realizan también en iteraciones
Esfuerzo respecto de las Workflows
Inception Elaboration Construction Transition
15%
Requisitos
Una iteración en la
fase de elaboración
Análisis
10%
Diseño 15%
Implementación
30%
Pruebas 15%
P re lim ina ry ite r. ite r. ite r. ite r. ite r. ite r. ite r.
Ite ra tion (s) #1 #2 #n # n+ 1 # n+2 #m #m +1
Requisitos
Una iteración en la
fase de elaboración
Análisis
Diseño
Implementación
Pruebas
Otro
Objeto
… Objetos
Ejemplo de varios objetos relacionados:
Cuenta Corriente 101
Juan
Banco de Valencia
Felipe
Cuenta Corriente 114
… Objetos
Objeto = Identidad + Estado + Comportamiento
El estado está representado por los valores de los
atributos
Un atributo toma un valor en un dominio concreto
Un coche
Azul
979 Kg
70 CV
...
Clases y Objetos
Identidad
Operacion 2
Un objeto
Operacion 1
… Comportamiento
Servidor 2
Un cliente
El Concepto de Mensaje
La unidad de comunicación entre objetos se llama
mensaje
El mensaje es el soporte de una comunicación que vincula
dinámicamente los objetos que fueron separados
previamente en el proceso de descomposición
Adquiere toda su fuerza cuando se asocia al polimorfismo
y al enlace dinámico
… El Concepto de Mensaje
Objeto 1
: Mensaje A
Objeto 2
: Mensaje C : Mensaje E
Objeto 3 Objeto 4
: Mensaje D
Mensaje y Estímulo