Sunteți pe pagina 1din 213

Desarrollo de Software

Orientado a Objeto usando


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

Diagrama de Casos de Uso

Diagramas de Interacciones

Diagrama de Clases

Diagrama de Estados / Diagramas de Actividad

Diagrama de Componentes

Diagrama de Despliegue
Proceso de Desarrollo de SW basado en UML
Conclusiones

Introduccin
Modelado de SW

I. Introduccin: Modelado de SW

Construccin de una casa para


fido

Puede hacerlo una sola persona


Requiere:
Modelado mnimo
Proceso simple
Herramientas simples

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
5

I. Introduccin: Modelado de SI

Construccin de un
rascacielos

I. Introduccin: Modelado de SW

Claves en Desarrollo de SI
Notacin

Herramientas

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
8

I. Introduccin: Modelado de SW

MV para manejar la
complejidad

I. Introduccin: Modelado de SW

MV para definir la Arquitectura


del SW
Interfaz de Usuario
(Visual Basic,
Java, ..)

Lgica del Negocio


(C++, Java, ..)

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

Modelar el sistema independientemente


del lenguaje de implementacin

10

I. Introduccin: Modelado de SW

MV promueve la
reutilizacin
Mltiples Sistemas

Componentes
Reutilizados

11

Introduccin: UML

12

I. Introduccin: UML

Qu es UML?

UML = Unified Modeling Language

Un lenguaje de propsito general para el


modelado orientado a objetos

Documento OMG Unified Modeling Language


Specification

UML combina notaciones provenientes desde:

Modelado
Modelado
Modelado
Modelado

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

13

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

14

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

15

I. Introduccin: UML

Historia de UML
UML 2.0

2001

UML 1.4

2000
1999
1998
Nov 97

UML 1.3
UML aprobado por el OMG

UML 1.2

Revisiones
menores

16

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)

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

17

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
18

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

19

I. Introduccin: UML

Inconvenientes en UML

Definicin del proceso de desarrollo


usando UML. UML no es una metodologa

Falta integracin con respecto de otras


tcnicas tales como patrones de diseo,
interfaces de usuario, documentacin, etc.

Ejemplos aislados

Monopolio de conceptos, tcnicas y


mtodos en torno a UML
20

I. Introduccin: UML

Perspectivas de UML

UML ser el lenguaje de modelado orientado a


objetos estndar predominante los prximos
aos
Razones:
Participacin de metodlogos influyentes
Participacin de importantes empresas
Aceptacin del OMG como notacin estndar

Evidencias:
Herramientas que proveen la notacin UML
Edicin de libros
Congresos, cursos, camisetas, etc.

21

Breve Tour por UML

22

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

23

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

24

II. Breve Tour por UML

Diagramas de UML
Diagrama de Casos de Uso
Diagrama de Clases
Diagrama de Objetos
Diagramas de Comportamiento
Diagrama de Estados
Diagrama de Actividad
Diagramas de Interaccin
Diagrama de Secuencia
Diagrama de Colaboracin
Diagramas de implementacin
Diagrama de Componentes
Diagrama de Despliegue
25

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

Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Casos de Uso

Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Colaboracin
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Estados

State
State
Diagramas de
Diagrams
Diagrams
Clases

Modelo

Diagramas de
Actividad

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

Component
Component
Diagrams
Diagramas
Diagrams de

Distribucin

26

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


27

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)

28

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

29

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
30

II. Breve Tour por UML

Paquetes en UML

Todas las clases no son


necesariamente visibles
desde el exterior del paquete,
es decir, un paquete
encapsula a la vez que agrupa

El operador :: permite
designar una clase definida
en un contexto distinto del
actual

Prctica 1

31

II. Breve Tour por UML

Paquetes en UML

Prctica 1

32

II. Breve Tour por UML

Diagrama de Casos de Uso


Casos de Uso es una tcnica para
capturar informacin de cmo un sistema
o negocio trabaja, o de cmo se desea
que trabaje
No pertenece estrictamente al enfoque
orientado a objeto, es una tcnica para
captura de requisitos

33

II. Breve Tour por UML

Ejemplos

Supervisor

Administrativo

Verificar Situacin del Cliente

Preparar Catlogo

Sistema
Inventario

Tipos de Venta

34

II. Breve Tour por UML

Ejemplos
En el paquete tipos de venta:

Venta Normal

Vendedor

Venta en Rebajas

Venta en Ofertas

35

II. Breve Tour por UML

Ejemplos

Cliente

Solicitar Prstamo

[Tarjeta Caducada]
<<extend>>

Solicitar Nueva Tarjeta

36

II. Breve Tour por UML

Ejemplos

Reintegro Cuenta Corriente

<<include>>

Verificar Operacin

Cliente

<<include>>

Reintegro Cuenta de Crdito


Prctica 2

37

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

38

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

39

II. Breve Tour por UML

Diagrama de Clases
El Diagrama de Clases es el diagrama principal
para el anlisis y diseo
Un diagrama de clases presenta las clases del
sistema con sus relaciones estructurales y de
herencia
La definicin de clase incluye definiciones para
atributos y operaciones
El modelo de casos de uso aporta informacin
para establecer las clases, objetos, atributos y
operaciones
40

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

41

II. Breve Tour por UML

Ejemplos (Asociacin)

Departamento

dirige
0..1

director

Profesor
1

42

II. Breve Tour por UML

Ejemplos (Clase Asociacin)

Empresa

empleador

trabajadores

Empleado

1..*

Cargo
nombre
sueldo

superior
0..1

subordinado 1..*

43

II. Breve Tour por UML

Ejemplos (Generalizacin)

Trabajador

{ disjunta, completa }

Directivo

Administrativo

Obrero

44

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

Avin de pasajeros

Prcticas 4-8

45

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 ]

46

II. Breve Tour por UML

Diagrama de Actividad
Buscar Bebida

[no hay caf]

[hay caf
Poner caf en filtro

[no zumo]
[hay zumo]

Aadir agua al depsito Coger taza


Coger zumo

Poner filtro en mquina

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

Beber
47

II. Breve Tour por UML

Otro Ejemplo (con swim lines)


Pasajero

Solicitar pasaje

Vendedor

Airline

Verificar
existencia vuelo
Dar detalles vuelo
Informar alternativas
y precios

Seleccionar vuelo

Solicitar pago Reservar plazas


Confirmar
plaza reservada

Pagar pasaje
Emitir billete

Prctica 9

48

II. Breve Tour por UML

Diagrama Componentes
Control y Anlisis
Interfaz de Terminal

Comment

Comment

Gestin de Cuentas
Comment

Rutinas de Coneccion
Comment

Acceso a BD
Comment

49

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

Prctica 10

50

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

51

El Paradigma
Orientado a Objeto
usando UML

52

III. El Paradigma Orientado a Objeto

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

53

III. El Paradigma Orientado a Objeto

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

54

III. El Paradigma Orientado a Objeto

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
55

III. El Paradigma Orientado a Objeto

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
56

III. El Paradigma Orientado a Objeto

Reflexiones respecto de Situacin Actual


de Desarrollo de SI
Anlisis
Enfoque
Estructurado

DFDs
E-R

Diagramas de Casos de Uso


Diagramas de Actividad
Diagramas de Secuencia
Diagramas de Colaboracin d

Enfoque OO

Diseo
DEs
Modelo
Relacional
Modelo
Relacional !!

Diagrama de Clases
Diagrama de Estados
Diagramas de Actividad

Implementacin
Entornos de
Programacin
Visual

Bases de Datos
(Objeto-)
Relacionales

57

Fundamentos de Modelado
OO

58

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)

59

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos

El Modelado de Objetos permite


representar el ciclo de vida de los objetos
a travs de sus interacciones
En UML, un objeto se representa por un
rectngulo con un nombre subrayado
Otro
Objeto
ms

Un Objeto

Otro
Objeto
60

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

61

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

III. El Paradigma OO: Fundamentos de Modelado OO

Clases y Objetos

63

III. El Paradigma OO: Fundamentos de Modelado OO

Identidad

Oid (Object Identifier)


Cada objeto posee un oid. El oid establece la
identidad del objeto y tiene las siguientes
caractersticas:
Constituye un identificador nico y global para cada
objeto dentro del sistema
Es determinado en el momento de la creacin del
objeto
Es independiente de la localizacin fsica del objeto, es
decir, provee completa independencia de localizacin
64

III. El Paradigma OO: Fundamentos de Modelado OO

Identidad
Es independiente de las propiedades del objeto, lo
cual implica independencia de valor y de estructura
No cambia durante toda la vida del objeto. Adems,
un oid no se reutiliza aunque el objeto deje de existir
No se tiene ningn control sobre los oids y su
manipulacin resulta transparente

Sin embargo, es preciso contar con algn medio


para hacer referencia a un objeto utilizando
referencias del dominio (valores de atributos)
65

III. El Paradigma OO: Fundamentos de Modelado OO

Estado

El estado evoluciona con el tiempo

Algunos atributos pueden ser constantes

El comportamiento agrupa las competencias


de un objeto y describe las acciones y
reacciones de ese objeto

Las operaciones de un objeto son


consecuencia de un estmulo externo
representado como mensaje enviado desde
otro objeto
66

III. El Paradigma OO: Fundamentos de Modelado OO

Comportamiento

Ejemplo de interaccin:

67

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
68

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
69

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

70

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

71

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

72

III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin

Ejemplo en el que un agente hace de


aislante:
Un agente

Sevidor 1

Servidor 2
Un cliente

73

III. El Paradigma OO: Fundamentos de Modelado OO

El Concepto de Mensaje

La unidad de comunicacin entre objetos se


llama mensaje

El mensaje es el soporte de una


comunicacin que vincula dinmicamente
los objetos que fueron separados
previamente en el proceso de
descomposicin

Adquiere toda su fuerza cuando se asocia al


polimorfismo y al enlace dinmico
74

III. El Paradigma OO: Fundamentos de Modelado OO

El Concepto de Mensaje
Objeto 1

: Mensaje A
Objeto 2

: Mensaje C

: Mensaje E

Objeto 3

Objeto 4

: Mensaje D
75

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)

76

III. El Paradigma OO: Diagrama de Casos de Us

Diagrama de Casos de Uso

77

III. El Paradigma OO: Diagrama de Casos de Us

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

78

III. El Paradigma OO: Diagrama de Casos de Us

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

Estn basado en el lenguaje natural, es


decir, es accesible por los usuarios

79

III. El Paradigma OO: Diagrama de Casos de Us

Casos de Uso

Ejemplo:

Actor A

Caso de Uso A

Caso de Uso B

Actor B

80

III. El Paradigma OO: Diagrama de Casos de Us

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

81

III. El Paradigma OO: Diagrama de Casos de Us

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

82

III. El Paradigma OO: Diagrama de Casos de Us

Casos de Uso: Relaciones

UML define cuatro tipos de relacin en los


Diagramas de Casos de Uso:
Comunicacin

Actor

Caso de Uso

83

III. El Paradigma OO: Diagrama de Casos de Us

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

84

III. El Paradigma OO: Diagrama de Casos de Us

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

85

III. El Paradigma OO: Diagrama de Casos de Us

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

86

III. El Paradigma OO: Diagrama de Casos de Us

Casos de Uso: Relaciones

Ejemplo:
<<include>>

Cliente

Identificacin

Transferencia

<<extend>>

Transferencia en Internet

87

III. El Paradigma OO: Diagrama de Casos de Us

Casos de Uso: Relaciones

Ejemplo:

88

III. El Paradigma OO: Diagrama de Casos de Us

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?

89

III. El Paradigma OO: Diagrama de Casos de Us

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?

90

III. El Paradigma OO: Diagrama de Casos de Us


RF- <id del requisito>
Versin
Autores
Fuentes
Objetivos asociados
Descripcin

Precondicin
Secuencia
Normal

Postcondicin
Excepciones

Rendimiento
Frecuencia esperada
Importancia
Urgencia
Comentarios

<nombre del requisito funcional>


<numero de versin y fecha>
<autor>
<fuente de la versin actual>
<nombre del objetivo>
El sistema deber comportarse tal como se describe en
el siguiente caso de uso { concreto cuando <evento de
activacin> , abstracto durante la realizacin de los
casos de uso <lista de casos de uso>}
<precondicin del caso de uso>
Paso Accin
1
{El <actor> , El sistema} <accin realizada por el
actor o sistema>, se realiza el caso de uso
< caso de uso RF-x>
2
Si <condicin>, {el <actor> , el sistema} <accin
realizada por el actor o sistema>>, se realiza el
caso de uso < caso de uso RF-x>
3
4
5
6
n
<postcondicin del caso de uso>
Paso Accin
1
Si <condicin de excepcin>,{el <actor> , el
sistema} }<accin realizada por el actor o
sistema>>, se realiza el caso de uso
< caso de uso RF-x>, a continuacin este caso
de uso {continua, aborta}
2
3
Paso Cota de tiempo
1
n segundos
2
n segundos
<n de veces> veces / <unidad de tiempo>
{sin importancia, importante, vital}
{puede esperar, hay presin, inmediatamente}
<comentarios adicionales>

91

III. El Paradigma OO: Diagrama de Casos de Us

Modelo de Casos de Uso y


Modelo Conceptual (Anlisis)

La especificacin de cada caso de uso y


los correspondientes D. de Interaccin
establecen el vnculo con el modelo
conceptual

En mtodos OO que carecen de una


tcnica de captura de requisitos se
comienza inmediatamente con la
construccin del modelo conceptual
(anlisis)
Prctica 11

92

Diagramas de Interaccin

93

III. El Paradigma OO: Diagramas de Interaccin

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

94

III. El Paradigma OO: Diagramas de Interaccin

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

95

III. El Paradigma OO: Diagramas de Interaccin

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

III. El Paradigma OO: Diagramas de Interaccin

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
97

III. El Paradigma OO: Diagramas de Interaccin

Diagrama de Secuencia

98

III. El Paradigma OO: Diagramas de Interaccin

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

99

III. El Paradigma OO: Diagramas de Interaccin

Diagrama de Secuencia

100

III. El Paradigma OO: Diagramas de Interaccin

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
101

III. El Paradigma OO: Diagramas de Interaccin

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

A
102

III. El Paradigma OO: Diagramas de Interaccin

Mensajes

Un mensaje se enva de manera


condicionada:
[x>y] 1: Mensaje

B
A

103

III. El Paradigma OO: Diagramas de Interaccin

Mensajes

Un mensaje que devuelve un resultado:

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

Prctica 12

104

Diagrama de Clases

105

III. El Paradigma OO: Diagrama de 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

106

III. El Paradigma OO: Diagrama de 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

107

III. El Paradigma OO: Diagrama de 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 maxima
arrancar
acelerar
frenar

108

III. El Paradigma OO: Diagrama de Clases

Clases: Notacin Grfica

Otros ejemplos:
lista
pila
primero
ultimo
aadir
quitar
cardinalidad

apilar
desapilar
cardinalidad

109

III. El Paradigma OO: Diagrama de 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

110

III. El Paradigma OO: Diagrama de 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)
111

III. El Paradigma OO: Diagrama de Clases

Clases: Encapsulacin

Ejemplo:
Reglas de visibilidad
+ Atributo pblico : int
# Atributo protegido : int
- Atributo privado : int
+ "Operacin pblica"
# "Operacin protegida"
- "Operacin privada"
112

III. El Paradigma OO: Diagrama de 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
113

III. El Paradigma OO: Diagrama de 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

Universidad

Antonio:Estudiante

Estudiante
Una asociacin

114

III. El Paradigma OO: Diagrama de Clases

Asociacin

Ejemplo:
marido
casado-con

Administra

0.. 1
mujer
jefe
0.. 1

0.. 1

Persona *
nombre
s. s.

trabaja-para
emplea-a

* Compaa
nombre
direccin

empleado

115

III. El Paradigma OO: Diagrama de 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
116

III. El Paradigma OO: Diagrama de Clases

Asociacin Cualificada
Aerolnea

Tablero
Ajedrez

nro_billete

0..1

1
fila
columna

Viajero

Cuadro

Reduce la multiplicidad del rol opuesto al considerar el


valor
del cualificador

117

III. El Paradigma OO: Diagrama de 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
118

III. El Paradigma OO: Diagrama de Clases

Agregacin: Caracterizacin

Caracterizaciones relacionadas con la multiplicidad

Multiplicidad Mnima
0
flexible
> 0 estricta
Multiplicidad

Objeto
Agregado
(mna, mxa)

Multiplicidad Mnima
(mnc,
0
nulos permitidos
> 0 nulos no
Objeto
permitidos

mxc)

Componente

Mxima
1
disjunto
> 1 no disjunto

Multiplicidad Mxima
1
univaluado
> 1 multivaluado

119

III. El Paradigma OO: Diagrama de Clases

...

Agregacin: Caracterizacin

En UML slo se distingue entre agregacin y composicin


(aggregate composition), siendo esta ltima disjunta y estricta

Adems se una agregacin se podra caracterizar segn:

Puede el objeto parte comunicarse directamente con objetos


externos al objeto agregado?
No => inclusiva
Si => no inclusiva
Puede cambiar La composicin del objeto agregado?
Si => dinmica
No => esttica

120

III. El Paradigma OO: Diagrama de Clases

Ejemplos

121

III. El Paradigma OO: Diagrama de Clases

... Ejemplos

122

III. El Paradigma OO: Diagrama de Clases

Ejemplos
Agregacin

Cuenta

1 contiene

Polgono

3.. *

{ordenado}

Persona

or
1

Punto

Asociacin excluyente

Empresa

Usuario

est-autorizado-en

Estacin

Autorizacin
prioridad
Clase de asociacin privilegios
camb_privil

123

III. El Paradigma OO: Diagrama de 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
124

III. El Paradigma OO: Diagrama de 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
125

III. El Paradigma OO: Diagrama de 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

126

III. El Paradigma OO: Diagrama de Clases

... Generalizacin

La Generalizacin y Especializacin son


equivalentes en cuanto al resultado: la
jerarqua y herencia establecidas

Generalizacin y Especializacin no son


operaciones reflexivas ni simtricas
pero s transitivas

127

III. El Paradigma OO: Diagrama de Clases

... Generalizacin
Vehculo

Veihculo Terrestre

Coche

Camin

Vehculo Areo

Avin

Helicptero

128

III. El Paradigma OO: Diagrama de 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)

129

III. El Paradigma OO: Diagrama de 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

130

III. El Paradigma OO: Diagrama de 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

131

III. El Paradigma OO: Diagrama de Clases

... Generalizacin

Un ejemplo de Clasificacin Esttica:


Vehculo Areo
{ esttica }

Avin

Helicptero

132

III. El Paradigma OO: Diagrama de Clases

... Generalizacin

Un ejemplo de Clasificacin Dinmica:


Coche
{ dinmica }

Funcionando

Estropeado

133

III. El Paradigma OO: Diagrama de Clases

... Generalizacin

Extensin: Posibles instancias de una


clase

Intensin: Propiedades definidas en una


clase
A

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

134

III. El Paradigma OO: Diagrama de Clases

... Generalizacin

Clasificacin Esttica
C0

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

completa
ext(Ci) ext(Cj) =

C1

Cn

disjunta

135

III. El Paradigma OO: Diagrama de Clases

... Generalizacin

Clasificacin Dinmica
C0

ext(C0) = ext(Ci)

{ dinmica }

completa

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


extt1(Ci) extt2(Cj)

C1

Cn

posiblemente
no disjunta en
diferentes
instantes
136

III. El Paradigma OO: Diagrama de Clases

... Generalizacin

Ejemplo: varias especializaciones a partir


de la misma clase padre, usando
discriminadores:
Comercial

Militar

uso
Vehculo Areo

estructura

Avin

Helicptero
137

III. El Paradigma OO: Diagrama de 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

138

III. El Paradigma OO: Diagrama de 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
Herbvoro

Con Pelos
comida

cubertura
Con Plumas

cobertura

Animal
comida

cobertura

Carnvoro

Con Escamas

Conejo

139

III. El Paradigma OO: Diagrama de Clases

Principio de Sustitucin

El Principio de Sustitucin de Liskow


(1987) afirma que:
Debe ser posible utilizar cualquier
objeto instancia de una subclase en el
lugar de cualquier objeto instancia de
su superclase sin que la semntica del
programa escrito en los trminos de la
superclase se vea afectado.

140

III. El Paradigma OO: Diagrama de 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

141

III. El Paradigma OO: Diagrama de 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

142

III. El Paradigma OO: Diagrama de Clases

Polimorfismo

Ejemplo: todo animal duerme, pero


cada clase lo hace de forma distinta
Animal
dormir()

?
dormir

?
Len

Oso

Tigre

143

III. El Paradigma OO: Diagrama de Clases

Polimorfismo
Animal
dormir()

Dormir()
{
}

Len
dormir()
Dormir()
{
sobre el vientre
}

Oso
dormir()
Dormir()
{
sobrela espalda
}

Tigre
dormir()
Dormir()
{
en un rbol
}
144

III. El Paradigma OO: Diagrama de 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

145

Diagrama de Estados

146

III. El Paradigma OO: Diagrama de Estados

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)

147

III. El Paradigma OO: Diagrama de Estados

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

148

III. El Paradigma OO: Diagrama de Estados

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

149

III. El Paradigma OO: Diagrama de Estados

Diagrama de Estados

Estados y Transiciones
Evento [condicin] / Accin

B
Tanto el evento como la accin se
consideran instantneos

150

III. El Paradigma OO: Diagrama de Estados

Diagrama de Estados

Ejemplo de un Diagrama de Estados


para la clase persona:
contratar
en el paro

en activo
perder empleo

jubilarse
jubilarse
jubilado

151

III. El Paradigma OO: Diagrama de Estados

Acciones

Podemos especificar la solicitud de un


servicio a otro objeto como
consecuencia de la transicin:
A

Evento [condicin] / OtroObjeto.Operacin

B
152

III. El Paradigma OO: Diagrama de Estados

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

153

III. El Paradigma OO: Diagrama de Estados

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

154

III. El Paradigma OO: Diagrama de Estados

Generalizacin de Estados

Ejemplo:
e1

e2
e2
C

155

III. El Paradigma OO: Diagrama de Estados

Generalizacin de Estados

Quedara como:

Aa

e1

b
B

e2

C
156

III. El Paradigma OO: Diagrama de Estados

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

Bb
e2

e0

C
157

III. El Paradigma OO: Diagrama de Estados

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

158

III. El Paradigma OO: Diagrama de Estados

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

159

III. El Paradigma OO: Diagrama de Estados

Generalizacin de Estados
Ejemplo:

e1

e1

160

III. El Paradigma OO: Diagrama de Estados

Generalizacin de Estados
Ejemplo:

161

III. El Paradigma OO: Diagrama de Estados

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

III. El Paradigma OO: Diagrama de Estados

Historia

Ejemplo:
A

d2
B
in
D

out
d1
C

H*
163

III. El Paradigma OO: Diagrama de Estados

Historia

Ejemplo:
Enjuague

Lavado

Secado

cerrar puerta

abir puerta

Espera
164

III. El Paradigma OO: Diagrama de Estados

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

165

III. El Paradigma OO: Diagrama de Estados

Destruccin de Objeto

Ejemplo:
En vuelo

despegar
Crear(matricula)

crash

aterrizar

En tierra

166

III. El Paradigma OO: Diagrama de Estados

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
167

III. El Paradigma OO: Diagrama de Estados

Transiciones temporizadas

Ejemplo:

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

despus de
30 segundos

anular
transaccin

Depsito efectuado

B
168

III. El Paradigma OO: Diagrama de Estados

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

169

III. El Paradigma OO: Diagrama de Estados

Ejemplos

170

III. El Paradigma OO: Diagrama de Estados

... Ejemplos

171

III. El Paradigma OO: Diagrama de Estados

... Ejemplos

172

Diagrama de
Componentes

173

III. El Paradigma OO: Diagrama de Componente

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

174

III. El Paradigma OO: Diagrama de Componente

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

III. El Paradigma OO: Diagrama de Despliegue

Diagramas de Componentes

Ejemplo:

176

Diagrama de Despliegue

177

III. El Paradigma OO: Diagrama de Despliegue

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

178

III. El Paradigma OO: Diagrama de Despliegue

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

179

III. El Paradigma OO: Diagrama de Despliegue

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

Control

<<RDSI>>

180

Proceso de Desarrollo
de SW basado en UML

181

IV. Proceso de Desarrollo de SW basado en UM

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
182

IV. Proceso de Desarrollo de SW basado en UM

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

IV. Proceso de Desarrollo de SW basado en UM

Dos Dimensiones

184

IV. Proceso de Desarrollo de SW basado en UM

Fases e Hitos (Milestones)

Inception Elaboration

Objetivos
(Vision)

Construction

Arquitectura

Transition

Capacidad
Operacional
Inicial

Release
del Producto

tiempo

185

IV. Proceso de Desarrollo de SW basado en UM

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)

186

IV. Proceso de Desarrollo de SW basado en UM

... Elementos en RUP


Workflow, Workflow Detail , Workers, Actividades y Artefactos
Ejemplo
Workflow: Requirements

Workflow Detail:Analyse the Proble

Workers

Artefactos
Actividades

187

IV. Proceso de Desarrollo de SW basado en UM

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

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

188

IV. Proceso de Desarrollo de SW basado en UM

... Elementos en RUP


Workers, Actividades, Artefactos
Ejemplo: System Analyst Worker

189

IV. Proceso de Desarrollo de SW basado en UM

... 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
Project Management Set

Requirements Set

Configuration & Change


Management Set
Analysis & Design Set
Environment Set
Implementation Set
Test Set

190

IV. Proceso de Desarrollo de SW basado en UM

... Elementos en RUP


Artefactos, Workers, Actividades
Ejemplo:Business Modeling Artifact Set

191

IV. Proceso de Desarrollo de SW basado en UM

Caractersticas Esenciales de
RUP

Proceso Dirigido por los Casos de Uso

Proceso Iterativo e Incremental

Proceso Centrado en la Arquitectura

192

IV. Proceso de Desarrollo de SW basado en UM

Proceso dirigido por los Casos de Uso


Capturar, definir y
validar los casos de
uso

Requisitos
Anlisis & Diseo
Implementacin
Pruebas

Casos de Uso
integran el
trabajo

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

193

IV. Proceso de Desarrollo de SW basado en UM

... Proceso dirigido por los Casos de Uso


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

IV. Proceso de Desarrollo de SW basado en UM

... Proceso dirigido por los Casos de Uso

195

IV. Proceso de Desarrollo de SW basado en UM

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
196

IV. Proceso de Desarrollo de SW basado en UM

...

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

Codific.
Pruebas e
Integracin
197

IV. Proceso de Desarrollo de SW basado en UM

...

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)

198

IV. Proceso de Desarrollo de SW basado en UM

Proceso Iterativo e Incremental


Enfoque
Cascada

Enfoque
Iterativo e
Incremental
199

IV. Proceso de Desarrollo de SW basado en UM

... Proceso Iterativo e Incremental


Grado de Finalizacin de Artefactos

200

IV. Proceso de Desarrollo de SW basado en UM

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
201

IV. Proceso de Desarrollo de SW basado en UM

Fases del Ciclo de Vida

El ciclo de vida consiste en una serie de ciclos,


cada uno de los cuales produce una nueva
versin del producto

Cada ciclo est compuesto por fases y cada


una de estas fases est compuesta por un
nmero de iteraciones

Las fases son:

Inicio o Estudio de oportunidad


Elaboracin
Construccin
Transicin

202

IV. Proceso de Desarrollo de SW basado en UM

...Fases del Ciclo de Vida

Inicio o Estudio de oportunidad


(inception)
Define el mbito y objetivos del proyecto
Se define la funcionalidad y capacidades del
producto

Elaboracin
Tanto la funcionalidad como el dominio del
problema se estudian en profundidad
Se define una arquitectura bsica
Se planifica el proyecto considerando
recursos disponibles
203

IV. Proceso de Desarrollo de SW basado en UM

...Fases del Ciclo de Vida

Construccin

El producto se desarrolla a travs de


iteraciones donde cada iteracin involucra
tareas de anlisis, diseo e implementacin
Las fases de estudio y anlisis slo dieron una
arquitectura bsica que es aqu refinada de
manera incremental conforme se construye
(se permiten cambios en la estructura)
Gran parte del trabajo es programacin y
pruebas
Se documenta tanto el sistema construido
como el manejo del mismo
Esta fase proporciona un producto construido
junto con la documentacin
204

IV. Proceso de Desarrollo de SW basado en UM

...Fases del Ciclo de Vida

Transicin
Se libera el producto y se entrega al usuario
para un uso real
Se incluyen tareas de marketing, empaquetado
atractivo, instalacin, configuracin,
entrenamiento, soporte, mantenimiento, etc.
Los manuales de usuario se completan y
refinan con la informacin anterior
Estas tareas se realizan tambin en iteraciones

205

Esfuerzo respecto de las Workflows


Inception

Elaboration

Construction

Transition

15%

Requisitos
Una iteracin en la
fase de elaboracin
Anlisis

10%

Diseo

15%
30%

Implementacin

15%

Pruebas
P re lim ina ry
Ite ra tion (s)

ite r.
#1

ite r.
#2

ite r.
#n

ite r.
# n+ 1

ite r.
#n+2

ite r.
#m

ite r.
#m +1

5% mantenimiento10% gestin cambios


206

IV. Proceso de Desarrollo de SW basado en UM

...Esfuerzo respecto de las Fases


Inception

Elaboration

Construction

Transition

Requisitos
Una iteracin en la
fase de elaboracin
Anlisis

Diseo

Implementacin

Pruebas
P re lim ina ry
Ite ra tion (s)

Esfuerzo:
Duracin:

5%
10%

ite r.
#1

ite r.
#2

20%
30%

ite r.
#n

ite r.
# n+ 1

65%
50%

ite r.
#n+2

ite r.
#m

ite r.
#m +1

10%
10%

207

Conclusiones

208

V. Conclusiones

Claves en el Desarrollo de SI
Notacin
UML

Herramientas
p.e. Rational Rose

Proceso
p.e. Rational Unified Process
209

V. Conclusiones

Contexto de Desarrollo:
Grado de Complejidad

210

V. Conclusiones

Modelado de SI: Algunas Reflexiones

Modelar para la concebir el sistema y/o para la


documentarlo

Pragmatismo, los modelos deben ser tiles

Sencillez y Elegancia

Distintos nivel de abstraccin, diferentes modelos

Seguimiento de transformaciones durante el


proceso (Traceability)

Sincronizacin de modelos

Dificultades para la introduccin de tcnicas y


herramientas de modelado
211

V. Conclusiones

... Finalmente

Apostar por enfoque Orientado a Objetos


usando notacin UML

Problemas actuales en implementacin, al


usar entornos de programacin visual y/o
bases de datos relacionales

Posibles mejoras a mediano plazo


Evolucin: Uso de BDOO y/o mejoras en los
LPOO
Revolucin: Generacin Automtica de Cdigo a
partir de Modelos OO (Compilacin de Modelos)

212

V. Conclusiones

Bibliografa Recomendada
UML
www.omg.org/uml/
Meta-links www.celigent.com/uml/ y www.cetus-links.org/oo_uml.html
Pierre-Alain Muller Instant UML
Martin Fowler, UML Destilled (UML Gota a Gota)
Terry Quatrani, Visual Modeling ..., un caso de estudio

Herramientas CASE
Herramientas basadas en UML www.objectsbydesign.com/tools/umltools_byPrice.html
International Council in SE (INCOSE) www.incose.org/tools/
Herramientas basadas en UML www.objectsbydesign.com/tools/umltools_byPrice.html

Otras
Revista IEEE Software, Conferencias: OOPSLA, ECOOP
Patrones www.enteract.com/bradapp/docs/patterns-intro.html,
Tutoriales en ingls www.celigent.com/omg/umlrtf/tutorials.htm

213

S-ar putea să vă placă și