Curso compacto de_uml

21
" www.dsic.upv.es/~uml Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia 1 1 "www.dsic.upv.es/~uml Construcción de una casa para “fido” Puede hacerlo una sola persona Requiere : Modelado mínimo Proceso simple Herramientassimples 2 "www.dsic.upv.es/~uml Construcción de una casa Construida eficientemente y en un tiempo razonable por un equipo Requiere : Modelado Proceso bien definido Herramientas más sofisticadas 3 "www.dsic.upv.es/~uml Construcción de un rascacielos 4 "www.dsic.upv.es/~uml Claves en Desarrollo de SI Herramientas Proceso Notación 5 "www.dsic.upv.es/~uml Sistema Computacional Proceso de Negocios Orden Item envío “El modelado captura las partes esenciales del sistemaAbstracción - Modelado Visual (MV) 6 "www.dsic.upv.es/~uml MV para manejar la complejidad

Transcript of Curso compacto de_uml

Page 1: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

1

1" www.ds ic.upv.es/~uml

Construcción de una casa para “fido”

Puede hacerlo una sola personaRequiere :

Modelado mínimoProceso simpleHerramientas simples

2" www.ds ic.upv.es/~uml

Construcción de una casa

Construida eficientemente y en un tiempo razonable por un equipoRequiere :

ModeladoProceso bien definidoHerramientas más sofisticadas

3" www.ds ic.upv.es/~uml

Construcción de un rascacielos

4" www.ds ic.upv.es/~uml

Claves en Desarrollo de SI

Herramientas Proceso

Notación

5" www.ds ic.upv.es/~uml

Sistema Computacional

Proceso de Negocios

Orden

Item

envío

“El modelado captura laspartes esenciales del sistema”

Abstracción - Modelado Visual (MV)

6" www.ds ic.upv.es/~uml

MV para manejar la complejidad

Page 2: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

2

7" www.ds ic.upv.es/~uml

Interfaz de Usuario(Visual Basic,

Java, ..)

Lógica del Negocio(C++, Java, ..)

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

“Modelar el sistema independientemente del lenguaje de implementación”

MV para definir la Arquitectura del Software

8" www.ds ic.upv.es/~uml

Múltiples Sistemas

MV promueve la reutilización

Componentes Reutilizados

9" www.ds ic.upv.es/~uml

¿Qué es UML?

UML = Unified Modeling Language

Un lenguaje de propósito general para el modelado orientado a objetos

Documento “OMG Unified Modeling Language Specification”

UML combina notaciones provenientes desde:Modelado Orientado a Objetos Modelado de DatosModelado de Componentes Modelado de Flujos de Trabajo ( Workflows)

10" www.ds ic.upv.es/~uml

Situación de Partida

Diversos métodos y técnicas OO, con muchos aspectos en común pero utilizando distintas notaciones

Inconvenientes para el aprendizaje, aplicación, construcción y uso de herramientas, etc.

Pugna entre distintos enfoques (y correspondientes gurús)

=> Necesidad de una notación estándar

11" www.ds ic.upv.es/~uml

Historia de UML

Comenzó como el “Método Unificado”, con la participación de Grady Booch y Jim Rumbaugh. Se presentó en el OOPSLA’95

El mismo año se unió Ivar Jacobson. Los “Tres Amigos” son socios en la compañía RationalSoftware. Herramienta CASE Rational Rose

12" www.ds ic.upv.es/~uml

Historia de UML

Nov ‘97 UML aprobado por el OMG

1998

1999

2000

UML 1.2

UML 1.3

UML 1.4

2001 ? UML 2.0

Revisiones menores

Page 3: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

3

13" www.ds ic.upv.es/~uml

Participantes en UML 1.0

Rational Software (Grady Booch, Jim

Rumbaugh y Ivar Jacobson)Digital Equipment

Hewlett-Packard i-Logix (David Harel)

IBMICON Computing

(Desmond D’Souza)

Intellicorp and James Martin & co. (James Odell)

MCI SystemhouseMicrosoft ObjecTimeOracle Corp.Platinium TechnologySterling SoftwareTaskonTexas Instruments Unisys

14" www.ds ic.upv.es/~uml

UML “aglutina” enfoques OO

UML

RumbaughJacobson

Meyer

Harel

Wirfs-BrockFusion

Embly

Gamma et. al.

Shlaer-Mellor

Odell

Booch

Pre- and Post-conditions

State Charts

Responsabilities

Operation descriptions, message numbering

Singleton classes

Frameworks, patterns, notes

Object life cycles

15" www.ds ic.upv.es/~uml

Métodos Formales en Modelado

Tipos de enfoques: no-formales, semi-formales y formales

Las principales mejoras al utilizar métodos formales son:

Mayor rigor en la especificaciónMejores condiciones para realizar la verificación y validación en forma más exhaustivaMejores condiciones para automatización de procesos para la generación automática de prototipos y/o código final

16" www.ds ic.upv.es/~uml

Inconvenientes en UML

Definición del proceso de desarrollo usando UML. UML no es una metodología

Falta integración con respecto de otras técnicas tales como patrones de diseño, interfaces de usuario, documentación, etc.

Ejemplos aislados

“Monopolio de conceptos, técnicas y métodos entorno a UML”

17" www.ds ic.upv.es/~uml

Perspectivas de UML

UML será el lenguaje de modelado orientado a objetos estándar predominante los próximos añosRazones:

Participación de metodólogos influyentes

Participación de importantes empresasAceptación del OMG como notación estándar

Evidencias:Herramientas que proveen la notación UML“Edición” de libros

Congresos, cursos, “camisetas”, etc.

18" www.ds ic.upv.es/~uml

Diagramas de UML

Use CaseDiagrams

Use CaseDiagramsDiagramas de

Casos de Uso

ScenarioDiagramsScenarioDiagramsDiagramas deColaboración

StateDiagramsState

DiagramsDiagramas deComponentes

ComponentDiagramsComponent

DiagramsDiagramas deDistribución

StateDiagramsState

DiagramsDiagramas de

Objetos

ScenarioDiagramsScenario

DiagramsDiagramas deEstados

Use CaseDiagramsUse Case

DiagramsDiagramas de

Secuencia

StateDiagrams

StateDiagramsDiagramas de

Clases

Diagramas deActividad

Modelo

“Un modelo es una descripción completa de un sistema desde una perspectiva concreta”

Page 4: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

4

19" www.ds ic.upv.es/~uml

Paquetes en UML

Los paquetes ofrecen un mecanismo general para la organización de los modelos agrupando elementos de modelado

Se representan gráficamente como:

Nombre de paquete

20

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

… Paque tes en UML

Cada paquete cor responde a un subconjunto de l modelo y cont iene, según e l modelo, c lases, objetos , re lac iones, componentes y d iagramas

asoc iados

Un paquete puede contener ot ros paquetes , sin l ími te de an idamiento pero cada e lemento

pertenece a (está def in ido en) só lo un paquete

21

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

… Paque tes en UML

Una c lase de un paquete puede aparecer en ot ro paquete por la importac ión a t ravés de una re lac ión de dependenc ia entre paquetes

Todas las c lases no son necesar iamente v is ib les desde el exter ior del paquete, es dec i r , un paquete encapsula a la vez que agrupa

22

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

E l Parad igma

Or ien tado a Ob je tos

23

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

¿Por qué la Or ientac ión a

Obje tos?

Proximidad de los conceptos de modelado respecto de las entidades del mundo real

Mejora captura y validación de requisitos

Acerca el “espacio del problema” y el “espacio de la solución”

Modelado integrado de propiedades estáticas y dinámicas del ámbito del problema

Faci l i ta construcción, mantenimiento y reuti l ización

24

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

¿Por qué la Or ientac ión a

Obje tos?

Conceptos comunes de modelado durante el

análisis, diseño e implementación

Facilita la transición entre distintas fases

Favorece el desarrollo iterativo del sistema

Disipa la barrera entre el “qué” y el “cómo”

Sin embargo, existen problemas ...

Page 5: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y Computación

Universidad Politécnica de Valencia

5

25

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

“...Los conceptos básicos de la OO se conocen desde hace dos décadas, pero su aceptación todavía no está tan extendida como los beneficios que esta tecnología puede sugerir”

“...La mayoría de los usuarios de la OO no utilizan los conceptos de la OO de forma purista, como inicialmente se pretendía. Esta práctica ha sido promovida por muchas herramientas y lenguajes que intentan uti l izar los conceptos en diversos grados”

- - W o l f g a n g S t r i g e l

Prob lemas en OO

26

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

Ob je tos

Objeto = un idad atómica que in tegra estado y compor tamiento

La encapsu lac ión en un objeto permi te una alta

cohes ión y un bajo acop lamiento

Un objeto puede caracter izar una ent idad f ís ica (coche) o concepto (ecuac ión matemát ica)

27

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

… Ob je tos

E l Mode lado de Ob je tos pe rm i te rep resen ta r e l

c i c lo de v ida de los ob je tos a t ravés de sus

in te racc iones

En UML, un ob je to se representa por un

r e c t ángu l o c on un nombre sub r ayado

Otro Objeto

Un Objeto

Otro Objeto más

28

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

… Ob je tos

E jemp lo de va r i o s ob je tos re l a c i onados :

Juan

Felipe

Libreta de ahorro a

plazo

Dos clientes del banco

Cuenta corriente

Libreta de ahorro

Cuenta corriente

29

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

… Ob je tos

Ob je t o = I den t i dad + E s t ado + Compo r t am ien to

E l es tado es tá representado por los va lo res de los

atr ibutos

Un a t r i bu to toma un va lo r en un domin io conc re to

Un coche

Azul 979 Kg 70 CV

...

30

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

Ident idad

Oid (Object Identif ier)

Cada objeto posee un o i d. El o i d establece la identidad del objeto y tiene las siguientes características:

Constituye un identificador único y global para cada objeto dentro del sistema

Es determinado en el momento de la creación del objeto

Es independiente de la localización física del objeto, es decir,provee completa independencia de local ización

Page 6: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y Computación

Universidad Politécnica de Valencia

6

31

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

… Ident idad

Es independiente de las propiedades del objeto, lo cual implica independencia de valor y de estructura

No cambia durante toda la vida del objeto. Además, un o id no se reutil iza aunque el objeto deje de existir

No se tiene ningún control sobre los oids y su manipulación resulta transparente

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

32

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

Es tado

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 ob je to

Las operaciones de un objeto son consecuencia de un estímulo externo representado como mensaje enviado desde otro objeto

33

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

Compor t am ien to

Ejemplo de interacc ión:

O t r o o b j e t o

U n o b j e t o

Un mensaje

Operacion 1

Operacion 2

34

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

… Compor tam ien to

Los mensajes navegan por los en laces, a pr ior i en ambas d i recc iones

Estado y comportamiento están re lac ionados

Ejemplo: no es posib le aterr izar un avión s i

no está vo lando. Está vo lando como consecuenc ia de haber despegado de l sue lo

35

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

Pers is tenc ia

La persistencia de los objetos designa la capacidad de un objeto trascender en el espacio/tiempo

Un objeto persistente conserva su estado en un s istema de almacenamiento permanente(usualmente memoria secundaria)

Podremos después reconstruir lo, es decir, cogerlo de memoria secundaria para util izarlo en la ejecución(materialización del objeto)

Los lenguajes OO no proponen soporte adecuado para la persistencia, pues ésta debería ser transparente, un objeto existe desde su creación hasta que se destruya

36

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

Comun i cac i ón

Un s i s tema in formát ico puede verse como un conjunto de ob je tos autónomos y concurrentes que t rabajan de manera coord inada en la

consecuc ión de un f in espec í f ico

E l comportamiento g lobal se basa pues en la

comunicac ión entre los objetos que la c omponen

Page 7: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y Computación

Universidad Politécnica de Valencia

7

37

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

… Comun i cac ión

Categorías de objetos :Act ivos – Pasivos

Clientes – Servidores

Objeto Activo: posee un hilo de ejecución (thread)propio y puede iniciar una actividad

Objeto Pasivo: no puede iniciar una actividad pero puede enviar estímulos una vez que se le solicita un serv ic io

Cliente es el objeto que solicita un servicio. Servidores el objeto que provee el servicio solicitado

38

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

E l Concepto de Mensa je

La unidad de comunicación entre objetos se llama mensaje.

El mensaje es el soporte de una comunicación que vincula dinámicamente los objetos que fueron separados previamente en el proceso de descomposición.

Una operación es la especificación y la implementación de una función efectuada por un objeto.

39

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

E l Concepto de Operac ión

Las operac iones menipu lan los atr ibutos de l objeto.

Pueden tener parámetros de entrada y/o

sa l ida.

Un mensaje de un objeto a otro invo lucra la e jecuc ión de una operac ión.

40

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

E l Concepto de Operac ión

El nombre de l mensaje es e l de la operac ión.

Los parámetros de l mensaje son los parámetros de la operac ión.

41

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

Casos de Uso

42

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

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 l ímites 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 implementación

C omparación con respecto a los Diagramas de Flujo de Datos del Enfoque Estructurado

Page 8: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y Computación

Universidad Politécnica de Valencia

8

43

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

… Casos de Uso

Los Casos de Uso particionan el conjunto de necesidades atendiendo a la categoría de usuarios que part ic ipan en el mismo

Están basado en el lenguaje natural, es decir, es accesible por los usuarios

44

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

E jemp lo de Casos de Uso

Caso de Uso: Comprar productos

Actores: Cl iente, Cajero

Tipo: Primario

Descripción: Un cl iente l lega a la caja

registradora con los art ículos que comprará. El cajero registra los artículos y cobra el importe. Al terminar la operación el c l iente se marcha con los productos.

comprar productos

45

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

… Casos de Uso

Ejemplo:

Sistema

Actor A

Caso de uso X

Actor B

Caso de uso Y

46

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

… 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 aplicación y deben ser util izados

Otros sistemas: sistemas con los que el s istema interactúa

La misma persona física puede interpretar varios papeles como actores distintos

El nombre del actor describe el papel desempeñado

47

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

… Casos de Uso

Los Casos de Uso se determinan observando y precisando, actor por actor, las secuencias de

interacción, los escenarios, desde el punto de vista del usuar io

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

48

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

Casos de Uso: Re lac iones

UML def ine cuat ro t ipos de re lac ión en los

D i ag r amas de Casos de Uso:

Comunicación :

Caso de Uso

Actor

Page 9: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y Computación

Universidad Politécnica de Valencia

9

49

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

… Casos de Uso: Re lac iones

Inclusión : una instancia del Caso de Uso origen incluye también el comportamiento descrito por el Caso de Uso destino

En UML se estereotipa como <<include>>

C a s o d e u s o o r i g e n

C a s o d e u s o d e s t i n o

<<include>>

50

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

… Casos de Uso: Re lac iones

Extensión : el Caso de Uso origen extiende el

comportamiento del Caso de Uso destino

Caso de uso origen

Caso de uso destino

< <extend > >

51

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

… Casos de Uso: Re lac iones

Herencia : el Caso de Uso origen hereda la

especificación del Caso de Uso destino y posiblemente la modifica y/o amplía

Caso de uso origen

Caso de uso destino

52

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

… Casos de Uso: Re lac iones

Ejemplo:

Identificación

Giro por Internet

Cliente

Giro

<<ex tends>>

<<inc ludes>>

<< e x t e n d> >

< <i n c l u d e >>

Transferenc ia por Internet

Transferencia

53

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

Casos de Uso: Cons t rucc ión

Un caso de uso debe ser s imple, inte l ig ib le, c laro y conciso

Genera lmente hay pocos actores asoc iados a cada Caso de Uso

Preguntas c lave:¿cuáles son las tareas del actor?

¿qué información 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?

54

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

… Casos de Uso: Cons t rucc ión

La descr ipc ión de l Caso de Uso comprende:el inicio: cuándo y qué actor lo produce?

el fin: cuándo se produce y qué valor devuelve?

la interacción actor-caso de uso: qué mensajes intercambian ambos?

objetivo del caso de uso: ¿qué lleva a cabo o intenta?

cronología y origen de las interacciones

repeticiones de comportamiento: ¿qué operaciones son iteradas?

situaciones opcionales: ¿qué ejecuciones alternativas se presentan en el caso de uso?

Page 10: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y Computación

Universidad Politécnica de Valencia

10

55

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

R F- < i d d e l r e q u i s i t o > < nombre de l requ is i to func iona l> Versión < n u m e r o d e v e r s i ó n y f e c h a > Autores <autor> Fuentes <fuente de la vers ión ac tua l> O b j e t i v o s a s o c i a d o s <nombre de l ob je t i vo> Descr ipc ión El s is tema deberá compor ta rse ta l como se descr ibe e n

e l s igu ien te caso de uso { conc re to cuando <even to de act ivación> , abstracto durante la real ización de los casos de uso < l i s ta de casos de uso>}

Precond ic ión <precondic ión del caso de uso> P a s o A c c i ó n

1 {El <actor> , E l s is tema} <acción real izada por el ac tor o s is tema>, se rea l iza e l caso de uso < c a s o d e u s o R F -x >

2 Si <condic ión>, {e l <actor> , e l s is tema} <acc ión real izada por e l actor o s is tema>>, se real iza e l caso de uso < caso de uso RF- x >

3 4 5 6

Secuencia N o r m a l

n P o s t c ond ic ión < p o s t c o n d i c i ó n d e l c a s o d e u s o >

P a s o A c c i ó n

1 S i <cond ic ión de excepc ión>, {e l <ac tor> , e l s is tema} }<acc ión rea l i zada por e l ac to r o s i s tema>> , se rea l i za e l caso de uso < c a s o d e u s o R F -x> , a con t i nuac ión es te caso d e u s o { c o n t i n u a, abor ta}

2

E x c e p c i o n e s

3 Rendimiento P a s o Cota de t iempo

1 n segundos 2 n segundos Frecuenc ia esperada <nº de veces> veces / <un idad de t i empo> I m p o r t a n c i a {s in importancia, importante, v i ta l } U r g e n c i a {puede esperar , hay p res ión , inmed ia tamente} C o m e ntar ios <comentar ios ad ic iona les>

56

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

Mode lado de In te racc iones

57

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

Interacc ión

Los objetos interactúan para real izar co lect ivamente los serv ic ios ofrec idos por las ap l icac iones. Los d iagramas de interacc ión

muest ran cómo se comunican los objetos en una interacc ión

Ex is ten dos t ipos de d iagramas de

interacción: los Diagramas de Co laborac ión y los Diagramas de Secuenc ia.

58

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

Diagramas de in te racc ión

Los Diagramas de Secuencia son más adecuados están para observar la perspectiva cronológica de

las interacciones

Los Diagramas de Colaboración ofrecen una mejor visión espacial mostrando los enlaces de

comunicación entre objetos

Normalmente el D. de Colaboración se obtiene a

partir del correspondiente D. de Secuencia

59

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

Diagramas de Secuenc ia

Muestra la secuenc ia de mensajes entre objetos durante un escenar io concreto.

Cada objeto v iene dado por una barra vert ica l.

E l t iempo transcurre de arr iba abajo.

Cuando ex is te demora entre e l env ío y la atenc ión se puede ind icar usando una l ínea oblicua.

60

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

… D iagramas de Secuenc ia

Un ejemplo:

CBA

m1

m2

m3

m4

m5

Page 11: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y Computación

Universidad Politécnica de Valencia

11

61

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

… D iagramas de Secuenc ia

EjemploQ u i e n l l a m a L í n e a t e l e f ó n i c a L l a m a d o

d e s c u e l g a

t o n o

m a r c a r

i n d i c a c i ó n d e l l a m a d at i m b r e

d e s c u e l g a

d i g a ?

Las bandas rectangulares representan los

periodos de actividad de los

objetos

62

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

… Est ructuras de cont ro l

Podemos rep resen ta r i t e rac i ones en e l env ío de

mensa jes , p .e . , m ien t ras se cump la una

condic ión:

While XLoop

end Loop

63

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

… Est ructuras de cont ro l

La i t e r a c i ón puede exp re sa r se t amb ién como

par te de l mensa je :

*[condición] Mensaje

64

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

… Est ructuras de cont ro l

Las b i fu r cac iones cond i c i ona les pueden

r ep re sen ta r se de e s t a f o rma :

If condición

else

end if

65

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

Diagramas de Co laborac ión

Son útiles en la fase exploratoria para identificar objetos

La distribución de los objetos en el diagrama permite observar adecuadamente la interacción de un objeto con respecto de los demás

La estructura estática viene dada por los enlaces; la dinámica por el envío de mensajes por los enlaces

66

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

Mensa jes

Un mensa je desencadena una acc i ón en e l

ob je to des t i na ta r i o

Un mensa je se env ía s i han s ido env iados l os

mensa jes de una l i s ta ( s inc ron i zac ión) :

A

BA.1, B.3 / 1 :Mensa je

Page 12: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y Computación

Universidad Politécnica de Valencia

12

67

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

… Mensa jes

Un mensa je se env ía i t e rada y secuenc ia lm ente

a un con junto de ins tanc ias :

A

B1 *[i:=1..n] : Mensaje

68

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

… Mensa jes

Un mensa je se env ía i t e rada y

concu r ren temen te a un con jun to de i n s t anc i a s :

A

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

69

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

… Mensa jes

Un mensa je se env í a de manera cond i c i onada :

A

B

[x>y] 1: Mensaje

70

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

… Mensa jes

Un mensa je que devue l ve un resu l t ado :

A

B1: distancia:= mover(x ,y)

71

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

… Mensa jes

Los argumentos de un mensaje pueden ser valores obtenidos como consecuencia de las l lamadas

anteriores

Los argumentos pueden ser también expresiones de navegación construidas a partir del objeto cliente

Los argumentos pueden omitirse en el diagrama

72

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

Mode l ado Conceptua l

Page 13: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y Computación

Universidad Politécnica de Valencia

13

73

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

Clases

Mode lado Conceptua l :

Organización del conocimiento del dominio del problema en un conjunto de abstracciones ordenadas de forma que se obtiene un conocimiento más profundo del problema

74

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

Clases

La c lase def ine el ámbito de def in ic ión de un conjunto de objetos

Cada objeto pertenece a una c lase

Los objetos se crean por instanc iac ión de las c lases

75

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

Clases: Notac ión Gráf i ca

Cada c lase se representa en un rectángulo con tres compart imientos:

nombre de la c lase

atributos de la clase

operaciones de la clase

motocicleta

colorcilindradavelocidad maxima

arrancaracelerarfrenar

76

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

Clases: Encapsu lac ión

La encapsu lac ión presenta dos ventajas bás icas:

Se protegen los datos de accesos indebidos

El acoplamiento entre las clases se disminuye

Favorece la modularidad y el mantenimiento

Los atr ibutos de una c lase no deber ían se rmanipu lab les d i rectamente por e l resto de

objetos

77

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

Relac iones entre C lases

Los enlaces entre de objetos pueden representarseentre las respectivas clases

Formas de relación entre clases:

Asociación y Agregación (vista como un caso particular de asociación)

General ización/Especial ización

Las relaciones de Agregación y Generalización forman jerarquías de clases

78

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

Asoc iac ión

La asoc iac ión expresa una conex ión b id i recc iona l

entre ob je tos

Una asoc iac ión es una abs t racc ión de la re lac ión

ex i s tente en los en laces ent re los ob je tos

Universidad Estudiante

Univ. de Murcia:Universidad Antonio:Estudiante

Una asociación

Un enlace

Page 14: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y Computación

Universidad Politécnica de Valencia

14

79

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

Ejemplo:

… Asoc iac ión

Persona Compañíatrabaja-para

nombre

s. s.nombre

direcciónjefe

Administraempleado

* *

emplea-a

0.. 10.. 1

0.. 1

*

marido

casado-con

mujer

80

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

… Asoc iac ión

Especificación de multiplicidad (mínima.. .máxima)

1 Uno y sólo uno

0..1 Cero o uno

M..N Des d e M hasta N (enteros natura les)

* Cero o muchos

0..* Cero o muchos

1..* U no o muchos (al menos uno)

La multiplicidad mínima >= 1 establece una

restricci ón de existencia

81

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

Asociac ión Cual i f icada

Aerolínea Viajeronro_billete* 0..1

TableroAjedrez

filacolumna

1 1 Cuadro

Reduce l a mu l t i p l i c i d ad de l r o l opues t o a l c ons i de r a r e l v a l o r

de l cua l i f i cador

82

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

Agregac ión

La agregación representa una relación parte_de entre objetos

En UML se proporciona una escasa caracterización de la agregación

Puede ser caracterizada con precisión determinando

las relaciones de comportamiento y estructura que existen entre el objeto agregado y cada uno de sus

objetos componentes

83" www.ds ic.upv.es/~uml

Ejemplos

motor

coche

1

1

1

1

Persona

0..2*

+Padre

0..2

+Hijos

*

84" www.ds ic.upv.es/~uml

… Ejemplos

CuentaPersona

1

*

orAsociación excluyente

Empresa

*

*

Usuario Estaciónestá-autorizado-en

prioridadprivilegios

camb_privil

Autorización

* *

Clase de asociación

Polígono Puntocontiene 3.. *1

{ordenado}

Agregación

Page 15: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

15

85" www.ds ic.upv.es/~uml

Jerarquías de Generalización/Especialización

Permiten gestionar la complejidad mediante un ordenamiento taxonómico

Se obtiene usando los mecanismos de abstracción de Generalización y/o Especialización

La Generalización consiste en factorizar laspropiedades comunes de un conjunto de clases en una clase más general

86" www.ds ic.upv.es/~uml

Nombres usados: clase padre - clase hija, superclase - subclase, clase base - clase derivada

Las subclases heredan características de sus superclases, es decir, atributos y operaciones(y asociaciones) de la superclase están disponibles en sus subclases

... Jerarquías de Generalización/Especialización

87" www.ds ic.upv.es/~uml

Abstracciones más generales.

vehiculo

vehiculo terrestre vehiculo aéreo

camion coche avion helicoptero

... Jerarquías de Generalización/Especialización

88" www.ds ic.upv.es/~uml

... Jerarquías de Generalización/Especialización

La especialización es una técnica muy eficaz para la extensión y reutilización

Caracterización de la generalización en UML: disjunta - no disjuntatotal (completa) - parcial (incompleta)

coche

funcionando estropeado

89" www.ds ic.upv.es/~uml

Un ejemplo combinado:v e h i c u l o

v e h i c u l o t e r r e s t r e

c a m i o n

c o c h e

f u n c i o n a n d o e s t r o p e a d o

v e h i c u l o a é r e o

a v i o n h e l i c o p t e r o

c o m e r c i a l

m i l i t a r

d e m e n o s d e 1 0 0 0 k m s

d e m á s d e 1 0 0 0 k m s

e s t á t i c a

e s t á t i c ae s t á t i c a

d i n á m i c a

d i n á m i c a

... Jerarquías de Generalización/Especialización

90" www.ds ic.upv.es/~uml

Herencia Múltiple

Se presenta cuando una subclase tiene más de una superclase

La herencia múltiple debe manejarse con precaución. 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 múltiple

Page 16: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

16

91" www.ds ic.upv.es/~uml

Polimorfismo

El término polimorfismo se refiere a que una característica de una clase puede tomar varias formas

El polimorfismo representa 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

92" www.ds ic.upv.es/~uml

Polimorfismo

Dormir(){en un árbol}

Dormir(){sobrela espalda}

Dormir(){sobre el vientre}

Zoo Animal

León TigreOso

1

*

Dormir(){

}

93" www.ds ic.upv.es/~uml

… Polimorfismo

La búsqueda automática del código que en cada momento se va a ejecutar es fruto del enlace dinámico

El cumplimiento del Principio de Sustitución permite obtener un comportamiento y diseño coherente

94" www.ds ic.upv.es/~uml

Diagramas de Estados

95" www.ds ic.upv.es/~uml

Diagramas de Estados

Los Diagramas de Estados representan autómatas de estados finitos, desde el p.d.v. de los estados y las transicionesSon útiles sólo para los objetos con un comportamiento significativoEl resto de objetos se puede considerar quetienen un único estadoEl formalismo utilizado proviene de los Statecharts (Harel)

96" www.ds ic.upv.es/~uml

… Diagramas de Estados

Cada objeto está en un estado en cierto instanteEl estado está caracterizado parcialmente por los valores de los atributos del objeto El estado en el que se encuentra un objeto determina su comportamientoCada objeto sigue el comportamiento descrito en el D. de Estados asociado a su claseLos D. De Estados y escenarios son complementarios

Page 17: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

17

97" www.ds ic.upv.es/~uml

… Diagramas de Estados

Los D. de Estados son autómatas jerárquicos que permiten expresar concurrencia, sincronización y jerarquías de objetosLos Diagramas de Estados son grafos dirigidos Los D. De Estados de UML son deterministasLos estados inicial y final están diferenciados del restoLa transición entre estados es instantánea y se debe a la ocurrencia de un evento

98" www.ds ic.upv.es/~uml

Ejemplo de un Diagrama de Estados para la clase persona:

en el paro en activo

jubilado

contratar

perder empleo

jubilarsejubilarse

… Diagramas de Estados

99" www.ds ic.upv.es/~uml

Las guardas permiten condicionar la transición:

a bEvento[ condición ]

… Diagramas de Estados

100" www.ds ic.upv.es/~uml

Acciones

Podemos especificar la ejecución de una acción como consecuencia de la transición:

a bEvento[ condición ] / acción

Dicha acción también se considera instantánea

101" www.ds ic.upv.es/~uml

Podemos especificar el envío de un evento a otro objeto como consecuencia de la transición:

a

b

Evento( arg1, arg2 )[ condición ] / ^otro_objeto.evento(arg2)

… Acciones

102" www.ds ic.upv.es/~uml

Se puede especificar el hacer una acción como consecuencia de entrar, salir o estar en un estado:

e s t a d o A

e n t r y : a c c i ó n p o r e n t r a r

e x i t : a c c i ó n p o r s a l i r

d o : a c c i ó n m i e n t r a s e n e s t a d o

… Acciones

Page 18: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

18

103" www.ds ic.upv.es/~uml

Se puede especificar el hacer una acción cuando ocurre en dicho estado un evento que no conlleva salir del estado:

estado A

on evento_activador( arg1 )[ condición ]: acción por evento

.. Acciones

104" www.ds ic.upv.es/~uml

Actividades

Las actividades son similares a las acciones pero tienen duración y se ejecutan dentro de un estado del objeto

Las actividades pueden interrumpirse en todo momento, cuando se desencadena la operación de salida del estado

105" www.ds ic.upv.es/~uml

Cuando una actividad finaliza se produce una transición automática de salida del estado

ado: actividad

b[ not condición ]

b

[ condición ]

… Actividades

106" www.ds ic.upv.es/~uml

Generalización de Estados

§ Podemos reducir la complejidad de estos diagramas usando la generalización de estados

§ Distinguimos así entre superestado y subestados

§ Un estado puede contener varios subestadosdisjuntos

§ Los subestados heredan las variables de estado y las transiciones externas

107" www.ds ic.upv.es/~uml

Generalización de Estados

Ejemplo:

a b

c

e 1

e 2

e 2

108" www.ds ic.upv.es/~uml

Quedaría como:

c

a ba be1

e2

Generalización de Estados

Page 19: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

19

109" www.ds ic.upv.es/~uml

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:

c

a ba b

e 1

e 2

e 1

e 0

… Generalización de Estados

110" www.ds ic.upv.es/~uml

La agregación de estados es la composición de un estado a partir de varios estados independientes

La composición es concurrente por lo que el objeto estará en alguno de los estados de cada uno de los subestados concurrentes

… Generalización de Estados

111" www.ds ic.upv.es/~uml

Ejemplo:

e1e1

… Generalización de Estados

112" www.ds ic.upv.es/~uml

Destrucción del Objeto

La destrucción de un objeto es efectiva cuando el flujo de control del autómata alcanza un estado final no anidado

La llegada a un estado final anidado implica la “subida” al superestado asociado, no el fin del objeto

113" www.ds ic.upv.es/~uml

… Destrucción de Objeto

Ejemplo:

En tierraCrear(matricula)

En vuelo

aterrizardespegar

crash

114" www.ds ic.upv.es/~uml

Transiciones temporizadas

Las esperas son actividades que tienen asociada cierta duración

La actividad de espera se interrumpe cuando el evento esperado tiene lugar

Este evento desencadena una transición que permite salir del estado que alberga la actividad de espera. El flujo de control se transmite entonces a otro estado

Page 20: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

20

115" www.ds ic.upv.es/~uml

Ejemplo: a

esperar dineroentry : Mostrar mensajedo: Esperar 30 segundosexit: cerrar ranura

b

anular transacción

/ Abrir ranura

Depósito efectuado

Si en 30 segundos no se introduce el dinero se termina la actividad pasando a anular la transacción. En cualquier caso se cierra la ranura.

… Transiciones temporizadas

116" www.ds ic.upv.es/~uml

Ejemplo v.2:

… Transiciones temporizadas

a

esperar dinero

entry : Mostrar mensajeexit: cerrar ranura

b

anular transacción

/ Abrir ranura

Depósito efectuado

Temporizador(30 segundos)

117" www.ds ic.upv.es/~uml

Modelado de Componentes

118" www.ds ic.upv.es/~uml

Diagrama de Componentes

Los diagramas de componentes describen los elementos físicos del sistema y sus relaciones

Muestran las opciones de realización incluyendo código fuente, binario y ejecutable

119" www.ds ic.upv.es/~uml

...Diagramas de Componentes

Los componentes representan todos los tipos de elementos software que entran en la fabricación de aplicaciones informáticas. Pueden ser simples archivos, paquetes de Ada, bibliotecas cargadas dinámicamente, etc.Cada clase del modelo lógico se realiza en dos componentes: la especificación y el cuerpo

120" www.ds ic.upv.es/~uml

La representación gráfica es la siguiente:

GenéricoCuerpoEspecificación

Package specification

Package body

Generic package

… Diagramas de Componentes

Page 21: Curso compacto de_uml

" www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

21

121" www.ds ic.upv.es/~uml

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

122" www.ds ic.upv.es/~uml

Subsistemas

Los distintos componentes pueden agruparse en paquetes según un criterio lógico y con vistas a simplificar la implementación

Son paquetes estereotipados en <<subsistemas>>

NewPackage4

<<subsistema>>

123" www.ds ic.upv.es/~uml

Modelado de Distribución

124" www.ds ic.upv.es/~uml

Diagramas de Distribución

Los Diagramas de Distribución muestran la disposición física de los distintos nodos que componen un sistema y el reparto de los componentes sobre dichos nodos

N o d o

125" www.ds ic.upv.es/~uml

Los estereotipos permiten precisar la naturaleza del equipo:

DispositivosProcesadoresMemoria

Los nodos se interconectan mediante soportes bidireccionales (en principio) que pueden a su vez estereotiparse

… Diagramas de Distribución

126" www.ds ic.upv.es/~uml

Ejemplo de conexión entre nodos:

Nodo<<Procesador>

nodo2<<dispositivo>>

dispositivo

conexión7

conexión1<<<<TCP/IP>>>>

<<RDSI>>

En Rational Rose podemos distinguir entre el dispositivo por estereotipado y el dispositivo con su propio símbolo

… Diagramas de Distribución