.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:
|
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:
Governança - A governança engloba toda a tomada de decisões e gerenciamento de projetos em toda a empresa.
Desenvolvimento - O desenvolvimento é definido como o processo de criação da aplicação real.
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):
Fase de requisitos
Fase de projeto
Fase de implementação
Fase de testes
Fase de produção
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:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET