SlideShare una empresa de Scribd logo
1 de 10
ANÁLISIS Y DISEÑO DE SISTEMAS II
TRABAJO DE INVESTIGACIÓN
Lic. ELIZA ARIZACA

Integrantes:
Integrantes:
Aruquipa Huaycho Roly
Aruquipa Huaycho Roly
Gutiérrez Rivas Gustavo
Gutiérrez Rivas Gustavo
Huanca Poma María Laura
Huanca Poma María Laura
Quelca Quelca Tomas
Quelca Quelca Tomas
Tito Endara Omar
Tito Endara Omar
Diagramas de Clases
El Diagrama de Clases es el diagrama principal para el análisis y diseño. Un
diagrama de clases presenta las clases del sistema con sus relaciones
estructurales y de herencia. La definición de clase incluye definiciones para
atributos y operaciones. El modelo de casos de uso aporta información para
establecer las clases, objetos, atributos y operaciones.
El mundo real puede ser visto desde abstracciones diferentes (subjetividad)
NOTACION.Cada clase se representa en un rectángulo con tres compartimientos:

Nombre de la
Clase 1
Atributo 1
Atributo 2
.................
Operacion1( )
Operacion2( )
.................
•
•
•

Nombre de la clase
Atributos de la clase
Operaciones de la clase

Atributos:
Los atributos de una clase no deberían ser manipulables directamente por el
resto de objetos. Por esta razón se crearon niveles de visibilidad para los
elementos que son:
Privado (-): es el más fuerte. Esta parte es totalmente invisible (excepto
para clases friends en terminología C++).
Protegido (#): Los atributos/operaciones protegidos están visibles para
las clases friends y para las clases derivadas de la original.
Público (+): Los atributos/operaciones públicos son visibles a otras
clases (cuando se trata de atributos se está transgrediendo el principio de
encapsulación).
Métodos:
Los métodos u operaciones de una clase son la forma en como ésta
interactúa con su entorno, éstos pueden tener las características:
Privado (-): Indica que el método sólo será accesible desde dentro de la
clase (sólo otros métodos de la clase lo pueden acceder).
Protegido (#): Indica que el método no será accesible desde fuera de la
clase, pero si podrá ser accesado por métodos de la clase además de
métodos de las subclases que se deriven (ver herencia).
Público (+): Indica que el método será visible tanto dentro como fuera
de la clase, es decir, es accesible desde todos lados.

Ejemplos de Clases:
Automóvil
- Ruedas
- Asientos
- Puertas
+ Arrancar ( )
+ Acelerar ( )
+ Frenar ( )
+ Girar ( )

Alumno
- Nombre
- Dirección
- Carnet_Identidad
+ Estudiar( )
+ Tomar_apuntes( )

Cliente
- Nombre
- Dirección
- Teléfono
+ Comprar ( )
+ Devolver ( )

Relaciones entre clases:
Los enlaces entre objetos pueden representarse entre las respectivas clases y
sus formas de relación son:
•
•
•

Asociación
Agregación (vista como un caso particular de asociación)
Generalización/Especialización.

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

Asociación:
La asociación expresa una conexión bidireccional entre objetos. Una asociación
es una abstracción de la relación existente en los enlaces entre los objetos.
Puede determinarse por la especificación de multiplicidad (mínima...máxima)
Trabaja_para

Persona

Aeropuerto

Compañía

Vuelo

Trabaja_en_proyecto

Proyecto_Software

Lenguaje_prog

Persona

Multiplicidad:

Representa el número de objetos que pueden conectarse a través de una relación
de asociación.
Existen tres tipos de multiplicidad o cardinalidad.
-

Uno a Uno
Uno a Muchos

-

Muchos a Muchos

Notación

Lectura

1

Exactamente Uno

*

Muchos

0…1

Cero a uno

0…*

Cero a muchos

1…*

Uno a Muchos (al menos uno)
M…N

De M hasta N (enteros naturales)

Ejemplos:

Persona
1…*

1...*

Trabaja_para

Aeropuerto

1...*

Compañía

Vuelo

1…*

Roles:
Para indicar el papel que juega una clase en una asociación se puede especificar un
nombre de rol.
Ejemplo 1:
*

Empresa

Contratante

Emplea

1…*

Trabajador

Empleado

Ejemplo 2:
2

Persona

Padre
Hijo

Es_padre_de

*
Se representa en el extremo de la asociación junto a la clase que desempeña dicho rol.

Clases Asociación:
Cuando una asociación tiene propiedades propias se representa como una clase
unida a la línea de la asociación por medio de una línea a trazos. Tanto la línea
como el rectángulo de clase representan el mismo elemento conceptual: la
asociación. Por tanto ambos tienen el mismo nombre, el de la asociación.
Cuando la clase asociación sólo tiene atributos el nombre suele ponerse sobre
la línea (como ocurre en el ejemplo de la Figura 11). Por el contrario, cuando la
clase asociación tiene alguna operación o asociación propia, entonces se pone el
nombre en la clase asociación y se puede quitar de la línea.
Ejemplo:

Empresa

*

Emplea

Contratante

1…*

Trabajador

Empleado

Salario

Agregación:
Para modelar objetos complejos, n bastan los tipos de datos básicos que proveen los
lenguajes: enteros, reales y secuencias de caracteres. Cuando se requiere componer
objetos que son instancias de clases definidas por el desarrollador de la aplicación,
tenemos dos posibilidades:




Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del objeto
incluido esta condicionado por el tiempo de vida del que lo incluye. Este tipo de
relación es comúnmente llamada Composición (el Objeto base se construye a
partir del objeto incluido, es decir, es "parte/todo").
Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de vida del
objeto incluido es independiente del que lo incluye. Este tipo de relación es
comúnmente llamada Agregación (el objeto base utiliza al incluido para su
funcionamiento).

Un Ejemplo es el siguiente:

En donde se destaca que:
Un Almacen posee Clientes y Cuentas (los rombos van en el objeto que posee las
referencias).
Cuando se destruye el Objeto Almacén también son destruidos los objetos Cuenta
asociados, en cambio no son afectados los objetos Cliente asociados.
La composición (por Valor) se destaca por un rombo relleno.
La agregación (por Referencia) se destaca por un rombo transparente.
La relación de agregación tiene cardinalidad o multiplicidad.
Ejemplo: 2
Ordenador

Ejemplo: 3

CPU

Universidad

Teclado
*

Facultad

Monitor
*

Carrera

Generalización:
Permite gestionar la complejidad mediante un ordenamiento taxonómico de
clases, se obtiene usando los mecanismos de abstracción de Generalización y/o
Especialización. La Generalización consiste en factorizar las propiedades
comunes de un conjunto de clases en una clase más general. Los nombres
usados: clase padre - clase hija. Otros nombres: superclase - subclase, clase
base - clase derivada. Las subclases heredan propiedades de sus clases padre,
es decir, atributos y operaciones (y asociaciones) de la clase padre están
disponibles en sus clases hijas. La Generalización y Especialización son
equivalentes en cuanto al resultado: la jerarquía y herencia establecidas.
Generalización y Especialización no son operaciones reflexivas ni simétricas
pero sí transitivas. La especialización es una técnica muy eficaz para la
extensión y reutilización.
La Notación para la Generalización/Especialización es un triangulo que
conecta una superclase con sus subclases.
La superclase se conecta a la parte superior del triangulo.
La subclase se conecta mediante una línea a la base del triangulo.
Ejemplo:

Vehiculo
- Ruedas
- Puertas
- Asiento
+ Arrancar( )
+ Acelerar( )
+ Frenar( )
+ Girar( )

Automóvil
- Deportivo
+ Correr( )

Camión
- Remolque
+ Cargar( )

Construcción de un Diagrama de Clases de Diseño
Normalmente se tiene una idea de un Diagrama de Clases, con una asignación de
responsabilidades inicial. En caso de que no se tenga dicho Diagrama de Clases Borrador,
puede seguirse la siguiente estrategia:
1. Identificar todas las clases participantes en la solución software. Esto se lleva a
cabo analizando los Diagramas de Interacción.
2. Representarlas en un diagrama de clases.
3. Duplicar los atributos que aparezcan en los conceptos asociados del Modelo
Conceptual.
4. Añadir los métodos, según aparecen en los Diagramas de Interacción.
5. Añadir información de tipo a los atributos y métodos.
6. Añadir las asociaciones necesarias para soportar la visibilidad de atributos
requerida.
7. Añadir flechas de navegabilidad a las asociaciones para indicar la dirección de
visibilidad de los atributos.
8. Añadir relaciones de dependencia para indicar visibilidad no correspondiente a
atributos.
Algunos de estos pasos se van realizando según se vayan completando los Diagramas de
Interacción correspondientes. No existe precedencia entre la realización del Diagrama de
Clases de Diseño y los Diagramas de Interacción. Ambos tipos de diagramas se realizan
en paralelo, y unas veces se trabaja primero más en el de clases y otras veces se trabaja
primero más en los de interacción.
No todas las clases que aparecían en el Modelo Conceptual tienen por qué aparecer en el
Diagrama de Clases de Diseño. De hecho, tan solo se incluirán aquellas clases que tengan
interés en cuanto a que se les ha asignado algún tipo de responsabilidad en el diseño del
sistema. No hay, por tanto, un transición directa entre el Modelo Conceptual y el Diagrama
de Clases de Diseño, debido a que ambos se basan en enfoques completamente distintos:
el primero en comprensión de un dominio, y el segundo en una solución software.
En el Diagrama de Clases de Diseño se añaden los detalles referentes al lenguaje de
programación que se vaya a usar. Por ejemplo, los tipos de los atributos y parámetros se
expresarán en el lenguaje de implementación escogido.

Ejemplo de Aplicación
Consignatario de Industrias Venado – El Alto
programación que se vaya a usar. Por ejemplo, los tipos de los atributos y parámetros se
expresarán en el lenguaje de implementación escogido.

Ejemplo de Aplicación
Consignatario de Industrias Venado – El Alto

Más contenido relacionado

La actualidad más candente

UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
Guillermo Díaz
 
Diag de clases
Diag de clasesDiag de clases
Diag de clases
Lismirabal
 
1 2 5 Modelando Clases
1 2 5 Modelando Clases1 2 5 Modelando Clases
1 2 5 Modelando Clases
UVM
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
still01
 

La actualidad más candente (20)

Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Modelo diseño
Modelo diseñoModelo diseño
Modelo diseño
 
Exposición Diagrama de Clases
Exposición Diagrama de ClasesExposición Diagrama de Clases
Exposición Diagrama de Clases
 
Diagramas clases presentacion
Diagramas clases presentacionDiagramas clases presentacion
Diagramas clases presentacion
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
 
Lenguajes de Programación: Herencia, Polimorfismo Y UML
Lenguajes de Programación: Herencia, Polimorfismo Y UMLLenguajes de Programación: Herencia, Polimorfismo Y UML
Lenguajes de Programación: Herencia, Polimorfismo Y UML
 
Diag de clases
Diag de clasesDiag de clases
Diag de clases
 
1 2 5 Modelando Clases
1 2 5 Modelando Clases1 2 5 Modelando Clases
1 2 5 Modelando Clases
 
Diseño de Clases
Diseño de ClasesDiseño de Clases
Diseño de Clases
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
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
 
Diagramas Analisis
Diagramas AnalisisDiagramas Analisis
Diagramas Analisis
 
encuesta
encuestaencuesta
encuesta
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
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 claseobjeto
Uml diagrama claseobjetoUml diagrama claseobjeto
Uml diagrama claseobjeto
 

Destacado

20111006 roadshow-virtualisierung
20111006 roadshow-virtualisierung20111006 roadshow-virtualisierung
20111006 roadshow-virtualisierung
Werner Fischer
 
Bluenature katalog de
Bluenature katalog deBluenature katalog de
Bluenature katalog de
mario1962
 
Fundamentos marzo1
Fundamentos marzo1Fundamentos marzo1
Fundamentos marzo1
Paul Dupont
 
Issues Management als Herausforderung der Unternehmenskommunikation
Issues Management als Herausforderung der UnternehmenskommunikationIssues Management als Herausforderung der Unternehmenskommunikation
Issues Management als Herausforderung der Unternehmenskommunikation
theresamos
 
Programas para matenimiento del pc
Programas para matenimiento del pcProgramas para matenimiento del pc
Programas para matenimiento del pc
technologyjba
 
Split pst
Split pst Split pst
Split pst
allyvon
 
Epidemiologia de la
Epidemiologia de laEpidemiologia de la
Epidemiologia de la
Ktik Galindo
 

Destacado (20)

20111006 roadshow-virtualisierung
20111006 roadshow-virtualisierung20111006 roadshow-virtualisierung
20111006 roadshow-virtualisierung
 
6. Breitband-Regionalkonferenz Harz
6. Breitband-Regionalkonferenz Harz6. Breitband-Regionalkonferenz Harz
6. Breitband-Regionalkonferenz Harz
 
Flores Tropicales de Costa Rica por Mauricio Chavarría Richmond
Flores Tropicales de Costa Rica por Mauricio Chavarría RichmondFlores Tropicales de Costa Rica por Mauricio Chavarría Richmond
Flores Tropicales de Costa Rica por Mauricio Chavarría Richmond
 
Metodosdebusqueda
MetodosdebusquedaMetodosdebusqueda
Metodosdebusqueda
 
Bluenature katalog de
Bluenature katalog deBluenature katalog de
Bluenature katalog de
 
Juan Pedros Familie
Juan Pedros FamilieJuan Pedros Familie
Juan Pedros Familie
 
Educación en valores
Educación en valoresEducación en valores
Educación en valores
 
Taller angie niño
Taller angie niñoTaller angie niño
Taller angie niño
 
Fundamentos marzo1
Fundamentos marzo1Fundamentos marzo1
Fundamentos marzo1
 
Chat
ChatChat
Chat
 
Presentación
PresentaciónPresentación
Presentación
 
Presentacion personal
Presentacion personalPresentacion personal
Presentacion personal
 
Issues Management als Herausforderung der Unternehmenskommunikation
Issues Management als Herausforderung der UnternehmenskommunikationIssues Management als Herausforderung der Unternehmenskommunikation
Issues Management als Herausforderung der Unternehmenskommunikation
 
Programas para matenimiento del pc
Programas para matenimiento del pcProgramas para matenimiento del pc
Programas para matenimiento del pc
 
Diverse2 Mafia ist ein scheiss Gegen Dise Bande
Diverse2 Mafia ist ein scheiss Gegen Dise Bande Diverse2 Mafia ist ein scheiss Gegen Dise Bande
Diverse2 Mafia ist ein scheiss Gegen Dise Bande
 
Modulo de corte
Modulo de corteModulo de corte
Modulo de corte
 
Split pst
Split pst Split pst
Split pst
 
Joels Tagesablauf
Joels TagesablaufJoels Tagesablauf
Joels Tagesablauf
 
Epidemiologia de la
Epidemiologia de laEpidemiologia de la
Epidemiologia de la
 
Presentacion vender juntos
Presentacion vender juntosPresentacion vender juntos
Presentacion vender juntos
 

Similar a Clases 2 (20)

Introduccion a UML
Introduccion a UMLIntroduccion a UML
Introduccion a UML
 
Clase 17
Clase 17Clase 17
Clase 17
 
clases
clasesclases
clases
 
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
 
UML.pptx
UML.pptxUML.pptx
UML.pptx
 
Diagramas de clase.pptx
Diagramas de clase.pptxDiagramas de clase.pptx
Diagramas de clase.pptx
 
Diagrama de clases y diagrama de objetos
Diagrama de clases y diagrama de objetosDiagrama de clases y diagrama de objetos
Diagrama de clases y diagrama de objetos
 
Clases
ClasesClases
Clases
 
Klasepalomino14
Klasepalomino14Klasepalomino14
Klasepalomino14
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Klasepalomino14
Klasepalomino14Klasepalomino14
Klasepalomino14
 
D Iagramas U Ml
D Iagramas U MlD Iagramas U Ml
D Iagramas U Ml
 
D Iagramas U Ml
D Iagramas U MlD Iagramas U Ml
D Iagramas U Ml
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
31096724 diagrama-de-clases-en-uml
31096724 diagrama-de-clases-en-uml31096724 diagrama-de-clases-en-uml
31096724 diagrama-de-clases-en-uml
 
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
 
Trabajo2
Trabajo2Trabajo2
Trabajo2
 
Diagramadeclase
DiagramadeclaseDiagramadeclase
Diagramadeclase
 
Tutorial uml
Tutorial umlTutorial uml
Tutorial uml
 

Más de Fiorella Urbina Vera (14)

EL ÀRADO.pdf
EL ÀRADO.pdfEL ÀRADO.pdf
EL ÀRADO.pdf
 
TAREA BIODIVERSIDAD .pdf
TAREA BIODIVERSIDAD .pdfTAREA BIODIVERSIDAD .pdf
TAREA BIODIVERSIDAD .pdf
 
CONTAMINACION DEL AGUA.pptx
CONTAMINACION DEL AGUA.pptxCONTAMINACION DEL AGUA.pptx
CONTAMINACION DEL AGUA.pptx
 
TRABAJO DE TECNICAS DE AISLAMIENTO.pptx
TRABAJO DE TECNICAS DE AISLAMIENTO.pptxTRABAJO DE TECNICAS DE AISLAMIENTO.pptx
TRABAJO DE TECNICAS DE AISLAMIENTO.pptx
 
CLASIFICACION DE RESIDUOS HOSPITALARIOS.pptx
CLASIFICACION DE RESIDUOS HOSPITALARIOS.pptxCLASIFICACION DE RESIDUOS HOSPITALARIOS.pptx
CLASIFICACION DE RESIDUOS HOSPITALARIOS.pptx
 
informe de higiene perineal.docx
informe de higiene perineal.docxinforme de higiene perineal.docx
informe de higiene perineal.docx
 
prezzi 3.pdf
prezzi 3.pdfprezzi 3.pdf
prezzi 3.pdf
 
trabajo de movilizacion.pdf
trabajo de  movilizacion.pdftrabajo de  movilizacion.pdf
trabajo de movilizacion.pdf
 
Ex amen DE MATEMATICA
Ex amen DE MATEMATICAEx amen DE MATEMATICA
Ex amen DE MATEMATICA
 
Jhoan jhin zafra farro
Jhoan jhin zafra farroJhoan jhin zafra farro
Jhoan jhin zafra farro
 
Comparison of german and chinese culture (1)
Comparison of german and chinese culture (1)Comparison of german and chinese culture (1)
Comparison of german and chinese culture (1)
 
Almacenes de datos, olap y minería de datos
Almacenes de datos, olap y minería de datosAlmacenes de datos, olap y minería de datos
Almacenes de datos, olap y minería de datos
 
Ag (2005 verano)
Ag (2005 verano)Ag (2005 verano)
Ag (2005 verano)
 
Comparison of german and chinese culture
Comparison of german and chinese cultureComparison of german and chinese culture
Comparison of german and chinese culture
 

Clases 2

  • 1. ANÁLISIS Y DISEÑO DE SISTEMAS II TRABAJO DE INVESTIGACIÓN Lic. ELIZA ARIZACA Integrantes: Integrantes: Aruquipa Huaycho Roly Aruquipa Huaycho Roly Gutiérrez Rivas Gustavo Gutiérrez Rivas Gustavo Huanca Poma María Laura Huanca Poma María Laura Quelca Quelca Tomas Quelca Quelca Tomas Tito Endara Omar Tito Endara Omar
  • 2. Diagramas de Clases El Diagrama de Clases es el diagrama principal para el análisis y diseño. Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales y de herencia. La definición de clase incluye definiciones para atributos y operaciones. El modelo de casos de uso aporta información para establecer las clases, objetos, atributos y operaciones. El mundo real puede ser visto desde abstracciones diferentes (subjetividad) NOTACION.Cada clase se representa en un rectángulo con tres compartimientos: Nombre de la Clase 1 Atributo 1 Atributo 2 ................. Operacion1( ) Operacion2( ) ................. • • • Nombre de la clase Atributos de la clase Operaciones de la clase Atributos: Los atributos de una clase no deberían ser manipulables directamente por el resto de objetos. Por esta razón se crearon niveles de visibilidad para los elementos que son: Privado (-): es el más fuerte. Esta parte es totalmente invisible (excepto para clases friends en terminología C++). Protegido (#): Los atributos/operaciones protegidos están visibles para las clases friends y para las clases derivadas de la original. Público (+): Los atributos/operaciones públicos son visibles a otras clases (cuando se trata de atributos se está transgrediendo el principio de encapsulación).
  • 3. Métodos: Los métodos u operaciones de una clase son la forma en como ésta interactúa con su entorno, éstos pueden tener las características: Privado (-): Indica que el método sólo será accesible desde dentro de la clase (sólo otros métodos de la clase lo pueden acceder). Protegido (#): Indica que el método no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de métodos de las subclases que se deriven (ver herencia). Público (+): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados. Ejemplos de Clases: Automóvil - Ruedas - Asientos - Puertas + Arrancar ( ) + Acelerar ( ) + Frenar ( ) + Girar ( ) Alumno - Nombre - Dirección - Carnet_Identidad + Estudiar( ) + Tomar_apuntes( ) Cliente - Nombre - Dirección - Teléfono + Comprar ( ) + Devolver ( ) Relaciones entre clases: Los enlaces entre objetos pueden representarse entre las respectivas clases y sus formas de relación son: • • • Asociación Agregación (vista como un caso particular de asociación) Generalización/Especialización. Las relaciones de Agregación y Generalización forman jerarquías de clases. Asociación: La asociación expresa una conexión bidireccional entre objetos. Una asociación es una abstracción de la relación existente en los enlaces entre los objetos. Puede determinarse por la especificación de multiplicidad (mínima...máxima)
  • 4. Trabaja_para Persona Aeropuerto Compañía Vuelo Trabaja_en_proyecto Proyecto_Software Lenguaje_prog Persona Multiplicidad: Representa el número de objetos que pueden conectarse a través de una relación de asociación. Existen tres tipos de multiplicidad o cardinalidad. - Uno a Uno Uno a Muchos - Muchos a Muchos Notación Lectura 1 Exactamente Uno * Muchos 0…1 Cero a uno 0…* Cero a muchos 1…* Uno a Muchos (al menos uno)
  • 5. M…N De M hasta N (enteros naturales) Ejemplos: Persona 1…* 1...* Trabaja_para Aeropuerto 1...* Compañía Vuelo 1…* Roles: Para indicar el papel que juega una clase en una asociación se puede especificar un nombre de rol. Ejemplo 1: * Empresa Contratante Emplea 1…* Trabajador Empleado Ejemplo 2: 2 Persona Padre Hijo Es_padre_de * Se representa en el extremo de la asociación junto a la clase que desempeña dicho rol. Clases Asociación: Cuando una asociación tiene propiedades propias se representa como una clase unida a la línea de la asociación por medio de una línea a trazos. Tanto la línea como el rectángulo de clase representan el mismo elemento conceptual: la asociación. Por tanto ambos tienen el mismo nombre, el de la asociación. Cuando la clase asociación sólo tiene atributos el nombre suele ponerse sobre la línea (como ocurre en el ejemplo de la Figura 11). Por el contrario, cuando la clase asociación tiene alguna operación o asociación propia, entonces se pone el nombre en la clase asociación y se puede quitar de la línea.
  • 6. Ejemplo: Empresa * Emplea Contratante 1…* Trabajador Empleado Salario Agregación: Para modelar objetos complejos, n bastan los tipos de datos básicos que proveen los lenguajes: enteros, reales y secuencias de caracteres. Cuando se requiere componer objetos que son instancias de clases definidas por el desarrollador de la aplicación, tenemos dos posibilidades:   Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye. Este tipo de relación es comúnmente llamada Composición (el Objeto base se construye a partir del objeto incluido, es decir, es "parte/todo"). Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relación es comúnmente llamada Agregación (el objeto base utiliza al incluido para su funcionamiento). Un Ejemplo es el siguiente: En donde se destaca que: Un Almacen posee Clientes y Cuentas (los rombos van en el objeto que posee las referencias). Cuando se destruye el Objeto Almacén también son destruidos los objetos Cuenta asociados, en cambio no son afectados los objetos Cliente asociados.
  • 7. La composición (por Valor) se destaca por un rombo relleno. La agregación (por Referencia) se destaca por un rombo transparente. La relación de agregación tiene cardinalidad o multiplicidad. Ejemplo: 2 Ordenador Ejemplo: 3 CPU Universidad Teclado * Facultad Monitor * Carrera Generalización: Permite gestionar la complejidad mediante un ordenamiento taxonómico de clases, se obtiene usando los mecanismos de abstracción de Generalización y/o Especialización. La Generalización consiste en factorizar las propiedades comunes de un conjunto de clases en una clase más general. Los nombres usados: clase padre - clase hija. Otros nombres: superclase - subclase, clase base - clase derivada. Las subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones (y asociaciones) de la clase padre están disponibles en sus clases hijas. La Generalización y Especialización son equivalentes en cuanto al resultado: la jerarquía y herencia establecidas. Generalización y Especialización no son operaciones reflexivas ni simétricas pero sí transitivas. La especialización es una técnica muy eficaz para la extensión y reutilización. La Notación para la Generalización/Especialización es un triangulo que conecta una superclase con sus subclases. La superclase se conecta a la parte superior del triangulo. La subclase se conecta mediante una línea a la base del triangulo. Ejemplo: Vehiculo - Ruedas - Puertas - Asiento
  • 8. + Arrancar( ) + Acelerar( ) + Frenar( ) + Girar( ) Automóvil - Deportivo + Correr( ) Camión - Remolque + Cargar( ) Construcción de un Diagrama de Clases de Diseño Normalmente se tiene una idea de un Diagrama de Clases, con una asignación de responsabilidades inicial. En caso de que no se tenga dicho Diagrama de Clases Borrador, puede seguirse la siguiente estrategia: 1. Identificar todas las clases participantes en la solución software. Esto se lleva a cabo analizando los Diagramas de Interacción. 2. Representarlas en un diagrama de clases. 3. Duplicar los atributos que aparezcan en los conceptos asociados del Modelo Conceptual. 4. Añadir los métodos, según aparecen en los Diagramas de Interacción. 5. Añadir información de tipo a los atributos y métodos. 6. Añadir las asociaciones necesarias para soportar la visibilidad de atributos requerida. 7. Añadir flechas de navegabilidad a las asociaciones para indicar la dirección de visibilidad de los atributos. 8. Añadir relaciones de dependencia para indicar visibilidad no correspondiente a atributos. Algunos de estos pasos se van realizando según se vayan completando los Diagramas de Interacción correspondientes. No existe precedencia entre la realización del Diagrama de Clases de Diseño y los Diagramas de Interacción. Ambos tipos de diagramas se realizan en paralelo, y unas veces se trabaja primero más en el de clases y otras veces se trabaja primero más en los de interacción. No todas las clases que aparecían en el Modelo Conceptual tienen por qué aparecer en el Diagrama de Clases de Diseño. De hecho, tan solo se incluirán aquellas clases que tengan interés en cuanto a que se les ha asignado algún tipo de responsabilidad en el diseño del sistema. No hay, por tanto, un transición directa entre el Modelo Conceptual y el Diagrama de Clases de Diseño, debido a que ambos se basan en enfoques completamente distintos: el primero en comprensión de un dominio, y el segundo en una solución software. En el Diagrama de Clases de Diseño se añaden los detalles referentes al lenguaje de
  • 9. programación que se vaya a usar. Por ejemplo, los tipos de los atributos y parámetros se expresarán en el lenguaje de implementación escogido. Ejemplo de Aplicación Consignatario de Industrias Venado – El Alto
  • 10. programación que se vaya a usar. Por ejemplo, los tipos de los atributos y parámetros se expresarán en el lenguaje de implementación escogido. Ejemplo de Aplicación Consignatario de Industrias Venado – El Alto