Modelo FURPS+ y Patrones GRASP: Fundamentos de Diseño de Software

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 2,63 KB

Modelo FURPS+

El modelo FURPS+ es un marco de trabajo utilizado para clasificar los requisitos de un sistema:

  • Funcionalidad: Requisitos funcionales del sistema.
  • Usabilidad: Factores humanos, estética, facilidad de aprendizaje y uso, documentación de usuario y materiales de entrenamiento.
  • Reliability (Fiabilidad): Frecuencia y severidad de los fallos, capacidad de recuperación y predictibilidad.
  • Performance (Rendimiento): Restricciones de velocidad, memoria, disponibilidad y tiempo de respuesta.
  • Supportability (Soporte): Adaptabilidad, facilidad de mantenimiento, internacionalización y configurabilidad.
  • + (Otros): Lenguajes, herramientas, tecnologías, hardware, licencias, entre otros.

Patrones GRASP: Definición y Tipos

Los GRASP (General Responsibility Assignment Software Patterns) son patrones generales de software para la asignación de responsabilidades. Más que patrones estrictos, representan una serie de buenas prácticas recomendadas para el diseño de software orientado a objetos.

Principales Patrones GRASP

  • Experto (Information Expert): Es el principio básico de asignación de responsabilidades. Indica que la responsabilidad de la creación de un objeto o la implementación de un método debe recaer sobre la clase que posee toda la información necesaria para ejecutarla.
  • No hables con extraños (Low Coupling / Law of Demeter): Se asigna la responsabilidad a un objeto directo del cliente para que colabore con un objeto indirecto, evitando que el cliente necesite conocer detalles de objetos distantes.
  • Creador (Creator): Ayuda a identificar qué clase debe ser la responsable de la creación o instanciación de nuevos objetos.
  • Controlador (Controller): Actúa como intermediario entre la interfaz de usuario y la lógica de negocio, recibiendo los datos y delegando las operaciones a las clases correspondientes.
  • Alta cohesión (High Cohesion): Establece que la información y responsabilidades de una clase deben ser coherentes y estar estrechamente relacionadas entre sí.
  • Bajo acoplamiento (Low Coupling): Propone mantener las clases lo menos ligadas posible. De esta forma, si se produce una modificación en una clase, la repercusión en el resto del sistema es mínima, potenciando la reutilización y disminuyendo la dependencia.

Entradas relacionadas: