Directriz: Interfaz
Las interfaces se utilizan para representar la vista del usuario de un sistema y ocultar su implementación. Esta directriz propone un conjunto de reglas para gobernar la especificación de interfaces.
Relaciones
Descripción principal

Denominación de interfaces Ir a la parte superior de la página

  • Denomine la interfaz para reflejar el rol que desempeña en el sistema.
  • El nombre debe ser corto, 1 ó 2 palabras.
  • No incluya la palabra "interfaz" en el nombre; está implicado por el tipo de elemento de modelo (por ej., interfaz)

Descripción de interfaces Ir a la parte superior de la página

  • La descripción debe conferir las responsabilidades de la interfaz.
  • La descripción debe contener varias frases, hasta formar un párrafo breve.
  • La descripción no debe repetir el nombre de la interfaz, debe iluminar el rol que desempeña la interfaz en el sistema.

Definición de operaciones Ir a la parte superior de la página

  • Los nombres de operación deben reflejar el resultado de la operación.
  • Cuando una operación establece u obtiene información, incluir establecer u obtener en el nombre de la operación es redundante. Dé a la operación el mismo nombre que la propiedad del elemento de modelo que se está estableciendo o recuperando. Una operación denominada de esta manera, sin parámetros, recupera la propiedad; una operación denominada de esta manera con un parámetro establece la propiedad.

Ejemplo

name() devuelve el nombre del objeto; name(aString) establece el nombre del objeto en aString.

  • La descripción de la operación debe describir qué hace la operación, incluyendo cualquier algoritmo clave y qué valor devuelve.
  • Denomine los parámetros de la operación para indicar qué información se está pasando a la operación.
  • Identifique el tipo de parámetros.

Documentación de las interfaces Ir a la parte superior de la página

El comportamiento definido por la interfaz se especifica como un conjunto de operaciones. Puede ser necesaria información adicional para transmitir:

  • Cómo se utilizan las operaciones, y el orden en que se llevan a cabo (ilustradas por diagramas de secuencia de ejemplo).
  • Los posibles estados observables externamente en que puede estar un elemento de modelo que realiza la interfaz (ilustrado por una máquina de estado, consulte el apartado Directriz: Diagrama de gráfico de estados).
  • Los planes de prueba y scripts que prueban el comportamiento de cualquier elemento de modelo que realiza la interfaz.

Para agrupar y gestionar esta información, debe crearse un paquete para contener la interfaz y todos los productos de trabajo relacionados.

Pistas y sugerencias Ir a la parte superior de la página

Todas las interfaces representan una 'costura' del sistema: un lugar donde el sistema se puede "separar" y reconstruir o rediseñar. Las interfaces representan la separación de la especificación de diseño o implementación. Las interfaces bien estructuradas:

  • son sencillas pero completas, proporcionan todas las operaciones necesarias pero suficientes para especificar un único servicio
  • son comprensibles, proporcionan información suficiente para utilizar y realizar la interfaz sin tener que examinar una utilización o implementación existente
  • son accesibles, y proporcionan información para orientar al usuario a sus propiedades clave sin estar abrumado por los detalles de las operaciones.

Cuando dibuje una interfaz,

  • utilice la notación "lollipop" siempre que necesite especificar simplemente la presencia de una costura en el sistema. Con frecuencia, necesitará esto para los subsistemas pero no clases.
  • Utilice la notación "clase" expandida cuando necesite presentar los detalles del propio servicio. Con frecuencia, necesitará esto para especificar los servicios ofrecidos por un paquete o subsistema.