Atividade:
| ||||||||||||||||
|
Finalidade
|
|
|
Passos |
|
|
Artefatos Informados: |
Artefatos Resultantes: |
|
Papel: Designer de Cápsula |
|
|
Diretrizes: |
|
| Mentores de Ferramentas: | |
| Detalhamentos do Fluxo de Trabalho: |
As cápsulas são usadas para definir threads simultâneos de execução no sistema. As cápsulas podem ser aninhadas a uma profundidade arbitrária e ter associações a classes (passivas) de design. Essa atividade é realizada uma vez para cada cápsula, incluindo as novas cápsulas dentro do escopo dessa atividade.
Leve em consideração as responsabilidades da cápsula, criando um conjunto inicial de classes de portas. Essas classes de portas representam as 'interfaces' para a cápsula. As classes de portas representam a realização de Artefato: Protocolo, que por sua vez representa um conjunto de sinais de entrada e saída usados na comunicação com as cápsulas.
Ao criar portas, avalie Pontos de Verificação: Protocolo para determinar se o Protocolo é adequado. A porta deve refletir um conjunto único de responsabilidades relacionadas; a existência de protocolo com escopo semelhante permite a sua reutilização em várias cápsulas. Quando o protocolo adequado estiver selecionado, vincule a porta a ele.
Quando as portas estiverem vinculadas aos protocolos, o comportamento externo da cápsula deve ser avaliado e validado. Usando técnicas manuais de ensaio ou ferramentas automatizadas de simulação, o comportamento da cápsula deve ser testado por eventos de simulação que testarão o comportamento da cápsula. A validação também considerará as cápsulas que interagem com a cápsula em processo de design. Ao usar ferramentas automatizadas, o código stub precisará ser escrito dentro da cápsula para permitir que as portas sejam testadas. Os erros na definição da porta ou do protocolo, ou nas responsabilidades da cápsula, devem ser detectados, e as mudanças apropriadas nas definições da cápsula, porta ou protocolo devem ser feitas.
Quando as portas e os protocolos da cápsula tiverem sido validados, o comportamento interno da cápsula deve ser definido. O comportamento da cápsula é definido usando-se um diagrama de estados, consulte Diretrizes: Diagrama de Estados. Outras informações gerais sobre cápsulas podem ser obtidas em Diretrizes: Cápsula e Pontos de Verificação: Cápsulas.
Primeiro, identifique os estados nos quais a cápsula pode existir. Os estados devem ser exclusivos (uma cápsula não pode estar em dois estados simultaneamente) e descritivos. Consulte as diretrizes e os pontos de verificação adequados para obter mais informações.
Quando os estados forem definidos, leve em consideração as transições entre os estados. O código de transição deve ser redigido como pseudocódigo de aplicativo de alto nível; ele deve consistir basicamente em chamadas de serviços do sistema operacional de tempo real, por exemplo, serviços de frame, serviços de tempo, operações de porta , operações de cápsula e operações de classe passiva.
Ao adicionar código detalhado a uma transição de Cápsula:
Ao definir uma operação de Cápsula:
Examine as classes passivas citadas pela cápsula, com base nas máquinas de estados das cápsulas. Se houver novos requisitos nessas classes, mude as solicitações que precisam ser geradas para efetivar as mudanças necessárias. Se novas classes tiverem sido identificadas, os requisitos dessas classes (mais especificamente, as operações necessárias nelas) devem ser reunidas e as classes devem ser criadas. Essas classes serão descritas com mais detalhe em Atividade: Design da Classe.
A herança de cápsulas é usada para implementar especialização de generalização, para utilizar polimorfismo e para reutilizar implementação. A palavra-chave aqui é 'implementação' - ela é uma técnica usada basicamente para reutilizar a estrutura interna de cápsulas, mas não, o comportamento externo de cápsulas. A finalidade primária de Artefato: Protocolos é reutilizar definições de comportamento, para que a herança de cápsulas não precise ser usada com essa finalidade.
Freqüentemente, a herança é aplicada de forma incorreta para conseguir algo que seria conseguido de maneira mais fácil usando técnicas de design mais simples.
Existem três tipos de herança. Listadas da menos complexa (mais desejável) à mais complexa (menos desejável), são elas:
A herança estrutural e de comportamento apresentam alguns problemas:
Outros problemas:
Todos os designs que contêm estrutura/comportamento têm decisões e pressupostos internos (explícitos ou implícitos). A pergunta crítica a fazer é: você tem absoluta certeza de que as decisões ou os pressupostos serão sempre válidos? Em caso negativo, o que você pode fazer para removê-los ou torná-los passíveis de mudança?
Como passo final, o comportamento da cápsula deve ser avaliado e validado. Usando técnicas manuais de ensaio ou ferramentas automatizadas de simulação, o comportamento da cápsula deve ser testado por eventos de simulação que testarão o comportamento da cápsula. Além disso, a estrutura interna da cápsula deve ser avaliada, assegurando que tanto o comportamento externo quanto a implementação interna desse comportamento sejam validados. Ao usar ferramentas automatizadas, talvez seja necessário escrever o código stub para simular a implementação de classes passivas de dados e cápsulas externas com as quais a cápsula interage. Os defeitos detectados devem ser documentados e as mudanças adequadas nas definições de cápsulas devem ser feitas.
|
Rational Unified Process
|