PSP – Process Software Personal

Carla Danielle Dias de Oliveira, Girlene Paulista

Faculdade de Tecnologia Alto Médio São Francisco (Fac Funam)

Pirapora – MG - Brasil

ABSTRACT: This article presents a model to aid professionals responsible for software called PSP (Personal Software Process), aiming at the quality of software developed through each process. It is based on CMM - Capability Maturity Mode, the PSP also has maturity levels, but is geared towards individual empowerment, while the CMM has the primary organizational capacity building.

 

RESUMO: Este artigo apresenta um modelo responsável pelo auxílio aos profissionais de software denominado PSP (Process Software Personal), objetivando a qualidade dos softwares desenvolvidos através de cada processo. É baseado no CMM – Capability Maturity Mode, o PSP também possui níveis de maturidade, porém é direcionado para a capacitação individual, enquanto o CMM tem como função principal a capacitação organizacional.

 

  1. 1.      INTRODUÇÃO

            Para que um software seja desenvolvido com qualidade é necessário que um conjunto de itens sejam seguidos, dentre eles os indivíduos que estão diretamente ou indiretamente ligados ao projeto.

            O profissional de software,seja um arquiteto, engenheiro, programador ou analista deve conhecer seu próprio desempenho, medir, acompanhar e analisar seu trabalho, necessita aprender com seus erros e variações da performance.

O PSP (Process Software Personal) auxilia o desenvolvedor a realizar um melhor trabalho, ensinando e recomendando técnicas para atingir melhor qualidade do projeto.

            Todos os sistemas a serem entregues visam a qualidade de modo geral, os engenheiros de software buscam evitar e corrigir todas a falhas durante o desenvolvimento, desde a análise de requisitos à manutenção, para que essas faltas não afete a qualidade do projeto são utilizados métodos, ferramentas e procedimentos que apóie os colaboradores a suprir as necessidades e alcançar resultados positivos para a conclusão do mesmo.

  1. 2.      QUALIDADE DE SOFTWARE

            A qualidade do software tem sido um termo muito abordado e evoluído nos últimos tempos, devido a dificuldade das organizações em quesitos essenciais na entrega de um produto que atenda as necessidades e expectativas dos seus clientes.           Segundo a NBR ISO 9000:2005, "qualidade é o grau no qual um conjunto de características inerentes satisfaz aos requisitos". (NBRISO 9000:2005).
As deficiências na entrega, seguimento de cronograma, não atendimento dos requisitos esperados pelos usuário são problemas que os engenheiros de software enfrentam diariamente em seus projetos. Para diminuir o risco da insatisfação dos clientes são adotadas metodologias e ferramentas para auxiliar no desenvolvimento do projeto.

            Para se obter um resultado eficiente tanto sob o ponto de vista do desenvolvedor (que o produto atenda as expectativas do cliente) quanto para o ponto de vista do usuário ( que seja entregue dentro do prazo, cumprimento dos requisitos, usabilidade e que associa-se ao valor) é necessário que a boa qualidade seja a aplicada em cada processo do desenvolvimento do software.

            Pressman (2005) deixa sugestões para que uma empresa coloque em prática a as teorias e técnicas para buscar a qualidade dos processos de desenvolvimento de software:

  1. "Definir explicitamente o termo qualidade de software, quando o mesmo é dito";(PRESSMAN, 2005, p. 193)
  2. "Criar um conjunto de atividades que irão ajudar a garantir que cada produto de trabalho da engenharia de software exiba alta qualidade"; (PRESSMAN, 2005, p. 193)
  3. "Realizar atividades de segurança da qualidade em cada projeto de software";(PRESSMAN, 2005, p. 193)
  4. "Usar métricas para desenvolver estratégias para a melhoria de processo de software e, como conseqüência, a qualidade no produto final"; (PRESSMAN, 2005, p. 193)

Existem dois pontos de vista de qualidade, a qualidade externa, que pode ser definida como a qualidade visada pelo cliente ou usuário perante o produto final, e a qualidade interna, que diz respeito à estrutura e os processos de construção do projeto.

Em 1977, James A. McCall propôs um modelo que organiza os aspectos da qualidade de software em três ângulos:

 

Figura 1. Modelo de McCall sobre qualidade

            A pirâmide apresenta cada característica que o produto necessita obter para que atenda a qualidade e possua um resultado positivo para a organização e principalmente para o cliente.

  1. 3.      DESENVOLVENDO PROCESSOS

            O processo é responsável por determinar ações e práticas a um indivíduo ou uma equipe com planejamento e gerenciamento ao decorrer da execução do serviço, especificando o prazo para entrega e abordando a próxima etapa a seguir.

            Para a produção de um software são realizadas atividades para obter-se um produto final, buscando a qualidade necessária para atender todos os requisitos. No ciclo de vida são identificadas três etapas:

ü  Definição: onde os requisitos do software são determinados, todas as suascaracterísticas são estudadas e o programa de suas atividades são elaboradas.

ü  Desenvolvimento: é realizadas todas as atividades de implementação do projeto, contando da fase de especificação àcodificação e verificação.

ü  Operação: fase que envolve a manutenção do sistema, seja para evolução ou correção do software.

O custo, planejamento e a qualidade são os três aspectos mais importantes para um projeto adquirir sucesso, assim os profissionais envolvidos no projeto alcançam seu objetivo, satisfazendo as necessidades do cliente.

Para que uma equipe atinja a qualidade que um sistema necessita, é preciso ter a previsibilidade para ter as estimativas apropriadas e compreender se está seguindo o caminho correto.

 

  1. 4.      ABORDAGEM AO PERSONAL SOFTWARE PROCESS (PSP)

            Muitas metodologias auxiliam e buscam a melhoria da qualidade do software, ajudando os engenheiros do início ao fim da construção dos projetos, procuram estabelecer o desenvolvimento administrativo e operacional.

Uma pesquisa realizada pelo IEEE (Instituteof Eletctricaland Eletronic Engineers), mostra que o fator mais importante, que mais interfere no resultado de um projeto são as pessoas.

            O Scrum, CMM, MPS.BR são exemplos são modelos que tem como objetivo alcançar a qualidade de um determinado projeto, dentre essas práticas está o PSP, que é baseado no CMM e nos conceito clássicos de qualidade, também possuindo níveis de maturidade e tem a intenção de ajudar os engenheiros de software a controlar, administrar e o modo com que ele trabalha.

            O CMM é responsável pela capacitação organizacional, o TSP pela capacitação da equipe, enquanto o PSP é caracterizado pela capacitação individual.

            Através de históricos, relatórios e tabelas, o PSP permite ao engenheiro de software conhecer suas atividades rotineiras, utilizando essa poderosa ferramenta corretamente o engenheiro poderá tornar seu trabalho ainda mais produtivo, possibilitando encontrar seus próprios limites e terá o controle total das atividades e suas mãos.

            Cada profissional envolvido no projeto tem extrema importância no mesmo, desde o colhimento dos requisitos à validação de um sistema todos são fundamentais, pois devem ser profissionais altamente competentes e disciplinados.

4.1   O PSP E SUA LÓGICA

            As organizações sejam direcionadas para o desenvolvimento de software ou em qualquer outro ramo de atividade necessita de ferramentas e métodos para obter baixo custo na produção dos seus produtos e visando a boa qualidade dos mesmos.

            As empresas estão cada vez mais competitivas e buscam incessantemente seu lugar no mercado, mas para o crescimento de uma organização é preciso que sua administração tenha a visão dos processos e poder mantê-los sob seu domínio. Para que isso ocorresse Watts S. Humphrey do Software Engineering Institute (SEI), desenvolveu um modelo que chamou atenção, um projeto para auxiliar os engenheiros de software e melhorar o controle dos processos, gerenciando e desenvolvendo as formas de estruturação da empresa.

            Como outros grandes modelos, o PSP também surgiu de princípios provados de outros campos, e sua estrutura é semelhante ao CMM – Capability Maturity Mode,criada também por Watts S. Humphrey. Assim como o CMM, no modelo PSP, existem diversos níveis com características próprias.

            O PSP apresenta lógicas importantes para exercer sua função mediante todos os históricos e fatores que influenciarão nas tomadas de decisões e na qualidade do produto desenvolvido, como os que serão vistos a seguir:

ü  Com todo o gerenciamento de seu trabalho, os profissionais de software serão capazes de obter melhor compreensão do que fazem.

ü  Com boa estruturação dos processos esses profissionais poderão avaliar e aprender através das suas próprias experiências e nas experiências dos outros.

ü  Com todo o conhecimento adquirido eles conseguirão observar quais as práticas que melhor se encaixam em suas habilidades particulares.

ü  Utilizando um conjunto padronizado ordenadamente, com práticas pessoais de alta qualidade eles serão os membros mais efetivos dos seus grupos de desenvolvimento de projeto.

 

  1. 5.      NIVEIS DE PROCESSOS PESSOAIS DE SOFTWARE

A importância da utilização de modelos de qualidade que auxiliam no trabalho dos profissionais. O PSP para uso de profissionais de Software não é uma resposta mágica para todos os problemas. Embora pode sugerir onde e como melhorar, porém, as melhorias devem ser feitas pelo próprio profissional. Vale ressaltar a mudança na organização dos profissionais que estudam um modelo de qualidade para seus produtos

Dados São coletados em formulários específicos em cada um dos níveis do PSP, constituindo os logs de registro que vão formar uma base pessoal de dados sobre os programas e sistemas desenvolvidos ate determinado instante.

Esses dados são sobre erros cometidos tanto em termos absolutos quanto em termos relativos, tempo gasto em cada fase do processo, registro de tamanho baseado em numero de linhas de código produzidas, alteradas, incluídas ou reutilizadas no software em desenvolvimento, estimativas de tempo e tamanho, etc. Medidas relativas, tais como número de erros por Kloc(mil linhas de código), tempo gasto por Kloce outras são obtidas e atualizadas ao longo da aplicação do processo. O PSP ainda propõe que o programador estabeleça um padrão de codificaçãopara organizar visualmente o texto dos programas, e com isso favorecer a sua manutenibilidade e transferência para outros programadores. Associado a esse padrão, há um conjunto de regras para contagem de linhas de código estabelecidas pelo próprio programador, que vão permitir a aquisição de dados sobre volume de código em Kloc.

O PSP fornece técnicas estatísticas para análise desses dados e geração tempo, o programador adquire competência para fazer boas estimativas de tempo de desenvolvimento e tamanho para novos projetos, fazer o planejamento para o desenvolvimento de software e avaliar custos.

O PSP é apresentado em 7 passos consecutivos e complementares.Um ou dois programas são escritos a cada passo.Dados sobre o trabalho são coletados e analisados . Estes dados são então usados para a melhoria do trabalho.

Esta implantação é feita de maneira incremental. Os níveis superiores adicionam características aos níveis já implantados. Isto minimiza o impacto da mudança no processo do engenheiro, no qual ele somente tem que adaptar novas técnicas as já existentes.

Será destacados a seguir os níveis e suas principais características:

PSP0- a base: o primeiro passo no PSP é estabelecer uma base(baseline), que inclui algumas medidas básicas e um relatório. O PSP0 deve ser o processo normal que se uma para escrever software, mas acrescidos com medições.

O PSP0 tem duas medições:

- O tempo gasto por fase, o registro do tempo que se gasta em casa parte de processo do PSP. O Objetivo é determinar onde o tempo é gasto e como esta distribuição muda à medida que o processo muda.

 - Os defeitos por fase, o registro dos dados de cada defeito (mudança do programa) localizado durante a compilação e testes.

Junta-se dados  de tempo e defeitos para obter a base para planejar os projetos futuros. Eles dão uma base contra a qual medir o desempenho, mostram onde se passa mais tempo e indicam onde se faz e se acha a maioria dos defeitos.Eles também ajudarão a ver como estas distribuições mudam à medida que o processo evolui.

PSP1 – o processo de planejamento pessoal, adiciona o planejamento de passos ao PSP0.O incremento inicial adiciona um relatório de testes e estimativa de recursos e tamanho.

PSP1 É planejado para estabelecer um procedimento ordenado e repetível para estimativas de tamanho de desenvolvimento de software. À medida que este processo é usado para calcular o desenvolvimento de programas, será construídas uma base crescente de dados estimados que devem ajudar a fazer estimativas de tamanho progressivamente mais precisas.

PSP1.1 -  São introduzidos planejamento de horário e tarefas.

- Fazer planos de recursos e horário.

- Monitorar o desempenho pessoal contra estes planos, e

- Julgar datas prováveis de conclusão de projetos.

PSP2-O processo de administração da qualidade pessoal,para administrar os seus defeitos, o desenvolvedor tem que saber quantos faz. O PSP2 acrescenta técnicas de revisão ao PSP1, para ajudar a achá-los no início, quando forem menos caros para resolver. Faz-se isto juntando e analisando os defeitos achados na compilação e nos testes dos primeiros programas.Com estes dados,o desenvolvedor pode estabelecer listas de conferências de revisão e fazer suas próprias avaliações de qualidade de processo.

PSP2.1 – Estabelece critérios de perfeição de projetos e examina várias técnicas de verificação e consistência de projeto.

PSP3 – A estratégiadesse é subdividir um programa maior em pedaços do tamanho requerido pelo PSP2. A primeira construção é um modo básico ou núcleo, que aumenta em ciclos de iteração. Em casa repetição, faz-se um PSP2 completo, incluindo projeto, compilação e testes. Assim, o PSP3 é satisfatório para programas de até mil LOC(KLOC). O processo PSP3 cíclico efetivamente escala programasgrandes contanto que casa incremento sucessivo seja de alta qualidade.

A qualidade do processo pessoal de Software, funciona como treinamento parao CMMI. Muito útil se empregado em conjunto com o CMMI.

Tem mostrado resultados significativos:

  - Aumento de 30% na produtividade

  -Precisão em estimativa aumentada para +/- 10%

  - Injeção de defeitos no desenvolvimento reduzida em 60%.

  -Defeitos encontrados no teste de unidade reduzido em 75%.

 

  1. 6.      CONCLUSÃO

A utilização de técnicas para reutilizar informações em novos projetos é facilitada quando novos projetos estimados tiverem características em comuns com as já armazenadas na base histórica.

Quando as pessoas envolvidas tiveram o conhecimento das métricas e da sua importância desenvolvida, onde a preparação individual é fundamental, as estimativas passaram a estar mais próximas do real com o reuso deste tipo de informações.

O PSP fornece uma estrutura conceitual para a melhoria da gestão e do desenvolvimento de produtos de software de uma forma consistente e disciplinada. Ele não garante que os produtos de software serão construídos com sucesso ou que todos os problemas de desenvolvimento de software serão isolados e resolvidos adequadamente.

Contudo, a metodologia PSP para processos de desenvolvimento de software é a proposta para viabilizar a identificação da vulnerabilidade em processo de controle da produção de software. Depende, porém, do nível de consciência da equipe e da capacidade de treinamento que a empresa aplica na transmissão dos conhecimentos necessários para que se possa operacionalizar a sua maturidade de operação.

  1. 7.      REFERÊNCIA

Acesso em:

<http://www.devmedia.com.br/modelos-de-processo-pessoal-revista-engenharia-de-software-magazine-44/23264>

No dia 18 de março de 2013 às 13:12

Acesso em:

<http://www.slideshare.net/ikondrasovas/processo-individual-pessoal-de-software>

No dia 20 de março de 2013 às 15:27

Acesso em:

<ftp://www.ufv.br/dpi/mestrado/PSP/psp4.doc>

No dia 20 de março de 2013 às 15:32

Acesso em:

<http://www.macoratti.net/proc_sw1.htm>

No dia 20 de março de 2013 às 16:00

Acesso em:

<http://www.ufpel.tche.br/prg/sisbi/bibct/acervo/info/2000/Mono-JoseWilson.pdf>

No dia 21 de março de 2013 às 17:02

Acesso em:

<http://www.ic.unicamp.br/~cortes/mc726/cap6.pdf>

No dia 23 de março de 2013 às 18:30