Por que eu devo ler este artigo:Existem diversos processo de desenvolvimento de software, tanto ágeis como tradicionais.

Muitas vezes é difícil escolher qual processo usar e quando se escolhe o processo, ele pode não atender ou não se adequar às necessidades da organização.

Como solução para este cenário, este artigo apresenta uma metodologia que permite criar um processo específico para as necessidades da organização, adaptar um processo que não esteja atendendo as necessidades ou até mesmo assegurar que a implantação de um novo processo seja feita com sucesso.

Ausência de ferramentas, métodos e procedimentos no desenvolvimento de software, gera um alto índice de projetos não concluídos e projetos que são concluídos, mas que não atendem as necessidades do cliente.

Como uma solução para estes problemas, surgiu uma área de conhecimento denominada de engenharia de software que utiliza de princípios sólidos da engenharia a fim de obter software confiável e de maneira econômica.

A engenharia de software deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento, sendo que a mesma se divide em diversas áreas específicas, sendo algumas delas: requisitos de software, projeto do software, construção do software, teste do software, manutenção de software, gerência de software, processos de software e qualidade de software. Este artigo é focado na área de processo de software.

Processos de Desenvolvimento de Software

Um processo de desenvolvimento de software é o conjunto de atividades inter-relacionadas ou interativas que transforma insumos (entradas) em produtos de software (saídas).

Ele apresenta as atividades que devem ser desempenhadas no desenvolvimento de sistemas, sendo a definição operacional do processo básico que guia o estabelecimento de um processo comum em uma organização.

Portanto, um processo é um conjunto ordenado de atividades a fim de atingir um propósito comum, ou seja, podemos definir processo de software como um roteiro que deve ser seguido para se alcançar um resultado esperado de forma satisfatória.

Para se ter uma garantia de um produto de qualidade, com prazos e custos adequados (objetivo sempre desejado), se faz necessário: pessoas habilitadas e motivadas trabalhando com processos adequados em projetos bem gerenciados.

Considerando a importância da utilização de um processo padrão, um considerável esforço tem sido feito para sua modelagem e, como forma de auxiliar a sua criação, diversos processos estão surgindo. Eles podem ser adotados por completo ou permitir ainda serem adaptados de acordo com algumas características da organização.

É possível também que uma organização baseie-se em mais de um processo para a definição de seu processo padrão.

O processo de software é de grande importância no cotidiano de uma empresa que trabalhe com desenvolvimento de software, para que se possa garantir facilidades nas medições de processos e qualidade de software.

O processo de software fornece estabilidade, controle e organização para uma atividade, que se deixada sem controle, pode-se tornar caótica.

O processo de desenvolvimento de software inicia com um problema particular que um usuário quer solucionar e termina com um sistema que soluciona este problema.

O processo pode ocasionar o desenvolvimento de um novo software, porém existem casos de um software ser desenvolvido mediante a expansão e a modificação de outros sistemas já existentes.

Modelos de processos

Modelos de processos descrevem processos de desenvolvimento de forma simplificada, apresentando algumas de suas principais características. Um modelo de processo pode englobar mais de um processo de desenvolvimento. Dos vários modelos de processos existentes na engenharia de software, alguns são apresentados neste artigo.

O modelo cascata (ver Figura 1), chamado também de modelo sequencial linear, teve início em uma abordagem sistemática e sequencial para o desenvolvimento de software. As atividades devem ser executadas de maneira sequencial, uma atividade só pode começar quando outra termina.

Embora seja um modelo muito utilizado e simples, não condiz com a realidade dos projetos de software. Na prática, é necessário que em fases posteriores haja revisão e alteração de resultados das fases anteriores.

Figura 1. Modelo Sequencial Linear ou Cascata.

No modelo Incremental (ver Figura 2) o sistema evolui de maneira incremental ao longo do tempo, a cada nova iteração. Os primeiros incrementos são versões simplificadas do produto final. Este modelo tem o objetivo de apresentar um produto operacional a cada incremento até alcançar o produto final.

Figura 2. Modelo Incremental.

O RAD (Rapid Application Development) ou desenvolvimento rápido de aplicação, é um modelo de processo de desenvolvimento de software incremental que en ...

Quer ler esse conteúdo completo? Tenha acesso completo