You are on page 1of 21

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Construccin de una casa para fido

Construccin de una casa

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

Construida eficientemente y en un tiempo razonable por un equipo Requiere : Modelado Proceso bien definido Herramientas ms sofisticadas
1 2
" www.d s i c.upv. e s / ~uml

" www.d s i c.upv. e s / ~uml

Construccin de un rascacielos

Claves en Desarrollo de SI
Notacin

Herramientas

Proceso

3
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

Abstraccin - Modelado Visual (MV)


El modelado captura las partes esenciales del sistema
Orden Item

MV para manejar la complejidad

envo

Proceso de Negocios Sistema Computacional


5
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

MV para definir la Arquitectura del Software


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

MV promueve la reutilizacin
Mltiples Sistemas

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

Componentes Reutilizados

Modelar el sistema independientemente del lenguaje de implementacin


" www.d s i c.upv. e s / ~uml

7
" www.d s i c.upv. e s / ~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 Orientado a Objetos Modelado de Datos Modelado de Componentes Modelado de Flujos de Trabajo ( Workflows)
9
" www.d s i c.upv. e s / ~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) => Necesidad de una notacin estndar
10
" www.d s i c.upv. e s / ~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

Historia de UML
2001 ? 2000 1999 1998 Nov 97
UML aprobado por el OMG

UML 2.0 UML 1.4 UML 1.3


Revisiones menores

UML 1.2

11
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

12

" www.dsic.upv.es/~uml

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

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)

UML aglutina enfoques OO


Rumbaugh Booch Odell Shlaer-Mellor
Object life cycles

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

Jacobson Meyer
Pre- and Post-conditions

UML
Harel
State Charts

Gamma et. al.


Frameworks, patterns, notes

Embly
Singleton classes

Wirfs-Brock Fusion
Responsabilities Operation descriptions, message numbering

13
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

14

Mtodos Formales en Modelado


Tipos de enfoques: no-formales, semiformales y formales Las principales mejoras al utilizar mtodos formales son:
Mayor rigor en la especificacin Mejores condiciones para realizar la verificacin y validacin en forma ms exhaustiva Mejores condiciones para automatizacin de procesos para la generacin automtica de prototipos y/o cdigo final

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 entorno a UML

15
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

16

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

Diagramas de UML
Use Case Use Case de Diagramas Diagrams Diagrams Secuencia Scenario Scenario Diagrams Diagramas Diagrams de Colaboracin Scenario Scenario de Diagrams Diagramas Diagrams Estados Use Case Use Case de Diagramas Diagrams Diagrams Casos de Uso State State de Diagramas Diagrams Diagrams Clases State State de Diagramas Diagrams Diagrams Objetos State State Diagrams Diagramas Diagrams de Componentes
Component Component Diagrams Diagramas Diagrams

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

Modelo

Diagramas de Actividad

de Distribucin

Un modelo es una descripcin completa de un sistema desde una perspectiva concreta


17
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

18

" www.dsic.upv.es/~uml

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Paquetes en UML
Los paquetes ofrecen un mecanismo general para la organizacin de los modelos agrupando elementos de modelado Se representan grficamente como:
Nombre de paquete

Paquetes en UML
Cada paquete corresponde a un subconjunto del modelo y contiene, segn el modelo, clases, objetos, relaciones, componentes y diagramas asociados U n p a q u e t e p u e d e c o n t e n e r o t r o s p a q u e t e s , sin lmite de anidamiento pero cada elemento pertenece a (est definido en) slo un paquete

19
" www.d s i c.upv. e s / ~uml " w w w .d s i c.u p v . e s / ~u m l

20

Paquetes en UML
Una clase de un paquete puede aparecer en otro paquete por la importacin a travs de una relacin de dependencia entre paquetes Todas las clases no son necesariamente visibles desde el exterior del paquete, es decir, un paquete encapsula a la vez que agrupa

El Paradigma Orientado a Objetos

21 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

22

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

Por qu la Orientacin a Objetos?


Conceptos comunes de modelado durante el anlisis, diseo e implementacin

Facilita la transicin entre distintas fases

Modelado integrado de propiedades estticas y dinmicas del mbito del problema


Facilita construccin, mantenimiento y reutilizacin

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

Sin embargo, existen problemas ...

23 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

24

" www.dsic.upv.es/~uml

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

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
25 " w w w .d s i c.u p v . e s / ~u m l

Objetos
Objeto = unidad atmica que integra estado y comportamiento La e n c a p s u l a c i n e n u n o b j e t o p e r m i t e una alta cohesin y un bajo acoplamiento Un objeto puede caracterizar una entidad fsica (coche) o concepto (ecuacin matemtica)

26 " w w w .d s i c.u p v . e s / ~u m l

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

Objetos
Ejemplo de varios objetos relacionados:
Dos clientes del banco Cuenta corriente

Felipe

Juan

Libreta de ahorro a plazo

Un Objeto

Otro Objeto
27 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

Libreta de ahorro Cuenta corriente


28

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

Identidad
O i d ( Object Identifier) Cada objeto posee un o i d. El o i d 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
29 30 " w w w .d s i c.u p v . e s / ~u m l

Un coche Azul 979 Kg 70 CV ...

" w w w .d s i c.u p v . e s / ~u m l

" w w w.dsic.u p v.es/~u m l

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

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 o i d no se reutiliza aunque el objeto deje de existir No se tiene ningn control sobre los oids y su manipulacin resulta transparente

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

Sin embargo, es preciso contar con algn medio para hacer referencia a un objeto utilizando referencias del dominio (valores de atributos)

31 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

32

Comportamiento
Ejemplo de interaccin:
Otro objeto

Comportamiento
Los mensajes navegan por los enlaces, a priori en ambas direcciones Estado y comportamiento estn relacionados

Un mensaje

Ejemplo: no es posible aterrizar un avin si


Operacion 2 Un objeto Operacion 1

no est volando. Est volando como consecuencia de haber despegado del suelo

33 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

34

Persistencia
La persistencia de los objetos designa la capacidad de un objeto trascender en el espacio/tiempo Un objeto persistente conserva su estado en un si stema d e almac enam ient o permanent e (usualmente memoria secundaria) 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, pues sta debera ser transparente, un objeto existe desde su creacin hasta que se destruya

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

35 " w w w .d s i c.u p v . e s / ~u m l

36

" w w w .d s i c.u p v . e s / ~u m l

" w w w.dsic.u p v.es/~u m l

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Comunicacin
Categoras de objetos :
Act ivos Pasivos Clientes Servidores

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

Objeto Activo: po s e e un hilo de ejecucin (t h r e a d ) 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
37 " w w w .d s i c.u p v . e s / ~u m l

El mensaje es el soporte de una comunicacin que vincula dinmicamente los objetos que fueron separados previamente en el proceso de descomposicin. Una operacin es la especificacin y la implementacin de una funcin efectuada por un objeto.
38 " w w w .d s i c.u p v . e s / ~u m l

El Concepto de Operacin
Las operaciones menipulan los atributos del objeto. Pueden tener parmetros de entrada y/o salida. Un mensaje de un objeto a otro involucra la ejecucin de una operacin.

El Concepto de Operacin
El nombre del mensaje es el de la operacin. Los parmetros del mensaje son los parmetros de la operacin.

39 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

40

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

Casos de Uso

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 C omparacin con respecto a los Diagramas de Flujo de Datos del Enfoque Estructurado
" w w w .d s i c.u p v . e s / ~u m l

41 " w w w .d s i c.u p v . e s / ~u m l

42

" w w w.dsic.u p v.es/~u m l

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

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

Ejemplo de Casos de Uso


Caso de Uso: Comprar productos Actores: Cliente, Cajero Tipo: Primario
comprar productos

Descripcin: Un cliente llega a la caja registradora con los artculos que comprar. El cajero registra los artculos y cobra el importe. Al terminar la operacin el cliente se marcha con los productos.
43 44 " w w w .d s i c.u p v . e s / ~u m l

" w w w .d s i c.u p v . e s / ~u m l

Casos de Uso
Ejemplo:
Sistema

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

Caso de uso X

La misma persona fsica puede interpretar varios papeles como actores distintos
Actor A Actor B

El nombre del actor describe el papel desempeado


Caso de uso Y
45 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l 46

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

Casos de Uso: Relaciones


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

Actor Caso de Uso

47 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

48

" w w w.dsic.u p v.es/~u m l

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Casos de Uso: Relaciones


I n c l u s i n : una instancia del Caso de Uso origen incluye tambin el comportamiento descrito por el Caso de Uso destino

Casos de Uso: Relaciones


E x t e n s i n : el Caso de Uso origen extiende el comportamiento del Caso de Uso destino

<<include>>
Caso de uso destino

< <e x t e n d > >

Caso de uso origen

Caso de uso destino

En UML se estereotipa como <<include> >

Caso de uso origen

49 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

50

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

Casos de Uso: Relaciones


Ejemplo:

< < ee xx te nn d d> s>> << te > Giro por Transferen cia p o r Internet Internet Cliente <<includes>> < <i n c l u d e >>

Giro Transferencia

Caso de uso destino

Caso de uso origen

Identificacin

51 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

52

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?

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?

53 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

54

" w w w.dsic.u p v.es/~u m l

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

R F- < i d d e l r e q u i s i t o > Versin Autores Fuentes Objetivos asociados Descripcin

Precondicin Secuencia Normal

P o s t c on d i c i n Excepciones

Rendimiento

Frecuencia esperada Importancia Urgencia C o m e ntarios " w w w .d s i c.u p v . e s / ~u m l

<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 e n 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 { E l < a c t o r > , E l s i s t e m a } < a ccin realizada por el actor o sistema>, se realiza el caso de uso < c a s o d e u s o R F -x > 2 Si <condicin>, {el <actor> , el sistema} <accin realizada por el actor o sistema>>, se realiza el c a s o d e u s o < c a s o d e u s o R F- 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 < c a s o d e u s o R F -x > , a c o n t i n u a c i n e s t e c a s o d e u s o { c o n t i n u a, 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>

Modelado de Interacciones

55 " w w w .d s i c.u p v . e s / ~u m l

56

Interaccin
L o s o b j e t o s i n t e r a c t a n 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 i n t e r a c c i n : l o s Di a g r a m a s d e Co l a b o r a c i n y los D i a g r a m a s d e S e c u e n c i a.

Diagramas de interaccin
Los Diagramas de Secuencia son ms adecuados estn para observar la perspectiva cronolgica de las interacciones Los Diagramas de Colaboracin ofrecen una mejor visin espacial mostrando los enlaces de comunicacin entre objetos Normalmente el D. de Colaboracin se obtiene a partir del correspondiente D. de Secuencia

57 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

58

Diagramas de Secuencia
Muestra la secuencia de mensajes entre objetos durante un escenario concreto. Cada objeto viene dado por una barra v e r t i c a l. E l t i e m p o t r a n s c u r r e d e a r r i b a a b a j o. Cuando existe demora entre el envo y la atencin se puede indicar usando una lnea oblicua.

Diagramas de Secuencia
Un ejemplo:
A B C

m1

m2

m3

m4

m5

59 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

60

" w w w.dsic.u p v.es/~u m l

10

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Diagramas de Secuencia
Ejemplo
Quien llama Lnea telefnica Llamado descuelga

Estructuras de control
Podemos representar iteraciones en el envo de mensajes, p.e., mientras se cumpla una condicin:

tono

marcar

Las bandas rectangulares representan los periodos de actividad de los objetos

indicacin de llamada

timbre

descuelga

While X Loop end Loop

diga?

61 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

62

Estructuras de control
La iteracin puede expresarse tambin como parte del mensaje:

Estructuras de control
Las bifurcaciones condicionales pueden representarse de esta forma:

*[condicin] Mensaje

If condicin else end if

63 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

64

Diagramas 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

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 :M e n s a j e

65 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

66

" w w w.dsic.u p v.es/~u m l

11

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Mensajes
Un mensaje se enva iterada y secuencialm ente a un conjunto de instancias :

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

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

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

67 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

68

Mensajes
Un mensaje se enva de manera condicionada:

Mensajes
Un mensaje que devuelve un resultado:

[x>y] 1: Mensaje B A A

1: d i s t a n c i a:= m o v e r ( x , y ) B

69 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

70

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

Modelado Conceptual

71 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

72

" w w w.dsic.u p v.es/~u m l

12

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Clases
Modelado Conceptual:
Organizacin del conocimiento del dominio del problema en un conjunto de abstracciones ordenadas de forma que se obtiene un conocimiento ms profundo del problema

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

73 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

74

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

Clases: Encapsulacin
La e n c a p s u l a c i n p r e s e n t a d o s v e n t a j a s bsicas:
Se protegen los datos de accesos indebidos El acoplamiento entre las clases se disminuye Favorece la modularidad y el mantenimiento

Lo s a t r i b u t o s d e u n a c l a s e n o d e b e r a n s e r manipulables directamente por el resto de objetos

75 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

76

Relaciones entre Clases


Los enlaces entre de objetos pueden r e p r e s e n t a r s e entre las respectivas clases Formas de relacin entre clases:
Asociacin y Agregacin (vista como un caso particular de asociacin) Generalizacin/Especializacin

Asociacin
La asociacin expresa una conexin bidireccional entre objetos Una asociacin es una abstraccin de la relacin existente en los enlaces entre los objetos

Univ. de Murcia:Universidad

Un enlace

Antonio:Estudiante

Las relaciones de Agregacin y Generalizacin forman jerarquas de clases

Universidad Una asociacin

Estudiante

77 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

78

" w w w.dsic.u p v.es/~u m l

13

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Asociacin
Ejemplo:

Asociacin
Especificacin de multiplicidad ( m n i m a . . . m x i m a )
1 Uno y slo uno Cero o uno D es d e M hasta N ( e n t e r o s n a t u r a l e s ) Cero o muchos Cero o muchos U no o muchos (al menos uno)

marido casado-con 0.. 1 0.. 1 mujer Persona

0..1 M..N * 0..* 1..*

trabaja-para emplea-a

* Compaa nombre direccin

Administra

nombre jefe 0.. 1 s. s. * empleado

La multiplicidad mnima >= 1 establece una restricci n de existencia

79 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

80

Asociacin Cualificada

Agregacin
Viajero

Aerolnea

nro_billete

0..1

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

Tablero Ajedrez

fila columna

Cuadro

Reduce la multiplicidad del rol opuesto al considerar el valor del cualificador

81 " w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

82

Ejemplos

Ejemplos
Agregacin
coche 1 0..2 +Padre 1 motor Persona +Hijos * * *

Polgono

contiene

3.. *

Punto

{ordenado}

Persona Empresa

Cuenta
*

or
1

Asociacin excluyente

Usuario *

est-autorizado-en

Estacin

Clase de asociacin
83
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

Autorizacin prioridad privilegios camb_privil


84

" w w w.dsic.u p v.es/~u m l

14

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Jerarquas de Generalizacin/Especializacin
Permiten gestionar la complejidad mediante un ordenamiento taxonmico Se obtiene usando los mecanismos de abstraccin de Generalizacin y/o Especializacin La Generalizacin consiste en factorizar l as propiedades comunes de un conjunto de clases en una clase ms general

... Jerarquas de Generalizacin/Especializacin


Nombres usados: clase padre - clase hija, superclase - subclase, clase base - clase derivada Las subclases heredan caractersticas de sus superclases, es decir, atributos y operaciones (y asociaciones) de la superclase estn disponibles en sus subclases

85
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

86

... Jerarquas de Generalizacin/Especializacin


Abstracciones ms generales. vehiculo

... Jerarquas de Generalizacin/Especializacin


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

vehiculo terrestre

vehiculo areo

funcionando

estropeado

Caracterizacin de la generalizacin en UML:


camion
" www.d s i c.upv. e s / ~uml

coche

avion

helicoptero
87

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


88
" www.d s i c.upv. e s / ~uml

... Jerarquas de Generalizacin/Especializacin


Un ejemplo combinado:
vehiculo

Herencia Mltiple
Se presenta cuando una subclase tiene ms de una superclase

comercial

vehiculo terrestre

vehiculo areo esttica

esttica esttica militar

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
89 90
" www.d s i c.upv. e s / ~uml

camion

avion

helicoptero

de menos de 1000kms dinmica de ms de 1000 kms

coche

dinmica

funcionando

estropeado

" www.d s i c.upv. e s / ~uml

" www.dsic.upv.es/~uml

15

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Polimorfismo
El trmino polimorfismo se refiere a que una caracterstica de una clase puede tomar varias formas El polimorfismo representa la posibilidad de desencadenar operaciones distintas en respuesta a un mismo mensaje

Polimorfismo
Zoo 1 * Animal Dormir() { }

Len

Oso

Tigre

Cada subclase hereda las operaciones pero tiene la posibilidad de modificar localmente el comportamiento de estas operaciones
91
" www.d s i c.upv. e s / ~uml

Dormir() { sobre el vientre }


" www.d s i c.upv. e s / ~uml

Dormir() { sobrela espalda }

Dormir() { en un rbol }
92

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

Diagramas de Estados

93
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

94

Diagramas 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 resto de objetos se puede considerar que tienen un nico estado El formalismo utilizado proviene de los Statecharts (Harel)

Diagramas de Estados
Cada objeto est en un estado en cierto instante El estado est caracterizado parcialmente por los valores 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

95
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

96

" www.dsic.upv.es/~uml

16

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Diagramas de Estados
Los D. de Estados son autmatas jerrquicos que permiten expresar concurrencia, sincronizacin y jerarquas de objetos Los Diagramas 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

Diagramas de Estados
Ejemplo de un Diagrama de Estados para la clase persona:
contratar en el paro perder empleo jubilarse jubilarse en activo

jubilado

97
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

98

Diagramas de Estados
Las guardas permiten condicionar la transicin:
a Evento[ condicin ] b

Acciones
Podemos especificar la ejecucin de una accin como consecuencia de la transicin:

Evento[ condicin ] / accin

Dicha accin tambin se considera instantnea


99
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

100

Acciones
Podemos especificar el envo de un evento a otro objeto como consecuencia de la transicin:
a

Acciones
Se puede especificar el hacer una accin como consecuencia de entrar, salir o estar en un estado:
estado A entry: accin por entrar

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

exit: accin por salir do: accin mientras en estado

b
101
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

102

" www.dsic.upv.es/~uml

17

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

.. Acciones
Se puede especificar el hacer una accin cuando ocurre en dicho estado un evento que no conlleva salir del estado:
estado A on evento_activador( arg1 )[ condicin ]: accin por evento

Actividades
Las actividades son similares a las acciones pero tienen duracin y se ejecutan dentro de un estado del objeto Las actividades pueden interrumpirse en todo momento, cuando se desencadena la operacin de salida del estado

103
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

104

Actividades
Cuando una actividad finaliza se produce una transicin automtica de salida del estado
a do: actividad [ condicin ] [ not condicin ] b

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

105
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

106

Generalizacin de Estados
Ejemplo:
a e1 b

Generalizacin de Estados
Quedara como:
e1

e2 e2 c e2

c
107
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

108

" www.dsic.upv.es/~uml

18

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

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 a e2 e0 b c

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

109
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

110

Generalizacin de Estados
Ejemplo:

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

e1 e1

111
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

112

Destruccin de Objeto
Ejemplo:
En vuelo crash

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
113 114
" www.d s i c.upv. e s / ~uml

despegar Crear(matricula) En tierra

aterrizar

" www.d s i c.upv. e s / ~uml

" www.dsic.upv.es/~uml

19

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Transiciones temporizadas
Ejemplo:
Si en 30 segundos no se introduce el dinero se termina la actividad pasando a anular la transaccin. En cualquier caso se cierra la ranura.
a

Transiciones temporizadas
Ejemplo v.2:
a

/ Abrir ranura esperar dinero entry : Mostrar mensaje do: Esperar 30 segundos exit: cerrar ranura

/ Abrir ranura esperar dinero anular transaccin entry : Mostrar mensaje exit: cerrar ranura Temporizador (30 segundos) anular transaccin

Depsito efectuado b
115
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

Depsito efectuado

b
116

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

Modelado de Componentes

Muestran las opciones de realizacin incluyendo cdigo fuente, binario y ejecutable

117
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

118

...Diagramas 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. Cada clase del modelo lgico se realiza en dos componentes: la especificacin y el cuerpo
119
" www.d s i c.upv. e s / ~uml

Diagramas de Componentes
La representacin grfica es la siguiente:
Especificacin Cuerpo Genrico

Package specification
" www.d s i c.upv. e s / ~uml

Package body

Generic package
120

" www.dsic.upv.es/~uml

20

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Dependencias entre Componentes


Las relaciones de dependencia se utilizan en los diagramas de componentes para indicar que un componente utiliza los servicios ofrecidos por otro componente

Subsistemas
Los distintos componentes pueden agruparse en paquetes segn un criterio lgico y con vistas a simplificar la implementacin Son paquetes estereotipados en <<subsistemas>>

<<subsistema>> NewPackage4

121
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

122

Diagramas de Distribucin
Los Diagramas de Distribucin muestran la disposicin fsica de los distintos nodos que componen un sistema y el reparto de los componentes sobre dichos nodos

Modelado de Distribucin

Nodo

123
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

124

Diagramas de Distribucin
Los estereotipos permiten precisar la naturaleza del equipo:
Dispositivos Procesadores Memoria

Diagramas de Distribucin
Ejemplo de conexin entre nodos:
<<Procesador> Nodo <<dispositivo>> nodo2

<<<<TCP/IP>>>> conexin1

Los nodos se interconectan mediante soportes bidireccionales (en principio) que pueden a su vez estereotiparse
125
" www.d s i c.upv. e s / ~uml

conexin7 <<RDSI>>

En Rational Rose podemos distinguir entre el dispositivo por estereotipado y el dispositivo con su propio smbolo
" www.d s i c.upv. e s / ~uml

dispositiv o

126

" www.dsic.upv.es/~uml

21

You might also like