Académique Documents
Professionnel Documents
Culture Documents
Faculdade de Engenharia
Autor:
Professor:
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 versão operacional do sistema.
O ciclo de vida de um software (em inglês, software lifecycle), indica todas as etapas do
desenvolvimento de um software, da sua concepção até o seu desaparecimento. O objetivo de tal
segmentação é definir balizas intermediárias que permitam a validação do desenvolvimento do
software, ou seja, a conformidade do software com as necessidades expressas e a verificação do
processo de desenvolvimento, isto é, a adequação dos métodos aplicados.
A origem desta segmentação provém da constatação de que os erros têm um custo ainda
maior quando são detectados tardiamente no processo de produção. O ciclo de vida permite detectar
os erros o mais depressa possível e, assim, garantir a qualidade do software, os prazos de sua
realização e os custos associados.
Neste trabalho abordaremos sobre alguns modelos de ciclo de vida, tais como: clássico,
incremental, interativo e evolutivo.
O modelo Clássico ou em cascata é o modelo mais antigo mas ainda o mais usado; segue
uma sequência linear (como mostra a figura a seguir). Como a água que flui numa cascata, o
desenvolvimento movimenta-se somente num sentido, de modo que as etapas não podem ser
repetidas.
Suas atividades fundamentais são:
Vantagens:
Desvantagens:
Neste modelo, os requisitos do cliente são obtidos, e, de acordo com a funcionalidade, são
agrupados em módulos. Após este agrupamento, a equipe, junto ao cliente, define a prioridade em
que cada módulo será desenvolvido, escolha baseada na importância daquela funcionalidade ao
negócio do cliente.
Uma atenção especial deve ser dada ao agrupamento dos requisitos e à qualidade no
desenvolvimento das funções comuns a todo o sistema, que inevitavelmente deverão ser entregues
no primeiro incremento.
Vantagens:
A partir deste feedback, nova análise, projeto e desenvolvimento são realizados, e uma
segunda versão 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 versão final, pelo menos até novos
requisitos aparecerem (ver Figura 3).
Desvantagens:
Especificação de
Requisitos Projeto
Implementação
Entrega e
Implantação
Testes
Usando o modelo espiral, o sistema é desenvolvido em ciclos, sendo que nos primeiros
ciclos nem sempre todas as atividades são realizadas. Por exemplo, o produto resultante do primeiro
ciclo pode ser uma especificação do produto ou um estudo de viabilidade. As passadas subseqüentes
ao longo da espiral podem ser usadas para desenvolver protótipos, chegando progressivamente a
versões operacionais do software, até se obter o produto completo. Até mesmo ciclos de
manutenção podem ser acomodados nesta filosofia, fazendo com que o modelo espiral contemple
todo o ciclo de vida do software.
É importante ressaltar que, a cada ciclo, o planejamento deve ser revisto com base no
feedback do cliente, ajustando, inclusive, o número de iterações planejadas. De fato, este é o maior
problema do ciclo de vida espiral, ou de maneira geral, dos modelos evolucionários: a gerência de
projetos. Pode ser difícil convencer clientes, especialmente em situações envolvendo contrato, que
a abordagem evolutiva é gerenciável.
1.5. Ciclo de vida iterativo e incremental
Os ciclos de vida iterativos e incrementais são aqueles nos quais se repetem as atividades do
projeto em fases ou iterações e em cada uma delas se aumenta o entendimento do produto por parte
da equipe do projeto. As iterações desenvolvem o produto através de uma série de ciclos repetidos
que vão adicionando sucessivamente funcionalidades ao produto.
No final de cada iteração, se terá completado um entregável ou um conjunto de entregáveis. As
futuras iterações podem melhorar os referidos entregáveis ou criar novos. O produto final será a
acumulação de funcionalidades construída nas iterações.
Se opta por ciclos de vida iterativos e incrementais quando é necessário gerenciar objetivos
pouco definidos ou de uma alta complexidade ou quando a entrega parcial do produto é a chave
para o sucesso. Este tipo de ciclo de vida permite a equipe do projeto incorporar a retroalimentação
e ir incrementando a experiência da equipe durante o projeto.
1.6. RAD
R: A análise essencial foi proposta em 1984 por McMenamim e Palmer e é um avanço da Análise
Estruturada Clássica.
A análise essencial tem como finalidade a especificação de sistemas com base nos requisitos
(verdadeiros e falsos) do mesmo.
Esta análise consiste em repartir o sistema por eventos que constituem as entradas, saídas e
processamentos do mesmo; para que isso seja possível devemos ter em conta os três modelos
recomendados pela análise essencial que são: modelo funciona, modelo de dados e o modelo de
controle.
A análise essencial dispõe de 2 níveis, cada um com o seu modelo que são:
Nível essencial:
- Modelo essencial: neste modelo deve-se saber conhecer a essência do sistema, ou seja, os
requisitos verdadeiros, desprezando todas as restrições tecnológicas, tais como: hardware, Sistema
Implementação:
b) O que entendes por essência do sistema. Requisitos verdadeiros e falsos, dê exemplos claros
O modelo essencial está constituído por dois modelos: Modelo Ambiental e o Modelo
Comportamental.
d) Um sistema de inscrições e candidaturas para bolsa de estudos. Crie uma lista de eventos e
classifica-os.
R:
Actividades custodiais:
• Manter candidatos;
• Manter subsídios.
Actividades fundamentais:
• Cadstrar candidatos;
• Validar candidatos;
• Actualizar candidatos.
Memória essencial:
f-R:
CANDIDATO
Recibos Requisitos
3. Modelo de Processo
O ciclo de desenvolvimento se refere ao conjunto de fases que devem ser realizadas para a
construção de um software.
Se opta por ciclos de vida iterativos e incrementais quando é necessário gerenciar objetivos
pouco definidos ou de uma alta complexidade ou quando a entrega parcial do produto é a chave
para o sucesso.
A parte interativa(back-end) do sitema foi codificada em Javascript e PHP por oferecer uma
fácil e rápida integração com o bancos de dados feitos no MySQL.
A base de dados foi codificada na linguagem SQL, usando o SGBD MySQL a partir do
Wampserver(tendo em conta que é um pacote que alberga o servidor Apache,
PHPMyAdmin e o MySQL).
• Teste: nesta fase que foi a última, foram realizados vários testes no Website; estes testes
auxiliaram na identificação de algumas falhas no sistema, que foram corrigidos
posteriormente.
Requisitos Funcionais
São declarações de serviços que o sistema deve fornecer, de como o sistema deve reagir a
entradas específicas e de como o sistema deve se comportar em determinadas situações.
São restrições aos serviços ou funções oferecidas pelo sistema. Incluem restrições de timing,
restrições no processo de desenvolvimento e restrições impostas pelas normas. Ao contrário das
características individuais ou serviços do sistema, os requisitos não funcionais, muitas vezes,
aplicam-se ao sistema como um todo.
ID Tipo Descrição
RNF01 Acessibilidade A transação de produtos deve ser assegurada aos usuários que
possuem uma conta no sistema.
RNF02 Usabilidade O sistema terá uma interface amigável, imediata e de simples
manejamento, isto é, suas informações e funcionalidades estarão
bem visíveis e disponíveis para os usuários.
RNF04 Usabilidade O sistema deverá ter um alto nível de acessibilidade, devendo ser
acessível a partir de qualquer Navegador, mas para a melhor
visualização, o sistema deverá ser executado em navegadores que
suportem o HTML e CSS nas versões 5 e 3, respectivamente.
RNF05 Segurança O acesso ao sistema não será por meio da validação de usuários.
A validação será necessária para poder efectuar compras.
RNF06 Usabilidade O sistema devera possuir dois tipos de usuários com nível de
privilégios diferentes.
RNF07 Funcionalidade O usuário não terá problemas de conflitos de perfis, pelo facto do
uso de sessões e a distribuição dos ficheiros do sistema aos perfis
adequados.