Pular para o conteúdo
04/09/2010 / viniciusknob

Ciclo de Vida do Software

O ciclo de vida de software consiste em um cronograma lógico e aplicável a todo software existente, com menor ou maior tempo, e sua função é afirmar fases que o software passa desde seu nascimento até sua inevitável morte. O ciclo auxilia na definição dos objetivos, no fluxo de trabalho e organização do projeto como um todo. Não existe ainda uma padronização quanto à descrição exata das fases, porém duas coisas são certas: um software terá bugs e um dia terá seu fim, não há como fugir disso.

Pode-se usar como modelo para o ciclo de vida do software um onde temos fases bem definidas e que não fogem da idéia de concepção e morte, mas existem outros, o que realmente deve se levar em conta é a equipe envolvida, o conhecimento existente, tempo disponível (prazo), como o cliente é e como quer e o valor disponível para investimento. Tudo isso impacta na escolha do modelo de ciclo de vida.

Todo software inicia-se com uma definição que consiste em recolher meios para solucionar um problema existente, de forma ágil, autônoma e computacional. O que deve ser destacado aqui é que por mais bem feito que seja essa solução, alguém um dia vai olhar para isso e fazer melhor, mas enfim, tem-se a definição como o inicio para toda a dor de cabeça.

A definição vai deixar claro para todas as partes o que será feito, como será feito e o que será preciso ter para que seja feito. É a fase dos primeiros documentos para “gestação” que está por vir, ou seja, toda cerimônia de preparação e carinho na criação do filho imaculado chamado software. A única diferença com a vida real é que aqui você escolhe o sexo do filho, se bem que os avanços da ciência já permitem manipular embriões, enfim, é você que decide como ele será, e como um bom pai, você precisa carregar esse filho depois.

Terminada a escolha da mãe e as características do filho é hora de “transar”, tem-se aí o inicio do orgasmo, da tensão, do stress, da vontade, do objetivo e todo o resto que envolve a produção e desenvolvimento do software. Lembrando que se você não definiu bem a mamãe e não deu muita bola pra detalhes psicológicos ou mesmo físicos do seu filho, prepare-se, por enquanto são só rosas, mas o inferno virá.

Toda documentação será fundamental para que haja um meio de guiar a você mesmo, ou sua equipe, dependendo da complexidade da ferramenta futura influenciará totalmente no tamanho da documentação e também nos esforços em manter o máximo possível de padrões e abstrações, aquela coisa toda de qualidade e reuso tem sim muita importância, e isso reflete não só agora, mas como já foi dito, no começo são rosas, mas o inferno virá.

No caminho das índias temos agora que implementar e utilizar a padronização, codificar e testar, validar o que já foi feito, prototipar, visitar o cliente, voltar ao trabalho, consultar a bola de cristal de vez em quando e visualizar o futuro baseando-se no passado. É essa a hora de por tudo em pratica, “mãos à obra”, “let’s go!”. Não serão exatos nove meses para gestação, mas prazos devem ser criados e seguidos, e em pouco tempo, você verá seu filho correndo feliz, caindo, levantando, e todo aquele loop infinito de choradeira e amparo.

Um belo dia você acorda e percebe que seu filho cresceu e precisa levá-lo para a escola, especializá-lo em algo, torná-lo melhor, transformá-lo em algo maduro e consciente. Pois é, o software vai passar por manutenções e periódicas melhorias no código para buscar o melhor desempenho e qualidade. Parabéns! Você está no ciclo de vida do software e agora tem que conseguir ultrapassar a desgraça dos infinitos bugs e gerar novas versões, eis a evolução.

Um bom projeto de desenvolvimento não deve resultar em muitos bugs, mas sempre haverá. O software é feito por humanos e humanos erram, então temer o inevitável é ridículo, tem-se sim que enfrentar, está no sangue, ou melhor, no ciclo. A manutenção permitirá ao software aquele alongamento de vida útil citado anteriormente, trazendo um tempo maior de durabilidade no mercado. Com o tempo, não há mais muito que se fazer, pois a base também evolui, ou seja, os sistemas operacionais, ou até mesmo o hardware. Novas plataformas, novas versões e novos projetos. Recomeça a vida, vamos ao loop!

O ciclo de vida de software é isso. Um ciclo como nós temos em nossa vida, um ciclo que permite a evolução e a herança. Herdar o conhecimento do anterior é ter maior confiança para novos projetos, é saber o que fazer quando tudo parar, ou mesmo, saber onde atacar antes mesmo que tudo pare. O ciclo permite não só a evolução, assim como na realidade, ele também classifica e somente os mais fortes permanecem.

Com a crescente adoção de software pelos variados produtos no mercado, a comunidade envolvida no processo de desenvolvimento vem criando normas e padrões para projetos envolvendo o ciclo de vida. A Norma ISO/IEC 12207 é umas dessas normas e define uma forma estruturada de construir software, visando à semelhança com outras engenharias em assuntos específicos como desenvolvimento e manutenção. São 3 classes, 17 processos, 74 atividades e 224 tarefas vistas como recomendações ou requisitos para um bom ciclo de vida.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.