Académique Documents
Professionnel Documents
Culture Documents
UML
UNPSJB - 2005
Contenido de la clase 6
Introduccin Modelado del soft UML (Conceptos bsicos) Paradigma OO Fundamentos Diagramas de CU Diagramas de Interacciones Diagramas de clase Diagramas de estado/actividad Diagrama de componentes Diagrama de despliegue
UNPSJB - 2005
Bibliografa
UML
www.dsic.upv.es/~uml
UML Gota a Gota (Fowler) UML (Booch, Rumbaugh, Jacobson) Instant UML (Muller) Webs
www.omg.org/uml
UNPSJB - 2005
www.dsic.upv.es/~uml
Ejemplos
UNPSJB - 2005
Claves en Desarrollo de SI
Notacin
www.dsic.upv.es/~uml
Herramientas
Proceso
UNPSJB - 2005
www.dsic.upv.es/~uml
envo
Qu es UML?
www.dsic.upv.es/~uml
UML = Unified Modeling Language Un lenguaje de propsito general para el modelado orientado a objetos Documento OMG Unified Modeling Language Specification UML combina notaciones provenientes desde:
UNPSJB - 2005
Motivacin
www.dsic.upv.es/~uml
Diversos mtodos y tcnicas OO, con muchos aspectos en comn pero utilizando distintas notaciones Inconvenientes para el aprendizaje, aplicacin, construccin y uso de herramientas, etc. Pugna entre distintos enfoques (y correspondientes gurs) Establecer una notacin estndar
UNPSJB - 2005
Historia de UML
www.dsic.upv.es/~uml
Comenz como el Mtodo Unificado, con la participacin de Grady Booch y Jim Rumbaugh. Se present en el OOPSLA95 El mismo ao se uni Ivar Jacobson. Los Tres Amigos son socios en la compaa Rational Software. Herramienta CASE Rational Rose
UNPSJB - 2005
Historia de UML
www.dsic.upv.es/~uml 2001 UML 2.0
2000
1999 1998 Nov 97
UML aprobado por el OMG
UML 1.2
UNPSJB - 2005
10
Jacobson Meyer
Pre- and Post-conditions
UML
State Charts
Harel
Embly
Singleton classes
Wirfs-Brock Fusion
Responsabilities Operation descriptions, message numbering
UNPSJB - 2005
11
Aspectos Novedosos
www.dsic.upv.es/~uml
UNPSJB - 2005
12
Inconvenientes en UML
www.dsic.upv.es/~uml
Definicin del proceso de desarrollo usando UML. UML no es una metodologa Falta integracin con respecto de otras tcnicas tales como patrones de diseo, interfaces de usuario, documentacin, etc. Monopolio de conceptos, tcnicas y mtodos en torno a UML
UNPSJB - 2005
13
Perspectivas de UML
www.dsic.upv.es/~uml
UML ser el lenguaje de modelado orientado a objetos estndar predominante los prximos aos Razones:
Evidencias:
Participacin de metodlogos influyentes Participacin de importantes empresas Aceptacin del OMG como notacin estndar Herramientas que proveen la notacin UML Edicin de libros Congresos, cursos, etc.
UNPSJB - 2005
14
Modelos y Diagramas
www.dsic.upv.es/~uml
Un modelo captura una vista de un sistema del mundo real. Es una abstraccin de dicho sistema, considerando un cierto propsito. As, el modelo describe completamente aquellos aspectos del sistema que son relevantes al propsito del modelo, y a un apropiado nivel de detalle. Diagrama: una representacin grfica de una coleccin de elementos de modelado, a menudo dibujada como un grafo con vrtices conectados por arcos
UNPSJB - 2005
15
www.dsic.upv.es/~uml
Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de inters El cdigo fuente del sistema es el modelo ms detallado del sistema (y adems es ejecutable). Sin embargo, se requieren otros modelos ...
Cada modelo es completo desde su punto de vista del sistema, sin embargo, existen relaciones de trazabilidad entre los diferentes modelos
UNPSJB - 2005
16
Diagramas de UML
Diagrama de Casos de Uso Diagrama de Clases Diagrama de Objetos Diagramas de Comportamiento
www.dsic.upv.es/~uml
Diagrama de Estados Diagrama de Actividad Diagrama de Secuencia Diagrama de Colaboracin Diagrama de Componentes Diagrama de Despliegue
Diagramas de Interaccin
Diagramas de implementacin
UNPSJB - 2005
17
www.dsic.upv.es/~uml
State State Diagramas de Diagrams Diagrams Objetos State State Diagramas de Diagrams Diagrams Componentes
Modelo
Diagramas de Actividad
Distribucin
18
Organizacin de Modelos
www.dsic.upv.es/~uml
Vista Lgica
Vista de Distribucin
UNPSJB - 2005
19
M. de Casos de Uso del Negocio (Business Use-Case Model) M. de Objetos del Negocio (Business Object Model) M. de Casos de Uso (Use-Case Model) M. de Anlisis (Analysis Model) M. de Diseo (Design Model) M. de Despliegue (Deployment Model) M. de Datos (Data Model) M. de Implementacin (Implementation Model) M. de Pruebas (Test Model)
UNPSJB - 2005
20
Paquetes en UML
www.dsic.upv.es/~uml
Los paquetes ofrecen un mecanismo general para la organizacin de los modelos/subsistemas agrupando elementos de modelado Se representan grficamente como:
Nombre de paquete
UNPSJB - 2005
21
Paquetes en UML
www.dsic.upv.es/~uml
Cada paquete corresponde a un submodelo (subsistema) del modelo (sistema) Un paquete puede contener otros paquetes, sin lmite de anidamiento pero cada elemento pertenece a (est definido en) slo un paquete Una clase de un paquete puede aparecer en otro paquete por la importacin a travs de una relacin de dependencia entre paquetes
Ingeniera de Software - Clase 6 22
UNPSJB - 2005
Paquetes en UML
www.dsic.upv.es/~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
Ingeniera de Software - Clase 6 23
UNPSJB - 2005
Paquetes en UML
www.dsic.upv.es/~uml
UNPSJB - 2005
24
www.dsic.upv.es/~uml
Casos de Uso es una tcnica para capturar informacin de cmo un sistema o negocio Supervisor trabaja, o de cmo se desea que trabaje No pertenece estrictamente al enfoque orientado a Administrativo objeto, es una tcnica para captura de requisitos
Preparar Catlogo
Sistema Inventario
Tipos de Venta
UNPSJB - 2005
25
Ejemplos
En el paquete tipos de venta:
www.dsic.upv.es/~uml
Otro Ejemplo
Venta Normal
Cliente
Solicitar Prstamo
[Tarjeta Caducada]
Vendedor
Venta en Rebajas
<<extend>>
Venta en Ofertas
UNPSJB - 2005
26
Ejemplos
www.dsic.upv.es/~uml
<<include>>
Cliente
UNPSJB - 2005
27
Diagrama de Secuencia
www.dsic.upv.es/~uml
: Encargado
:WInPrstamos
:Socio
:Video
:Prstamo
UNPSJB - 2005
28
Diagrama de Colaboracin
:Socio
www.dsic.upv.es/~uml
4: registrar prstamo
:Prstamo
UNPSJB - 2005 Ingeniera de Software - Clase 6 29
Diagrama de Clases
www.dsic.upv.es/~uml
El Diagrama de Clases es el diagrama principal para el anlisis y diseo Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales y de herencia La definicin de clase incluye definiciones para atributos y operaciones El modelo de casos de uso aporta informacin para establecer las clases, objetos, atributos y operaciones
UNPSJB - 2005
30
Ejemplos
www.dsic.upv.es/~uml
(Clase y Visibilidad)
Departamento
Asociacin
dirige 0..1 director 1 Profesor
UNPSJB - 2005
31
superior 0..1
UNPSJB - 2005
32
Trabajador
{ disjunta, completa }
Directivo
Administrativo
Obrero
UNPSJB - 2005
33
Ejemplos
Motor 1..4 Piloto 1..2
www.dsic.upv.es/~uml
Vendedor de billetes 1
1 Avin 1 n
n Vuelo n 1 n
n Reserva
{ disjunta, completa }
{ disjunta, completa }
Avin de carga
Avin de pasajeros
UNPSJB - 2005
34
Diagrama de Estados
alta
www.dsic.upv.es/~uml
baja nmero_prstamos = 0
sin prstamos
Socio nmero : int nombre : char[50] nmero_prestamos : int = 0 alta() baja() prestar(cdigo_libro : int, fecha : date) devolver(cdigo_libro : int, fecha : date)
prestar
devolver[ nmero_prstamos = 1 ]
Diagrama de Actividad
Buscar Bebida
[no hay caf]
www.dsic.upv.es/~uml
[hay caf
Beber
36
www.dsic.upv.es/~uml
Airline
Diagrama Componentes
www.dsic.upv.es/~uml
Acceso a BD Comment
UNPSJB - 2005
38
Diagrama de Despliegue
Servidor Central Acceso a BD Comment Control y Anlisis Comment
www.dsic.upv.es/~uml
Punto de Venta
UNPSJB - 2005
39
Resumen
www.dsic.upv.es/~uml
UML define una notacin que se expresa como diagramas sirven para representar modelos/subsistemas o partes de ellos El 80 por ciento de la mayora de los problemas pueden modelarse usando alrededor del 20 por ciento de UML-- Grady Booch
UNPSJB - 2005
40
UML
Paradigma OO Diagramas
UNPSJB - 2005
41
Proximidad de los conceptos de modelado respecto de las entidades del mundo real
Mejora captura y validacin de requisitos Acerca el espacio del problema y el espacio de la solucin
Facilita la transicin entre distintas fases Favorece el desarrollo iterativo del sistema Disipa la barrera entre el qu y el cmo
UNPSJB - 2005
Problemas en OO
www.dsic.upv.es/~uml
...Los conceptos bsicos de la OO se conocen desde hace dos dcadas, pero su aceptacin todava no est tan extendida como los beneficios que esta tecnologa puede sugerir ...La mayora de los usuarios de la OO no utilizan los conceptos de la OO de forma purista, como inicialmente se pretenda. Esta prctica ha sido promovida por muchas herramientas y lenguajes que intentan utilizar los conceptos en diversos grados
--Wolfgang Strigel
UNPSJB - 2005 Ingeniera de Software - Clase 6 43
Problemas en OO
www.dsic.upv.es/~uml
Un objeto contiene datos y operaciones que operan sobre los datos, pero ... Podemos distinguir dos tipos de objetos degenerados:
Un objeto sin datos (que sera lo mismo que una biblioteca de funciones) Un objeto sin operaciones, con slo operaciones del tipo crear, recuperar, actualizar y borrar (que se correspondera con las estructuras de datos tradicionales)
Un sistema construido con objetos degenerados no es un sistema verdaderamente orientado a objetos Las aplicaciones de gestin estn constituidas mayoritariamente por objetos degenerados
Ingeniera de Software - Clase 6 44
UNPSJB - 2005
Diseo
DEs
Modelo
Implementacin
Entornos de Programacin Visual
DFDs
E-R
Relacional
Modelo Relacional !!
Enfoque OO
UNPSJB - 2005
45
UNPSJB - 2005
46
Casos de Uso
www.dsic.upv.es/~uml
Comparacin con respecto a los Los Casos de Uso (Ivar Diagramas de Flujo de Datos del Jacobson) describen bajo Enfoque Estructurado la forma de acciones y Un caso de uso es una funcin reacciones el atmica ofrecida por el sistema al entorno (actores) comportamiento de un DFD puede ser detallada en un sistema desde el p.d.v. del DFD Hijo usuario Caso Uso y Proceso igual Permiten definir los lmites modelado, pero caso de uso del sistema y las expresa funcionalidad mediante interaccin de actores relaciones entre el sistema Caso de uno no modela detalle y el entorno funcional interno Los Casos de Uso son Relaciones de extensin y descripciones de la generalizacin de CU no tienen igual en DFD funcionalidad del sistema independientes de la implementacin
UNPSJB - 2005
47
Casos de Uso
www.dsic.upv.es/~uml
Los Casos de Uso cubren la carencia existente en mtodos previos (OMT, Booch) en cuanto a la determinacin de requisitos Actor A Los Casos de Uso particionan el conjunto de necesidades atendiendo a la categora de usuarios que participan en el mismo Estn basado en el lenguaje natural, es decir, es accesible por los usuarios
Ingeniera de Software - Clase 6
Caso de Uso A
Caso de Uso B
Actor B
UNPSJB - 2005
48
Casos de Uso
www.dsic.upv.es/~uml
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 aplicacin y deben ser utilizados Otros sistemas: sistemas con los que el sistema interacta
La misma persona fsica puede interpretar varios papeles como actores distintos El nombre del actor describe el papel desempeado
Ingeniera de Software - Clase 6 49
UNPSJB - 2005
Casos de Uso
www.dsic.upv.es/~uml
Los Casos de Uso se determinan observando y precisando, actor por actor, las secuencias de interaccin, los escenarios, desde el punto de vista del usuario Un escenario es una instancia de un caso de uso Los casos de uso intervienen durante todo el ciclo de vida. El proceso de desarrollo estar dirigido por los casos de uso
Ingeniera de Software - Clase 6 50
UNPSJB - 2005
Comunicacin
Inclusin : una instancia del Caso de Uso origen incluye tambin el comportamiento descrito por el Caso de Uso destino
<<include>>
Actor
Caso de Uso
UNPSJB - 2005
Extensin : el Caso de Uso origen extiende el comportamiento del Caso de Uso destino
Herencia : el Caso de Uso origen hereda la especificacin del Caso de Uso destino y posiblemente la modifica y/o ampla
<<extend>>
UNPSJB - 2005
52
Ejemplo:
<<include>> Identificacin
Cliente
Transferencia
<<extend>>
Transferencia en Internet
UNPSJB - 2005
53
Ejemplo:
UNPSJB - 2005
54
Un caso de uso debe ser simple, inteligible, claro y conciso Generalmente hay pocos actores asociados a cada Caso de Uso Preguntas clave:
cules son las tareas del actor? qu informacin crea, guarda, modifica, destruye o lee el actor? debe el actor notificar al sistema los cambios externos? debe el sistema informar al actor de los cambios internos?
UNPSJB - 2005
55
el inicio: cundo y qu actor lo produce? el fin: cundo se produce y qu valor devuelve? la interaccin actor-caso de uso: qu mensajes intercambian ambos? objetivo del caso de uso: qu lleva a cabo o intenta? cronologa y origen de las interacciones repeticiones de comportamiento: qu operaciones son iteradas? situaciones opcionales: qu ejecuciones alternativas se presentan en el caso de uso?
UNPSJB - 2005
56
RF- <id del requisito> Versin Autores Fuentes Objetivos asociados Descripcin
Postcondicin Excepciones
Rendimiento
UNPSJB - 2005
<nombre del requisito funcional> <numero de versin y fecha> <autor> <fuente de la versin actual> <nombre del objetivo> El sistema deber comportarse tal como se describe en el siguiente caso de uso { concreto cuando <evento de activacin> , abstracto durante la realizacin de los casos de uso <lista de casos de uso>} <precondicin del caso de uso> Paso Accin 1 {El <actor> , El sistema} <accin realizada por el actor o sistema>, se realiza el caso de uso < caso de uso RF-x> 2 Si <condicin>, {el <actor> , el sistema} <accin realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso RF-x> 3 4 5 6 n <postcondicin del caso de uso> Paso Accin 1 Si <condicin de excepcin>,{el <actor> , el sistema} }<accin realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso RF-x>, a continuacin este caso de uso {continua, aborta} 2 3 Paso Cota de tiempo 1 n segundos 2 n segundos <n de veces> veces / <unidad de tiempo> {sin importancia, importante, vital} {puede esperar, hay presin, inmediatamente} <comentarios adicionales>
57
La especificacin de cada caso de uso y los correspondientes D. de Interaccin establecen el vnculo con el modelo conceptual En mtodos OO que carecen de una tcnica de captura de requisitos se comienza inmediatamente con la construccin del modelo conceptual (anlisis)
UNPSJB - 2005
58
Diagramas de Interaccin
UNPSJB - 2005
59
Interaccin
www.dsic.upv.es/~uml
Los objetos interactan para realizar colectivamente los servicios ofrecidos por las aplicaciones. Los diagramas de interaccin muestran cmo se comunican los objetos en una interaccin Existen dos tipos de diagramas de interaccin: el Diagrama de Colaboracin y el Diagrama de Secuencia Mensajes:
Sintaxis para mensajes Predecesor/fuarda secuencia:retorno := msg (args)
UNPSJB - 2005
60
Diagramas de interaccin
www.dsic.upv.es/~uml
El Diagrama de Secuencia es ms adecuados para observar la perspectiva cronolgica de las interacciones El Diagrama de Colaboracin ofrece una mejor visin espacial mostrando los enlaces de comunicacin entre objetos El D. de Colaboracin puede obtenerse automticamente a partir del correspondiente D. de Secuencia (o viceversa)
Ingeniera de Software - Clase 6 61
UNPSJB - 2005
Diagrama de Secuencia
www.dsic.upv.es/~uml
Muestra la secuencia de mensajes entre objetos durante un escenario concreto Cada objeto viene dado por una barra vertical El tiempo transcurre de arriba abajo Cuando existe demora entre el envo y la atencin se puede indicar usando una lnea oblicua
Ingeniera de Software - Clase 6 62
UNPSJB - 2005
UNPSJB - 2005
63
Diagrama de Secuencia mostrando foco de control, condiciones, recursin creacin y destruccin de objetos
UNPSJB - 2005
64
UNPSJB - 2005
65
Diagrama de Colaboracinwww.dsic.upv.es/~uml
Son tiles en la fase exploratoria para identificar objetos La distribucin de los objetos en el diagrama permite observar adecuadamente la interaccin de un objeto con respecto de los dems La estructura esttica viene dada por los enlaces; la dinmica por el envo de mensajes por los enlaces
UNPSJB - 2005
66
Mensajes
www.dsic.upv.es/~uml
Un mensaje desencadena una accin en el objeto destinatario Un mensaje se enva si han sido enviados los mensajes de una lista (sincronizacin):
B A
A
UNPSJB - 2005 Ingeniera de Software - Clase 6 67
Mensajes
www.dsic.upv.es/~uml
UNPSJB - 2005
68
Diagrama de Clases
UNPSJB - 2005
69
Clasificacin
www.dsic.upv.es/~uml
El mundo real puede ser visto desde abstracciones diferentes (subjetividad) Mecanismos de abstraccin:
UNPSJB - 2005
70
Clases
www.dsic.upv.es/~uml
La clase define el mbito de definicin de un conjunto de objetos Cada objeto pertenece a una clase Los objetos se crean por instanciacin de las clases
UNPSJB - 2005
71
www.dsic.upv.es/~uml
Otros ejemplos:
lista
pila
primero ultimo aadir quitar cardinalidad
UNPSJB - 2005
72
Clases: Encapsulacin
www.dsic.upv.es/~uml
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 deberan ser manipulables directamente por el resto de objetos
UNPSJB - 2005
73
www.dsic.upv.es/~uml
(-) Privado : es el ms fuerte. Esta parte es totalmente invisible (excepto para clases friends en terminologa C++) (#) Los atributos/operaciones protegidos estn visibles para las clases friends y para las clases derivadas de la original (+) Los atributos/operaciones pblicos son visibles a otras clases (cuando se trata de atributos se est transgrediendo el principio de encapsulacin)
UNPSJB - 2005
74
Clases: Encapsulacin
www.dsic.upv.es/~uml
Ejemplo:
Reglas de visibilidad + Atributo pblico : int # Atributo protegido : int - Atributo privado : int + "Operacin pblica" # "Operacin protegida" - "Operacin privada"
UNPSJB - 2005
75
www.dsic.upv.es/~uml
Los enlaces entre de objetos pueden representarse entre las respectivas clases Formas de relacin entre clases:
UNPSJB - 2005
76
Asociacin
www.dsic.upv.es/~uml
La asociacin expresa una conexin bidireccional entre objetos Una asociacin es una abstraccin de la relacin existente en los enlaces entre los objetos
Un enlace Antonio:Estudiante
Univ. de Murcia:Universidad
Estudiante
UNPSJB - 2005
77
Asociacin
www.dsic.upv.es/~uml
Ejemplo:
marido
0.. 1
Persona * nombre s. s.
trabaja-para
emplea-a
* Compaa
nombre direccin
empleado
UNPSJB - 2005
78
Asociacin
www.dsic.upv.es/~uml
Uno y slo uno Cero o uno Desde M hasta N (enteros naturales) Cero o muchos Cero o muchos Uno o muchos (al menos uno)
UNPSJB - 2005
79
Asociacin Cualificada
* 0..1
www.dsic.upv.es/~uml
Aerolnea
nro_billete
Viajero
Tablero Ajedrez
fila columna
Cuadro
UNPSJB - 2005
80
Agregacin
www.dsic.upv.es/~uml
La agregacin representa una relacin parte_de entre objetos En UML se proporciona una escasa caracterizacin de la agregacin Puede ser caracterizada con precisin determinando las relaciones de comportamiento y estructura que existen entre el objeto agregado y cada uno de sus objetos componentes
UNPSJB - 2005
81
mxc)
Objeto Componente
UNPSJB - 2005 Ingeniera de Software - Clase 6 82
En UML slo se distingue entre agregacin y composicin (aggregate composition), siendo esta ltima disjunta y estricta Adems se una agregacin se podra caracterizar segn:
Puede el objeto parte comunicarse directamente con objetos externos al objeto agregado? No => inclusiva Si => no inclusiva Puede cambiar La composicin del objeto agregado? Si => dinmica No => esttica
Ingeniera de Software - Clase 6
UNPSJB - 2005
83
Ejemplos
www.dsic.upv.es/~uml
UNPSJB - 2005
84
... Ejemplos
www.dsic.upv.es/~uml
UNPSJB - 2005
85
Ejemplos
Agregacin
Polgono
1 contiene 3.. *
www.dsic.upv.es/~uml
{ordenado}
Punto
Persona Empresa
*
Cuenta
*
or
1
Asociacin excluyente
Usuario
est-autorizado-en
Estacin
Clase de asociacin
UNPSJB - 2005
86
Clases y Objetos
www.dsic.upv.es/~uml
Diagrama de Clases y Diagramas de Objetos pertenecen a dos vistas complementarias del modelo Un Diagrama de Clases muestra la abstraccin de una parte del dominio Un Diagrama de Objetos representa una situacin concreta del dominio Las clases abstractas no son instanciadas
UNPSJB - 2005
87
Generalizacin
www.dsic.upv.es/~uml
Permite gestionar la complejidad mediante un ordenamiento taxonmico de clases Se obtiene usando los mecanismos de abstraccin de Generalizacin y/o Especializacin La Generalizacin consiste en factorizar las propiedades comunes de un conjunto de clases en una clase ms general
UNPSJB - 2005
88
... Generalizacin
www.dsic.upv.es/~uml
Nombres usados: clase padre - clase hija. Otros nombres: superclase subclase, clase base clase derivada Las subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones (y asociaciones) de la clase padre estn disponibles en sus clases hijas
La Generalizacin y Especializacin son equivalentes en cuanto al resultado: la jerarqua y herencia establecidas Generalizacin y Especializacin no son operaciones reflexivas ni simtricas pero s transitivas
UNPSJB - 2005
89
... Generalizacin
Vehculo
www.dsic.upv.es/~uml
Veihculo Terrestre
Vehculo Areo
Coche
Camin
Avin
Helicptero
UNPSJB - 2005
90
... Generalizacin
www.dsic.upv.es/~uml
UNPSJB - 2005
91
... Generalizacin
www.dsic.upv.es/~uml
La nocin de clase est prxima a la de conjunto Dada una clase, podemos ver el conjunto relativo a las instancias que posee o bien relativo a las propiedades de la clase Generalizacin y especializacin expresan relaciones de inclusin entre conjuntos
Particionamiento del espacio de objetos => Clasificacin Esttica Particionamiento del espacio de estados de los objetos => Clasificacin Dinmica En ambos casos se recomienda considerar generalizaciones/espe cializaciones disjuntas
UNPSJB - 2005
92
... Generalizacin
www.dsic.upv.es/~uml
{ esttica }
Avin
Helicptero
UNPSJB - 2005
93
... Generalizacin
www.dsic.upv.es/~uml
Funcionando
Estropeado
UNPSJB - 2005
94
... Generalizacin
www.dsic.upv.es/~uml
Extensin: Posibles instancias de una clase Intensin: Propiedades definidas en una clase
A
int(A) int(B)
ext(B) ext(A)
B
UNPSJB - 2005 Ingeniera de Software - Clase 6 95
... Generalizacin
www.dsic.upv.es/~uml
Clasificacin Esttica
C0
C1
Cn
UNPSJB - 2005
96
... Generalizacin
www.dsic.upv.es/~uml
Clasificacin Dinmica
C0
ext(C0) = ext(Ci)
{ dinmica }
completa
C1
Cn
UNPSJB - 2005
97
... Generalizacin
www.dsic.upv.es/~uml
estructura
Avin
UNPSJB - 2005
Helicptero
98
www.dsic.upv.es/~uml
Se presenta cuando una subclase tiene ms de una superclase La herencia mltiple debe manejarse con precaucin. Algunos problemas son el conflicto de nombre y el conflicto de precedencia Se recomienda un uso restringido y disciplinado de la herencia. Java y Ada 95 simplemente no ofrecen herencia mltiple
UNPSJB - 2005
99
Herencia Mltiple
www.dsic.upv.es/~uml
Uso disciplinado de la herencia mltiple: clasificaciones disjuntas con clases padre en hojas de jerarquas alternativas
Bpedo nro patas Con Pelos Cuadrpedo nro patas Herbvoro
cubertura
Con Plumas cobertura cobertura Con Escamas Animal
comida
comida Carnvoro
Conejo
UNPSJB - 2005
100
Principio de Sustitucin
www.dsic.upv.es/~uml
El Principio de Sustitucin 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 semntica del programa escrito en los trminos de la superclase se vea afectado.
Ingeniera de Software - Clase 6 101
UNPSJB - 2005
Dado que los programadores pueden introducir cdigo en las subclases redefiniendo las operaciones, es posible introducir involuntariamente incoherencias que violen el principio de sustitucin El polimorfismo que veremos a continuacin no debera implementarse sin este principio
UNPSJB - 2005
102
Polimorfismo
www.dsic.upv.es/~uml
El trmino polimorfismo se refiere a que una caracterstica de una clase puede tomar varias formas El polimorfismo representa en nuestro caso la posibilidad de desencadenar operaciones distintas en respuesta a un mismo mensaje Cada subclase hereda las operaciones pero tiene la posibilidad de modificar localmente el comportamiento de estas operaciones
Ingeniera de Software - Clase 6 103
UNPSJB - 2005
Polimorfismo
www.dsic.upv.es/~uml
Ejemplo: todo animal duerme, pero cada clase lo hace de forma distinta
Animal dormir()
?
dormir
?
Len Oso Tigre
UNPSJB - 2005
104
Polimorfismo
Animal dormir()
} Dormir() {
www.dsic.upv.es/~uml
Len
dormir()
Dormir() { sobre el vientre }
UNPSJB - 2005
Oso
dormir()
Dormir() { sobrela espalda }
Tigre
dormir()
Dormir() { en un rbol }
105
Polimorfismo
www.dsic.upv.es/~uml
La bsqueda automtica del cdigo que en cada momento se va a ejecutar es fruto del enlace dinmico El cumplimiento del Principio de Sustitucin permite obtener un comportamiento y diseo coherente
UNPSJB - 2005
106
Diagrama de Estados
UNPSJB - 2005
107
Diagrama de Estados
www.dsic.upv.es/~uml
Los Diagramas de Estados representan autmatas de estados finitos, desde el p.d.v. de los estados y las transiciones Son tiles slo para los objetos con un comportamiento significativo El formalismo utilizado proviene de los Statecharts (Harel)
UNPSJB - 2005
Diagrama de Estados
www.dsic.upv.es/~uml
Los D. de Estados son autmatas jerrquicos que permiten expresar concurrencia, sincronizacin y jerarquas de objetos Los D. de Estados son grafos dirigidos Los D. De Estados de UML son deterministas Los estados inicial y final estn diferenciados del resto La transicin entre estados es instantnea y se debe a la ocurrencia de un evento
Ingeniera de Software - Clase 6 109
UNPSJB - 2005
Diagrama de Estados
www.dsic.upv.es/~uml
Estados y Transiciones
Evento [condicin] / Accin
B
Tanto el evento como la accin se consideran instantneos
UNPSJB - 2005
110
Diagrama de Estados
www.dsic.upv.es/~uml
UNPSJB - 2005
111
Acciones
www.dsic.upv.es/~uml
B
UNPSJB - 2005 Ingeniera de Software - Clase 6 112
Acciones
www.dsic.upv.es/~uml
Se puede especificar el ejecutar una accin como consecuencia de entrar, salir, estar en un estado, o por la ocurrencia de un evento
estado A entry: accin por entrar exit: accin por salir do: accin mientras en estado on evento: accin
UNPSJB - 2005
113
Podemos reducir la complejidad de estos diagramas usando la generalizacin 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
UNPSJB - 2005
114
Ejemplo:
A e1 B
e2
e2 C
UNPSJB - 2005
115
Quedara como:
Aa
e1 b B
e2
C
UNPSJB - 2005 Ingeniera de Software - Clase 6 116
C
UNPSJB - 2005 Ingeniera de Software - Clase 6 117
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 e2 e0 b B
UNPSJB - 2005
118
La agregacin de estados es la composicin de un estado a partir de varios estados independientes La composicin es concurrente por lo que el objeto estar en alguno de los estados de cada uno de los subestados concurrentes
UNPSJB - 2005
119
Ejemplo:
e1 e1
UNPSJB - 2005
120
Ejemplo:
UNPSJB - 2005
121
Historia
www.dsic.upv.es/~uml
Por defecto, los autmatas no tienen memoria Es posible memorizar el ltimo subestado visitado para recuperarlo en una transicin entrante en el superestado que lo engloba Tambin es posible la memorizacin para cualquiera de los subestados anidados (aparece un * junto a la H)
UNPSJB - 2005
122
Historia
www.dsic.upv.es/~uml
Ejemplo:
A
d2 B
in
D out d1 C x y
H*
UNPSJB - 2005 Ingeniera de Software - Clase 6 123
Historia
www.dsic.upv.es/~uml
Ejemplo:
Enjuague Lavado Secado
cerrar puerta
abir puerta
Espera
UNPSJB - 2005 Ingeniera de Software - Clase 6 124
www.dsic.upv.es/~uml
La destruccin de un objeto es efectiva cuando el flujo de control del autmata alcanza un estado final no anidado La llegada a un estado final anidado implica la subida al superestado asociado, no el fin del objeto
UNPSJB - 2005
125
Destruccin de Objeto
www.dsic.upv.es/~uml
Ejemplo:
En vuelo crash
aterrizar
UNPSJB - 2005
126
Las esperas son actividades que tienen asociada cierta duracin La actividad de espera se interrumpe cuando el evento esperado tiene lugar Este evento desencadena una transicin que permite salir del estado que alberga la actividad de espera. El flujo de control se transmite entonces a otro estado
UNPSJB - 2005
127
Ejemplo:
/ Abrir ranura esperar dinero entry: Mostrar mensaje exit: cerrar ranura despus de 30 segundos
anular transaccin
Depsito efectuado
B
UNPSJB - 2005 Ingeniera de Software - Clase 6 128
Diagrama de Actividad
www.dsic.upv.es/~uml
El Diagrama de Actividad es una especializacin del Diagrama de Estado, organizado respecto de las acciones y usado para especificar:
Las actividades se enlazan por transiciones automticas. Cuando una actividad termina se desencadena el paso a la siguiente actividad
Ingeniera de Software - Clase 6 129
UNPSJB - 2005
Ejemplos
UNPSJB - 2005
130
... Ejemplos
UNPSJB - 2005
131
... Ejemplos
www.dsic.upv.es/~uml
UNPSJB - 2005
132
Diagrama de Componentes
UNPSJB - 2005
133
Los diagramas de componentes describen los elementos fsicos del sistema y sus relaciones Muestran las opciones de realizacin incluyendo cdigo fuente, binario y ejecutable
Los componentes representan todos los tipos de elementos software que entran en la fabricacin de aplicaciones informticas. Pueden ser simples archivos, paquetes de Ada, bibliotecas cargadas dinmicamente, etc. Las relaciones de dependencia se utilizan en los diagramas de componentes para indicar que un componente utiliza los servicios ofrecidos por otro componente
134
UNPSJB - 2005
Ejemplo:
UNPSJB - 2005
135
Diagrama de Despliegue
UNPSJB - 2005
136
Diagrama de Despliegue
www.dsic.upv.es/~uml
Los Diagramas de Despliegue muestran la disposicin fsica de los distintos nodos que componen un sistema y el reparto de los componentes sobre dichos nodos
Nodo
UNPSJB - 2005
137
Los nodos se interconectan mediante soportes bidireccionales que pueden a su vez estereotiparse
UNPSJB - 2005
138
<<RDSI>>
Control
<<RDSI>>
139
UNPSJB - 2005
140
www.dsic.upv.es/~uml
Proceso de Desarrollo de Software No existe un proceso de software universal. Las caractersticas de cada proyecto (equipo de desarrollo, recursos, etc.) exigen que el proceso sea configurable
UNPSJB - 2005
141
Historia de RUP
Rational Unified Process
1998
www.dsic.upv.es/~uml
Pruebas funcionales Pruebas de desempeo Gestin de requisitos Gestin de cambios y configuracin Ingeniera de Negocio Ingeniera de datos Diseo de interfaces
Objectory Process
1987-1995
UML
Enfoque Ericsson
UNPSJB - 2005 Ingeniera de Software - Clase 6 142
www.dsic.upv.es/~uml
Dos dimensiones
UNPSJB - 2005
143
www.dsic.upv.es/~uml
Inception
Elaboration
Construction
Transition
Objetivos (Vision)
Arquitectura
tiempo
UNPSJB - 2005
144
Elementos en RUP
www.dsic.upv.es/~uml
Workflows (Disciplinas)
Workflows Primarios Business Modeling (Modado del Negocio) Requirements (Requisitos) Analysis & Design (Anlisis y Diseo) Implementation (Implementacin) Test (Pruebas) Deployment (Despliegue) Workflows de Apoyo Environment (Entorno) Project Management (Gestin del Proyecto) Configuration & Change Management (Gestin de Configuracin y Cambios)
Ingeniera de Software - Clase 6 145
UNPSJB - 2005
www.dsic.upv.es/~uml
Workers
UNPSJB - 2005 Ingeniera de Software - Clase 6
Actividades
Artefactos
146
www.dsic.upv.es/~uml
Workers
Analyst workers
Architect Architecture Reviewer Capsule Designer Code Reviewer Database Designer Design Reviewer Designer UNPSJB - 2005 Implementer Ingeniera de Software - Clase 6
Developer workers
Business-Process Analyst Business Designer Business-Model Reviewer Requirements Reviewer System Analyst Use-Case Specifier User-Interface Designer
Other workers
www.dsic.upv.es/~uml
UNPSJB - 2005
148
www.dsic.upv.es/~uml
Artefactos Resultado parcial o final que es producido y usado durante el proyecto. Son las entradas y salidas de las actividades Un artefacto puede ser un documento, un modelo o un elemento de modelo
Conjuntos de Artefactos
UNPSJB - 2005
www.dsic.upv.es/~uml
UNPSJB - 2005
150
www.dsic.upv.es/~uml
Proceso Dirigido por los Casos de Uso Proceso Iterativo e Incremental Proceso Centrado en la Arquitectura
UNPSJB - 2005
151
Requisitos
Realizar los casos de uso Verificar que se satisfacen los casos de uso
Pruebas
UNPSJB - 2005
152
trace
trace
Caso de Uso
Realizacin de Anlisis
Realizacin de Diseo
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] UNPSJB - 2005 Ingeniera de Software - Clase 6 153
UNPSJB - 2005
154
El ciclo de vida iterativo se basa en la evolucin de prototipos ejecutables que se muestran a los usuarios y clientes En el ciclo de vida iterativo a cada iteracin se reproduce el ciclo de vida en cascada a menor escala Los objetivos de una iteracin se establecen en funcin de la evaluacin de las iteraciones precedentes
UNPSJB - 2005
155
www.dsic.upv.es/~uml
Las actividades se encadenan en una minicascada con un alcance limitado por los objetivos de la iteracin
Anlisis Diseo Codific. n veces Pruebas e Integracin
Ingeniera de Software - Clase 6 156
UNPSJB - 2005
www.dsic.upv.es/~uml
Planificar la iteracin (estudio de riesgos) Anlisis de los Casos de Uso y escenarios Diseo de opciones arquitectnicas Codificacin y pruebas. La integracin del nuevo cdigo con el existente de iteraciones anteriores se hace gradualmente durante la construccin Evaluacin de la entrega ejecutable (evaluacin del prototipo en funcin de las pruebas y de los criterios definidos) Preparacin de la entrega (documentacin e instalacin del prototipo)
Ingeniera de Software - Clase 6 157
UNPSJB - 2005
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml
UNPSJB - 2005
159
www.dsic.upv.es/~uml
estructura de sus partes ms relevantes Un arquitectura ejecutable es una implementacin parcial del sistema, construida para demostrar algunas funciones y propiedades RUP establece refinamientos sucesivos de una arquitectura ejecutable, construida como un prototipo evolutivo
Inception
Elaboration
Construction
Transition
Architecture
UNPSJB - 2005 Ingeniera de Software - Clase 6 160
www.dsic.upv.es/~uml
El ciclo de vida consiste en una serie de ciclos, cada uno de los cuales produce una nueva versin del producto Cada ciclo est compuesto por fases y cada una de estas fases est compuesta por un nmero de iteraciones Las fases son:
UNPSJB - 2005
161
Define el mbito y objetivos del proyecto Se define la funcionalidad y capacidades del producto Tanto la funcionalidad como el dominio del problema se estudian en profundidad Se define una arquitectura bsica Se planifica el proyecto considerando recursos disponibles
Elaboracin
UNPSJB - 2005
162
Construccin
El producto se desarrolla a travs de iteraciones donde cada iteracin involucra tareas de anlisis, diseo e implementacin Las fases de estudio y anlisis slo dieron una arquitectura bsica que es aqu refinada de manera incremental conforme se construye (se permiten cambios en la estructura) Gran parte del trabajo es programacin y pruebas Se documenta tanto el sistema construido como el manejo del mismo Esta fase proporciona un producto construido junto con la documentacin
Ingeniera de Software - Clase 6 163
UNPSJB - 2005
Transicin
Se libera el producto y se entrega al usuario para un uso real Se incluyen tareas de marketing, empaquetado atractivo, instalacin, configuracin, entrenamiento, soporte, mantenimiento, etc. Los manuales de usuario se completan y refinan con la informacin anterior Estas tareas se realizan tambin en iteraciones
UNPSJB - 2005
164
Tra nsition
15%
Una iteracin en la fase de elaboracin
Anlisis
10% 15%
Diseo
Implementacin
30% 15%
P r e lim in a ry I te r a tio n ( s ) ite r. #1 ite r. #2 ite r. #n ite r. # n+ 1 ite r. # n+2 it e r. #m ite r. #m +1
Pruebas
UNPSJB - 2005
165
Tra nsition
Diseo
Implementacin
Pruebas
P r e lim in a ry I te r a tio n ( s ) ite r. #1 ite r. #2 ite r. #n ite r. # n+ 1 ite r. # n+2 it e r. #m ite r. #m +1
5% 10%
10% 10%
166
UML - ANEXO
Fundamentos del Modelado OO Para evaluacin por parte de los alumnos
UNPSJB - 2005
167
Objetos
www.dsic.upv.es/~uml
UNPSJB - 2005
168
Objetos
www.dsic.upv.es/~uml
El Modelado de Objetos permite representar el ciclo de vida de los objetos a travs de sus interacciones En UML, un objeto se representa por un rectngulo con un nombre subrayado Otro
Un Objeto Objeto ms Otro Objeto
UNPSJB - 2005
169
Objetos
www.dsic.upv.es/~uml
Banco de Valencia
UNPSJB - 2005
170
Objetos
www.dsic.upv.es/~uml
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 ...
UNPSJB - 2005
171
Clases y Objetos
www.dsic.upv.es/~uml
UNPSJB - 2005
172
Identidad
www.dsic.upv.es/~uml
Oid (Object Identifier) Cada objeto posee un oid. El oid establece la identidad del objeto y tiene las siguientes caractersticas: Constituye un identificador nico y global para cada objeto dentro del sistema
Es determinado en el momento de la creacin del objeto Es independiente de la localizacin fsica del objeto, es decir, provee completa independencia de localizacin
UNPSJB - 2005
173
Identidad
www.dsic.upv.es/~uml
Es independiente de las propiedades del objeto, lo cual implica independencia de valor y de estructura No cambia durante toda la vida del objeto. Adems, un oid no se reutiliza aunque el objeto deje de existir No se tiene ningn control sobre los oids y su manipulacin resulta transparente
Sin embargo, es preciso contar con algn medio para hacer referencia a un objeto utilizando referencias del dominio (valores de atributos)
Ingeniera de Software - Clase 6 174
UNPSJB - 2005
Estado
www.dsic.upv.es/~uml
El estado evoluciona con el tiempo Algunos atributos pueden ser constantes El comportamiento agrupa las competencias de un objeto y describe las acciones y reacciones de ese objeto Las operaciones de un objeto son consecuencia de un estmulo externo representado como mensaje enviado desde otro objeto
Ingeniera de Software - Clase 6 175
UNPSJB - 2005
Comportamiento
www.dsic.upv.es/~uml
Ejemplo de interaccin:
Otro objeto
Un mensaje Operacion 2
Un objeto
Operacion 1
UNPSJB - 2005 Ingeniera de Software - Clase 6 176
Comportamiento
www.dsic.upv.es/~uml
Los mensajes navegan por los enlaces, a priori en ambas direcciones Estado y comportamiento estn relacionados
Ejemplo: no es posible aterrizar un avin si no est volando. Est volando como consecuencia de haber despegado del suelo
UNPSJB - 2005
177
Persistencia
www.dsic.upv.es/~uml
Podremos despus reconstruirlo, es decir, tomarlo de memoria secundaria para utilizarlo en la ejecucin (materializacin del objeto) Los lenguajes OO no proponen soporte adecuado para la persistencia, la cual debera ser transparente, un objeto existe desde su creacin hasta que se destruya
Ingeniera de Software - Clase 6 178
UNPSJB - 2005
Comunicacin
www.dsic.upv.es/~uml
Un sistema informtico puede verse como un conjunto de objetos autnomos y concurrentes que trabajan de manera coordinada en la consecucin de un fin especfico
El comportamiento global se basa pues en la comunicacin entre los objetos que la componen
Ingeniera de Software - Clase 6 179
UNPSJB - 2005
Comunicacin
Categoras de objetos:
Objeto Activo: posee un hilo de ejecucin (thread) propio y puede iniciar una actividad Objeto Pasivo: no puede iniciar una actividad pero puede enviar estmulos una vez que se le solicita un servicio Cliente es el objeto que solicita un servicio. Servidor es el objeto que provee el servicio solicitado
Ingeniera de Software - Clase 6 180
UNPSJB - 2005
Comunicacin
www.dsic.upv.es/~uml
Los agentes renen las caractersticas de clientes y servidores Son la base del mecanismo de delegacin Introducen indireccin: un cliente puede comunicarse con un servidor que no conoce directamente
UNPSJB - 2005
181
Comunicacin
www.dsic.upv.es/~uml
Servidor 2 Un cliente
UNPSJB - 2005
182
El Concepto de Mensaje
www.dsic.upv.es/~uml
La unidad de comunicacin entre objetos se llama mensaje El mensaje es el soporte de una comunicacin que vincula dinmicamente los objetos que fueron separados previamente en el proceso de descomposicin Adquiere toda su fuerza cuando se asocia al polimorfismo y al enlace dinmico
UNPSJB - 2005
183
Objeto 1
: Mensaje A
Objeto 2
: Mensaje C
: Mensaje E Objeto 4
Objeto 3
: Mensaje D
UNPSJB - 2005 Ingeniera de Software - Clase 6 184
Mensaje y Estmulo
www.dsic.upv.es/~uml
Un estmulo causar la invocacin de una operacin, la creacin o destruccin de un objeto o la aparicin de una seal Un mensaje es la especificacin de un estmulo Tipos de flujo de control: Llamada a procedimiento o flujo de control anidado Flujo de control plano Retorno de una llamada a procedimiento Otras variaciones
Esperado (balking) Cronometrado (time-out)
UNPSJB - 2005
185