Anda di halaman 1dari 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

www.dsic.upv.es/~uml

Contenido
I.

II.
III.

IV.
V.

Introduccin
Modelado de Software
UML
Breve Tour por UML
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)
Proceso de Desarrollo de SW basado en UML
Conclusiones

www.dsic.upv.es/~uml

I
Introduccin

www.dsic.upv.es/~uml

Introduccin: Modelado de
SW

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

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

www.dsic.upv.es/~uml

I. Introduccin: Modelado de SW

Construccin de un
rascacielos

www.dsic.upv.es/~uml

I. Introduccin: Modelado de SW

Claves en Desarrollo de SI
Notacin

Herramientas

www.dsic.upv.es/~uml

Proceso

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

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
del lenguaje de
implementacin

www.dsic.upv.es/~uml

Componentes
Reutilizados

Promover la Reutilizacin
10

Introduccin: UML

www.dsic.upv.es/~uml

11

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

www.dsic.upv.es/~uml

Orientado a Objetos
de Datos
de Componentes
de Flujos de Trabajo (Workflows)

12

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

www.dsic.upv.es/~uml

13

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

www.dsic.upv.es/~uml

14

I. Introduccin: UML

Historia de UML
UML 2.0

2005?
2003
2000
1999
1998
Nov 97

www.dsic.upv.es/~uml

UML 1.5
UML 1.4
UML 1.3

Revisiones
menores

UML 1.2
UML aprobado
por el OMG

15

I. Introduccin: UML

Participantes en UML 1.0

Rational Software

(Grady Booch, Jim Rumbaugh


y Ivar Jacobson)

Digital Equipment
Hewlett-Packard
i-Logix (David Harel)
IBM
ICON Computing
(Desmond DSouza)

Intellicorp and James


Martin & co. (James Odell)

www.dsic.upv.es/~uml

MCI Systemhouse
Microsoft
ObjecTime
Oracle Corp.
Platinium Technology
Sterling Software
Taskon
Texas Instruments
Unisys

16

I. Introduccin: UML

UML aglutina enfoques


OO
Rumbaugh
Booch

Jacobson

Odell

Meyer
Pre- and Post-conditions

Shlaer-Mellor
Object life cycles

UML
Harel

State Charts

Gamma et. al.


Frameworks, patterns,
notes

Embly
Singleton classes

Wirfs-Brock
Fusion

Responsabilities

Operation descriptions,
message numbering

www.dsic.upv.es/~uml

17

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

www.dsic.upv.es/~uml

18

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

www.dsic.upv.es/~uml

19

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.

www.dsic.upv.es/~uml

20

II
Breve Tour por UML

www.dsic.upv.es/~uml

21

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

www.dsic.upv.es/~uml

22

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

www.dsic.upv.es/~uml

23

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

www.dsic.upv.es/~uml

24

II. Breve Tour por UML

... Diagramas de UML


Los diagramas expresan grficamente partes de un modelo

Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Secuencia
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Colaboracin
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Estados

www.dsic.upv.es/~uml

Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Casos de Uso

State
State
Diagramas de
Diagrams
Diagrams
Clases

Modelos

Diagramas de
Actividad

State
State
Diagramas de
Diagrams
Diagrams
Objetos
State
State
Diagramas de
Diagrams
Diagrams
Componentes

Component
Component
Diagrams
Diagramas
Diagrams de

Distribucin

25

II. Breve Tour por UML

Organizacin de Modelos
4+1 vistas de Kruchten (1995)

Vista Lgica

Vista de
Realizacin

Vista de los
Casos de Uso
Vista de
Procesos

Vista de
Distribucin

Este enfoque sigue el browser de Rational Rose

www.dsic.upv.es/~uml

26

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)

www.dsic.upv.es/~uml

27

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

www.dsic.upv.es/~uml

28

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

www.dsic.upv.es/~uml

29

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

www.dsic.upv.es/~uml

30

II. Breve Tour por UML

...Paquetes en Rational Rose


Customers

Otra Clase

Customers

CheckingAccount

<<access>>

Banking

(f rom Banking)

Banking

CheckingAccount

www.dsic.upv.es/~uml

31

II. Breve Tour por UML

Paquetes en UML

Prctica 1

www.dsic.upv.es/~uml

32

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

www.dsic.upv.es/~uml

33

II. Breve Tour por UML

Ejemplos
Ejemplo:
Retirar dinero

Cliente

Consultar Extracto

Realizar transferencia
Prctica 2

www.dsic.upv.es/~uml

34

II. Breve Tour por UML

Diagrama de Secuencia

: Encargado

:WInPrstamos

:Socio

:Video

:Prstamo

prestar(video, socio)
verificar situacin socio
verificar situacin video
registrar prstamo
entregar recibo

www.dsic.upv.es/~uml

35

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

www.dsic.upv.es/~uml

36

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,
37
atributos y operaciones
www.dsic.upv.es/~uml

II. Breve Tour por UML

Ejemplos (Clase y Visibilidad)

Alumno
DNI : char[10]
nmero_exp : int
nombre : char[50]
alta()
poner_nota(asignatura : char *, ao : int, nota : float)
matricular(cursos : asignatura, ao : int)
listar_expediente()

www.dsic.upv.es/~uml

38

II. Breve Tour por UML

Ejemplos (Asociacin)

Departamento

dirige
0..1

www.dsic.upv.es/~uml

director

Profesor
1

39

II. Breve Tour por UML

Ejemplos (Clase
Asociacin)
Empresa

empleador

trabajadores

Empleado

1..*

Cargo
nombre
sueldo

superior
0..1

subordinado 1..*

www.dsic.upv.es/~uml

40

II. Breve Tour por UML

Ejemplos (Generalizacin)

Trabajador

{ disjunta, completa }

Directivo

www.dsic.upv.es/~uml

Administrativo

Obrero

41

II. Breve Tour por UML

Ejemplos
Motor
1..4

1
Avin

Vendedor de billetes

Piloto

1..2

Vuelo

Reserva

{ disjunta, completa }

1
Avin militar

Avin comercial

Lnea area

{ disjunta, completa }

Avin de carga

www.dsic.upv.es/~uml

Avin de pasajeros

Prcticas 4

42

II. Breve Tour por UML

Diagrama de Estados
alta

baja

sin prstamos

nmero_prstamos = 0

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 ]

www.dsic.upv.es/~uml

43

II. Breve Tour por UML

Diagrama de Actividad
Buscar Bebida

[ no hay caf ]

[ no zumo ]

[ hay caf ]
[ hay zumo ]
Poner caf
en filtro

Aadir agua
al depsito

Coger taza
Coger
zumo

Poner filtro
en mquina

Encender
mquina
/ cafetera.On
Caf en
preparacin
indicador de fin
Servir caf

www.dsic.upv.es/~uml

Beber

Prctica 5

44

II. Breve Tour por UML

Diagrama Componentes
Interfaz de Terminal

Gestin de Cuentas

www.dsic.upv.es/~uml

Rutinas de conexin

Control y Anlisis

Acceso a BD

45

II. Breve Tour por UML

Diagrama de Despliegue
Servidor Central

Control y Anlisis
Comment

Acceso a BD
Comment
Rutinas de Coneccion
Comment

Terminal de Consulta
Rutinas de Coneccion
Comment
Punto de Venta

Interfaz de Terminal
Comment

Rutinas de Coneccion
Comment

Gestin de Cuentas

Interfaz de Terminal

Comment

Comment

www.dsic.upv.es/~uml

46

II. Breve Tour por UML

Diagrama de Despliegue en
Rational

Control y Anlisis

Acceso a BD

Servidor Central
Component Diagram:
Components / Servidor
Central

Rutinas de conexin

Servidor Central

Punto de Venta

Punto de Venta

Terminal de
Consulta

Gestin de Cuentas

Terminal de Consulta

Component Diagram:
Components / Punto de
Venta

Component Diagram:
Components / Terminal
de Consulta

Rutinas de conexin

Rutinas de conexin

Interfaz de Terminal

Interfaz de Terminal

Prctica 6

www.dsic.upv.es/~uml

47

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

www.dsic.upv.es/~uml

48

III
El Paradigma
Orientado a Objeto

www.dsic.upv.es/~uml

49

III. El Paradigma OO

Por qu la Orientacin a
Objetos?

Proximidad de los conceptos de modelado


respecto de las entidades del mundo real

Modelado integrado de propiedades estticas y


dinmicas del mbito del problema

Mejora captura y validacin de requisitos


Acerca el espacio del problema y el espacio de la
solucin

Facilita construccin, mantenimiento y reutilizacin

www.dsic.upv.es/~uml

50

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

www.dsic.upv.es/~uml

51

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

www.dsic.upv.es/~uml

52

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

www.dsic.upv.es/~uml

53

Fundamentos de Modelado
OO

www.dsic.upv.es/~uml

54

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)

www.dsic.upv.es/~uml

55

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

www.dsic.upv.es/~uml

56

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

www.dsic.upv.es/~uml

57

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
Un coche
concreto
Azul
979 Kg
70 CV
...

www.dsic.upv.es/~uml

58

III. El Paradigma OO: Fundamentos de Modelado OO

Clases y Objetos

www.dsic.upv.es/~uml

59

III. El Paradigma OO: Fundamentos de Modelado OO

Comportamiento

Ejemplo de interaccin:
Un Objeto

1: Un mensaje

Operacin 1

Operacin 2

Otro Objeto

www.dsic.upv.es/~uml

60

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

www.dsic.upv.es/~uml

61

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

www.dsic.upv.es/~uml

62

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

www.dsic.upv.es/~uml

63

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

www.dsic.upv.es/~uml

64

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

www.dsic.upv.es/~uml

65

III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin

Ejemplo con objeto agente:


Servidor 1
2:
Un agente
1:
Un cliente

www.dsic.upv.es/~uml

3:
Servidor 2

66

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 4

Objeto 3
3: Mensaje D

www.dsic.upv.es/~uml

67

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)

www.dsic.upv.es/~uml

68

III. El Paradigma OO: Requisitos

Requisitos del software

www.dsic.upv.es/~uml

69

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

www.dsic.upv.es/~uml

70

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

www.dsic.upv.es/~uml

71

III. El Paradigma OO: Requisitos

Casos de Uso

Ejemplo:

Actor A

Caso de Uso A

Caso de Uso B

www.dsic.upv.es/~uml

Actor B

72

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

www.dsic.upv.es/~uml

73

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

www.dsic.upv.es/~uml

74

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones

UML define cuatro tipos de relacin en los


Diagramas de Casos de Uso:
Comunicacin

Actor

www.dsic.upv.es/~uml

Caso de Uso

75

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

www.dsic.upv.es/~uml

76

III. El Paradigma OO: Requisitos

Casos de Uso:
Relaciones

Ejemplo <<include>>:
Reintegro Cuenta Corriente

<<include>>

Verificar Operacin

Cliente

<<include>>

Reintegro Cuenta de Crdito

www.dsic.upv.es/~uml

77

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

www.dsic.upv.es/~uml

Caso de Uso Destino

78

III. El Paradigma OO: Requisitos

Casos de Uso:
Relaciones

Ejemplo <<extend>>:

Cliente

Solicitar Prstamo

[Tarjeta Caducada]
<<extend>>

Solicitar Nueva Tarjeta

www.dsic.upv.es/~uml

79

III. El Paradigma OO: Requisitos

Casos de Uso:
Relaciones

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

< <include> >

Cliente

Identificacin

Transferencia

< <extend>>

Transferencia en Internet

www.dsic.upv.es/~uml

80

III. El Paradigma OO: Requisitos

Casos de Uso:
Relaciones

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


Order Product

Supply Customer Data

<<include>>

<<include>>

Arrange Payment

<<include>>

the salesperson asks


for the catalog

1
Salesperson

www.dsic.upv.es/~uml

<<extend>>

*
Place Order

Request Catalog

81

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

www.dsic.upv.es/~uml

Caso de Uso Padre

82

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?

www.dsic.upv.es/~uml

83

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

www.dsic.upv.es/~uml

84

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
Normal

Paso

Postcondicin
Excepciones

Rendimiento

Accin

{El <actor> , El sistema} <accin realizada por el actor o sistema>, se realiza el


caso de uso
< caso de uso CU-x>

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 del caso de uso>


Paso

Accin

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}

Paso

Cota de tiempo

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>

www.dsic.upv.es/~uml

85

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.

www.dsic.upv.es/~uml

86

Interaccin entre objetos

www.dsic.upv.es/~uml

87

III. El Paradigma OO: Interaccin entre objeto

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

www.dsic.upv.es/~uml

88

III. El Paradigma OO: Interaccin entre objeto

Mensajes
Sintaxis para mensajes:
predecesor / guarda secuencia: retorno := msg(args)

www.dsic.upv.es/~uml

89

III. El Paradigma OO: Interaccin entre objeto

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)

www.dsic.upv.es/~uml

90

III. El Paradigma OO: Interaccin entre objeto

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

www.dsic.upv.es/~uml

91

III. El Paradigma OO: Interaccin entre objeto

Diagrama de Secuencia

www.dsic.upv.es/~uml

92

III. El Paradigma OO: Interaccin entre objeto

Diagrama de Secuencia
Caller

Exchange

Receiver

a: lift receiver
{b.receiveTime
- a.sendTime < 1 sec.}

b: dial tone

{c.receiveTime
-b.sendTime < 10 sec.}

c: dial digit

...
The call is routed
through the network

d: route

{d.receiveTime
-d.sendTime < 5 sec.}

ringing tone

phone rings
answer phone

At this point the


parties can talk

www.dsic.upv.es/~uml

stop tone

stop ringing

----< 1 sec
-----

93

III. El Paradigma OO: Interaccin entre objeto

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

www.dsic.upv.es/~uml

94

III. El Paradigma OO: Interaccin entre objeto

ob3 : C3
op( )

ob4 : C4

ob1 : C1
[x>0] fool(x)

ob2 : C2

[x<0] bar(x)

doit(z)
doit(w)

more( )

www.dsic.upv.es/~uml

95

III. El Paradigma OO: Interaccin entre objeto

Diagrama de Secuencia
Diagram 2

Diagram 1

ob3 : C3

ob1 : C1

ob4 : C4

[x<0] bar(x)

bar(x)
doit(w)

Sequence Diagram:
Diagrams / Diagram 2

Sequence Diagram:
Diagrams / Diagram 1

www.dsic.upv.es/~uml

96

III. El Paradigma OO: Interaccin entre objeto

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

www.dsic.upv.es/~uml

97

III. El Paradigma OO: Interaccin entre objeto

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

www.dsic.upv.es/~uml

98

III. El Paradigma OO: Interaccin entre objeto

Mensajes

Un mensaje se enva de manera


condicionada:
[x>y] 1: Mensaje

B
A

www.dsic.upv.es/~uml

99

III. El Paradigma OO: Interaccin entre objeto

Mensajes

Un mensaje que devuelve un resultado:

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

Prctica 8

www.dsic.upv.es/~uml

100

Clases y relaciones
entre clases

www.dsic.upv.es/~uml

101

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

102

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

103

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

104

III. El Paradigma OO: Clases y relaciones entre clase

Clases: Notacin Grfica

Otros ejemplos:

lista
primero()
ultimo()
aadir()
quitar()
cardinalidad()

www.dsic.upv.es/~uml

pila
apilar()
desapilar()
cardinalidad()

105

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

106

III. El Paradigma OO: Clases y relaciones entre clase

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)

www.dsic.upv.es/~uml

107

III. El Paradigma OO: Clases y relaciones entre clase

Clases: Encapsulacin

Ejemplo:
Reglas de visibilidad
Atributo pblico : Integer
Atributo protegido : Integer
Atributo privado : Integer
"Operacin pblica"()
"Operacin protegida"()
"Operacin privada"()

www.dsic.upv.es/~uml

108

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

109

III. El Paradigma OO: Clases y relaciones entre clase

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

Estudiante

Universidad
Una asociacin

www.dsic.upv.es/~uml

110

III. El Paradigma OO: Clases y relaciones entre clase

Asociacin

Ejemplo:
marido
casado-con
mujer

jefe
Administra

0..1
0..1

Persona
nombre
s.s.

emplea-a

Compaa
trabaja-para nombre
direccin
*

0..1

empleado

www.dsic.upv.es/~uml

111

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

112

III. El Paradigma OO: Clases y relaciones entre clase

Asociacin Cualificada
Aerolnea
nro_billete

Tablero
Ajedrez

fila
columna

0..1

Viajero

Cuadro

Reduce la multiplicidad del rol opuesto al considerar el


valor
del cualificador

www.dsic.upv.es/~uml

113

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

114

III. El Paradigma OO: Clases y relaciones entre clase

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

Window
1

scrollbar
Slider

www.dsic.upv.es/~uml

title 1
Header

body

Panel

115

III. El Paradigma OO: Clases y relaciones entre clase

... Ejemplos
Person

Member-of

* Committee

{ subset }
Chair-of

*
Represents an
incorporated entity.

worker

Person

employee

employer

Company

0..1

*
0..1

boss
{Person.employer =
Person.boss.employer}

www.dsic.upv.es/~uml

116

III. El Paradigma OO: Clases y relaciones entre clase

Ejemplos
Polgono

Agregacin

{ordenado}

*
Cuenta

Punto

contiene

3..*

Persona

Asociacin excluyente

or
Empresa

*
1

est-autorizado-en

Usuario
*

Clase de asociacin

www.dsic.upv.es/~uml

Estacin

*
Autorizacin
prioridad
privilegios
camb_privil()

117

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

118

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

119

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

120

III. El Paradigma OO: Clases y relaciones entre clase

... Generalizacin
Vehculo

Veihculo Terrestre

Coche

www.dsic.upv.es/~uml

Camin

Vehculo Areo

Avin

Helicptero

121

III. El Paradigma OO: Clases y relaciones entre clase

... Generalizacin

La especializacin es una tcnica muy eficaz para la


extensin y reutilizacin
Coche

Funcionando

Restricciones predefinidas en UML:

Estropeado

disjunta - no disjunta
total (completa) - parcial (incompleta)

www.dsic.upv.es/~uml

122

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

123

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

124

III. El Paradigma OO: Clases y relaciones entre clase

... Generalizacin

Un ejemplo de Clasificacin Esttica:


Vehculo Areo
{ esttica }

Avin

www.dsic.upv.es/~uml

Helicptero

125

III. El Paradigma OO: Clases y relaciones entre clase

... Generalizacin

Un ejemplo de Clasificacin Dinmica:


Coche
{ dinmica }

Funcionando

www.dsic.upv.es/~uml

Estropeado

126

III. El Paradigma OO: Clases y relaciones entre clase

... Generalizacin

Extensin: Posibles instancias de una


clase

Intensin: Propiedades definidas en una


clase
A
int(A) int(B)
ext(B) ext(A)
B

www.dsic.upv.es/~uml

127

III. El Paradigma OO: Clases y relaciones entre clase

... Generalizacin

Clasificacin Esttica
C0

ext(C0) = ext(Ci)
{ static }

completa
ext(Ci) ext(Cj) =

C1

www.dsic.upv.es/~uml

Cn

disjunta

128

III. El Paradigma OO: Clases y relaciones entre clase

... Generalizacin

Clasificacin Dinmica
C0

ext(C0) = ext(Ci)

{ dinmica }

completa

extt(Ci) extt(Cj) = disjunta en t


extt1(Ci) extt2(Cj)
posiblemente

C1

www.dsic.upv.es/~uml

Cn

no disjunta en
diferentes
instantes
129

III. El Paradigma OO: Clases y relaciones entre clase

... Generalizacin

Ejemplo: varias especializaciones a partir


de la misma clase padre, usando
discriminadores:
Comercial

Militar

uso
Vehculo Areo

estructura

Avin

www.dsic.upv.es/~uml

Helicptero
130

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

131

III. El Paradigma OO: Clases y relaciones entre clase

Herencia Mltiple

Uso disciplinado de la herencia mltiple:


clasificaciones disjuntas con clases padre en
hojas de jerarquas alternativas
Bpedo

Cuadrpedo

nro patas

nro patas
Herbvoro

Con Pelos
comida

cubertura
Con Plumas

cobertura

Animal
comida

cobertura

Carnvoro

Con Escamas

Conejo

www.dsic.upv.es/~uml

132

III. El Paradigma OO: Clases y relaciones entre clase

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.

www.dsic.upv.es/~uml

133

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

134

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

135

III. El Paradigma OO: Clases y relaciones entre clase

Polimorfismo

Ejemplo: todo animal duerme, pero


cada clase lo hace de forma distinta
Animal
dormir()

?
dormir

?
Len

www.dsic.upv.es/~uml

Oso

Tigre

136

III. El Paradigma OO: Clases y relaciones entre clase

Polimorfismo
Animal
dormir()

Dormir()
{
}

Len

Oso

Tigre

dormir()

dormir()

dormir()

Dormir()
{
sobre el vientre
}

www.dsic.upv.es/~uml

Dormir()
{
sobrela espalda
}

Dormir()
{
en un rbol
}
137

III. El Paradigma OO: Clases y relaciones entre clase

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

www.dsic.upv.es/~uml

138

Comportamiento de
objetos

www.dsic.upv.es/~uml

139

III. El Paradigma OO: Comportamiento de objeto

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)

www.dsic.upv.es/~uml

140

III. El Paradigma OO: Comportamiento de objeto

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

www.dsic.upv.es/~uml

141

III. El Paradigma OO: Comportamiento de objeto

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

www.dsic.upv.es/~uml

142

III. El Paradigma OO: Comportamiento de objeto

Diagrama de Estados

Estados y Transiciones
Evento [condicin] / Accin

B
Tanto el evento como la accin se
consideran instantneos

www.dsic.upv.es/~uml

143

III. El Paradigma OO: Comportamiento de objeto

Diagrama de Estados

Ejemplo de un Diagrama de Estados


para la clase persona:
contratar
en el paro

en activo
perder empleo

jubilarse
jubilarse
jubilado

www.dsic.upv.es/~uml

144

III. El Paradigma OO: Comportamiento de objeto

Acciones

Podemos especificar la solicitud de un


servicio a otro objeto como
consecuencia de la transicin:
A

Evento [condicin] / OtroObjeto.Operacin

www.dsic.upv.es/~uml

145

III. El Paradigma OO: Comportamiento de objeto

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

www.dsic.upv.es/~uml

146

III. El Paradigma OO: Comportamiento de objeto

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

www.dsic.upv.es/~uml

147

III. El Paradigma OO: Comportamiento de objeto

Generalizacin de Estados

Ejemplo:
e1

e2
e2
C

www.dsic.upv.es/~uml

148

III. El Paradigma OO: Comportamiento de objeto

Generalizacin de Estados

Quedara como:

Aa

e1

b
B

e2

www.dsic.upv.es/~uml

149

III. El Paradigma OO: Comportamiento de objeto

Generalizacin de
Estados

Las transiciones de entrada deben ir


hacia subestados especficos:
e1
Aa

Bb
e2

e0

www.dsic.upv.es/~uml

150

III. El Paradigma OO: Comportamiento de objeto

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

www.dsic.upv.es/~uml

C
e0

151

III. El Paradigma OO: Comportamiento de objeto

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

www.dsic.upv.es/~uml

152

III. El Paradigma OO: Comportamiento de objeto

Generalizacin de
Estados

Ejemplo:

e1

www.dsic.upv.es/~uml

e1

153

III. El Paradigma OO: Comportamiento de objeto

Generalizacin de
Estados
lift receiver
/ get dial
tone

Active
Timeout
do/ play message

after (15 sec.)


DialTone
Idle

dial digit( n )[ incomplete ]


after (15 sec.)
dial digit(n)

Dialing

do/ play dial tone

dial digit(n)[ invalid ]


Pinned

caller hangs up
/ disconnect

dial digit( n )[ valid ]


/ connect

Invalid
do/ play message

callee
hang
s up

Connecting

callee
hangs
up
Busy

busy

connected

do/ play busy tone

Talking

Ringing
callee answers
/ enable
speech

www.dsic.upv.es/~uml

do/ play ringing tone

154

III. El Paradigma OO: Comportamiento de objeto

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)

www.dsic.upv.es/~uml

155

III. El Paradigma OO: Comportamiento de objeto

Historia

Ejemplo:
A

d2
B
in
D

out
d1
C

H*

www.dsic.upv.es/~uml

156

III. El Paradigma OO: Comportamiento de objeto

Historia

Ejemplo:
Enjuague

Lavado

Secado

abir puerta

cerrar puerta
Espera

www.dsic.upv.es/~uml

157

III. El Paradigma OO: Comportamiento de objeto

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

www.dsic.upv.es/~uml

158

III. El Paradigma OO: Comportamiento de objeto

Destruccin de Objeto

Ejemplo:
En vuelo

despegar
Crear(matricula)

www.dsic.upv.es/~uml

crash

aterrizar

En tierra

159

III. El Paradigma OO: Comportamiento de objeto

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

www.dsic.upv.es/~uml

160

III. El Paradigma OO: Comportamiento de objeto

Transiciones
temporizadas

Ejemplo:

A
/ Abrir ranura
esperar dinero
entry: Mostrar mensaje
exit: cerrar ranura

despus de
30 segundos

anular
transaccin

Depsito efectuado

www.dsic.upv.es/~uml

161

III. El Paradigma OO: Comportamiento de objeto

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

www.dsic.upv.es/~uml

162

III. El Paradigma OO: Comportamiento de objeto

Ejemplo (con swim lines)


Pasaj ero

Solicitar
pasaje

Vende dor

Verificar
existencia vuelo

Airline

Dar detalles
vuelo

Informar alternativas y
precios
Seleccionar
vuelo

Solicitar
pago

Reservar
plazas
Confirmar plaza
reservada

Pagar
pasaje

Emitir
billete

www.dsic.upv.es/~uml

163

III. El Paradigma OO: Comportamiento de objeto

... Ejemplos
Customer

Request service

Sales

Stockroom

Order
[placed]

Take order

Order
[entered]

Play
Fill order

Order
[delivered]

Deliver order

Order
[filled]

Collect order

www.dsic.upv.es/~uml

164

III. El Paradigma OO: Comportamiento de objeto

... Ejemplos
Calculate
total cost

[cost < $50]

[cost >= $50]

www.dsic.upv.es/~uml

Change customer's
account

Get
authorization

165

Componentes

www.dsic.upv.es/~uml

166

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

www.dsic.upv.es/~uml

167

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

www.dsic.upv.es/~uml

168

III. El Paradigma OO: Componentes

...Diagrama de
Componentes

www.dsic.upv.es/~uml

169

Distribucin y despliegue
de Componentes

www.dsic.upv.es/~uml

170

III. El Paradigma OO: Distribucin y despliegue de component

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

www.dsic.upv.es/~uml

171

III. El Paradigma OO: Distribucin y despliegue de component

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

www.dsic.upv.es/~uml

172

III. El Paradigma OO: Distribucin y despliegue de component

Diagrama de
Despliegue

Ejemplo de conexin entre nodos:


<<Cliente>>
Terminal Punto
de Venta

<<Servidor>>
<<TCP/IP>>

Base de
Datos

<<RDSI>>

Podemos distinguir
tipos de nodos y
connexiones por
estereotipado

www.dsic.upv.es/~uml

Control

<<RDSI>>

173

III. El Paradigma OO: Distribucin y despliegue de component

Diagramas de
Despliegue

Ejemplo:

www.dsic.upv.es/~uml

174

III. El Paradigma OO: Distribucin y despliegue de component

Diagramas de
Despliegue

Ejemplo:

Component Diagram: videoStoreServer

Client

Component Diagram:
videoStoreApplication /
VideoStoreApplication
Diagram

<<Container>>

Component Diagram:
Client / Client

VideoStoreApplication

Component Diagram:
videoStoreServer /
videoStoreServer

<<browser>>

OpenSourceBrowser

Client

<<AppServer>>

videoStoreServer
<<Session>>

<<Entity>>

ShoppingSession

Catalog

DBServer
<<Entity>>

ShoppingCart

videoStoreApplication
Component Diagram:
DBServer / DBServer

DBServer
VideoStoreDB

www.dsic.upv.es/~uml

175

III. El Paradigma OO

Object Constraint
Language
OCL

www.dsic.upv.es/~uml

176

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

www.dsic.upv.es/~uml

177

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

www.dsic.upv.es/~uml

178

III. El Paradigma OO: OCL

Ejemplo

www.dsic.upv.es/~uml

179

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

www.dsic.upv.es/~uml

180

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

www.dsic.upv.es/~uml

181

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

www.dsic.upv.es/~uml

182

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

www.dsic.upv.es/~uml

183

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)

www.dsic.upv.es/~uml

184

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

www.dsic.upv.es/~uml

185

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

www.dsic.upv.es/~uml

186

IV
Proceso de Desarrollo
de SW basado en UML

www.dsic.upv.es/~uml

187

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
o modificados

Proceso de Desarrollo
de Software

Sistema nuevo
o modificado

No existe un proceso de software universal. Las


caractersticas de cada proyecto (equipo de
desarrollo, recursos, etc.) exigen que el proceso
sea configurable

www.dsic.upv.es/~uml

188

IV. Proceso de Desarrollo de SW basado en UML

Rational Unified Process (RUP)


Rational Unified Process
1998

RationalObjectory Process
1996-1997

Objectory Process

Pruebas funcionales
Pruebas de desempe
Gestin de requisitos
Gestin de cambios y
configuracin
Ingeniera de Negocio
Ingeniera de datos
Diseo de interfaces

UML

1987-1995

Enfoque Ericsson

www.dsic.upv.es/~uml

189

IV. Proceso de Desarrollo de SW basado en UML

Dos Dimensiones

www.dsic.upv.es/~uml

190

IV. Proceso de Desarrollo de SW basado en UML

Fases e Hitos (Milestones)

Inception Elaboration

Objetivos
(Vision)

Construction

Arquitectura

Transition

Capacidad
Operacional
Inicial

Release
del Producto

tiempo

www.dsic.upv.es/~uml

191

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)

www.dsic.upv.es/~uml

192

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 Proble

Workers

www.dsic.upv.es/~uml

Artefactos
Actividades

193

IV. Proceso de Desarrollo de SW basado en UML

... Elementos en RUP


Workers
Analyst workers

Business-Process Analyst
Business Designer
Business-Model Reviewer
Requirements Reviewer
System Analyst
Use-Case Specifier
User-Interface Designer

Developer workers

www.dsic.upv.es/~uml

Architect
Architecture Reviewer
Capsule Designer
Code Reviewer
Database Designer
Design Reviewer
Designer
Implementer
Integrator

Testing professional workers


Test Designer
Tester

Manager workers

Change Control Manager


Configuration Manager
Deployment Manager
Process Engineer
Project Manager
Project Reviewer

Other workers

Any Worker
Course Developer
Graphic Artist
Stakeholder
System Administrator
Technical Writer
Tool Specialist

194

IV. Proceso de Desarrollo de SW basado en UML

... Elementos en RUP


Workers, Actividades, Artefactos
Ejemplo: System Analyst Worker

www.dsic.upv.es/~uml

195

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

Business Modeling
Deployment Set
Conjuntos
de Artefactos
Set

Project Management Set

Requirements Set

Configuration & Change


Management Set
Analysis & Design Set
Environment Set
Implementation Set

Test Set

www.dsic.upv.es/~uml

196

IV. Proceso de Desarrollo de SW basado en UML

... Elementos en RUP


Artefactos, Workers, Actividades
Ejemplo:Business Modeling Artifact Set

www.dsic.upv.es/~uml

197

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

www.dsic.upv.es/~uml

198

IV. Proceso de Desarrollo de SW basado en UML

Proceso dirigido por los Casos de Uso


Capturar, definir y
validar los casos de
uso

Requisitos
Anlisis & Diseo
Implementacin
Pruebas

www.dsic.upv.es/~uml

Casos de Uso
integran el
trabajo

Realizar los
casos de uso
Verificar que se
satisfacen los
casos de uso

199

IV. Proceso de Desarrollo de SW basado en UML

... Proceso dirigido por los Casos de Us


trace
Caso de Uso

trace

Realizacin de Anlisis Realizacin de Diseo

trace

trace

Pruebas
Unitarias
Pruebas Funcionales

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 Us

www.dsic.upv.es/~uml

201

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

www.dsic.upv.es/~uml

202

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

n veces

www.dsic.upv.es/~uml

Codific.
Pruebas e
Integracin
203

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)

www.dsic.upv.es/~uml

204

IV. Proceso de Desarrollo de SW basado en UML

Proceso Iterativo e Incremental


Enfoque
Secuencial

Enfoque
Iterativo e
Incremental

www.dsic.upv.es/~uml

205

IV. Proceso de Desarrollo de SW basado en UML

... Proceso Iterativo e


Incremental
Grado de Finalizacin de Artefactos

www.dsic.upv.es/~uml

206

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
Inception
Elaboration
Transition
prototipo
evolutivo Construction

Architecture

www.dsic.upv.es/~uml

207

IV. Proceso de Desarrollo de SW basado en UML

Fases, Release, Base Line,


Generacin
ciclo de desarrollo

release
(producto al final de
una iteracin)

www.dsic.upv.es/~uml

ciclo de evolucin

base line

generacin

(release asociada
a un hito)

(release final de
un ciclo de desarrollo)
208

IV. Proceso de Desarrollo de SW basado en UML

Esfuerzo y dedicacin por Fases en


RUP

Inicio

Elaboraci
n

Construcci
n

Transici
n

Esfuerzo

5%

20 %

65 %

10%

Tiempo
Dedicado

10 %

30 %

50 %

10%

www.dsic.upv.es/~uml

209

IV. Proceso de Desarrollo de SW basado en UML

Distribucin de Recursos por Fases en


RUP

www.dsic.upv.es/~uml

210

V
Conclusiones

www.dsic.upv.es/~uml

211

V. Conclusiones

Claves en el Desarrollo de SI
Notacin
UML

Herramientas
p.e. Rational Rose
Poseidon

www.dsic.upv.es/~uml

Proceso
p.e. Rational Unified Process
Mtrica 3.0 o XP
212

V. Conclusiones

Modelado de SI: Algunas


Reflexiones

Cul es el propsito de nuestros modelos?

Pragmatismo, los modelos deben ser tiles. Principio


bsico: Sencillez y Elegancia

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

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

www.dsic.upv.es/~uml

213

V. Conclusiones

Adaptabilidad al contexto del


proyecto

www.dsic.upv.es/~uml

214

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

Metodologas de desarrollo de software y el papel que


juega UML en ellas

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

Modelado gil
Modelado opcional y/o desechable (en Metodologas giles)

www.dsic.upv.es/~uml

215

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)

www.dsic.upv.es/~uml

216

Diagramas en UML 2.0

www.dsic.upv.es/~uml

217

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/

www.dsic.upv.es/~uml

218

Anda mungkin juga menyukai