Clases Conceptuales en el Modelado de Dominio: Representación y Asociaciones
Enviado por Programa Chuletas y clasificado en Plástica y Educación Artística
Escrito el en español con un tamaño de 7,29 KB
Representación de Clases de Tipos de Datos
34-¿Dónde representamos las clases de tipos de datos?
Puesto que es un tipo de dato, se podría mostrar en el compartimiento de los atributos del rectángulo de la clase. Sin embargo, como es una clase no primitiva, con sus propios atributos y asociaciones, podría ser interesante mostrarla como una clase conceptual en su propio rectángulo.
Atributos y Relaciones entre Clases Conceptuales
35-¿Se deben utilizar los atributos para relacionar las clases conceptuales en el Modelado de Dominio (MD)?
No se deberían utilizar los atributos para relacionar las clases conceptuales en el MD. La violación más típica de este principio es añadir un tipo de atributo de clave ajena, como se hace normalmente en el diseño de bases de datos relacionales para asociar dos tipos.
Definiciones: Clase Asociación, Agregación y Composición
36-¿Qué es una clase asociación? ¿Qué es una agregación? ¿Qué es una composición?
Una clase asociación es una clase en la que podemos añadir características de la propia asociación. La agregación es un tipo de asociación que se utiliza para modelar las relaciones todo-parte entre las cosas. El todo se denomina compuesto.
Representación de la Agregación en UML
37-¿Cómo se representa la agregación en UML?
La agregación en UML se representa mediante un rombo hueco o relleno en el extremo del compuesto de una asociación todo-parte. La agregación es una propiedad de un rol de asociación.
Agregación de Composición: Rombo Relleno
38-¿Qué significa la agregación de composición (rombo relleno)? Ejemplifique.
La agregación de composición, o simplemente composición, significa que la parte es miembro de un único objeto y que existe una dependencia de existencia y disposición de la parte sobre el compuesto. La composición se denota con un rombo relleno. Esto implica que solamente el compuesto posee la parte y que se encuentran en una jerarquía de partes en forma de árbol. Si la multiplicidad en el extremo compuesto es exactamente uno, la parte no podría existir separada de algún compuesto. Si la multiplicidad en el extremo del compuesto es 0..1, entonces podría eliminarse la parte del compuesto y existir todavía sin pertenecer a ningún otro compuesto.
Ejemplo: Existe una relación de composición entre la mano y un dedo.
Agregación Compartida: Rombo Hueco
39-¿Qué significa agregación compartida (rombo hueco)?
La agregación compartida significa que la multiplicidad en el extremo compuesto podría ser más de uno, y se representa mediante un rombo hueco. Implica que la parte podría estar simultáneamente en muchas instancias del compuesto. Por ejemplo, se podría considerar que un paquete UML agrega a sus elementos, pero un elemento podría ser referenciado en más de un paquete.
Utilidad y Beneficios de la Agregación
40-¿Cuándo tendríamos que considerar mostrar una agregación? ¿Y cuál es el beneficio de la representación de la agregación?
Muestre las agregaciones si proporcionan los siguientes beneficios:
- Aclara las restricciones del dominio en cuanto a la existencia que se desea de la parte independiente del todo. En la agregación de composición, la parte no podría existir fuera del tiempo de vida del todo.
- Ayuda en la identificación de un creador utilizando el patrón GRASP Creador.
- Las operaciones que se aplican al todo a menudo se propagan a las partes.
Roles en las Asociaciones
41-¿Qué es cada extremo de una asociación y qué propiedades tiene?
Cada extremo de asociación es un rol, que tiene varias propiedades: nombre y multiplicidad. Un nombre de rol identifica un extremo de una asociación e idealmente describe el papel que juegan los objetos en la asociación.
Enfoque de Roles en Asociaciones y Roles como Conceptos
42-¿Qué significa el enfoque Roles en asociaciones y Roles como conceptos?
En un MD, un rol del mundo real podría modelarse de varias formas, como un concepto separado o representarlo como un rol en una asociación. Los roles en asociaciones son atractivos porque son una forma relativamente precisa de expresar que la misma instancia de una persona asume múltiples roles en varias asociaciones. Los roles como conceptos facilitan y hacen más flexible la inclusión de atributos únicos, asociaciones y semántica adicional. Además, la implementación de los roles como clases separadas es más sencillo debido a las limitaciones de los lenguajes de programación orientados a objetos.
Elementos Derivados en el Diagrama de MD
43-¿Qué es un elemento derivado? ¿Y cómo se muestran en un Diagrama de MD?
Un elemento derivado puede ser determinado a partir de otros. Los atributos y las asociaciones son los elementos derivados más comunes. Evite mostrar los elementos derivados en un diagrama, puesto que añaden complejidad sin información nueva. Solo se debe añadir un elemento derivado cuando sea un elemento destacado en la terminología y si se excluye se perjudica la comprensión.
Calificadores en una Asociación
44-¿Para qué se puede utilizar un calificador en una asociación?
En una asociación podría utilizarse un calificador que permita distinguir dentro del conjunto de objetos en el otro extremo de la asociación en base al valor del calificador. La inclusión de un calificador en un MD comunica cómo se distinguen las instancias de una clase en relación con otra clase. Los calificadores normalmente no añaden nueva información útil convincente y podemos caer en la trampa de pensar-diseño. Sin embargo, utilizados juiciosamente, pueden mejorar el conocimiento sobre el dominio.
Asociación Reflexiva
45-¿Qué es una asociación reflexiva?
Un concepto podría estar asociado con el mismo, a esto se le llama asociación reflexiva.
Representación de Objetos Asociados Ordenados
46-¿Cómo puedo representar que los objetos asociados están ordenados?
Si los objetos asociados están ordenados, se los puede representar en forma paralela, con una agregación de composición.
Organización del MD en Paquetes
47-¿Para qué puedo utilizar paquetes para organizar el MD? ¿Cómo se particiona un MD?
Un MD puede crecer fácilmente y llegar a ser lo suficientemente amplio para que sea conveniente dividirlo en paquetes que incluyen conceptos fuertemente relacionados. Esto sirve para mejorar la comprensión y abordar trabajo de análisis en paralelo, en el que diferentes personas realizan el análisis del dominio en diferentes subdominios. En UML, un paquete se representa mediante una carpeta.
Para particionar el MD en paquetes, ponga juntos los elementos que:
- Se encuentran en la misma área de interés.
- Están juntos en una jerarquía de clases.
- Participan en los mismos casos de uso.
- Están fuertemente asociados.