Romeu de Andrade Guimarães [email protected] SOFTWARES PARA COLETA AUTOMÁTICA DE MÉTRICAS 06/12/2008 AGENDA Motivação Medição Definição Objetivos Tipos Processos Problemas Coleta de Métricas Ferramentas para Automação da Coleta Requisitos Ferramentas Conclusões “Mede o que é mensurável e torna mensurável o que não o é.” Galileu Galilei “Não se consegue controlar o que não se consegue medir.” Tom DeMarco MOTIVAÇÃO MOTIVAÇÃO As aplicações dos dias de hoje: Cada vez mais complexas; Cada vez maiores; Necessidade de manutenção; Tudo isso em menos tempo. As Métricas entram em cena para: Obter informações sobre o produto e o processo; Objetivo de verificar e prever comportamentos; MOTIVAÇÃO Além disso Cada vez mais métricas são criadas; Custos associados à coleta; Automação da Coleta Coletas mais simples já podem ser feitas automaticamente e mais freqüentemente; Visa diminuir os custos relativos ao processo de medição. CMMI Motivação real para o início de adoção de métricas? MEDIÇÃO MEDIÇÃO Medidas Indicação quantitativa de tamanho, extensão, dimensão. Métricas Ato de determinar uma medida. Indicadores Métrica ou combinação de métricas que permitem a visualização de uma característica existente no produto, processo, ou projeto de software. MEDIÇÃO Definições Segundo Sommerville: É possível tirar conclusões sobre a qualidade do software ou dos processos de software de acordo com a comparação dos valores obtidos pelas métricas. Segundo Pressman: A medição é elemento chave de qualquer processo de engenharia. Usamos medidas para entender melhor os atributos dos modelos que criamos e para avaliar a qualidade dos produtos ou sistemas elaborados por esta engenharia. Segundo Fenton: Medição é o processo pelo qual números ou símbolos são associados aos atributos do mundo real de modo que os determinem de acordo com regras claramente definidas. MEDIÇÃO Objetivos Entender Avaliar Para determinar a situação em relação ao planejado. Prever Entender Para caracterizar processos, produtos, recursos e ambientes. Para ter um planejamento mais realista. Controlar Produtos, Processos e Serviços Controlar A partir da identificação de problemas através de informações quantitativas. Prever Avaliar MEDIÇÃO Tipos O que é medido? Produto Processo Qual o intuito da medição? Controlar Prever MEDIÇÃO Algumas Métricas de Produto Fan-in/Fan-out (também OO) Tamanho do código fonte Complexidade ciclomática Extensão dos identificadores Profundidade de declarações condicionais aninhadas OO – Profundidade da árvore de herança OO – Número de operações sobrepostas ... MEDIÇÃO Métricas de Processo Classes: Tempo gasto para conclusão do processo Recursos necessários para um dado processo Número de ocorrências de um evento Como Uso saber o que medir? de GQM (goal-question-metric) Associa questões técnicas aos objetivos /metas da organização MEDIÇÃO Processos Normalmente fazem parte do processo de controle de qualidade de software; Processo básico: A seguir será apresentado o PSM Existem vários outros modelos (CMMI-SW, IEEE Std 1061, SixSigma, ISSO/IEC 15939...) MEDIÇÃO PSM MEDIÇÃO Problemas comuns Falta de apoio da gerência sênior Medir Muito/Medir Cedo Medir Pouco/Medir Tarde Medir as coisas erradas Definição imprecisa das métricas Uso de métricas para avaliar os indivíduos Uso de métricas para motivar, ao invés de entender Coleta de dados que não serão usados Falta de comunicação e treinamento Má interpretação dos dados das Métricas COLETA COLETA A princípio métricas do Produto tendem a ser mais fáceis de coletar por serem mais fáceis de tornar automáticas. Por outro lado, a coleta de métricas do Processo são mais dispendiosas e normalmente interferem no dia-a-dia dos engenheiros de software. COLETA Outro grande problema é garantir a consistência dos dados coletados devido a grande intervenção humana Com isso surge a necessidade de criar mecanismos para coleta de métricas com o mínimo de intervenção possível. FERRAMENTAS FERRAMENTAS Porque usá-las? Coleta de dados precisa e eficiente Suporte em tempo real para decisões Segurança dos dados e privacidade Relatórios funcionais FERRAMENTAS Requisitos Prover um mecanismo de persistência das métricas coletadas Prover acesso aos indicadores existentes Prover a criação de novos indicadores a partir dos préexistentes Prover integração entre as mais variadas ferramentas Prover mecanismos de coleta configuráveis Prover a geração de relatórios a partir dos dados coletados ... FERRAMENTAS Poucas disponíveis Não existe uma ferramenta OpenSource que disponibilize as funcionalidades citadas Algumas ferramentas citadas em artigos e pesquisas não são de fácil acesso (dificuldade de encontrá-las para realizar testes). CONCLUSÕES CONCLUSÕES Poucas empresas no Brasil utilizam processos de medição bem definidos; As Métricas representam uma ferramenta importantíssima para facilitar a gestão de projetos e garantir qualidade; As ferramentas de coleta de métricas automáticas têm papel fundamental para viabilizar a implantação de processos de medição efetivos; CONCLUSÕES As ferramentas de coleta precisam funcionar de forma mais transparente possível e com a menor quantidade de interação; É primordial que a ferramenta dê suporte ao maior número possível de ferramentas CASE de forma a facilitar a integração e coleta de informações; Necessário tornar essas ferramentas acessíveis. REFERÊNCIAS [1] Abran, A., Moore, J. (2004) “Guide to the Software Engineering Body of Knowledge”. Disponível em http://www.swebok.org/pdfformat.html [2] Aguiar, M. “PSM – O CMM da Mensuração de Software”. Disponível em http://www.metricas.com.br/downloads/PSM_CMM_Mensuracao_Software.pdf [3] Feitosa, C. (2004) “Definição de um Processo de Medição e Análise com base nos Requisitos do CMMI” [4] Johnson, P. et. al. “Practical automated process and product metric collection and analysis in a classroom setting: Lessons learned from Hackystat-UH”. Disponível em http://www.ics.hawaii.edu/research/tech-reports/ICS2004-08-02.pdf [5] Oliveira, J., et. al. (2006) “Measurement Process: A Mapping Among CMMI-SW, ISO/IEC 15939, IEEE Std 1061, Six Sigma and PSM”. Disponível em http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=4114537&isnumber=4114391 [6] Park, R., et. al.(1996) “Goal-Driven Software Measurement – A Guidebook”. Disponível em http://www.sei.cmu.edu/pub/documents/96.reports/pdf/hb002.96.pdf [7] Pressman, R. (2006) “Engenharia de Software” 6.ed. São Paulo: McGraw-Hill. [8] Ronkainen, J., et. al.“Automating SCM Metric Data Collection and Analysis in Virtual Software Corporations”. Disponível em http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=00794792 [9] Sillitti, A., et. al.(2004) “Deploying, Updating, and Managing Tools for Collecting Software Metrics”. Disponível em http://www.agile-itea.org/public/papers/sillitti-russo-zuliani-succi.pdf [10] Scotto, M. et. al. (2004) “Non-invasive product metrics collection: an Architecture”. Disponível em http://www.unibz.it/web4archiv/objects/pdf/cs_library/noninvasive_product_metrics_collection__an_architecture.pdf [11] Sommerville, I. (2005) “Engenharia de Software”. 6.ed. São Paulo: Pearson Addison Wesley. [12] Statz, J. (2005) “Measurement for Process Improvement”. Disponível em http://www.psmsc.com/Downloads/TechnologyPapers/PI_Measurement_v1.0.pdf Romeu de Andrade Guimarães [email protected] SOFTWARES PARA COLETA AUTOMÁTICA DE MÉTRICAS 06/12/2008