virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web...

17
Diagramas de Clases Un diagrama de clases es un tipo de diagrama estático que describe la estructura de un sistema mostrando sus clases, atributos y las relaciones entre ellos. Los diagramas de clases son utilizados durante el proceso de análisis y diseño de los sistemas, donde se crea el diseño conceptual de la información que se manejará en el sistema, y los componentes que se encargaran del funcionamiento y la relación entre uno y otro. Representación de: - Requerimientos en entidades y actuaciones. La arquitectura conceptual de un dominio Soluciones de diseño en una arquitectura Componentes de software orientados a objetos El diagrama de clases incluye mucha más información como la relación entre un objeto y otro, la herencia de propiedades de otro objeto, conjuntos de operaciones/propiedades que son implementadas para una interfaz gráfica. presenta las clases del sistema con sus relaciones estructurales y de herencia. Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de convencimiento. Un diagrama de clases está compuesto por los siguientes elementos: Clase: atributos, métodos y visibilidad. Relaciones: Herencia, Composición, Agregación, Asociación y Uso. DEPENDENCIA -Artefactos de los que depende su construcción El diagrama de clases se desarrolla a través de información obtenida en los Diagramas de Casos de Uso, Diagramas de Secuencia, Diagramas de Colaboración, Diagramas de estado, Diagramas de actividades y Diagramas de objetos. Los objetos encontrados durante el análisis son modelados en términos de la clase a la que

Transcript of virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web...

Page 1: virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web viewpresenta las clases del sistema con sus relaciones estructurales y de herencia. Un diagrama

Diagramas de ClasesUn diagrama de clases es un tipo de diagrama estático que describe la estructura de un sistema mostrando sus clases, atributos y las relaciones entre ellos. Los diagramas de clases son utilizados durante el proceso de análisis y diseño de los sistemas, donde se crea el diseño conceptual de la información que se manejará en el sistema, y los componentes que se encargaran del funcionamiento y la relación entre uno y otro.Representación de: - Requerimientos en entidades y actuaciones. La arquitectura conceptual de un dominio Soluciones de diseño en una arquitectura Componentes de software orientados a objetosEl diagrama de clases incluye mucha más información como la relación entre un objeto y otro, la herencia de propiedades de otro objeto, conjuntos de operaciones/propiedades que son implementadas para una interfaz gráfica.

presenta las clases del sistema con sus relaciones estructurales y de herencia.Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de convencimiento.Un diagrama de clases está compuesto por los siguientes elementos:

Clase: atributos, métodos y visibilidad. Relaciones: Herencia, Composición, Agregación, Asociación y Uso.

DEPENDENCIA

-Artefactos de los que depende su construcciónEl diagrama de clases se desarrolla a través de información obtenida en los Diagramas de Casos de Uso, Diagramas de Secuencia, Diagramas de Colaboración, Diagramas de estado, Diagramas de actividades y Diagramas de objetos. Los objetos encontrados durante el análisis son modelados en términos de la clase a la que instancian, y las interacciones entre objetos son referenciados a relaciones entre las clases instanciadas.

Page 2: virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web viewpresenta las clases del sistema con sus relaciones estructurales y de herencia. Un diagrama

-Artefactos que generan a partir de los diagramas de clasesLos Diagramas de Objetos están vinculados con los Diagramas de Clases. Un objeto es una instancia de una clase, por lo que un diagrama de objetos puede ser visto como una instancia de un diagrama de clases. Los diagramas de objetos describen la estructura estática de un sistema en un momento particular y son usados para probar la precisión de los diagramas de clases.

Un diagrama de componentes es un diagrama de clases a gran escala. Cada componente en el diagrama debe ser documentado con un diagrama de componentes más detallado, un diagrama de clases, o un diagrama de casos de uso.Los diagramas de colaboración representan una combinación de información tomada de los diagramas de clases, de secuencias y de casos de uso, describiendo el comportamiento, tanto de la estructura estática, como de la estructura dinámica de un sistema.

Los diagramas de clases y los de objetos representan información estática. No obstante, en un sistema funcional, los objetos interactúan entre sí, y tales interacciones suceden con el tiempo. El diagrama desecuencias UML muestra mecánica de la interacción con base en tiempos.

-Etapa en la que se realiza su construcciónSon utilizados durante las etapas de análisis y diseño de los sistemas, donde se crea el diseño conceptual de la información que se manejará en el sistema, y los componentes que se encargaran del funcionamiento y la relación entre uno y otro.

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

Page 3: virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web viewpresenta las clases del sistema con sus relaciones estructurales y de herencia. Un diagrama

Nombre de laClase 1

Atributo 1Atributo 2.................Operacion1( )Operacion2( ).................

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

Zona superior: nombre clase. Zona Media: atributos de la clase (diferentes niveles de detalle). Zona Baja: Operaciones (tambien dependen del nivel de detalle)

Visibilidad: + significa PUBLICA (visible para todos los clientes de la clase)

- significa PRIVADA(visible solo por la propia clase)

# significa PROTEGIDA (visible solo para las subclases)

TIPOS DE CLASES:

Abstractas: Aquella que no se puede instanciar de forma directa. EJ:

Page 4: virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web viewpresenta las clases del sistema con sus relaciones estructurales y de herencia. Un diagrama

RELACIONES:

Asociación: Relación generica entre 2 clases que presenta un conjunto de enlaces entre objetos. Denota una dependencia semántica.

TIPOS RELACIONES:

Herencia: Establece una jerarquía padre-hijo entre las clases implicadas. Permite a la clase hijo heredar los atributos y operaciones de la superclase o clase padre. (ver ejemplo anterior de vehiculos)

Dependencia: Indica que una clase necesita de otra para poder prestar sus servicios. Se representa con una flecha sin cerrar a trazos.

Composición: Representación de una relación de composición entre un elemento y sus componentes. (ejemplo: coche—-ruedas,puertas,volante…). Se representa con un rombo relleno en la case general en la linea de relación de las clases.

Agregación: Es una relación de composición debil. Parte de una asociación en la cual los objetos representan componentes o partes de un objeto. Se representa igual que el caso anterior pero sin rellenar el rombo.

Page 5: virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web viewpresenta las clases del sistema con sus relaciones estructurales y de herencia. Un diagrama

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 cómo é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 ( )

Page 6: virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web viewpresenta las clases del sistema con sus relaciones estructurales y de herencia. Un diagrama

VueloAeropuerto

Proyecto_Software Lenguaje_prog

Persona

Trabaja_en_proyecto

Persona CompañíaTrabaja_para

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)

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.

Page 7: virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web viewpresenta las clases del sistema con sus relaciones estructurales y de herencia. Un diagrama

- Uno a Uno- Uno a Muchos- Muchos a Muchos

Notación Lectura1 Exactamente Uno* Muchos0…1 Cero a uno0…* Cero a muchos1…* Uno a Muchos (al menos uno)M…N De M hasta N (enteros naturales)

Ejemplos:

1...* 1...*

1…*

1…*

Roles:

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

Ejemplo 1:

* Emplea 1…*

Contratante Empleado

Ejemplo 2:

Trabaja_paraCompañíaPersona

Aeropuerto Vuelo

TrabajadorEmpresa

Page 8: virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web viewpresenta las clases del sistema con sus relaciones estructurales y de herencia. Un diagrama

2

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:

* Emplea 1…*

Contratante Empleado

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).

Salario

TrabajadorEmpresa

HijoPadrePersona

Page 9: virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web viewpresenta las clases del sistema con sus relaciones estructurales y de herencia. Un diagrama

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

Ejemplo: 3

* *

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.

MonitorTecladoCPU

Ordenador

CarreraFacultadUniversidad

Page 10: virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web viewpresenta las clases del sistema con sus relaciones estructurales y de herencia. Un diagrama

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:

Vehículo- Ruedas- Puertas- Asiento+ Arrancar( )+ Acelerar( )+ Frenar( )+ Girar( )

Construcción de un

CONSTRUCCIÓN DEL DISEÑO DE DIAGRAMA DE CLASES

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.

Camión- Remolque+ Cargar( )

Page 11: virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web viewpresenta las clases del sistema con sus relaciones estructurales y de herencia. Un diagrama

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

DIAGRAMA DE CLASESPARA REALIZAR EL PRESTAMO Y DEVOLUCION DE LIBROSBIBLIOTECA DE UN COLEGIO

La biblioteca tiene copias de libros, estos últimos se caracterizan por su nombre, año y autor.# Un libro estaá relacionado con una categoría (novela, teatro, poesía, ensayo) así como también con una editorial.# Los autores se caracterizan por su nombre y fecha de nacimiento. Se considera que el autor sólo tiene nacionalidad.# Cada copia tiene un identificador, y puede estar en la biblioteca, prestada con retraso o en reparación.# Los lectores pueden tener un máximo de 3 libros de préstamo.# Cada libro se presta un máximo de 30 días, por cada día de retraso, se impone una multa.

Page 12: virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web viewpresenta las clases del sistema con sus relaciones estructurales y de herencia. Un diagrama

BIBLIOGRAFÍA

+Lic.Mari Carmen Otero Vidal Dpto. de Lenguajes y Sistemas Informáticos.

+http://bittacorp.wordpress.com/2008/11/26/diagrama-de-clases/+http://upload.wikimedia.org/wikipedia/commons/a/af/Notacion_Diagramas_de_Clase.png+http://es.wikipedia.org/wiki/Diagrama_de_clases+http://www.dcc.uchile.cl/~psalinas/uml/modelo+http://diagraflu.blogspot.com/2009/03/diagramas-de-clases.htm

Page 13: virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web viewpresenta las clases del sistema con sus relaciones estructurales y de herencia. Un diagrama

UNIVERSIDAD SALESIANA DE BOLIVIAINGENIERIA DE SISTEMAS

Page 14: virtual.usalesiana.edu.bovirtual.usalesiana.edu.bo/web/conte/archivos/2896.docx  · Web viewpresenta las clases del sistema con sus relaciones estructurales y de herencia. Un diagrama

DIAGRAMA CONCEPTUAL

Materia: Análisis y Diseño de Sistemas II

Docente: Lic. Elisa Arizaca Ramirez

Estudiantes: Calsina Chambi Mariela Condori Ramos Limber Alfredo

Mayta Romero Fabiola MonicaQuiñajo Calle Mercedes

Tola Callizaya Lourdes JimenaSemestre: 6– A1.Fecha: 23/05/13.

LA PAZ - BOLIVIA