Upload
internet
View
121
Download
9
Embed Size (px)
Citation preview
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