O documento descreve o Ciclo de Vida Clássico de Desenvolvimento de Software, também conhecido como modelo cascata. Ele consiste em seis fases sequenciais: 1) Análise e Engenharia de Sistemas, 2) Análise de Requisitos, 3) Projeto, 4) Codificação, 5) Testes e Integração e 6) Manutenção e Operação. Apesar de ter fragilidades por ser inflexível, é o modelo mais antigo e amplamente usado da Engenharia de Software.
1. 19/8/2013
1
1
Engenharia de Software
Tecnologia em Gestão da Tecnologia da
Informação
Prof. Eduardo José dos Santos
edu.santos@aedu.com
Aula 03
• Revisão;
• Ciclo de Vida Clássico de Desenvolvimento de
Software;
• Atividade Complementar;
• Referências.
Roteiro
2. 19/8/2013
2
• Engenharia Software;
• Abrangência e Justificativas;
• Metodologias:
• Clássica;
• Cascata;
• XP.
PRESSMAN, Roger S. Engenharia de Software.
6ª ed. São Paulo: Prentice Hall, 2009.
Livro-texto: página 32.
3. 19/8/2013
3
• Ciclos de Vida do Software
• Ciclos de Vida:
• Paradigma da Engenharia de Software que
corresponde aos ciclos (fases) em que o
software é construído/elaborado;
• Versão simplificada da realidade;
• Modelos existentes possuem diferentes graus
de sofisticação e complexidade;
• Um processo bem estruturado permite a
criação de base estável para a criatividade.
• Ciclos de Vida:
• Existem diversos, alguns cobrem apenas
concepção ao desenvolvimento, enquanto
outros cobrem: concepção, desenvolvimento,
implantação e manutenção.
4. 19/8/2013
4
Para escolha de um Ciclo de Vida de software:
natureza do projeto e da aplicação;
métodos e ferramentas a serem usados;
controles e produtos que precisam ser
entregues.
Ciclo de Vida Clássico (Cascata)
• Modelo mais antigo e o mais amplamente
usado da Engenharia de Software;
• Modelado em função do ciclo da engenharia
convencional;
• Requer uma abordagem sistemática,
sequencial ao desenvolvimento de software.
5. 19/8/2013
5
Ciclo de Vida Clássico (Cascata)
Requer uma abordagem sistemática
sequencial ao desenvolvimento
de software.
Engenharia de
Sistemas
Análise de
Requisitos
Projeto
Codificação
Testes
Manutenção
1. Análise e Engenharia de Sistemas:
Estabelecimento dos requisitos para
todos os elementos do sistema
(hardware, pessoas, banco de dados,
etc...);
Envolve a coleta dos requisitos em nível
do sistema, com uma pequena
quantidade de projeto e análise de alto
nível;
Ciclo de Vida Clássico
1. Análise e Engenharia de Sistemas:
Quanto mais dados forem coletados em
nível de sistema, menor será a
probabilidade de haver “bugs”, o que
consequentemente diminuirá os futuros
reparos;
Também conhecido como estudo de
viabilidade.
Ciclo de Vida Clássico
6. 19/8/2013
6
2. Análise de Requisitos de Software:
o processo de coleta dos requisitos é
intensificado e concentrado
especificamente no software;
deve-se compreender o domínio da
informação, a função, desempenho e
interfaces exigidos;
os requisitos (para o sistema e para o
software) são documentados e revistos
com o cliente antes de iniciar o projeto;
Ciclo de Vida Clássico
2. Análise de Requisitos de Software:
Detalhar o domínio das informações e da
funcionalidade requerida para o software;
Definir cada detalhe para poder construir
uma estrutura envolvendo tamanho, tipo,
volume, consistências, inter-relação, entre
outras.
Ciclo de Vida Clássico
2. Análise de Requisitos de Software:
Ciclo de Vida Clássico
7. 19/8/2013
7
3. Projeto:
tradução dos requisitos do software para
um conjunto de representações que
podem ser avaliadas quanto à qualidade,
antes que a codificação se inicie;
Ciclo de Vida Clássico
3. Projeto:
se concentra em 4 atributos do programa:
Estrutura de Dados,
Arquitetura de Software,
Detalhes Procedimentais e
Caracterização de Interfaces.
É documentado e torna-se parte da
configuração do software;
Traduz quanto à qualidade antes de
iniciar a codificação.
Ciclo de Vida Clássico
4. Codificação:
tradução das representações do projeto
para uma linguagem “artificial” resultando
em instruções executáveis pelo
computador;
se o projeto estiver bem detalhado, a
codificação pode ser executada
mecanicamente.
Ciclo de Vida Clássico
8. 19/8/2013
8
5. Testes e Integração:
Concentra-se:
nos aspectos lógicos internos do
software, garantindo que todas as
instruções tenham sido testadas;
nos aspectos funcionais externos, para
descobrir erros e garantir que a
entrada definida produza resultados
que concordem com os esperados.
Ciclo de Vida Clássico
5. Testes e Integração:
junção de várias unidades de programas
e recursos envolvidos;
resultado deve concordar com o projeto
ou resultado exigido;
Depois de testado, o software é entregue
ao usuário/cliente.
Ciclo de Vida Clássico
6. Manutenção e Operação:
indubitavelmente o software deverá sofrer
mudanças depois que for entregue ao
cliente;
causas das mudanças: erros, adaptação
do software para acomodar mudanças em
seu ambiente externo e exigência do
cliente para acréscimos funcionais e de
desempenho.
Ciclo de Vida Clássico
9. 19/8/2013
9
6. Manutenção e Operação:
o Tipos de manutenção:
Manutenção corretiva: corrige os erros
não detectados;
Manutenção adaptativa: adaptação da
aplicação às mudanças do ambiente;
Manutenção evolutiva: adição de
novas características e qualidades do
software.
Ciclo de Vida Clássico
6. Manutenção:
A manutenção de software reaplica
cada uma das etapas precedentes do
ciclo de vida a um programa existente, e
não a um novo.
Ciclo de Vida Clássico
• Vantagens:
Minimiza o tempo de planejamento;
Funciona bem para equipes tecnicamente
mais fracas.
Ciclo de Vida Clássico
10. 19/8/2013
10
• Principais problemas:
Inflexível;
Apenas a fase final produz um deliverable
que não é um documento;
Torna-se difícil voltar atrás para corrigir
erros;
Ciclo de Vida Clássico
• Principais problemas:
Projetos reais raramente seguem fluxo
sequencial que o modelo propõe;
Muitas vezes é difícil para o cliente
declarar todas as exigências
explicitamente;
Uma versão de trabalho não estará
disponível até um ponto tardio do
cronograma do projeto.
Ciclo de Vida Clássico
Embora o Ciclo de Vida Clássico
tenha fragilidades, ele é
significativamente melhor do que uma
abordagem casual ao desenvolvimento
de software;
É o mais antigo e o mais
amplamente usado da Engenharia de
Software.
CONCLUSÕES
11. 19/8/2013
11
Dúvidas
Trabalho
Fonte: SIAE
Referências
• Roger S. Pressman. ENGENHARIA DE SOFTWARE.
Makron Books. (1995) .
• Kotonya, Gerald; Sommerville, Ian. Requeriments
Engineering: Processes and Tecniques - John Wiley & Sons.
(1998).
• IEEE – Computer Society. http://www.computer.org
• Sommerville, Ian. ENGENHARIA DE SOFTWARE, 8ª
edição. (2007).