Vol. 38 (Nº 53) Ano 2017. Pág. 27
Angelica Toffano Seidel CALAZANS 1; Elcio Gomes Pereira MARTINS 2; Eloisa Toffano Seidel MASSON 3; Roberto Gonçalves TEIXEIRA 4
Recebido: 04/07/2017 • Aprovado: 01/08/2017
RESUMO: Foi customizada uma métrica funcional de tamanho de software com foco na redução do tempo e esforço do processo de contagem de manutenção. Realizou-se pesquisa bibliográfica, documental e empírica por meio da análise de 10.405 contagens de pontos de função - APF (tamanho menor 50 PF) de uma organização brasileira. Com base nos padrões, propos-se a Contagem Ágil, e o resultado foi promissor (0,93% considerando a contagem detalhada). Realizaram-se comparações com outros modelos cujos resultados ficaram aquem aos da Contagem Ágil. |
ABSTRACT: A functional software size metric was customized with focus on reducing the time and effort of the maintenance count process. A bibliographic, documentary and empirical research was carried out by means of the analysis of 10,405 counts of function points - APF (size up to 50 PF) of a Brazilian organization. Based on standards, the Agile Count was proposed, and the result was promising (0.93% considering the detailed count). Comparisons were made with other models whose results were below those of Agile Count. |
Um dos desafios da engenharia de software é o dimensionamento confiável do tamanho do software, tanto para o novo desenvolvimento como para manutenção. Várias pesquisas indicam que a manutenção de software consome de 60% a 80% do custo total da vida. Essas pesquisas também relatam que os custos de manutenção são em grande parte devido a melhorias (geralmente 75% - 80%), em vez de correções (Mohammad & Vinodani, 2014). Apesar desses números, a área de estimativa de manutenção de software tem recebido menos atenção em relação à do novo desenvolvimento (Mohammad & Vinodani, 2014).
Várias abordagens para a medição do tamanho do software foram desenvolvidas e estão sendo aplicadas em diferentes fases do ciclo de vida do desenvolvimento nas últimas três décadas. O tamanho de uma manutenção, ou de um software, pode ser definido considerando os produtos de trabalho (número de programas, linhas de código, objetos, etc.), pode ser definido em relação à funcionalidade entregue ao cliente (transações de entrada, relatórios etc), entre outras possibilidades. Todas essas abordagens possuem vantagens e desvantagens.
As métricas funcionais possuem a vantagem de serem aplicáveis no início do ciclo de vida do software. E a necessidade de estimativas precisas de tamanho e predições de esforço para projetos é uma das questões importantes na indústria de software. A importância da medição de tamanho do software é reconhecida por modelos como CMMI (SEI, 2010) e MPS-BR (SOFTEX, 2016). Assim, as abordagens de medição do tamanho tanto de novos desenvolvimentos como de manutenções com base no tamanho funcional do software têm sido muito estudadas e alguns modelos funcionais já são reconhecidos como padrões (ISO/IEC, 2002), (ISO/IEC, 2009), (ISO/IEC, 2011), (ISO/IEC, 2005).
As métricas de tamanho funcional são utilizadas para medir o software na perspectiva dos usuários finais e considerando a quantidade de funcionalidades a serem entregues. Estas medidas podem ser utilizadas para estimativas de projetos, avaliação da qualidade, avaliação comparativa, gerenciamento de produtividade, gerenciamento de contratos de terceirização, entre outros aspectos (Vazquez, Simoes, & Albert, 2013).
Para Raju & Krishnegowda (2013), algumas das desvantagens dessas métricas são: requerer pessoas com experiência para realizar esta atividade e um processo de revisão dessas contagens; o processo de contagem consome tempo, esforço e custos (Lavazza, 2015) e o processo de contagem é baseado em documentação, que deve conter determinados requisitos para ser realizado de forma correta e consistente.
As métricas funcionais mais referenciadas, segundo (Calazans, Paldes, & Mariano, 2015), são a COSMIC- Common Software Measurement International Consortium e a APF – Análise de Pontos de função. Na visão de Garmus (2001), a APF é um dos métodos mais utilizados pela indústria. Segundo Jones (2013), a APF pode ser considerada uma métrica de software universal. O governo do Brasil indica a utilização da APF em todos os seus contratos de software. Além disso, os governos do Korea do Sul e da Itália podem seguir por esse caminho em breve (Jones, 2013).
É interessante ressaltar que, adaptações da APF, como por exemplo as propostas da NESMA, também são referenciadas (Morrow, Wilkie, & McChesney, 2014), (Wang, Li, & Yu, 2008). No Brasil, grande parte das instituições públicas que utiliza a APF, usa a proposta estimada da NESMA, no início do processo de desenvolvimento ou manutenção e, posteriormente, quando todos os requisitos estão conhecidos e bem definidos aplica a proposta da APF, para ratificar ou retificar a contagem estimada inicialmente realizada. Alguns exemplos dessa forma de contratação: (Brasil - Advocacia Geral da União, 2014), (Badesul – Agencia de Fomento -RS, 2015), (Brasil – Estado de Minas Gerais, 2014), (Brasil- Ministerio Público do trabalho, 2015), (Brasil- Caixa Econômica Federal, 2012).
Considerando as vantagens e desvantagens descritas e, embora as métricas funcionais, especificamente a APF e a proposta estimativa da NESMA, possam ser consideradas modelos bem fundamentados, pode-se ainda analisar e identificar oportunidades de melhorias nesses modelos por meio de estudos de caso comparativos, ampliando assim a aplicabilidade e minimizando as desvantagens desses modelos.
Assim, a presente pesquisa objetiva responder as seguintes questões: é possível adequar um modelo funcional de mensuração para projetos de manutenção de forma a reduzir o tempo, custo e esforço do processo de contagem? Os resultados obtidos em termos de medidas estarão compatíveis com a métrica original utilizada?
A relevância do trabalho está em contribuir para aprimorar uma métrica de mensuração funcional de tamanho com foco na manutenção, de forma a reduzir o esforço e custo da contagem. Tanto para a indústria como para a academia essa proposta e avaliação são importantes. Para a indústria como forma de reduzir custos e esforços de contagem para manutenção e, para a academia na busca sistemática de alternativas para a estimativa do tamanho da manutenção do produto de software.
Para responder as questões propostas, o objetivo da investigação é customizar uma métrica funcional de tamanho de software com foco na redução do tempo, esforço e custo do processo de contagem de projetos de manutenção e experimentar e validar essa nova abordagem em contagens da indústria. Para isso, na seção 1 detalham-se as métricas/propostas relacionadas a esse assunto. Na seção 2 explica-se a metodologia utilizada na pesquisa e a abordagem proposta, enquanto que a seção 3 são apresentados resultados e análise. Na seção 4, são sintetizadas as conclusões da pesquisa.
A Análise por Pontos de Função (APF) mede o tamanho do software pela quantificação de suas funcionalidades, baseadas no projeto lógico ou a partir do modelo de dados segundo a visão e os requisitos do usuário final. Atualmente a APF é reconhecida como padrão ISO/IEC 20926 (2009).
As principais características da APF são: ser independente da tecnologia, ser aplicável desde o início do sistema, apoiar a análise de produtividade e qualidade e estimar o tamanho do software com uma unidade de medida padrão.
A APF considera as funções de dados, divididas em Arquivos Lógicos Internos (ALIs - que são grupos lógicos de dados mantidos dentro da fronteira da aplicação) e Arquivos de Interface Externa (AIEs – arquivos somente referenciados pela aplicação) e as funções transacionais, divididas em Entradas Externas (EEs), Saídas Externas (SEs) e Consultas Externas (CEs).
Cada função de dado ou transacional terá um peso diferente dependente de sua complexidade. Diversas tabelas baseadas na quantidade de elementos de dados, de registros e de arquivos referenciados são utilizadas para determinar a complexidade de cada função em Baixa, Média ou Alta. A tabela 1 apresenta o quantitativo de PF por complexidade de cada função de dados e transação e o percentual de variação entre as complexidades.
Tabela 1
Quantidade de PF por tipo de função e complexidade e percentual de variação
de tamanho considerando complexidade – Fonte (Herron, 2006)
Tipo de função |
Baixa |
Variação |
Media |
Variação |
Alta |
ALI |
7 PF |
42% |
10 PF |
-33% |
15 PF |
AIE |
5 PF |
40% |
7 PF |
-30% |
10 PF |
EE |
3 PF |
33% |
4 PF |
-33% |
6 PF |
SE |
4 PF |
25% |
5 PF |
-28% |
7 PF |
CE |
3 PF |
33% |
4 PF |
-33% |
6 PF |
O resultado da contagem de funções de dados e transacionais é uma medida chamada de pontos de função não ajustados (NoPF não ajustado), pois não considera detalhes que afetam o produto e sua construção. O ajuste na mensuração é efetuado através do Fator de Ajuste, conjunto de 14 características (comunicação de dados, processamento distribuído, performance, utilização de equipamento, volume de transações, etc.) que influenciarão a complexidade do software.
Segundo Jones (2013), a métrica possui pontos fortes, tais como: a APF possuem projetos mais medidos do que todas as outras métricas combinadas e centenas de contadores de APF certificados pelo IFPUG estão disponíveis na maioria dos países, A APF está definida como padrão da maioria das ferramentas de estimativa paramétrica, como KnowledgePlan, SEER e Software Risk Master. Além disso, Heeringen (2015) cita algumas vantagens das métricas funcionais que são: a medição do tamanho é realizada de forma objetiva, ou seja, dois medidores certificados chegam a aproximadamente a mesma medida, considerando o mesmo produto de software o que torna a medida repetível e verificável.
Seriam considerados pontos fracos da APF, o processo lento de contar utilizando a APF. As velocidades de contagem para pontos de função levam em média talvez 500 pontos de função por dia (Jones, 2013). Já Herron (2006) apresenta a Tabela 2 com o tempo médio em horas para realizar as contagens detalhadas.
Tabela 2
Produtividade média em horas para contagem da APF detalhada,
considerando o tamanho em PF – Fonte: Herron ( 2006)
Tamanho |
Esforço em horas para APF detalhada |
<50 PF |
2,5 |
50 a 150 PF |
4,3 |
150 a 300 PF |
8,8 |
300 a 650 PF |
13,9 |
650 a 1000 PF |
20,8 |
O estudo de Morris (2004) mostra que as produtividades médias são piores à medida que se aplicam técnicas mais detalhadas de contagem. Segundo esse autor, a produtividade para uma contagem interligada e anotada seria de 200 PF/dia, enquanto que para uma contagem não detalhada seria de 750 PF/dia.
Considerando outros pontos a melhorar com relação a APF, Freitas Junior, Fantinato, & Sun, (2015) fizeram uma revisão sistemática sobre APF. As melhorias propostas nos 18 estudos selecionados relacionados a APF, foram analisadas e agrupadas em três categorias: 1) "pesos e Complexidades "determinadas para cada função de dados e transação; 2) "independência tecnológica" e 3) calcular o "ajuste Tamanho funcional ".
A NESMA (Netherlands Software Metrics Users Association) é uma associação de usuários de métricas que tem proposto alternativas de contagem, utilizando a APF, de forma a possibilitar medir um produto de software no início do processo, mesmo não possuindo todas as informações sobre as funções de dados, transações e características gerais de sistema definidas (Vazquez, Simoes & Albert, 2013). A NESMA propõe contagens Indicativas e Estimadas, além de ter uma proposta completa. O próprio IFPUG sugere a utilização abordagens Indicativas e Estimadas para obter a contagem no início do processo (Timp, 2015).
A Contagem Estimada, proposta pela NESMA (ISO/IEC, 2005), possibilita a estimativa de tamanho a partir da identificação de todas as funcionalidades do software. Utilizando a classificação de complexidades do IFPUG, aplica a complexidade baixa para cada função de dados (ALI – 7 PF e AIE – 5 PF), e a complexidade média para cada função de transação (EE – 4 PF, SE – 5 PF e CE – 4 PF).
Esta abordagem não prevê a aplicação das 14 Características Gerais de Sistema para a obtenção do fator de ajuste, ou seja, o Fator de ajuste recebe valor de 1.
Existem muitas propostas que tentam mitigar os fatores negativos de contagem de tamanho para desenvolvimento e manutenção, tais como o esforço de contagem, ou mesmo o tempo gasto para essa atividade. A seguir são citadas algumas relacionadas ao contexto desse artigo (APF e Abordagem estimativa da NESMA).
Meli (2011) propôs uma nova abordagem chamada Ponto de Função Simples. Essa abordagem seria uma alternativa ao Ponto de função para estimar de forma rápida o tamanho de um produto de software, no início do processo de mensuração, quando não estão disponíveis todas as informações necessárias para a contagem da APF detalhada. Em sua proposta são criados novos conceitos: UGDG e UGEP. Nessa abordagem o tamanho do aplicativo em pontos de função é dado pelo total da quantidade de funções de dados (UGDG) x 7 PF e pelo total da quantidade de funções de transação (UGEP) x 4,6 PF (SiFPA, 2014). Ferrucci, Gravino, & Lavazza (2016) aplicaram essa proposta em 25 aplicações da WEB de uma empresa de software, obtendo resultados promissores, mas com baixo quantitativo de experimentação.
Herron & Dennis (2011) apresentam uma proposta chamada APF Lite. Com o mesmo objetivo, essa proposta adequa a proposta estimada da NESMA. Depois de estudos em dois grupos de dados com 30 e 95 projetos de manutenção,adequa a complexidade das funções de dados de baixa para média. Os resultados apresentados com esses dados são promissores. Matsutani & Ribeiro (2015) aplicaram a APF Lite em 152 projetos da organização, e os resultados obtidos foram positivos, considerando o baixo quantitativo de projetos.
Jones (2013) sugere, para mitigar os fatores negativos, entre eles o esforço da contagem, um método de dimensionamento de alta velocidade que está incorporado no Software Risk Master ™ (SRM) dimensionando e estimando a ferramenta sob Desenvolvimento pela Namcook Analytics LLC. O método de dimensionamento prevê tamanho do aplicativo considerando um total de 15 métricas, incluindo APF, SNAP para atributos não funcional; Pontos de função COSMIC, Pontos de história, e outros. A proposta desse autor é um software para contagem.
Esse trabalho tem por objetivo customizar uma métrica funcional de tamanho de software com foco na redução do tempo, esforço e custo do processo de contagem de projetos de manutenção e experimentar e validar essa nova abordagem em contagens da indústria. São objetivos específicos:
O tipo de pesquisa utilizada classifica-se como pesquisa aplicada e empírica, uma vez que busca a resolução de problema concreto, que é a redução do tempo, esforço e custo do processo de contagem de projetos de manutenção. E empírica pois identifica a correlação entre as propostas encontradas e a proposta customizada.
Com relação aos meios de investigação, foram utilizados: a pesquisa bibliográfica, a investigação documental, apoiada em pesquisa documental dos sistemas e projetos que foram mensurados.
Considerando as fases do ciclo (ISO/IEC 15939, 2007), foram definidos os passos para a análise desses dados e proposta de uma métrica customizada. O processo (ISO/IEC 15939, 2007) consiste de quatro atividades iterativas:
Para atender a 1ª. Atividade (a), foram analisados, por meio de pesquisa bibliográfica: o processo de contagem de software utilizado por algumas organizações públicas brasileiras, as propostas existentes que visam reduzir o tempo, esforço e custo do processo de contagem e sua aplicabilidade em projetos de academia ou da indústria.
Para a 2ª e 3ª. Atividade (b e c), identificou-se a organização e suas características. A pesquisa utilizou os dados de uma organização publica de grande porte brasileira e que atua no mercado financeiro. No seu processo de contagem dos projetos de manutenção a organização realiza, no mínimo, duas contagens, uma no início do processo (estimada NESMA) e outra, quando já estão disponíveis todas as informações necessárias para a contagem detalhada (IFPUG). A organização não aplica as características gerais de sistema em nenhuma das contagens.
O período de coleta de dados das contagens foi realizado entre 17/10/2016 e 21/10/2016. Todas as contagens tinham os dados da contagem detalhada (APF IFPUG). Para esse trabalho foi calculado, com base em cada contagem detalhada, o quantitativo de PF estimado. (NESMA). Foi utilizada a ferramenta Minitab para análise estatística dos dados.
Foram analisados inicialmente 15.101 contagens de projetos entre melhoria (manutenção), aplicação e novo desenvolvimento. A organização em questão possui alto índice de terceirização de desenvolvimento de software. As contagens de tamanho em APF, tanto estimado como detalhado, também são terceirizadas para uma fábrica de métricas.
Inicialmente identificou-se o quantitativos de projetos considerando as classificações melhoria(manutenção), aplicação e novo desenvolvimento. A Tabela 3 apresenta essa distribuição na amostra estudada de 15.101 demandas ou projetos.
Tabela 3
Quantitativo de projetos por classificação
Tipo de contagem |
Quantidade de demandas ou projetos |
Percentual |
Qtd de PF Contagem detalhada |
Qtd de PF Contagem estimada |
Percentual de diferença Estimada vs Detalhada |
Aplicação |
1381 |
9,15% |
374.691 PF |
339.819 PF |
9,30% |
Melhoria ou manutenção |
13320 |
88,21% |
717.242 PF |
558.043 PF |
22,19% |
Novo desenvolvimento |
400 |
2,65% |
98.544 PF |
87.913 PF |
10,78% |
Total |
15101 |
100 |
1.190.477 |
985.775 PF |
17,19% |
Conforme pode ser observado, a análise inicial das contagens detalhadas apresentou uma distribuição assimétrica. Assim, optou-se por trabalhar inicialmente, com as demandas de projetos de melhoria ou manutenção. Das 13320 contagens de projeto de melhoria ou manutenção, 10.405 de contagens eram relativas a projetos com menos de 50 PF. Optou-se, nesse trabalho considerar somente as contagens abaixo de 50 PF como escopo da análise a ser realizada (Etapa Planejamento). A Figura 1 apresenta a estatística descritiva dessa nova amostra, que se apresentou um pouco mais simétrica.
Figura 1 – Análise descritiva da amostra de contagens abaixo de 50 PF
Após a definição do escopo da análise a próxima etapa foi ¨ Identificação da diferença entre a contagem estimada e detalhada (positiva, negativa ou sem diferença)¨. A Figura 2 apresenta os resultados da execução dessa etapa e foi constatado que a maior parte dos projetos menores que 50PF , ou seja aproximadamente 68%, possuem contagem estimada menor que a contagem detalhada. A diferença entre as contagens estimada e detalhada é identificada por alguns autores. Morrow, Wilkie, & McChesney (2014) e Herron & Dennis (2011) sugerem que aspectos como a falta de conhecimento aprofundado do sistema, alteração de escopo, ausência de documentação, estágio inicial do desenvolvimento sejam algumas das variaveis que impactam nessa diferença. No caso do nosso trabalho, a diferença apontada não reflete esses fatores, uma vez que a contagem estimada foi realizada considerando a detalhada. Isso permite inferir, que a diferença identificada é relacionada especificamente às técnicas detalhadas e estimadas.
Figura 2- Quantitativo de projetos sem diferença e com
diferença entre contagem estimada e detalhada
Com o objetivo de identificar um padrão e aprofundar a análise, a tabela 4 apresenta o quantitativo de pontos de função considerando as diferenças entre a estimada e detalhada identificadas. É possivel identificar que a o percentual de diferença entre estimada e detalhada é maior no contexto de “estimadas menores que detalhadas". Esse fato reforça a necessidade de customizar a APF estimada , principalmente nesse escopo, de forma a se tornar mais aderente a contagem detalhada.
Tabela 4 – Percentuais de diferença em PF entre as contagens estimada e detalhada
considerando o escopo da manutenção em sistemas de menos de 50 PF
|
Frequencia |
Qtd PF detalhada |
QTd PF estimada |
Percentual diferença |
Estimada menor que detalhada |
7034 |
121.613 PF |
90.480 PF |
-25,60% |
Estimada igual detalhada |
1671 |
15.100 PF |
15.100 PF |
0 |
Estimada maior que detalhada |
1700 |
21.449 PF |
25.183 PF |
17,40% |
Com o objetivo de analisar quais as funções impactam mais nas diferenças apuradas e conseguir chegar a ¨Identificação de padrões relacionados a essas diferenças“, foram analisadas todas as funções de dados e transações envolvidas. A tabela 5 apresenta a análise do percentual das diferenças entre estimada e detalhada encontrado considerando o quantitativo de todos os tipos de dados (ALI, AIE, EE,SE,CE) envolvidos em cada projeto de manutenção (abaixo de 50 PF). Um projeto de manutenção pode ter mais de um tipo de dado em sua contagem. Identificaram-se, nessa análise, 18.141 funções de dados e transações envolvidas nas contagens detalhadas com diferenças (estimada e detalhada).
Tabela 5 – Percentuais de diferença por
frequencia de tipo de dado
Percentuais de diferença |
Qtd AIE |
Qtd ALI |
QTD CE |
QTD EE |
QTD SE |
Total Qtd funções |
-53,33 |
0 |
255 |
0 |
0 |
0 |
255 |
-50 |
7 |
0 |
0 |
0 |
0 |
7 |
-33,33 |
0 |
0 |
1460 |
4005 |
0 |
5465 |
-30 |
0 |
117 |
0 |
0 |
0 |
117 |
-28,57 |
14 |
0 |
0 |
0 |
3379 |
3393 |
Total estimada < detalhada |
21 |
372 |
1460 |
4005 |
3379 |
9237 |
0 |
56 |
511 |
1687 |
1678 |
1482 |
5414 |
Total estimada = detalhada |
56 |
511 |
1687 |
1678 |
1482 |
5414 |
25 |
0 |
0 |
0 |
0 |
661 |
661 |
33,33 |
0 |
0 |
1404 |
1425 |
0 |
2829 |
Total estimada > detalhada |
0 |
0 |
1404 |
1425 |
661 |
3490 |
Total Geral |
77 |
883 |
4551 |
7108 |
5522 |
18141 |
Considerando esse escopo, é possivel identificar que:
Além disso, é possível verificar que as funções de dados (ALI e AIE) não são os tipos de dados que impactam mais as diferenças positivas e negativas encontradas (aproximadamente 0,3%, considerando o total das frequencias positivas e negativas). As funções de transações respondem por 12334 (aproximadamente 97%) das frequencias encontradas (considerando somente as diferenças positivas e negativas). Especificamente a função EE é a função que mais gera diferenças (positivas e negativas) entre estimada e detalhada perfazendo o total de 5430 ocorrencias que representam aproximadamente 43% (de 12727 frequencias positivas e negativas) .
Ainda é possivel identificar que, as EE representam (43%) considerando somente o escopo das contagens em que a estimativa é menor que a detalhada com relação ao total de negativas. E considerando esse escopo 8.858 dessas frequencias, ou seja 96,5% estão nas faixas de 28,57 e 33,33% de diferença. Para aprofundar a análise foram detalhadas as duas principais diferenças e a respectiva frequência de dados.
Foi possível identificar que a maior parte das diferenças, considerando os percentuais de -33% e -28% ocorre em tamanhos de manutenção menores que 18 PF. Além disso, reforça o entendimento que as funções de transação são as funções que mais impactam nas diferenças entre estimada e detalhada relacionadas a tamanhos de manutenção menores de 50 PF.
Considerando o padrão identificado e para atender a ¨etapa Propor a métrica customizada para a organização, foram realizadas as seguintes análises:
Assim, após a análise dos dados, a alternativa para contagem Ágil do tamanho do produto de software é adequar a proposta da estimada da NESMA, considerando:
Para validação da proposta foi aplicada a contagem Ágil nas 10.405 contagens relativas a projetos com menos de 50 PF. O objetivo inicial era verificar a correlação entre a estimada, detalhada e a contagem Ágil (Tabela 6).
Tabela 6 – Correlação entre a contagem estimada,
detalhada e Ágil – 10.405 contagens
Total PF contagem detalhada |
Total PF contagem estimada |
Diferença % entre estimada e detalhada |
Total PF contagem Ágil |
Diferença % entre contagem Ágil e detalha |
158.162 PF |
130.763 PF |
17,32% |
156.691 |
0,93% |
O resultado obtido foi bastante promissor, considerando o grande quantitativo de contagens. A abordagem contagem Ágil apresenta uma diferença não significativa com a contagem detalhada. Para analisar melhor o resultado obtido, a Tabela 07 apresenta as contagens de manutenção abaixo de 50 PF por faixa, com os correspondentes PF Estimados e Ágeis.
Tabela 07 – Proposta Ágil vs Estimada
Faixas PF |
Qtd Ocorr |
PF Detalhada |
PF Estimad |
% difer estimada /detalhad |
PF Contagem Ágil |
Difer Ágil/detalhad |
3 a 6 PF |
9294 |
43746 |
41046 |
-6,17 |
50016 |
14,33 |
7 a 10 PF |
4055 |
30819 |
26946 |
-12,57 |
29510 |
-4,25 |
11 a 14 PF |
2488 |
31324 |
23572 |
-24,75 |
29308 |
-6,44 |
15 a 18 PF |
982 |
16299 |
12022 |
-26,24 |
15330 |
-5,95 |
19 a 22 PF |
393 |
8147 |
6682 |
-17,98 |
7024 |
-13,78 |
23 a 26 PF |
360 |
8660 |
6298 |
-27,27 |
8670 |
0,12 |
27 a 30 PF |
295 |
8517 |
6194 |
-27,27 |
7286 |
-14,45 |
31 a 34 PF |
16 |
518 |
608 |
17,37 |
694 |
33,98 |
35 a 38 PF |
143 |
5073 |
3691 |
-27,24 |
4441 |
-12,46 |
39 a 50 PF |
115 |
5059 |
3704 |
-26,78 |
4412 |
-12,79 |
Totais |
18141 |
158.162 |
130.763 |
-17,32 |
156691 |
-0,93 |
A Figura 3 apresenta os resultados, e possibilita identificar a maior proximidade em quase todas as faixas do modelo Ágil com a contagem detalhada. Somente na primeira faixa de 3 a 6 PF e na faixa de 31 a 34 PF , isso não ocorreu . Mas a faixa 31 a 34 PF tem pouca representatividade em quantitativo de contagens.
Figura 3
Comparação quantitativo de PF considerando contagens detalhadas, estimadas e modelo Ágil.
A customização proposta possibilita a eliminação da contagem detalhada do processo de contagem. Ou seja, o esforço de uma contagem estimada e de uma contagem detalhada, seria substituido por duas contagens estimadas Ágil . O método Ágil seria aplicado, no inicio do processo para estimativa e posteriormente (em substituição da contagem detalhada).
Com a utilização somente da contagem Ágil, o esforço, tempo e custo do processo de contagens detalhadas seriam reduzidos. Autores como (Herron, 2006) sugerem para contagens inferiores a 50 PF um esforço aproximado de 2:30 horas. Ou seja, 10405 contagens x 2:30, seriam aproximadamente 26.012 horas de esforço e tempo de contagens detalhadas reduzidas. Morris (2004) identifica que, para a contagem não detalhada, a produtividade é de 750 PF por dia. Considerando o dia com 8 horas, teríamos, aproximadamente 94 PF por hora. Considerando a contagem Ágil, que é uma adaptação da estimada, e a produtividade citada por (Morris, 2004) , teríamos o 1o. processo (inicial) e o 2o. processo de contagem sendo realizados em aproximadamente 1 hora. O esforço total de todas as 2 contagens seria, para a amostra estudada 10.500 horas.
Considerando que a empresa em questão, terceiriza as contagens, os custos referentes a troca das contagens pela contagem Ágil tambem seria reduzido. A tabela 08 demonstra uma simulação considerando os valores pagos no contrato de métricas da organização estudada para realização de contagem estimadas e detalhadas até 50 PF.
Tabela 8
Estimativa de custos atuais e com a aplicação da contagem Ágil
Tipo |
QTD |
Valor |
Custo Atual |
Custo com o Agil |
Redução |
Estimada |
10405 |
142,87 |
R$ 1.486.562,35 |
R$ 1.486.562,35 |
R$ 0,00 |
Detalhada |
10405 |
285,74 |
R$ 2.973.124,70 |
R$ 1.486.562,35 |
R$ 1.486.562,35 |
Totais |
20810 |
R$ 4.459.687,05 |
R$ 2.973.124,70 |
R$ 1.486.562,35 |
Para validar as diferenças encontradas, na Figura 4 são demonstrados os cálculos estatísticos ou estatística descritiva, que têm como objetivo descrever a amostra e embasar os cálculos necessários para posterior análise da variância (ANOVA) e teste de Tukey. A ANOVA permite estabelecer se as médias das populações em estudo são, ou não são, estatisticamente iguais, mas não permite detectar quais são as médias estatisticamente diferentes das demais. Para verificar quais médias diferem entre si foi utilizado o teste Tukey.
Figura 4 – Estatísticas descritivas Detalhada, Estimada e Ágil
A Figura 5 apresenta o gráfico de intervalos das contagens detalhada, Estimada e Ágil. O gráfico de intervalos exibe a média e o intervalo de confiança para cada grupo. Conforme pode ser observado a contagem detalhada e Ágil estão bem aproximadas.
Figura 5 – Gráfico de intervalos
Foram definidas duas hipóteses:
O Nível de significância foi α = 0,05 e assumiu-se igualdade de variâncias para a análise.A Figura 6 apresenta os resultados , o valor-p (0,000) indica que há evidência suficiente de que nem todas as médias são iguais quando alfa é definido em 0,05. Nesta análise foi utilizado o cálculo do p-valor para rejeitar a Hipótese nula em favor da Hipótese alternativa. O teste p-valor é fornecido por programas estatísticos de computador e neste teste se oferece a possibilidade do valor do teste t (baseado no nível de significância, na média de cada grupo, na variância de cada grupo e na variância ponderada) ser, na distribuição teórica, maior que o valor obtido. Então, toda a vez que o p-valor for menor que o nível de significância estabelecido (neste estudo 0,05), rejeita-se a hipótese de que as médias são iguais.
Para verificar quais médias diferem entre si foi utilizado o teste Tukey. O teste de Tukey fornece informações de agrupamento e 3 conjuntos de intervalos de confiança de comparação múltipla. A Figura 6 mostra que o grupo A contém a contagem Detalhada e Ágil. Enquanto o grupo B, a contagem Estimada. Somente a contagem Detalhada e Ágil compartilham uma letra e suas médias são significativamente aproximadas. Isso também pode ser visualizado na Figura 7, onde o intervalo Ágil –detalhada contem 0, demonstrando que as médias correspondentes não diferem entre si.
Figura 6 – Informações dos fatores -ANOVA
-----
Figura 7 – Comparações Tukey
------
Figura 8 – Ics Simultaneos de 95% de Tukey
Para completar a análise empírica dos dados, optou-se por comparar a contagem Ágil com as propostas identificadas APF Lite e APF simples. A APF simples não pode ser considerada uma customização da APF estimada NESMA, uma vez que ela cria novos conceitos. Ja a APF lite, conforme citada anteriormente, customiza os conceitos da estimada NESMA, sugerindo que as funções de dados sejam consideradas pela complexidade média e não pela complexidade baixa (ALI- 10 PF e AIE – 7 PF). A Tabela 9 apresenta as abordagens aplicadas nessa pesquisa.
Tabela 9 – Abordagens aplicadas na pesquisa
Tipo de função |
NESMA |
APF lite |
Contagem Ágil |
APF Simples |
ALI |
7 PF |
10 PF |
7 PF |
UGDG 7 PF |
AIE |
5 PF |
7 PF |
5 PF |
UGDG 7 PF |
EE |
4 PF |
4 PF |
6 PF |
UGEP 4,6 PF |
SE |
5 PF |
5 PF |
5 PF |
UGEP 4,6 |
CE |
4 PF |
4 PF |
4 PF |
UGEP 4,6 |
A Tabela 10 apresenta os resultados da contagem detalhada, estimada, contagem Ágil e APF Lite.
Tabela 10 – Resultados obtidos com a contagem Ágil, APF Lite, APF Simples
Total PF contag detalhada |
Total PF contag estimada |
Difer. % est vs detalhada detalhada |
Total PF contag Ágil |
Difer. % Ágil vs detalhada |
Total PF APF Lite |
Difer. % APF Lite vs detalhada |
Total PF contag APF simples |
Difer. % APF simples vs detalhada |
158.162 PF |
130.763 PF |
17,32% |
156.691 PF |
0,93% |
133.955 PF |
15,30% |
139.289 PF |
11,93% |
A abordagem da APF Lite não se mostra a mais adequada para a amostra estudada de 10405 contagens de manutenção. A maior parte das diferenças foi identificada nas funções transacionais e não nas funções de dados. A proposta da APF Lite aumenta a complexidade das funções de dados. A APF simples diminui o tamanho da SE e aumenta, de maneira pouco representativa, valor da EE. Eleva o valor do AIE com relação a contagem detalhada da NESMA. E para essa amostra de 10.405 contagens de manutenção abaixo de 50 PF a proposta não se mostra adequada.
Isso reforça a necessidade, cada vez maior, de estudos com quantidade representativa de dados para ratificar ou retificar as propostas existentes.
O objetivo desse trabalho foi customizar uma a métrica funcional de tamanho de software com foco na redução do tempo, esforço e custo do processo de contagem de projetos de manutenção e experimentar e validar essa nova abordagem em contagens da indústria. Para isso foi realizada pesquisa bibliográfica para identificar as propostas existentes na literatura com relação a contagem detalhada APF e estimada NESMA. Identificaram-se inclusive, aspectos relacionados ao esforço de contagem com a APF.
Foi realizada investigação documental para identificar o processo de contagem utilizado em algumas organizações públicas brasileiras e sobre os sistemas e projetos que foram mensurados. Utilizando o modelo ISO/IEC 15939 para definir as principais atividades da pesquisa, foram analisadas 10.405 contagens de manutenção detalhadas de uma organização pública brasileira de grande porte que atua no setor financeiro. Essa organização possui um alto nível de terceirização da área de TI, inclusive o seu processo de métricas é terceirizado.
Todas as contagens eram de tamanho inferior a 50PF (inclusive). Identificou-se que em 68% das contagens, a estimada era menor que a contagem detalhada. E que as funções transacionais eram as que mais impactavam o volume das diferenças entre estimadas e detalhadas.
Com base nessa descoberta, se propôs a abordagem Contagem Ágil que adequa a proposta estimada da NESMA as descobertas relacionadas às 10.405 contagens. Essa adequação modifica somente a complexidade de uma função de transação (EE). (Freitas Junior, Fantinato, & Sun, 2015) já tinha identificado, em seu estudo, a necessidade de adequar pesos e complexidades. A abordagem foi aplicada nas contagens disponibilizadas e o resultado se mostrou promissor. Variação de 0,93% com relação a contagem detalhada. Foi aplicada a Anova e o teste de Tukey para validação estatística.
Para reforçar a adequação do modelo, foram aplicadas as outras abordagens existentes APF Lite e APF Simples às 10.405 contagens e os resultados não foram comparáveis a abordagem Ágil, proposta pelo estudo.
Para redução do tempo, esforço e custo do processo de contagem de projetos de manutenção, a abordagem Ágil, por sua aderência aos resultados da contagem detalhada, possibilita a substituição da contagem detalhada no processo de contagem. Ou seja, o esforço da 1 contagem detalhada, seria substituido pelo esforço da contagem ágil. O método NESMA ou a contagem Ágil continuaria a ser aplicado no início do processo de desenvolvimento para a estimativa. Com isso o esforço, tempo e custo do processo de contagem seriam reduzidos. Autores como (Herron, 2006) sugerem para contagens inferiores a 50 PF um esforço aproximado de 2:30 horas. Ou seja, 10405 contagens x 2:30, seriam aproximadamente 30.000 horas de esforço e tempo de contagens detalhadas reduzidas. Considerando que a empresa em questão, terceiriza as contagens, os custos referentes a essas horas seriam reduzidos também.
Como outras descobertas, ressaltamos alguns resultados da pesquisa:
Cabe as organizações brasileiras avaliarem se, para contagens tão pequenas em tamanho e tão grandes em volume, é necessário um processo pesado ou mais leve de contagem.A proposta da abordagem Ágil tenta tornar esse processo mais Ágil para pequenas contagens de manutenção, reduzindo o esforço e consequentemente o custo dessas contagens.
Como trabalhos futuros é interessante avaliar a proposta Ágil para as outras formas de contagem de novo desenvolvimento e de aplicação. Além disso, avaliar também a proposta para contagens de manutenção superiores a 50 PF.
A APF (contagem detalhada) e a proposta estimativa da NESMA, são considerados modelos bem fundamentados, mas o trabalho realizado mostra que se pode ainda analisar e identificar oportunidades de melhorias nesses modelos, ampliando assim a aplicabilidade e minimizando as desvantagens desses modelos.
BADESUL - Agencia de Fomento-RS. (2015). Edital. Pregão Eletrônico N.º008/2015. Rio grande do sul.
BRASIL - Advocacia Geral da União. (2014). Edital. Pregão Eletrônico Nº 32/2014. Brasilia.
BRASIL - Caixa Econômica Federal (2012). Contrato. no. 4570/2012. Brasilia.
BRASIL - Estado de Minas Gerais (2014). Edital. Pregão Presencial Nº. 2011020.077/2014. Minas Gerais.
BRASIL - Ministério Público do Trabalho - Procuradoria Geral (2015). Anexo I. Termo de Referência. Brasilia.
CALAZANS, A. T., PALDES, R. A., & MARIANO, A. (2015). Uma revisão sistemática da bibliografia sobre métricas funcionais de tamanho de software utilizando o enfoque meta analítico. (Uniceub, Ed.) Universitas Gestão e TI, Brasília, v. 5, n. 2, p. 67-77, jul./dez. 2015, V. 5 N.2, pp. 67-77. doi:10.5102/un.gti.v5i2.3532
JONES, Capers (2013). Function Points as a Universal Software Metric. ACM SIGSOFT Software Engineering Notes, 38.
EBERT, C., & SOUBRA, H. (2014). Functional Size Estimation Technologies for Software Maintenance. Software Technology, pp. 24-29.
FERRUCCI, F., GRAVINO, C., & LAVAZZA, L. (2016). Simple Function Points for Effort Estimation: a Further Assessment. ACM, pp. 1428-1433.
Freitas Junior, M. d., Fantinato, M., & Sun, V. (2015). Improvements to the Function Point Analysis Method: A Systematic Literature Review. IEEE TRANSACTIONS ON ENGINEERING MANAGEMENT, 4, pp. 495-506.
GARMUS, D. H. (2001). Function point analysis: measurement practices for successful soft-ware projects. Boston: Addison-Wesley Longman Publishing Co.
HEERINGEN, H. v. (2015). Software size measures and their use in software project estimation. Acesso em 12 de 06 de 2017, disponível em NESMA: http://nesma.org/2015/05/software-size-measures-and-their-use-in-software-project-cost-estimation/
HERRON, D. (2006). Function Point Lite™ – Is It a Statistically Valid Method of Counting? David Consulting Group.
HERRON, D., & DENNIS, S. P. (2011). FP Lite – An Alternative Approach to Sizing. David Consulting Group.
ISO/IEC (2007) ISO/IEC 15939: 2007. Systems and software engineering -- Measurement process.
ISO/IEC. (2002). ISO/IEC 20968:2002. Software engineering - Mk II Function Point Analysis - Counting Practices Manual.
ISO/IEC. (2005). ISO/IEC 24570:2005. Software engineering -- NESMA functional size measurement method version 2.1 -- Definitions and counting guidelines for the application of Function Point Analysis.
ISO/IEC. (2009). ISO/IEC 20926:2009. Software and systems engineering -- Software measurement -- IFPUG functional size measurement method.
ISO/IEC. (2011). ISO/IEC 19761:2011. Software engineering -- COSMIC: a functional size measurement method.
LAVAZZA, L. (2015). Automated Function Points:Critical Evaluation and Discussion. In IEEE (Ed.), 6th International Workshop on Emerging Trends in Software Metrics, (pp. 35-43).
MAROUNEK, P. (2012/2013). Simplified approach to effort estimation in software maintenance. Journal of Systems Integration, pp. 51-63.
MATSUTANI, M. K., & RIBEIRO, L. F. (2015). Proposta de simplificação do processo de contagem de pontos de função na DATAPREV. Datraprev -CGPP - Coordenação Geral de Programas e Projetos.
MELI, R. (2011). Simple Function Point: a new Functional Size Measurement Method fully compliant with IFPUG 4.x. Roma: Software Measurement European Forum (SMEF).
MOHAMMAD, I., & VINODANI, K. (2014). Development of a software maintenance cost estimation model: 4TH GL Perspective. International Journal of Technical Research and Application, 6.
MORRIS, P. (2004). Níveis de contagens de pontos de função. Total Metrics.
MORROW, P., WILKIE, F. G., & MCCHESNEY, I. R. (2014). Function point analysis using NESMA: simplifying the sizing without simplifying the size. (Springer, Ed.) Software Qual J, pp. 611–660.
NGUYEN, V. (2010). Improved size and effort estimation models for software maintenance. Dissertation. California: Faculty of the USC Graduate School University of Southern California.
RAJU, H. K., & KRISHNEGOWDA, Y. T. (may de 2013). Software Sizing and Productivity with Function Points. Lecture Notes on Software Engineering, 1, n.2. doi:10.7763/LNSE.2013.V1.46
SiFPA. (2014). Reference Manual SiFP-01.00-RMEN 01.01. Simple Function Point Functional Size Measurement Method . Acesso em 12 de 06 de 2017, disponível em http://www.sifpa.org/en/index.htm
SOFTEX. (2016). MPS.BR - Melhoria de Processo do Software Brasileiro - Guia Geral MPS de Software.
SEI. (2010). CMMI for Development, Version 1.3. SEI - Software Engineering Institute, Carnegie Mellon University, Version 1.3.
TIMP, A. (2015). uTip - Early Function Point Analysis. Acesso em 12 de 06 de 2017, disponível em Guidance from the Functional Sizing Standards Committee: http://www.ifpug.org/uTips/uTip003EarlyFPAandConsistentCostEstimating.pdf
VAZQUEZ, C. E., SIMOES, G. S., & ALBERT, R. M. (2013). Análise de Pontos de Função:Medição, estimativas e gerenciamento de projetos de software (13a. ed.). São Paulo: Érica.
WANG, X., LI, J., & YU, F. (2008). Simplified function point analysis method aiming at small-to-mediumsized. Jisuanji Gongcheng/Computer Engineering, 9, pp. 103-105.
1. Instituto CEUB de Pesquisa e Desenvolvimento - ICPD. Uniceub - Centro Universitário de Brasilia. Angelica.calazans@uniceub.br
2. Centralizadora de Desenvolvimento Brasília - CEDESBR. Caixa Econômica Federal. elcio.martins@caixa.gov.br
3. Faculdade de Tecnologia e Ciências Sociais Aplicadas – FATECS. Uniceub - Centro Universitário de Brasilia. Eloisa.masson@uniceub.br
4. Centralizadora de Desenvolvimento Brasília - CEDESBR. Caixa Econômica Federal. Roberto.teixeira@caixa.gov.br