Engenharia de Software - SOL - Professor | PUC...

27
Engenharia de Software Processo de Desenvolvimento de Software Prof. Elias Ferreira Elaborador por: Prof. Edison A. M. Morais

Transcript of Engenharia de Software - SOL - Professor | PUC...

Page 1: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

Engenharia de SoftwareProcesso de Desenvolvimento de Software

Prof. Elias Ferreira

Elaborador por:

Prof. Edison A. M. Morais

Page 2: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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.

Page 3: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia 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

Page 4: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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

Page 5: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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.

Page 6: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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??????

Page 7: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia 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...

Page 8: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

Manutenção

Tipos de Manutenção

Corretiva

Evolutiva (ou perfectiva)

AdaptativaPodem ocorrer de duas

formas:

REATIVAPREVENTIVA

Page 9: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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.

Page 10: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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

Page 11: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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.

Page 12: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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!

Page 13: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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

Page 14: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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.

Page 15: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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.

Page 16: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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.

Page 17: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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).

Page 18: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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

Page 19: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

19

3. Ciclo de Vida (8/13)

Modelos de Ciclos de Vida [7]

3 abordagens principais

Page 20: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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

Page 21: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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.

Page 22: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

22

3. Ciclo de Vida (11/13)

Modelos Incrementais

Exemplo

RAD (Rapid Application Development)

Prima por um ciclo de desenvolvimento curto.

Page 23: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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.

Page 24: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

24

3. Ciclo de Vida (13/13)

Modelos Iterativos (Evolutivos ou Evolucionários)

Exemplo: Modelo Espiral, RUP

Page 25: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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

Page 26: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

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/.

Page 27: Engenharia de Software - SOL - Professor | PUC Goiásprofessor.pucgoias.edu.br/.../02-Aula_Processo_de_Software.pdf · Modelos de Ciclos de Vida [7] 3 ... R. S. Engenharia de Software.

27

Leituras e Referências

Leitura obrigatória:

Capitulo 2 – “O Processo” da referência [1]

Leitura recomendada:

Referências [2] a [7]