36
Taller de herramientas de Productividad Diagrama de Casos de Usos y de Clases

I.9) Taller de Herramientas de Productividad. Diagrama de Clases - Con Tarea

Embed Size (px)

DESCRIPTION

Diagrama de Clases

Citation preview

Taller de herramientas de Productividad

Diagrama de Casos de Usos y de Clases

OBJETIVO

1. Identificar, aplicar y conceptualizar las asociaciones y atributos de clases, para un análisis con orientación a objetos.

2. Definir, aplicar y crean diagramas de casos de uso, utilizando el análisis orientado a objetos, demostrando capacidad de abstracción.

TEMARIO

• Conceptos de clases. • Identificación de relaciones entre clases.• Construcción de diagramas de clases.

• Formas de crear diagramas de caso de usos.

Diagramas de Clases

Introducción

1. Los diagramas de clases son diagramas de estructura estática que muestran las clases del sistema y sus interrelaciones (incluyendo herencia, agregación, asociación, etc.).

2. Los diagramas de clase son el pilar básico del modelado con UML, siendo utilizados tanto para mostrar lo que el sistema puede hacer (análisis), como para mostrar cómo puede ser construido (diseño).

3. El diagrama de clases de más alto nivel, será lógicamente un dibujo de los paquetes que componen el sistema.

4. Las clases se documentan con una descripción de lo que hacen, sus métodos y sus atributos.

5. Las relaciones entre clases se documentan con una descripción de su propósito, sus objetos que intervienen en la relación y su opcionalidad (cuando un objeto es opcional el que intervenga en una relación).

Diagramas de Clases

ELEMENTOS D. DE CLASES

• Clase o entidad

• Unidad básica que encapsula a un conjunto de objetos con atributos, relaciones y métodos comunes.

• Simplificación de la realidad.

• Compuesto por:

• Nombre

• Atributos (información del objeto)

• Métodos (acciones del objeto)

• Clase

Es la unidad básica que encapsula toda la información de un Objeto (un objeto es una instancia de una clase). A través de ella podemos modelar el entorno en estudio (una Casa, un Auto, una Cuenta Corriente, etc.).

En UML, una clase es representada por un rectángulo que posee tres divisiones:

En donde:

• Superior: Contiene el nombre de la Clase

• Intermedio: Contiene los atributos (o variables de instancia) que caracterizan a la Clase (pueden ser private, protected o public).

• Inferior: Contiene los métodos u operaciones, los cuales son la forma como interactúa el objeto con su entorno (dependiendo de la visibilidad: private, protected o public).

Elementos de los diagramas de clases

Tipos de Atributos

Public: Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.-

Private: Indica que el atributo sólo será accedible desde dentro de la clase (sólo sus métodos lo pueden accesar)

Protected: Indica que el atributo no será accedible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de las subclases que se deriven

Son valores que corresponden a un objeto, como color, material, cantidad, ubicación. Generalmente se conoce como la información detallada del objeto. Ejemplo: el objeto es una puerta, sus propiedades o atributos serían: la marca, tamaño, color y peso.

Tipos de Métodos• Operaciones/Métodos: son aquellas actividades o verbos que se pueden realizar

con o para este objeto, como por ejemplo abrir, cerrar, buscar, cancelar, confirmar, cargar. El nombre de una operación se escribe con minúsculas si consta de una sola palabra. Si el nombre contiene más de una palabra, cada palabra será unida a la anterior y comenzará con una letra mayúscula, a excepción de la primera palabra que comenzará en minúscula. Por ejemplo: abrirPuerta, cerrarPuerta, buscarPuerta, etc.

• Tipos de métodos:

• public (+, ): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.

• private (-, ): Indica que el método sólo será accesible desde dentro de la clase (sólo otros métodos de la clase lo pueden utilizar).

• protected (#, ): 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).

ELEMENTOS D. DE CLASES

ELEMENTOS D. DE CLASES• Relaciones

• Asociación

• Unen dos objetos que colaboran entre si.

• Dependencia o instanciación

• Une un objeto que instancia a otro (o que depende de otro para funcionar)

• Agregación

• Une un objeto con otro del que formará parte

• Composición

• Une un objeto con otro del que formará parte.

• Si se elimina el objeto del que forma parte, se Eliminará el objeto componente.

• Herencia o generalización

• Une un objeto con su padre. El objeto hijo hereda todos los atributos y métodos del padre.

EJEMPLOS D. DE CLASE

Asociación Dependencia o Instancia

Agregación Composición

Herencia o Generalización

• Un cambio en la clase independiente (Aplicación) puede afectar a la clase dependiente (Ventana)

• La interpretación más frecuente es la de uso: una clase usa a otra como argumento de una operación.

• El objeto creado no se almacena en el objeto que lo crea.

Relaciones entre Clases:Dependencia (instanciación o uso)

Relaciones entre Clases:Generalización

• Relaciona una abstracción general (superclase) con una más concreta del mismo tipo (subclase)

• Una clase puede tener cero, una (herencia simple) o más superclases (herencia múltiple)

• Una clase sin superclases es una clase raíz

• Una clase sin subclases es una clase hoja

Relaciones entre Clases: Generalización

Relaciones entre clases: Asociación• Relación estructural

entre las clases.

• En general es simétrica

• Tiene un nombre, que la describe (verbo, con dirección de lectura)

• Puede tener un rol que describe el papel específico que una clase juega en una asociación.

• Tiene multiplicidad, que especifica por cada clase el número de objetos de la clase opuesta que se relacionan con un solo objeto de dicha clase a través de la asociación:

1 : uno

0..1 : cero o uno

3 : tres

*: muchos

1..*: al menos uno

2,6,7: dos, seis o siete

2-4, 10-12 : de dos a cuatro y de diez a doce

ASOCIACIÓN• Cardinalidad / Multiplicidad

Indica cuantos elementos se asocian con la clase.

exactamente 1

n exactamente n

* muchos

n..m entre n y m

n..* n o más

• Rol

Indica que papel toma cada objeto en la relación que los une.

Asociación: permite asociar objetos que colaboran entre si.

Ejemplo: Los objetos Juan Pérez y U de C están relacionadas por la liga estudia-en que describe que "Juan Pérez estudia en la U de C".

Asociación

Grado de la AsociaciónEl grado de una asociación se determina por el número de clases conectadas por la misma asociación. Las asociaciones pueden ser binarias, ternarias, o de mayor grado.

Notación para diagrama de clases describiendo una asociación ternaria.

Asociaciones ReflexivasLas asociaciones pueden ser reflexivas, relacionando distintos objetos de una misma clase.Ejemplo: Para una clase persona puede existir una asociación pariente que describe que dos objetos de tipo persona, como Juan Pérez y Laura Pérez son parientes.

Atributos de Liga (o Asociación)Al igual que un atributo de clase es propiedad de la clase, un atributo de asociación (o atributo de liga) es propiedad de una asociación. La notación es similar a la usada para los atributos de clases, excepto que se añade a la asociación, y no se incorpora un nombre de clase.

Asociación con operaciones

UNLAR

Asociación como clase

Conceptos básicos: ASOCIACION• Modela la relación entre objetos (necesaria para que se

comuniquen y colaboren)

• Asociación-Clase / Enlace-Objeto

• Tipos básicos:

• Asociación

• Herencia

• Agregación / Composición (agregación fuerte)

Coche Motor Árbol Hoja

Relaciones entre ClasesAgregación y Composición

• Composición

• Relación estática, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye.

• El Objeto base se construye a partir del objeto incluido, es decir, es "parte/todo“, como un parámetro pasado “por valor”.

• Agregación

• Relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye.

• El objeto base utiliza al incluido para su funcionamiento, como un parámetro pasado “por referencia”.

Permite modelar objetos complejos, en base a relaciones todo –parte.

Relaciones entre Clases:Agregación y Composición

Agregación (Por referencia)

Composición (Por valor)

El ensamblado es antisimétrico

El ensamblado es transitivo

Ejemplo

Como elaborar un diagrama de clases del diseño 

Aplique la siguiente estrategia para elaborar diagramas de clases: 1. Identifique todas las clases que participan en la solución del software. Para ello

analice los diagramas de interacción.2. Dibújelas en un diagrama de clases3. Duplique los atributos provenientes del modelo conceptual4. Agregue los nombres de los métodos analizando los diagramas de interacción5. Incorpore la información sobre los tipos de atributos y los métodos6. Agregue las asociaciones necesarias para dar soporte a la visibilidad requerida de

los atributos7. Agregue flechas de navegabilidad a las asociaciones para indicar la dirección de la

visibilidad de atributos8. Agregue las líneas de relaciones de dependencia para indicar la visibilidad no

relacionada con los atributos

Diagramas de Clases

Ejemplo de Ejercicio (Video)

Ejercicio Práctico

• Una aplicación necesita almacenar información sobre empresas, sus empleados y sus clientes. 

• Ambos se caracterizan por su nombre y edad

• Los empleados tienen un sueldo bruto, los empleados que son directivos tienen una categoría, asi com un conjunto de empleados subordinados

• De los clientes además se necesita conocer su teléfono de contacto

• La aplicación necesita mostrar los datos de empleados y clientes