Projeto de software
O objetivo da fase de projeto (ou design) é produzir uma solução para o problema identificado e modelado na fase de análise, incorporando a tecnologia aos requisitos essenciais do sistema e projetando o que será construído na implementação. Sendo assim, é necessário conhecer a tecnologia disponível e os ambientes de software onde o sistema será desenvolvido e implantado. Durante o projeto, deve-se decidir como o problema será resolvido, começando em um alto nível de abstração, próximo da análise, detalhando depois até um nível de abstração próximo da implementação.
O projeto de software encontra-se no núcleo técnico do processo de desenvolvimento de software e é aplicado independentemente do modelo de ciclo de vida e paradigma adotados. É iniciado assim que os requisitos do software tiverem sido modelados e especificados pelo menos parcialmente e é a última atividade de modelagem.
Por outro lado, corresponde à primeira atividade que leva em conta considerações de caráter tecnológico (PRESSMAN, 2006).
Enquanto a fase de análise pressupõe que a tecnologia é perfeita (capacidade ilimitada de processamento com velocidade instantânea, capacidade ilimitada de armazenamento, custo zero e não passível de falha), a fase de projeto envolve a modelagem de como o sistema será implementado com a adição dos requisitos tecnológicos ou não funcionais. Assim, como bem disse Mitch Kapor, citado por Pressman (2006), o projeto é
“onde você se instala com um pé em dois mundos – o mundo da tecnologia e o mundo das pessoas e objetivos humanos – e você tenta juntar os dois”. A Figura 1 procura ilustrar essa situação. O projeto é, portanto, a fase do processo de software na qual os requisitos do cliente, as necessidades do negócio e as considerações técnicas se juntam na formulação de um produto ou sistema (PRESSMAN, 2006).
Domínio do
Problema
Mundo Real
Análise e
Especificação
de Requisitos
(o quê)
Projeto
(como)
Domínio da