Você está na página 1de 218

Desarrollo de Software

Orientado a Objeto usando UML


Patricio Letelier Torres
letelier@dsic.upv.es

Departamento Sistemas Informticos y Computacin (DSIC)


Universidad Politcnica de Valencia (UPV) - Espaa

1
www.dsic.upv.es/~uml
Contenido
I. Introduccin
Modelado de Software
UML
II. Breve Tour por UML
III. El Paradigma Orientado a Objeto usando UML
Fundamentos del Modelado OO
Requisitos del software
Interaccin entre objetos
Clases y relaciones entre clases
Comportamiento de objetos
Componentes
Distribucin y despliegue de componentes
Object Constraint Language (OCL)
IV. Proceso de Desarrollo de SW basado en UML
V. Conclusiones
2
www.dsic.upv.es/~uml
I
Introduccin

3
www.dsic.upv.es/~uml
Introduccin: Modelado de SW

4
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW

Construccin de una casa para fido

Puede hacerlo una sola persona


Requiere:
Modelado mnimo
Proceso simple
Herramientas simples

5
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW

Construccin de una casa

Construida eficientemente y en un tiempo


razonable por un equipo
Requiere:
Modelado
Proceso bien definido
Herramientas ms sofisticadas
6
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW

Construccin de un rascacielos

7
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW

Claves en Desarrollo de SI

Notacin

Herramientas Proceso

8
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW

Abstraccin - Modelado Visual (MV)

El modelado captura las


partes esenciales del sistema

Orden

Item

envo

Proceso de Negocios

Sistema Computacional

9
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW

II. Notacin (Visual) - Beneficios


Manejar la complejidad

Interface de Usuario
(Visual Basic,
Java, ..)
Lgica del Negocio
(C++, Java, ..)

Mltiples Sistemas

Servidor de BDs
(C++ & SQL, ..)

Modelar el sistema
independientemente Componentes
del lenguaje de Reutilizados

implementacin
Promover la Reutilizacin
10
www.dsic.upv.es/~uml
Introduccin: UML

11
www.dsic.upv.es/~uml
I. Introduccin: UML

Qu es UML?
UML = Unified Modeling Language
Un lenguaje de propsito general para el
modelado orientado a objetos. Impulsado por el
Object Management Group (OMG, www.omg.org)
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)
12
www.dsic.upv.es/~uml
I. Introduccin: UML

Situacin de Partida
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

13
www.dsic.upv.es/~uml
I. Introduccin: UML

Historia de 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

14
www.dsic.upv.es/~uml
I. Introduccin: UML

Historia de UML
2005? UML 2.0
2003 UML 1.5
2000 UML 1.4

1999 UML 1.3 Revisiones menores

1998 UML 1.2

Nov 97 UML aprobado


por el OMG

15
www.dsic.upv.es/~uml
I. Introduccin: UML

Participantes en UML 1.0


Rational Software MCI Systemhouse
(Grady Booch, Jim Rumbaugh y Microsoft
Ivar Jacobson)
Digital Equipment ObjecTime
Hewlett-Packard Oracle Corp.
i-Logix (David Harel) Platinium Technology
IBM Sterling Software
ICON Computing Taskon
(Desmond DSouza)
Texas Instruments
Intellicorp and James
Martin & co. (James Odell) Unisys

16
www.dsic.upv.es/~uml
I. Introduccin: UML

UML aglutina enfoques OO


Rumbaugh
Booch Jacobson

Odell
Meyer
Pre- and Post-conditions

Shlaer-Mellor UML
Object life cycles
Harel
State Charts
Gamma et. al.
Frameworks, patterns,
notes
Embly Wirfs-Brock
Singleton classes Responsabilities
Fusion
Operation descriptions,
message numbering
17
www.dsic.upv.es/~uml
I. Introduccin: UML

Aspectos Novedosos
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

18
www.dsic.upv.es/~uml
I. Introduccin: UML

Inconvenientes en UML
Definicin del proceso de desarrollo usando UML. UML
no es una metodologa
No cubre todas las necesidades de especificacin de un
proyecto software. Por ejemplo, no define los
documentos textuales

Ejemplos aislados

Monopolio de conceptos, tcnicas y mtodos en torno


a UML y el OMG

19
www.dsic.upv.es/~uml
I. Introduccin: UML

Perspectivas de UML
UML es el lenguaje de modelado orientado a objetos
estndar predominante ahora y en los prximos aos
Razones:
Participacin de metodlogos influyentes
Participacin de importantes empresas
Estndar del OMG
Evidencias:
Herramientas que proveen la notacin UML
Edicin de libros (ms de 300 en www.amazon.com)
Congresos, cursos, camisetas, etc.

20
www.dsic.upv.es/~uml
II
Breve Tour por UML

21
www.dsic.upv.es/~uml
II. Breve Tour por UML

Modelos y Diagramas
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 completa-
mente 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

22
www.dsic.upv.es/~uml
II. Breve Tour por UML

... Modelos y Diagramas


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
23
www.dsic.upv.es/~uml
II. Breve Tour por UML

Diagramas de UML 1.5


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
24
www.dsic.upv.es/~uml
II. Breve Tour por UML

... Diagramas de 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 Modelos Componentes

Scenario Component
Scenario Component
Diagramas
Diagrams de
Diagramas de
Diagrams Diagrams
Diagrams Distribucin
Estados Diagramas de
Actividad
25
www.dsic.upv.es/~uml
II. Breve Tour por UML

Organizacin de Modelos
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


26
www.dsic.upv.es/~uml
II. Breve Tour por UML

... Organizacin de Modelos

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)

27
www.dsic.upv.es/~uml
II. Breve Tour por UML

Paquetes en 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

28
www.dsic.upv.es/~uml
II. Breve Tour por UML

Paquetes en 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

29
www.dsic.upv.es/~uml
II. Breve Tour por UML

Paquetes en UML
Todos los elementos 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

30
www.dsic.upv.es/~uml
II. Breve Tour por UML

...Paquetes en Rational Rose


Customers

Otra Clase
Customers

CheckingAccount
<<access>> (f rom Banking)

Banking Banking

CheckingAccount

31
www.dsic.upv.es/~uml
II. Breve Tour por UML

Paquetes en UML

Prctica 1

32
www.dsic.upv.es/~uml
II. Breve Tour por UML

Diagrama de Casos de Uso

Casos de Uso es una tcnica para capturar


informacin respecto de los servicios que un
sistema proporciona a su entorno

No pertenece estrictamente al enfoque


orientado a objeto, es una tcnica para captura
y especificacin de requisitos

33
www.dsic.upv.es/~uml
II. Breve Tour por UML

Ejemplos
Ejemplo:

Retirar dinero

Consultar Extracto
Cliente

Realizar transferencia
Prctica 2

34
www.dsic.upv.es/~uml
II. Breve Tour por UML

Diagrama de Secuencia

:WInPrstamos :Socio :Video :Prstamo


: Encargado

prestar(video, socio)
verificar situacin socio

verificar situacin video

registrar prstamo

entregar recibo

35
www.dsic.upv.es/~uml
II. Breve Tour por UML

Diagrama de Colaboracin
:Socio

:Video

2: verificar situacin socio

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


:WInPrstamos

5: entregar recibo
: Encargado 4: registrar prstamo

:Prstamo

Prctica 3

36
www.dsic.upv.es/~uml
II. Breve Tour por UML

Diagrama de Clases
El Diagrama de Clases es el diagrama principal para el
anlisis y diseo del sistema
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 debera aportar
informacin para establecer las clases, objetos,
atributos y operaciones

37
www.dsic.upv.es/~uml
II. Breve Tour por UML

Ejemplos (Clase y Visibilidad)

38
www.dsic.upv.es/~uml
II. Breve Tour por UML

Ejemplos (Asociacin)

dirige director
Departamento Profesor
0..1 1

39
www.dsic.upv.es/~uml
II. Breve Tour por UML

Ejemplos (Clase Asociacin)

empleador trabajadores
Empresa Empleado
* 1..*

Cargo
superior
nombre
sueldo 0..1

subordinado 1..*

40
www.dsic.upv.es/~uml
II. Breve Tour por UML

Ejemplos (Generalizacin)

Trabajador

{ disjunta, completa }

Directivo Administrativo Obrero

41
www.dsic.upv.es/~uml
II. Breve Tour por UML

Ejemplos
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 }

Prcticas 4
Avin de carga Avin de pasajeros

42
www.dsic.upv.es/~uml
II. Breve Tour por UML

Diagrama de Estados

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 ]

43
www.dsic.upv.es/~uml
II. Breve Tour por UML

Diagrama de Actividad
Buscar Bebida [ no hay caf ] [ no zumo ]

[ hay caf ]
[ hay zumo ]

Poner caf Aadir agua Coger taza


en filtro al depsito Coger
zumo

Poner filtro
en mquina

Encender
mquina

/ cafetera.On

Caf en
preparacin

indicador de fin

Servir caf Beber

Prctica 5 44
www.dsic.upv.es/~uml
II. Breve Tour por UML

Diagrama Componentes
Interfaz de Terminal
Control y Anlisis

Gestin de Cuentas Rutinas de conexin Acceso a BD

45
www.dsic.upv.es/~uml
II. Breve Tour por UML

Diagrama de Despliegue
Servidor Central Control y Anlisis

Acceso a BD Comment

Comment

Rutinas de Coneccion
Comment

T erminal de Consulta
Interfaz de Terminal
Rutinas de Coneccion
Comment Comment

Punto de Venta
Rutinas de Coneccion
Comment

Gestin de Cuentas Interfaz de Terminal

Comment Comment

46
www.dsic.upv.es/~uml
II. Breve Tour por UML

Diagrama de Despliegue en Rational


Control y Anlisis

Acceso a BD
Servidor Central
Component Diagram:
Components / Servidor Rutinas de conexin

Central
Servidor Central

Rutinas de conexin
Punto de Venta
Punto de Venta Terminal de
Consulta Gestin de Cuentas Interfaz de Terminal

Terminal de Consulta
Rutinas de conexin Interfaz de Terminal
Component Diagram: Component Diagram:
Components / Punto de Components / Terminal
Venta de Consulta

Prctica 6

47
www.dsic.upv.es/~uml
II. Breve Tour por UML

Resumen

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

48
www.dsic.upv.es/~uml
III
El Paradigma
Orientado a Objeto

49
www.dsic.upv.es/~uml
III. El Paradigma OO

Por qu la Orientacin a Objetos?

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

Modelado integrado de propiedades estticas y


dinmicas del mbito del problema
Facilita construccin, mantenimiento y reutilizacin

50
www.dsic.upv.es/~uml
III. El Paradigma OO

Por qu la Orientacin a Objetos?

Conceptos comunes de modelado durante el


anlisis, diseo e implementacin

Facilita la transicin entre distintas fases


Favorece el desarrollo iterativo del sistema
Disipa la barrera entre el qu y el cmo

Sin embargo, existen problemas ...

51
www.dsic.upv.es/~uml
III. El Paradigma OO

Problemas en OO

...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

52
www.dsic.upv.es/~uml
III. El Paradigma OO

Problemas en OO
Un objeto contiene datos y operaciones que operan
sobre los datos, pero ...
Podemos distinguir dos tipos de objetos degenerados:
Un objeto sin datos (que 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
53
www.dsic.upv.es/~uml
Fundamentos de Modelado OO

54
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
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)

55
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
En UML, un objeto se representa por un
rectngulo con un nombre subrayado

Otro objeto

Un objeto

Otro objeto ms

56
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
Ejemplo de varios objetos relacionados:

Cuenta Corriente 101


Juan

Banco de Valencia

Felipe
Cuenta Corriente 114

57
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
Objeto = Identidad + Estado + Comportamiento
El estado est representado por los valores de los
atributos
Un atributo toma un valor en un dominio concreto

Un coche

Azul
979 Kg
70 CV
...

58
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO

Clases y Objetos

59
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO

Comportamiento
Ejemplo de interaccin:

Un Objeto Operacin 1

1: Un mensaje Operacin 2

Otro Objeto

60
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO

Comportamiento
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

61
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO

Persistencia
La persistencia de los objetos designa la
capacidad de un objeto trascender en el
espacio/tiempo
Podremos despus reconstruirlo, es decir,
cogerlo 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
62
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
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

63
www.dsic.upv.es/~uml
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
64
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
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

65
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
Ejemplo con objeto agente:

Servidor 1

2:

Un agente

1: 3:

Un cliente Servidor 2

66
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO

El Concepto de Mensaje
La unidad de comunicacin entre objetos se
llama mensaje

Objeto 1 1: Mensaje A Objeto 2

2: Mensaje C
4: Mensaje E

Objeto 3 Objeto 4

3: Mensaje D

67
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO

Mensaje y Estmulo
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)

68
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Requisitos del software

69
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Casos de Uso
Los Casos de Uso (Ivar Jacobson) describen
bajo la forma de acciones y reacciones el
comportamiento de un sistema desde el p.d.v.
del usuario
Permiten definir los lmites del sistema y las
relaciones entre el sistema y el entorno
Los Casos de Uso son descripciones de la
funcionalidad del sistema independientes de la
implementacin
Comparacin con respecto a los Diagramas de
Flujo de Datos del Enfoque Estructurado
70
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Casos de Uso
Los Casos de Uso cubren la carencia existente
en mtodos previos (OMT, Booch) en cuanto a la
determinacin de requisitos

Los Casos de Uso particionan el conjunto de


necesidades atendiendo a la categora de
usuarios que participan en el mismo

El usuario debera poder entenderlos para


realizar su validacin

71
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Casos de Uso
Ejemplo:

Caso de Uso A
Actor A

Caso de Uso B
Actor B

72
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Casos de Uso
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

73
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Casos de Uso
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

74
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


UML define cuatro tipos de relacin en los
Diagramas de Casos de Uso:

Comunicacin

Caso de Uso
Actor

75
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Inclusin : una instancia del Caso de Uso origen
incluye tambin el comportamiento descrito por el
Caso de Uso destino

<<include>>

Caso de Uso Origen Caso de Uso Destino

<<include>> reemplaz al denominado <<uses>>

76
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Ejemplo <<include>>:

<<include>>
Reintegro Cuenta Corriente

Cliente Verificar Operacin

<<include>>

Reintegro Cuenta de Crdito

77
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Extensin : el Caso de Uso origen extiende el
comportamiento del Caso de Uso destino

<<extend>>

Caso de Uso Origen Caso de Uso Destino

78
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Ejemplo <<extend>>:

Solicitar Prstamo
Cliente

[Tarjeta Caducada]

<<extend>>

Solicitar Nueva Tarjeta

79
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Ejemplo <<include>> y <<extend>>:

Identificacin
<<include>>

Transferencia
Cliente

<<extend>>

Transferencia en Internet
80
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Otro ejemplo <<include>> y <<extend>>:

Supply Customer Data Order Product


Arrange Payment

<<include>> <<include>>
<<include>>

the salesperson asks


for the catalog
1 * <<extend>>

Salesperson Request Catalog


Place Order

81
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Herencia : el Caso de Uso origen hereda la
especificacin del Caso de Uso destino y
posiblemente la modifica y/o ampla

Caso de Uso Hijo Caso de Uso Padre

82
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Casos de Uso: Construccin


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?
83
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Casos de Uso: Construccin


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?
Prctica 7

84
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
Identificador CU-<id-requisito>
Nombre <nombre del requisito funcional>
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 CU-x>
2 Si <condicin>, {el <actor> , el sistema} <accin realizada por el actor o
sistema>>, se realiza el caso de uso < caso de uso CU-x>

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 CU-x>, a continuacin este caso de uso {continua, aborta}

Rendimiento Paso Cota de tiempo

1 n segundos

Frecuencia esperada <n de veces> veces / <unidad de tiempo>


Importancia {sin importancia, importante, vital}
Urgencia {puede esperar, hay presin, inmediatamente}
Comentarios <comentarios adicionales>
85
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos

Comentarios
En mtodos OO que carecen de una tcnica de captura de
requisitos se comienza inmediatamente con la
construccin del modelo de anlisis/diseo

Los Casos de Uso son una idea maravillosa que ha sido


generalmente complicada. El verdadero truco para los
Casos de Uso es mantenerlos simples. Recordad, maana
van a cambiar. Rober C. Martin

Los requisitos NO funcionales tambin son importantes.


Desempeo, cumplimiento de estndares o leyes,
atributos de calidad (confiabilidad, disponibilidad,
seguridad, mantenibilidad, portabilidad), etc.
86
www.dsic.upv.es/~uml
Interaccin entre objetos

87
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos

Interaccin
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

88
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos

Mensajes

Sintaxis para mensajes:


predecesor / guarda secuencia: retorno := msg(args)

89
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos

Diagramas de interaccin
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)

90
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos

Diagrama de Secuencia
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

91
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos

Diagrama de Secuencia

92
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos

Diagrama de Secuencia
Caller Exchange Receiver

a: lift receiver

{b.receiveTime b: dial tone


- a.sendTime < 1 sec.}

{c.receiveTime c: dial digit


-b.sendTime < 10 sec.}

...

The call is routed


d: route
through the network

{d.receiveTime
ringing tone phone rings
-d.sendTime < 5 sec.}

answer phone
-----
< 1 sec
At this point the stop tone stop ringing
-----
parties can talk

93
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos

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

94
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos

ob3 : C3 ob4 : C4

op( ) ob1 : C1

[x>0] fool(x) ob2 : C2

[x<0] bar(x)
doit(z)

doit(w)

more( )

95
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos

Diagrama de Secuencia
Diagram 1 Diagram 2
ob1 : C1 ob3 : C3 ob4 : C4
[x<0] bar(x)

bar(x)
doit(w)
Sequence Diagram:
Diagrams / Diagram 2
Sequence Diagram:
Diagrams / Diagram 1

96
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos

Diagrama de Colaboracin
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

97
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos

Mensajes
Un mensaje desencadena una accin en el
objeto destinatario

Un mensaje se enva si han sido enviados los


mensajes de una lista (sincronizacin):

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

98
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos

Mensajes
Un mensaje se enva de manera condicionada:

[x>y] 1: Mensaje
B

99
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos

Mensajes
Un mensaje que devuelve un resultado:

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

Prctica 8

100
www.dsic.upv.es/~uml
Clases y relaciones
entre clases

101
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Clasificacin
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

102
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Clases

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

103
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Clases: Notacin Grfica


Cada clase se representa en un rectngulo
con tres compartimientos:
nombre de la clase
atributos de la clase
operaciones de la clase

Motocicleta
color
cilindrada
velocidad mxima

arrancar()
acelerar()
frenar()
104
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Clases: Notacin Grfica


Otros ejemplos:

lista
pila

primero()
apilar()
ultimo()
desapilar()
aadir()
cardinalidad()
quitar()
cardinalidad()

105
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Clases: Encapsulacin
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

106
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Clases: Encapsulacin
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)
107
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Clases: Encapsulacin
Ejemplo:

108
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Relaciones entre Clases


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

109
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Asociacin
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

110
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Asociacin
Ejemplo:
marido

casado-con

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

*
Administra

empleado

111
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Asociacin
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

112
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Asociacin Cualificada
Aerolnea Viajero
* 0..1
nro_billete

Tablero Cuadro
fila 1 1
Ajedrez
columna

Reduce la multiplicidad del rol opuesto al considerar el valor


del cualificador

113
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Agregacin
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

114
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Ejemplos
Window
scrollbar[2] : Slider
title : Header
body : Panel

Window

1 1
1

scrollbar
2 title 1 body 1
Slider Header Panel

115
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

... Ejemplos
Member-of * Committee
Person *

{ subset }
1 Chair-of *
Represents an
incorporated entity.

worker Person employee employer Company


0..1
* *
0..1

boss

{Person.employer =
Person.boss.employer}

116
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

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

Persona
*
*
Cuenta
or Asociacin excluyente
* Empresa
1

Usuario est-autorizado-en Estacin


* *

Autorizacin
Clase de asociacin prioridad
privilegios

camb_privil() 117
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Clases y Objetos
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

118
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Generalizacin
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

119
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
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

120
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Vehculo

Veihculo Terrestre Vehculo Areo

Coche Camin Avin Helicptero

121
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
La especializacin es una tcnica muy eficaz para la
extensin y reutilizacin

Coche

Funcionando Estropeado

Restricciones predefinidas en UML:


disjunta - no disjunta
total (completa) - parcial (incompleta)
122
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
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

123
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Particionamiento del espacio de objetos =>
Clasificacin Esttica

Particionamiento del espacio de estados de


los objetos => Clasificacin Dinmica

En ambos casos se recomienda considerar


generalizaciones/especializaciones disjuntas

124
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Un ejemplo de Clasificacin Esttica:

Vehculo Areo

{ esttica }

Avin Helicptero

125
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Un ejemplo de Clasificacin Dinmica:

Coche

{ dinmica }

Funcionando Estropeado

126
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Extensin: Posibles instancias de una clase

Intensin: Propiedades definidas en una


clase
A

int(A) int(B)

ext(B) ext(A)
B

127
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Clasificacin Esttica

C0

ext(C0) = ext(Ci) completa


{ static }
ext(Ci) ext(Cj) = disjunta

C1 Cn

128
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Clasificacin Dinmica

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

129
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Ejemplo: varias especializaciones a partir de la
misma clase padre, usando discriminadores:

Comercial Militar

uso

Vehculo Areo

estructura

Avin Helicptero
130
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Clasificacin Mltiple (herencia mltiple)

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

131
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Herencia Mltiple
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

132
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Principio de Sustitucin
El Principio de Sustitucin de Liskow 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.

133
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Principio de Sustitucin
Dado que los programadores pueden introducir
cdigo en las subclases redefiniendo las
operaciones, es posible introducir involuntaria-
mente incoherencias que violen el principio de
sustitucin

El polimorfismo que veremos a continuacin no


debera implementarse sin este principio

134
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Polimorfismo
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

135
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Polimorfismo
Ejemplo: todo animal duerme, pero cada
clase lo hace de forma distinta

Animal
dormir()
?
dormir

?
Len Oso Tigre

136
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Polimorfismo
Animal Dormir()
{
dormir()
}

Len Oso Tigre


dormir() dormir() dormir()

Dormir() Dormir() Dormir()


{ { {
sobre el vientre sobrela espalda en un rbol
} } }

137
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases

Polimorfismo
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

Prctica 9-12

138
www.dsic.upv.es/~uml
Comportamiento de objetos

139
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Diagrama de Estados
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)

140
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Diagrama de Estados
Cada objeto est en un estado en cierto instante
El estado est caracterizado parcialmente por los
valores algunos de los atributos del objeto
El estado en el que se encuentra un objeto
determina su comportamiento
Cada objeto sigue el comportamiento descrito en
el D. de Estados asociado a su clase
Los D. De Estados y escenarios son complementarios

141
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Diagrama de Estados
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

142
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Diagrama de Estados
Estados y Transiciones

Evento [condicin] / Accin

A B

Tanto el evento como la accin se


consideran instantneos

143
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Diagrama de Estados
Ejemplo de un Diagrama de Estados para la
clase persona:
contratar
en el paro en activo

perder empleo
jubilarse
jubilarse

jubilado

144
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Acciones
Podemos especificar la solicitud de un
servicio a otro objeto como consecuencia de
la transicin:

Evento [condicin] / OtroObjeto.Operacin

145
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Acciones
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

146
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
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

147
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
Ejemplo:

e1
A B

e2
e2

148
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
Quedara como:

e1
Aa b
B

e2

149
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
Las transiciones de entrada deben ir hacia
subestados especficos:

e1
Aa Bb

e2

e0

150
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
Es preferible tener estados iniciales de
entrada a un nivel de manera que desde los
niveles superiores no se sepa a qu
subestado se entra:

e1
Aa b
B

e2 C
e0

151
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
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

152
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
Ejemplo:

e1
e1

153
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
lift receiver
/ get dial
tone

Active

Timeout

do/ play message

after (15 sec.) dial digit( n )[ incomplete ]


after (15 sec.)

DialTone dial digit(n) Dialing


do/ play dial tone
Idle
dial digit(n)[ invalid ]
dial digit( n )[ valid ]
Pinned Invalid / connect
caller hangs up
/ disconnect
do/ play message

callee Connecting
callee
hang hangs
s up up
busy
Busy connected
do/ play busy tone
Talking Ringing
callee answers do/ play ringing tone
/ enable
speech

154
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Historia
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)

155
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Historia
Ejemplo:
A

d2
B

in
D x y
out
d1
C

H*
156
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Historia
Ejemplo:

Enjuague Lavado Secado

cerrar puerta abir puerta

Espera

157
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Destruccin del Objeto


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

158
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Destruccin de Objeto
Ejemplo:

crash
En vuelo

despegar aterrizar

Crear(matricula)
En tierra

159
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Transiciones temporizadas
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

160
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Transiciones temporizadas
Ejemplo: A

/ Abrir ranura

esperar dinero despus de


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

Depsito efectuado

161
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Diagrama de Actividad
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

162
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

Ejemplo (con swim lines)


Pasaj ero Vendedor Airline

Solicitar
pasaje
Verificar
existencia vuelo
Dar detalles
vuelo
Informar alternativas y
precios
Seleccionar
vuelo

Solicitar Reservar
pago plazas
Confirmar plaza
Pagar reservada
pasaje

Emitir
billete

163
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

... Ejemplos Customer Sales Stockroom

Request service Order


[placed]

Take order Order


[entered]

Play

Fill order

Order Deliver order Order


[delivered] [filled]

Collect order

164
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos

... Ejemplos

Calculate [cost < $50] Change customer's


total cost account

[cost >= $50] Get


authorization

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

166
www.dsic.upv.es/~uml
III. El Paradigma OO: Componentes

Diagrama de Componentes
Los diagramas de componentes describen los
elementos fsicos del sistema y sus relaciones

Muestran las opciones de realizacin


incluyendo cdigo fuente, binario y ejecutable

167
www.dsic.upv.es/~uml
III. El Paradigma OO: Componentes

...Diagrama de Componentes
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

168
www.dsic.upv.es/~uml
III. El Paradigma OO: Componentes

...Diagrama de Componentes

169
www.dsic.upv.es/~uml
Distribucin y despliegue de
Componentes

170
www.dsic.upv.es/~uml
III. El Paradigma OO: Distribucin y despliegue de componentes

Diagrama de Despliegue
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

171
www.dsic.upv.es/~uml
III. El Paradigma OO: Distribucin y despliegue de componentes

Diagrama de Despliegue
Los estereotipos permiten precisar la
naturaleza del equipo:
Dispositivos
Procesadores
Memoria

Los nodos se interconectan mediante


soportes bidireccionales que pueden a su vez
estereotiparse

172
www.dsic.upv.es/~uml
III. El Paradigma OO: Distribucin y despliegue de componentes

Diagrama de Despliegue
Ejemplo de conexin entre nodos:

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

<<RDSI>>
<<RDSI>>
Podemos distinguir tipos Control
de nodos y connexiones
por estereotipado

173
www.dsic.upv.es/~uml
III. El Paradigma OO: Distribucin y despliegue de componentes

Diagramas de Despliegue
Ejemplo:

174
www.dsic.upv.es/~uml
III. El Paradigma OO: Distribucin y despliegue de componentes

Diagramas de Despliegue
Ejemplo: Component Diagram: videoStoreServer

Component Diagram:
Component Diagram: <<Container>>
videoStoreApplication /
Client / Client VideoStoreApplication
VideoStoreApplication
Diagram
Component Diagram:
videoStoreServer /
<<brow ser>>
Client videoStoreServer OpenSourceBrowser Client

<<AppServer>>
videoStoreServer
<<Session>> <<Entity>>
ShoppingSession Catalog

DBServer

<<Entity>>
ShoppingCart

videoStoreApplication
Component Diagram:
DBServer / DBServer

DBServer
VideoStoreDB
175
www.dsic.upv.es/~uml
III. El Paradigma OO

Object Constraint Language


OCL

176
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL

Qu es OCL?
OCL es un lenguaje formal usado para
describir expresiones acerca de modelos UML

OCL es parte del estandar UML y fue


desarrollado en IBM
Las evaluacin de expresiones OCL no afecta
el estado del sistema en ejecucin

177
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL

Usos de OCL
Lenguaje de consulta
Especificacin de invariantes en clases y tipos
Especificacin de invariantes de tipo para Estereotipos
Describir pre- y post condiciones en Operaciones y
Mtodos
Describir Guardas
Especificar destinatarios para mensages y acciones
Especificar restricciones en Operaciones
Especificar reglas de derivacin para atributos

178
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL

Ejemplo

179
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL

Invariantes
El nmero de empleados debe ser mayor que 50

self.nmeroDeEmpleados > 50 (siendo el contexto Company)

context Compaa
inv: self. nmeroDeEmpleados > 50

context c:Compaa
inv: c.nmeroDeEmpleados > 50

context c:Compaa
inv suficientesEmpleados: c.nmeroDeEmpleados > 50

180
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL

Pre- Post condiciones


Sintaxis
context NombreTipo::NombreOperacin(Param1 : Tipo1, ... ):TipoRetorno
pre parametroOk: param1 > ...
post resultadoOk : result = ...

Ejemplo

context Persona::nmina(fecha : Date) : Integer


post: result = 5000

181
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL

Valores iniciales y derivados


Sintaxis
context NombreTipo::NombreAtributo: Tipo
init: - alguna expresin representando el valor inicial

context NombreTipo::NombreRolAsociacin: Tipo


init: - alguna expresin representando la regla de derivacin

Ejemplo

context Persona::nmina : Integer


init: padres.nmina->sum() * 1%
derive: if menorDeEdad then
padres.nmina->sum() * 1%
else
puesto.sueldo
endif
182
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL

Expresiones Let
Ejemplo

context Persona inv:


let ingresos : Integer = self.puesto.sueldo->sum() in
if estEnParo then
ingresos < 100
else
ingresos >= 100
endif

183
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL

Definiciones
Ejemplo

context Persona
def: ingresos : Integer = self.puesto.sueldo->sum()
def: apodo : String = Gallito rojo
def: tieneElTtulo(t : String) : Boolean = self.puesto->exists(ttulo = t)

184
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL

Navegacin
Ejemplos
context Compaa
inv: self.director.estEnparo = false
inv: self.empleado->notEmpty()

context Compaa
inv:self.director.edad > 40

context Persona
inv:self.empleador->size() < 3

context Persona
inv:self.empleador->isEmpty()

context Persona
inv:self.esposa->notEmpty() implies self.esposa.sexo = Sexo::mujer

185
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL

Navegacin
Ejemplo
a) Los casados tienen al menos 18 aos de edad

context Persona inv:


self.esposa->notEmpty() implies self.esposa.edad >= 18 and
self.esposo->notEmpty() implies self.esposo.edad >= 18

Una compaa tiene a lo ms 50 empleados

context Compana inv:


self.empleado->size() <= 50

186
www.dsic.upv.es/~uml
IV
Proceso de Desarrollo
de SW basado en UML

187
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

Qu es un Proceso de Desarrollo de SW?


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
188
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

Rational Unified Process (RUP)

Rational Unified Process Pruebas funcionales


1998 Pruebas de desempeo
Gestin de requisitos
Gestin de cambios y
configuracin
Ingeniera de Negocio
Rational Objectory Process Ingeniera de datos
1996-1997
Diseo de interfaces

Objectory Process UML


1987-1995

Enfoque Ericsson
189
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

Dos Dimensiones

190
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

Fases e Hitos (Milestones)

Inception Elaboration Construction Transition

Objetivos Arquitectura Capacidad Release


(Vision) Operacional del Producto
Inicial

tiempo

191
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

Elementos en RUP
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)

192
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

... Elementos en RUP


Workflow, Workflow Detail , Workers, Actividades y Artefactos
Ejemplo
Workflow: Requirements Workflow Detail:Analyse the Problem

Workers Artefactos
Actividades 193
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

... Elementos en RUP


Workers Testing professional workers
Analyst workers Test Designer
Business-Process Analyst Tester
Business Designer Manager workers
Business-Model Reviewer Change Control Manager
Requirements Reviewer Configuration Manager
System Analyst Deployment Manager
Use-Case Specifier Process Engineer
User-Interface Designer Project Manager
Developer workers Project Reviewer
Architect Other workers
Architecture Reviewer Any Worker
Capsule Designer Course Developer
Code Reviewer Graphic Artist
Database Designer Stakeholder
Design Reviewer System Administrator
Designer Technical Writer
Implementer Tool Specialist
www.dsic.upv.es/~uml
Integrator 194
IV. Proceso de Desarrollo de SW basado en UML

... Elementos en RUP


Workers, Actividades, Artefactos
Ejemplo: System Analyst Worker

195
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

... Elementos en RUP


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
Business Modeling Set Deployment Set
Requirements Set Project Management Set

Analysis & Design Set Configuration & Change Management Set

Implementation Set Environment Set

Test Set
196
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

... Elementos en RUP


Artefactos, Workers, Actividades
Ejemplo:Business Modeling Artifact Set

197
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

Caractersticas Esenciales de RUP

Proceso Dirigido por los Casos de Uso


Proceso Iterativo e Incremental
Proceso Centrado en la Arquitectura

198
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

Proceso dirigido por los Casos de Uso

Capturar, definir y
Requisitos
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

199
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

... Proceso dirigido por los Casos de Uso

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]
200
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

... Proceso dirigido por los Casos de Uso

201
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

Proceso Iterativo e Incremental


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

202
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

... Proceso Iterativo e Incremental


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

203
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

... Proceso Iterativo e Incremental


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)
204
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

Proceso Iterativo e Incremental

Enfoque
Secuencial

Enfoque
Iterativo e
Incremental

205
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

... Proceso Iterativo e Incremental


Grado de Finalizacin de Artefactos

206
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

Proceso Centrado en la Arquitectura


Arquitectura de un sistema 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
207
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

Fases, Release, Base Line, Generacin


ciclo de desarrollo ciclo de evolucin

release base line generacin


(producto al final de (release asociada (release final de
una iteracin) a un hito) un ciclo de desarrollo)
208
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

Esfuerzo y dedicacin por Fases en RUP

Inicio Elaboracin Construccin Transicin

Esfuerzo 5% 20 % 65 % 10%

Tiempo 10 % 50 % 10%
30 %
Dedicado

209
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML

Distribucin de Recursos por Fases en RUP

210
www.dsic.upv.es/~uml
V
Conclusiones

211
www.dsic.upv.es/~uml
V. Conclusiones

Claves en el Desarrollo de SI
Notacin
UML

Herramientas Proceso
p.e. Rational Rose p.e. Rational Unified Process
Poseidon Mtrica 3.0 o XP
212
www.dsic.upv.es/~uml
V. Conclusiones

Modelado de SI: Algunas Reflexiones


Cul es el propsito de nuestros modelos?
Documentar (a posteriori)
Comunicar ideas y estudiar alternativas
Tomar decisiones de anlisis/diseo que dirijan la implementacin
Generar parcial o totalmente una implementacin a partir de los
modelos
Pragmatismo, los modelos deben ser tiles. Principio
bsico: Sencillez y Elegancia
Gestin de modelos
Distintos nivel de abstraccin, expresados en diferentes modelos
Seguimiento de transformaciones durante el proceso (Traceability)
Sincronizacin de modelos
Dificultades para la introduccin de notaciones y
herramientas de modelado. La importancia del Proceso de
Desarrollo
213
www.dsic.upv.es/~uml
V. Conclusiones

Adaptabilidad al contexto del proyecto

214
www.dsic.upv.es/~uml
V. Conclusiones

Tendencias
UML: actualmente la notacin ms detallada, amplia y
consensuada para modelar software orientado a objetos
Dificultades actuales para derivar de forma directa una
implementacin a partir de los modelos UML
Entornos de programacin visual y el paradigma OO subyacente
Utilizacin de bases de datos relacionales
Arquitectura de 3 capas
Frameworks de persistencia para materializar y desmaterializar
objetos

Metodologas de desarrollo de software y el papel que


juega UML en ellas
Modelado gil
Modelado opcional y/o desechable (en Metodologas giles)
215
www.dsic.upv.es/~uml
V. Conclusiones

... Tendencias
Nuevas versiones de UML, uff!
Extensiones de UML (SysML, www.sysml.org)
Generacin automtica de cdigo a partir de modelos
Model-Driven Development (MDD), Model-Driven Architecture (MDA),
Compiladores de Modelos
Round-trip engineering. Convergencia entre herramientas CASE e
IDEs
Extendiendo UML mediante Profiles
(www.objecteering.com/products_uml_profile_builder.php)
Modelado y generacin de cdigo en dominios
especficos (ms all de UML)
Eclipse Modeling Framework (EMF,
download.eclipse.org/tools/emf/scripts/home.php)
Microsoft Tools for Domain Specific Languagues
Domain-Specific Modeling (DSM, www.dsmforum.org)
Meta CASE Tools (www.metacase.com)
216
www.dsic.upv.es/~uml
Diagramas en UML 2.0

217
www.dsic.upv.es/~uml
V. Conclusiones

Bibliografa Adicional
UML
www.omg.org/uml/
Meta-links www.cetus-links.org/oo_uml.html
Martin Fowler, autor de UML Destilled (UML Gota a Gota)
http://www.martinfowler.com/

Herramientas CASE
Herramientas basadas en UML
www.objectsbydesign.com/tools/umltools_byPrice.html
International Council in SE (INCOSE) www.incose.org/tools/
Otras
Revista IEEE Software, Conferencias: OOPSLA, ECOOP
Patrones http://www.cmcrossroads.com/bradapp/docs/patterns-intro.html,
Foro UML en yahoo: http://groups.yahoo.com/group/uml-forum/

218
www.dsic.upv.es/~uml

Você também pode gostar