-
Nomeie a interface a fim de refletir o papel que ela desempenha no sistema.
-
O nome deve ser curto, com uma ou duas palavras.
-
Não inclua a palavra "interface" no nome; isso está implícito pelo tipo de elemento de modelo (por exemplo,
interface)
-
A descrição deve indicar as responsabilidades da interface.
-
A descrição deve conter várias frases, formando no máximo um parágrafo curto.
-
A descrição não deve apenas reafirmar o nome da interface, mas sim esclarecer o papel que ela desempenha no
sistema.
-
Os nomes de operação devem refletir o resultado da operação.
-
Quando uma operação configura ou obtém informações, incluir set ou get no nome da
operação é redundante. Atribua à operação o mesmo nome da propriedade do elemento do modelo que está sendo definido
ou recuperado. Uma operação nomeada desta forma, sem parâmetros, recupera a propriedade; uma operação nomeada desta
forma, com um parâmetro define a propriedade.
Exemplo
name() retorna o nome do objeto; name(aString) define o nome do objeto para aString.
-
A descrição da operação deve descrever o que a operação faz, incluindo os principais algoritmos, e o
valor que ela retorna.
-
Nomeie os parâmetros da operação para que indiquem as informações que estão sendo transmitidas para ela.
-
Identifique o tipo do parâmetro.
O comportamento definido pela Interface é especificado como um conjunto de Operações. Talvez seja necessário fornecer
informações adicionais:
-
Como as operações são usadas e a ordem de execução correspondente (mostrada por diagramas de seqüência de exemplo).
-
Os possíveis estados observáveis externamente nos quais pode estar o elemento de modelo que realiza a interface
(ilustrados por uma máquina de estado, consulte a Diretriz: Diagrama de Estados).
-
Planos de teste e scripts que testam o comportamento de qualquer elemento do modelo que realize a interface.
Para agrupar e gerenciar essas informações, é necessário criar um pacote para conter a interface e todos os produtos de
trabalho relacionados.
Toda interface representa uma 'junção' no sistema: um local no qual o sistema pode ser "separado" e reconstruído ou
reprojetado. As interfaces representam a separação da especificação do design ou da implementação. As interfaces bem
estruturadas:
-
são simples mas completas, fornecendo todas as operações necessárias mas suficientes para especificar um único
serviço
-
são compreensíveis, fornecendo informações suficientes para usar e realizar a interface sem que seja necessário
examinar um uso ou uma implementação existente
-
são acessíveis, fornecendo informações que orientam o usuário para as principais propriedades sem importuná-los com
os detalhes das operações
Ao projetar uma interface,
-
utilize a notação "pirulito" sempre que precisar simplesmente especificar a presença de uma junção no sistema. Na
maioria das vezes, isso será necessário para subsistemas, não para classes.
-
Utilize a notação "classe" expandida quando precisar apresentar os detalhes do próprio serviço. Na maioria das
vezes, isso será usado para especificar os serviços oferecidos por um pacote ou um subsistema.
|