Please enable JavaScript.
Coggle requires JavaScript to display documents.
Modelo de clases - Coggle Diagram
Modelo de clases
Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema. Contienen clases y relaciones
Clases
Unidad básica que encapsula toda la información de un objeto. A través de ella podemos modelar el entorno en un estudio
-
Atributos
Son las características de una clase. Puedes ser de tres tipos, los que definen el grado de comunicación y visibilidad de ellos con el entorno
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 solo será accesible desde dentro de la clase (Solo 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
Metodos
Son la forma en como ésta interactúa con su entorno, estos pueden tener las características
Private(-)
Indica que el metodo solo será accesible desde dentro de la clase (Solo sus métodos lo pueden accesar)
Protected(#)
Indica que el metodo 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
Public(+)
Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados
Relacion entre clases
Cardinalidad
La cardinalidad de ls relaciones indica el grado y el nivel de dependencia, se anotan en cada extremo de la relacion y estas puedes ser
-
-
-
Herencia (Especializacion/generalizacion)
Indica que una subclase hereda los métodos y atributos especificados por una super clase, por ende la subclase además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la super clase (public y protected)
-
Agregación
Para modelar objetos complejos, bastan los tipos de datos básicos que proveen los lenguajes.
Cuando se requiere componer objetos que son instancias de clases definidas por el desarrollador tenemos dos posibilidades
Por valor
Es un tipo de relacion 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 relacion es comúnmente llamada COMPOSICION (El objeto base se construye a partir del objeto incluido, es decir, es "parte/todo")
Por referencia
Es un tipo de relacion dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye
Este tipo de relacion es comúnmente llamada AGREGACION (El objeto base utiliza al incluido para su funcionamiento)
Ejemplo
Cuando se destruye el objeto almacén también son destruidos los objetos cuenta asociados, en cambio no se ven afectados los objetos clientes asociados
-
-
-
Asociación
La relacion permite asociar objetos que colaboran entre si. Cabe destacar que no es una relacion fuerte, es decir, el tiempo de vida de un objetos no depende de otro
Ejemplo
Un cliente puede tener asociadas muchas ordenes de compra, en cambio una orden de compra solo puede tener asociado un cliente
Casos particulares
Clase abstracta
Se denota con el nombre de la clase y de los métodos con la letra "itálica". Esto indica que la clase definida no puede ser instanciada pues posee métodos abstractos
-
Clase parametrizada
Se denota con un subcuadro en el extremo superior de la clase, en donde se especifican los parámetros que deben ser pasados a la clase para que esta pueda ser instanciada
El ejemplo mas típico es el caso de un diccionario en donde una llave o palabra tiene asociado un significado, pero en este caso las llaves y elementos pueden ser genéricos
Ejemplo
Supongamos que tenemos el caso del diccionario implementado mediante un árbol binario, en donde cada nodo posee:
Key: Variable por la cual se realiza la búsqueda, puede ser genérica
Item: Contenido a almacenar en el diccionario asociado a "key", cuyo tipo también puede ser genérico
-