engenharia de software - sol - professor | puc...
Post on 07-Nov-2018
217 Views
Preview:
TRANSCRIPT
Engenharia de SoftwareProcesso de Desenvolvimento de Software
Prof. Elias Ferreira
Elaborador por:
Prof. Edison A. M. Morais
2
Objetivo (1/1)
Conceituar PROCESSO E CICLO DE VIDA, identificar e conceituar suas FASES eMODELOS, e avaliar seu efeito prático na melhoria da QUALIDADE na produção de software.
3
Estrutura (1/1)
1. Introdução
Software
Engenharia de Software
2. Processo de Desenvolvimento de Software
3. CICLO DE VIDA de Desenvolvimento de Software
4. Conclusão
4
1. Introdução (1/3)
Software [1]
Como Construir?
Programas
+
Documentação
+
Dados
Simplesmente
“FAZER” OU
ENGENHARIA
DE SOFTWARE
www.sei.cmu.edu/
www.rspa.com/spi/
www.swebok.org
5
1. Introdução (2/3)
Engenharia de Software [1]
É a utilização de sólidos princípios de ENGENHARIA
a fim de se obter SOFTWARE
de maneira ECÔNOMICA
que seja CONFIÁVEL
e que trabalhe EFICIENTEMENTE em máquinas reais.
6
1. Introdução (3/3)
Engenharia de Software
Processo de Desenvolvimento de Software
Análise de
RequisitosProjeto
Implemen-
taçãoTeste
Implan-
tação
Atividades - Garantia de qualidade;
- Gerência de Configuração;
- Gerência de Riscos;
- Métricas;
- Estimativas;
- Revisões Técnicas Formais.
Outros Processos
Contidos no Processo Principal
E a Manutenção de Software??????
Manutenção de Software
O que é?
É a modificação de um produto de software já
entregue ao cliente, para correção de eventuais
erros, melhora em seu desempenho, ou qualquer
outro atributo, ou ainda adaptação desse produto
a um ambiente modificado. (IEEE)
Em que momento ela ocorre...
Em todos os processos...
Manutenção
Tipos de Manutenção
Corretiva
Evolutiva (ou perfectiva)
AdaptativaPodem ocorrer de duas
formas:
REATIVAPREVENTIVA
Manutenção de Software
Por que Manutenção é Importante?
Estima-se que 80% do esforço e custo
gastos no desenvolvimento de software
está relacionado à atividade de
manutenção.
10
2. Processo de Software (1/2)
É uma série de passos (um ROTEIRO).
Para criar EM TEMPO um SOFTWARE de ALTA QUALIDADE, sem estourar o ORÇAMENTO [1].
Motivação
11
2. Processo de Software (2/2)
Como “escolher“ um processo? [6] As CARACTERÍSTICAS DA APLICAÇÃO
(domínio do problema, tamanho, complexidade etc);
A TECNOLOGIA a ser adotada na sua construção (paradigma de desenvolvimento, linguagem de programação, mecanismo de persistência etc), a organização;
ONDE o produto será desenvolvido;
O PERFIL DA EQUIPE de desenvolvimento.
12
3. Ciclo de Vida (1/13)
Quando se “escolhe“ um processo [6] DEFINESE um: Modelo de Ciclo de Vida (ou modelo de
processo).
É uma representação abstrata da estrutura (“ESQUELETO“) de processo.
Inclui algumas atividades principais.
A ordem de precedência entre elas.
Opcionalmente, artefatos requeridos e produzidos.
Podem ser decompostas
em sub-atividades!
13
3. Ciclo de Vida (2/13)
Em geral, os ciclos de vida envolvem as seguintes FASES [6]: Planejamento
Análise e Especificação de Requisitos
Projeto
Implementação
Testes
Entrega e Implantação
Operação
Manutenção
14
3. Ciclo de Vida (3/13)
Planejamento
Fornece uma estrutura que possibilita ao gerente fazer estimativas iniciais de recursos, custose prazos;
O escopo do software é estabelecido;
Um plano de projeto deve ser elaborado configurando o processo a ser utilizado;
Esta atividade faz parte da gerência de projeto.
15
3. Ciclo de Vida (4/13)
Análise e Especificação de Requisitos O escopo do software é refinado;
Descreve “o que“ o software deve fazer;
Devem ser analisados o domínio do problemae o domínio da solução.
Projeto Utiliza a fase anterior como insumo;
Envolve duas grandes etapas: projeto daarquitetura do software e projeto detalhado.
16
3. Ciclo de Vida (5/13)
Implementação O projeto é traduzido para uma para uma forma
passível de execução pela máquina.
Testes Testes de unidade e documentação dos
resultados;
Integração dos componentes e teste do software como um todo;
Alguns modelos de processo prevêem a realização de testes já nas primeiras etapas.
17
3. Ciclo de Vida (6/13)
Entrega e Implantação O software deve ser instalado em ambiente
produção.
Envolve
Treinamento de usuários;
Configuração do ambiente de produção;
Conversão bases de dados (se necessário).
Principal propósito desta fase:
Realizase os Testes de Aceitação (estabelecer que o software satisfaz os requisitos dos usuários).
18
3. Ciclo de Vida (7/13)
Operação Após o teste de aceitãção, o software passa a ser
utilizado de fato em ambiente de produção.
Manutenção Adaptativas
Corretivas
Evolutivas
19
3. Ciclo de Vida (8/13)
Modelos de Ciclos de Vida [7]
3 abordagens principais
20
3. Ciclo de Vida (9/13)
Modelos Seqüenciais
Organizam o processo em uma seqüência linear de fases.
Exemplo
Waterfall (Cascata)
Quando empregar
Problema cujos requisitos são muito bem definidos
Apresenta alguns problemas
21
3. Ciclo de Vida (10/13)
Modelos Incrementais
Software produzido por incrementos (módulos);
Incrementos
Seu desenvolvimento segue o modelo sequencial;
Exigem revisão do cliente;
Vantagens Problemas
Menor custo e tempo para
entrega da 1ª versão;
Menor risco e nº de
mudanças nos req. (pelo fato
dos inc. serem menores que o
sw todo).
Requisitos instáveis ou
imcompletos geram muitas
mudanças nos incrementos;
Gerência do projeto é mais
complexa.
22
3. Ciclo de Vida (11/13)
Modelos Incrementais
Exemplo
RAD (Rapid Application Development)
Prima por um ciclo de desenvolvimento curto.
23
3. Ciclo de Vida (12/13)
Modelos Iterativos
Não se preocupa em entregar de versões operacionais desde o primeiro ciclo;
Geralmente produzem protótipos ou modelos.
Versões operacionais são produzidas à medida em que os requisitos vão ficando mais claros e estáveis;
Quando empregar Problemas muito complexos
Requisitos são muito voláteis ou que não podem ser totalmente especificados no início do desenvolvimento.
24
3. Ciclo de Vida (13/13)
Modelos Iterativos (Evolutivos ou Evolucionários)
Exemplo: Modelo Espiral, RUP
25
4. Conclusão (1/1)
Desenvolver software é um processo complexo;
Sucesso depende de pessoas, de processos e
ferramentas;
Existem vários modelos de processo:
Todos têm pontos positivos e fracos;
Todos têm fases genéricas em comum;
Devemos procurar melhorar o processo corrente
26
Referências (1/1)
[1] PRESMAN, R. S. Engenharia de Software. 5ª Edição – Rio de Janeiro: Mc Graw Hill, 2002.
[2] MPS.BR. Guia Geral MPS.BR, disponível em http://www.softex.br/mpsbr.
[3] CMMI. CMMI Web Page, disponível em http://www.sei.cmu.edu/cmmi/cmmi.html.
[4] NBR ISO/IEC 12207 – Tecnologia da Informação – Processos de Ciclo de Vida, ABNT 1998, Emenda 1: 2002, Emenda 2: 2004.
[5] ISO/IEC 15504 – Information Technology - Process Assessment, 2003/2004.
[6] FALBO, R. A. Engenharia de Software. Notas de Aula, 2005, disponível em http://www.inf.ufes.br/~falbo/.
[7] LUCENA, F. N. Processo de Desenvolvimento de Software. Notas de Aula, 2003, disponível em http://www.inf.ufg.br/~fabio/.
27
Leituras e Referências
Leitura obrigatória:
Capitulo 2 – “O Processo” da referência [1]
Leitura recomendada:
Referências [2] a [7]
top related