MÉTRICAS EM PROJETOS DE SOFTWARE: CONTEXTUALIZAÇÃO E IMPLANTAÇÃO
MÉTRICAS EM PROJETOS DE SOFTWARE: CONTEXTUALIZAÇÃO E IMPLANTAÇÃO Setembrino Lusa
Copyright © Setembrino Lusa Todos os direitos reservados. Proibida a reprodução total ou parcial, de qualquer forma e por qualquer meio mecânico ou eletrônico, inclusive através de fotocópias e de gravações, sem a expressa permissão do autor. Todo o conteúdo desta obra é de inteira responsabilidade do autor. Editora Schoba Rua Melvin Jones, 223 - Vila Roma - Salto - São Paulo - Brasil CEP 13321-441 Fone/Fax: +55 (11) 4029.0326 | 4021.9545 E-mail: atendimento@editoraschoba.com.br www.editoraschoba.com.br CIP-Brasil. Catalogação-na-Fonte Sindicato Nacional dos Editores de Livros, RJ L989m Lusa, Setembrino Métricas em projetos de software : Contextualização e Implantação - COCOMO II / Linhas de Código / Análise de Pontos por Função / Análise de Pontos por Caso de Uso / User Stories / Setembrino Lusa. - Salto, SP : Schoba, 2013. 124 p. : il. ; 21 cm Inclui bibliografia ISBN 978-85-8013-231-1 1. Software - Desenvolvimento. I. Título. 13-0590. CDD: 005.1 CDU: 004.41 29.01.13 30.01.13 042411
AGRADECIMENTOS
A meus pais e irm達s pelo apoio incondicional em todas as horas.
“Não é suficiente dar o melhor de si; você precisa saber o que fazer, e então dar o melhor de si”. W. Edwards Demming
RESUMO
A necessidade de medição, seja ela qual for, é inerente à sobrevivência de qualquer organização; em projetos de software não é diferente. Medidas que indiquem a situação do projeto no decorrer do tempo garantem maior poder de tomada de decisão, além de maior controle do projeto como um todo. Previsões assertivas, além de aumentar a qualidade e a produtividade, fornecem uma ampla visão para a gestão. Algumas das mais conhecidas e utilizadas técnicas de medição de software são apresentadas neste trabalho. Métricas que, quando bem aplicadas, fornecem uma ótima manutenibilidade e segurança nas tomadas de decisão, principalmente naquelas em nível de gerência. Diversas técnicas surgiram com o intuito de sanar a necessidade de controle e o aumento da qualidade nos projetos de software, dentre elas a Análise de Pontos por Função (APF), cuja intenção é fornecer um volume de informações relativas ao tamanho funcional do projeto. O Cost Constructive Model (CoCoMo II), que, calibrado com dados históricos, consegue estimar custos, prazos e esforço, mas depende de um levantamento prévio de estimativas de tamanho funcional. Pontos por Caso de Uso (PCU), uma técnica voltada aos novos paradigmas da orien13
Setembrino Lusa
tação a objetos, cuja finalidade é também, como APF, demonstrar estimativas de tamanho funcional de projetos de software. E ainda Lines Of Code (LOC), para medição de tamanho de software em linhas de código. Neste trabalho é apresentado um caso de implantação utilizando as técnicas AFP e PCU, demostrando, com base no Rational Unified Process (RUP), a viabilidade, a necessidade e a importância de medir e estimar projetos de software. São identificadas, ainda, as ações mais relevantes a serem tomadas no caso de desvios na proposta do projeto, tornando, dessa forma, as iterações mais produtivas, planejáveis e obtendo maior controle do projeto, o que consequentemente agrega valor e qualidade ao produto final. Palavras-chave: Métricas, estimativas de software, qualidade de software.
14
LISTA DE FIGURAS
1. Arquitetura RUP.............................................. 44 2. Visão Geral das Funções de uma Aplicação............................................ 58 3. Procedimento de Contagem APF............... 60 4. Scrum............................................................... 80 5. Relacionamento do Processo de Gestão de Estimativa de Tamanho com os Processos de Desenvolvimento e Gestão de Projetos de Software.......................................... 93
LISTA DE TABELAS
1. Sete Categorias de Métricas Básicas............ 51 2. Pontos de Função – Características Gerais do Sistema................................................. 64 3. Pontos de Caso de Uso – Peso dos Atores... 66 4. Pontos de Caso de Uso – Peso dos Casos de Uso......................................................... 67 5. Pontos de Caso de Uso – Complexidade Técnica.................................................................. 69 6. Pontos de Caso de Uso – Complexidade Ambiental.............................................................. 70 7. Métricas para Produtividade dos Processos de Software – 2001............................................... 86 8. Métricas para Produtividade dos Processos de Software – 2005............................................... 87 9. Passos do Processo de Contagem de PCU....88 10. Ações a serem tomadas quando o cronograma é impraticável............................. 102 11. Ações a serem tomadas quando o cronograma está dentro do prazo................. 103 12. Ações a serem tomadas pelos gerentes quando o cronograma está atrasado........... 105
LISTA DE ABREVIATURAS
RUP
Rational Unified Process
ES
Engenharia de Software
APF
Análise de Pontos por Função
PCU
Pontos por Caso de Uso
LOC
Lines of Code
MER
Modelo de Entidade e Relacionamento
SUMÁRIO
1. INTRODUÇÃO............................................ 29 1.1 Organização do livro..............................34 2. ASPECTOS TEÓRICOS ................................ 35 2.1 Engenharia de Software............................37 2.2 Processo de Desenvolvimento de Software...........................................................38 3. Métricas e Estimativas de Software................................................... 47 3.1 Medição do Tamanho do Software.....51 3.2 Medição do Tamanho Funcional do Software..........................................................54 4. Metodologias ágeis e o Scrum................ 77 4.1 O framework Scrum em 30 segundos ��79 4.2 User Stories.......................................................81 5. ESTUDO DE CASO...................................... 83 5.1 CONTEXTUALIZAÇÃO DO SETOR.....................85 5.2 CASO DE IMPLANTAÇÃO.................................87 5.3 A RELAÇÃO ENTRE A APF E PCU.....................94 6. ANÁLISE DOS RESULTADOS........................ 97 6.1 IDENTIFICANDO AS AÇÕES GERENCIAIS........99
7. CONSIDERAÇÕES.................................... 107 7.1 Contribuições...............................................110 7.2 TRABALHOS FUTUROS......................................111 8. REFERÊNCIAS........................................... 113
1. INTRODUÇÃO
A vontade ou necessidade de medir, contar e calcular remonta desde antes da linguagem falada na humanidade e não é de hoje também que a vontade de controlar as coisas e situações ao seu redor se mostra latente nos homens. Em projetos de desenvolvimento de software este cenário tem se mostrado uma atitude não apenas comum como também necessária em qualquer organização, seja ela publica, privada ou mesmo no desenvolvimento empírico por iniciantes e entusiastas; todos anseiam em saber o custo, prazo e esforço estimado para a conclusão de qualquer projeto antes mesmo de se aventurar, seja na avaliação da viabilidade financeira ou na obtenção das probabilidades de finalizar o projeto no momento certo. O tamanho e a complexidade dos produtos de software têm aumentado consideravelmente, desencadeando um número elevado de problemas nas fases de seu desenvolvimento. O principal problema na gerência e na arquitetura de projetos de software é estimar com acurácia os esforços, custos e prazos de entrega, como afirma Pressman (1995). Sem essas informações é impossível definir estimativas de custo razoáveis (e pre33
34
35