Detalhe do Workflow: Projetar Componentes
A finalidade deste detalhe do workflow é refinar o design do
sistema.
|
Tópicos
|
|
Este Detalhe do Workflow tem as metas a seguir:
- Refinar as definições dos elementos de design por meio da elaboração de 'detalhes' de como
os elementos de design realizam o o comportamento exigido deles.
- Refinar e atualizar as realizações de casos de uso baseadas no novo elemento de design identificado (isto é, manter atualizadas as realizações de casos de uso)
- Revisar o design à medida que ele evolui
Esta seção fornece fornece links para informações adicionais relacionadas a este detalhe do workflow.
Inicia na fase de Elaboração. Passa pelas fases de Construção e de Transição.
Obrigatório
Em geral, uma pessoa ou uma equipe pequena é responsável por um conjunto de elementos de design,
normalmente um ou mais pacotes ou subsistemas contendo outros elementos de design.
Essa pessoa/equipe é responsável pelos detalhamentos do design para os elementos
contidos no pacote ou subsistema: completar todas as definições de operações e
de relacionamentos com outros elementos de design. A Atividade:
Design de Classe tem como foco a refinação do design de passivos de design de classe, enquanto a Atividade:
Design de Subsistema tem como foco a alocação de comportamento mapeado para o próprio
subsistema nos elementos de design contidos (cápsulas classes ou subsistemas).
Os indivíduos responsáveis por projetar passivas
também devem ter domínio da linguagem de implementação, assim como dos
algoritmos ou tecnologias que a classe utilizará. As pessoas e as equipes responsáveis por subsistemas devem ser mais generalistas, capazes de tomar decisões quanto ao particionamento adequado da funcionalidade entre os elementos de design e de entender as permutas inerentes às várias alternativas de design.
À medida que cada elemento de design for refinado, as realizações de casos de uso precisarão ser refinadas para refletir a evolução das responsabilidades desses elementos.
Em geral, uma pessoa ou uma pequena equipe é responsável pelo refinamento de uma ou mais realizações de casos de uso relacionadas.
Ao adicionar ou refinar elementos de design, é preciso reconsiderar as realizações de casos de uso e fazê-las evoluir à medida que ficam desatualizadas ou que as melhorias no modelo de design permitam simplificá-las.
As pessoas ou equipes responsáveis pelas realizações de casos de uso precisam ter amplo conhecimento do comportamento exigido pelos casos de uso e dos ajustes das diferentes abordagens para alocar esse comportamento nos elementos de design.
Além disso, como são responsáveis pela seleção dos elementos que executarão os casos de uso, elas precisam ter um profundo conhecimento dos comportamentos externos (públicos) dos próprios elementos de design.
Geralmente, aqui o trabalho é executado individualmente ou por pequenas equipes, com interações informais entre os grupos quando for necessário comunicar mudanças entre as equipes.
À medida que se refinam os elementos de design, eles freqüentemente transferem responsabilidades entre si, o que requer mudanças simultâneas em muitos deles e em várias realizações de casos de uso.
Por causa dessa interação de responsabilidades, é quase impossível que os membros da equipe de design trabalhem totalmente isolados.
Para manter o esforço de design focado no comportamento exigido do sistema (conforme descrito nas realizações de casos de uso), surge um padrão característico de interação:
- os elementos de design são refinados pelas pessoas ou equipes responsáveis
- um pequeno grupo (talvez 2-5 pessoas) se reúne informalmente para calcular o impacto dos novos elementos de design em um conjunto de realizações de casos de uso existentes
- no decorrer da discussão, identificam-se mudanças na realização dos casos de uso e nos elementos de design participantes
- o ciclo se repete até que todo o comportamento necessário para a iteração seja projetado.
Como o próprio processo é iterativo, os critérios de 'todo o comportamento necessário para a
iteração' variam dependendo da posição do ciclo de vida:
- Na fase de elaboração, o foco deve ser nos comportamentos significativos do ponto de vista da arquitetura, sendo todos os outros detalhamentos totalmente ignorados (ou mais provavelmente apagados)
- Na fase de construção, há um deslocamento em direção à abrangência e consistência do design, de modo que, ao final dessa fase, não exista nenhuma questão de design não solucionada.
Observe que o design para uma iteração não precisa ser completo antes do início
das atividades de implementação e de teste. Implementar e testar parcialmente um design
à medida que ele evolui pode ser um meio eficaz de validar e refinar o design, mesmo
dentro de uma iteração.
|