Prévia do material em texto
A disciplina de métricas de software refere-se à aplicação de técnicas quantitativas para medir e avaliar diferentes aspectos do processo de desenvolvimento de software, do produto resultante e do próprio processo de software. Essas métricas são utilizadas para fornecer insights sobre a qualidade, desempenho, eficiência e outros atributos relevantes do software. Aqui estão os principais aspectos dessa disciplina: 1. Objetivos das Métricas de Software - Avaliação da Qualidade: Medir e monitorar a qualidade do software ao longo do ciclo de vida do desenvolvimento. - Controle do Processo: Identificar áreas de melhoria no processo de desenvolvimento e garantir conformidade com padrões e práticas recomendadas. - Tomada de Decisão: Fornecer informações objetivas para apoiar decisões relacionadas ao desenvolvimento, manutenção e evolução do software. - Estimativas e Planejamento: Utilizar métricas históricas para estimar o esforço, custo e tempo necessários para projetos futuros. - Gestão de Riscos: Identificar e mitigar potenciais riscos relacionados ao desenvolvimento e manutenção do software. 2. Tipos de Métricas de Software - Métricas de Processo: Avaliam o processo de desenvolvimento, como tempo de ciclo, produtividade da equipe e taxa de defeitos. - Métricas de Produto: Avaliam características do produto de software, como tamanho, complexidade, desempenho e confiabilidade. - Métricas de Qualidade: Avaliam a qualidade do software com base em critérios como correção, confiabilidade, usabilidade e manutenibilidade. - Métricas de Projeto: Avaliam o design e a arquitetura do software, como coesão, acoplamento e conformidade com padrões de projeto. - Métricas de Teste: Avaliam a eficácia dos testes de software, incluindo cobertura de código, taxa de falhas e eficiência dos testes. 3. Métodos de Coleta de Métricas - Métricas Estáticas: Calculadas a partir do código-fonte ou da documentação do software sem a necessidade de execução do programa. - Métricas Dinâmicas: Obtidas através da execução do software, como tempo de execução, uso de recursos e resultados de testes. - Métricas Subjetivas: Coletadas por meio de avaliações humanas, como revisões de código, pesquisas de satisfação do usuário e análises de usabilidade. 4. Ferramentas e Técnicas de Métricas de Software - Ferramentas de Análise Estática: Como SonarQube, PMD, Checkstyle, que automatizam a análise do código-fonte e fornecem métricas relacionadas à qualidade. - Ferramentas de Análise Dinâmica: Como JUnit, Selenium, que automatizam a execução de testes e fornecem métricas de cobertura e eficácia dos testes. - Frameworks de Gerenciamento de Métricas: Como MetricsGrimoire, que ajudam a coletar, armazenar e visualizar métricas de software de várias fontes. 5. Desafios e Considerações Éticas - Seleção Adequada de Métricas: Escolher métricas relevantes e significativas para o contexto e os objetivos do projeto. - Interpretação Correta: Evitar interpretações equivocadas ou simplistas das métricas, considerando o contexto e outras variáveis. - Viés e Manipulação: Garantir a integridade e objetividade das métricas, evitando manipulações para atender a interesses pessoais ou organizacionais. - Privacidade e Segurança: Proteger informações sensíveis coletadas durante a medição e análise de métricas de software. 6. Benefícios das Métricas de Software - Melhoria Contínua: Identificar áreas de melhoria no processo de desenvolvimento e no produto de software. - Tomada de Decisão Informada: Basear decisões relacionadas a projetos de software em dados objetivos e quantitativos. - Avaliação da Qualidade: Monitorar a qualidade do software ao longo do tempo e avaliar o impacto de mudanças e melhorias. - Estimativas Precisas: Utilizar métricas históricas para estimar com maior precisão o esforço, custo e tempo necessários para projetos futuros