Baladão sobre Variação Linguistica para o spaece.pptx
PSP - Personal Software Process
1. PSP - Personal Software Process
Produtividade e Profissionalismo - Engenharia de Software - UnB-FGA - Outubro de 2013
Alexandre Almeida Barbosa
Bryan de Holanda Fernandes
Danilo Maia Rodrigues
Dionlan Alves
Guilherme de Lima Calixto
Henrique Pereira de Jesus Santos
Jônatas Medeiros de Mendonça
Rafael de Souza Queiroz
Victor Cotrim
Victor Hugo Alves de Carvalho
Thatiany Lima de Sousa
Winstein Caldeira Martins
2. O que é?
●
●
●
●
●
●
Processo de Desenvolvimento de Software Estruturado
Projetado para o uso de Engenheiros de Software
Usado para elaboração de projetos individuais
Relação com o CMM
Data-Driven Procedure
Desenvolvido para orientar o planejamento e o
desenvolvimento de módulos de software;
● Tem como filosofia a revisão contínua.
3. Origem
● Criado por Watts Humphrey (1927 - 2010)
○ Mestrado em Física e Administração.
○ Em 1960, foi chefe do time que criou a primeira
licença de Software.
○ Por volta de 1980, fundou o Software Process
Program no Software Engineering Institute.
○ Este programa resultou no desenvolvimento do CMM
○ Posteriormente resultou no PSP e no TSP.
○ Em 2003, foi premiado com a National Medal o
Technology
4. Objetivo/Para que serve?
O Personal Software Process foi criado para promover a
excelência individual do engenheiro de software, através
de uma proposta de melhoria de processos contínua.
Visa oferecer aos engenheiros de software as habilidades
necessárias para se produzir software de qualidade,
respeitando prazos e custos.
5. Objetivo/Para que serve?
O uso dos conceitos e métodos contidos no PSP permitem
aos engenheiros de software:
●
●
●
●
Melhorar as estimativas e habilidades de planejamento;
Gerir a qualidade do trabalho;
Assumir compromissos que possam ser cumpridos;
Reduzir o número de defeitos em seus produtos.
6. Princípios/Fundamentos/Premissas
● O CMM fornece a infraestrutura organizacional para a
melhoria contínua dos processos de software
○ O PSP aplica estes mesmos conceitos ao nível
individual
● KPAs
● Possui também níveis de maturidade.
● O profissional deve conhecer sua performance para
○ Medir, acompanhar, melhorar e analisar seu
trabalho
7. Abordagem
● Analisar as grandes empresas de desenvolvimento é
identificar métodos e práticas.
● Definir quais desses métodos e práticas podem ser
utilizados no desenvolvimento de pequenos software.
8. Abordagem
● Estudar e Estruturar esses métodos e práticas de
maneira que a introdução deles no processo de
desenvolvimento seja gradual e eficaz.
● Elaborar práticas para introduzir esse métodos e
práticas.
9. Processo Pessoal
● Passos ou atividades que guiam os indivíduos no
trabalho pessoal;
● Framework para melhoria consistente da qualidade dos
resultados;
● Baseado nas experiências pessoais;
● Pode ser utilizado a partir dos princípios ou outros
processos adaptados;
10. Os processos do PSP
Processo Cíclico
PSP3
Desenvolvimento Cíclico
Qualidade Pessoal
PSP2
Revisões de Código
Revisões de Projeto
PSP2.1
Gabaritos de projeto
Planejamento Pessoal
PSP1
Estimativa de tamanho
Relatório de teste
PSP1.1
Planejamento de tarefa
Planejamento de escalonamento
Medição Pessoal
PSP0
Processo atual
Registro de tempos e defeitos
PSP0.1
Padrão de codificação
Medição de tamanho
Proposta de melhoramento do processo
11. PSP 0 - Processo de Baseline
●
Estabelecimento de prá ticas de medida e alguns formatos de relató rios
que constituirão uma base (baseline) ou fundacão sobre a qual será
̧
implantada a melhoria contı́nua pessoal
●
Medidas de Tempo:
• O tempo gasto por fase;
• Os defeitos por fase.
●
PSP0.1
12. PSP 1 - Processo de Planejamento Pessoal
●
Acrescenta Práticas de planejamento ao PSP0
○ Relatório de Testes
○ Práticas de estimativas de tamanho e recursos.
■
■
■
○
Método PROBE (PROxy-Based Estimating Method)
Regressão linear para calcular parâmetros de estimativa;
Intervalos de confiança para indicar a qualidade da estimativa de
tamanhos e tempos.
Planejamento de Tarefas e elaboração de Cronogramas. (PSP 1.1)
13. PSP 1 - Processo de Planejamento Pessoal
●
Conhecer bem a sua produtividade
○
○
○
○
○
●
Mais confiança em assumir um compromisso;
Maior regularidade na execução das tarefas;
Melhor compreensão do tamanho do programa com o tempo gasto;
Ter um melhor planejamento ao organizar o trabalho;
Acompanhar status de desenvovimento
Objetivos de Planejamento: Projetos Grandes e Indivíduos sozinhos.
14. PSP 2 - Processo de Gestão Pessoal de Qualidade
Melhorando a Qualidade
• Ajuda os desenvolvedores a administrar os defeitos produzidos por eles
(gerenciamento de defeitos)
- Identificar os defeitos no início, quando são menos caros para resolver
• Introduz revisões de projeto e código
- Assegurar qualidade aos produtos e aumento de produtividade
- Método mais eficaz de achar e corrigir defeitos
• Introduz métodos para avaliar e melhorar a qualidade das revisões
• Com os dados de defeitos reunidos previamente, os profissionais de
software constroem e usam listas de verificação para fazerem suas revisões
de projeto e código
• Revisões são mais eficientes que testes
15. PSP 2.1 - Processo de Gestão Pessoal de Qualidade
Modelos de Projeto
• Introduz as técnicas de especificação de projeto e análise em adição à
prevenção de defeitos, análise e comparação de processos
• Introduz quatro modelos de projeto
• Os profissionais de software aprendem a avaliar e melhorar a eficiência
individual
• Objetivos:
- Ajudar a reduzir o número de defeitos nos projetos
- Prover uma estrutura consistente para verificar a qualidade dos projetos
16. PSP 3 - Processo Pessoal Cíclico
●
●
Não apropriado usar PSP0 a PSP2 em grandes programas
Subdividir programas em módulos
- Tratamento conveniente
- Utilização das ferramentas dos níveis anteriores
●
Qualidade controlada em cada iteração (Defeitos)
- Concentra-se na verificação da qualidade daquela iteração
- Assuma-se que anteriores já estão garantidas ou verificadas
- Métodos usados
●
●
Inspeção
Walkthrough
17. PSP 3 - Processo Pessoal Cíclico
●
Importante ser gerado
- Relatórios
- Testes de regressão: Verificar se a inclusão de outros módulos afetam os módulos
anteriores
●
Objetivos:
- Prover a reutilização dos níveis 0 a 2 em cada módulo.
- Intuito de desenvolvimento iterativo
- Completar o ciclo de design, codificação e teste para cada módulo
18. Resultados esperados
●
●
●
●
Conhecimento de habilidades e deficiências
Entendimento e aplicação de boas práticas de software
Visão geral dos conceitos e práticas de desenvolvimento (para quem não
é desenvolvedor)
Elevar nível de maturidade, dentro da metodologia PSP (de acordo com a
necessidade)
19. Efeitos do PSP
O estudo do SEI – 1997 por Will Hayes e James W. Over.
Estudo com 298 engenheiros. Examinadas cinco dimensões de melhoria de processo pessoais do PSP:
Acurácia da estimativa de tamanho e esforço, qualidade do produto, qualidade do processo e produtividade pessoal.
Estimativa de tamanho -> Melhora da ordem de 150% (em média) na estimativa de tamanho devido ao treinamento do
PSP;
Estimativa de esforço -> Melhoria de 75% (em média) na estimativa de esforço. Tendência de subestimar foi reduzida;
Densidade de defeitos -> Defeitos encontrados em unidade de produto testado melhoraram em uma relação de 2.5
vezes (em média);
Rendimento de defeitos antes da compilação -> Defeitos encontrados antes da compilação aumentaram em 50% (em
média);
Produtividade -> Número de linhas de código por hora não alterou, mas devido à melhora na qualidade do produto,
testes de produto e de integração são executados mais rapidamente. Inserção do PSP não prejudica a produtividade.
20. Efeitos do PSP - Continuação
A análise de Humphrey – 1998
Estudo com 104 estudantes em oito grupos.
Notou-se que:
Houve melhoria na densidade de defeito;
Programadores sem experiência tiveram melhoria na produtividade, à medida
que as suas taxas de defeitos eram reduzidas;
Programadores experientes mostraram declínio na produtividade pelo fato de
terem que adicionar o overhead extra para fazer as tarefas requeridas pelo
PSP.
21. Conclusões
● Processos de software aplicados na melhoria do
indivíduo;
● Reconhecimento de habilidades e limitações;
● Maior produtividade individual = Maior produtividade da
equipe;
● Mais qualidade dos produtos gerados;
● Adaptado para equipes forma o TSP;
22. Referências Bibliográficas
JÚNIOR, José. In: Uma disciplina para a Engenharia de Software: Estudo do Personal Software Process (PSP).
2000, Acessível em: http://www.ufpel.tche.br/prg/sisbi/bibct/acervo/info/2000/Mono-JoseWilson.pdf. Acessado em 10
de outubro de 2013.
MONTEBELO, Renan Polo. Identificando dificuldades e benefícios do uso do PSP apoiado por ferramentas de
3ª. geração. Dissertação de Mestrado. Universidade Federal de São Carlos, 2008. Acessível em: http://www.bdtd.
ufscar.br/htdocs/tedeSimplificado//tde_busca/arquivo.php?codArquivo=3865. Acessado em 13 de Outubro de 2013