Personal Software Process Uma Visão Geral Profa. Sandra C. P. F. Fabbri e-mail sandraf@dc.ufscar.br...

Post on 17-Apr-2015

104 views 0 download

Transcript of Personal Software Process Uma Visão Geral Profa. Sandra C. P. F. Fabbri e-mail sandraf@dc.ufscar.br...

Personal Software ProcessUma Visão Geral

Profa. Sandra C. P. F. Fabbrie-mail sandraf@dc.ufscar.br

1o.semestre/1999

Problema Fundamental

• Em muitas organizações os projetosprojetos estão muitas vezes excessivamente atrasadosatrasados e excedendo em mais do que o dobro do mais do que o dobro do orçamentoorçamento previamente planejado devido principalmente a incapacidade de gerenciar a incapacidade de gerenciar o processo de softwareo processo de software.

Crise da Qualidade do Software

• Caracterizada pela falta de planejamento e falta de planejamento e de recursosde recursos para controle e garantia da qualidade dos softwares.

Alguns Modelos de Qualidade

Características Gerais desses Modelos

• Cobrem apenas aspectos de qualidade do processo, do produto e de pessoal de software em médias e grandes organizações, desconsiderando aspectos de qualidade individualqualidade individual;

• São muito exigentesexigentes;• Tendem a ser usados principalmente pelas

empresas de TI de maior porteempresas de TI de maior porte, cuja cultura sente-se confortável com métodos e processos formais;

* Segundo a Revista de Qualidade no Setor de Software Brasileito de 1995.

Características Gerais desses Modelos (cont.)

• Tendem a nãonão ser usados por empresas empresas menores de consultoria e produtoras de menores de consultoria e produtoras de softwaresoftware, que alegam agir com mais ênfase sobre a individualidade e criatividade do que sobre alguma disciplina de processo imposta externamente. No Brasil, microempresasmicroempresas (até 10 funcionários) corresponde a 40,5%40,5% e de pequeno portepequeno porte (até 50 funcionários) a 34,7%34,7%*.

Características de uma Pequena Organização de Software

• Querem muito cumprir prazos e cumprir prazos e orçamentosorçamentos, e por razões competitivas querem muitíssimo melhorar sua melhorar sua produtividade e qualidadeprodutividade e qualidade;

• Não possuem recursosNão possuem recursos para investir em tempo adicional, pessoal e planejamento exigidos por qualquer um dos modelos citados;

Características de uma Pequena Organização de Software

• O investimento inicialinvestimento inicial em termos de tempo e esforço provavelmente nãonão será apreciado pelo usuário finalusuário final.

Grande Lacuna

• Seguindo um modelo de gerenciamento de processo de software, as organizações têm alcançado melhorias significativas nos seus processos e modos de trabalho e muitas dessas organizações perceberam que para obter índices melhores dependem do talento talento individualindividual de seus funcionários.

* Segundo a Revista de Qualidade no Setor de Software Brasileito de 1995.

Grande Lacuna (cont.)• Existe um modelo de qualidademodelo de qualidade que atenda

especificamente a pequenas organizações pequenas organizações de softwarede software (75,2%)?*

• E a profissionais liberaisprofissionais liberais e pequenos pequenos terceirosterceiros?

• Um modelo de qualidade que possa ser ensinadoensinado e praticadopraticado por estudantes estudantes e recém-formados na árearecém-formados na área?

Grande Lacuna (cont.)

• Como um grande modelo de qualidadegrande modelo de qualidade poderia ser aplicado no trabalho individualtrabalho individual ou em pequenas equipes de projetopequenas equipes de projeto, onde os profissionais de software pudessem individualmente aplicar princípios do nível nível máximo de capacidade e maturidade máximo de capacidade e maturidade almejadoalmejado?

Uma Grande Promessa

• O Personal Software ProcessPersonal Software Process (PSP) do Software Engineering Institute (SEI) como recurso para melhoria e otimização do melhoria e otimização do processo individual de trabalhoprocesso individual de trabalho.

PSP

• Sugere práticas e métodos para que o próprio indivíduo consiga identificaridentificar e corrigircorrigir seus pontos fracospontos fracos;

• É uma sugestão para organizarorganizar e disciplinardisciplinar os processos individuais e não diminui nem não diminui nem restringerestringe a capacidade criativacriativa dos indivíduos.

PSP• Derivado do CMMCMM;

• O autor deste processo é o mesmo do CMM (W. HumphreyHumphrey);

• Adaptou 12 12 das 18 áreas-chave de processo CMM (KPAKPA) ao trabalho individual de profissionais de software;

• Aplica conceitos importantes de engenharia de engenharia de softwaresoftware em nível individualem nível individual para desenvolver software, e não apenas para codificar programas;

PSP

• Faz uso de um conjunto de sete etapassete etapas sequenciaissequenciais e progressivasprogressivas, onde cada uma dessas etapas possui um conjunto de roteiros, formulários e gabaritos associados;

• É apoiadoapoiado por um livro textolivro texto e um curso curso introdutóriointrodutório oferecido por esse mesmo livro (exercícios de programação e relatórios), principal veículo de aprendizado;

PSP

“À medida que os profissionais de desenvolvimento de software aprendem a medirmedir os seus trabalhos, a analisaranalisar essas medidas e a definirdefinir e atingiratingir metas de metas de melhoriamelhoria, eles passam a enxergar os benefíciosbenefícios de usar o processo definidoprocesso definido e são motivadosmotivados constantemente a utilizá-lo”.

Humphrey

Objetivos do PSP

• Demonstrar os princípiosprincípios do processo individual;

• Determinar a situaçãosituação do processo atual de software individual;

• Desenvolver um processo de planejamentoplanejamento para desenvolvimento de software;

• MedirMedir o tamanho do software como parte do processo de planejamento;

Objetivos do PSP

• Fazer uma estimativaestimativa antecipada do tamanhotamanho do software;

• Fazer uma estimativaestimativa do cronogramacronograma e dos recursosrecursos necessários para o software;

• Realizar mediçõesmedições apropriadas do processo individual;

• Fazer revisõesrevisões significativas de projetoprojeto e códigocódigo;

Objetivos do PSP

• Executar gerenciamento da qualidadegerenciamento da qualidade do software;

• Executar projetoprojeto de software de modo mais mais formalformal;

• VerificarVerificar o projeto usando métodos como máquinas de estados finitosmáquinas de estados finitos e rastreamento rastreamento de programade programa;

Objetivos do PSP• Aumentar a escalaAumentar a escala de PSP para problemas maioresproblemas maiores;• Ajudar a elaborar planos mais precisosplanos mais precisos;• Determinar as etapasetapas necessárias para melhorar a melhorar a

qualidade do produtoqualidade do produto;• Estabelecer um padrãopadrão de referência para se medir

as melhoriasmelhorias do processo pessoal; e• Determinar o impacto das mudançasimpacto das mudanças sobre a

eficiência profissionaleficiência profissional.

Medição Pessoal

Planejamento Pessoal

Qualidade Pessoal

Processo CíclicoPSP3

Desenvolvimento cíclico

PSP2Revisões de códigoRevisões de projeto

PSP2.1Gabaritos de projeto

PSP1Estimativa de tamanho

Relatório de teste

PSP1.1 Planejamento de tarefa

Planejamento de escalonamento

PSP0Processo atual

Registro de tempos e defeitos

PSP0.1Padrão de codificaçãoMedição de tamanho

Proposta de melhoramentodo processo

A Evolução do Processo PSP

PSP0

• O processo de se construir software permanece o mesmomesmo;

• Os profissionais de software aprendem a aplicar os formuláriosformulários e roteirosroteiros do PSP aos seus trabalhos pessoais, medindo temposmedindo tempos e defeitosdefeitos de desenvolvimento, defeitos estes injetadosinjetados ou removidosremovidos.

PSP0.1

• Adiciona um padrão de codificaçãopadrão de codificação, medição medição de tamanhode tamanho e o formulário de Proposta de Melhoramento do Processo (PMPPMP);

• Os profissionais de software registram no PMPPMP os problemasproblemas, os tópicos importantes para discussãodiscussão e argumentaçãoargumentação e as idéiasidéias a serem usadas futuramente, aperfeiçoando assim os seus processos pessoais.

PSP1

• Introduz o Método PROBEPROBE (PROxy-Based Estimating Method) para estimar tamanhosestimar tamanhos e tempostempos de desenvolvimento para novos programas, com base nos próprios dados individuais, utilizando regressão linearregressão linear para calcular parâmetros de estimativa e gera intervalos de confiançaintervalos de confiança para indicar a qualidade da estimativa de tamanhos e tempos.

PSP1.1

• Adiciona o escalonamentoescalonamento e planejamentoplanejamento de tarefastarefas.

PSP2

• Introduz o gerenciamento de defeitosgerenciamento de defeitos.

• Com os dados de defeitos reunidos previamente, os profissionais de software constróem e usam listas de verificaçãolistas de verificação para revisão de projetorevisão de projeto e códigocódigo (checklists).

PSP2.1

• Introduz as técnicas de especificaçãoespecificação de projetoprojeto e análiseanálise em adição à prevenção de prevenção de defeitosdefeitos, análiseanálise e comparação de comparação de processosprocessos;

• Os profissionais de software aprendem a avaliaravaliar e melhorarmelhorar a eficiência individual.

PSP3

• Os profissionais de software combinam múltiplos PSP2.1múltiplos PSP2.1 de uma forma cíclicaforma cíclica para construir módulos com milhares de linhas de código (KLOC);

• Os profissionais exploram os métodos de verificação de projetoverificação de projeto, assim como os princípiosprincípios e métodosmétodos de definição de definição de processoprocesso.

Relacionamento entrePSP e CMM

CMM

PSP

O CMM fornece um ambiente organizadoambiente organizado que os profissionaisnecessitam para fazer um trabalho de grandes proporçõesgrandes proporções e ...

... o PSP equipa os profissionais para fazerem tal trabalho de alta alta qualidadequalidade e participam ativamente no melhoramento do processomelhoramento do processoda organizaçãoda organização.

Nível 1 - Inicial

Nível 2 - RepetitívelGerenciamento de configuração de software

Controle de qualidade de softwareGerenciamento do subcontrato de software

Rastreamento/supervisão do projeto de softwarePlanejamento do processo de software

Gerenciamento dos requisitos

Nível 3 - DefinidoRevisões pelos pares

Coordenação intergrupoEngenharia de produto de software

Gerenciamento integrado de softwarePrograma de treinamento

Definição do processo da organizaçãoEnfoque no processo da organização

Nível 4 - GerenciadoGerenciamento da qualidade de softwareGerenciamento quantitativo de processo

Nível 5 - OtimizadoGerenciamento de mudança de processo

Gerenciamento de mudança de tecnologiaPrevenção de defeitosElementos do PSPElementos do PSP

no CMMno CMM

Conclusões

• O foco principal do PSP é detectardetectar e prevenirprevenir defeitosdefeitos.

• A principal medida de qualidade do PSP é o número de defeitos removidosnúmero de defeitos removidos (defeitos que foram encontrados e corrigidos antes da compilação e teste do programa) que tem como objetivo reduzirreduzir o número de defeitos defeitos encontrados na compilação e testeencontrados na compilação e teste.

Conclusões

• Não há somente ganhos de qualidadeganhos de qualidade com o PSP, mas também ganhos de produtividadeganhos de produtividade.

• O PSP ajuda a definirdefinir novos processos, a planejarplanejar uma tarefa do processo e quanto quanto tempotempo tal trabalho tipicamente levará.

• Incorporação da Disciplina “Introdução ao “Introdução ao PSP”PSP”.