Вы находитесь на странице: 1из 185

Ingeniera de Software

Clase 6

UML

UNPSJB - 2005 Ingeniera de Software - Clase 6 1


Contenido de la clase 6
Desarrollo de soft OO usando UML
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 - 200 Ingeniera de Software 2


Bibliografa
UML
www.dsic.upv.es/~uml
Patricio Letelier Torres UPV (politcnica de
Valencia)
UML Gota a Gota (Fowler)
UML (Booch, Rumbaugh, Jacobson)

Instant UML (Muller)

Webs
www.omg.org/uml

UNPSJB - 200 Ingeniera de Software 3


Modelado del software www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplos Modelado
Construccin de una
Proceso bien
definido
cucha para un perro
Herramientas ms
Puede hacerlo una sofisticadas
sola persona
Requiere:
Construccin de un
Modelado mnimo rascacielos
Proceso simple Contexto de
Herramientas simples desarrollo
Construccin de una Determinar
casa configuracin del
Construida proceso
eficientemente y en Recursos necesarios
un tiempo razonable Herramientas ms
de un equipo sofisticadas an.

UNPSJB - 200 Ingeniera de Software 4


Claves en Desarrollo de SI
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Notacin

Herramientas Proceso

UNPSJB - 200 Ingeniera de Software 5


www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Abstraccin - Modelado Visual (MV)


El modelado captura las
partes esenciales del sistema

Orden

Item

envo

Proceso de Negocios

Sistema Computacional
UNPSJB - 200 Ingeniera de Software 6
Qu es UML? www.dsic.upv.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:
Modelado Orientado a Objetos
Modelado de Datos
Modelado de Componentes
Modelado de Flujos de Trabajo (Workflows)

UNPSJB - 200 Ingeniera de Software 7


Motivacin www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 8


Historia de UML www.dsic.upv.es/~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 - 200 Ingeniera de Software 9


Historia de UML
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

2001 UML 2.0

2000 UML 1.4

1999 UML 1.3


Revisiones
1998 menores
UML 1.2
Nov 97 UML aprobado por el OMG

UNPSJB - 200 Ingeniera de Software 10


UML aglutina enfoques OO
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

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
UNPSJB - 200 Ingeniera de Software 11
Aspectos Novedosos www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Definicin semi-formal del Metamodelo de


UML
Mecanismos de Extensin en UML:
Stereotypes
Constraints
Tagged Values

Permiten adaptar los elementos de modelado,


asignndoles una semntica particular

UNPSJB - 200 Ingeniera de Software 12


Inconvenientes en UML www.dsic.upv.es/~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 - 200 Ingeniera de Software 13


Perspectivas de UML www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

UML ser el lenguaje de modelado


orientado a objetos estndar
predominante los prximos aos
Razones:
Participacin de metodlogos influyentes
Participacin de importantes empresas
Aceptacin del OMG como notacin estndar
Evidencias:
Herramientas que proveen la notacin UML
Edicin de libros
Congresos, cursos, etc.

UNPSJB - 200 Ingeniera de Software 14


Modelos y Diagramas www.dsic.upv.es/~uml
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
OMG UML 1.4 Specification

UNPSJB - 200 Ingeniera de Software 15


... Modelos y Diagramas www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 16


Diagramas de UML www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Diagrama de Casos de Uso


Diagrama de Clases
Diagrama de Objetos

Diagramas de Comportamiento
Diagrama de Estados
Diagrama de Actividad
Diagramas de Interaccin
Diagrama de Secuencia
Diagrama de Colaboracin
Diagramas de implementacin
Diagrama de Componentes
Diagrama de Despliegue

UNPSJB - 200 Ingeniera de Software 17


... Diagramas de UML www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Los diagramas expresan grficamente partes de un modelo


State
State
Use Case Diagramas de
Diagrams
Use Case Diagrams State
Use Case Diagramas de
Diagrams Clases State
Use Case Diagrams Diagramas de
Diagrams
Diagramas de
Diagrams Casos de Uso Diagrams
Diagrams Objetos
Secuencia

Scenario State
Scenario State
Diagramas de
Diagrams Diagramas de
Diagrams
Diagrams Diagrams
Colaboracin Modelo Componentes

Scenario Component
Scenario Component
Diagramas
Diagrams de
Diagramas de
Diagrams Diagrams
Diagrams Distribucin
Estados Diagramas de
Actividad
UNPSJB - 200 Ingeniera de Software 18
Organizacin de Modelos www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

4+1 vistas de Kruchten (1995)

Vista de
Vista Lgica Realizacin
Vista de los
Casos de Uso

Vista de Vista de
Procesos Distribucin

Este enfoque sigue el browser de Rational Rose


UNPSJB - 200 Ingeniera de Software 19
... Organizacin de Modelos
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Propuesta de Rational Unified Process (RUP)


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 - 200 Ingeniera de Software 20


Paquetes en UML www.dsic.upv.es/~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 - 200 Ingeniera de Software 21


Paquetes en UML www.dsic.upv.es/~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

UNPSJB - 200 Ingeniera de Software 22


Paquetes en UML www.dsic.upv.es/~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

UNPSJB - 200 Ingeniera de Software 23


Paquetes en UML www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

UNPSJB - 200 Ingeniera de Software 24


Diagrama de Casos de Uso www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Casos de Uso es una


tcnica para capturar
informacin de cmo
un sistema o negocio Supervisor Verificar Situacin del Cliente

trabaja, o de cmo se
desea que trabaje
No pertenece
estrictamente al
enfoque orientado a Administrativo Preparar Catlogo
Sistema
Inventario
objeto, es una tcnica
para captura de
requisitos Tipos de Venta

UNPSJB - 200 Ingeniera de Software 25


Ejemplos www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

En el paquete tipos de venta: Otro Ejemplo

Venta Normal Solicitar Prstamo


Cliente

[Tarjeta Caducada]

<<extend>>
Venta en Rebajas
Vendedor

Solicitar Nueva Tarjeta


Venta en Ofertas

UNPSJB - 200 Ingeniera de Software 26


Ejemplos www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

<<include>>
Reintegro Cuenta Corriente

Cliente Verificar Operacin

<<include>>

Reintegro Cuenta de Crdito

UNPSJB - 200 Ingeniera de Software 27


Diagrama de Secuencia www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

:WInPrstamos :Socio :Video :Prstamo


: Encargado

prestar(video, socio)
verificar situacin socio

verificar situacin video

registrar prstamo

entregar recibo

UNPSJB - 200 Ingeniera de Software 28


Diagrama de Colaboracin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

:Socio

:Video

2: verificar situacin socio

1: prestar(video, socio) 3: verificar situacin video


:WInPrstamos

5: entregar recibo
: Encargado 4: registrar prstamo

:Prstamo

UNPSJB - 200 Ingeniera de Software 29


Diagrama de Clases www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 30


Ejemplos www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

(Clase
(Clase yy Visibilidad)
Visibilidad) Asociacin
Asociacin
Alumno
dirige director
DNI : char[10] Departamento Profesor
nmero_exp : int
nombre : char[50]
0..1 1
alta()
poner_nota(asignatura : char *, ao : int, nota : float)
matricular(cursos : asignatura, ao : int)
listar_expediente()

UNPSJB - 200 Ingeniera de Software 31


Ejemplos (Clase Asociacin)
www.dsic.upv.es/~uml www.dsic.upv.es/~uml

empleador trabajadores
Empresa Empleado
* 1..*

Cargo
superior
nombre
sueldo 0..1

subordinado 1..*

UNPSJB - 200 Ingeniera de Software 32


Ejemplos (Generalizacin) www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Trabajador

{ disjunta, completa }

Directivo Administrativo Obrero

UNPSJB - 200 Ingeniera de Software 33


Ejemplos www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Motor Piloto Vendedor de billetes

1..4 1..2 1

1 n
n
1 n 1 n
Avin Vuelo Reserva

n
{ disjunta, completa }

Avin militar Avin comercial Lnea area

{ disjunta, completa }

Avin de carga Avin de pasajeros

UNPSJB - 200 Ingeniera de Software 34


Diagrama de Estados www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

alta baja

nmero_prstamos = 0
sin prstamos

Socio
nmero : int
nombre : char[50]
nmero_prestamos : int = 0
prestar devolver[ nmero_prstamos = 1 ]
alta()
baja()
prestar(cdigo_libro : int, fecha : date)
devolver(cdigo_libro : int, fecha : date)
nmero_prstamos > 0

con prstamos

prestar

devolver[ nmero_prstamos > 1 ]

UNPSJB - 200 Ingeniera de Software 35


Diagrama de Actividad www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

[no hay caf] [no zumo]


Buscar Bebida
[hay caf [hay zumo]

Poner caf en filtro Aadir agua al depsito Agarrar taza

Poner filtro en mquina Agarrar zumo

Encender mquina
/ cafetera.On
Caf en preparacin

indicador de fin
Servir caf
Beber

UNPSJB - 200 Ingeniera de Software 36


Otro Ejemplo (con swim lines) www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Pasajero Vendedor Airline

Solicitar pasaje
Verificar
existencia vuelo

Dar detalles vuelo

Informar alternativas
y precios
Seleccionar vuelo

Solicitar pago Reservar plazas

Confirmar
Pagar pasaje plaza reservada

Emitir billete

UNPSJB - 200 Ingeniera de Software 37


Diagrama Componentes www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Control y Anlisis
Interfaz de Terminal
Comment
Comment

Gestin de Cuentas Acceso a BD


Rutinas de Coneccion
Comment Comment
Comment

UNPSJB - 200 Ingeniera de Software 38


Diagrama de Despliegue www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Servidor Central Control y Anlisis

Acceso a BD Comment

Comment

Rutinas de Coneccion
Comment

Terminal de Consulta
Interfaz de Terminal
Rutinas de Coneccion
Comment Comment

Punto de Venta
Rutinas de Coneccion
Comment

Gestin de Cuentas Interfaz de Terminal

Comment Comment

UNPSJB - 200 Ingeniera de Software 39


Resumen www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 40


UML

Paradigma OO
Diagramas

UNPSJB - 2005 Ingeniera de Software - Clase 6 41


Por qu la Orientacin a Objetos?
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Conceptos comunes
Proximidad de los conceptos de modelado durante
de modelado respecto de las el anlisis, diseo e
entidades del mundo real implementacin
Mejora captura y validacin Facilita la transicin
de requisitos entre distintas fases
Acerca el espacio del
problema y el espacio de la
Favorece el desarrollo
solucin iterativo del sistema
Modelado integrado de Disipa la barrera
propiedades estticas y entre el qu y el
dinmicas del mbito del cmo
problema Sin embargo, existen
Facilita construccin, problemas ...
mantenimiento y reutilizacin

UNPSJB - 200 Ingeniera de Software 42


Problemas en OO www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 43
Problemas en OO www.dsic.upv.es/~uml
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

UNPSJB - 200 Ingeniera de Software 44


Reflexiones respecto de Situacin Actual de
Desarrollo de SI

Anlisis Diseo Implementacin

DFDs DEs
Enfoque Entornos de
Estructurado E-R Programacin
Modelo Visual
Diagramas de Casos de Uso Relacional
Diagramas de Actividad
Diagramas de Secuencia
Modelo
Diagramas de Colaboracin d
Relacional !!
Bases de Datos
(Objeto-)
Enfoque OO Diagrama de Clases Relacionales
Diagrama de Estados
Diagramas de Actividad

UNPSJB - 200 Ingeniera de Software 45


Diagramas de Casos de Uso

UNPSJB - 2005 Ingeniera de Software - Clase 6 46


Casos de Uso www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Los Casos de Uso (Ivar Comparacin con respecto a los


Jacobson) describen bajo la Diagramas de Flujo de Datos del
forma de acciones y Enfoque Estructurado
Un caso de uso es una funcin
reacciones el
comportamiento de un atmica ofrecida por el sistema al
entorno (actores)
sistema desde el p.d.v. del DFD puede ser detallada en un
usuario DFD Hijo
Permiten definir los lmites Caso Uso y Proceso igual
del sistema y las relaciones modelado, pero caso de uso
entre el sistema y el entorno expresa funcionalidad mediante
interaccin de actores
Los Casos de Uso son Caso de uno no modela detalle
descripciones de la funcional interno
funcionalidad del sistema Relaciones de extensin y
independientes de la generalizacin de CU no tienen
implementacin igual en DFD

UNPSJB - 200 Ingeniera de Software 47


Casos de Uso www.dsic.upv.es/~uml
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
Los Casos de Uso Actor A
Caso de Uso A

particionan el conjunto de
necesidades atendiendo a
la categora de usuarios
que participan en el mismo Caso de Uso B
Actor B
Estn basado en el
lenguaje natural, es decir,
es accesible por los
usuarios

UNPSJB - 200 Ingeniera de Software 48


Casos de Uso www.dsic.upv.es/~uml
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

UNPSJB - 200 Ingeniera de Software 49


Casos de Uso www.dsic.upv.es/~uml
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

UNPSJB - 200 Ingeniera de Software 50


Casos de Uso: Relacioneswww.dsic.upv.es/~uml
www.dsic.upv.es/~uml

UML define cuatro Inclusin : una instancia


del Caso de Uso origen
tipos de relacin incluye tambin el
comportamiento descrito
en los Diagramas por el Caso de Uso
de Casos de Uso: destino
Comunicacin
<<include>>

Caso de Uso Origen Caso de Uso Destino


<<include>> reemplaz
al denominado
<<uses>>
Caso de Uso
Actor

UNPSJB - 200 Ingeniera de Software 51


Casos de Uso: Relaciones
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Extensin : el Caso Herencia : el Caso


de Uso origen de Uso origen
extiende el hereda la
comportamiento especificacin del
del Caso de Uso Caso de Uso
destino destino y
posiblemente la
modifica y/o ampla
<<extend>>

Caso de Uso Origen Caso de Uso Destino

Caso de Uso Hijo Caso de Uso Padre

UNPSJB - 200 Ingeniera de Software 52


Casos de Uso: Relaciones
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo:
Identificacin
<<include>>

Transferencia
Cliente

<<extend>>

Transferencia en Internet

UNPSJB - 200 Ingeniera de Software 53


Casos de Uso: Relaciones
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo:

UNPSJB - 200 Ingeniera de Software 54


Casos de Uso: Construccin
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

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 - 200 Ingeniera de Software 55


Casos de Uso: Construccin
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

La descripcin del Caso de Uso comprende:


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 - 200 Ingeniera de Software 56


RF- <id del requisito> <nombre del requisito funcional>
Versin <numero de versin y fecha>
Autores <autor>
Fuentes <fuente de la versin actual>
Objetivos asociados <nombre del objetivo>
Descripcin 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 <precondicin del caso de uso>
Secuencia Paso Accin
Normal 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 <postcondicin del caso de uso>
Excepciones 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
Rendimiento Paso Cota de tiempo
1 n segundos
2 n segundos
Frecuencia esperada <n de veces> veces / <unidad de tiempo>
Importancia {sin importancia, importante, vital}
Urgencia {puede esperar, hay presin, inmediatamente}
UNPSJB - 200
Comentarios
Ingeniera de Software
<comentarios adicionales>
57
Modelo de Casos de Uso y
Modelo Conceptual (Anlisis)
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

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 - 200 Ingeniera de Software 58


Diagramas de Interaccin

UNPSJB - 2005 Ingeniera de Software - Clase 6 59


Interaccin www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 60


Diagramas de interaccin www.dsic.upv.es/~uml
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)

UNPSJB - 200 Ingeniera de Software 61


Diagrama de Secuencia www.dsic.upv.es/~uml
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

UNPSJB - 200 Ingeniera de Software 62


Diagrama de Secuenciawww.dsic.upv.es/~uml
www.dsic.upv.es/~uml

UNPSJB - 200 Ingeniera de Software 63


Diagrama de Secuencia
mostrando foco de
control,
condiciones, recursin
creacin y destruccin
de objetos

UNPSJB - 200 Ingeniera de Software 64


Diagrama de Secuenciawww.dsic.upv.es/~uml
www.dsic.upv.es/~uml

UNPSJB - 200 Ingeniera de Software 65


Diagrama de Colaboracinwww.dsic.upv.es/~uml
www.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 - 200 Ingeniera de Software 66


Mensajes www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Un mensaje Un mensaje se
desencadena una
accin en el objeto
enva de manera
destinatario condicionada:
Un mensaje se enva
si han sido enviados
los mensajes de una [x>y] 1: Mensaje
lista (sincronizacin): B
A

A.1, B.3 / 1:Mensaje B

UNPSJB - 200 Ingeniera de Software 67


Mensajes www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Un mensaje que devuelve un


resultado:
1: distancia:= mover(x,y)
B

UNPSJB - 200 Ingeniera de Software 68


Diagrama de Clases

UNPSJB - 2005 Ingeniera de Software - Clase 6 69


Clasificacin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

El mundo real puede ser visto desde


abstracciones diferentes (subjetividad)
Mecanismos de abstraccin:
Clasificacin / Instanciacin
Composicin / Descomposicin
Agrupacin / Individualizacin
Especializacin / Generalizacin
La clasificacin es uno de los mecanismos
de abstraccin ms utilizados

UNPSJB - 200 Ingeniera de Software 70


Clases www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

La clase define el Cada clase se


mbito de representa en un
definicin de un rectngulo con tres
compartimientos:
conjunto de objetos nombre de la clase
Cada objeto atributos de la clase
pertenece a una operaciones de la
clase clase
Los objetos se motocicleta
crean por
instanciacin de las color
cilindrada
clases velocidad maxima

arrancar
acelerar
UNPSJB - 200 Ingeniera de Software frenar 71
Clases: Notacin Grfica www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Otros ejemplos:

lista
pila

primero
ultimo apilar
aadir desapilar
quitar cardinalidad
cardinalidad

UNPSJB - 200 Ingeniera de Software 72


Clases: Encapsulacin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

La encapsulacin presenta dos ventajas


bsicas:
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 - 200 Ingeniera de Software 73


www.dsic.upv.es/~uml
Clases: Encapsulacin (Recordar) www.dsic.upv.es/~uml

Los niveles de encapsulacin estn


heredados de los niveles de C++:
(-) 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 - 200 Ingeniera de Software 74


Clases: Encapsulacin www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 75


Relaciones entre Clases www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Los enlaces entre de objetos pueden


representarse entre las respectivas clases
Formas de relacin entre clases:
Asociacin y Agregacin (vista como un caso
particular de asociacin)
Generalizacin/Especializacin
Las relaciones de Agregacin y
Generalizacin forman jerarquas de
clases

UNPSJB - 200 Ingeniera de Software 76


Asociacin www.dsic.upv.es/~uml
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

Univ. de Murcia:Universidad Un enlace Antonio:Estudiante

Universidad Estudiante
Una asociacin

UNPSJB - 200 Ingeniera de Software 77


Asociacin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo:

marido

casado-con 0.. 1
0.. 1 * Compaa
Persona *
trabaja-para
mujer
nombre emplea-a
jefe nombre
0.. 1 s. s. direccin
Administra
* empleado

UNPSJB - 200 Ingeniera de Software 78


Asociacin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Especificacin de multiplicidad
(mnima...mxima)
1 Uno y slo uno
0..1 Cero o uno
M..N Desde M hasta N (enteros naturales)
* Cero o muchos
0..* Cero o muchos
1..* Uno o muchos (al menos uno)
La multiplicidad mnima >= 1 establece
una restriccin de existencia

UNPSJB - 200 Ingeniera de Software 79


Asociacin Cualificada www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

* 0..1
Aerolnea nro_billete Viajero

Tablero 1 1
fila
Cuadro
Ajedrez columna

Reduce la multiplicidad del rol opuesto al considerar el


valor
del cualificador

UNPSJB - 200 Ingeniera de Software 80


Agregacin www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 81


Agregacin: Caracterizacin
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Caracterizaciones relacionadas con la multiplicidad

Multiplicidad Mnima Objeto Mxima


0 flexible Agregado 1 disjunto
> 0 estricta (mna, mxa) > 1 no disjunto
Multiplicidad

Multiplicidad Mxima
Multiplicidad Mnima (mnc, mxc) 1 univaluado
0 nulos permitidos
> 1 multivaluado
> 0 nulos no
permitidos Objeto
UNPSJB - 200 Componente
Ingeniera de Software 82
... Agregacin: Caracterizacin
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

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

UNPSJB - 200 Ingeniera de Software 83


Ejemplos www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

UNPSJB - 200 Ingeniera de Software 84


... Ejemplos www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

UNPSJB - 200 Ingeniera de Software 85


Ejemplos www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

1 contiene 3.. *
Agregacin Polgono Punto
{ordenado}

* * Persona
Cuenta Asociacin excluyente
or
*
Empresa
1

* est-autorizado-en *
Usuario Estacin

Autorizacin
prioridad
Clase de asociacin privilegios
UNPSJB - 200 camb_privil
Ingeniera de Software 86
Clases y Objetos www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 87


Generalizacin www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 88


... Generalizacin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

La Generalizacin y
Nombres usados: clase Especializacin son
padre - clase hija. Otros equivalentes en
nombres: superclase - cuanto al resultado: la
subclase, clase base - jerarqua y herencia
clase derivada establecidas
Las subclases heredan Generalizacin y
propiedades de sus clases Especializacin no son
padre, es decir, atributos operaciones reflexivas
y operaciones (y ni simtricas pero s
asociaciones) de la clase transitivas
padre estn disponibles
en sus clases hijas

UNPSJB - 200 Ingeniera de Software 89


... Generalizacin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Vehculo

Veihculo Terrestre Vehculo Areo

Coche Camin Avin Helicptero

UNPSJB - 200 Ingeniera de Software 90


... Generalizacin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

La especializacin es una tcnica muy


eficaz para la extensin y reutilizacin

Coche

Restricciones predefinidas
Funcionando Estropeadoen UML:
disjunta - no disjunta
total (completa) - parcial (incompleta)

UNPSJB - 200 Ingeniera de Software 91


... Generalizacin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Particionamiento del
La nocin de clase est espacio de objetos =>
prxima a la de conjunto Clasificacin Esttica
Dada una clase, podemos Particionamiento del
ver el conjunto relativo a espacio de estados de
las instancias que posee o los objetos =>
bien relativo a las Clasificacin Dinmica
propiedades de la clase En ambos casos se
Generalizacin y recomienda considerar
especializacin expresan generalizaciones/espe
relaciones de inclusin cializaciones disjuntas
entre conjuntos

UNPSJB - 200 Ingeniera de Software 92


... Generalizacin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Un ejemplo de Clasificacin
Esttica:
Vehculo Areo

{ esttica }

Avin Helicptero

UNPSJB - 200 Ingeniera de Software 93


... Generalizacin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Un ejemplo de Clasificacin
Dinmica:

Coche

{ dinmica }

Funcionando Estropeado

UNPSJB - 200 Ingeniera de Software 94


... Generalizacin www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 95


... Generalizacin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Clasificacin Esttica

C0
ext(C0) = ext(Ci)

{ static } completa

ext(Ci) ext(Cj) =
C1 Cn
disjunta

UNPSJB - 200 Ingeniera de Software 96


... Generalizacin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Clasificacin Dinmica

C0
ext(C0) = ext(Ci) completa
extt(Ci) extt(Cj) = disjunta en t
{ dinmica }
extt1(Ci) extt2(Cj)
posiblemente
C1 Cn no disjunta en
diferentes
instantes

UNPSJB - 200 Ingeniera de Software 97


... Generalizacin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo: varias especializaciones a partir de


la misma clase padre, usando
discriminadores:
Comercial Militar

uso

Vehculo Areo

estructura

Avin Helicptero
UNPSJB - 200 Ingeniera de Software 98
www.dsic.upv.es/~uml
Clasificacin Mltiple (herencia mltiple) 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 - 200 Ingeniera de Software 99


Herencia Mltiple www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Uso disciplinado de la herencia mltiple:


clasificaciones disjuntas con clases padre en hojas de
jerarquas alternativas
Bpedo Cuadrpedo

nro patas nro patas

Con Pelos Herbvoro

cubertura comida
Animal
Con Plumas cobertura
comida
cobertura Carnvoro

Con Escamas

Conejo

UNPSJB - 200 Ingeniera de Software 100


Principio de Sustitucin www.dsic.upv.es/~uml
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.

UNPSJB - 200 Ingeniera de Software 101


Principio de Sustitucin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

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 - 200 Ingeniera de Software 102


Polimorfismo www.dsic.upv.es/~uml
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

UNPSJB - 200 Ingeniera de Software 103


Polimorfismo www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo: todo animal duerme, pero


cada clase lo hace de forma distinta
Animal
dormir()
?
dormir

?
Len Oso Tigre

UNPSJB - 200 Ingeniera de Software 104


Polimorfismo www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Animal Dormir()
{
dormir()
}

Len Oso Tigre


dormir() dormir() dormir()

Dormir() Dormir() Dormir()


{ { {
sobre el vientre sobrela espalda en un rbol
} } }
UNPSJB - 200 Ingeniera de Software 105
Polimorfismo www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 106


Diagrama de Estados

UNPSJB - 2005 Ingeniera de Software - Clase 6 107


Diagrama de Estados www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Los Diagramas de Estados Cada objeto est en un estado en


representan autmatas de cierto instante
estados finitos, desde el El estado est caracterizado
p.d.v. de los estados y las parcialmente por los valores algunos
transiciones de los atributos del objeto
Son tiles slo para los El estado en el que se encuentra un
objetos con un objeto determina su comportamiento
comportamiento
significativo
Cada objeto sigue el
comportamiento descrito en el D. de
El formalismo utilizado
Estados asociado a su clase
proviene de los
Statecharts (Harel) Los D. De Estados y escenarios son
complementarios

UNPSJB - 200 Ingeniera de Software 108


Diagrama de Estados www.dsic.upv.es/~uml
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

UNPSJB - 200 Ingeniera de Software 109


Diagrama de Estados www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Estados y Transiciones

Evento [condicin] / Accin

A B

Tanto el evento como la accin se


consideran instantneos

UNPSJB - 200 Ingeniera de Software 110


Diagrama de Estados www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo de un Diagrama de Estados


para la clase persona:
contratar
en el paro en activo

perder empleo
jubilarse
jubilarse

jubilado

UNPSJB - 200 Ingeniera de Software 111


Acciones www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Podemos especificar la solicitud de un


servicio a otro objeto como consecuencia de
la transicin:

Evento [condicin] / OtroObjeto.Operacin

UNPSJB - 200 Ingeniera de Software 112


Acciones www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 113


Generalizacin de Estadoswww.dsic.upv.es/~uml
www.dsic.upv.es/~uml

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 - 200 Ingeniera de Software 114


Generalizacin de Estadoswww.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo:

e1
A B

e2
e2

UNPSJB - 200 Ingeniera de Software 115


Generalizacin de Estadoswww.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Quedara como:

e1
Aa b
B

e2

C
UNPSJB - 200 Ingeniera de Software 116
Generalizacin de Estados
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Las transiciones de entrada deben ir hacia


subestados especficos:

e1
Aa Bb

e2

e0

UNPSJB - 200 Ingeniera de Software 117


Generalizacin de Estados
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

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

UNPSJB - 200 Ingeniera de Software 118


Generalizacin de Estados
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

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 - 200 Ingeniera de Software 119


Generalizacin de Estados
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo:

e1
e1

UNPSJB - 200 Ingeniera de Software 120


Generalizacin de Estados
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo:

UNPSJB - 200 Ingeniera de Software 121


Historia www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 122


Historia www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo:
A

d2
B

in
D x y
out
d1
C

H*
UNPSJB - 200 Ingeniera de Software 123
Historia www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo:

Enjuague Lavado Secado

cerrar puerta abir puerta

Espera

UNPSJB - 200 Ingeniera de Software 124


Destruccin del Objeto www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 125


Destruccin de Objeto www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo:

crash
En vuelo

despegar aterrizar

Crear(matricula)
En tierra

UNPSJB - 200 Ingeniera de Software 126


Transiciones temporizadaswww.dsic.upv.es/~uml
www.dsic.upv.es/~uml

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 - 200 Ingeniera de Software 127


Transiciones temporizadas
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo: A

/ Abrir ranura

esperar dinero despus de


30 segundos anular
entry: Mostrar mensaje
exit: cerrar ranura transaccin

Depsito efectuado

B
UNPSJB - 200 Ingeniera de Software 128
Diagrama de Actividad www.dsic.upv.es/~uml
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:
Un mtodo
Un caso de uso
Un proceso de negocio (Workflow)
Las actividades se enlazan por
transiciones automticas. Cuando una
actividad termina se desencadena el paso
a la siguiente actividad

UNPSJB - 200 Ingeniera de Software 129


Ejemplos

UNPSJB - 200 Ingeniera de Software 130


... Ejemplos

UNPSJB - 200 Ingeniera de Software 131


... Ejemplos www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

UNPSJB - 200 Ingeniera de Software 132


Diagrama de Componentes

UNPSJB - 2005 Ingeniera de Software - Clase 6 133


Diagrama de Componentes
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Los diagramas de Los componentes representan


componentes describen todos los tipos de elementos
los elementos fsicos del software que entran en la
sistema y sus relaciones fabricacin de aplicaciones
informticas. Pueden ser simples
Muestran las opciones archivos, paquetes de Ada,
de realizacin bibliotecas cargadas
incluyendo cdigo dinmicamente, etc.
fuente, binario y Las relaciones de dependencia se
ejecutable utilizan en los diagramas de
componentes para indicar que un
componente utiliza los servicios
ofrecidos por otro componente

UNPSJB - 200 Ingeniera de Software 134


Diagramas de Componentes
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo:

UNPSJB - 200 Ingeniera de Software 135


Diagrama de Despliegue

UNPSJB - 2005 Ingeniera de Software - Clase 6 136


Diagrama de Despliegue www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 137


Diagrama de Despliegue
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Los estereotipos permiten precisar


la naturaleza del equipo:
Dispositivos
Procesadores
Memoria

Los nodos se interconectan


mediante soportes bidireccionales
que pueden a su vez estereotiparse

UNPSJB - 200 Ingeniera de Software 138


Diagrama de Despliegue
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo de conexin entre nodos:


<<Cliente>> <<Servidor>>
Terminal Punto <<TCP/IP>>
Base de
de Venta Datos

<<RDSI>>
<<RDSI>>
Podemos distinguir Control
tipos de nodos y
connexiones por
estereotipado
UNPSJB - 200 Ingeniera de Software 139
Proceso de Desarrollo de SW
basado en UML

UNPSJB - 2005 Ingeniera de Software - Clase 6 140


Qu es un Proceso de Desarrollo de SW? www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Define Quin debe hacer Qu, Cundo y


Cmo debe hacerlo

Requisitos nuevos Sistema nuevo


o modificados o modificado
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 - 200 Ingeniera de Software 141


Historia de RUP www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Rational Unified Process Pruebas funcionales


1998 Pruebas de desempe
Gestin de requisitos
Gestin de cambios y
configuracin
Ingeniera de Negocio
RationalObjectory Process Ingeniera de datos
1996-1997 Diseo de interfaces

Objectory Process UML


1987-1995

Enfoque Ericsson
UNPSJB - 200 Ingeniera de Software 142
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Dos dimensiones

UNPSJB - 200 Ingeniera de Software 143


Fases e Hitos (Milestones) www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Inception Elaboration Construction Transition

Objetivos Arquitectura Capacidad Release


(Vision) Operacional del Producto
Inicial

tiempo

UNPSJB - 200 Ingeniera de Software 144


Elementos en RUP www.dsic.upv.es/~uml
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)

UNPSJB - 200 Ingeniera de Software 145


... Elementos en RUP www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Workflow, Workflow Detail , Workers, Actividades


y Artefactos. Ejemplos
Workflow: Requirements Workflow Detail:Analyse the Proble

Workers Artefactos
UNPSJB - 200 Ingeniera de Software Actividades 146
... Elementos en RUP www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Workers Testing professional


Analyst workers workers
Business-Process Analyst Test Designer
Business Designer Tester
Business-Model Reviewer Manager workers
Requirements Reviewer Change Control Manager
System Analyst Configuration Manager
Use-Case Specifier Deployment Manager
User-Interface Designer Process Engineer
Developer workers Project Manager
Architect Project Reviewer
Architecture Reviewer Other workers
Capsule Designer Any Worker
Code Reviewer Course Developer
Database Designer Graphic Artist
Design Reviewer Stakeholder
Designer System Administrator
Implementer Technical Writer
Integrator Tool Specialist

UNPSJB - 200 Ingeniera de Software 147


... Elementos en RUP www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Workers, Actividades, Artefactos


Ejemplo: System Analyst Worker

UNPSJB - 200 Ingeniera de Software 148


... Elementos en RUP www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Artefactos Conjuntos de
Resultado parcial o Artefactos
final que es producido Business Modeling Set
y usado durante el Requirements Set
proyecto. Son las Analysis & Design Set
entradas y salidas de Implementation Set
las actividades Test Set
Un artefacto puede Deployment Set
ser un documento, un Project Management Set
modelo o un elemento Configuration & Change
de modelo Management Set
Environment Set

UNPSJB - 200 Ingeniera de Software 149


... Elementos en RUP www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Artefactos, Workers, Actividades


Ejemplo:Business Modeling Artifact Set

UNPSJB - 200 Ingeniera de Software 150


Caractersticas Esenciales de RUP www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Proceso Dirigido por los Casos de


Uso
Proceso Iterativo e Incremental
Proceso Centrado en la Arquitectura

UNPSJB - 200 Ingeniera de Software 151


Proceso dirigido por los Casos de Uso
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Requisitos Capturar, definir y


validar los casos de
uso
Anlisis & Diseo Casos de Uso Realizar los
integran el casos de uso
Implementacin trabajo

Verificar que se
Pruebas satisfacen los
casos de uso

UNPSJB - 200 Ingeniera de Software 152


... Proceso dirigido por los Casos de Uso
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

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 - 200 Ingeniera de Software 153
..Proceso dirigido por los casos de Uso
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

UNPSJB - 200 Ingeniera de Software 154


Proceso Iterativo e Incremental
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

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 - 200 Ingeniera de Software 155


www.dsic.upv.es/~uml
... Proceso Iterativo e Incremental www.dsic.upv.es/~uml

Las actividades se encadenan en una mini-


cascada con un alcance limitado por los
objetivos de la iteracin

Anlisis

Diseo

Codific.
n veces Pruebas e
Integracin
UNPSJB - 200 Ingeniera de Software 156
www.dsic.upv.es/~uml
... Proceso Iterativo e Incremental www.dsic.upv.es/~uml

Cada iteracin comprende:


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)

UNPSJB - 200 Ingeniera de Software 157


Proceso Iterativo e Incremental www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Enfoque
Cascada

Enfoque
Iterativo e
Incremental

UNPSJB - 200 Ingeniera de Software 158


... Proceso Iterativo e Incremental www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Grado de Finalizacin de Artefactos

UNPSJB - 200 Ingeniera de Software 159


www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Proceso Centrado
Arquitectura en la
de un sistema Arquitectura
es la organizacin o
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 - 200 Ingeniera de Software 160
Fases del Ciclo de Vida www.dsic.upv.es/~uml
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:
Inicio o Estudio de oportunidad
Elaboracin
Construccin
Transicin

UNPSJB - 200 Ingeniera de Software 161


...Fases del Ciclo de Vida www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Inicio o Estudio de oportunidad


(inception)
Define el mbito y objetivos del proyecto
Se define la funcionalidad y capacidades del
producto
Elaboracin
Tanto la funcionalidad como el dominio del
problema se estudian en profundidad
Se define una arquitectura bsica
Se planifica el proyecto considerando recursos
disponibles

UNPSJB - 200 Ingeniera de Software 162


...Fases del Ciclo de Vida www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

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

UNPSJB - 200 Ingeniera de Software 163


...Fases del Ciclo de Vida www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

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 - 200 Ingeniera de Software 164


Esfuerzo respecto de las Workflows
Inception Elaboration Construction Transition

15%
Requisitos
Una iteracin en la
fase de elaboracin
Anlisis
10%

Diseo 15%

Implementacin
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

Ingeniera de10%
UNPSJB - 200 5% mantenimiento gestin cambios
Software 165
...Esfuerzo respecto de las Fases
Inception Elaboration Construction Transition

Requisitos
Una iteracin en la
fase de elaboracin
Anlisis

Diseo

Implementacin

Pruebas

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

Esfuerzo:
UNPSJB - 200 5%Ingeniera
20% de 65%
Software 10% 166
Duracin: 10% 30% 50% 10%
UML - ANEXO

Fundamentos del Modelado OO


Para evaluacin por parte de los
alumnos

UNPSJB - 2005 Ingeniera de Software - Clase 6 167


Objetos www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Objeto = unidad atmica que encapsula estado


y comportamiento

La encapsulacin en un objeto permite una alta


cohesin y un bajo acoplamiento

Un objeto puede caracterizar una entidad fsica


(coche) o abstracta (ecuacin matemtica)

UNPSJB - 200 Ingeniera de Software 168


Objetos www.dsic.upv.es/~uml
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
Objeto
Un Objeto
ms

Otro
Objeto

UNPSJB - 200 Ingeniera de Software 169


Objetos www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo de varios objetos


relacionados:
Cuenta Corriente 101
Juan

Banco de Valencia

Felipe
Cuenta Corriente 114

UNPSJB - 200 Ingeniera de Software 170


Objetos www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 171


Clases y Objetos www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

UNPSJB - 200 Ingeniera de Software 172


www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 173


www.dsic.upv.es/~uml
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)
UNPSJB - 200 Ingeniera de Software 174
Estado www.dsic.upv.es/~uml
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

UNPSJB - 200 Ingeniera de Software 175


Comportamiento www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo de interaccin:

UNPSJB - 200 Ingeniera de Software 176


Comportamiento www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 177


Persistencia www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

La persistencia de los objetos designa la capacidad


de un objeto trascender en el espacio/tiempo

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

UNPSJB - 200 Ingeniera de Software 178


Comunicacin www.dsic.upv.es/~uml
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

UNPSJB - 200 Ingeniera de Software 179


III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
Categoras de objetos:
Activos - Pasivos
Cliente Servidores, Agentes
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

UNPSJB - 200 Ingeniera de Software 180


Comunicacin www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 181


Comunicacin www.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Ejemplo en el que un agente hace de


aislante:
Sevidor 1
Un agente

Servidor 2
Un cliente

UNPSJB - 200 Ingeniera de Software 182


El Concepto de Mensaje www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 183


El Concepto de Mensajewww.dsic.upv.es/~uml
www.dsic.upv.es/~uml

Objeto 1
: Mensaje A

Objeto 2

: Mensaje C : Mensaje E

Objeto 3 Objeto 4

: Mensaje D
UNPSJB - 200 Ingeniera de Software 184
Mensaje y Estmulo www.dsic.upv.es/~uml
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 - 200 Ingeniera de Software 185

Вам также может понравиться