personal software process uma visão geral sheila s. reinehr ssr@bsi.com.br novembro/1999

Post on 17-Apr-2015

115 Views

Category:

Documents

9 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Personal Software Process

Uma Visão Geral

Sheila S. Reinehrssr@bsi.com.brNovembro/1999

2

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

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]

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.

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

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.

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.

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

9

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

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

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

12

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

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

14

3. Baseline

Baseline Personal Process

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

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.

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

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

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:

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

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

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

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

23

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

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

25

4. Planning

Personal Planning Process

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

serve.”

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

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

28

4.1. PSP1

PROBE - PROxi Based Estimating

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

PSP1Size estimating Test Report

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

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

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

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

33

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

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

35

5. Quality

Personal Quality Management

“É melhor prevenir do que remediar.”

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

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

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

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

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

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.

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)

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

44

5.2. PSP2.1

Design Templates

Operational ScenarioFunctional SpecificationState SpecificationLogic Specification

PSP2.1Design Templates

45

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

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

47

6. Cyclic

Cyclic Personal Process

“Estratégia de Guerra:

dividir paraconquistar.”

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

49

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

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

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

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

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

54

AGENDA

1. Introdução

2. O PSP

3. Baseline

4. Planning

5. Quality

6. Cyclic

7. Conclusões

8. Referências

55

8. Referências

“A Discipline for Software Engineering“

Watts Humphrey

1995

56

8. Referências

“Introduction to The Personal Software Process“

Watts Humphrey

1997

57

8. Referências

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

58

8. Referências (leitura futura)

“Introduction to The Team Software Process“

Watts Humphrey

1999

top related