SlideShare una empresa de Scribd logo
1 de 57
Modelo Diseño
Joan Sebastián Ramírez Pérez
2015
Agenda
 Contexto
 Diagrama de clases
 Diagrama de paquetes
 Diagrama de colaboraciones
 Bibliografía
Agenda
 Contexto
 Diagrama de clases
 Diagrama de paquetes
 Diagrama de colaboraciones
 Bibliografía
UML 2.0
Agenda
 Contexto
 Diagrama de clases
 Diagrama de paquetes
 Diagrama de colaboraciones
 Bibliografía
¿Qué describe un diagrama de clases?
 Los tipos de objetos en el sistema.
 Las relaciones estáticas que existen entre ellos.
 Los atributos y operaciones de las clases.
 Las restricciones a las clases y a sus asociaciones.
¿Qué es una clase?
 Descripción de conjunto de objetos que comparten los mismos atributos,
operaciones, métodos, relaciones y semántica.
 Las clases son gráficamente representadas por cajas con compartimentos para:
 Nombre de la clase, atributos y operaciones.
 Responsabilidades, Reglas, Historia de Modificaciones, etc.
Clase
Una clase debe:
 proporcionar una abstracción bien definida de algo del dominio del problema o de
la solución.
 Contiene un conjunto pequeño de responsabilidades.
 Muestra una clara distinción entre la implementación y la especificación de la
abstracción.
 Ser sencilla, entendible, extensible y adaptable.
Clase
Interface
 Es una colección de operaciones que especifican un servicio de una clase o
componente, es decir, un comportamiento externamente visible de ese elemento.
 Se especifican las operaciones externamente visibles sin especificación de la
estructura interna.
 Contrato que adquiere la clase que la implementa.
 Gráficamente se representa como un circulo.
Diagrama de clases
Tipos de relación.
 Asociación
 Generalización.
 Realización.
 Agregación.
 Composición.
 Dependencia.
¿Cómo se nombran las asociaciones?
 La dirección de lectura por defecto para la
asociación es de izquierda a derecha y de
arriba a abajo.
 El nombre debe comenzar con mayúscula
porque la asociación representa un
clasificador de enlaces entre instancias.
(UML )
 Cada extremo de la asociación es llamado
ROL. (tiene multiplicidad)
Asociación
 Relación estructural.
 Relación bilateral.
Asociación
Generalización
 Es la relación taxonómica entre un elemento y otro elemento mas general.
 Concepto de herencia Programación Orientada a Objetos.
 Relación padre hijo.
 Dado un conjunto de clases, se busca responsabilidades, atributos y operaciones
comunes.
 Si B hereda de A es porque todo objeto de B es un objeto de A.
Generalización
Generalización
Realización
 Significa que existe una relación entre el padre y el hijo en la forma de una
implementación.
Realización
Agregación y composición
Agregación
 una clase “contiene” a otros elementos. Sin embargo la clase no pierde sentido sin
la existencia de los mismos.
 “Puede vivir sin ellos y sigue siendo la misma... clase”
Agregación
Composición
 A diferencia de la agregación, este tipo de interacción indica que la integridad de la
clase, depende de los elementos asociados.
 “La clase pierde su integridad sin las clases relacionadas”
Composición
Dependencia
 Relación semántica entre dos elementos.
 No necesariamente se requiere que existan tipos de objetos relacionados.
 Indica que el cambio en una entidad afectara de una u otra forma la otra.
Dependencia
Resumen
¿Cómo saber cuales son clases?
 Los términos usados por usuarios y desarrolladores para describir el sistema son
clases candidatas.
 Para cada clase, ¿cuáles son sus responsabilidades? ¿están balanceadas entre las
clases?
 ¿Qué atributos y operaciones necesita cada clase para llevar a cabo sus
responsabilidades?
 Identificación de sustantivos dentro del negocio.
Identificación sustantivos: ejemplo
biblioteca
Una biblioteca contiene libros y revistas. Puede haber varias copias de un libro.
Algunos de los libros son reservados sólo para préstamos a corto plazo. Todos los
otros pueden ser prestados a cualquier miembro de la biblioteca por tres semanas. Los
miembros de la biblioteca pueden normalmente solicitar hasta seis items de una vez,
pero miembros del staff pueden solicitar hasta doce items a la vez. Solamente
miembros del staff pueden pedir prestamos de revistas.
El sistema debe conservar la pista de cuando los libros y revistas son prestados y
retornados forzando las reglas de la biblioteca.
Identificación sustantivos: ejemplo
biblioteca
Una biblioteca contiene libros y revistas. Puede haber varias copias de un libro.
Algunos de los libros son reservados sólo para préstamos a corto plazo. Todos los
otros pueden ser prestados a cualquier miembro de la biblioteca por tres semanas. Los
miembros de la biblioteca pueden normalmente solicitar hasta seis items de una vez,
pero miembros del staff pueden solicitar hasta doce items a la vez. Solamente
miembros del staff pueden pedir prestamos de revistas.
El sistema debe conservar la pista de cuando los libros y revistas son prestados y
retornados forzando las reglas de la biblioteca.
Relaciones entre clases
 Libro es un Item.
 Revista es un Item.
 Copia es una copia de Libro.
 MiembroDeBiblioteca.
 Item.
 MiembroDeStaff es un MiembroDeBiblioteca.
 ¿Es el Item necesario?
Operaciones
 MiembroDeBiblioteca pide prestado Copia.
 MiembroDeBiblioteca devuelve Copia.
 MiembroDeStaff pide prestado Revista.
 MiembroDeStaff devuelve Revista.
Diagrama de clases
Agenda
 Contexto
 Diagrama de clases
 Diagrama de paquetes
 Diagrama de colaboraciones
 Bibliografía
¿Qué es un diagrama de paquetes?
 Representación de la división de un sistema en agrupaciones lógicas mostrando las
dependencias entre esas agrupaciones. Dado que normalmente un paquete está
pensado como un directorio, los diagramas de paquetes suministran una
descomposición de la jerarquía lógica de un sistema.
 Los paquetes están normalmente organizados para maximizar la coherencia interna
dentro de cada paquete y minimizar el acoplamiento externo entre los paquetes.
Estereotipos
 Existen dos estereotipos de la relación de dependencia entre paquetes,
<<import>> y <<Access>>.
 Ambos especifican que el paquete origen tiene acceso a los elementos del paquete
destino.
 La diferencia es que <<import>> añade al espacio de nombres del origen el
contenido del destino, evitando la calificación de nombres.
Dependencia
 La relación de dependencia indica que los elementos de un paquete utilizan o
importan los elementos del paquete del que dependen.
Generalización
 La generalización entre paquetes es similar a la generalización entre clases, los
paquetes hijos heredan los elementos del paquete padre. La generalización entre
paquetes suele utilizarse para especificar familias de paquetes.
Ejemplo
Atención!!
 Se deben evitar referencias circulares tanto entre clases como en paquetes. Sin
embargo en clases algunas veces se hace inevitable.
Tarea
Leer:
http://www.agilemodeling.com/artifacts/packageDiagram.htm
Agenda
 Contexto
 Diagrama de clases
 Diagrama de paquetes
 Diagrama de colaboraciones
 Bibliografía
¿Qué es?
 Un diagrama de colaboración es una representación de la interacción entre los objetos.
 Un diagrama de interacción que muestra los objetos, la forma en que se relacionan
(interacción) y los mensajes (métodos) que se envían.
 Los diagramas de colaboración muestran las relaciones entre los roles de los objetos. La
secuencia de los mensajes y los flujos de ejecución concurrentes deben determinarse
explícitamente mediante números de secuencia.
 Se puede convertir cualquier diagrama de secuencias en diagrama de colaboraciones y
viceversa. Por medio de esto se puede representar la información de secuencia en un
diagrama de colaboraciones. Para ello se agrega una cifra a la etiqueta de un mensaje,
la cual corresponde a la secuencia propia del mensaje. La cifra y el mensaje se separan
mediante dos puntos (:).
¿Qué busca?
 Especificar un contrato entre objetos.
 Implementar las asociaciones del diagrama de clases mediante el paso de mensajes
de un objeto a otro.
 Dicha implementación es llamada “enlace”.
 Mostrar cómo las instancias específicas de las clases trabajan juntas para conseguir
un objetivo común.
¿Qué contiene un diagrama de
colaboración?
 Objetos o Roles: nodos del grafo.
 Enlaces o comunicaciones: arcos del grafo.
 Mensajes: llevan número de secuencia y flecha dirigida.
 Anidamiento: se utiliza la numeración decimal Ej: 1, 1.1, 1.1.1 ........
 Iteración: colocar un * antes del número de secuencia y una cláusula de condición,
si es necesario. ej. *[x>0].
 Bifurcación: los caminos alternativos tendrán el mismo número de secuencia,
seguido del número de subsecuencia, y se deben distinguir por una condición.
¿Qué interacciones modelamos?
 Llamada: invoca una operación sobre un objeto. Puede ser a sí mismo.
 Retorno: el receptor de una llamada devuelve un valor al emisor, si es necesario.
 Envío: envía una señal a un objeto.
 Creación: para crear un objeto.
 Destrucción: para destruir un objeto. Puede destruirse a sí mismo.
 Secuenciación: el flujo de mensajes forma una secuencia. La secuencia es indicada
por un número antes del mensaje y una flecha dirigida. Para modelar caminos
alternativos, se coloca el mismo número de secuencia seguido de un número de
subsecuencia.
Diagrama colaboración
Ejemplo
De diagrama de secuencia a diagrama de
colaboración
 Un lector solicita un libro al bibliotecario, y le brinda su título. El bibliotecario
busca el libro en un índice y solicita al asistente que le alcance el libro
De diagrama de secuencia a diagrama de
colaboración
De diagrama de secuencia a diagrama de
colaboración
Agenda
 Contexto
 Diagrama de clases
 Diagrama de paquetes
 Diagrama de colaboraciones
 Bibliografía
Bibliografía
 Larman,C.:UmlyPatrones:Introducciónalanálisisydiseñoorientadoaobjetos,2ed.PrenticeHa
ll.2005.627p.
 Ambler,S.TheObjectPrimer.SecondEdition.CambridgeUniversityPress.2001.
 Buschmann,Franketal.:PatternOrientedSoftwareArchitecture,Volume1:ASystemofPatterns
,Willey&Sons,1996.
 GammaE.,Helm,R.,Johnson,R.,VlissidesJ.:DesignPatterns:ElementsofReusableObjectOrient
edSoftware,AddisonWesley,1995.
 Martin,J.YOdell,J.Analisisydiseñoorientadoaobjetos.PrenticeHall.1992.
 Eckel,Bruce.ThinkinginJava.PrenticeHall.1998.
 OMG.UMLSpecificationv1.3.1999.
 Fowler,M.PatternsofEnterpriseApplicationArchitecture.Addison-Wesley.2003.
 Gamma,Helm,JohnsonyVlissides.DesignPatterns.Addison-Wesley.1995.
Gracias

Más contenido relacionado

La actualidad más candente (20)

Uml relaciones
Uml relacionesUml relaciones
Uml relaciones
 
7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases
 
Uml diagrama de clases
Uml  diagrama de clasesUml  diagrama de clases
Uml diagrama de clases
 
Diag de clases
Diag de clasesDiag de clases
Diag de clases
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Diagrama UML de Clases
Diagrama UML de ClasesDiagrama UML de Clases
Diagrama UML de Clases
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
1 2 5 Modelando Clases
1 2 5 Modelando Clases1 2 5 Modelando Clases
1 2 5 Modelando Clases
 
Exposición Diagrama de Clases
Exposición Diagrama de ClasesExposición Diagrama de Clases
Exposición Diagrama de Clases
 
DIAGRAMAS DE CLASE
DIAGRAMAS DE CLASEDIAGRAMAS DE CLASE
DIAGRAMAS DE CLASE
 
Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)
 
Diseño de Clases
Diseño de ClasesDiseño de Clases
Diseño de Clases
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
U1 s3 introducción a uml parte 1
U1 s3 introducción a uml parte 1U1 s3 introducción a uml parte 1
U1 s3 introducción a uml parte 1
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
DIAGRAMA DE CLASES
DIAGRAMA DE CLASESDIAGRAMA DE CLASES
DIAGRAMA DE CLASES
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 

Destacado

Mapa Mental De Los Usos (¿Para Que? Y ¿En Que Casos?)
Mapa Mental De Los Usos (¿Para Que? Y ¿En Que Casos?)Mapa Mental De Los Usos (¿Para Que? Y ¿En Que Casos?)
Mapa Mental De Los Usos (¿Para Que? Y ¿En Que Casos?)Pedro Cobarrubias
 
Diagrama de colaboración[1]
Diagrama de colaboración[1]Diagrama de colaboración[1]
Diagrama de colaboración[1]Cristian_1941
 
Diagrama de colaboración[1]
Diagrama de colaboración[1]Diagrama de colaboración[1]
Diagrama de colaboración[1]Cristian_1941
 
Diagrama de colaboración
Diagrama de colaboraciónDiagrama de colaboración
Diagrama de colaboraciónushur_4
 
Uml Resumen
Uml ResumenUml Resumen
Uml Resumendurley
 
Diagramas de Objetos, Clases y Estado
Diagramas de Objetos, Clases y Estado Diagramas de Objetos, Clases y Estado
Diagramas de Objetos, Clases y Estado Magyll
 
Sesion1.1 uml
Sesion1.1 umlSesion1.1 uml
Sesion1.1 umlyonnyl
 
diagrama de clases
diagrama de clasesdiagrama de clases
diagrama de clasesjent46
 
Diagrama paquetes, colaboracion y componetes
Diagrama paquetes, colaboracion y componetesDiagrama paquetes, colaboracion y componetes
Diagrama paquetes, colaboracion y componetesandrescofran
 
Unidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesSergio Sanchez
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetesMoises Cruz
 
Uml videotienda (1)
Uml videotienda (1)Uml videotienda (1)
Uml videotienda (1)cgviviana
 
Diagramas de colaboracion
Diagramas de colaboracionDiagramas de colaboracion
Diagramas de colaboraciond-draem
 
Gonzalorojas 11 Uml, Diagrama De Colaboracion
Gonzalorojas 11 Uml, Diagrama De ColaboracionGonzalorojas 11 Uml, Diagrama De Colaboracion
Gonzalorojas 11 Uml, Diagrama De ColaboracionSpimy
 
Diagramas De Secuencia
Diagramas De SecuenciaDiagramas De Secuencia
Diagramas De SecuenciaFabian Garcia
 

Destacado (20)

Mapa Mental De Los Usos (¿Para Que? Y ¿En Que Casos?)
Mapa Mental De Los Usos (¿Para Que? Y ¿En Que Casos?)Mapa Mental De Los Usos (¿Para Que? Y ¿En Que Casos?)
Mapa Mental De Los Usos (¿Para Que? Y ¿En Que Casos?)
 
Uml stiven
Uml stivenUml stiven
Uml stiven
 
Diagrama de colaboración[1]
Diagrama de colaboración[1]Diagrama de colaboración[1]
Diagrama de colaboración[1]
 
Diagrama de colaboración[1]
Diagrama de colaboración[1]Diagrama de colaboración[1]
Diagrama de colaboración[1]
 
Diagrama de colaboración
Diagrama de colaboraciónDiagrama de colaboración
Diagrama de colaboración
 
Uml Resumen
Uml ResumenUml Resumen
Uml Resumen
 
Diagrama de Colaboración
Diagrama de ColaboraciónDiagrama de Colaboración
Diagrama de Colaboración
 
Uml
UmlUml
Uml
 
Diagrama de paquete
Diagrama de paqueteDiagrama de paquete
Diagrama de paquete
 
Diagramas de Objetos, Clases y Estado
Diagramas de Objetos, Clases y Estado Diagramas de Objetos, Clases y Estado
Diagramas de Objetos, Clases y Estado
 
Sesion1.1 uml
Sesion1.1 umlSesion1.1 uml
Sesion1.1 uml
 
Uml diagrama clase objeto
Uml diagrama clase objetoUml diagrama clase objeto
Uml diagrama clase objeto
 
diagrama de clases
diagrama de clasesdiagrama de clases
diagrama de clases
 
Diagrama paquetes, colaboracion y componetes
Diagrama paquetes, colaboracion y componetesDiagrama paquetes, colaboracion y componetes
Diagrama paquetes, colaboracion y componetes
 
Unidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De Clases
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetes
 
Uml videotienda (1)
Uml videotienda (1)Uml videotienda (1)
Uml videotienda (1)
 
Diagramas de colaboracion
Diagramas de colaboracionDiagramas de colaboracion
Diagramas de colaboracion
 
Gonzalorojas 11 Uml, Diagrama De Colaboracion
Gonzalorojas 11 Uml, Diagrama De ColaboracionGonzalorojas 11 Uml, Diagrama De Colaboracion
Gonzalorojas 11 Uml, Diagrama De Colaboracion
 
Diagramas De Secuencia
Diagramas De SecuenciaDiagramas De Secuencia
Diagramas De Secuencia
 

Similar a DiagramaClasesModeloDiseño (20)

Clases 2
Clases 2Clases 2
Clases 2
 
Clase y-objeto
Clase y-objetoClase y-objeto
Clase y-objeto
 
clases
clasesclases
clases
 
Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)
 
Introducción a la progrogramación orientada a objetos - UML
Introducción a la progrogramación orientada a objetos - UMLIntroducción a la progrogramación orientada a objetos - UML
Introducción a la progrogramación orientada a objetos - UML
 
Investigacion objetos unidad 5
Investigacion objetos unidad 5Investigacion objetos unidad 5
Investigacion objetos unidad 5
 
Trabajo2
Trabajo2Trabajo2
Trabajo2
 
Paradigma POO.pptx
Paradigma POO.pptxParadigma POO.pptx
Paradigma POO.pptx
 
Diagramas de clase.pptx
Diagramas de clase.pptxDiagramas de clase.pptx
Diagramas de clase.pptx
 
Clases
ClasesClases
Clases
 
Repaso Diagramas Clase
Repaso Diagramas ClaseRepaso Diagramas Clase
Repaso Diagramas Clase
 
diapositivas_basicas_sobre_la_notacion_uml.pptx
diapositivas_basicas_sobre_la_notacion_uml.pptxdiapositivas_basicas_sobre_la_notacion_uml.pptx
diapositivas_basicas_sobre_la_notacion_uml.pptx
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
base de datos
base de datosbase de datos
base de datos
 
UML.pptx
UML.pptxUML.pptx
UML.pptx
 
Semana 4 Diagrama de Clases y Casos de Uso
Semana 4   Diagrama de Clases y Casos de UsoSemana 4   Diagrama de Clases y Casos de Uso
Semana 4 Diagrama de Clases y Casos de Uso
 
Semana 4 Diagrama de Clases y Casos de Uso
Semana 4   Diagrama de Clases y Casos de UsoSemana 4   Diagrama de Clases y Casos de Uso
Semana 4 Diagrama de Clases y Casos de Uso
 
Diagramas de clase(dream team)
Diagramas de clase(dream team)Diagramas de clase(dream team)
Diagramas de clase(dream team)
 
Poo
PooPoo
Poo
 
Poo
PooPoo
Poo
 

Más de Joan Sebastián Ramírez Pérez (20)

Clean architecture
Clean architectureClean architecture
Clean architecture
 
Practicas tecnicas
Practicas tecnicasPracticas tecnicas
Practicas tecnicas
 
Bddtddatdd
BddtddatddBddtddatdd
Bddtddatdd
 
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
 
Orm
OrmOrm
Orm
 
Servicios web
Servicios webServicios web
Servicios web
 
La nube. Cloud computting
La nube. Cloud computtingLa nube. Cloud computting
La nube. Cloud computting
 
Microservicios
MicroserviciosMicroservicios
Microservicios
 
Control de versiones
Control de versionesControl de versiones
Control de versiones
 
Código Limpio
Código LimpioCódigo Limpio
Código Limpio
 
Ciclo devida
Ciclo devidaCiclo devida
Ciclo devida
 
Practicas técnicas
Practicas técnicasPracticas técnicas
Practicas técnicas
 
Roles scrum
Roles scrumRoles scrum
Roles scrum
 
Lean startup
Lean startupLean startup
Lean startup
 
Principios SOLID
Principios SOLIDPrincipios SOLID
Principios SOLID
 
Código Limpio
Código LimpioCódigo Limpio
Código Limpio
 
Roles desarrollo del software
Roles desarrollo del softwareRoles desarrollo del software
Roles desarrollo del software
 
Refactor y deuda técnica
Refactor y deuda técnicaRefactor y deuda técnica
Refactor y deuda técnica
 
Diagramas comportamiento
Diagramas comportamientoDiagramas comportamiento
Diagramas comportamiento
 
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
 

DiagramaClasesModeloDiseño

  • 1. Modelo Diseño Joan Sebastián Ramírez Pérez 2015
  • 2. Agenda  Contexto  Diagrama de clases  Diagrama de paquetes  Diagrama de colaboraciones  Bibliografía
  • 3. Agenda  Contexto  Diagrama de clases  Diagrama de paquetes  Diagrama de colaboraciones  Bibliografía
  • 5. Agenda  Contexto  Diagrama de clases  Diagrama de paquetes  Diagrama de colaboraciones  Bibliografía
  • 6. ¿Qué describe un diagrama de clases?  Los tipos de objetos en el sistema.  Las relaciones estáticas que existen entre ellos.  Los atributos y operaciones de las clases.  Las restricciones a las clases y a sus asociaciones.
  • 7. ¿Qué es una clase?  Descripción de conjunto de objetos que comparten los mismos atributos, operaciones, métodos, relaciones y semántica.  Las clases son gráficamente representadas por cajas con compartimentos para:  Nombre de la clase, atributos y operaciones.  Responsabilidades, Reglas, Historia de Modificaciones, etc.
  • 8. Clase Una clase debe:  proporcionar una abstracción bien definida de algo del dominio del problema o de la solución.  Contiene un conjunto pequeño de responsabilidades.  Muestra una clara distinción entre la implementación y la especificación de la abstracción.  Ser sencilla, entendible, extensible y adaptable.
  • 10. Interface  Es una colección de operaciones que especifican un servicio de una clase o componente, es decir, un comportamiento externamente visible de ese elemento.  Se especifican las operaciones externamente visibles sin especificación de la estructura interna.  Contrato que adquiere la clase que la implementa.  Gráficamente se representa como un circulo.
  • 12. Tipos de relación.  Asociación  Generalización.  Realización.  Agregación.  Composición.  Dependencia.
  • 13. ¿Cómo se nombran las asociaciones?  La dirección de lectura por defecto para la asociación es de izquierda a derecha y de arriba a abajo.  El nombre debe comenzar con mayúscula porque la asociación representa un clasificador de enlaces entre instancias. (UML )  Cada extremo de la asociación es llamado ROL. (tiene multiplicidad)
  • 16. Generalización  Es la relación taxonómica entre un elemento y otro elemento mas general.  Concepto de herencia Programación Orientada a Objetos.  Relación padre hijo.  Dado un conjunto de clases, se busca responsabilidades, atributos y operaciones comunes.  Si B hereda de A es porque todo objeto de B es un objeto de A.
  • 19. Realización  Significa que existe una relación entre el padre y el hijo en la forma de una implementación.
  • 22. Agregación  una clase “contiene” a otros elementos. Sin embargo la clase no pierde sentido sin la existencia de los mismos.  “Puede vivir sin ellos y sigue siendo la misma... clase”
  • 24. Composición  A diferencia de la agregación, este tipo de interacción indica que la integridad de la clase, depende de los elementos asociados.  “La clase pierde su integridad sin las clases relacionadas”
  • 26. Dependencia  Relación semántica entre dos elementos.  No necesariamente se requiere que existan tipos de objetos relacionados.  Indica que el cambio en una entidad afectara de una u otra forma la otra.
  • 29. ¿Cómo saber cuales son clases?  Los términos usados por usuarios y desarrolladores para describir el sistema son clases candidatas.  Para cada clase, ¿cuáles son sus responsabilidades? ¿están balanceadas entre las clases?  ¿Qué atributos y operaciones necesita cada clase para llevar a cabo sus responsabilidades?  Identificación de sustantivos dentro del negocio.
  • 30. Identificación sustantivos: ejemplo biblioteca Una biblioteca contiene libros y revistas. Puede haber varias copias de un libro. Algunos de los libros son reservados sólo para préstamos a corto plazo. Todos los otros pueden ser prestados a cualquier miembro de la biblioteca por tres semanas. Los miembros de la biblioteca pueden normalmente solicitar hasta seis items de una vez, pero miembros del staff pueden solicitar hasta doce items a la vez. Solamente miembros del staff pueden pedir prestamos de revistas. El sistema debe conservar la pista de cuando los libros y revistas son prestados y retornados forzando las reglas de la biblioteca.
  • 31. Identificación sustantivos: ejemplo biblioteca Una biblioteca contiene libros y revistas. Puede haber varias copias de un libro. Algunos de los libros son reservados sólo para préstamos a corto plazo. Todos los otros pueden ser prestados a cualquier miembro de la biblioteca por tres semanas. Los miembros de la biblioteca pueden normalmente solicitar hasta seis items de una vez, pero miembros del staff pueden solicitar hasta doce items a la vez. Solamente miembros del staff pueden pedir prestamos de revistas. El sistema debe conservar la pista de cuando los libros y revistas son prestados y retornados forzando las reglas de la biblioteca.
  • 32. Relaciones entre clases  Libro es un Item.  Revista es un Item.  Copia es una copia de Libro.  MiembroDeBiblioteca.  Item.  MiembroDeStaff es un MiembroDeBiblioteca.  ¿Es el Item necesario?
  • 33. Operaciones  MiembroDeBiblioteca pide prestado Copia.  MiembroDeBiblioteca devuelve Copia.  MiembroDeStaff pide prestado Revista.  MiembroDeStaff devuelve Revista.
  • 35. Agenda  Contexto  Diagrama de clases  Diagrama de paquetes  Diagrama de colaboraciones  Bibliografía
  • 36. ¿Qué es un diagrama de paquetes?  Representación de la división de un sistema en agrupaciones lógicas mostrando las dependencias entre esas agrupaciones. Dado que normalmente un paquete está pensado como un directorio, los diagramas de paquetes suministran una descomposición de la jerarquía lógica de un sistema.  Los paquetes están normalmente organizados para maximizar la coherencia interna dentro de cada paquete y minimizar el acoplamiento externo entre los paquetes.
  • 37.
  • 38. Estereotipos  Existen dos estereotipos de la relación de dependencia entre paquetes, <<import>> y <<Access>>.  Ambos especifican que el paquete origen tiene acceso a los elementos del paquete destino.  La diferencia es que <<import>> añade al espacio de nombres del origen el contenido del destino, evitando la calificación de nombres.
  • 39. Dependencia  La relación de dependencia indica que los elementos de un paquete utilizan o importan los elementos del paquete del que dependen.
  • 40. Generalización  La generalización entre paquetes es similar a la generalización entre clases, los paquetes hijos heredan los elementos del paquete padre. La generalización entre paquetes suele utilizarse para especificar familias de paquetes.
  • 42. Atención!!  Se deben evitar referencias circulares tanto entre clases como en paquetes. Sin embargo en clases algunas veces se hace inevitable.
  • 44. Agenda  Contexto  Diagrama de clases  Diagrama de paquetes  Diagrama de colaboraciones  Bibliografía
  • 45. ¿Qué es?  Un diagrama de colaboración es una representación de la interacción entre los objetos.  Un diagrama de interacción que muestra los objetos, la forma en que se relacionan (interacción) y los mensajes (métodos) que se envían.  Los diagramas de colaboración muestran las relaciones entre los roles de los objetos. La secuencia de los mensajes y los flujos de ejecución concurrentes deben determinarse explícitamente mediante números de secuencia.  Se puede convertir cualquier diagrama de secuencias en diagrama de colaboraciones y viceversa. Por medio de esto se puede representar la información de secuencia en un diagrama de colaboraciones. Para ello se agrega una cifra a la etiqueta de un mensaje, la cual corresponde a la secuencia propia del mensaje. La cifra y el mensaje se separan mediante dos puntos (:).
  • 46. ¿Qué busca?  Especificar un contrato entre objetos.  Implementar las asociaciones del diagrama de clases mediante el paso de mensajes de un objeto a otro.  Dicha implementación es llamada “enlace”.  Mostrar cómo las instancias específicas de las clases trabajan juntas para conseguir un objetivo común.
  • 47. ¿Qué contiene un diagrama de colaboración?  Objetos o Roles: nodos del grafo.  Enlaces o comunicaciones: arcos del grafo.  Mensajes: llevan número de secuencia y flecha dirigida.  Anidamiento: se utiliza la numeración decimal Ej: 1, 1.1, 1.1.1 ........  Iteración: colocar un * antes del número de secuencia y una cláusula de condición, si es necesario. ej. *[x>0].  Bifurcación: los caminos alternativos tendrán el mismo número de secuencia, seguido del número de subsecuencia, y se deben distinguir por una condición.
  • 48. ¿Qué interacciones modelamos?  Llamada: invoca una operación sobre un objeto. Puede ser a sí mismo.  Retorno: el receptor de una llamada devuelve un valor al emisor, si es necesario.  Envío: envía una señal a un objeto.  Creación: para crear un objeto.  Destrucción: para destruir un objeto. Puede destruirse a sí mismo.  Secuenciación: el flujo de mensajes forma una secuencia. La secuencia es indicada por un número antes del mensaje y una flecha dirigida. Para modelar caminos alternativos, se coloca el mismo número de secuencia seguido de un número de subsecuencia.
  • 51. De diagrama de secuencia a diagrama de colaboración  Un lector solicita un libro al bibliotecario, y le brinda su título. El bibliotecario busca el libro en un índice y solicita al asistente que le alcance el libro
  • 52. De diagrama de secuencia a diagrama de colaboración
  • 53. De diagrama de secuencia a diagrama de colaboración
  • 54. Agenda  Contexto  Diagrama de clases  Diagrama de paquetes  Diagrama de colaboraciones  Bibliografía
  • 55. Bibliografía  Larman,C.:UmlyPatrones:Introducciónalanálisisydiseñoorientadoaobjetos,2ed.PrenticeHa ll.2005.627p.  Ambler,S.TheObjectPrimer.SecondEdition.CambridgeUniversityPress.2001.  Buschmann,Franketal.:PatternOrientedSoftwareArchitecture,Volume1:ASystemofPatterns ,Willey&Sons,1996.  GammaE.,Helm,R.,Johnson,R.,VlissidesJ.:DesignPatterns:ElementsofReusableObjectOrient edSoftware,AddisonWesley,1995.  Martin,J.YOdell,J.Analisisydiseñoorientadoaobjetos.PrenticeHall.1992.  Eckel,Bruce.ThinkinginJava.PrenticeHall.1998.  OMG.UMLSpecificationv1.3.1999.  Fowler,M.PatternsofEnterpriseApplicationArchitecture.Addison-Wesley.2003.  Gamma,Helm,JohnsonyVlissides.DesignPatterns.Addison-Wesley.1995.
  • 56.