Aula 02 CICLO DE VIDA DO SOFTWARE O ciclo de vida de um software é uma estrutura contendo todos os processos e tarefas envolvendo o desenvolvimento e finalização, ou seja, as etapas de operação e manutenção além de requisitos até o término de uso do software. Normalmente um ciclo de vida de um software compreende algumas atividades, são elas: Levantamento de necessidade, também chamado de análise de requisitos: identifica às necessidades de informações da organização. Analise de alternativas: consiste na identificação e avaliação de sistemas alternativos. Concepção geral: trata-se da elaboração das especificações da arquitetura geral do software. Codificação: Aplicação/ Programação, é a tradução em uma linguagem de programação, documentação, padronização e estruturação. Manutenção: alteração do software, novos requisitos, atualização, otimização e correção de erros. Testes: nunca se pode dizer que um software está 100% correto, dá-se então as pesquisas da origem dos erros, a fonte, erros administrativos. A escolha de um ciclo de vida é a primeira coisa a se fazer quando se inicia um processo de software. Não existe um modelo ideal de ciclo, pois vários fatores interferem na criação: tempo, custo, equipe, ambiente, cliente. Nas empresas também é difícil adotar apenas um ciclo de vida, na maioria das vezes possui mais de um. Modelos de ciclo de vida: Cascata, Modelo em V, Incremental, Evolutivo, RAD, Prototipagem e Espiral.
Cascata: Como o próprio nome diz segue como uma cascata, ou seja, o desenvolvimento segue em apenas um sentido, de modo que as etapas não podem ser repetidas. Este modelo é fácil de administrar, pois não há um processo de revisão já que a cascata se dá em um só sentido. O administrador do projeto pode determinar prazos finais e monitorar o progresso na direção destes prazos. Ao mesmo tempo este modelo é muito inflexível. Se, por exemplo, as necessidades dos usuários mudarem durante o projeto, não existe nenhum mecanismo formal para ajustar o processo de desenvolvimento. O uso deste modelo significa, também, que nenhum componente do sistema será entregue até a proximidade final do projeto. Frequentemente esta demora na entrega conduz a tensões entre usuários e desenvolvedores, especialmente se os prazos finais são ultrapassados. Modelo em V: é uma aproximação estruturada de testes que pode ser usada com toda a metodologia do desenvolvimento da gerência ou sistema de projeto. Permitem delimitar um retorno as etapas precedentes, é um modelo ideal para os analistas de testes, pois une o modele de desenvolvimento e de software e o de testes.
Incremental: foi projetado para auxiliar e responder os problemas encontrados no Modelo Cascata. O desenvolvimento é dividido em etapas, denominadas incrementos. Em cada incremento é realizado todo o ciclo do desenvolvimento de software. Cada etapa produz um sistema totalmente funcional. Tipos de incrementos: Evolutivos: Produtos de cada etapa de desenvolvimento são aproveitados em cada nova passagem pela etapa. Descartáveis: Produtos das etapas de desenvolvimento são descartados a cada novo protótipo é construído do início. Operacional: Requisitos são elucidados através de protótipo se o produto final é construído paralelamente a construção dos protótipos.
Espiral: É um metamodelo, visto que qualquer ciclo de vida pode ser utilizado na fase de desenvolvimento. Foi criado visando abranger as melhores características do modelo clássico e da prototipagem, é dividido em quatro fases e as mesmas são repetidas várias vezes. a) Vantagens: Possibilidade de melhorar o sistema a cada iteração; Diminui manutenção. b) Desvantagens: Modelo relativamente novo; Modelo mais complexo.
Modelo RAD (Rapid Application Development): É um modelo que enfatiza um ciclo de desenvolvimento curto, sua construção é baseada em componentes. Este modelo é usado principalmente para aplicações de sistema de informação. a) Vantagens: Baseado em componentes e pode ser desenvolvido em várias equipes; b) Desvantagens: É necessário desenvolvedor e cliente comprometido e não é apropriado para qualquer aplicação. Prototipagem: A prototipagem descreve uma abordagem que tenta satisfazer as necessidades do usuário focalizando a interface do usuário. Os estágios do projeto e de desenvolvimento, referente à interface de usuários, repetem-se até que o usuário esteja satisfeito.