Upload
eduardo-santos
View
2.736
Download
4
Embed Size (px)
DESCRIPTION
Aula 03 - Engenharia de Software - Ciclo de Vida Clássico da Engenharia de Software
Citation preview
19/8/2013
1
1
Engenharia de SoftwareTecnologia em Gestão da Tecnologia da
InformaçãoProf. Eduardo José dos Santos
Aula 03
• Revisão;
• Ciclo de Vida Clássico de Desenvolvimento de Software;
• Atividade Complementar;
• Referências.
Roteiro
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.
19/8/2013
3
• Ciclos de Vida do Software
• Ciclos de Vida:
• Paradigma da Engenharia de Software quecorresponde aos ciclos (fases) em que osoftware é construído/elaborado;
• Versão simplificada da realidade;
• Modelos existentes possuem diferentes grausde sofisticação e complexidade;
• Um processo bem estruturado permite acriação de base estável para a criatividade.
• Ciclos de Vida:
• Existem diversos, alguns cobrem apenasconcepção ao desenvolvimento, enquantooutros cobrem: concepção, desenvolvimento,implantação e manutenção.
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 amplamenteusado da Engenharia de Software;
• Modelado em função do ciclo da engenhariaconvencional;
• Requer uma abordagem sistemática,sequencial ao desenvolvimento de software.
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 paratodos os elementos do sistema(hardware, pessoas, banco de dados,etc...);
� Envolve a coleta dos requisitos em níveldo sistema, com uma pequenaquantidade de projeto e análise de altonível;
Ciclo de Vida Clássico
1. Análise e Engenharia de Sistemas:
� Quanto mais dados forem coletados emnível de sistema, menor será aprobabilidade de haver “bugs”, o queconsequentemente diminuirá os futurosreparos;
� Também conhecido como estudo deviabilidade.
Ciclo de Vida Clássico
19/8/2013
6
2. Análise de Requisitos de Software:
� o processo de coleta dos requisitos éintensificado e concentradoespecificamente no software;
� deve-se compreender o domínio dainformação, a função, desempenho einterfaces exigidos;
� os requisitos (para o sistema e para osoftware) são documentados e revistoscom 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 dafuncionalidade requerida para o software;
� Definir cada detalhe para poder construiruma estrutura envolvendo tamanho, tipo,volume, consistências, inter-relação, entreoutras.
Ciclo de Vida Clássico
2. Análise de Requisitos de Software:
Ciclo de Vida Clássico
19/8/2013
7
3. Projeto:
� tradução dos requisitos do software paraum conjunto de representações quepodem 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 daconfiguração do software;
� Traduz quanto à qualidade antes deiniciar a codificação.
Ciclo de Vida Clássico
4. Codificação:
� tradução das representações do projetopara uma linguagem “artificial” resultandoem instruções executáveis pelocomputador;
� se o projeto estiver bem detalhado, acodificação pode ser executadamecanicamente.
Ciclo de Vida Clássico
19/8/2013
8
5. Testes e Integração:
� Concentra-se:
� nos aspectos lógicos internos dosoftware, garantindo que todas asinstruções tenham sido testadas;
� nos aspectos funcionais externos, paradescobrir erros e garantir que aentrada definida produza resultadosque concordem com os esperados.
Ciclo de Vida Clássico
5. Testes e Integração:
� junção de várias unidades de programase recursos envolvidos;
� resultado deve concordar com o projetoou resultado exigido;
� Depois de testado, o software é entregueao usuário/cliente.
Ciclo de Vida Clássico
6. Manutenção e Operação:
� indubitavelmente o software deverá sofrermudanças depois que for entregue aocliente;
� causas das mudanças: erros, adaptaçãodo software para acomodar mudanças emseu ambiente externo e exigência docliente para acréscimos funcionais e dedesempenho.
Ciclo de Vida Clássico
19/8/2013
9
6. Manutenção e Operação:
o Tipos de manutenção:
� Manutenção corretiva: corrige os errosnão detectados;
� Manutenção adaptativa: adaptação daaplicação às mudanças do ambiente;
� Manutenção evolutiva: adição denovas características e qualidades dosoftware.
Ciclo de Vida Clássico
6. Manutenção:
� A manutenção de software reaplicacada uma das etapas precedentes dociclo de vida a um programa existente, enão a um novo.
Ciclo de Vida Clássico
• Vantagens:
� Minimiza o tempo de planejamento;
� Funciona bem para equipes tecnicamentemais fracas.
Ciclo de Vida Clássico
19/8/2013
10
• Principais problemas:
� Inflexível;
� Apenas a fase final produz um deliverableque não é um documento;
� Torna-se difícil voltar atrás para corrigirerros;
Ciclo de Vida Clássico
• Principais problemas:
� Projetos reais raramente seguem fluxosequencial que o modelo propõe;
� Muitas vezes é difícil para o clientedeclarar todas as exigênciasexplicitamente;
� Uma versão de trabalho não estarádisponível até um ponto tardio docronograma do projeto.
Ciclo de Vida Clássico
� Embora o Ciclo de Vida Clássicotenha fragilidades, ele ésignificativamente melhor do que umaabordagem casual ao desenvolvimentode software;
�É o mais antigo e o maisamplamente usado da Engenharia deSoftware.
CONCLUSÕES
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).