Professional Documents
Culture Documents
Conhecendo os Bastidores
De que se trata o artigo
Neste contexto, neste artigo apresentaremos alguns modelos de ciclo de vida,
quais sejam: Cascata, Modelo em V, Incremental, Evolutivo, RAD,
Prototipagem, Espiral, Modelo de Ciclo de Vida Associado ao RUP.
Para que serve
O ciclo de vida a estrutura contendo processos, atividades e tarefas
envolvidas no desenvolvimento, operao e manuteno de um produto de
software, abrangendo a vida do sistema, desde a definio de seus requisitos
at o trmino de seu uso.
Em que situao o tema til
O modelo de ciclo de vida a primeira escolha a ser feita no processo de
software. A partir desta escolha definir-se- desde a maneira mais adequada de
obter as necessidades do cliente, at quando e como o cliente receber sua
primeira verso operacional do sistema.
Rodrigo Spinola
Editor Chefe - SQL Magazine | WebMobile | Engenharia de Software Magazine
Professor da Faculdade Ruy Barbosa (www.frb.edu.br), uma instituio parte do Grupo
DeVry (www.devrybrasil.com.br).
Modelo em V
Neste modelo, do Ministrio de Defesa da Alemanha, 1992, o modelo em
cascata colocado em forma de "V". Do lado esquerdo do V ficam da anlise
de requisitos at o projeto, a codificao fica no vrtice e os testes,
desenvolvimento, implantao e manuteno, direita, conforme Figura 2.
[abrir imagem em janela]
Figura 2. O modelo em V
Modelo Evolutivo
Neste modelo, os requisitos so adquiridos em paralelo evoluo do sistema.
O modelo evolutivo parte do princpio que o cliente no expe todos os
requisitos, ou os requisitos no so to bem conhecidos, ou os requisitos ainda
esto sofrendo mudanas. Desta forma, a anlise feita em cima dos
requisitos conseguidos at ento, e a primeira verso entregue ao cliente. O
cliente usa o software no seu ambiente operacional, e como feedback,
esclarece o que no foi bem entendido e d mais informaes sobre o que
precisa e sobre o que deseja (ou seja, mais requisitos).
A partir deste feedback, nova anlise, projeto e desenvolvimento so
realizados, e uma segunda verso do software entregue ao cliente que,
novamente, retorna com mais feedbacks. Assim, o software vai evoluindo, se
tornando mais completo, at atender todas as necessidades do cliente dentro
do escopo estabelecido. Tem-se assim a verso final, pelo menos at novos
requisitos aparecerem (ver Figura 4).
[abrir imagem em janela]
processo.
No dada muita nfase documentao, pois a gerao de verses torna
este trabalho muito rduo. Alm disso, como a anlise de requisitos e
desenvolvimento esto sempre acontecendo, a preocupao em documentar
todo o processo pode fazer com que haja atrasos na entrega.
H uma alta necessidade de gerenciamento nesse tipo de modelo, pois a falta
de documentao adequada, o escopo de requisitos no determinado, o
software crescendo e estando ao mesmo tempo em produo podem ter
conseqncias negativas. Seguem alguns exemplos: o sistema nunca terminar,
pois o cliente sempre pede uma alterao; o sistema no ter uma estrutura
robusta a falhas nem propcia a uma fcil manuteno, pelas constantes
alteraes; o cliente mudar de idia radicalmente entre uma verso e outra ou
revelar um requisito que exija uma verso bem diferente da anterior, fazendo
com que toda a base (de dados ou de programao) precise ser revista. Os
citados problemas podem implicar em um grande nus financeiro e de tempo.
muito importante que o cliente esteja ciente do que se trata este ciclo de vida
e que sejam esclarecidos os limites de escopo e de tempo, para que no haja
frustraes de expectativas.
As fbricas de software que resolvem por adotar este modelo devem ter uma
estrutura prvia diferencial de pessoas e ferramentas, tais como:
- Pessoas:
- Profissionais experientes (funcional e gerncia);
- Profissionais de rpida adaptao;
- Equipes de colaborao mtua;
- Maior quantidade de pessoas;
- Gerenciamento:
- Empresas pouco burocrticas que encorajem a eliminao de obstculos;
- Alto controle do tempo;
- Uso de Ferramentas:
- CASE;
- Muita diagramao;
- Prvia biblioteca de componentes reutilizveis (APIs, wizards, templates,...);
- Fcil manuteno (ex.: linguagens de programao que suportem Orientao
a Objetos, tratamento de exceo, ponteiros);
- Adoo de ferramentas maduras, pois no h tempo de atualizar verses e
tratar erros inesperados;
Os sistemas desenvolvidos no ciclo RAD tendem a ter uma padronizao de
Prototipagem
Prototipagem a construo de um exemplar do que foi entendido dos
requisitos capturados do cliente. Pode ser considerado um ciclo de vida ou
pode ser usado como ferramenta em outros ciclos de vida.
Um prottipo em engenharia de software pode ser o desenho de uma tela, um
software contendo algumas funcionalidades do sistema.
So considerados operacionais (quando j podem ser utilizados pelo cliente no
ambiente real, ou seja, em produo), ou no operacionais (no esto aptos
para serem utilizados em produo). Os prottipos podem ser descartados, ou
reaproveitados para evolurem at a verso final.
No ciclo de vida de prototipagem, no exigido um conhecimento
aprofundado dos requisitos num primeiro momento. Isso bastante til quando
os requisitos no so totalmente conhecidos, so muitos complexos ou
confusos. Desta forma, se o cliente no sabe expressar o que deseja (o que
ocorre bastante quando no um sistema legado), a melhor maneira de evitar
que se perca tempo e recursos com uma m interpretao a construo de
modelos, ou seja, de prottipos do que o software faria.
Assim, o cliente experimentar, na prtica, como o sistema ou parte dele
funcionar. A partir desse primeiro contato, o cliente esclarece o que no foi
bem interpretado, aprofunda alguns conceitos e at descobre um pouco mais
sobre o que realmente precisa. A partir deste feedback, novos requisitos so
colhidos e o projeto ganha maior profundidade. Outro prottipo gerado e
apresentado ao cliente, que retorna com mais feedbacks. Ou seja, o cliente
participa ativamente do incio ao fim do processo (ver Figura 6).
A gerao de prottipos pode ser facilitada por ferramentas
geradoras de telas, de relatrios, poupando esforo de programao e
diminuindo o tempo de entrega.
Cada prottipo tem uma finalidade diferente.
Um prottipo pode servir para esclarecer dvidas sobre uma rotina,
demonstrar a aparncia das telas, contedo de tabelas, formato de relatrios.
Os prottipos podem tambm ser utilizados para apresentar opes ao cliente
para que ele escolha a que mais lhe agrade, como opes de navegao, de
fluxo de telas, entre outras.
Por isso, muito importante explicar previamente ao cliente que prottipos
so apenas modelos para melhorar a comunicao. Caso contrrio, pode
causar uma frustrao por no funcionar corretamente, ter funes limitadas,
ter resposta lenta, ou a aparncia ruim. Certamente um prottipo construdo
para esclarecer uma rotina provavelmente ter uma cara feia; para
demonstrar a aparncia das telas, no ter funcionalidade; para apresentar o
formato dos relatrios, os dados no sero coerentes.
[abrir imagem em janela]
Modelo Espiral
O modelo proposto por Boehm em 1988 trata de uma abordagem cclica das
fases do processo, onde a cada volta ou iterao temos verses
evolucionrias do sistema.
Este um modelo guiado por risco, suporta sistemas complexos e/ou de
grande porte, onde falhas no so tolerveis. Para isso, a cada iterao h
uma atividade dedicada anlise de riscos e apoiada atravs de gerao de
prottipos, no necessariamente operacionais (desenhos de tela, por exemplo)
para que haja um envolvimento constante do cliente nas decises.
Cada iterao ou volta dedicada a uma fase do processo de vida de um
software (viabilidade do projeto, definio de requisitos, desenvolvimento e
teste,...). Ao mesmo tempo, cada volta seccionada em 4 setores, da seguinte
forma:
1 Iterao: Viabilidade do projeto:
1.1. Definio de objetivos;
1.2. Avaliao e reduo de riscos;
1.3. Desenvolvimento e validao;
1.4. Planejamento da prxima fase;
2 Iterao: Definio de requisitos do sistema:
2.1. Definio dos objetivos;
2.2. Avaliao e reduo de riscos;
2.3. Desenvolvimento e validao;
2.4. Planejamento da prxima fase;
3 Iterao:
Projeto do sistema:
3.1. ...
3.2. ...
3.3. ...
3.4. ...
4 Iterao: Desenvolvimento e teste de unidade
4.1. ...
4.2. ...
...
5 Iterao: Implantao
...
Ou, na representao grfica deste modelo conforme Figura 7.
A iterao no RUP tem por objetivo minimizar os riscos. Como pode ser visto
na Figura 9, a iterao pode acontecer dentro de cada fase, gerando
incrementos, ou em todo o processo. Por exemplo, dentro da concepo, a
iterao pode ocorrer at que todos os requisitos sejam perfeitamente
entendidos. O plano de iteraes identificar quais e quantas iteraes so
necessrias durante o processo.
Em geral, essas fases demandam esforo e programao diferentes. Para um
projeto de mdio porte, de acordo com o fabricante ser seguida a distribuio
apresentada na Tabela 1.
O RUP usa templates que descrevem o que esperado no resultado de cada
fase ou cada iterao (IBM, 2004), identificando as competncias e
responsabilidades (arquiteto, analista, testador,...), as atividades e os artefatos.
Para descrever as atividades (codificao de uma classe, integrao de
sistemas,...) o RUP faz o uso de manuais (guidelines), que descrevem tcnicas
e heursticas; e de Mentores de Ferramentas, que explicam o uso da
ferramenta para executar a atividade. Os artefatos de cada fase (documentos,
modelos, cdigos, etc.) so criados, juntamente com templates e exemplos,
para melhor entendimento da equipe e do cliente (ver Figura 10).
Figura 9. RUP
[abrir imagem em janela]
Concluso
Finalizando este artigo sobre os modelos de ciclo de vida de software,
segue uma tabela comparativa das principais caractersticas que
devem ser observadas antes de escolher o ciclo ou os ciclos de vida a
serem adotados (ver Tabela 2).
Vale ressaltar que, conforme j mencionado anteriormente, no
existe um modelo ideal e na maioria dos softwares desenvolvidos so
utilizados mais de um modelo de ciclo de vida.