Métrica de software - Software metric
Desenvolvimento de software |
---|
Uma métrica de software é um padrão de medida do grau em que um sistema ou processo de software possui alguma propriedade. Mesmo que uma métrica não seja uma medida (métricas são funções, enquanto medidas são os números obtidos pela aplicação de métricas), frequentemente os dois termos são usados como sinônimos. Como as medições quantitativas são essenciais em todas as ciências, há um esforço contínuo dos profissionais e teóricos da ciência da computação para trazer abordagens semelhantes para o desenvolvimento de software. O objetivo é obter medições objetivas, reproduzíveis e quantificáveis, que podem ter inúmeras aplicações valiosas em planejamento de cronograma e orçamento, estimativa de custo, garantia de qualidade, teste, depuração de software, otimização de desempenho de software e atribuições de tarefas de pessoal ideais.
Medidas de software comuns
As medições de software comuns incluem:
- ABC Software Metric
- De indicadores equilibrados
- Bugs por linha de código
- Cobertura de código
- Coesão
- Densidade de comentários
- Componentes de software Connascent
- Modelo de Custo Construtivo
- Acoplamento
- Complexidade ciclomática ( complexidade de McCabe)
- Densidade de complexidade ciclomática
- Densidade de defeito - defeitos encontrados em um componente
- Potencial de defeito - número esperado de defeitos em um determinado componente
- Taxa de remoção de defeitos
- DSQI (índice de qualidade da estrutura de design)
- Pontos de função e pontos de função automatizados, um padrão de grupo de gerenciamento de objetos
- Complexidade Halstead
- Comprimento do caminho de instrução
- Índice de manutenção
- Número de linhas de código
- Tempo de execução do programa
- Tempo de carregamento do programa
- Tamanho do programa (binário)
- Micro Pontos de Função Ponderados
- Medidas de características de qualidade automatizadas CISQ
- Tempo de ciclo (software)
- Rendimento da primeira passagem
- Probabilidade de Compromisso Corretivo
Limitações
Como o desenvolvimento de software é um processo complexo, com alta variação em ambas as metodologias e objetivos, é difícil definir ou medir as qualidades e quantidades de software e determinar uma métrica de medição válida e simultânea, especialmente ao fazer tal previsão antes do design de detalhes. Outra fonte de dificuldade e debate é determinar quais métricas são importantes e o que significam. A utilidade prática das medições de software foi, portanto, limitada aos seguintes domínios:
- Agendamento
- Dimensionamento de software
- Complexidade de programação
- Estimativa de esforço de desenvolvimento de software
- Qualidade de software
Uma medição específica pode ter como alvo um ou mais dos aspectos acima, ou o equilíbrio entre eles, por exemplo, como um indicador da motivação da equipe ou desempenho do projeto.
Além disso, as métricas variam entre código de programa estático e dinâmico, bem como para software orientado a objetos (sistemas).
Aceitação e opinião pública
Alguns profissionais de desenvolvimento de software apontam que medições simplistas podem causar mais danos do que benefícios. Outros notaram que as métricas se tornaram parte integrante do processo de desenvolvimento de software. O impacto da medição na psicologia do programador levantou preocupações sobre os efeitos prejudiciais ao desempenho devido ao estresse, ansiedade de desempenho e tentativas de enganar as métricas, enquanto outros acham que tem um impacto positivo no valor dos desenvolvedores para seu próprio trabalho e evita que sejam subestimados. Alguns argumentam que a definição de muitas metodologias de medição são imprecisas e, consequentemente, muitas vezes não está claro como as ferramentas para computá-los chegam a um resultado específico, enquanto outros argumentam que a quantificação imperfeita é melhor do que nada ("Você não pode controlar o que pode" t medir. ”). As evidências mostram que as métricas de software estão sendo amplamente utilizadas por agências governamentais, militares dos EUA, NASA, consultores de TI, instituições acadêmicas e software de estimativa de desenvolvimento acadêmico e comercial .
Leitura adicional
- J. Smith, Introdução à Programação Linear , Acme Press, 2010. Um texto introdutório.
- Reijo M.Savola, Qualidade de métricas e medições de segurança, Computadores e Segurança, Volume 37, setembro de 2013, Páginas 78-90.
Veja também
- Objetivo Pergunta-Métrica
- Lista de ferramentas para análise estática de código
- Classificação de defeito ortogonal
- Engenharia de software
- Métricas do pacote de software
Referências
links externos
- Métricas de software (SQA.net)
- Métricas de engenharia de software: o que eles medem e como sabemos
- NASA Standard NASA-STD-8739.8 (Software Assurance e Software Safety Standard)
- Métricas de código-fonte HIS ( desatualizadas, mas para referência ; relacionadas, consulte AUTOSAR )
- HIS Source Code Metrics versão 1.3.1 01.04.2008 ( desatualizado, mas para referência ; relacionado, consulte AUTOSAR )
- Uma estrutura para métricas de código-fonte
- NASA.gov
- Definições de métricas SonarQube
- Metrics of Object Oriented Software (2010)