uml diseno

49
1 Introducción Introducción al al Paradigma Paradigma Orientado a Objetos Orientado a Objetos 2 Objetos Objetos ¿Qué es un objeto? ¿Qué es un objeto? Un objeto es un componente de software que contiene Un objeto es un componente de software que contiene variables y métodos y que es usado para modelar algún variables y métodos y que es usado para modelar algún aspecto de la “vida real”. Es una abstracción de la aspecto de la “vida real”. Es una abstracción de la realidad. realidad. ¿Qué es una clase? ¿Qué es una clase? Una clase es un plano o prototipo que define las Una clase es un plano o prototipo que define las variables y los métodos comunes a todos los objetos de variables y los métodos comunes a todos los objetos de un cierto tipo. un cierto tipo.

Upload: silviaherzovich4008

Post on 10-Jun-2015

6.102 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: UML Diseno

1

Introducción Introducción al al

Paradigma Paradigma Orientado a ObjetosOrientado a Objetos

2

ObjetosObjetos

•• ¿Qué es un objeto?¿Qué es un objeto?

Un objeto es un componente de software que contiene Un objeto es un componente de software que contiene variables y métodos y que es usado para modelar algún variables y métodos y que es usado para modelar algún aspecto de la “vida real”. Es una abstracción de la aspecto de la “vida real”. Es una abstracción de la realidad.realidad.

•• ¿Qué es una clase?¿Qué es una clase?

Una clase es un plano o prototipo que define las Una clase es un plano o prototipo que define las variables y los métodos comunes a todos los objetos de variables y los métodos comunes a todos los objetos de un cierto tipo.un cierto tipo.

Page 2: UML Diseno

3

ObjetosObjetos

Los Los objetosobjetos son representaciones (simples/complejas)son representaciones (simples/complejas)(reales/imaginarias) de cosas: reloj, avión empleado, etc.(reales/imaginarias) de cosas: reloj, avión empleado, etc.

No todo puede ser considerado como un objeto, algunas No todo puede ser considerado como un objeto, algunas cosas son simplemente características o cosas son simplemente características o atributosatributos de los de los objetos: color, velocidad, etc.objetos: color, velocidad, etc.

4

ObjetosObjetos

Abstracción funcionalAbstracción funcionalHay cosas que sabemosHay cosas que sabemosque los coches hacenque los coches hacenpero no como lo hacen:pero no como lo hacen:• avanzar• avanzar• parar• parar• girar a la dcha• girar a la dcha• girar a la izda• girar a la izda

Abstracción de datosAbstracción de datosUn coche tiene ademásUn coche tiene ademásciertos atributos:ciertos atributos:• color• color• velocidad• velocidad• tamaño• tamaño• etc...• etc...

Page 3: UML Diseno

5

ObjetosObjetos

Los objetos encapsulanLos objetos encapsulan variablesvariables permitiendo acceso a ellas permitiendo acceso a ellas únicamente a través de losúnicamente a través de los métodosmétodos

Variables:Variables: Contenedores de valoresContenedores de valoresMétodos:Métodos: Contenedores de funcionesContenedores de funciones

Estado:Estado: representado por el contenido de sus variablesrepresentado por el contenido de sus variables

Comportamiento:Comportamiento: definido por sus métodosdefinido por sus métodos

Objeto = Identidad + Estado + ComportamientoObjeto = Identidad + Estado + Comportamiento

Nombre de la ClaseNombre de la Clase

--------------------------------------------------------------

•• Atributo1Atributo1

•• Atributo2Atributo2

--------------------------------------------------------------

•• Metodo1Metodo1

•• Metodo2Metodo2

•• Metodo3Metodo3

Se puede permitir o restringir su Se puede permitir o restringir su acceso desde “afuera”acceso desde “afuera”

Pueden serPueden ser Públicos Públicos oo PrivadosPrivados

6

IdentidadIdentidad

•• Oid (Object Identifier)Oid (Object Identifier)Cada objeto posee un oid. El oid establece la identidad del Cada objeto posee un oid. El oid establece la identidad del objeto y tiene las siguientes características:objeto y tiene las siguientes características:•• Constituye un identificador único y global para cada objeto dentConstituye un identificador único y global para cada objeto dentro del ro del

sistema.sistema.•• Es determinado en el momento de la creación del objeto.Es determinado en el momento de la creación del objeto.•• Es independiente de la localización física del objeto, es decir,Es independiente de la localización física del objeto, es decir, provee provee

completa independencia de localización.completa independencia de localización.•• Es independiente de las propiedades del objeto, lo cual implica Es independiente de las propiedades del objeto, lo cual implica

independencia de valor y de estructura.independencia de valor y de estructura.•• No cambia durante toda la vida del objeto. Además, un oid no se No cambia durante toda la vida del objeto. Además, un oid no se

reutiliza aunque el objeto deje de existir.reutiliza aunque el objeto deje de existir.•• No se tiene ningún control sobre los oids y su manipulación resuNo se tiene ningún control sobre los oids y su manipulación resulta lta

transparente.transparente.

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

Page 4: UML Diseno

7

EstadoEstado

•• El estado evoluciona con el tiempo.El estado evoluciona con el tiempo.•• Algunos atributos pueden ser constantes.Algunos atributos pueden ser constantes.•• El comportamiento agrupa las competencias de un objeto y El comportamiento agrupa las competencias de un objeto y

describe las acciones y reacciones de ese objeto.describe las acciones y reacciones de ese objeto.•• Las operaciones de un objeto son consecuencia de un Las operaciones de un objeto son consecuencia de un

estímulo externo representado como mensaje enviado desde estímulo externo representado como mensaje enviado desde otro objeto.otro objeto.

8

ComportamientoComportamiento

•• Los mensajes navegan por los enlaces, a priori en ambas Los mensajes navegan por los enlaces, a priori en ambas direcciones.direcciones.

•• La unidad de comunicación entre objetos se llama mensaje.La unidad de comunicación entre objetos se llama mensaje.•• Estado y comportamiento están relacionados. Estado y comportamiento están relacionados. •• Ejemplo: no es posible aterrizar un avión si no está volando. EsEjemplo: no es posible aterrizar un avión si no está volando. Está tá

volando como consecuencia de haber despegado del suelo.volando como consecuencia de haber despegado del suelo.•• Un estímulo causará la invocación de una operación, la creación Un estímulo causará la invocación de una operación, la creación o o

destrucción de un objeto o la aparición de una señal.destrucción de un objeto o la aparición de una señal.•• Un mensaje es la especificación de un estímulo.Un mensaje es la especificación de un estímulo.

Page 5: UML Diseno

9

ObjetosObjetos

•• En UML, un objeto se representa por un rectángulo con un En UML, un objeto se representa por un rectángulo con un nombre subrayado.nombre subrayado.

10

ObjetosObjetos

•• Ejemplo de varios objetos relacionados:Ejemplo de varios objetos relacionados:

Page 6: UML Diseno

11

Objetos vs. ClasesObjetos vs. Clases

Una Una claseclase es una entidad abstractaes una entidad abstracta•• Es un tipo de clasificación de cosasEs un tipo de clasificación de cosas•• Define el comportamiento y atributos de un grupo de estructura yDefine el comportamiento y atributos de un grupo de estructura y

comportamientos similarcomportamientos similar

UnUn objetoobjeto es una instancia o variable de una clasees una instancia o variable de una clase

•• Un objeto se distingue de otros miembros de la clase por Un objeto se distingue de otros miembros de la clase por sus atributos.sus atributos.

12

HerenciaHerencia

Si definimos la clase automóvil a partir de la claseSi definimos la clase automóvil a partir de la clase vehículo se dicevehículo se dice::

•• “automóvil" “automóvil" heredahereda las variables y métodos de "vehículo"las variables y métodos de "vehículo"

•• “automóvil" “automóvil" extiendeextiende de "vehículo"de "vehículo"

•• “automóvil" es “automóvil" es subclasesubclase de "vehículo"de "vehículo"

•• "vehículo" es "vehículo" es superclasesuperclase de “automóvil"de “automóvil"

Permite definir a partir de una clasePermite definir a partir de una clase,, otras clasesotras clases relacionadas que relacionadas que supongan una:supongan una:

•• EEspecializaciónspecialización de la clase dada.de la clase dada.

(Ej. la clase Automóvil es una(Ej. la clase Automóvil es una especialización de la clase Vehículo)especialización de la clase Vehículo)

•• GeneralizaciónGeneralización de la clase dada.de la clase dada.

(La clase vehículo es una(La clase vehículo es una generalización de la clase Automóvil)generalización de la clase Automóvil)

Page 7: UML Diseno

13

PolimorfismoPolimorfismo

•• En programación orientada a objetos, el polimorfismo se refiere En programación orientada a objetos, el polimorfismo se refiere a a la capacidad del lenguaje de programación de procesar objetos dela capacidad del lenguaje de programación de procesar objetos demanera distinta dependiendo de su tipo.manera distinta dependiendo de su tipo.

•• El polimorfismo representa en nuestro caso la posibilidad de El polimorfismo representa en nuestro caso la posibilidad de desencadenar operaciones distintas en respuesta a un mismo desencadenar operaciones distintas en respuesta a un mismo mensaje.mensaje.

•• Cada subclase hereda las operaciones pero tiene la posibilidad dCada subclase hereda las operaciones pero tiene la posibilidad de e modificar localmente el comportamiento de estas operaciones.modificar localmente el comportamiento de estas operaciones.

14

PolimorfismoPolimorfismo

•• Ejemplo: todo animal duerme, pero cada clase lo hace de Ejemplo: todo animal duerme, pero cada clase lo hace de forma distinta.forma distinta.

Page 8: UML Diseno

15

¿¿PreguntasPreguntas??

16

UML UML

Page 9: UML Diseno

17

Objetivos de UMLObjetivos de UML

•• Suministrar un lenguaje visual de modelado expresivo Suministrar un lenguaje visual de modelado expresivo con el cual se pudieran crear e intercambiar modelos con el cual se pudieran crear e intercambiar modelos inteligibles.inteligibles.

•• Proveer mecanismos de extensión y especialización Proveer mecanismos de extensión y especialización para ampliar los conceptos básicos.para ampliar los conceptos básicos.

•• Ser independiente de cualquier lenguaje de Ser independiente de cualquier lenguaje de programación y de cualquier proceso de desarrollo.programación y de cualquier proceso de desarrollo.

18

Objetivos de UMLObjetivos de UML

•• Incluir los fundamentos formales para entender el Incluir los fundamentos formales para entender el lenguaje.lenguaje.

•• Impulsar el desarrollo del mercado de herramientas Impulsar el desarrollo del mercado de herramientas OO.OO.

•• Soportar los conceptos de desarrollo de alto nivel, tales Soportar los conceptos de desarrollo de alto nivel, tales como colaboraciones, marcos (frameworks), patrones como colaboraciones, marcos (frameworks), patrones (patterns) y componentes.(patterns) y componentes.

Page 10: UML Diseno

19

Diagrama Diagrama de de

ClasesClases

20

Diagrama de ClasesDiagrama de Clases

•• El propósito de este diagrama es el de representar los El propósito de este diagrama es el de representar los objetos fundamentales del sistema, es decir los que objetos fundamentales del sistema, es decir los que percibe el usuario y con los que espera tratar para percibe el usuario y con los que espera tratar para completar su tarea en vez de objetos del sistema o de un completar su tarea en vez de objetos del sistema o de un modelo de programación.modelo de programación.

•• La clase define el ámbito de definición de un conjunto de La clase define el ámbito de definición de un conjunto de objetos.objetos.

•• Cada objeto pertenece a una clase.Cada objeto pertenece a una clase.

•• Los objetos se crean por instanciación de las clases.Los objetos se crean por instanciación de las clases.

Page 11: UML Diseno

21

Diagrama de ClasesDiagrama de Clases

•• Cada clase se representa en un rectángulo con tres Cada clase se representa en un rectángulo con tres compartimientos:compartimientos:

•• Nombre de la claseNombre de la clase

•• Atributos de la claseAtributos de la clase

•• Operaciones de la claseOperaciones de la clase

22

Diagrama de Clases: AtributosDiagrama de Clases: Atributos

•• TipoTipo: puede llegar a depender del lenguaje de programación a utiliza: puede llegar a depender del lenguaje de programación a utilizar. r. •• Valor inicialValor inicial: valor que poseerá el atributo al crear un objeto.: valor que poseerá el atributo al crear un objeto.•• VisibilidadVisibilidad: está relacionado con el encapsulamiento.: está relacionado con el encapsulamiento.•• MultiplicidadMultiplicidad: determinar si un atributo debe estar o no, y si posee un único: determinar si un atributo debe estar o no, y si posee un único valor o valor o

una lista de valores.una lista de valores.•• OrdenamientoOrdenamiento: especifica si el atributo determina alguna relación de orden d: especifica si el atributo determina alguna relación de orden dentro de la entro de la

clase.clase.•• Capacidad de cambioCapacidad de cambio: permite definir atributos con valores constantes.: permite definir atributos con valores constantes.•• ModificadoresModificadores: un atributo puede ser de clase, derivado, volátil, transitorio: un atributo puede ser de clase, derivado, volátil, transitorio..

El atributo fecha de nacimiento es público.El atributo fecha de nacimiento es público.

El atributo edad es derivado (puede calcularse a partir El atributo edad es derivado (puede calcularse a partir

de la fecha de nacimiento), y determina una relación de de la fecha de nacimiento), y determina una relación de

orden entre las instancias de las personas.orden entre las instancias de las personas.

El atributo DNI es un atributo protegido.El atributo DNI es un atributo protegido.

El atributo coloresPreferidos representa una colección El atributo coloresPreferidos representa una colección

o conjunto de valores del tipo Coloro conjunto de valores del tipo Color

Page 12: UML Diseno

23

Diagrama de Clases: AtributosDiagrama de Clases: Atributos

VisibilidadVisibilidad

La encapsulamiento presenta tres ventajas básicas:La encapsulamiento presenta tres ventajas básicas:•• Se protegen los datos de accesos indebidosSe protegen los datos de accesos indebidos•• El acoplamiento entre las clases se disminuyeEl acoplamiento entre las clases se disminuye•• Favorece la modularidad y el mantenimientoFavorece la modularidad y el mantenimiento

Los atributos de una clase no deberían ser manipulables directamLos atributos de una clase no deberían ser manipulables directamente por el resto de ente por el resto de objetos.objetos.

Niveles de encapsulamiento:

((--) Privado ) Privado : es el más fuerte. Esta parte es totalmente invisible desde : es el más fuerte. Esta parte es totalmente invisible desde fuera de la clase (excepto para clases friends en terminolfuera de la clase (excepto para clases friends en terminología C++).ogía C++).

(~) Package (~) Package : Sólo es visible dentro del mismo package.: Sólo es visible dentro del mismo package.(#) (#) Los atributos/operaciones Los atributos/operaciones protegidos protegidos están visibles para las clases están visibles para las clases

friends y para las clases derivadas de la original.friends y para las clases derivadas de la original.(+) (+) Los atributos/operaciones Los atributos/operaciones públicos públicos son visibles a otras clases (cuando son visibles a otras clases (cuando

se trata de atributos se está transgrediendo el principise trata de atributos se está transgrediendo el principio de o de encapsulamiento).encapsulamiento).

24

Diagrama de Clases: AtributosDiagrama de Clases: Atributos

MultiplicidadMultiplicidad

ModificadoresModificadores

•• De De claseclase o o estáticoestático: el atributo se aparece subrayado. No es necesario contar : el atributo se aparece subrayado. No es necesario contar con un objeto para ejecutarlo.con un objeto para ejecutarlo.

•• DerivadoDerivado: es calculable a partir de otros atributos. : es calculable a partir de otros atributos. •• TransitorioTransitorio: tendrá valor sólo durante una porción de la ejecución.: tendrá valor sólo durante una porción de la ejecución.•• VolátilVolátil: no se persiste.: no se persiste.

11 El atributo debe tener un único valor. El atributo debe tener un único valor.

0..1 0..1 El atributo puede o no tener un valor.El atributo puede o no tener un valor.

0..* 0..* El atributo puede tener varios valores o ninguno. El atributo puede tener varios valores o ninguno.

1..* 1..* El atributo puede tener varios valores, pero debe tener al menosEl atributo puede tener varios valores, pero debe tener al menos unouno

** El atributo puede tener varios valores. El atributo puede tener varios valores.

M..NM..N El atributo puede tener entre M y N valores.El atributo puede tener entre M y N valores.

Page 13: UML Diseno

25

Diagrama de Clases: OperacionesDiagrama de Clases: Operaciones

Una operación es un servicio que una instancia de la clase puedeUna operación es un servicio que una instancia de la clase puede realizar.realizar.

•• Tipo devueltoTipo devuelto: puede llegar a depender del lenguaje de programación a utiliza: puede llegar a depender del lenguaje de programación a utilizar. r. •• ParámetrosParámetros: además del tipo, puede especificarse si son In, Out o InOut.: además del tipo, puede especificarse si son In, Out o InOut.•• VisibilidadVisibilidad: está relacionado con el encapsulamiento.: está relacionado con el encapsulamiento.•• ModificadoresModificadores: una operación puede ser de clase, abstracta, query o construct: una operación puede ser de clase, abstracta, query o constructor. or.

La operación calcularEdad es privado y no La operación calcularEdad es privado y no

devuelve nada.devuelve nada.

El método público calcularHorasTrabajadas es El método público calcularHorasTrabajadas es

abstracto, las subclases de la clase Persona deberá abstracto, las subclases de la clase Persona deberá

implementarlo para utilizarlo.implementarlo para utilizarlo.

26

Diagrama de ClasesDiagrama de ClasesRelaciones entre ClasesRelaciones entre Clases

•• Una asociación es una conexión estructural simple Una asociación es una conexión estructural simple entre clases. Las instancias de las clases implicadas en entre clases. Las instancias de las clases implicadas en una asociación estarán probablemente comunicándose una asociación estarán probablemente comunicándose en el momento de ejecución.en el momento de ejecución.

•• Los enlaces entre de objetos pueden representarse Los enlaces entre de objetos pueden representarse entre las respectivas clases entre las respectivas clases

•• Formas de relación entre clases:Formas de relación entre clases:•• Asociación y Agregación (vista como un caso particular de Asociación y Agregación (vista como un caso particular de

asociación)asociación)•• Generalización/EspecializaciónGeneralización/Especialización

Page 14: UML Diseno

27

Diagrama de Clases: AsociaciónDiagrama de Clases: Asociación

•• La asociación expresa una conexión bidireccional entre La asociación expresa una conexión bidireccional entre objetos.objetos.

•• Una asociación es una abstracción de la relación Una asociación es una abstracción de la relación existente en los enlaces entre los objetos.existente en los enlaces entre los objetos.

EnlaceEnlace

28

Diagrama de Clases Diagrama de Clases Relaciones entre ClasesRelaciones entre Clases

MultiplicidadMultiplicidad

11 Un elemento relacionado. Un elemento relacionado.

0..1 0..1 Uno o ningún elemento relacionado.Uno o ningún elemento relacionado.

0..* 0..* Varios elementos relacionados o ninguno. Varios elementos relacionados o ninguno.

1..* 1..* Varios elementos relacionados pero al menos uno.Varios elementos relacionados pero al menos uno.

** Varios elementos relacionados. Varios elementos relacionados.

M..NM..N Entre M y N elementos relacionados.Entre M y N elementos relacionados.

Page 15: UML Diseno

29

Diagrama de Clases: AsociaciónDiagrama de Clases: Asociación

RolRol

•• Identificado como un nombre a los finales de la asociaciIdentificado como un nombre a los finales de la asociacióón, n, describe la semdescribe la semáántica de la relacintica de la relacióón en el sentido indicado. n en el sentido indicado.

•• Cada asociaciCada asociacióón tiene dos roles; cada rol es una direccin tiene dos roles; cada rol es una direccióón en n en la asociacila asociacióón.n.

30

Diagrama de Clases: AsociaciónDiagrama de Clases: Asociación

•• Se asume que una asociación es bidireccional, es decir Se asume que una asociación es bidireccional, es decir que se puede navegar desde cualquiera de clases que se puede navegar desde cualquiera de clases implicadas a la otra, pero es posible indicar que la implicadas a la otra, pero es posible indicar que la navegación ocurrirá en una sola dirección.navegación ocurrirá en una sola dirección.

Page 16: UML Diseno

31

Diagrama de Clases: AgregaciónDiagrama de Clases: Agregación

•• Es una asociación especial, una relación del tipo Es una asociación especial, una relación del tipo “todo/parte” dentro de la cual una o más clases son “todo/parte” dentro de la cual una o más clases son partes de un conjunto.partes de un conjunto.

32

Diagrama de Clases: ComposiciónDiagrama de Clases: Composición

•• La composición es una forma ‘fuerte’ de La composición es una forma ‘fuerte’ de agregación. Se diferencian en:agregación. Se diferencian en:

•• En la composición tanto el todo como las partes tienen el En la composición tanto el todo como las partes tienen el mismo ciclo de vida.mismo ciclo de vida.

•• Un objeto puede pertenecer solamente a una composición.Un objeto puede pertenecer solamente a una composición.

Page 17: UML Diseno

33

Diagrama de Clases: Asociación CalificadaDiagrama de Clases: Asociación Calificada

•• Un calificador es un atributo (o tupla de atributos) de la Un calificador es un atributo (o tupla de atributos) de la asociación cuyos valores sirven para particionar el asociación cuyos valores sirven para particionar el conjunto de objetos enlazados a otro.conjunto de objetos enlazados a otro.

•• Un calificador se representa como un pequeño Un calificador se representa como un pequeño rectángulo conectado al final de una asociación y a la rectángulo conectado al final de una asociación y a la clase.clase.

•• El rectángulo del calificador es parte de la asociación, y El rectángulo del calificador es parte de la asociación, y no parte de la clase.no parte de la clase.

filafila: : intint

columnacolumna: : intint

34

Diagrama de Clases: Asociación nDiagrama de Clases: Asociación n--ariasarias

•• Son asociaciones que se establecen entre mSon asociaciones que se establecen entre máás de dos clasess de dos clases•• Una clase puede aparecer varias veces desempeUna clase puede aparecer varias veces desempeññando ando

distintos roles.distintos roles.•• Las asociaciones nLas asociaciones n--arias se representan a travarias se representan a travéés de s de rombo rombo

que se une con cada una de las clasesque se une con cada una de las clases..

La relaciones nLa relaciones n--arias arias pueden ser usadas pueden ser usadas

para impedir para impedir inconsistencias en el inconsistencias en el

modelo.modelo.

Page 18: UML Diseno

35

Diagrama de Clases: GeneralizaciónDiagrama de Clases: Generalización

•• Una generalización se refiere a una relación entre una Una generalización se refiere a una relación entre una clase general (superclase o padre) y una versión más clase general (superclase o padre) y una versión más específica de dicha clase (subclase o hija).específica de dicha clase (subclase o hija).

36

Diagrama de Clases: GeneralizaciónDiagrama de Clases: Generalización

•• Nombres usados: clase padre Nombres usados: clase padre -- clase hija. Otros nombres: clase hija. Otros nombres: superclase superclase -- subclase, clase base subclase, clase base -- clase derivada.clase derivada.

•• Las subclases heredan propiedades de sus clases padre, es decir,Las subclases heredan propiedades de sus clases padre, es decir,atributos y operaciones (y asociaciones) de la clase padre estánatributos y operaciones (y asociaciones) de la clase padre estándisponibles en sus clases hijas.disponibles en sus clases hijas.

•• La especialización es una técnica muy eficaz para la extensión yLa especialización es una técnica muy eficaz para la extensión yreutilización.reutilización.

Restricciones predefinidas Restricciones predefinidas en UML:en UML:

•• OverlappingOverlapping

•• DisjointDisjoint

•• CompleteComplete

•• IncompleteIncomplete

Page 19: UML Diseno

37

Diagrama de Clases: GeneralizaciónDiagrama de Clases: Generalización

•• Particionamiento del espacio de objetos Particionamiento del espacio de objetos �� Clasificación Estática Clasificación Estática •• Particionamiento del espacio de estados de los objetos Particionamiento del espacio de estados de los objetos ��

Clasificación DinámicaClasificación Dinámica•• En ambos casos se recomienda considerar En ambos casos se recomienda considerar

generalizaciones/especializaciones disjuntasgeneralizaciones/especializaciones disjuntas•• Usando discriminadores se pueden tener varias especializaciones Usando discriminadores se pueden tener varias especializaciones

de una misma clase padrede una misma clase padre

DiscriminadorDiscriminador

38

Diagrama de Clases: GeneralizaciónDiagrama de Clases: Generalización

•• La herencia múltiple debe manejarse con precaución. Algunos La herencia múltiple debe manejarse con precaución. Algunos problemas son el conflicto de nombre y el conflicto de precedencproblemas son el conflicto de nombre y el conflicto de precedencia.ia.

•• Se recomienda un uso restringido y disciplinado de la herencia.Se recomienda un uso restringido y disciplinado de la herencia.•• Permite modelar jerarquías alternativas.Permite modelar jerarquías alternativas.

Page 20: UML Diseno

39

•• Es una asociación y una clase simultáneamente.Es una asociación y una clase simultáneamente.•• Hay que tener en cuenta dónde se colocan los Hay que tener en cuenta dónde se colocan los

atributos.atributos.

Diagrama de Clases: Clase de asociaciónDiagrama de Clases: Clase de asociación

40

Diagrama de Clases: DependenciaDiagrama de Clases: Dependencia

•• Una dependencia es una relación de “uso” en la que un Una dependencia es una relación de “uso” en la que un cambio en uno de los términos cambio en uno de los términos --por ejemplo, una clasepor ejemplo, una clase--puede afectar a otro (otra clase)puede afectar a otro (otra clase)

Page 21: UML Diseno

41

Diagrama de Clases: DependenciaDiagrama de Clases: Dependencia

Posibles dependencias entre clasesPosibles dependencias entre clases

•• useuse: el funcionamiento del origen depende de la : el funcionamiento del origen depende de la presencia del destinopresencia del destino

•• instantiateinstantiate: el origen crea instancias del destino: el origen crea instancias del destino•• derivederive: el origen puede calcularse a partir del destino: el origen puede calcularse a partir del destino•• refinerefine: el origen est: el origen estáá un grado de abstracciun grado de abstraccióón mn máás s

detallado.detallado.•• bind()bind(): : derivaciderivacióón genn genéérica de una plantillarica de una plantilla•• friendfriend: visibilidad caracter: visibilidad caracteríística de C++stica de C++

42

Diagrama de Clases: EstereotiposDiagrama de Clases: Estereotipos

•• Un estereotipo representa el principal mecanismo de Un estereotipo representa el principal mecanismo de extensión de UML. Ofrece una forma de extender una extensión de UML. Ofrece una forma de extender una metaclase, creando un nuevo elemento de metaclase, creando un nuevo elemento de metamodelo.metamodelo.

Page 22: UML Diseno

43

Diagrama de Clases: InterfacesDiagrama de Clases: Interfaces

•• Una interfaz es una colección de operaciones que Una interfaz es una colección de operaciones que representan servicios ofrecidos por una clase o representan servicios ofrecidos por una clase o componente. componente.

•• Por definición, todas estas operaciones tendrán una Por definición, todas estas operaciones tendrán una visibilidad pública.visibilidad pública.

•• La interfaz especifica algo similar a un contrato que la La interfaz especifica algo similar a un contrato que la clase se compromete a respetar.clase se compromete a respetar.

•• La clase La clase realizarealiza (o suministra una (o suministra una realizaciónrealización de) una o de) una o varias interfaces.varias interfaces.

•• UML define dos tipos de interfaces: interfaz UML define dos tipos de interfaces: interfaz suministrada e interfaz requerida.suministrada e interfaz requerida.

44

Diagrama de Clases: InterfacesDiagrama de Clases: Interfaces

•• La interfaz suministrada es aquella que una clase La interfaz suministrada es aquella que una clase efectivamente implementa.efectivamente implementa.

Page 23: UML Diseno

45

Diagrama de Clases: InterfacesDiagrama de Clases: Interfaces

•• Las interfaces requeridas son aquellas que necesita una Las interfaces requeridas son aquellas que necesita una clase para realizar su cometido. El símbolo utilizado clase para realizar su cometido. El símbolo utilizado para representarla es un semicírculo.para representarla es un semicírculo.

46

EjemploEjemplo

¿Cómo interpretaría lo siguiente?¿Cómo interpretaría lo siguiente?

Page 24: UML Diseno

47

Modelo de Dominio vs. Modelo de DiseñoModelo de Dominio vs. Modelo de Diseño

•• El diagrama de clases puede utilizarse con distintos El diagrama de clases puede utilizarse con distintos fines en distintas etapas del proceso de desarrollo. fines en distintas etapas del proceso de desarrollo.

•• Durante la etapa de análisis, el Durante la etapa de análisis, el modelo de dominiomodelo de dominioes encargado de mostrar el conjunto de clases es encargado de mostrar el conjunto de clases conceptuales del problema y las relaciones presentes conceptuales del problema y las relaciones presentes entre sí. entre sí.

•• Durante la etapa de diseño, el Durante la etapa de diseño, el modelo de diseñomodelo de diseñodetermina las futuras componentes de software determina las futuras componentes de software (clases) y sus relaciones entre sí.(clases) y sus relaciones entre sí.

48

Modelo de DominioModelo de Dominio

•• Es una representación de las cosas, entidades, Es una representación de las cosas, entidades, idea, clases conceptuales u objetos del “mundo idea, clases conceptuales u objetos del “mundo real” o dominio de interés, no de componentes de real” o dominio de interés, no de componentes de software.software.

•• Muestra clases conceptuales significativas en un Muestra clases conceptuales significativas en un dominio del problema.dominio del problema.

•• Se usa como base para el diseño de los objetos de Se usa como base para el diseño de los objetos de software.software.

Page 25: UML Diseno

49

Modelo de DominioModelo de Dominio

•• Es el artefacto más importante del análisis.Es el artefacto más importante del análisis.

•• PPodría se considerado como un diccionario visual odría se considerado como un diccionario visual de abstracciones de clases conceptuales, de abstracciones de clases conceptuales, vocabulario e información del dominio.vocabulario e información del dominio.

•• No es absolutamente correcto o incorrecto, su No es absolutamente correcto o incorrecto, su intenciintencióón en ser n en ser úútil sirviendo como una til sirviendo como una herramienta de comunicaciherramienta de comunicacióón.n.

50

Modelo de DominioModelo de Dominio

•• Otros nombres: Otros nombres: modelo conceptual, modelo de objetos del dominio modelo conceptual, modelo de objetos del dominio y modelo de los objetos de any modelo de los objetos de anáálisis.lisis.

•• SegSegúún el punto de vista, tiene puntos en comn el punto de vista, tiene puntos en comúún con el n con el Diagrama Diagrama de Entidad Relacide Entidad Relacióónn..

•• Usando UML, el MD se representa con un conjunto de diagramas Usando UML, el MD se representa con un conjunto de diagramas de clases. Se puede mostrar: de clases. Se puede mostrar: •• objetos del dominio objetos del dominio o o clases conceptualesclases conceptuales•• asociacionesasociaciones entre las clases conceptuales entre las clases conceptuales •• atributos atributos de las clases conceptualesde las clases conceptuales

•• NO SE DEFINE NINGUNA OPERACINO SE DEFINE NINGUNA OPERACIÓÓNN. La asignaci. La asignacióón de n de responsabilidades de los objetos no forma parte de este modelo.responsabilidades de los objetos no forma parte de este modelo.

Page 26: UML Diseno

51

Modelo de Dominio: Clases ConceptualesModelo de Dominio: Clases Conceptuales

Es vEs váálidolido……

•• Tener clases conceptuales sin atributos.Tener clases conceptuales sin atributos.•• Tener clases conceptuales para las cuales no haya Tener clases conceptuales para las cuales no haya requerimientos de informacirequerimientos de informacióón a registrar.n a registrar.

•• TTener clases conceptuales con ener clases conceptuales con rol de rol de comportamientocomportamiento, en lugar de informaci, en lugar de informacióón.n.

Estrategias para identificarEstrategias para identificar

•• Utilizar lista de categorUtilizar lista de categoríías de clases conceptuales.as de clases conceptuales.•• Identificar frases nominales (sustantivos o frases).Identificar frases nominales (sustantivos o frases).

52

Modelo de Dominio: Clases ConceptualesModelo de Dominio: Clases Conceptuales

Page 27: UML Diseno

53

Modelo de Dominio: Clases ConceptualesModelo de Dominio: Clases Conceptuales

Identificar frases nominales (sustantivos o frases)Identificar frases nominales (sustantivos o frases)

Se intenta identificar sustantivos o frases nominales en el Se intenta identificar sustantivos o frases nominales en el vocabulario y descripciones del dominio del problema. vocabulario y descripciones del dominio del problema.

Esta tEsta téécnica prcnica prááctica no puede ser aplicada ctica no puede ser aplicada mecmecáánicamente sino que hay que usar el nicamente sino que hay que usar el ““sentido comsentido comúúnn””

y capturar las abstracciones adecuadas puesto que el y capturar las abstracciones adecuadas puesto que el lenguaje natural es ambiguo y los conceptos relevantes no lenguaje natural es ambiguo y los conceptos relevantes no

siempre se encuentran de manera explsiempre se encuentran de manera explíícita.cita.

54

EjemploEjemplo

Un posible modelo de dominio para el caso del local de Un posible modelo de dominio para el caso del local de venta de electrodomventa de electrodoméésticossticos……

Page 28: UML Diseno

55

Modelo de DiseñoModelo de Diseño

•• A diferencia del Modelo de Dominio, el modelo A diferencia del Modelo de Dominio, el modelo de diseño se encuentra más cerca de la de diseño se encuentra más cerca de la solución buscada. solución buscada.

•• Refleja decisiones en cuanto a asignación de Refleja decisiones en cuanto a asignación de responsabilidades entre los objetos responsabilidades entre los objetos (operaciones).(operaciones).

•• Toma como base el Modelo de Dominio, donde Toma como base el Modelo de Dominio, donde algunas entidades se promoverán a Clases.algunas entidades se promoverán a Clases.

56

Modelo de DiseñoModelo de Diseño

•• Muestra cómo se relacionan componentes de Muestra cómo se relacionan componentes de software para resolver el problema planteado. software para resolver el problema planteado.

•• Es el paso previo a la implementación.Es el paso previo a la implementación.

•• Es posible aplicar patterns según el tipo de Es posible aplicar patterns según el tipo de problema.problema.

Page 29: UML Diseno

57

PrincipiosPrincipios de de DiseñoDiseño

•• DescomposiciónDescomposición•• AbstracciónAbstracción•• CohesiónCohesión•• Bajo AcoplamientoBajo Acoplamiento•• ModularidadModularidad•• EncapsulamientoEncapsulamiento

58

DescomposiciónDescomposición

•• Concepto común a todos los ciclos de vida y Concepto común a todos los ciclos de vida y técnicas de diseño. técnicas de diseño.

•• El concepto básico es simple:El concepto básico es simple:•• Seleccionar una parte del problemaSeleccionar una parte del problema•• Determinar sus componentes usando cualquier Determinar sus componentes usando cualquier mecanismo: funcional vs. estructuras de datos vs. mecanismo: funcional vs. estructuras de datos vs. orientado a objetos orientado a objetos

•• Mostrar cómo interactúan los componentesMostrar cómo interactúan los componentes•• Repetir hasta satisfacer algún criterio de terminaciónRepetir hasta satisfacer algún criterio de terminación

Page 30: UML Diseno

59

AbstracciónAbstracción

•• Provee un mecanismo para manejar la complejidad Provee un mecanismo para manejar la complejidad priorizando las características esenciales y priorizando las características esenciales y suprimiendo los detalles de implementación.suprimiendo los detalles de implementación.

•• Permite posponer ciertas decisiones de detalle que Permite posponer ciertas decisiones de detalle que ocurren a distintos niveles de análisis:ocurren a distintos niveles de análisis:

•• Representaciones / AlgoritmosRepresentaciones / Algoritmos•• Arquitectura / EstructuraArquitectura / Estructura•• Externo / FuncionalExterno / Funcional

60

CohesiónCohesión

•• Principio de unión entre los distintos aspectos que Principio de unión entre los distintos aspectos que incluye una parte.incluye una parte.

•• El concepto se aplica según la descomposición y el El concepto se aplica según la descomposición y el nivel de abstracción:nivel de abstracción:

•• Relación entre las funcionalidadesRelación entre las funcionalidades•• Relación entre las responsabilidadesRelación entre las responsabilidades•• Relación entre los serviciosRelación entre los servicios•• Relación entre los datosRelación entre los datos

Page 31: UML Diseno

61

BajoBajo AcoplamientoAcoplamiento

•• Principio de separación entre los distintos aspectos Principio de separación entre los distintos aspectos de distintas partes de distintas partes

•• El concepto se aplica según la descomposición y el El concepto se aplica según la descomposición y el nivel de abstracción:nivel de abstracción:

•• Relación entre las funcionalidadesRelación entre las funcionalidades•• Relación entre las responsabilidadesRelación entre las responsabilidades•• Relación entre los serviciosRelación entre los servicios•• Relación entre los datosRelación entre los datos

62

ModularidadModularidad

•• Un sistema modular es un sistema estructurado Un sistema modular es un sistema estructurado con abstracciones altamente independientes con abstracciones altamente independientes llamadas módulos.llamadas módulos.

•• Modularidad es importante tanto para la etapa de Modularidad es importante tanto para la etapa de diseño como de implementación.diseño como de implementación.

•• Módulos deben tener interfaces abstractas bien Módulos deben tener interfaces abstractas bien definidas.definidas.

•• Módulos deben tener alta cohesión y bajo Módulos deben tener alta cohesión y bajo acoplamiento.acoplamiento.

Page 32: UML Diseno

63

EncapsulamientoEncapsulamiento

•• Motivación: detalles de diseño que pueden cambiar se Motivación: detalles de diseño que pueden cambiar se ocultan detrás de interfaces abstractas (módulos).ocultan detrás de interfaces abstractas (módulos).

•• Los módulos se deben comunicar a través de interfaces Los módulos se deben comunicar a través de interfaces bien definidas.bien definidas.

•• La información que se oculta incluye:La información que se oculta incluye:

•• Representaciones de datosRepresentaciones de datos•• AlgoritmosAlgoritmos•• Entradas y salidasEntradas y salidas•• Interfaces de bajo nivelInterfaces de bajo nivel

64

Patrones de DiseñoPatrones de Diseño

¿Qué es un patrón de diseño?¿Qué es un patrón de diseño?

•• Ante un problema reiterado ofrece una solución Ante un problema reiterado ofrece una solución contrastada que lo resuelve.contrastada que lo resuelve.

•• Describe el problema en forma sencilla.Describe el problema en forma sencilla.•• Describe el contexto en que ocurre.Describe el contexto en que ocurre.•• Describe los pasos a seguir.Describe los pasos a seguir.•• Describe los puntos fuertes y débiles de la solución.Describe los puntos fuertes y débiles de la solución.•• Describe otros patrones asociados.Describe otros patrones asociados.

Page 33: UML Diseno

65

Patrones de DiseñoPatrones de Diseño

¿Por qué usarlos?¿Por qué usarlos?

•• Mejora en la comunicación y documentaciónMejora en la comunicación y documentación•• “Hay que hacer un “Hay que hacer un Factory MethodFactory Method””•• Facilita la documentación interna del proyecto.Facilita la documentación interna del proyecto.

•• Mejora la ingeniería de software.Mejora la ingeniería de software.•• Eleva el nivel del grupo de desarrollo.Eleva el nivel del grupo de desarrollo.

•• Previene “reinventar la rueda” en diseñoPreviene “reinventar la rueda” en diseño•• Son soluciones ya probadas.Son soluciones ya probadas.

•• Mejora la calidad y estructuraMejora la calidad y estructura•• “¿Cu“¿Cuáán grande debe ser una clase?”n grande debe ser una clase?”

66

Patrones de DiseñoPatrones de Diseño

Tipos de PatronesTipos de Patrones

•• De CreaciónDe Creación: abstraen el proceso de creación : abstraen el proceso de creación de instancias.de instancias.

•• EstructuralesEstructurales: se ocupan de cómo clases y : se ocupan de cómo clases y objetos son utilizados para componer objetos son utilizados para componer estructuras de mayor tamaño.estructuras de mayor tamaño.

•• De ComportamientoDe Comportamiento: atañen a los algoritmos : atañen a los algoritmos y a la asignación de responsabilidades entre y a la asignación de responsabilidades entre objetos.objetos.

Page 34: UML Diseno

67

Patrones de DiseñoPatrones de Diseño

Algunos nombres:Algunos nombres:

•• De CreaciónDe Creación: : •• Factory MethodFactory Method, , PrototypePrototype, , SingletonSingleton, etc., etc.

•• EstructuralesEstructurales: : •• FacadeFacade, , ProxyProxy, , AdapterAdapter, etc., etc.

•• De ComportamientoDe Comportamiento: : •• ObserverObserver, , CommandCommand, , StrategyStrategy, etc., etc.

68

Patrones de DiseñoPatrones de Diseño

Cómo llegar a ser unCómo llegar a ser un maestro de ajedrezmaestro de ajedrez……

1.1. Primero, aprender las Primero, aprender las reglas del juegoreglas del juego..2.2. A continuación, aprender los A continuación, aprender los principiosprincipios..3.3. Finalmente, para llegar a ser un maestro, hayFinalmente, para llegar a ser un maestro, hay que que

estudiar las partidas de otros maestrosestudiar las partidas de otros maestros. . Estas partidas Estas partidas contienen docenas de contienen docenas de patrones patrones queque deben ser deben ser entendidos, memorizados y aplicadosentendidos, memorizados y aplicados..

… y para ser un maestro … y para ser un maestro de software …de software …

Page 35: UML Diseno

69

¿¿PreguntasPreguntas??

70

PaquetesPaquetes

Page 36: UML Diseno

71

PaquetesPaquetes

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

•• Se representan gráficamente como:Se representan gráficamente como:

72

PaquetesPaquetes

•• Cada paquete corresponde a un submodelo Cada paquete corresponde a un submodelo (subsistema) del modelo (sistema).(subsistema) del modelo (sistema).

••Un paquete puede contener otros paquetes, sin Un paquete puede contener otros paquetes, sin llíímite de anidamiento pero cada elemento mite de anidamiento pero cada elemento pertenece a (estpertenece a (estáá definido en) sdefinido en) sóólo un paquete.lo un paquete.

•• Entre paquetes puede aparecer una relaciEntre paquetes puede aparecer una relacióón de n de dependencia.dependencia.

••Un paquete encapsula a la vez que agrupa.Un paquete encapsula a la vez que agrupa.

Page 37: UML Diseno

73

PaquetesPaquetes

•• Un paquete es un grupo de elementos del modelo que Un paquete es un grupo de elementos del modelo que pueden a su vez anidarse.pueden a su vez anidarse.

•• Son elementos auxiliares de organización y pueden contener Son elementos auxiliares de organización y pueden contener cualquier elemento de modelado.cualquier elemento de modelado.

•• Su utilidad final es ganar claridad a costa de perder detalles Su utilidad final es ganar claridad a costa de perder detalles que luego se podrán obtener al abrir el paquete.que luego se podrán obtener al abrir el paquete.

•• Pueden ser utilizados con los distintos diagramas.Pueden ser utilizados con los distintos diagramas.

74

PaquetesPaquetes

•• Se puede hacer referencia a una clase de otro paquete.Se puede hacer referencia a una clase de otro paquete.•• Cada clase se puede definir con visibilidad pública o Cada clase se puede definir con visibilidad pública o

privada.privada.•• Hay dos formas de referenciar elementos de otro Hay dos formas de referenciar elementos de otro

paquete: paquete: accessaccess e e importimport..

Page 38: UML Diseno

75

PaquetesPaquetes

•• Se debe buscar que los elementos que se encuentren dentro de un Se debe buscar que los elementos que se encuentren dentro de un mismo paquete posean alta cohesión entre sí y que haya bajo mismo paquete posean alta cohesión entre sí y que haya bajo acoplamiento entre paquetes. acoplamiento entre paquetes.

76

EjemploEjemplo

•• Posible estructuraciónPosible estructuración

Page 39: UML Diseno

77

¿¿PreguntasPreguntas??

78

DiagramaDiagramade de

ObjetosObjetos

Page 40: UML Diseno

79

Diagrama de ObjetosDiagrama de Objetos

•• Muestra la interacción directa entre los objetos.Muestra la interacción directa entre los objetos.

•• Es una representación del diagrama de clases Es una representación del diagrama de clases en tiempo de ejecución, por tanto es una en tiempo de ejecución, por tanto es una instancia posible del diagrama de clases.instancia posible del diagrama de clases.

•• Son útiles para representar escenarios.Son útiles para representar escenarios.

80

Diagrama de ObjetosDiagrama de Objetos

Page 41: UML Diseno

81

¿¿PreguntasPreguntas??

82

DiagramaDiagramade de

SecuenciaSecuencia

Page 42: UML Diseno

83

Diagrama de SecuenciaDiagrama de Secuencia

•• Una Una interaccióninteracción es un comportamiento que se centra en es un comportamiento que se centra en los intercambios observables de información entre los los intercambios observables de información entre los objetos.objetos.

•• Una Una línea de vidalínea de vida representa la participación de un objeto representa la participación de un objeto dado en una determinada interacción.dado en una determinada interacción.

LíneasLíneas de de vidavida

ActivaciónActivación

ObjetosObjetos

MensajesMensajes

84

Diagrama de SecuenciaDiagrama de Secuencia

•• Los objetos comunican a través de mensajes entre líneas Los objetos comunican a través de mensajes entre líneas de vida. de vida.

•• La notación para el mensaje siempre es una flecha, pero La notación para el mensaje siempre es una flecha, pero el tipo de flecha y la punta varía en función del tipo de el tipo de flecha y la punta varía en función del tipo de mensaje:mensaje:

objetoobjeto otroObjetootroObjeto

Page 43: UML Diseno

85

Diagrama de SecuenciaDiagrama de Secuencia

•• También puede incluirse información referente a la También puede incluirse información referente a la creación y destrucción de objetos.creación y destrucción de objetos.

objetoobjeto otroObjetootroObjeto

86

Diagrama de SecuenciaDiagrama de Secuencia

RecursiónRecursión•• La operación oper() se llama a sí misma. La operación oper() se llama a sí misma.

Habrá una condición en la operación que parará la recursión. Habrá una condición en la operación que parará la recursión. •• Se muestra explícitamente la respuesta.Se muestra explícitamente la respuesta.

objeto

Page 44: UML Diseno

87

Diagrama de SecuenciaDiagrama de Secuencia

Ciclos y alternativasCiclos y alternativas

Muchas veces distintas alternativas pueden implicar Muchas veces distintas alternativas pueden implicar distintos escenarios, que se deberían especificar con distintos escenarios, que se deberían especificar con

diagramas diferentes.diagramas diferentes.

objetoobjeto otroObjetootroObjeto objetoobjeto otroObjetootroObjeto

88

EjemploEjemplo

“… Supongamos que en una librería, un encargado “… Supongamos que en una librería, un encargado debe registrar el préstamo de un libro… “debe registrar el préstamo de un libro… “

Page 45: UML Diseno

89

Otro ejemploOtro ejemplo

Un posible diseUn posible diseñño para el caso del local de venta de electrodomo para el caso del local de venta de electrodoméésticossticos……

90

EjemploEjemplo

“… tras autorizar la orden de compra, se debe emitir la “… tras autorizar la orden de compra, se debe emitir la factura correspondiente, la cual debe asentarse en la factura correspondiente, la cual debe asentarse en la cuenta corriente …”cuenta corriente …”

Page 46: UML Diseno

91

EjemploEjemplo

Veamos cómo se calcula el importe de la factura…Veamos cómo se calcula el importe de la factura…

92

¿¿PreguntasPreguntas??

Page 47: UML Diseno

93

DiagramaDiagramade de

ColaboraciónColaboración

94

Diagrama de ColaboraciónDiagrama de Colaboración

•• Son útiles en la fase exploratoria para Son útiles en la fase exploratoria para identificar objetos.identificar objetos.

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

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

Page 48: UML Diseno

95

Diagrama de Colaboración: MensajesDiagrama de Colaboración: Mensajes

•• Un mensaje desencadena una acción en el objeto destinatario.Un mensaje desencadena una acción en el objeto destinatario.

•• Un mensaje puede ser enviado de manera condicionadaUn mensaje puede ser enviado de manera condicionada..

•• Un mensaje puede devolver un resultado.Un mensaje puede devolver un resultado.

96

Diagrama de ColaboraciónDiagrama de Colaboración

•• La cronología, está dada La cronología, está dada mediante la numeración mediante la numeración de los mensajes.de los mensajes.

Page 49: UML Diseno

97

Colaboración vs. SecuenciaColaboración vs. Secuencia

•• Ambos diagramas poseen un poder expresivo Ambos diagramas poseen un poder expresivo similar.similar.

•• El diagrama de secuencia, otorga una mejor visión El diagrama de secuencia, otorga una mejor visión desde el punto de vista temporal o cronológico. desde el punto de vista temporal o cronológico.

•• El diagrama de colaboración, otorga una mejor El diagrama de colaboración, otorga una mejor visión desde el punto de vista espacial. visión desde el punto de vista espacial.

•• En la etapa de análisis pueden ser utilizados para En la etapa de análisis pueden ser utilizados para especificar escenarios.especificar escenarios.

•• En la etapa de diseño, contribuyen con la definición En la etapa de diseño, contribuyen con la definición de los métodos de las clases.de los métodos de las clases.

•• s de sus interfaces.s de sus interfaces.•• Cada componente “realiza” o soporta algunas interfaces y “usa” Cada componente “realiza” o soporta algunas interfaces y “usa”

otras provistas por otros componentesotras provistas por otros componentes