personal software process uma visão geral sheila s. reinehr [email protected] novembro/1999

58
Personal Software Process Uma Visão Geral Sheila S. Reinehr [email protected] Novembro/1999

Upload: internet

Post on 17-Apr-2015

115 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

Personal Software Process

Uma Visão Geral

Sheila S. [email protected]/1999

Page 2: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

2

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

Page 3: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

3

1. Introdução

Objetivo das organizações de software

“Entregar produtos de software de alta qualidade, de acordo com os

custos e o cronograma estabelecidos.”

[Humphrey97]

Page 4: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

4

1. Introdução

O que elas têm feito ?

Programas de Qualidade (TQM)CMM - The Capability Maturity ModelSPICE (ISO/IEC TR 15504), Trillium,

BootstrapNormas para Software: ISO/IEC 9126,

ISO/IEC 12207, etc.

Page 5: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

5

1. Introdução

Qual a deficiência destes métodos?

dizem “o quê” e não “como” fazer

focam a organização e não o indivíduo

Page 6: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

6

1. Introdução

PSP - Personal Software Process

É um framework para auxiliar o desenvolvedor a estimar e planejar suas tarefas, acompanhar sua performance em relação ao planejado e melhorar a qualidade dos produtos produzidos.

Page 7: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

7

1. Introdução

Objetivo do PSPauxiliar o desenvolvedor a gerenciar

seu trabalho, conhecer seus talentos e melhorar suas habilidades;

oferecer métricas e análises métricas;introduzir gradativamente técnicas de

Engenharia de Software.

Page 8: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

8

1. Introdução

Como ele é oferecido

Cursos fornecidos pelo SEI e empresas credenciadas (100-150 horas)

Disciplinas no currículo de Universidades (1 ou 2 semestres)

Auto-treinamento com o livro

Page 9: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

9

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

Page 10: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

10

2. O PSPPSP3Cyclic Development

PSP0Current ProcessTime RecordingDefect RecordingDefect Type Standard

PSP0.1Coding StandardSize MeasurementPIP

PSP1Size estimating Test Report

PSP1.1Task PlanningSchedule Planning

PSP2Code ReviewsDesign Reviews

PSP2.1Design Templates

BaselinePersonalProcess

PersonalPlanningProcess

PersonalQualityManagement

CyclicPersonalProcess

Page 11: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

11

2. O PSP

Roteiros(scripts)

Teste

Projeto

Planejamento

Codificação

Compilação

Finalização(PostMortem)

Logs

Resumo do Plano

de Projeto

dados de planejamento

dadosreaisOrientação

Logs

REQUERIMENTOS

PRODUTO FINAL

dadosde tempoe defeito

Page 12: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

12

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

Page 13: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

13

3. Baseline

PSP 0Processo AtualRegistro de TempoRegistro de DefeitosPadrão de Tipos de Defeitos

PSP 0Processo AtualRegistro de TempoRegistro de DefeitosPadrão de Tipos de Defeitos

PSP 0.1Padrão de CodificaçãoMedida de TamanhoPIP

PSP 0.1Padrão de CodificaçãoMedida de TamanhoPIP

PSP 1Estimativa de Testes Relatório de Testes

PSP 1Estimativa de Testes Relatório de Testes

PSP 1.1Planejamento de TarefasCronogramas

PSP 1.1Planejamento de TarefasCronogramas

PSP 2Revisões de CódigoRevisões de Projeto

PSP 2Revisões de CódigoRevisões de Projeto

PSP 2.1Padrões de Projeto

PSP 2.1Padrões de Projeto

ProcessoDe MediçãoPessoal

ProcessoDe MediçãoPessoal

Processo dePlanejamentoPessoal

Processo dePlanejamentoPessoal

Gestão deQualidadePessoal

Gestão deQualidadePessoal

ProcessoPessoalCíclico

ProcessoPessoalCíclico

PSP 3Desenvolvimento Cíclico

PSP 3Desenvolvimento Cíclico

Page 14: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

14

3. Baseline

Baseline Personal Process

“Se você não sabe onde está,um mapa não vai ajudá-lo.”

Page 15: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

15

3. Baseline

O Baseline Personal Process (PSP0 e PSP0.1) estabelece um ponto de partida para a compreensão do

processo de software e, consequentemente, uma base sobre

a qual promover as melhorias.

Page 16: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

16

3.1. PSP0

Elementos do PSP0

Current Process: processo atual do desenvolvedor (6 fases padrão)

Time Recording: registro de temposDefect Recording: registro de defeitosDefect Type Standard: padrão de

classificação dos defeitos

PSP0Current ProcessTime RecordingDefect RecordingDefect Type Standard

Page 17: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

17

3.1. PSP0PSP0Current ProcessTime RecordingDefect RecordingDefect Type Standard

Table C16 - Time Recording Log

Student DateInstructor Program #

Date Start Stop InterruptionTime

DeltaTime

Phase Comments

19/08 16:25 16:30 0 5 PLN

16:35 17:05 0 30 DSN

17:05 17:40 3 32 COD telefonema

17:40 17:55 0 15 CMP

17:55 18:00 0 5 TST21/08 9:25 9:30 0 5 PM24/08 15:40 15:55 0 15 PM

Page 18: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

18

3.1. PSP0PSP0Current ProcessTime RecordingDefect RecordingDefect Type StandardTable C18 - Defect Recording Log

Student DateInstructor Program #Date Number Type Inject Remove Fix Time Fix Defect19/08 001 80 DSN TST 47Description: Contador de step avançou um a mais no loop

Date Number Type Inject Remove Fix Time Fix Defect

Description:

Page 19: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

19

3.1. PSP0

Table C20 - Defect Standard Type

10 Documentation 60 Checking

20 Syntax 70 Data

30 Build, Package 80 Function

40 Assignment 90 System

50 Interface 100 Environment

PSP0Current ProcessTime RecordingDefect RecordingDefect Type Standard

Page 20: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

20

3.1. PSP0PSP0Current ProcessTime RecordingDefect RecordingDefect Type Standard

Table C14 - PSP0 Project Plan Summary

Student DateProgram Program #Instructor Language

Time in Phase (min.) Plan Actual To Date To Date % Planning 5 5 4.3 Design 30 30 25.6 Code 32 32 27.4 Compile 15 15 12.8 Test 5 5 4.3 Postmortem 30 30 25.6 Total 180 117 117 100.00

Page 21: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

21

3.1. PSP0PSP0Current ProcessTime RecordingDefect RecordingDefect Type Standard

Defects Injected Actual To Date To Date % Planning 0 0 0 Design 2 2 28.6 Code 5 5 71.4 Compile 0 0 0 Test 0 0 0 Total Development 7 7 100.0

Defects Removed Actual To Date To Date % Planning 0 0 0 Design 0 0 0 Code 0 0 0 Compile 6 6 85.7 Test 1 1 14.3 Total Development 7 7 100.0 After Development 0 0

Page 22: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

22

3.2. PSP0.1

Novos elementos do PSP0.1

Coding Standard: C++ (Humphrey), JAVA (Albuquerque), PowerBuilder (Silva)

Size Measurement: LOC novas, deletadas, modificadas e reutilizadas

PIP (Process Improvement Proposal): formulário para o registro de idéias

PSP0.1Coding StandardSize MeasurementPIP

Page 23: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

23

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

Page 24: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

24

4. PlanningPSP3Cyclic Development

PSP0Current ProcessTime RecordingDefect RecordingDefect Type Standard

PSP0.1Coding StandardSize MeasurementPIP

PSP1Size estimating Test Report

PSP1.1Task PlanningSchedule Planning

PSP2Code ReviewsDesign Reviews

PSP2.1Design Templates

BaselinePersonalProcess

PersonalPlanningProcess

PersonalQualityManagement

CyclicPersonalProcess

Page 25: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

25

4. Planning

Personal Planning Process

“Se você não sabe onde quer chegar, qualquer caminho

serve.”

Page 26: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

26

4. Planning

Personal Planning Process

introduz técnicas para o estimativa de tamanho do software e esforço (PROBE)

planejamento de tarefas e cronogramarelatório para registro dos dados de

teste

Page 27: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

27

4.1. PSP1

Novos elementos do PSP1

Size estimating: usando PROBETest Report: formulário padrão para

o registro dos testes

PSP1Size estimating Test Report

Page 28: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

28

4.1. PSP1

PROBE - PROxi Based Estimating

desenvolvido por Humphreyespecífico para o PSPbaseado em métodos populares

PSP1Size estimating Test Report

Page 29: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

29

Estime otamanho do programa

Projeto Conceitual

Calcule LOC projetadase modificadas

Calcule o intervalode previsão

Identifique Objetos

Núm. demétodos

Tipo deobjeto

Tamanhorelativo

Categoriasde reuso

4.1. PSP1

PSP1Size estimating Test Report

PROBE

Page 30: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

30

4.1. PSP1

Categoria MuitoPeq

Peq Méd Grd MuitoGrd

Cálculo 2.34 5.13 11.25 24.66 54.04Dado 2.60 4.79 8.84 16.31 30.09I/O 9.01 12.06 16.15 21.62 28.93Lógica 7.55 10.98 15.98 23.25 33.83Set-up 3.88 5.04 6.56 8.53 11.09Texto 3.75 8.00 17.07 36.41 77.66

PSP1Size estimating Test Report

PROBE - LOC projetadas ( C++)

Page 31: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

31

4.1. PSP1

PROBE - Tamanho do programa

PSP1Size estimating Test Report

avgavg

avg

avgavgii

kk

xy

xnx

ynxyx

xy

n

ii

n

i

10

21

10

1

2

1

yk = tamanho estimado do programaxk = qtde de LOC estimadas (LOC total objetos) parâmetros da regressão yi = qtde de LOC novas e modif. reais (hist.)xi = qtde de LOC estimadas (hist.)

Page 32: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

32

4.2. PSP1.1

Novos elementos do PSP1.1

Task Planning: planejamento de tempo por atividade

Schedule Planning: cronograma baseado nas atividades planejadas e no tempo disponível para o projeto

PSP1.1Task PlanningSchedule Planning

Page 33: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

33

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

Page 34: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

34

5. QualityPSP3Cyclic Development

PSP0Current ProcessTime RecordingDefect RecordingDefect Type Standard

PSP0.1Coding StandardSize MeasurementPIP

PSP1Size estimating Test Report

PSP1.1Task PlanningSchedule Planning

PSP2Code ReviewsDesign Reviews

PSP2.1Design Templates

BaselinePersonalProcess

PersonalPlanningProcess

PersonalQualityManagement

CyclicPersonalProcess

Page 35: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

35

5. Quality

Personal Quality Management

“É melhor prevenir do que remediar.”

Page 36: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

36

5. Quality

Personal Quality Management

efetua o gerenciamento dos defeitosintroduz técnicas de revisãotem seu foco no designnão ensina a fazer design, mas a

checar se está completo

Page 37: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

37

5.1. PSP2

Novos elementos do PSP2

Code Reviews: revisões de código baseadas em um checklist

Design Reviews: revisões de projeto baseadas em um checklist

PSP2Code ReviewsDesign Reviews

Page 38: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

38

5.1. PSP2

Por que fazer revisões ?

início do PSP (33% tempo em compilação e teste) e final do PSP (10% tempo em compilação e teste)

economia de tempo ($$)processo mais previsívelproduto de melhor qualidade

PSP2Code ReviewsDesign Reviews

Page 39: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

39

5.1. PSP2

Medidas das revisões

Básicas: tamanho do programa, tempo da revisão, qtde de defeitos encontrados na revisão e depois

Derivadas: % de defeitos encontrados na revisão, defeitos encontrados/KLOC, defeitos encontrados/hora de revisão, qtde de LOC revisadas/hora

PSP2Code ReviewsDesign Reviews

Page 40: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

40

5.2. PSP2.1

Novos elementos do PSP2.1

COQ (Cost of Quality)Design Templates: revisões de

projeto baseadas em um checklist

PSP2.1Design Templates

Page 41: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

41

5.2. PSP2.1PSP2.1Design Templates

Cost of Quality (COQ) - PSP

Failure Costs: tempo gasto em compilação e teste.

Appraisal Cost: tempo gasto em revisões de código e projeto.

Page 42: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

42

5.2. PSP2.1PSP2.1Design Templates

Cost of Quality (COQ) - PSP (cont.)

Failure COQ = 100 * (tempo de compilação + tempo de teste) / (tempo total de desenvolvimento)

Appraisal COQ = 100 * (tempo de revisão de projeto + tempo de revisão de código) / (tempo total de desenvolvimento)

Page 43: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

43

5.2. PSP2.1PSP2.1Design Templates

Cost of Quality (COQ) - PSP (cont.)

Total COQ = Failure COQ +Appraisal COQ

A/FR ratio = Appraisal COQ / Failure COQ

Page 44: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

44

5.2. PSP2.1

Design Templates

Operational ScenarioFunctional SpecificationState SpecificationLogic Specification

PSP2.1Design Templates

Page 45: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

45

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

Page 46: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

46

6. CyclicPSP3Cyclic Development

PSP0Current ProcessTime RecordingDefect RecordingDefect Type Standard

PSP0.1Coding StandardSize MeasurementPIP

PSP1Size estimating Test Report

PSP1.1Task PlanningSchedule Planning

PSP2Code ReviewsDesign Reviews

PSP2.1Design Templates

BaselinePersonalProcess

PersonalPlanningProcess

PersonalQualityManagement

CyclicPersonalProcess

Page 47: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

47

6. Cyclic

Cyclic Personal Process

“Estratégia de Guerra:

dividir paraconquistar.”

Page 48: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

48

6. Cyclic

Cyclic Personal Process

expande os conceitos do PSP para projetos maiores

divide um programa maior em pequenas partes

aplica o PSP2 a cada uma das partes

Page 49: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

49

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

Page 50: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

50

7. Conclusões

Resultados do PSP em cursos

estimativas de tamanho: 2.5 estimativas de esforço: 1.75 redução da qtde total de defeitos: 1.5 redução de defeitos compilação: 3.7 redução de defeitos teste: 2.5

FONTE: CMU/SEI-97-TR-001 - DEZEMBRO/1997

Page 51: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

51

7. Conclusões

Base de informações

23 turmas de PSP (academia e indústria)

298 Engenheiros de Software 300.000 linhas de código 15.000 horas 22.000 defeitos encontrados/removidos

FONTE: CMU/SEI-97-TR-001 - DEZEMBRO/1997

Page 52: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

52

7. Conclusões

Resultados do PSP na indústria

Densidade total de defeitos média da turma ao final do curso: 52/KLOC

Densidade total de defeitos média dos 6 engenheiros na prática: 22,8/KLOC

FONTE: Relatório de Experiências Embry-Riddle Aeronautical University

Page 53: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

53

7. Conclusões

Base de informações

6 engenheiros de software acompanhados após treinamento (Motorola Paging Products Group)

18 projetos 25.114 LOC 2.597 horas

FONTE: Relatório de Experiências Embry-Riddle Aeronautical University

Page 54: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

54

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

Page 55: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

55

8. Referências

“A Discipline for Software Engineering“

Watts Humphrey

1995

Page 56: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

56

8. Referências

“Introduction to The Personal Software Process“

Watts Humphrey

1997

Page 57: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

57

8. Referências

http://www.sei.cmu.edu/psp/psp.html

Page 58: Personal Software Process Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999

58

8. Referências (leitura futura)

“Introduction to The Team Software Process“

Watts Humphrey

1999