métricas de softwarepublish.uwo.ca/~darruda3/papers/metrics.pdf · 38 engenharia de software...

5
38 Engenharia de Software Magazine - Métricas de Software Darlan Florêncio de Arruda [email protected] – www.darlanarruda.com Bacharel em Sistemas de Informação pela Universidade de Pernambuco (UPE). Tem experiência na área de Ciência da Computação, com ênfase em Métricas, Gestão, Testes e Qualidade de Software. Atualmente é aluno do programa de mestrado acadêmico em Engenharia de Computação da Escola Politécnica da Universidade de Pernambuco (POLI/UPE) e Engenheiro de Testes de Software do C.E.S.A.R. Fique por dentro: Nesse artigo são tratados aspectos relevantes acerca da aplicação e utilização de métricas de software, visando identicar e explanar fatores que contribuem para que atividades de medição e estimativas sejam realizadas de forma ine- ciente pela indústria de TI. Esse artigo é útil em situações onde as atividades de medição e es- timativas de software são realizadas de forma ineciente, pois apresenta dados e informações importantes que são identicados como contri- buintes para o uso ineciente de métricas em projetos de software, dando uma visão ampla acerca do assunto, ajudando prossionais de TI a identicar tais fatores em suas organizações e com isso minimizar os problemas encontrados na realização desse tipo de atividade. Métricas de Software Problema ou Solução? Engenharia Nesta seção você encontra artigos voltados para testes, processo, modelos, documentação, entre outros M étricas de é um assun- to que vem sendo estudado anos e mesmo assim, ainda hoje desperta interesses de pesquisa- dores. Talvez pelo fato de ainda não ter atingido sua maturidade. Sabe-se que realizar estimativas e prover métricas de eficientes tem se tornado um grande desafio na área de TI e que essa incapacidade da indústria em es- timar com precisão resulta em problemas orçamentais e atrasos nas entregas. Diante disso, esse artigo tem como objetivo investigar e apresentar possíveis causas que contribuem para o uso ineficiente de métricas de . Métricas de possibilitam realizar uma das atividades mais funda- mentais do processo de gerenciamento de projetos - o planejamento. Servem como suporte à medição em diversas tipos de atividades e aplicações como, por exemplo: utilização de métricas no contexto organizacional de gestão do conhecimento, no apoio a sistemas baseados em computação em nuvem, no suporte a medição de complexidade do , medição de esforço de traba- lho, métricas no contexto de custos em manutenção corretiva de , como suporte a mensuração de qualidade em aplicações de negócios, inspeção de e métricas no contexto de qua- lidade e testes de .

Upload: others

Post on 04-Apr-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Métricas de Softwarepublish.uwo.ca/~darruda3/Papers/Metrics.pdf · 38 Engenharia de Software Magazine - Métricas de Software Darlan Florêncio de Arruda dfa@ecomp.poli.br – Bacharel

38 Engenharia de Software Magazine - Métricas de Software

Darlan Florêncio de [email protected] – www.darlanarruda.com

Bacharel em Sistemas de Informação pela Universidade de Pernambuco (UPE). Tem experiência na área de Ciência da Computação, com ênfase em Métricas, Gestão, Testes e Qualidade de Software. Atualmente é aluno do programa de mestrado acadêmico em Engenharia de Computação da Escola Politécnica da Universidade de Pernambuco (POLI/UPE) e Engenheiro de Testes de Software do C.E.S.A.R.

Fique por dentro:Nesse artigo são tratados aspectos relevantes acerca da aplicação e utilização de métricas de software, visando identificar e explanar fatores que contribuem para que atividades de medição e estimativas sejam realizadas de forma inefi-ciente pela indústria de TI. Esse artigo é útil em situações onde as atividades de medição e es-timativas de software são realizadas de forma ineficiente, pois apresenta dados e informações importantes que são identificados como contri-buintes para o uso ineficiente de métricas em projetos de software, dando uma visão ampla acerca do assunto, ajudando profissionais de TI a identificar tais fatores em suas organizações e com isso minimizar os problemas encontrados na realização desse tipo de atividade.

Métricas de SoftwareProblema ou Solução?

Engenharia

Nesta seção você encontra artigos voltados para testes, processo, modelos, documentação, entre outros

Métricas de é um assun-to que vem sendo estudado há anos e mesmo assim, ainda

hoje desperta interesses de pesquisa-dores. Talvez pelo fato de ainda não ter atingido sua maturidade. Sabe-se que realizar estimativas e prover métricas de eficientes tem se tornado um grande desafio na área de TI e que essa incapacidade da indústria em es-timar com precisão resulta em problemas orçamentais e atrasos nas entregas. Diante disso, esse artigo tem como objetivo investigar e apresentar possíveis causas que contribuem para o uso ineficiente de métricas de .Métricas de possibilitam realizar uma das atividades mais funda-mentais do processo de gerenciamento de projetos - o planejamento. Servem como suporte à medição em diversas tipos de atividades e aplicações como, por exemplo: utilização de métricas no contexto organizacional de gestão do conhecimento, no apoio a sistemas

baseados em computação em nuvem, no suporte a medição de complexidade do , medição de esforço de traba-lho, métricas no contexto de custos em manutenção corretiva de , como suporte a mensuração de qualidade em aplicações de negócios, inspeção de

e métricas no contexto de qua-lidade e testes de .

Page 2: Métricas de Softwarepublish.uwo.ca/~darruda3/Papers/Metrics.pdf · 38 Engenharia de Software Magazine - Métricas de Software Darlan Florêncio de Arruda dfa@ecomp.poli.br – Bacharel

Edição 67 - Engenharia de Software Magazine 39

ENGENHARIA

Métricas de medem diferentes aspectos da com-plexidade do e, portanto, desempenham um papel importante na análise e melhoria da qualidade do . Tais aspectos abrangem área de qualidade, estimativa, custos, processos e assim por diante. Uma outra definição para métrica de a referencia como sendo a medida - geralmente usando classificações numéricas - para quantificar algumas características ou atributos de uma entidade de . Medições típicas incluem a qualidade dos códigos de fonte, o processo de desenvolvimento e as aplicações realizadas.Além dessas, pode-se afirmar também que métricas de soft-

é a contínua aplicação de técnicas baseadas na medição para o processo de desenvolvimento de e para os seus produtos fornecendo informação de gestão relevante e, a utilização dessas técnicas visa melhorar o processo e os seus

são agrupadas em dois tipos, as métricas de produto e as métricas de processos. Métricas de Produto, também conhecidas como as métricas de qualidade, são usadas para medir as propriedades do e ajudam a melhorar a qualidade dos diferentes componentes e existentes do sistema. Pode-se destacar como exemplos de métricas de produto: esforço, tamanho, volume, complexidade, contagem de pontos de função, contagem de Tokens, métricas de funcionalidades, desempenho, usabilidade, custo e tamanho e métricas de estilo.Já as métricas de processo são conhecidos como métricas de gestão e são utilizadas para medir as propriedades do proces-so que é usado para se obter o . Métricas de processo incluem as métricas de custo e esforços, métricas de progresso e métricas de reutilização. Métricas de processo ajudam na previsão do tamanho do sistema final e a determinar se um projeto em execução se encontra de acordo com o cronogra-ma. Como métricas de processos, podemos citar: métricas de reusabilidade, métricas de produtividade, média de ponto de estória por desenvolvedor por dia/mês, métricas de recursos, dentre outros.Comparar e avaliar as capacidades e produtividade das pes-soas envolvidas no desenvolvimento de , elaboração das especificações de qualidade de , verificação do cumprimento de requisitos de sistemas de e especi-ficações, são algumas das características que a aplicação de métricas proporcionam e que são consideradas vantagens para quem as usam. Além disso, pode-se citar também a tomada de decisões sobre outra divisão do módulo complexo que deve ser feito ou não e obtenção de uma ideia sobre a complexidade do Ao mesmo tempo em que as métricas de proporcio-nam diversas vantagens que ajudam no auxílio de algumas atividades dentro do processo de desenvolvimento do pro-duto de – elas também apresentam certas limitações em relação ao seu uso. A maioria dessas desvantagens estão vinculadas ao uso incorreto por parte dos profissionais de TI. No processo de utilização de métricas de , deve-se garantir algumas propriedades para que as mesmas sejam utilizadas da maneira mais eficiente possível.

As métricas devem ser facilmente entendidas, calculadas e testadas, devem gerar uma sugestão de melhoria nas estraté-gias, bem como é de grande importância que a métrica seja obtida o mais cedo possível no processo de desenvolvimento do .A utilização de métricas de é muito importante dentro da engenharia de , especialmente na gerência de projetos. Ela é geralmente analisada por gerentes de pro-jetos de e coletada pelos engenheiros e/ou analistas de .

Métrica: Problema ou Solução?Métrica de anos. No entanto, mal conseguiu se estabelecer sua amplitude na engenharia de . A principal razão para isto é que a maioria das atividades associadas ao uso de métricas de

não têm apresentado o requisito mais importante: for-necer informações para apoiar a tomada de decisão gerencial quantitativa durante o ciclo de vida do

, o grande desafio das empresas é estimar custos, esforço e prazo para criação de métricas que realmente representem a realidade. Estimar

é uma atividade complexa, cujos resultados devem ser constantemente atualizados levando em consideração quantitativos reais de todo o ciclo de vida do desenvolvimen-to. Realizar estimativas e prover métricas de têm se tornado um grande desafio na área de TI. A incapacidade da indústria em estimar com precisão resulta em falhas orçamentais e atrasos nas entregas que resul-tam em desconfiança e insatisfação por parte do contratante. Essa incapacidade em prover estimativas precisas com relação a custo, esforço e tempo é constantemente citada em relatórios como o trabalho intitulado “Catálogo de Fatores que Influenciam

por meio de estudos de casos de projetos que falharam e publicações científicas como

, dentre

da Ciência e Tecnologia do Governo Brasileiro, observou-se

utilizam nenhuma métrica para estimar o tamanho de produto de .Diante disso, questionamentos como:

fatores que contribuem para o uso ineficiente de métricas em projetos

- se mostram importantes e relevantes tanto para academia, quanto para a indústria, diante da necessidade de entender esses “porquês” e buscar uma solução que diminua esse gap da engenharia de .Na próxima seção, são apresentados fatores e aspectos que são e podem ser considerados contribuintes para o uso ineficiente de métricas em projetos de , por empresas de TI.

Page 3: Métricas de Softwarepublish.uwo.ca/~darruda3/Papers/Metrics.pdf · 38 Engenharia de Software Magazine - Métricas de Software Darlan Florêncio de Arruda dfa@ecomp.poli.br – Bacharel

40 Engenharia de Software Magazine - Métricas de Software

Fatores Contribuintes para o uso Ineficiente de Métricas de SoftwareComo já explicado em seções anteriores, o uso de métri-cas de por parte da indústria de TI tem levantado questionamentos acerca da qualidade de sua aplicação no que diz respeito a eficiência na realização de atividades de estimativas e medição. Sendo assim, nessa seção mostra-se que existem vários fatores que são e que podem ser conside-rados contribuintes para históricos de medição e estimativas mal sucedidas em projetos de .Percebe-se que métricas de possuem certas limita-ções. Percebe-se que algumas delas contribuem para o uso ineficiente de métricas de . Pode-se afirmar que as métricas de não são aplicadas de forma eficiente por que são difíceis de aplicar, é considerado um trabalho dispendioso e que utiliza em sua maioria dados históricos e empíricos, que são difíceis de verificar e que muitas ve-zes as empresas não os possuem. Isso resulta na falta de informações sobre projetos anteriores completados, o que dificulta na estimativa de novos projetos, principalmente se esse novo projeto não possuir similaridade com projetos já executados.É sabido também que uma vasta gama de métricas de

visando vários níveis de abstração e atributos de qualidade, têm sido propostas pela comunidade de

em verificar as propriedades matemáticas, investigando o comportamento da métrica para um certo número de sis-temas ou comparando o seu valor contra outras métricas quantificando atributos de qualidade relacionados. E isso pode ser um problema quando se pensa em ter métricas eficientes e reais. Dessa forma, uma análise estrutural das métricas seria uma solução.Porém, infelizmente, uma análise estrutural da utilidade de métricas num ambiente de avaliação do mundo real é fre-quentemente ausente, sendo que essa avaliação é importante para compreender as situações em que uma métrica pode ser aplicada para identificar áreas de possíveis melhorias, para explorar problemas gerais detectadas pelos indicadores e definir estratégias de solução geralmente aplicáveis. Dessa forma, pode-se inferir que a falta de uma análise estrutu-ral da métrica pode contribuir para a geração de métricas ineficientes ou irreais.Acredita-se que além das possíveis causas apresentadas até o momento, a incapacidade de produzir requisitos precisos (requisições de mudanças de requisitos ao longo do processo de

) e a falta de experiência em projetos similares, além da constante evolução da TI, podem contribuir para o uso ineficiente quando se pensa na geração de métricas de software. Além desses, pode-se apontar a falta de experiência e de co-nhecimento do profissional em relação a atividades de estima-tivas e medição e que de fato contribui significativamente para

aumento dessa lacuna da engenharia de . A Tabela 1 mostra, na visão do autor, os atributos e/ou limitações que contribuem para a prática ineficiente em relação a geração e uso de métricas de e que foram classificados em organizacional/ambiente e técnico.

Organizacional/Ambiente Técnico

Falta de Experiência do Profissional Requisitos Imprecisos

Falta de Experiência em Projetos Similares Falta de Análise Estrutural da Métrica

Falta de ConhecimentoUtiliza dados históricos que muitas vezes nem

existem na organização/projeto.

Evolução da TI São Difíceis de Aplicar e de Verificar

Tabela 1. Atributos Contribuintes para o Uso Ineficiente de Métricas de Software

Com o intuito de avaliar o quão importantes são esses dados identificados como fatores de contribuição para o uso ineficiente de métricas por meio da percepção dos pro-fissionais de TI que lidam com atividades de estimativas e medição, buscou-se realizar um estudo de campo com algumas empresas de TI localizadas no Porto Digital em Recife/PE. O Porto Digital, é definido como um Arranjo Produtivo de Tecnologia da Informação e Comunicação e Economia Criativa, que está situado no Recife, capital de Pernambuco, no nordeste brasileiro e que surgiu do resultado do ambiente de inovação que se consolidou em Pernambuco, região atrativa para inovação, instituições, empresas, universidades e governos fomentaram mudanças econômicas e sociais.Sendo assim, um questionamento foi laçado: “Em sua opinião, quais os motivos para o uso ineficiente de métricas de software pela indústria de TI?”. Os dados apresentados a seguir são dados da pesquisa em formato parcial. Até

respondendo ao questionário e por meio dessas respostas será possível identificarmos se existe coerência em relação aos fatores apontados pela literatura. As Figuras 1 e 2 apresentam os dados estatísticos obtidos com a pesquisa de campo. Como pode-se perceber, foram elencadas como opções de respostas à essa pergunta muitos dos fatores identificados na literatura como contribuintes para uso ineficiente de métricas de . O intuito deste, foi verificar o quão frequente esses itens são representados em atividades profissionais de estimativa e medição mal sucedidas. Nessa questão o respondente pode escolher mais de uma alternativa como resposta.

respostas, apontaram que os requisitos irreais e/ou impreci-sos é a principal causa para o uso ineficiente de métricas. Em

-tam a falta de informação como sendo fator impulsionador do mal uso de métricas em projeto de . A inexperiência do profissional que trabalha com a elaboração e aplicação de

Page 4: Métricas de Softwarepublish.uwo.ca/~darruda3/Papers/Metrics.pdf · 38 Engenharia de Software Magazine - Métricas de Software Darlan Florêncio de Arruda dfa@ecomp.poli.br – Bacharel

Edição 67 - Engenharia de Software Magazine 41

ENGENHARIA

-bidas, cerca de seis respondentes, apontam a fator relacionado a falta de histórico de métricas de projetos já finalizados. 9% dos respondentes confirmam que muitas vezes a interpre-tação incorreta de dados contribui para esse gap relacionado da engenharia software. Entretanto, cerca de 7% de partici-pantes indica que o fator “tempo” é importante e contribui de forma negativa na criação de métricas. O fato de ser uma atividade considerada difícil de aplicar e a inexperiência em projetos similares foram apontados por 5% cada uma, como sendo fatores motivadores para esse problema em relação ao

da falta de uma análise estrutural do código e falta de com-prometimento da gerência como sendo atributos importantes para o uso ineficiente de métricas de

-taram a opção “Outros”, porém não especificaram quais seriam esses outros motivos.

ReflexãoSerá que podemos responder ao questionamento central de artigo baseado nos dados apresentados até o momento? Métricas de podem ser consideradas um pro-blema ou uma solução para quem as usam?De acordo com os dados obtidos na literatura e confirmados com o estudo de campo realizado na indús-tria de TI, percebe-se que métricas de é uma solução viável e organizada de se ter em um projeto, pois ajuda na avaliação da capaci-dade produtiva dos envolvidos no projeto, na elaboração de especi-ficações de qualidade de , validação e verificação de requisitos, tomada de decisão e em uma das atividades mais importantes dentro do gerenciamento de projetos - o planejamento. Entretanto, sabe-se que as ativi-dades de medição e estimativas não são realizadas corretamente pela indústria de TI e isso contribui para que a aplicação de métricas de

deixem de ser solução para passar a ser um problema, pois esti-mativas mal sucedidas contribuem para atrasos no cronograma, o que culminam em excessos orçamentais e que no final termina em estresse e insatisfação por parte do cliente. Figura 2. Número de Respostas por Item

Figura 1. Porcentagem de Respostas

Pode-se afirmar que a ocorrência de requisitos imprecisos ou irreais, a inexperiência do profissional e a falta de informação são fatores-chave para essa lacuna na engenharia de . Também percebe-se que não são fatores complicados de serem resolvidos. Para isso, uma boa metodologia de elicitação e comunicação de requisitos deve ser seguida, além de inves-timentos em capacitação dos profissionais que devem lidar diretamente com estimativas e medição. Métricas de proporcionam diversas vantagens para quem as usa, entretanto deve-se ressaltar que mesmo possibi-litando diversas vantagens, essa abordagem oferece algumas limitações. Através de uma análise realizada, foi possível inferir que mui-tas dessas limitações podem ser fatores que contribuem para

Page 5: Métricas de Softwarepublish.uwo.ca/~darruda3/Papers/Metrics.pdf · 38 Engenharia de Software Magazine - Métricas de Software Darlan Florêncio de Arruda dfa@ecomp.poli.br – Bacharel

42 Engenharia de Software Magazine - Métricas de Software

que estimativas e métricas sejam feitas de forma ineficiente. Algumas características que foram identificadas compreendem a falta de uma análise estrutural da métrica, a dificuldade de aplicação, o fato de ser um trabalho dispendioso e usam dados históricos e empíricos e que nem sempre estão disponíveis dentro da organização e/ou projeto, além da falta de conheci-mento e experiência do usuário e requisitos inconsistentes e/ou imprecisos. Essas limitações podem sim, contribuir para a incapacidade da indústria de TI em fazer um bom uso de métricas de . Foi possível identificar que muitos dos fatores identificados na literatura foram apontados por profissionais de TI que estão ligados diretamente a atividades de engenharia de software e que fatores como requisitos imprecisos ou irreais, a inexperi-ência do profissional e a falta de informação são fatores-chave para essa lacuna na engenharia de .

Links:

[1] BOUWERS, Eric; DEURSEN, Arie Van; VISSER, Joost. Evaluating Usefulness of Software Metrics - an Industrial Experience Report -.Software Engineering Research Group, Department of Software Technology, Faculty of Electrical Engineering, Mathematics and Computer Science, Delft University of Technology, 2013.

[2] CURTIS, Bill; SAPPIDI, Jay; SUBRAMANYAM, Jitendra. Measuring the Struc-tural Quality of Business Applications. 2011 Agile Conference, 2011b.

[3] FENTON, Norman E; NEIL, Martin. Software Metrics: A roadmap. ICSE ‘00 Proceedings of the Conference on The Future of Software Engineering, 2000.

[4] GOODMAN, Paul. Practical Implementation of Software Metrics, McGraw Hill, London, 1993.

[5] JOHARI, Kalpana; KAUR, Arvinder. Effect of software evolution on softwa-re metrics: An open source case study. ACM SIGSOFT Software Engineering Notes, 2011.

[6] MOLØKKEN, Kjetil; JØRGENSEN, Magne; A Review of Surveys on Software Effort Estimation. Proceedings of the 2003 International Symposium on Empirical Software Engineering, ISESE ‘03, IEEE Computer Society, pp.223-230, 2003..

[7] SINGH, Gurdev; SINGH, Dilbag; SINGH, Vkram. A Study of Software Metrics. IJCEM International Journal of Computational Engineering & Management, Vol. 11, January 2011.

[8] SINGH, Ram; BHAGAT, Avinash; KUMAR, Navdeep. Generalization of Software Metrics on Software as a Service (SaaS). International Conference on Computing Sciences, 2012.

Dê seu voto em www.devmedia.com.br/esmag/feedback

Ajude-nos a manter a qualidade da revista!

Você gostou deste artigo?