Вы находитесь на странице: 1из 65

PSP

Processo Pessoal de
Software
Engenharia da Computao
Engenharia de Software I
Prof.a. Deisymar Botega Tavares
CEFET-MG - Timteo

Cenrio atual
PSP
Engenharia da Computao - Engenharia
de Software - Deisymar Botega Tavares

Escrever programas pode ser


altamente recompensante.

No agradvel ver os mesmos


erros se repetindo ou produzir
resultados de baixa qualidade.
Ningum aprecia um produto
atrasado, de baixa qualidade e
com custos alm do previsto.
Engenharia da Computao - Engenharia
de Software - Deisymar Botega Tavares

AUMENTAR o
rigor e o tempo
consumido em
testes.
O que voc acha da
estratgia para
obter melhor
QUALIDADE?
Engenharia da Computao - Engenharia
de Software - Deisymar Botega Tavares

O que voc acha da estratgia:

AUMENTAR o rigor e o tempo consumido em


testes.

Essa tem sido uma estratgia utilizada pela


indstria em funo do aumento da
complexidade dos software e consequente
aumento do dano de um defeito.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

MAS...
Encontrar problemas de requisitos no teste
extremamente caro;
Remover erros o mais prximo da fase em
que foram inseridos bem mais barato:

Exemplo: Remover erros de codificao na


reviso de cdigo tem um custo muito menor.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

Revises e inspees minimizam o nmero


de defeitos no produto em todos os estgios.

Isto reduz tambm a quantidade e o custo do retrabalho.


Tambm ir provavelmente reduzir o custo para
encontrar um defeito .

Tudo implica em AUMENTO DA QUALIDADE.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

A forma como os desenvolvedores de software


trabalham atualmente mais se parece com arte que
com engenharia.

Cada um tem seus prprios mtodos e tcnicas de


desenvolvimento (Humphrey, 1995).

Empresas produtoras de software disciplinadas:

adotam prticas bem definidas,


seus profissionais usam estas prticas,
monitoram e se esforam para desenvolver sua
performance e;
se consideram responsveis pelo seu prprio controle
de qualidade (Humphrey, 1995).

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

E nos dias atuais??


Como voc acha que os desenvolvedores
trabalham?
E as empresas?
muito diferente???

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

10

Como voc desenvolve um software??


Como sua organizao, sua disciplina??

Faz reviso do que produz??


Tem um padro de programao.
O padro que vc usa bom?
Observa que erros comete com mais frequncia
para poder vigiar e no comet-los mais??
Sabe estimar o tempo de uma tarefa a ser
executada??

ESSAS QUESTES SO IMPORTANTES??

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

11

Situao atual:

Profissionais criam seus prprios mtodos e tcnicas de


desenvolvimento;
No h uma estrutura disciplinada e padres aceitveis;
Isso crtico porque A CONTRIBUIO DE CADA UM
MUITO IMPORTANTE;
como uma ORQUESTRA SINFNICA:

Desempenho do todo combinao cuidadosa de muitos


instrumentos:

Cada msico um participante altamente competente e disciplinado.

Pode haver destaques ocasionais MAS o resultado do conjunto


que importa.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

12

Equipes com diferentes processos ou sem


processo algum:

TIME onde uns jogam futebol, outros baseball e


outros basketball:

Adianta ter jogadores muito competentes nesse time??

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

13

um processo de conhecimento de
competncia e melhoria da qualidade
individual no desenvolvimento de software,
que ajuda o desenvolvedor a:

controlar, administrar e aperfeioar sua forma


de produzir software, oferecendo um modelo
que organiza a maneira na qual cada indivduo
executa seu trabalho.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

14

Motivao:

Projetos atuais muito grandes e complexos que


nem especialistas conseguem gerenci-los;
No h previso de uma tecnologia mgica para
resolver tal situao;
Alternativa:

Melhoria do desempenho da prtica dos engenheiros


de software.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

15

um arcabouo organizado de formulrios,


diretrizes e procedimentos para
desenvolvimento de software.
O propsito do PSP ajudar o desenvolvedor
a melhorar sua engenharia de software:

O PSP faz com que o desenvolvedor discipline


sua forma de trabalho e passe a conhec-la
melhor, entendendo sua prpria performance e
sabendo onde e como melhor-la (Humphrey,
1995).

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

16

Com o uso do PSP objetiva-se que o Engenheiro de


Software aprenda:

Como estimar precisamente, planejar, traar e re-planejar o


tempo requerido para o esforo individual no
desenvolvimento de software;
Como trabalhar de acordo com um processo bem definido;
Como definir e refinar o processo;
Como usar revises efetivamente e eficientemente para
desenvolver a qualidade do software (pela remoo imediata
dos defeitos);
Como evitar erros;
Como analisar os dados medidos para desenvolver as
estimativas e a remoo e preveno de erros;
Como identificar e obstruir as deficincias do processo.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

17

O PSP prov:

Uma estrutura para coleta de dados;


Formulrios chamados de logs (Time Recording Log e Defect
Recording Log):

usados para registrar os dados do processo;

Formulrio de planejamento resumido (Project Plan Summary)


como uma forma de registrar e informar os resultados;
Uma forma de reunir dados a respeito do tempo gasto com cada
tarefa;
Coleta de dados que permitem rastrear o nmero de defeitos
introduzidos e removidos a cada passo do processo.
O PSP permitir concluir:

Em que partes do desenvolvimento se consome mais tempo:

PORQUE ISSO IMPORTANTE???

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

18

A razo para fazer medidas no PSP


aprender como definir melhor e medir seu
processo.
Voc comea com medidas imprecisas e as
utiliza para tornar o processo e as medidas
mais precisas.
O PSP possui 2 medidas:

Tempo gasto;
Defeitos (erros) encontrados em cada fase;

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

19

Tempo gasto em cada fase:

um registro do tempo gasto em cada fase do


PSP.
O objetivo determinar:

ONDE voc gasta seu tempo e;


COMO a distribuio do tempo muda com as
mudanas no seu processo.

O registro deve ser feito em minutos.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

20

Defeitos (erros) encontrados em cada fase:

Registrar defeitos uma tarefa tanto quanto


ardilosa.
Voc deve, no mnimo, registrar cada erro da
compilao e testes.
O tempo da correo contabilizado na fase em
que voc o encontrou.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

21

Em Resumo:

Porque
importante
registrar
tempo e
erros??
Engenharia da Computao - Engenharia
de Software - Deisymar Botega Tavares

22

Para se implantar o PSP tem-se que passar por 7 nveis;


Essa implantao incremental:

Nveis superiores adiciona caractersticas aos nveis j


implantados;

Fases:

PSP0;
PSP0.1;
PSP1;
PSP1.1;
PSP2;
PSP2.1
PSP3;

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

23

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

24

Estabelece uma base (baseline) do processo


pessoal;
MAS, quando o desenvolvedor no possui
um processo regular:

Sugere-se utilizar um processo sequencial:


projeto, codificao, compilao e teste.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

25

Principal objetivo:

Fornecer uma estrutura para coletar os dados


iniciais;

Com os dados do prprio trabalho:

Tem-se uma compreenso quantitativa de cada


passo;
Pode-se melhorar a qualidade e produtividade
do seu trabalho.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

26

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

27

28

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

29

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

30

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

31

32

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

33

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

34

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

35

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

36

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

37

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

38

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

39

40

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

41

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

42

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

43

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

44

Adiciona-se:

Padronizao do cdigo,
Medida de tamanho e,
A Proposta de Melhoria do Processo (PIP
process improvement proposal).

O PIP um formulrio que fornece uma


maneira estruturada de registrar problemas,
experincias e sugestes de melhoria.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

45

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

46

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

47

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

48

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

49

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

50

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

51

Muitos erros de Codificao detectados somente no


teste. > gasto de tempo e mais $

Acrescentar etapa de reviso de cdigo. Isso


provocara uma diminuio no nmero de erros de
codificao.
< no. de erros em teste mais barato

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

52

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

53

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

54

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

55

PSP1 adiciona passos de planejamento ao


PSP0.
Ele adiciona o relatrio de testes e
estimativa de tamanho e recursos.
No PSP1.1 so introduzidos o planejamento
de tarefas e cronogramas.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

56

Razes para documentar seu trabalho:

ajuda na compreenso das relaes entre tamanho de seus


programas e o tempo que voc gasta para desenvolv-los;
ajuda voc assumir compromisso com aquilo que voc deseja
atingir;
fornece um plano ordenado para executar seu trabalho;
fornece uma estrutura para identificar a situao do seu
trabalho.

Conhecendo sua taxa de produtividade voc pode:

planejar seu trabalho com mais preciso,


assumir compromissos mais realistas e;
atingir tais compromissos de forma mais consistente.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

57

Tanto estudantes de engenharia de software


quanto com profissionais experientes mostram
que:

Em geral os erros de compilao e teste variam


entre 50 a 200 erros a cada 1000 linhas de cdigo
(KLOC).

E isto se deve basicamente falta de reviso.


Se reviso de cdigo feita, poucos erros so
encontrados nas fases de compilao e testes.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

58

O PSP2 adiciona tcnicas de reviso para


ajudar o desenvolvedor a encontrar os defeitos
no incio, onde estes so menos caros para
remover.
Voc pode fazer isto coletando e analisando os
defeitos encontrados na compilao e teste de
programas anteriores.
Com estes dados, voc pode estabelecer uma
checklist de reviso e fazer seu prprio
processo de garantia de qualidade.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

59

PSP2.1: estabelece critrios de verificao e


de finalizao do projeto e examina vrias
tcnicas de verificao e consistncia de
projeto.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

60

At a fase anterior o PSP considera um processo


cascata.
possvel trabalhar com processo em cascata para
programas pequenos, no entanto, este processo no
adequado para grandes projetos:

A estratgia do PSP3 subdividir um programa maior


em pedaos do tamanho requerido pelo PSP2.
A primeira construo um mdulo bsico ou ncleo,
que aumenta em ciclos de iterao.
Em cada iterao, faz-se um PSP2 completo, incluindo
projeto, codificao, revises, compilao e testes.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

61

O PSP um processo de auto-melhoria.


Domin-lo requer pesquisa, esforo e muito
trabalho.
Ele projetado para ajud-lo a ser um
engenheiro de software mais gabaritado.
Para adot-lo voc tem que querer melhorar a
sua forma de trabalho.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

Bom, do ponto de vista da produtividade, no h


dvida de que interrupes em excesso atrapalham e
muito, interrompendo o fluxo de raciocnio, causando
atrasos e erros, pois para voltar ao fluxo interrompido
leva um tempo, que pode ser um tempo. Mas h
controvrsias: seres humanos no so mquinas, e
certamente h interrupes positivas que ajudam a
melhorar a produtividade, como aquelas para um caf
ou uma troca de ideias com colegas quando a
produtividade est em queda e a cabea comea a
esquentar. Sem excessos e com responsabilidade, as
interrupes so necessrias. Interrupes e a queda na produtividade
Publicado por: Jose Luis Braga em: sbado, 22 maro, 2008

Documento a parte.

http://www.processdash.com/download

65

BALBINO, Marcelo. Um modelo para diagnstico e


melhoria de competncia pessoal em qualidade de
software. Belo Horizonte: UFMG, Departamento de
Cincia da Computao, 2004.
Humphrey, W. S. A Discipline for Software
Engineering. Carnegie Mellon University: AddisonWesley Publishing Company, 1995.
Humphrey, W. S. Using a Defined and Measured
Personal Software Process. IEEE Software 13(3), 7788, 1996.
PRESSMAN, R. S. Engenharia de Software. 6. ed. So
Paulo: Mc Graw Hill, 2006.

Engenharia da Computao - Engenharia


de Software - Deisymar Botega Tavares

Вам также может понравиться