PSP e métodos ágeis na melhoria da qualidade em produção de software: um estudo de caso

Small and medium sized software development organizations face challenges to develop quality software. Costs to adhere to international quality standards are very high, making it almost impossible to adopt and acquire maturity evaluations based on those standards. One plausible and less expensive wa...

Nível de Acesso:openAccess
Publication Date:2006
Main Author: Silva, Renato Afonso Cota lattes
Orientador/a: Braga, José Luis lattes
Banca: Oliveira, Alcione de Paiva lattes, Silva, Carlos Henrique Osório lattes, Maldonado, José Carlos lattes, Rocha, Mauro Nacif lattes
Format: Dissertação
Language:por
Published: Universidade Federal de Viçosa
Programa: Mestrado em Ciência da Computação
Department: Metodologias e técnicas da Computação; Sistemas de Computação
Assuntos em Português:
Assuntos em Inglês:
Áreas de Conhecimento:
Online Access:http://locus.ufv.br/handle/123456789/2596
Citação:SILVA, Renato Afonso Cota. Improving the quality of the software production using PSP and agile methods: a case study. 2006. 146 f. Dissertação (Mestrado em Metodologias e técnicas da Computação; Sistemas de Computação) - Universidade Federal de Viçosa, Viçosa, 2006.
Resumo Português:Há vários problemas com a Engenharia de Software que é realizada atualmente, principalmente em se tratando de pequenas e médias empresas, que não possuem capital suficiente para implantar grandes processos de produção de software e menos ainda para se submeterem à avaliação de maturidade segundo padrões internacionais. Isso reforça a idéia de que é necessário investir em processos de capacitação pessoais. Parte dos problemas com a qualidade final de produtos de software derivam do fato de se confiar ou delegar aos testes finais a responsabilidade pela qualidade. Conforme comprovado na literatura, detectar e remover defeitos a partir dos testes é mais caro, não efetivo e imprevisível. A forma mais efetiva de gerenciar a qualidade do software é focar na remoção de defeitos antes de eles serem inseridos, se possível no mesmo passo de desenvolvimento em que essa inserção aconteceria. Um dos grandes problemas da qualidade do software é o não entendimento dos requisitos de usuário por parte dos programadores, os quais na codificação desenvolvem códigos que não satisfazem aos interesses dos usuários a esses requisitos. Neste trabalho descreve-se a obtenção de um processo híbrido para a produção de software de qualidade, aplicável no nível pessoal, a partir da interseção de dois processos de origens diferentes, mas que têm como foco principal o desenvolvimento de software no nível de competência individual. São eles o PSP (Personal Software Process ), que é baseado nos Métodos Dirigidos por Planejamento, e o TDD (Test Driven Development ) que é baseado nos Métodos Ágeis, sendo que os dois são aplicáveis ao nível individual ou dos programadores. A combinação desses dois processos gerou um processo híbrido, chamado de PSPm. A principal característica do PSPm é a adição da técnica test-first oriunda do TDD na fase de projeto do PSP. Ou seja, os programadores escrevem os testes na fase de projeto e não na fase de testes, como propõe o PSP original. O PSPm foi aplicado e testado em sala de aula por alunos do curso de Ciência da Computação da Universidade Federal de Viçosa que cursavam a disciplina Engenharia de Software I. Os resultados da aplicação do PSPm foi comparado aos resultados de aplicação do PSP que havia sido aplicado em turma semelhante no ano anterior. Resultados da análise desenvolvida indicam que o uso do PSPm possibilitou a injeção de um menor número médio de erros na fase de projeto e resultou em um menor tempo médio para se testar o software. Com o intuito de validar os resultados, foi utilizada a técnica estatística de Testes por Reamostragem conhecida como bootstrap aplicada aos dados coletados. Ficou evidenciada uma redução na quantidade de defeitos no projeto com a utilização do PSPm.
Resumo inglês:Small and medium sized software development organizations face challenges to develop quality software. Costs to adhere to international quality standards are very high, making it almost impossible to adopt and acquire maturity evaluations based on those standards. One plausible and less expensive way to increase product quality is investing in personal software development processes. Part of quality problems are a direct consequence of relying too much on tests as a quality assurance mechanism. That makes defect detection and removing an expensive, non effective and unpredictable step in software development. Previous results from the literature show that tests must be associated with error prevention procedures in early development steps, blocking error propagation to later steps where their removal is much more expensive and prone to more error insertion. Requirements elicitation, analysis and understanding seem to be a crucial point in the whole process. This is an error prone step, particularly when requirements have to be extracted from human actors that communicate with analysts and software engineers using everyday language. This work describes the design of a hybrid personal process to be used in quality software production. It is derived from a tiny intersection of PSP (Personal Software Process) that is an instance of Plan Based Methods, with TDD (Test Driven Development) that is an instance of Agile Methods and is also focused on the personal level. The hybrid process so obtained is called PSPm, where the m stands for modified. It was obtained by introducing the test-first technique from TDD, in the PSP Design phase. This means programmers should design tests before coding even small slices of software, and they should use those test cases in testing software after they are coded. PSPm was tested by Computer Science students enrolled in Software Engineering I classes at Universidade Federal de Viçosa, in the years 2004 and 2005. Data gathered in 2005 were then compared to data gathered in 2004 in the same discipline. Results showed that using PSPm lead to a smaller error injection rate in PSP Design phase, thus leading to a smaller testing mean time. Data were processed and analyzed using the Resampling Tests bootstrap technique, applied to the data gathered in both years.