GoConqr has a new look! Let us know what you think.

Mind map

Patrones GRASP(Capa de Dominio)

David Castillo Reguera Ingeniería del Software Spanish

Map content

Patrones GRASP(Capa de Dominio)

  1. Patrones de Principios Generales para Asignar Responsabilidades

    • La asignación de responsabilidades se muestra en los diagramas de interacción mediante mensajes que se envían a las clases de objetos.
    • La asignación de responsabilidades a objetos se hace durante el diseño, al definir las operaciones de cada clase de objetos.
    • Principios fundamentales para guiar la asignación de responsabilidades a objetos.
  2. Patrones GRASP básicos

    • Experto en Información
      • Contexto: Asignación de responsabilidades a objetos
      • Problema: ¿Cuál es el principio general para asignar responsabilidades a los objetos? Decidir a qué clase hemos de asignar una responsabilidad concreta.
      • Solución:
        • Asignar una responsabilidad a la clase que tiene la información necesaria para realizarla.
        • La aplicación del patrón requiere tener claramente definidas las responsabilidades que se quieren asignar (postcondiciones de las operaciones).
        • No siempre existe un único experto, sino que pueden existir diversos expertos parciales que tendrán que colaborar.
    • Creador
      • Contexto: Asignación de responsabilidades a objetos
      • Problema: ¿Quién ha de tener la responsabilidad de crear una instancia de una clase?
      • Solución: Asignar a la clase B la responsabilidad de crear una instancia de una clase A si satisface una de las siguientes condiciones:
        • B es un agregado de objetos de A.
        • B contiene objetos de A.
        • B tiene los datos necesarios para inicializar un objeto de A(B tiene los valores de los parámetros del constructor de A).
        • B usa muchos objetos de A.
        • B guarda instancias de objetos de A.
    • Controlador
      • Contexto:
        • Los sistemas software reciben eventos externos.
        • Una vez recibido un evento en la capa de presentación, algún objeto de la capa de dominio ha de recibir este evento y ejecutar las acciones correspondientes.
      • Problema: ¿Qué objeto es el responsable de tratar un evento externo?
      • Solución:
        • Asignar esta responsabilidad a un controlador.
        • Un controlador es un objeto de una clase(no pertenece a la interfaz usuario).
        • Posibles controladores:
          • Controlador de Fachada: Una clase que representa todo el sistema.
          • Controlador de Caso de Uso: Una clase que representa una instancia de un caso de uso.
    • Alta Cohesión
      • Cohesión: medida del grado de relación y de concentración de las distintas responsabilidades de una clase.
      • Contexto: Asignación de responsabilidades a objetos.
      • Problema: ¿Cómo mantener la complejidad controlable?
      • Solución: Asignar responsabilidades de manera que la cohesión permanezca alta.
      • Una clase con cohesión baja:
        • Ejemplo: Los controladores de fachada suelen ser poco cohesivos
        • Tiene muchas responsabilidades de distintas áreas funcionales.
        • Tiene muchas operaciones poco relacionadas funcionalmente.
        • Inconveniente: difícil de comprender, difícil de reutilizar y de mantener, sensible a los cambios.
      • Una clase con cohesión alta:
        • Tiene pocas responsabilidades en un área funcional.
        • Colabora con otras clases para hacer las tareas.
        • Suele tener pocas operaciones muy relacionadas funcionalmente.
        • Ventajas: fácil comprensión y fácil reutilización y mantenimiento.
    • Bajo Acoplamiento
      • Acomplamiento: medida del grado de conexión, conocimiento y dependencia de una clase respecto a otras clases
      • Contexto: Asignación de responsabilidades a objetos.
      • Problema: ¿Cómo soportar bajas dependencias, bajo impacto del cambio e incremento de reutilización?
      • ¿Cuando hay acoplamiento de la clase A a la clase B?
        • A tiene un atributo de tipo B.
        • A tiene una asociación navegable con B.
        • B es un parámetro o el retorno de una operación de A.
        • Una operación de A hace referencia a un objeto de B.
        • A es una subclase directa o indirecta de B.
      • Solución: El acoplamiento entre clases ha de ser bajo para:
        • Evitar que cambios en una clase tengan efecto sobre otras clases.
        • Facilitar la comprensión de las clases (sin recurrir a otras)
        • Facilitar la reutilización.

Information

Description
Ingeniería del Software (Tema 3) Mind Map on Patrones GRASP(Capa de Dominio), created by David Castillo Reguera on 22/05/2019.
Views
4
Rating

More on Análisis y diseño orientado a objetos

Feedback

What is it about?

What do you think of the new look?

How do you like it?