Está en la página 1de 39

Contenido

Introduccin: Modelado de SI
Anlisis y Diseo Breve Tour por UML
El Paradigma Orientado a Objetos
Orientado a Objetos usando Fundamentos del Modelado OO
Captura de Requisitos
la notacin UML Modelado de Interacciones
Modelado de la Estructura del Sistema
Ing. Mario Alberto Prez Diagramas de Estados
Universidad Nacional de Colombia Modelado de Componentes
Modelado de Distribucin
Proceso de Desarrollo de SW con UML
Basada en material de la Universidad Politcnica de Valencia Conclusiones
1 2

Construccin de una casa para fido

Introduccin: Modelado de SI
Puede hacerlo una sola persona
Requiere :
Modelado mnimo
Proceso simple
Herramientas simples

3 4

Construccin de una casa Construccin de un rascacielos

Construida eficientemente y en un tiempo


razonable por un equipo
Requiere :
Modelado
Proceso bien definido
Herramientas ms sofisticadas
5 6

1
Claves en Desarrollo de SI Abstraccin - Modelado Visual (MV)

El modelado captura las


Notacin partes esenciales del sistema

Orden

Item

envo

Proceso de Negocios
Herramientas Proceso
Sistema Computacional
7 8

MV para definir la Arquitectura


MV para manejar la complejidad del Software
Interfaz de Usuario
(Visual Basic,
Java, ..)
Lgica del Negocio
(C++, Java, ..)

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

Modelar el sistema independientemente


9
del lenguaje de implementacin 10

MV promueve la reutilizacin

Mltiples Sistemas

Breve Tour por UML

Componentes
Reutilizados

11 12

2
Qu es UML? Situacin de Partida
UML = Unified Modeling Language Diversos mtodos y tcnicas OO, con muchos aspectos
en comn pero utilizando distintas notaciones
Un lenguaje de propsito general para el
modelado orientado a objetos Inconvenientes para el aprendizaje, aplicacin,
Documento OMG Unified Modeling Language construccin y uso de herramientas, etc.
Specification Pugna entre distintos enfoques (y correspondientes
UML combina notaciones provenientes desde: gurs)
Modelado Orientado a Objetos
Modelado de Datos => Necesidad de una notacin estndar
Modelado de Componentes
Modelado de Flujos de Trabajo (Workflows)

13 14

Historia de UML
Historia de UML
2001 ? UML 2.0

Comenz como el Mtodo Unificado, con la 2000 UML 1.4

participacin de Grady Booch y Jim Rumbaugh. 1999 UML 1.3


Revisiones menores
1998
Se present en el OOPSLA95 Nov 97 UML aprobado por el OMG
UML 1.2

El mismo ao se uni Ivar Jacobson. Los Tres


Amigos son socios en la compaa Rational
Software. Herramienta CASE Rational Rose

15 16

Participantes en UML 1.0 UML aglutina enfoques OO


Rational Software MCI Systemhouse Rumbaugh
(Grady Booch, Jim Rumbaugh y Microsoft
Ivar Jacobson) Booch Jacobson
Digital Equipment ObjecTime
Odell
Hewlett-Packard Oracle Corp. Meyer
i-Logix (David Harel) Platinium Technology Pre- and Post-conditions

Shlaer-Mellor
IBM Sterling Software Objectlife cycles
UML
ICON Computing Harel
Taskon State Charts
(Desmond DSouza) Gamma et. al.
Texas Instruments
Intellicorp and James Frameworks, patterns,

Unisys
notes
Martin & co. (James Odell) Embly Wirfs-Brock
Singleton classes Responsabilities
Fusion
Operation descriptions,
message numbering
17 18

3
Aspectos Novedosos Mtodos Formales en Modelado
Definicin semi-formal del Metamodelo de UML Tipos de enfoques: no-formales, semi-formales y
formales
Mecanismos de Extensin en UML:
Stereotypes Las principales mejoras al utilizar mtodos formales
son:
Constraints
Mayor rigor en la especificacin
Tagged Values
Mejores condiciones para realizar la verificacin
Permiten adaptar los elementos de modelado, y validacin en forma ms exhaustiva
asignndoles una semntica particular Mejores condiciones para automatizacin de
Ver UML V1.3 pgina 2-67 procesos para la generacin automtica de
prototipos y/o cdigo final

19 20

Inconvenientes en UML Perspectivas de UML


Definicin del proceso de desarrollo usando UML ser el lenguaje de modelado orientado a
objetos estndar predominante los prximos aos
UML. UML no es una metodologa
Razones:
Falta integracin con respecto de otras tcnicas Participacin de metodlogos influyentes
tales como patrones de diseo, interfaces de Participacin de importantes empresas
usuario, documentacin, etc. Aceptacin del OMG como notacin estndar
Evidencias:
Ejemplos aislados Herramientas que proveen la notacin UML
Monopolio de conceptos, tcnicas y mtodos Edicin de libros
Congresos, cursos, camisetas, etc.
en torno a UML
21 22

Diagramas de UML ... Diagramas de UML


State
State de
Diagrams
Diagramas Diagrama de Casos de Uso
Use
UseCase
Case de Diagrams
Clases State
Use
UseCase
Diagrams
Diagramas
Diagrams
Case de Casos
State de
Diagrams
Diagramas Diagrama de Clase (incluyendo Diagrama de Objetos)
Diagramas
Diagrams de Uso Diagrams
Diagrams Objetos Diagramas de Comportamiento
Secuencia
Diagrama de Estados
Scenario State Diagrama de Actividad
Scenario State
Diagrams
Diagramas
Diagrams de Diagrams
Diagramas de Diagramas de Interaccin
Diagrams
Colaboracin Modelo Componentes
Diagrama de Secuencia
Scenario Component Diagrama de Colaboracin
Scenario de Component
Diagramas de
Diagramas
Diagrams Diagrams
Diagrams Diagramas de implementacin
Diagrams Distribucin
Estados Diagramas de
Actividad Diagrama de Componentes
Diagrama de Despliegue
Un modelo es una descripcin completa de un sistema desde una perspectiva concreta
23 24

4
Paquetes en UML Paquetes en UML
Los paquetes ofrecen un mecanismo general Cada paquete corresponde a un subconjunto
para la organizacin de los modelos del modelo y contiene, segn el modelo, clases,
agrupando elementos de modelado objetos, relaciones, componentes y diagramas
asociados
Se representan grficamente como:
Un paquete puede contener otros paquetes, sin
lmite de anidamiento pero cada elemento
Nombre de
paquete pertenece a (est definido en) slo un paquete

25 26

Prctica 1

Paquetes en UML Paquetes en UML


El operador :: permite designar una clase
Una clase de un paquete puede aparecer en definida en un contexto distinto del actual
otro paquete por la importacin a travs de una
relacin de dependencia entre paquetes Por ejemplo, la expresin Ventas::Producto
designa la clase Producto definida en el
paquete Ventas
Todas las clases no son necesariamente visibles
desde el exterior del paquete, es decir, un
paquete encapsula a la vez que agrupa

27 28

Diagramas de Casos de Uso Ejemplos

Casos de Uso es una tcnica para capturar Verificar Situacin

informacin de cmo un sistema o negocio


Vendedor

trabaja actualmente, o de cmo se desea que


trabaje Cliente

Establecer Crdito Supervisor

No pertenece estrictamente al enfoque


orientado a objeto, es una tcnica para captura
de requisitos Preparar Catlogo
Secretaria

Tipos de Venta

29 30

5
Ejemplos Ejemplos
En el paquete tipos de venta:

Venta Normal
Realizar prstamo
Socio Encargado

tarjeta caducada

<<extend>>
<<extends>>
Venta en Rebajas
Cliente Vendedor

Solicitar nueva tarjeta

Venta en Oferta
31 32

Prctica 2

Ejemplos Diagramas de Secuencia

: Libro : Ficha socio : Ficha libro : Prstamo


: Socio : Encargado

Coger libro

Reintegro cuenta corriente <<include>>


<<uses>>

Solicitar prstamo

Verificar situacin socio

Situacin socio ok
Cliente Validar operacin
Verificar situacin libro

Situacin libro ok
<<uses>>
<<include>>
Introducir prstamo

Autorizar prstamo

Reintegro cuenta crdito

33 34

Prctica 3

Diagramas de Colaboracin Diagramas de Clases (y objetos)


1: Coger libro : Libro
El Diagrama de Clases es el diagrama principal para el
anlisis y diseo
: Socio 2: Solicitar prstamo : Ficha s
ocio
Un diagrama de clases presenta las clases y objetos
3: Verificar situacin socio
del sistema con sus relaciones estructurales y de
8: Autorizar prstamo
4: Situacin socio ok herencia
La definicin de clase u objeto incluye definiciones
6: Situacin libro ok : Encargado para atributos y operaciones
7: Introducir prstamo
: Prsta
mo El trabajo realizado en los D. de Casos de Uso, D. de
Secuencia y D. de Colaboracin aporta informacin
para establecer las clases, objetos, atributos y
5: Verificar situacin libro

: Ficha li
bro
operaciones
35 36

6
Ejemplos (Clase y Visibilidad) Ejemplos (Asociacin)

Alumno
DNI : char[10] dirige director
nmero_exp : int Departamento Profesor
nombre : char[50]
0..1 1

alta()
poner_nota(asignatura : char *, ao : int, nota : float)
matricular(cursos : asignatura, ao : int)
listar_expediente()

37 38

Ejemplos (Clase Asociacin) Ejemplos (Generalizacin)

empleador trabajador
Empresa Empleado
Empleado
* 1..*

Cargo {disjunta, completa}


+superior
nombre
sueldo
0..1

1..* Directivo Administrativo Obrero


+subordinado

39 40

Prcticas 4-8

Ejemplos Diagramas de Estados


Motor Piloto Vendedor de billetes

alta baja
1..4 1..2 1

nmero_prstamos = 0
sin prstamos

1 * *
1 * 1 * Socio Biblioteca
Avin Vuelo Reserva
Nmero : int
Nombre : char[50] prestar devolver[ nmero_prstamos = 1 ]
* Nmero prstamos : int = 0
{ disjunta, completa }
Alta()
Baja() nmero_prstamos > 0
1 Prestar(CdigoLibro : int, Fecha : date)
Devolver(CdigoLibro : int, Fecha : date)
Avin comercial con prstamos
Avin militar Lnea area

prestar
{ disjunta, completa }

devolver[ nmero_prstamos > 1 ]

Avin de carga Avin de pasajeros

41 42

7
Prctica 9

Diagramas de Actividad Otro Ejemplo (con swim lines)


Pasajero Vendedor Airline
[no zumo]
Buscar Bebida
[no hay caf]

[hay caf [hay zumo]


Solicitar pasaje
Verificar
existencia vuelo
Poner caf en filtro Aadir agua al depsito Coger taza
Dar detalles vuelo

Poner filtro en mquina Coger zumo Informar alternativas


y precios
Seleccionar vuelo
Encender mquina
^cafetera.On
Caf en preparacin Solicitar pago Reservar plazas

Confirmar
indicador de fin Pagar pasaje plaza reservada
Servir caf
Beber
Emitir billete

43 44

Prctica 10

Diagramas Componentes Diagramas de Distribucin


Servidor Central Control y Anlisis
Control y Anlisis
Acceso a BD Comment
Interfaz de Terminal
Comment Comment

Comment
Rutinas de Coneccion

Terminal de Consulta
Interfaz de Terminal
Gestin de Cuentas Acceso a BD Rutinas de Coneccion
Rutinas de Coneccion Comment
Comment Comment
Comment Punto de Venta
Rutinas de Coneccion
Comment

Gestin de Cuentas Interfaz de Terminal

45 46

Resumen
Captura de Requisitos Anlisis y Diseo Implementacin

Diagramas de
Estados
Diagramas de
Secuencia Diagramas de
Distribucin El Paradigma
Orientado a Objetos
Diagramas de Diagramas
Casos de Uso De Clases

Diagramas de Diagramas de
Colaboracin Componentes

Diagramas de Diagramas de
Actividad Actividad

"You can model 80 percent of most problems by using about 20 percent of the UML."-- Grady Booch
47 48

8
Por qu la Orientacin a Objetos? Por qu la Orientacin a Objetos?

Proximidad de los conceptos de modelado Conceptos comunes de modelado durante el


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

49 50

Problemas en OO Problemas en OO
Un objeto contiene datos y operaciones que operan
...Los conceptos bsicos de la OO se conocen desde hace sobre los datos, pero ...
dos dcadas, pero su aceptacin todava no est tan Podemos distinguir dos tipos de objetos degenerados:
extendida como los beneficios que esta tecnologa puede Un objeto sin datos (que sera lo mismo que una biblioteca
sugerir de funciones)
Un objeto sin operaciones, con slo operaciones del tipo
...La mayora de los usuarios de la OO no utilizan los crear, recuperar, actualizar y borrar (que se correspondera
conceptos de la OO de forma purista, como inicialmente con las estructuras de datos tradicionales)
se pretenda. Esta prctica ha sido promovida por Un sistema construido con objetos degenerados no es
muchas herramientas y lenguajes que intentan utilizar los un sistema verdaderamente orientado a objetos
conceptos en diversos grados
Las aplicaciones de gestin estn constituidas
--Wolfgang Strigel
mayoritariamente por objetos degenerados
51 52

Reflexiones respecto de Situacin


Actual de Desarrollo de SI
Anlisis Diseo Implementacin

DFDs DEs
Enfoque Entornos de
Estructurado E-R
Modelo
Programacin
Visual Fundamentos del Modelado
Orientado a Objetos
Diagramas de Casos de Uso Relacional
Diagramas de Actividad
Diagramas de Secuencia
Diagramas de Colaboracin Modelo
Bosquejos de Interfaces Relacional !!
Bases de Datos
(Objeto-)
Enfoque OO Diagrama de Clases Relacionales
Diagrama de Estados
Diagramas de Actividad

53 54

9
Objetos Objetos
Objeto = unidad atmica que integra estado y El Modelado de Objetos permite representar el
comportamiento ciclo de vida de los objetos a travs de sus
interacciones
La encapsulacin en un objeto permite una alta En UML, un objeto se representa por un
cohesin y un bajo acoplamiento rectngulo con un nombre subrayado

Un objeto puede caracterizar una entidad fsica Otro


Objeto
(coche) o concepto (ecuacin matemtica) Un Objeto
ms

Otro
Objeto

55 56

Objetos Objetos
Ejemplo de varios objetos relacionados: Objeto = Identidad + Estado + Comportamiento
El estado est representado por los valores de los
Cuenta
atributos
Dos clientes
del banco corriente
Felipe
Un atributo toma un valor en un dominio concreto
Libreta de
ahorro a
Un coche
Juan plazo
Azul
Libreta de 979 Kg
ahorro 70 CV
Cuenta ...
corriente
57 58

Identidad Identidad
Oid (Object Identifier) Es independiente de las propiedades del objeto, lo cual
Cada objeto posee un oid. El oid establece la identidad implica independencia de valor y de estructura
del objeto y tiene las siguientes caractersticas:
No cambia durante toda la vida del objeto. Adems, un
Constituye un identificador nico y global para cada oid no se reutiliza aunque el objeto deje de existir
objeto dentro del sistema
No se tiene ningn control sobre los oids y su
Es determinado en el momento de la creacin del objeto manipulacin resulta transparente

Es independiente de la localizacin fsica del objeto, es Sin embargo, es preciso contar con algn medio para
decir, provee completa independencia de localizacin hacer referencia a un objeto utilizando referencias del
dominio (valores de atributos)
59 60

10
Estado Comportamiento
El estado evoluciona con el tiempo Ejemplo de interaccin:
Algunos atributos pueden ser constantes
Otro objeto
El comportamiento agrupa las competencias de Un mensaje
un objeto y describe las acciones y reacciones
de ese objeto Operacion 2

Las operaciones de un objeto son consecuencia Un objeto


de un estmulo externo representado como
mensaje enviado desde otro objeto Operacion 1

61 62

Comportamiento Persistencia
Los mensajes navegan por los enlaces, a La persistencia de los objetos designa la capacidad de
un objeto trascender en el espacio/tiempo
priori en ambas direcciones
Un objeto persistente conserva su estado en un
Estado y comportamiento estn relacionados sistema de almacenamiento permanente (usualmente
memoria secundaria)
Ejemplo: no es posible aterrizar un avin si Podremos despus reconstruirlo , es decir, cogerlo de
no est volando. Est volando como memoria secundaria para utilizarlo en la ejecucin
consecuencia de haber despegado del suelo (materializacin del objeto)

Los lenguajes OO no proponen soporte adecuado para


la persistencia, pues sta debera ser transparente, un
objeto existe desde su creacin hasta que se destruya
63 64

Comunicacin Comunicacin
Un sistema informtico puede verse como un Categoras de objetos:
conjunto de objetos autnomos y concurrentes Activos - Pasivos
que trabajan de manera coordinada en la Cliente Servidores, Agentes
consecucin de un fin especfico Objeto Activo: posee un hilo de ejecucin (thread)
propio y puede iniciar una actividad
El comportamiento global se basa pues en la Objeto Pasivo: no puede iniciar una actividad pero
comunicacin entre los objetos que la puede enviar estmulos una vez que se le solicita un
componen servicio
Cliente es el objeto que solicita un servicio. Servidor
es el objeto que provee el servicio solicitado
65 66

11
Comunicacin Comunicacin
Los agentes renen las caractersticas de Ejemplo en el que un agente hace de aislante:
clientes y servidores Enrutamiento
dinmico
Son la base del mecanismo de delegacin
Sevidor 1
Introducen indireccin: un cliente puede Un agente

comunicarse con un servidor que no conoce


directamente
Servidor 2
Un cliente

Aislante
67 68

El Concepto de Mensaje El Concepto de Mensaje


La unidad de comunicacin entre objetos se
llama mensaje Objeto 1
: Mensaje A
El mensaje es el soporte de una comunicacin
que vincula dinmicamente los objetos que Objeto 2

fueron separados previamente en el proceso


de descomposicin : Mensaje C : Mensaje E
Adquiere toda su fuerza cuando se asocia al
polimorfismo y al enlace dinmico Objeto 3 Objeto 4

: Mensaje D
69 70

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 Captura de Requisitos
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)

71 72

12
Casos de Uso Casos de Uso
Los Casos de Uso (Ivar Jacobson) describen Los Casos de Uso cubren la carencia existente
bajo la forma de acciones y reacciones el en mtodos previos (OMT, Booch) en cuanto a
comportamiento de un sistema desde el p.d.v. la determinacin de requisitos
del usuario
Los Casos de Uso particionan el conjunto de
Permiten definir los lmites del sistema y las
necesidades atendiendo a la categora de
relaciones entre el sistema y el entorno
usuarios que participan en el mismo
Los Casos de Uso son descripciones de la
funcionalidad del sistema independientes de la Estn basado en el lenguaje natural, es decir, es
implementacin accesible por los usuarios
Comparacin con respecto a los Diagramas de
Flujo de Datos del Enfoque Estructurado
73 74

Casos de Uso Casos de Uso


Ejemplo: Actores:
Principales: personas que usan el sistema
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
Caso de uso X Otros sistemas: sistemas con los que el sistema interacta

La misma persona fsica puede interpretar varios


Actor A papeles como actores distintos
Actor B
El nombre del actor describe el papel desempeado
Caso de uso Y

75 76

Casos de Uso Casos de Uso: Relaciones


Los Casos de Uso se determinan observando y UML define cuatro tipos de relacin en los
precisando, actor por actor, las secuencias de Diagramas de Casos de Uso:
interaccin, los escenarios, desde el punto de vista del
usuario Comunicacin:

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 Actor
casos de uso
Caso de Uso

77 78

13
Casos de Uso: Relaciones Casos de Uso: Relaciones
Inclusin : una instancia del Caso de Uso origen Extensin : el Caso de Uso origen extiende el
incluye tambin el comportamiento descrito por el comportamiento del Caso de Uso destino
Caso de Uso destino

<<include> >
<<extend >>
Caso de uso destino

Caso de uso destino


Caso de uso origen

En UML 1.3 se estereotipa como <<include>> lo que Caso de uso origen


antes llevaba el estereotipo <<uses>>

79 80

Casos de Uso: Relaciones Casos de Uso: Relaciones


Herencia : el Caso de Uso origen hereda la Ejemplo:
especificacin del Caso de Uso destino y
posiblemente la modifica y/o ampla
<<extend>>
<<extends>>
Transferencia porInternet
Giro por Internet

Cliente

<<includes>>
<<include>> Transferencia
Giro
Caso de uso destino

Caso de uso origen


Identificacin

81 82

Casos de Uso: Construccin Casos de Uso: Construccin


Un caso de uso debe ser simple, inteligible, claro y La descripcin del Caso de Uso comprende:
conciso el inicio: cundo y qu actor lo produce?
Generalmente hay pocos actores asociados a cada el fin: cundo se produce y qu valor devuelve?
Caso de Uso
la interaccin actor-caso de uso: qu mensajes
Preguntas clave: intercambian ambos?
cules son las tareas del actor? objetivo del caso de uso: qu lleva a cabo o
qu informacin crea, guarda, modifica, intenta?
destruye o lee el actor? cronologa y origen de las interacciones
debe el actor notificar al sistema los cambios repeticiones de comportamiento: qu
externos? operaciones son iteradas?
debe el sistema informar al actor de los situaciones opcionales: qu ejecuciones
cambios internos? alternativas se presentan en el caso de uso?
83 84

14
RF - <id del requisito> <nombre del requisito funcional>
Versin <numero de versin y fecha>
Autores <autor>

Casos de Uso: Pruebas


Fuentes <fuente de la versin actual>
Objetivos asociados <nombre del objetivo>
Descripcin El sistema deber comportarse tal como se describe en
el siguiente caso de uso { concreto cuando <evento de
activacin> , abstracto durante la realizacin de los
casos de uso <lista de casos de uso>}

El modelo de casos de uso permite realizar


Precondicin <precondicin del caso de uso>
Secuencia Paso Accin

pruebas orientadas a la verificacin y


Normal 1 {El <actor> , El sistema} <accin realizada por el
actor o sistema>, se realiza el caso de uso
< caso de uso RF -x >
2 Si <condicin>, {el <actor> , el sistema} <accin
realizada por el actor o sistema>>, se realiza el validacin del sistema
caso de uso < caso de uso RF-x>
3
4
5 Verificar significa confirmar que el sistema se
6
n desarrolla correctamente
Postcondicin <postcondicin del caso de uso>
Excepciones Paso Accin

Validar asegura que el sistema bajo


1 Si <condicin de excepcin>,{el <actor> , el
sistema} }<accin realizada por el actor o

desarrollo es el que el usuario realmente


sistema>>, se realiza el caso de uso
< caso de uso RF -x>, a continuacin este caso
de uso {continu a, aborta}
2
3 quiere
Rendimiento Paso Cota de tiempo
1 n segundos
2 n segundos
Frecuencia esperada <n de veces> veces / <unidad de tiempo>
Importancia {sin importancia, importante, vital}
Urgencia {puede esperar, hay presin, inmediatamente}
Come n t a r i o s <comentarios adicionales> 85 86

Modelo de Casos de Uso y Prctica 11

Modelo Conceptual
La especificacin de cada caso de uso y los
correspondientes D. de Interaccin establecen
el vnculo con el modelo conceptual
Modelado de Interacciones
En mtodos OO que carecen de una tcnica de
captura de requisitos se comienza
inmediatamente con la construccin del
modelo conceptual

87 88

Interaccin Diagramas de interaccin


Los objetos interactan para realizar Los Diagramas de Secuencia son ms
colectivamente los servicios ofrecidos por las adecuados estn para observar la perspectiva
aplicaciones. Los diagramas de interaccin cronolgica de las interacciones
muestran cmo se comunican los objetos en Los Diagramas de Colaboracin ofrecen una
una interaccin mejor visin espacial mostrando los enlaces de
comunicacin entre objetos
Existen dos tipos de diagramas de
interaccin: los Diagramas de Colaboracin y Normalmente el D. de Colaboracin se obtiene
los Diagramas de Secuencia a partir del correspondiente D. de Secuencia

89 90

15
Diagramas de Secuencia Diagramas de Secuencia
Muestra la secuencia de mensajes entre Un ejemplo:
objetos durante un escenario concreto
A B C

Cada objeto viene dado por una barra


vertical m1

El tiempo transcurre de arriba abajo m2

Cuando existe demora entre el envo y la m3

atencin se puede indicar usando una lnea m4

oblicua m5

91 92

Diagramas de Secuencia Diagramas de Secuencia


Ejemplo Quien llama Lnea telefnica Llamado
Un objeto puede enviarse a s mismo un mensaje:
descuelga

tono
a
marcar

Las bandas
mensaje reflexivo
rectangulares
indicacin de llamada timbre

representan los descuelga

periodos de
actividad de los diga?

objetos

93 94

Diagramas de Secuencia Diagramas de Secuencia


Normalmente no es necesario indicar el retorno
Grficamente tambin se puede indicar del control:
cundo el mensaje es para crear el objeto
(va dirigido al rectngulo del objeto o a b

etiquetado con new) o para destruirlo (va


dirigido a la lnea del objeto pero el final de
la flecha es una cruz)
El retorno se
Ver UML V1.3 pgina 3-100 considera implcito
cuando el envo es
sncrono

95 96

16
Diagrama de Secuencia Tipos de Control
El Diagrama de Secuencia refleja de manera
En el caso asncrono el retorno, si existe, se
indirecta las opciones de control
debe representar:
Un control centralizado tiene una forma como
esta:
a : aa b : aa

97 98

Tipos de control Estructuras de control


Un control descentralizado tiene una forma Podemos representar iteraciones en el envo de
como esta: mensajes, p.e., mientras se cumpla una
condicin:

While X
Loop

end Loop

99 100

Estructuras de control Estructuras de control


La iteracin puede expresarse tambin como Las bifurcaciones condicionales pueden
parte del mensaje: representarse de esta forma:

*[condicin] Mensaje If condicin

else

end if

101 102

17
Diagramas de Colaboracin Mensajes
Son tiles en la fase exploratoria para identificar Un mensaje desencadena una accin en el
objetos objeto destinatario
La distribucin de los objetos en el diagrama
permite observar adecuadamente la interaccin de Un mensaje se enva si han sido enviados los
un objeto con respecto de los dems mensajes de una lista (sincronizacin):

La estructura esttica viene dada por los enlaces; la


dinmica por el envo de mensajes por los enlaces A.1, B.3 / 1:Mensaje B

103 104

Mensajes Mensajes
Un mensaje se enva iterada y secuencialmente Un mensaje se enva iterada y
a un conjunto de instancias: concurrentemente a un conjunto de instancias:

1 *[i:=1..n] : Mensaje
1 *| | [i:=1..n] : Mensaje
B
B
A
A

105 106

Mensajes Mensajes
Un mensaje se enva de manera condicionada: Un mensaje que devuelve un resultado:

[x>y] 1: Mensaje 1: distancia:= mover(x,y)


B B

A A

107 108

18
Prctica 12

Mensajes
Los argumentos de un mensaje pueden ser
valores obtenidos como consecuencia de las
llamadas anteriores
Los argumentos pueden ser tambin Modelado Conceptual
expresiones de navegacin construidas a partir
del objeto cliente

Los argumentos pueden omitirse en el


diagrama

109 110

Clases Clases
Modelado Conceptual: El mundo real puede ser visto desde abstracciones
diferentes (subjetividad)

Organizacin del conocimiento del dominio del Mecanismos de abstraccin:


problema en un conjunto de abstracciones
ordenadas de forma que se obtiene un Clasificacin / Instanciacin
conocimiento ms profundo del problema Composicin / Descomposicin
Agrupacin / Individualizacin
Especializacin / Generalizacin

La clasificacin es uno de los mecanismos de


abstraccin ms utilizados
111 112

Clases Clases: Notacin Grfica


Cada clase se representa en un rectngulo
La clase define el mbito de definicin de un con tres compartimientos:
conjunto de objetos
nombre de la clase
Cada objeto pertenece a una clase atributos de la clase motocicleta

operaciones de la clase color


Los objetos se crean por instanciacin de las cilindrada
velocidad maxima
clases
arrancar
acelerar
frenar

113 114

19
Clases: Notacin Grfica Clases: Encapsulacin
Otros ejemplos: La encapsulacin presenta dos ventajas bsicas:
Se protegen los datos de accesos indebidos
lista El acoplamiento entre las clases se disminuye
pila Favorece la modularidad y el mantenimiento

primero Los atributos de una clase no deberan ser


ultimo apilar manipulables directamente por el resto de objetos
aadir desapilar
quitar cardinalidad
cardinalidad

115 116

Clases: Encapsulacin Clases: Encapsulacin


Los niveles de encapsulacin estn heredados de los niveles de
Ejemplo:
C++:

(-) Privado : es el ms fuerte. Esta parte es totalmente


Reglas de visibilidad
invisible (excepto para clases friends en terminologa C++)
+ Atributo pblico : int
(#) Los atributos/operaciones protegidos estn visibles para # Atributo protegido : int
las clases friends y para las clases derivadas de la original
- Atributo privado : int
(+) Los atributos/operaciones pblic os son visibles a otras
clases ( cuando se trata de atributos se est transgrediendo el + "Operacin pblica"
principio de encapsulacin) # "Operacin protegida"
- "Operacin privada"

117 118

Relaciones entre Clases Asociacin


Los enlaces entre de objetos pueden La asociacin expresa una conexin bidireccional
representarse entre las respectivas clases entre objetos
Una asociacin es una abstraccin de la relacin
Formas de relacin entre clases: existente en los enlaces entre los objetos
Asociacin y Agregacin (vista como un
caso particular de asociacin) Univ. de Murcia:Universidad Un enlace Antonio:Estudiante

Generalizacin/Especializacin

Las relaciones de Agregacin y Generalizacin Universidad Estudiante

forman jerarquas de clases Una asociacin

119 120

20
Asociacin Asociacin
Ejemplo: Especificacin de multiplicidad
(mnima...mxima)
marido 1 Uno y slo uno
0..1 Cero o uno
0.. 1
casado -con
0.. 1 M..N Desde M hasta N (enteros naturales)
trabaja-para * Compaa
mujer Persona * * Cero o muchos
emplea -a
jefe nombre nombre 0..* Cero o muchos
0.. 1 s. s. direccin 1..* Uno o muchos (al menos uno)
Administra
* empleado
La multiplicidad mnima >= 1 establece una
restriccin de existencia

121 122

Asociacin Cualificada Agregacin

La agregacin representa una relacin parte_de


Aerolnea nro_billete *
0..1
Viajero entre objetos

En UML se proporciona una escasa caracterizacin


de la agregacin
Tablero 1 1
fila Cuadro
Ajedrez columna

Puede ser caracterizada con precisin


Reduce la multiplicidad del rol opuesto al considerar el valor determinando las relaciones de comportamiento y
del cualificador estructura que existen entre el objeto agregado y
cada uno de sus objetos componentes

123 124

Agregacin: Caracterizacin Agregacin: Caracterizacin


4. Puede existir un objeto parte sin ser componente de un objeto
1. Puede el objeto parte comunicarse directamente con objetos externos
agregado?
al objeto agregado?
Si => flexible
No => inclusiva No => estricta
Si => no inclusiva
5. Cuntos objetos de una clase componente puede tener asociados un objeto
2. Puede cambiar La composicin del objeto agregado? agregado?
Ms de uno => multivaluada
Si => dinmica
Mximo uno => univaluada
No => esttica
6. Puede el objeto agregado no tener objetos de una clase componente en algn
3. Puede el objeto parte ser compartido por ms de un objeto agregado? instante?

No => disjunta Si => co n nulos permitidos


No => con nulos no permitidos
Si => no disjunta
p En UML slo se distingue entre agregacin y composicin
(aggregate composition), siendo esta ltima disjunta y estricta.
125 126

21
Agregacin: Caracterizacin Ejemplos
Las caracterizaciones 1, 3, 4 y 5 estn incluidas en el
concepto ms amplio de multiplicidad

Objeto Agregado coche Persona +Hijos

1 *
Multiplicidad Mnima Multiplicidad Mnima 0..2
0 nulos permitidos 0 flexible
+Padre
> 0 nulos no permitidos > 0 estricta

1
Multiplicidad Mxima Multiplicidad Mxima
motor
1 univaluado 1 disjunto
> 1 multivaluado >1 no disjunto

Objeto Componente
127 128

Ejemplos Clases vs. Objetos


Agregacin Polgono 1 contiene 3.. *
Punto Los Diagramas de Clases y los Diagramas de
{ordenado} Objetos pertenecen a dos vistas complementarias
del modelo
*
Un Diagrama de Clases muestra la abstraccin de
* Persona
Asociacin excluyente una parte del dominio
Cuenta or
*
Empresa Un Diagrama de Objetos representa una situacin
1
concreta del dominio
* est-autorizado -en *
Usuario Estacin Cada objeto es instancia de una clase
Autorizacin
Ciertas clases (clases abstractas o diferidas) no
Clase de asociacin prioridad
pueden ser instanciadas
privilegios
camb_privil 129 130

Jerarquas de ... Jerarquas de


Generalizacin/Especializacin Generalizacin/Especializacin
Permiten gestionar la complejidad mediante un Nombres usados: clase padre - clase hija,
ordenamiento taxonmico superclase - subclase, clase base - clase
derivada
Se obtiene usando los mecanismos de
abstraccin de Generalizacin y/o Especializacin Las subclases heredan caractersticas de sus
La Generalizacin consiste en factorizar las superclases, es decir, atributos y operaciones
propiedades comunes de un conjunto de clases (y asociaciones) de la superclase estn
en una clase ms general disponibles en sus subclases

131 132

22
... Jerarquas de ... Jerarquas de
Generalizacin/Especializacin Generalizacin/Especializacin
Abstracciones ms generales.
La Generalizacin y Especializacin son vehiculo
equivalentes en cuanto al resultado: la
jerarqua y herencia establecidas

Generalizacin y Especializacin no son


operaciones reflexivas ni simtricas pero s
vehiculo terrestre vehiculo areo

transitivas

camion coche avion helicoptero

133 134

... Jerarquas de ... Jerarquas de


Generalizacin/Especializacin Generalizacin/Especializacin
La especializacin es una tcnica muy eficaz para la La nocin de clase est prxima a la de
extensin y reutilizacin
conjunto
coche

Dada una clase, podemos ver el conjunto


relativo a las instancias que posee o bien
funcionando estropeado relativo a las propiedades de la clase

Generalizacin y especializacin expresan


Caracterizacin de la generalizacin en UML: relaciones de inclusin entre conjuntos
disjunta - no disjunta
total (completa) - parcial (incompleta)
135 136

... Jerarquas de ... Jerarquas de


Generalizacin/Especializacin Generalizacin/Especializacin
Particionamiento del espacio de objetos => Un ejemplo de Especializacin Esttica:
Especializacin Esttica
vehiculo areo
Particionamiento del espacio de estados de
los objetos => Especializacin Dinmica

En ambos casos consideraremos


generalizaciones/especializaciones disjuntas
avion helicoptero

137 138

23
... Jerarquas de ... Jerarquas de
Generalizacin/Especializacin Generalizacin/Especializacin
Un ejemplo de Especializacin Dinmica: Extensin: Posibles instancias de una clase

Intensin: Propiedades definidas en una


coche clase

A
int(A) int(B)
funcionando estropeado
ext(B) ext(A)
B

139 140

... Jerarquas de ... Jerarquas de


Generalizacin/Especializacin Generalizacin/Especializacin
Estticas: Dinmicas:

C0 ext(C 0) = ext(C i) C0 ext(C 0) = ext(C i)


ext(C i) ext(Cj ) = extt(C i) extt(Cj ) =
extt1(C i) extt2(Cj )
C1 Cn C1 Cn

141 142

... Jerarquas de ... Jerarquas de


Generalizacin/Especializacin Generalizacin/Especializacin
En la Especializacin Esttica, el objeto es Ejemplo: varias especializaciones a partir de
instancia de la subclase desde su creacin y la la misma superclase:
superclase en las que fue creado. Esta comercial
pertenencia es inmutable
vehiculo areo
Puede haber ms de una especializacin esttica
o dinmica a partir de la misma superclase

militar

avion helicoptero

143 144

24
... Jerarquas de ... Jerarquas de
Generalizacin/Especializacin Generalizacin/Especializacin
En la Especializacin Dinmica un objeto puede Ejemplo: especializaciones dinmicas de la
migrar durante su vida entre las distintas misma superclase:
subclases de la especializacin
de menos de 1000kms
La migracin puede definirse en funcin de su coche
estado o de los eventos que le acontezcan

de ms de 1000 kms
funcionando estropeado

145 146

... Jerarquas de ... Jerarquas de


Generalizacin/Especializacin Generalizacin/Especializacin
Un ejemplo combinado:
El siguiente es un ejemplo de clasificacin no
equilibrada:
vehiculo

comercial

vehiculo terrestre vehiculo areo


vehiculo terrestre
esttica

esttica
esttica militar

camion avion helicoptero

de menos de 1000kms coche


dinmica camion coche Harley Davidson
de ms de 1000 kms

dinmica

funcionando estropeado
147 148

... Jerarquas de ... Jerarquas de


Generalizacin/Especializacin Generalizacin/Especializacin
Por regla general, es mejor limitar el nmero Ejemplo: mariposa
de subclases a cada nivel a costa de
aumentar el nmero de objetos por clase y
reservar los atributos para cualificar oruga crislida Lepidptero
afinadamente los objetos
Aspecto
A veces, una especializacin dinmica tiene mariposa estadio
1
un equivalente a travs de una
especializacin esttica y una asociacin ...
oruga crislida Lepidptero

149 150

25
Herencia Mltiple Herencia Mltiple
Se presenta cuando una subclase tiene ms de La multiplicidad de la clasificacin mltiple se
una superclase puede representar tambin mediante
asociaciones:
La herencia mltiple debe manejarse con Realiza >
precaucin. Algunos problemas son el conflicto Clase Tipo
de nombre y el conflicto de precedencia *

Se recomienda un uso restringido y disciplinado


de la herencia. Java y Ada 95 simplemente no Tipo A Tipo B Tipo C
ofrecen herencia mltiple

151 152

Herencia Mltiple Delegacin


Uso disciplinado de la herencia mltiple
La herencia no es una necesidad absoluta y
conejo siempre puede sustituirse por delegacin
con pelo
Herbvoro
Disminuye el acoplamiento: el cliente no
conoce directamente al proveedor y el
proveedor puede ser modificado sobre la
con plumas
omnvoro
Animal marcha
con escamas

Permite implementar herencia mltiple en


carnvoro

Bipedo Cuadrpedo lenguajes con herencia simple

153 154

Delegacin Principio de Sustitucin


Ejemplo: delegacin en lugar de herencia El Principio de Sustitucin de Liskow (1987)
mltiple Animal
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
x Locomocin x Alimento

los trminos de la superclase se vea


afectado.
Bpedo Cuadrpedo Herbvoro Carnvoro

155 156

26
Principio de Sustitucin Polimorfismo
Dado que los programadores pueden introducir El trmino polimorfismo se refiere a que una
cdigo en las subclases redefiniendo las caracterstica de una clase puede tomar
operaciones, es posible introducir involuntaria- varias formas
mente incoherencias que violen el principio de El polimorfismo representa en nuestro caso
sustitucin la posibilidad de desencadenar operaciones
distintas en respuesta a un mismo mensaje
El polimorfismo que veremos a continuacin no
Cada subclase hereda las operaciones pero
debera implementarse sin este principio tiene la posibilidad de modificar localmente
el comportamiento de estas operaciones

157 158

Polimorfismo Polimorfismo
Ejemplo: todo animal duerme, pero cada Zoo
1
Animal Dormir()

clase lo hace de forma distinta {

* }

Zoo Animal
1
?
*
dormir
Len Oso Tigre

Len Oso Tigre Dormir() Dormir() Dormir()


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

Polimorfismo Comentarios
Los Diagramas de Clases v/s los modelos de
La bsqueda automtica del cdigo que en datos (Diagramas Entidad -Relacin)
cada momento se va a ejecutar es fruto del
enlace dinmico

El cumplimiento del Principio de Sustitucin


permite obtener un comportamiento y diseo
coherente

161 162

27
Diagramas de Estados
Los Diagramas de Estados representan
autmatas de estados finitos, desde el p.d.v.
de los estados y las transiciones
Diagramas de Estados Son tiles slo para los objetos con un
comportamiento significativo
El resto de objetos se puede considerar que
tienen un nico estado
El formalismo utilizado proviene de los
Statecharts (Harel)

163 164

Diagramas de Estados Diagramas de Estados


Cada objeto est en un estado en cierto instante Los D. de Estados son autmatas jerrquicos
El estado est caracterizado parcialmente por los que permiten expresar concurrencia,
valores de los atributos del objeto sincronizacin y jerarquas de objetos
El estado en el que se encuentra un objeto Los Diagramas de Estados son grafos dirigidos
determina su comportamiento Los D. De Estados de UML son deterministas
Cada objeto sigue el comportamiento descrito en Los estados inicial y final estn diferenciados del
el D. de Estados asociado a su clase resto
Los D. De Estados y escenarios son complementarios La transicin entre estados es instantnea y se debe
a la ocurrencia de un evento

165 166

Diagramas de Estados Diagramas de Estados


Ejemplo de un Diagrama de Estados para la La comunicacin bidireccional puede
clase persona: representarse mediante comunicacin
contratar asncrona. Por ejemplo en un Diagrama de
en el paro en activo Colaboracin:
perder empleo
1: una pregunta
jubilarse un otro
jubilarse objeto objeto
2: la respuesta
jubilado

167 168

28
Diagramas de Estados Diagramas de Estados
Si la comunicacin es sncrona el cliente Las guardas permiten condicionar la
debe esperar la respuesta. Con lo cual en el transicin:
cliente tendramos:
Evento[ condicin ]
a a b

plantear pregunta

espera respuesta recibir respuesta


c

169 170

Acciones Acciones
Podemos especificar la ejecucin de una Podemos especificar el envo de un evento a
accin como consecuencia de la transicin: otro objeto como consecuencia de la
transicin:
a
Evento[ condicin ] / accin
a b

Evento( arg1, arg2 )[ condicin ] / ^otro_objeto.evento(arg2)

Dicha accin tambin se


considera instantnea b

171 172

Acciones .. Acciones
Se puede especificar el hacer una accin Se puede especificar el hacer una accin
como consecuencia de entrar, salir o estar cuando ocurre en dicho estado un evento
en un estado: que no conlleva salir del estado:

estado A estado A
entry: accin por entrar on evento_activador( arg1 )[ condicin ]: accin por evento
exit: accin por salir
do: accin mientras en estado

173 174

29
Actividades Actividades
Las actividades son similares a las acciones Cuando una actividad finaliza se produce una
pero tienen duracin y se ejecutan dentro de transicin automtica de salida del estado
un estado del objeto [ not condicin ]
a b
Las actividades pueden interrumpirse en do: actividad
todo momento, cuando se desencadena la
operacin de salida del estado [ condicin ]

175 176

Generalizacin de Estados Generalizacin de Estados


Podemos reducir la complejidad de estos Ejemplo:
diagramas usando la generalizacin de
estados e1
Distinguimos as entre superestado y a b
subestados
Un estado puede contener varios subestados e2

disjuntos e2
Los subestados heredan las variables de c
estado y las transiciones externas

177 178

Generalizacin de Estados Generalizacin de Estados


Quedara como: Las transiciones de entrada deben ir hacia
subestados especficos:
e1 e1
a b
a b

e2

e0
e2

c
c

179 180

30
Generalizacin de Estados Generalizacin de Estados
Es preferible tener estados iniciales de Es posible ocultar los detalles de los sub-
entrada a un nivel de manera que desde los estados:
niveles superiores no se sepa a qu
subestado se entra:
e1 c
a b e0
c
e2
e0

181 182

Generalizacin de Estados Generalizacin de Estados


La agregacin de estados es la composicin Ejemplo:
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 e1
e1

183 184

Historial Historial
Por defecto, los autmatas no tienen Ejemplo:
memoria a

Es posible memorizar el ltimo subestado d2


visitado para recuperarlo en una transicin
entrante en el superestado que lo engloba h
in
x y

out
d1

H
185 186

31
Historial Historial
Tambin es posible la memorizacin para Ejemplo:
cualquiera de los subestados anidados (aparece
un * junto a la H) Enjuague Lavado Secado
a

d2

H
in
h x y

out Cerrar
Abrir Puerta Abrir Puerta
Cerrar
d1

H*
Espera

187 188

Destruccin del Objeto Destruccin de Objeto


La destruccin de un objeto es efectiva Ejemplo:
cuando el flujo de control del autmata
alcanza un estado final no anidado crash
En vuelo

La llegada a un estado final anidado implica


la subida al superestado asociado, no el fin despegar aterrizar
del objeto Crear(matricula)
En tierra

189 190

Transiciones temporizadas Transiciones temporizadas


Las esperas son actividades que tienen Ejemplo: a
asociada cierta duracin

La actividad de espera se interrumpe cuando Si en 30 segundos no se / Abrir ranura

introduce el dinero se
el evento esperado tiene lugar termina la actividad esperar dinero
anular transaccin
pasando a anular la entry: Mostrar mensaje
Este evento desencadena una transicin que transaccin. En do: Esperar 30 segundos
exit: cerrar ranura
permite salir del estado que alberga la cualquier caso se cierra
la ranura.
actividad de espera. El flujo de control se Depsito efectuado
transmite entonces a otro estado
b
191 192

32
Transiciones temporizadas Diagrama de Actividades
Ejemplo v.2: a El Diagrama de Actividades es una variante
de los Diagramas de Estados, organizado
/ Abrir ranura
respecto de las acciones y principalmente
destinado a representar el comportamiento
esperar dinero Temporizador interno de un mtodo (la realizacin de una
entry: Mostrar mensaje
(30 segundos)
anular transaccin
operacin), de un caso de uso o de un
exit: cerrar ranura proceso de negocio (Workflow)

Depsito efectuado
Una actividad puede considerarse un
estereotipo de estado
b

193 194

...Diagrama de Actividades Ejemplos


[no hay caf] [no zumo]
Buscar Bebida
Las actividades se enlazan por transiciones [hay caf [hay zumo]
automticas
Poner caf en filtro Aadir agua al depsito Coger taza
Cuando una actividad termina se
desencadena el paso a la siguiente actividad Poner filtro en mquina Coger zumo

Las actividades no poseen transiciones Encender mquina


internas ni transiciones desencadenadas por ^cafetera.On

eventos Caf en preparacin


indicador de fin
Servir caf
Beber

195 196

...Ejemplos (con bandas)


Pasajero Vendedor Airline

Solicitar pasaje
Verificar

Modelado de Componentes
existencia vuelo

Dar detalles vuelo

Informar alternativas
y precios
Seleccionar vuelo

Solicitar pago Reservar plazas

Confirmar
Pagar pasaje plaza reservada

Emitir billete

197 198

33
Diagrama de Componentes ...Diagramas de Componentes
Los diagramas de componentes describen los Los componentes representan todos los tipos
elementos fsicos del sistema y sus relaciones de elementos software que entran en la
fabricacin de aplicaciones informticas.
Muestran las opciones de realizacin Pueden ser simples archivos, paquetes de
incluyendo cdigo fuente, binario y ejecutable Ada, bibliotecas cargadas dinmicamente,
etc.
Cada clase del modelo lgico se realiza en
dos componentes: la especificacin y el
cuerpo

199 200

Diagramas de Componentes Diagramas de Componentes


La representacin grfica es la siguiente: En C++ una especificacin corresponde a un
archivo con un sufijo .h y un cuerpo a un
Especificacin Cuerpo Genrico
archivo con un sufijo .cpp

En Ada la nocin de mdulo existe


directamente en el lenguaje con el nombre
del paquete

Package Package Generic


specification body package

201 202

Dependencias entre Componentes Subsistemas


Las relaciones de dependencia se utilizan en Los distintos componentes pueden agruparse en
los diagramas de componentes para indicar paquetes segn un criterio lgico y con vistas a
que un componente utiliza los servicios simplificar la implementacin
ofrecidos por otro componente Son paquetes estereotipados en <<subsistemas>>

<<subsistema>>
NewPackage4

203 204

34
Subsistemas
Los subsistemas organizan la vista de realizacin de
un sistema
Cada subsistema puede contener componentes y
otros subsistemas Modelado de Distribucin
La descomposicin en subsistemas no es
necesariamente una descomposicin funcional
Paquetes (Categorias) y clases en el nivel lgico.
Paquetes (Subsistemas) y componentes en el nivel
fsico

205 206

Diagramas de Distribucin Diagramas de Distribucin


Los Diagramas de Distribucin muestran la Los estereotipos permiten precisar la
disposicin fsica de los distintos nodos que naturaleza del equipo:
componen un sistema y el reparto de los Dispositivos
componentes sobre dichos nodos Procesadores
Memoria

Los nodos se interconectan mediante


Nodo
soportes bidireccionales (en principio) que
pueden a su vez estereotiparse

207 208

Diagramas de Distribucin
Ejemplo de conexin entre nodos:

<<Procesador> <<dispositivo>>
Proceso de Desarrollo
Nodo <<<<TCP/IP>>>>
conexin1
nodo2 de SW con UML
conexin7
<<RDSI>>
dispositiv
En Rational Rose podemos
o
distinguir entre el dispositivo por
estereotipado y el dispositivo con
su propio smbolo

209 210

35
Hacia un Mtodo OO Hacia un Mtodo OO
Un proceso de desarrrollo de programas UML no incorpora por s mismo el modelo de
tiene como objetivo la formalizacin de las proceso
actividades relacionadas con la elaboracin Los autores destacan las siguientes caractersticas
de sistemas informticos
de UML como esenciales para determinar el proceso
Debe ser: de desarrollo:
Reproducible
Est dirigido por los casos de uso: desde la especificacin
Definido
hasta el mantenimiento
Medible en cuanto a rendimiento
Optimizable Se centra en la arquitectura: reutilizable y como gua
... hasta la solucin
Iterativo e incremental: el trabajo se divide en iteraciones
pequeas en funcin de la importancia de los casos de
uso y el estudio de riesgos
211 212

Hacia un Mtodo OO Hacia un Mtodo OO


Requisitos Anlisis Diseo Implement. Pruebas
Las 4+1 vistas de Kruchten (1995):

Vista de
Vista Lgica Realizacin
Los Casos de Uso forman la unin Vista de los
Casos de Uso

Vista de Vista de
Procesos Distribucin

Capturar, clarificar y Realizar los casos de Verificar se


validar los casos de uso satisfacen los casos
uso
de uso
213 214

Ciclo de Vida Iterativo e ...Ciclo de Vida Iterativo e


Incremental Incremental
Las actividades se encadenan en una mini-
El ciclo de vida iterativo se basa en la cascada con un alcance limitado por los
evolucin de prototipos ejecutables que se objetivos de la iteracin
muestran a los usuarios y clientes
En el ciclo de vida iterativo a cada iteracin
Anlisis
se reproduce el ciclo de vida en cascada a
menor escala Diseo
Los objetivos de una iteracin se establecen
en funcin de la evaluacin de las iteraciones Codific.
precedentes n veces Pruebas e
Integracin
215 216

36
...Ciclo de Vida Iterativo e
Incremental Gestin del Riesgo
Cada iteracin comprende: El anlisis de riegos consiste en evaluar el
proyecto, la tecnologa y los recursos con el fin
Planificar la iteracin (estudio de riesgos)
determinar y comprender la naturaleza y el
Anlisis de los Casos de Uso y escenarios origen de los riesgos
Diseo de opciones arquitectnicas
Riesgos:
Codificacin y pruebas. La integracin del nuevo Comerciales (competencia, etc.)
cdigo con el existente de iteraciones anteriores Financieros (econmicos, etc.)
se hace gradualmente durante la construccin
Tcnicos (base tecnolgica slida y probada?)
Evaluacin de la entrega ejecutable (evaluacin
De desarrollo (equipo experimentado?)
del prototipo en funcin de las pruebas y de los
criterios definidos) El mayor riesgo consiste en no saber dnde
Preparacin de la entrega (documentacin e estn los riesgos
instalacin del prototipo)
217 218

...Gestin del Riesgo Reparto de Actividades


Actividades Fases
Cada iteracin se basa en la construccin de un Ince ption Elabora tion Construc tion Tr ansition
nmero reducido de escenarios que se centran
primero en los riesgos ms importantes y Requisitos

determinan las clases y las categoras a


Una iteracin en la
fase de elaboracin

construir en la iteracin Anlisis

Se distinguen prototipos orientados a la interfaz


del usuario, a cuestiones Hw, de reutilizacin de Diseo

programas o a la validacin funcional


Implementacin
Cada prototipo corresponde a 1 ms casos de
uso Pruebas

P r eli m in ary iter. iter. iter. iter. ite r. i te r. iter.


219 I te ratio n (s) #1 #2 #n #n +1 #n + 2 #m #m + 1 220

Fases del Ciclo de Vida ...Fases del Ciclo de Vida


El ciclo de vida para UML consiste en una serie Estudio de oportunidad (inception)
de ciclos cada uno de los cuales produce una Define el mbito y objetivos del proyecto
nueva versin del producto Se define la funcionalidad y capacidades del
Cada ciclo est compuesto por fases y cada una producto
de estas fases est compuesta por un nmero Elaboracin
de iteraciones Tanto la funcionalidad como el dominio del
Las fases son: problema se estudian en profundidad
Estudio de oportunidad Se define una arquitectura bsica
Elaboracin Se planifica el proyecto considerando recursos
Construccin disponibles
Transicin

221 222

37
...Fases del Ciclo de Vida ...Fases del Ciclo de Vida
Construccin Transicin
El producto se desarrolla a travs de iteraciones
donde cada iteracin involucra tareas de anlisis, Se libera el producto y se entrega al usuario
diseo e implementacin para un uso real
Las fases de estudio y anlisis slo dieron una Se incluyen tareas de marketing, empaquetado
arquitectura bsica que es aqu refinada de manera atractivo, instalacin, configurac in,
incremental conforme se construye (se permiten
entrenamiento, soporte, mantenimiento, etc.
cambios en la estructura)
Gran parte del trabajo es programacin y pruebas Los manuales de usuario se completan y refinan
Se documenta tanto el sistema construido como el con la informacin anterior
manejo del mismo Estas tareas se realizan tambin en iteraciones
Esta fase proporciona un producto construido junto
con la documentacin

223 224

Esfuerzo Respecto de las Actividades ...Esfuerzo Respecto de las Fases


Inception Ela boration C onstr uction Tra nsition Inception Ela boration C onstr uction Tra nsition

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

Diseo 15% Diseo

30% Implementacin
Implementacin

Pruebas 15% Pruebas

P re lim i na ry i ter. i te r. i te r. i te r. iter. iter. ite r. P re lim i na ry i ter. i te r. i te r. i te r. iter. iter. ite r.
Iter atio n(s) #1 #2 #n # n+ 1 #n +2 #m # m +1 Iter atio n(s) #1 #2 #n # n+ 1 #n +2 #m # m +1

5% mantenimiento 10% gestin cambios Esfuerzo: 5% 20% 65% 10%


225 Duracin: 10% 30% 50% 10% 226

Claves en el Desarrollo de SI
Notacin
UML

Conclusiones

Herramientas Proceso
p.e. Rational Rose p.e. Proceso Unificado

227 228

38
Contexto de Desarrollo :
Grado de Complejidad 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
229 230

... Finalmente Bibliografa Recomendada


UML
Apostar por enfoque Orientado a Objetos www.omg.org/ uml/
usando notacin UML Martin Fowler , UML Destilled (UML Gota a Gota)
Terry Quatrani , Visual Modeling ..., un caso de estudio
Problemas actuales en implementacin, al usar
entornos de programacin visual y/o bases de Herramientas CASE
datos relacionales International Council in SE (INCOSE) Tools Database
Working Group . www.incose.org/tools/
Posibles mejoras a mediano plazo Otras
Evolucin: Uso de BDOO y/o mejoras en los LPOO Desmond DSouza, componentes
Revolucin: Generacin Automtica de Cdigo a www.enteract.com / bradapp/docs/patterns -intro.html,
partir de Modelos OO (Compilacin de Modelos) patrones
Revista IEEE Software, Conferencias: OOPSLA, ECOOP

231 232

39

También podría gustarte