Diagrama De Clases
Enviado por eylinrodriguez • 3 de Octubre de 2012 • 2.133 Palabras (9 Páginas) • 506 Visitas
DIAGRAMAS DE CLASES
• Diagramas de estructura: mostrar la estructura estática del sistema que se está modelando, Incluye: diagramas de clase, componentes y/o objetos.
Los diagramas de clases especifican que clases intervienen en el desarrollo del sistema y como se relacionan, a diferencia de los diagramas de interacción que modelan los aspectos dinámicos, los diagramas de clase modelan la parte estática.
Los diagramas de clases también lo podemos definir como una técnica grafica que se utiliza para modelar la parte estática del sistema.
Es el más utilizado y más conocido de los diagramas orientados a objetos. Es la fuente de generación de código.
El diagrama de clase representa clases, sus partes y la forma en la que las clases de los objetos están relacionados con otro.
Una clase es una definición de un tipo de objeto.
Pasos para el diagrama de clases
Identificar las clases.
Mostrar los atributos y operaciones (posteriormente)
Dibujar asociaciones
Etiquetar asociaciones y en caso necesario los roles
Indicar multiplicidad
Dibujar fechas de dirección
Elementos de un diagrama de clases
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).
Ejemplo:
Una Cuenta Corriente que posee como característica:
Balance
Puede realizar las operaciones de:
o Depositar
o Girar
o y Balance
El diseño asociado es:
OTROS EJEMPLOS:
Cliente
- Nombre
- Dirección
- Teléfono
+ Comprar ( )
+ Devolver ( )
Alumno
- Nombre
- Dirección
- Carnet_Identidad
+ Estudiar( )
+ Tomar_apuntes( )
Automóvil
- Ruedas
- Asientos
- Puertas
+ Arrancar ( )
+ Acelerar ( )
+ Frenar ( )
+ Girar ( )
Atributos y Métodos:
Atributos:
Presenta los siguientes complementos:
• Tipo: puede llegar a depender del lenguaje de programación a utilizar.
• Valor inicial: valor que poseerá el atributo al crear un objeto.
• Visibilidad: está relacionado con el encapsulamiento.
• Multiplicidad: determinar si un atributo debe estar o no, y si posee un único valor o una lista de valores.
• Ordenamiento: especifica si el atributo determina alguna relación de orden dentro de la clase.
• Capacidad de cambio: permite definir atributos con valores constantes.
• Modificadores: un atributo puede ser de clase, derivado, volátil, transitorio.
Visibilidad
La encapsulamiento presenta tres ventajas básicas:
• Se protegen los datos de accesos indebidos
• El acoplamiento entre las clases se disminuye
• Favorece la modularidad y el mantenimiento
Los atributos de una clase no deberían ser manipulables directamente por el resto de Objetos.
Niveles de encapsulamiento:
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á accesible desde dentro de la clase (sólo sus métodos lo pueden accesar).
protected (#): Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de las subclases que se deriven (ver herencia).
Package (~) permite el acceso a los otros objetos en el mismo paquete.
Multiplicidad
1 El atributo debe tener un único valor.
0..1 El atributo puede o no tener un valor.
0..* El atributo puede tener varios valores o ninguno.
1..* El atributo puede tener varios valores, pero debe tener al menos uno
* El atributo puede tener varios valores.
M..N El atributo puede tener entre M y N valores.
Modificadores
• De clase o estático: el atributo se aparece subrayado. No es necesario contar
con un objeto para ejecutarlo.
• Derivado: es calculable a partir de otros atributos.
• Transitorio: tendrá valor sólo durante una porción de la ejecución.
• Volátil: no se persiste.
Operaciones:
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:
• Tipo devuelto: puede llegar a depender del lenguaje de programación a utilizar.
• Parámetros: además del tipo, puede especificarse si son In, Out o InOut.
• Visibilidad: está relacionado con el encapsulamiento.
• Modificadores: una operación puede ser de clase, abstracta, query o constructor.
Relaciones entre Clases:
Ahora ya definido el concepto de Clase, es necesario explicar como se pueden interrelacionar dos o más clases (cada uno con características y objetivos diferentes).
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 relación entre clases conocida como Asociación, permite asociar objetos que colaboran entre si. Cabe destacar que no es una relación fuerte, es decir, el tiempo de vida de un objeto no depende del otro.
Ejemplo:
Un cliente puede tener asociadas muchas Ordenes de Compra, en cambio una orden de compra solo puede tener asociado un cliente.
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.
...