Tarefa: Projetar a Soluçao
Identificar os elementos e planejar as interações, o comportamento, os relacionamentos e os dados necessários para construir uma funcionalidade.
Disciplinas: Análise e Projeto
Finalidade

O objetivo desta tarefa é definir como a especificação dos requisitos será transformada em código executável. O resultado desta tarefa é um modelo de design condizente com a especificação determinada pela análise, adequado à arquitetura definida, e suficientemente detalhado para que sua implementação seja possível.

Relacionamentos
Etapas
Compreenda os detalhes dos requisitos

Identifique quais requisitos serão contemplados no escopo da iteração e obtenha um entendimento pleno das funcionalidades, restrições e comportamentos esperados. Isso pode ser feito por meio da revisão da Lista de Regras de Negócio, Lista de Requisitos, Caso de Uso e Glossário. Tal revisão pode envolver o Analista de Sistemas a fim de refinar informações ambíguas e incompletas. Esta etapa tem o objetivo de definir quais funcionalidades serão desenvolvidas na iteração.

Compreenda a arquitetura

Identifique como os elementos da arquitetura colaboram para a realização dos casos de uso da iteração. Em resumo, analise como as responsabilidades serão atribuídas por camada, quais componentes e interfaces externas estarão envolvidas, e como o processamento será distribuído por nó físico (hardware). Esta etapa tem o objetivo maximizar a aderência das funcionalidades à arquitetura.

Se necessário, consulte o Arquiteto de Software para dirimir dúvidas sobre o Caderno de Arquitetura.

Identifique elementos de design

Verifique se o desenvolvimento das funcionalidades previstas para a iteração inclui interfaces de comunicação de dados, uso de componentes e bibliotecas de terceiros ou interfaces com outros sistemas. Além disso, devem ser definidas as interfaces gráficas com o usuário e outros tipos de entradas/saídas de dados.

Identifique quais modelos são necessários para que design do projeto consiga representar os requisitos do sistema.

Esta etapa tem a finalidade de garantir que as exigências das interfaces sejam cumpridas, assim como os serviços oferecidos por elas sejam melhor utilizados, minimizando o retrabalho.

Determine como os elementos colaboram para realizar o cenário

Uma vez identificados os serviços oferecidos e exigidos por componentes e interfaces, defina as responsabilidades por classe e os relacionamentos de dependência e realização entre elas. Isso deve ser realizado de modo condizente com a arquitetura definida no Caderno de Arquitetura.

Elabore/Revise o Diagrama de Classes

Elabore e/ou revise o Diagrama de Classes. Desenvolva um modelo que seja capaz de representar as entidades e relacionamentos existentes no sistema.

Analise os Requisitos e Casos de Uso e verifique quais objetos precisam ser modelados. Possíveis candidatos são aquelas entidades que precisam ser armazenadas, classes de relacionamento ou herança, e classes utilitárias.

Avalie e refine o design

Avalie se o design proposto corresponde à especificação do sistema e se há a necessidade, conforme as características do projeto, de se elaborar outros diagramas (atividades, sequência, interação, estados, etc).

Ademais, deve-se verificar se o design respeita as restrições de arquitetura. O nível de detalhamento deve ser suficiente para que o Desenvolvedor de Software possa transformar o design em código executável, incluindo as questões técnicas pertinentes. Neste momento, devem ser definidos os tipos de dados, as navegabilidades, multiplicidades, parâmetros de entrada e valores de retorno.

O objetivo desta etapa é entregar o design pronto para implementação.

Informações Adicionais