Please enable JavaScript.
Coggle requires JavaScript to display documents.
G1-2 Métricas de Software: Métricas Aplicadas à Melhoria de Processos de…
G1-2 Métricas de Software: Métricas Aplicadas à Melhoria de Processos de Software
Ferramentas
Sonar
Projeto Open Source em Java para avaliar a qualidade código
Site:
https://www.sonarqube.org/
Obs: Imagens no documento
Métodos para dimensionar um Software
Ponto de Função (APF)
Composto por três fases
Componentes considerados
Etapas do processo de contagem
Aplicação de contagem
Medida através dos pontos de funções
Funcionalidades que o Software possui através do ponto de vista do usuário
Os cálculos devem seguir o manual: Manual de Práticas de Contagem do IFPUG
Pontos por caso de Uso (UCP)
Elaborado por Gustav Karner em 1993
Tem base no APF
Avalia o sistema
através da análise da forma como os usuários utilizarão o sistema
estudo dos passos para efetuar cada atividade
Pode mensurar o sistema na fase de levantamento de requisitos do projeto
Cálculos
UCP = UUCP * TCF * ECF
Karner sugere a aplicação de 20 horas/homem por ponto de UCP
Estimativa (horas) = UCP * 20
Mostrar tabelas:
http://www.csi.uneb.br/engenharia_de_software/anexos/Artigo-MetricasdeSoftware.pdf
Linhas de código (LOC)
Método mais comum em métricas de Software
Exemplo
for (i = 0; i < 100; i++) printf("ola"); /
comentario
/
1 Linha de código total (LOC)
2 Linhas de código lógico (LLOC) (For e Printf)
1 Linha de comentário
Linhas de código em um método
Requisitos de um sistema de Software
Funcionais
Não funcionais
De Domínio
O que é métrica?
Atributo
Medição
Medida
Medir
Medidas se dividem em:
Diretas
Custo
Esforço
Linhas de Código
Velocidade de Execução
Memória
Número de Erros
Indiretas
Funcionalidade
Qualidade
Complexidade
Eficiência
Confiabilidade
Manutenibilidade
Propriedades Desejáveis em Métricas de Software
Facilmente calculada, entendida e
testada
Passível de estudos estatísticos
Expressa em alguma unidade
(tempo, pessoas, $)
Obtida o mais cedo possível no ciclo
de vida do software
Passível de automação
Comprometida com uma estratégia
de melhoria
O que é um Processo de Software?
Segundo Sommerville, [O processo é] um conjunto de atividades e resultados associados que produzem um produto de software.
Segundo Schwartz, as Principais fases do processo de Software são:
Especificação de Requisitos:
tradução da necessidade ou requisito operacional para uma descrição da funcionalidade a ser executada.
Projeto de Sistema:
tradução destes requisitos em uma descrição de todos os componentes necessários para codificar o sistema.
Programação (Codificação):
produção do código que controla o sistema e realiza a computação e lógica envolvida.
Verificação e Integração (Verificação):
verificação da satisfação dos requisitos iniciais pelo produto produzido.
Problemas com Métricas de Software
Exemplo: Comparar a produtividade de
engenheiros em termos de linha de
código
Como o resultado será interpretado?
O que se quer com o resultado?
Está sendo utilizado uma Unidade de medida?
O que se quer realmente é o tamanho
do código?
Métricas de Software
Principais Vantagens
Reduzir os defeitos e outros problemas do produto
Reduzir os custos e prazos do projeto
Aumentar o retorno do investimento da organização em processos, tecnologia e treinamento
Aumentar a exatidão das previsões sobre custos e prazos dos projetos
Identificar necessidades de novos investimentos em processos, tecnologia e treinamento
Por que medir?
Simplicidade e baixo custo
Avaliar e tomar decisões
Proporcionar bases de comparação
Para gerenciar o projeto
Para avaliar a qualidade do produto e do processo
Ordem: Lilás, amarelo, azul, laranja, verde