Artefatos >
Conjunto de Artefatos de Análise e Design >
Modelo de Design... >
Protocolo
Artefato:
| |||||||||||||||||||||||||
|
|
Uma especificação comum para um conjunto de Artefato: Portas de cápsulas. |
|
Representação em UML: |
Classe, estereotipada como "protocol". |
|
Papel: |
|
|
Possibilidade de Opção: |
Usada apenas quando são usadas cápsulas. |
|
Informações adicionais: |
|
| Entrada para Atividades: | Saída de Atividades: |
Os protocolos permitem especificar que um conjunto de Artefato: Portas de cápsulas seja definido e reutilizado. O protocolo define um conjunto de tipos de mensagens de entrada e de saída (por exemplo, operações, sinais), e, opcionalmente, uma colaboração (que, em geral, consiste em um conjunto de diagramas de seqüência, consulte Diretrizes: Diagrama de Seqüência) que define a classificação necessária das mensagens e uma máquina de estado (descrita como um conjunto de diagramas de estados, consulte Diretrizes: Diagrama de Estados) que especifica o comportamento abstrato que os participantes de um protocolo devem oferecer.
Um protocolo é uma especificação do comportamento desejado que pode ocorrer em um conector - uma especificação explícita do acordo contratual entre os participantes de um protocolo. Ele é apenas o comportamento e não especifica qualquer elemento estrutural. Um protocolo compreende um conjunto de participantes, cada um dos quais assume um papel específico no protocolo.
Cada um desses papéis de protocolo é especificado por um nome exclusivo e um conjunto de sinais que são recebidos por aquele papel, assim como um conjunto de sinais que são enviados pelo papel (qualquer dos conjuntos pode estar vazio). Opcionalmente, um protocolo também pode ter uma especificação das seqüências de comunicação válidas; uma máquina de estado pode especificar isso. Por fim, um protocolo também pode ter um conjunto de seqüências de interações prototípicas (elas podem ser mostradas como diagramas de seqüência). Elas devem estar de acordo com a máquina de estado do protocolo se alguma tiver sido definida.
Os protocolos binários, que envolvem apenas dois participantes, são os mais comuns e os mais simples de se especificar. Uma vantagem desses protocolos é que somente um papel, chamado o papel de base, precisa ser especificado. O outro, chamado conjugado, pode ser derivado do papel de base, bastando inverter os conjuntos de sinais de entrada e saída. Essa operação de inversão é conhecida como conjugação.

Composição de classe "protocol".
Como observado na figura acima, normalmente, um protocolo contém um ou mais diagramas de seqüência que ilustram as seqüências válidas de troca de mensagens especificadas pelo protocolo. O protocolo também consiste em um conjunto de mensagens de entrada (de solicitação) e um conjunto de mensagens de saída (de resposta). Uma máquina de estado opcional pode ser usada para especificar o comportamento que os participantes do protocolo devem suportar.
Além dos relacionamentos definidos acima, são definidas as seguintes propriedades:
|
Nome da Propriedade |
Breve Descrição |
Representação em UML |
|
Nome |
O nome do protocolo. |
O atributo "Name" no elemento do modelo. |
|
Breve Descrição |
Uma breve descrição do papel e da finalidade do protocolo. |
Valor rotulado, do tipo "texto curto". |
Um papel de protocolo é modelado em UML pelo estereótipo "protocolRole" de ClassifierRole. Esse estereótipo tem duas dependências para Signal: uma para sinal de entrada e uma para sinal de saída. (Essa é uma propriedade de classes de UML em geral). Como qualquer classificador, ele também pode ser uma máquina de estado associada que captura o comportamento local do papel de protocolo. Essa máquina de estado deve ser compatível com a máquina de estado do protocolo.
Um protocolo é modelado em UML pelo estereótipo "protocol" da Colaboração com um relacionamento de composição para cada um dos seus papéis de protocolo que representam o relacionamento padrão que uma colaboração tem com os "elementos de sua propriedade". Essa colaboração não tem aspectos estruturais internos (isto é, não tem papéis de associação). Como todos os elementos generalizáveis, um protocolo pode ser refinado usando a herança padrão. A máquina de estado e as colaborações associadas a um protocolo são herdadas diretamente do Classificador.
Os papéis de protocolo podem ser mostrados usando-se a notação padrão para classificadores com um rótulo de estereótipo explícito e dois compartimentos opcionais para lista especializada de conjuntos de sinais de entrada e saída, como mostrado na figura abaixo. A máquina de estado e os diagramas de interação de um papel de protocolo são representados com a notação UML padrão.
Notação do papel de protocolo - diagrama de classes.
Uma notação abreviada especial é oferecida para protocolos binários, por serem os mais comuns. Como foi observado anteriormente, para protocolos binários, é necessário especificar apenas o papel de base. Além disso, como a máquina de estado do papel e a máquina de estado do protocolo são as mesmas nesse caso, somente a máquina de estado do protocolo precisa ser definida. Por essa razão, a notação dos protocolos binários combina elementos da notação do papel de protocolo incluindo diretamente as listas de sinais de entrada e saída com a classe de protocolo. O estereótipo de protocolo e seu ícone correspondente ajudam a diferenciar isso da notação do papel de protocolo.
Notação para protocolos binários - diagrama de classes
Por fim, a utilização de um protocolo também pode ser indicada com um diagrama de uso de colaboração padrão representado por uma elipse tracejada com linhas tracejadas para cada um de seus papéis.

Exemplo de Protocolo para Receptor; um Conector vincula o Emissor e o Receptor.
Os protocolos são hierarquicamente importantes, por isso todos os protocolos devem ser identificados e descritos durante a fase de elaboração. Podem ocorrer ajustes nos protocolos durante a fase de construção, mas as mudanças propostas são motivos de preocupação e devem ser examinadas minuciosamente.
O arquiteto de software é o responsável pela integridade do protocolo, assegurando que a definição do protocolo seja completa e consistente.
Os protocolos são uma parte do padrão 'cápsula' (consulte Artefato: Cápsula), um padrão específico de representação e resolução de problemas do thread de controle. Eles são de extrema utilidade no caso de um sistema em que as preocupações com simultaneidade são problemas dominantes de design.
|
Rational Unified Process |