Processo de Desenvolvimento de Software

Processo de Desenvolvimento de Software é um conjunto de etapas, parcialmente ordenadas, com a finalidade de obter um produto de software. É estudado dentro da área de Engenharia de Software, sendo considerado um dos principais mecanismos para se obter software de qualidade e cumprir corretamente os contratos de desenvolvimento. Consiste na adoção de um ciclo de vida de sistemas, padronizando procedimentos, atividades e técnicas, utilizando ferramentas e gerando produtos.

A adoção de um processo é de vital importância para o desenvolvimento de sistemas, pois trata-se da organização do trabalho que está sendo desenvolvido. Além da geração de uma documentação rica, que auxiliará tanto no decorrer do desenvolvimento quanto nas futuras manutenções, o processo de Desenvolvimento de Software  proporciona, em qualquer fase do projeto, uma visão do estado atual; oferece subsídios para o acompanhamento produtivo de todo o desenvolvimento. Além de minimizar riscos de desenvolvimento de sistemas, o processo também conduz à geração de um sistema de qualidade, adequado e dentro dos prazos e custos previstos, elevando o nível da produtividade das equipes técnicas pois formaliza a distribuição das tarefas entre os envolvidos, melhorando o relacionamento com a comunidade usuária. Através dessa organização que o processo consegue melhorar o controle de tarefas e recursos padronizando tarefas, documentação, técnicas e ferramentas, e introduzindo-se pontos de verificação (revisão/aprovação) ao final de cada fase.

 

Aspectos cruciais para o sucesso de um projeto de software:

- Esforço de Equipe: qualquer esforço para o desenvolvimento de softwares exige uma equipe de especialistas.

- Metodologia: pode ser voltada ao objeto ou voltada ao procedimento.

- Documentação: uma documentação clara, objetiva e precisa dos componentes do processo de desenvolvimento é crucial para o sucesso de qualquer projeto de software.

- Planejamento: assim que o desenvolvimento ocorrer de acordo dom os requisitos especificados pelo cliente,  é necessário que todo esforço seja estimado para atender as restrições de prazo e custo.

- Garantia de Qualidade: além de atender as necessidades do cliente, o software deve atender aos padrões de qualidade que podem ser baseados em vários aspectos, como segurança, desempenho, etc.

- Ferramentas de Software: a documentação é importante para o desenvolvimento, existem várias ferramentas que simplificam o processo, como a ferramenta CASE( Computer Aided Software Engineering).

- Conformidade com os padrões: padrões são necessários para garantir uma documentação clara, objetiva e sem ambiguidades.

- Reutilização: o esforço pode ser otimizado, se reutilizar componentes já testados, como bibliotecas, kits de ferramentas de interface gráfica, etc.

- Manutenção: todo software precisa ser modificado periodicamente, de acordo com as solicitações do cliente e do uso de novas tecnologias.

- Gerenciamento de Alteração: se uma alteração é realizada, é necessário estudar o impacto sobre os vários componentes do software.

- Controle de Versão: é importante que o usuário tenha uma versão mais recente.

- Gerenciamento de Risco: qualquer grande esforço de desenvolvimento está sujeito à riscos. Deve-se avaliar constantemente os riscos e criar medidas para reduzí-los.