Artefatos > Conjunto de Artefatos de Análise e Design > Modelo de Design... > Protocolo

Artefato:  Protocolo


Protocolo

Uma especificação comum para um conjunto de Artefato: Portas de cápsulas.

Representação em UML:

Classe, estereotipada como "protocol".

Papel:

Arquiteto de Software

Possibilidade de Opção:

Usada apenas quando são usadas cápsulas.

Informações adicionais:

Entrada para Atividades: Saída de Atividades:

Finalidade Início da página

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.

Propriedades Início da página

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

Papel de Protocolo Início da página

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.

ar_protocol4.gif (4259 bytes)

Exemplo de Protocolo para Receptor; um Conector vincula o Emissor e o Receptor.

Ocorrência Início da página

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.

Responsabilidade Início da página

O arquiteto de software é o responsável pela integridade do protocolo, assegurando que a definição do protocolo seja completa e consistente.

Adaptação Início da página

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.

Copyright  © 1987 - 2001 Rational Software Corporation


Exibir o Rational Unified Process usando quadros

Rational Unified Process