Descritor de Tarefa: Projetar a Solução
Identificar os elementos e planejar as interações, o comportamento, os relacionamentos e os dados necessários para construir uma funcionalidade.

Elabore visualmente o design para ajudar na solução do problema e na comunicação da solução.

Baseado em Tarefa de Método: Projetar a Solução
Relacionamentos
PapéisPrincipal: Adicional: Assistente:
EntradasObrigatório: Opcional: Externo:
  • Nenhum
Saídas
Passos
Compreenda os detalhes dos requisitos

Examine os Caso de Uso relevantes e a Especificação de Requisitos Suplementares para compreender o escopo da tarefa de design e as expectativas sobre o Design. Trabalhe com os Stakeholder e o Analista para esclarecer informações ambíguas ou incompletas. Veja Guideline: Analisar o Design.

Se os requisitos não estiverem representados em algum tipo de cenário (por exemplo, um requisito não-funcional pôde não ter um cenário associado a ele), um cenário terá que ser identificado para exercitar apropriadamente os requisitos sob consideração.

Se for determinado que os requisitos estejam incompletos ou incorretos, trabalhe com um analista e um Stakeholder para melhorar os requisitos e possivelmente submeta uma solicitação de mudança para os requisitos.

Compreenda a arquitetura

Revise o Caderno de Arquitetura para identificar mudanças e adições à arquitetura. Veja Guideline: Evoluir o Design para mais informações. Trabalhe com o arquiteto se houver alguma incerteza sobre a compreensão das partes relevantes da arquitetura ou sobre a conformidade da estratégia de design.

Este passo pode ser ignorado se, não houve alterações na arquitetura na iteração anterior.

Identifique elementos de design

Identifique os elementos que colaboram entre si para fornecer o comportamento desejado. Isto pode começar com as principais abstrações identificadas no Caderno de Arquitetura, no design, na análise de domínio e na análise clássica dos requisitos (filtragem de substantivo) para derivar os elementos que serão necessários para cumpri-los. O Padrão Entidade-Controle-Fronteira fornece um bom começo para identificar elementos. Veja também Guideline: Analisar o Design.

Os elementos de design existentes devem ser examinados para determinar se eles podem participar na colaboração. É um erro criar todos os novos elementos em cada execução desta tarefa.

Determine como os elementos colaboram para realizar o cenário

Percorra o cenário distribuindo as responsabilidades aos elementos participantes e assegurando que eles têm os relacionamentos necessários para colaborar.

Estas responsabilidades podem ser simples declarações do comportamento atribuídas aos elementos; não necessitam ser especificações detalhadas de operações com parâmetros, etc. De forma similar, os relacionamentos podem ser definidos apenas nesta etapa. Esta etapa serve para assegurar que um modelo de qualidade esteja sendo criado e que seja robusto o bastante para suportar os requisitos. Veja Guideline: Analisar o Design.

Verifique o Caderno de Arquitetura e o trabalho de design prévio para criar uma colaboração consistente. Trabalhe com o Arquiteto para entender os detalhes e as motivações da arquitetura. Procure reutilizar relações e comportamentos existentes ou aplique estruturas similares para simplificar o design de todo o sistema.

Refine as decisões de design

Refine o design até um nível apropriado de detalhe para orientar a implementação e assegurar que se adapta à arquitetura. Nesta etapa o design pode levar em consideração a linguagem de implementação real e outras decisões técnicas. Revise a identificação dos elementos e das colaborações que realizam os cenários se for necessário enquanto este refinamento leva em consideração detalhes em um nível menor de abstração. Discuta questões sobre teste, tais como os elementos de design que são difíceis de testar ou áreas críticas de desempenho, com o Testador e o Arquiteto.

Evolua o design, analisando as alterações recentes no maior contexto do design e determine se as técnicas de re-fatoração e re-elaboração irão melhorar a robustez, a flexibilidade e a compreensão do design. Veja Guideline: Evoluir o Design para mais informações.

Incorpore os Mecanismo Arquitetural. Aplique uma estrutura consistente dos elementos e organização do comportamento como em outras áreas do design e use os padrões identificados na arquitetura.

Projete o interior (para elementos grandes ou complexos)

Projete elementos grandes ou complexos ou algum comportamento interno complexo mais detalhadamente.

Isto pode apenas envolver o planejamento de um algoritmo que possa ser executado para produzir o comportamento desejado. Adicione operações, atributos e relacionamentos adicionais para suportar as expectativas de um elemento.

Projete o estado do elemento sobre o curso de sua vida para assegurar o comportamento apropriado em várias circunstâncias. Pode ser útil descrever uma máquina de estado para os elementos com estados complexos.

Comunique o Design

Comunique o design do sistema para aqueles que necessitam compreende-lo. Embora isto esteja descrito daqui até o fim da tarefa, a comunicação deve acontecer em todas as etapas. Trabalhar colaborativamente é sempre melhor do que revisar o trabalho depois dele estar completo.

Aqui estão algumas formas de comunicar o design:

  • Modelos formais especificados em UML.
  • Diagramas informais que mostrem a estrutura estática e capturem o comportamento dinâmico.
  • Código comentado que comunique informações sobre a estrutura estática. Podendo ser complementado com descrições textuais do comportamento colaborativo através dos módulos de código.
  • Modelos de dados para descrever o esquema da base de dados.

Aqui estão alguns exemplos dos indivíduos que precisarão entender o design do sistema:

  • Os desenvolvedores que implementarão uma solução baseados no design.
  • Os arquitetos que podem revisar o design para assegurar que se conforma com a arquitetura ou que possa examinar o design para oportunidades de melhoria na arquitetura.
  • Outros projetistas que podem examinar o design para aplicabilidade em outras partes do sistema.
  • Desenvolvedores ou outros projetistas que estarão trabalhando em outras partes do sistema que dependerão dos elementos projetados nesta tarefa.
  • Outros revisores que revisarão o design em relação à qualidade e aderência aos padrões.
Avalie o Design

Avalie o design de objeto para acoplamento, coesão e outras medidas de qualidade de design.

Considere o design de vários ângulos para assegurar que seja um design de alta qualidade e comunicável. Trabalhe com outros membros técnicos da equipe; uma parte independente pode fornecer uma perspective nova. Use o Testador e o Arquiteto para fornecerem perspectivas sobre a qualidade e aderência do design à arquitetura. Entretanto, ao identificar potenciais revisores tenha em mente que se alguém puder adicionar valor revisando o design, então talvez ele possa adicionar ainda mais valor participando ativamente no próprio esforço de design. Se falhas de design forem identificadas, melhore o design.

Veja Concept: Design, Guideline: Analisar o Designe Guideline: Evoluir o Design para mais informações.

Propriedades
Múltiplas Ocorrências
Orientado a Eventos
Em Andamento
Opcional
Planejado
Repetível