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.