-
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)
-
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.
-
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.
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.
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.
|