.NET - O ciclo de vida do desenvolvimento de Software


  Neste artigo vou abordar conceitos relacionados ao ciclo de vida de desenvolvimento de software (CVDS).

O que é o Ciclo de Vida de Desenvolvimento de Software - CVDS ?

Segunda a norma NBR ISO/IEC 12207:1998 a definição oficial é :

“Estrutura contendo processos, atividades e tarefas envolvidas no desenvolvimento, operação e manutenção de um produto de software, abrangendo a vida do sistema, desde a definição de seus requisitos até o término de seu uso.”

Uma definição mais simples declar  : "O Ciclo de Vida de Desenvolvimento de Sistemas (CVDS) é um processo utilizado por um analista de sistemas para desenvolver um sistema de informação."(wikipédia)

De maneira menos formal o CVDS
é um processo reconhecido pela indústria como uma série de atividades ou etapas para o desenvolvimento de um novo produto software ou para modificar um software existente.

A principal função do ciclo de vida do desenvolvimento de software é indicar as fases, atividades, entregas e responsabilidades de cada envolvido no processo de desenvolvimento de software.

Por dentro das principais fases

De forma geral o CVDS possui cinco fases principais em qualquer um dos modelos de desenvolvimento adotados.

A seguir temos essas fases representadas em um diagrama:

1- Fase de requisitos :  levanta os requisitos mínimos, estuda a viabilidade e define o modelo a ser usado;
2- Fase de projeto : Envolve atividades de concepção, especificação, design da interface, prototipação, design da arquitetura;
3- Fase de implementação :
tradução para uma linguagem de programação das funcionalidades definidas durante as fases anteriores;
4- Fase de testes : realização de testes no que foi desenvolvido de acordo com os requisitos;
5- Fase de produção : implantação em produção do produto final;

Nota:  Se você quiser ser mais suscinto pode reduzir as fases a apenas três :  Definição, desenvolvimento e operação.

Principais modelos do ciclo de vida de desenvolvimento de software

Existem diversos modelos que podem se adotados para o processo de desenvolvimento de software. Os principais são:

1- Modelo em Cascata

Divide todo o processo de desenvolvimento de software em fases separadas e sequenciais onde o desenvolvimento movimenta-se somente num sentido, de modo que as etapas não podem ser repetidas.

Somente quando uma fase estiver concluída a outra fase poderá iniciar.

Neste modelo nenhum componente do sistema será entregue até a proximidade final do projeto.

2- Modelo Espiral

É uma combinação dos modelos interativo e sequencial com ênfase na análise de riscos e no planejamento.

O sistema de software é entregue em versões, onde cada versão passa por cada etapa do ciclo de desenvolvimento. Dessa forma o produto final é entregue rapidamente.

Determina um ciclo de atividades dividido em 4 estágios:

  1. Determina objetivos, soluções alternativas e restrições.
  2. Análisa os riscos do estágio anterior
  3. Atividades da fase de desenvolvimento : design, especificação, codificação e verificação
  4. Revisão das etapas anteriores e o planejamento da próxima fase

3- Modelo Incremental

Desenvolve várias partes do sistema em paralelo, e as integra quando estiverem completas.

O desenvolvimento é dividido em 'incrementos' que produzem o sistema de forma incremental até a sua versão final.

Cada incremento passa por todo o ciclo de desenvolvimento do software produzinto um sistema funcional embora não atenda todos os  requisitos.

4- Prototipagem

Constrói um protótipo do produto de software para mostrar suas funcionalidades de forma limitada.

É usado para permitir que os usuários avaliem propostas de desenvolvedores testando-as antes da implementação final do produto.

Ajuda a compreender as exigências especificas do usuário que não podem ter sido consideradas pelos desenvolvedores durante a fase de concepção do produto.

Nota: Protótipo é um produto de trabalho da fase de testes e/ou planejamento de um projeto.

5- Metodologias Ágeis

Utiliza uma abordagem de planejamento incremental e muito iterativa.

Cada iteração é um mini-projeto, que normalmente dura de 1 a 4 semanas, e inclui todas as fases para implementá-lo como levantamento de recursos e requisitos, projeto, desenvolvimento de código, testes e documentação.

Ao final de cada iteração deve haver uma entrega ao cliente, que inclua um conjunto de novas funcionalidades, uma nova versão de software.

Após essa entrega há um novo processo de comunicação com o cliente e então são definidas quais deverão ser as novas entregas.

O gerenciamento do ciclo de vida da aplicação - ALM (Application Lifecycle Management)

O ALM refere-se à capacidade de integrar, coordenar e controlar as diversas fases de desenvolvimento de um software até a entrega. Assim gerenciar o ciclo de vidas das aplicações é fazer a integração entre a necessidade de atender o negócio e a engenharia de software.

Assim a ALM representa um único processo que abrange todos elementos envolvidos no processo de desenvolvimento de software, oferecendo um trabalho contínuo e sempre com novos recursos.

O Application Lifecycle Management (ALM) atua  no acompanhamento de todo o processo de vida útil de uma aplicação, seja a construção de novos softwares ou alterações nos softwares já existentes, integrando todas as fases da engenharia de software – como análise de requisitos, modelagem de arquitetura, desenvolvimento de código, gerenciamento de mudanças, gerenciamento de testes e gerenciamento de versões de produtos realizados – com as necessidades do mercado.

Podemos dividir a ALM em 3 áreas distintas:

  1. Governança - A governança engloba toda a tomada de decisões e gerenciamento de projetos em toda a empresa.

  2. Desenvolvimento - O desenvolvimento é definido como o processo de criação da aplicação real.

  3. Operações - Uma operação é o trabalho necessário para executar e gerenciar o aplicativo. Começa pouco antes implantação e depois é executado continuamente

É comum equiparar ALM com o CVDS pois o ALM é construído em torno das seguintes fases principais do ciclo de vida de desenvolvimento de software(CVDS):

Praticamente, qualquer ciclo de vida de desenvolvimento de software é iniciado somente após a aprovação do caso de negócios.

Com a evolução da indústria de TI, as metodologias de desenvolvimento de software foram transformadas em vários níveis. A mudança principal se concentra em iterações mais curtas e múltiplas, em vez de um grande e completo ciclo único.

Como resultado, este processo moderno exibe o desenvolvimento de software como uma série de iterações. Cada subprocesso/iteração, contém sua própria definição de requisitos, design, desenvolvimento, qualidade e atividades de teste de segurança.

Esta solução não é a bala de prata todos os projetos de software. No entanto, esta abordagem iterativa é ainda melhor do que o método de execução tradicional.

Disse-lhe Jesus: Eu sou o caminho, e a verdade e a vida; ninguém vem ao Pai, senão por mim.
João 14:6

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?

 

Referências:


José Carlos Macoratti