APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO...
Transcript of APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO...
![Page 1: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/1.jpg)
APLICATIVO PARA CÁLCULO DE MÉTRICA
DE SOFTWARE EM CÓDIGO-FONTE PL/SQL
Karine Trevisani CunhaAlexander Roberto Valdameri - Orientador
![Page 2: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/2.jpg)
Roteiro
• Introdução• Objetivos• Motivação• Fundamentação Teórica• Desenvolvimento
– Especificação (requisitos e diagramas)– Implementação (trechos importantes)
• Operacionalidade• Conclusão• Extensões• Relevância Pessoal
![Page 3: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/3.jpg)
Introdução
• Métrica de software• Complexidade Ciclomática (CC) proposta
por McCabe• Códigos escritos em PL/SQL
![Page 4: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/4.jpg)
Objetivos
• Calcular a métrica da CC em códigos PL/SQL
– Identificar as quebras de fluxo do código– Gerar o resultado, acompanhado de um
parecer
![Page 5: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/5.jpg)
Motivação
• Necessidade da empresa• Mensuração de sistemas legado• Avaliação da complexidade• Possibilidade de melhoria• Diminuição dos custos de manutenção• Somente códigos Delphi e Java
![Page 6: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/6.jpg)
Métricas de Software
• “Não se pode controlar o que não se pode medir.” (De Marco, 1989)
• Classificação– Processo
– Produto
• A métrica deste trabalho é de produto
• Crescente preocupação das empresas em mensurar sistemas.• As métricas vem se aprimorando.• Hoje são amplamente utilizadas.
![Page 7: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/7.jpg)
Teste de Software
• Testar para obter qualidade• Antes, durante e depois• Ocorrência de erros por várias causas• A atividade deve ter especial atenção• Tipos de teste mais conhecido
– Caixa Preta
– Caixa Branca• Teste do caminho básico
• Estrutural, realizado com base nos códigos gerados
• Funcional, simula ação do usuário
![Page 8: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/8.jpg)
Manutenibilidade
• Processo de modificação após entrega• Atributo de qualidade da ISO/IEC 9126-1• Pode corresponder a 70% do custo do
sistema• Um dos aspectos para o calculo:
complexidade• Ciência do Software e Complexidade
Ciclomática
![Page 9: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/9.jpg)
Ciência do Software
• Métrica de Halstead• Calculada após a geração do código• Formado basicamente de operadores e
operandos
• São gerados valores como o comprimento global do programa, o nível do programa, o nível da linguagem, entre outros.
número total de ocorrências de operandos N2
número total de ocorrências de operadores N1
número de operandos distintos n2
número de operadores distintos n1
![Page 10: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/10.jpg)
Complexidade Ciclomática
• Mede testabilidade e manutenibilidade• Proposta por McCabe na década de 70• Mostra o quanto um programa é complexo• Resulta um único número• O resultado pode ser comparado,
independente da linguagem• Costuma ser representado por um grafo
com uma entrada e uma saída, mostrando o fluxo de ações
![Page 11: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/11.jpg)
Complexidade Ciclomática
• Testabilidade: número mínimo de casos de teste necessários para testar todos os caminhos independentes
• Manutenibilidade: observar a classificação a seguir:
programa incompreensível, risco muito alto maior que 50
programa de risco elevado 21 - 50
programa mais complexo, risco moderado. 11 - 20
programa simples, sem muito risco. 1 - 10
Avaliação do RiscoCC
Quanto menor a CC, menor esforço pra manter o siste maSe CC muito grande, quebrar código em vários módulo s
![Page 12: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/12.jpg)
Notação de Fluxo
• Representação gráfica de um módulo de software
• Cada estrutura lógica tem sua própria representação
![Page 13: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/13.jpg)
Complexidade Ciclomática
• Fórmula:
CC = E – N + p» E = número de arestas
» N = número de nós
» p = número de entradas e saídas
• Como só existe uma entrada e uma saída, p é sempre igual a 2
• Graficamente, é também o nº. de regiões
![Page 14: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/14.jpg)
PL/SQL
• Extensão procedural da linguagem SQL• Apresenta basicamente a seguinte estrutura:
• Dois tipos de construções condicionais: IF e LOOP
DECLARE-- Bloco de declaração (opcional)
BEGIN-- Programa propriamente dito
EXCEPTION-- Bloco de exceções (opcional)END
![Page 15: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/15.jpg)
Estruturas Condicionais
• Caracterizam uma quebra no fluxo de dados
DECLAREv_nro_ordem
item.nro_ordem%TYPE := 100;v_contador NUMBER(2):= 0;BEGIN
WHILE v_contador < 10 LOOPINSERT INTO (nro_ordem, seq)VALUES (v_nro_ordem, v_contador);
v_contador := v_contador + 1;END LOOP;
END;
DECLAREv_nro_ordem
item.nro_ordem%TYPE := 100;BEGIN
FOR i IN 1..10 LOOPINSERT INTO (nro_ordem, seq)VALUES (v_nro_ordem, v_contador);
END LOOP;END;
DECLAREv_nro_ordem
item.nro_ordem%TYPE := 100;v_contador NUMBER(2):= 1;BEGIN
LOOPINSERT INTO item(nro_ordem, seq)VALUES (v_nro_ordem, v_contador);
v_contador := v_contador + 1;EXIT WHEN v_contador > 50;
END LOOP;END;
IF v_comeco > 100 THENv_comeco := 2 * v_comeco;
ELSIF v_comeco >= 50 THENv_comeco := 0.5 * v_comeco;
ELSEv_comeco := 0.1 * v_comeco;
END IF;
IF v_data_conclu > v_data_prev THENv_flag := ‘Atrasada’;
ELSEv_flag := ‘Adiantada’;
END IF;
IF v_nome = ‘MARCELO’ THENv_cargo := ‘GERENTE’;v_depto := 7;v_salario := sal * 0.20;
END IF;
![Page 16: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/16.jpg)
Exemplo
![Page 17: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/17.jpg)
Resolução
• CC = E - N + 2
E = 9N = 7
CC = 4
1 - 2 - 3 - 4 - 5 - 6 - 1 - 7 4
1 - 2 - 3 - 5 - 6 - 1 - 7 3
1 - 2 - 5 - 6 - 1 - 7 2
1 - 7 1
Usando a outra maneira, apenas
gráfica, o resultado é o mesmo, são 4 regiões distintas
![Page 18: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/18.jpg)
Trabalhos Correlatos
• Possamai (2000) - Métricas para Pascal• Seibt (2001) - Métricas OO• Gonçalves (2003) - Métricas e testes para
Delphi
![Page 19: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/19.jpg)
Requisitos
• Importação de arquivos PL/SQL (RF)
• Reconhecer quebras de fluxo de dados (RF)
• Apresentar resultado com um parecer (RF)
• Gravar resultado em arquivos externos (RF)
• Ser desenvolvido em Java (RNF)
• Usar a métrica conforme McCabe (RNF)
![Page 20: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/20.jpg)
Especificação
• Inicialmente especificado para operação em modo console
• Versão final da especificação visando operação em modo gráfico
• Foram utilizados os conceitos dos diagramas da UML
• Foram criados os diagramas de caso de uso e de classes para o aplicativo.
• Especificado através da ferramenta Enterprise Architect
![Page 21: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/21.jpg)
Caso de UsoContempla os requisitos de importação de arquivos e reconhecimento de quebras
Contempla o requisito de apresentar o resultado com parecer
Contempla o requisito de gravar o resultado em arquivos externos
![Page 22: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/22.jpg)
Diagrama de Classes
![Page 23: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/23.jpg)
Desenvolvimento
• Criada uma versão console e outra gráfica• Ambas implementadas em Java 1.4.2• Versão console - ferramenta Eclipse• Versão gráfica - ferramenta Net Beans
![Page 24: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/24.jpg)
Codificação
• String Tokenizer
![Page 25: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/25.jpg)
Codificação
• Cálculo da CC
![Page 26: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/26.jpg)
Versão Console
Rotina de Ajuda →
← Geração do Resultado
![Page 27: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/27.jpg)
Operacionalidade
• Tela principal
Botão de cálculo Botão Sobre...
Escolha de arquivos Arquivo escolhido
![Page 28: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/28.jpg)
Operacionalidade
• Tela de Resultados
Classificação
Nova análise
Salvar em arquivo
Área de resultados
![Page 29: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/29.jpg)
Conclusões
• Cenário real da empresa
• Diferente dos outros trabalhos
• Objetivos alcançados.
Será continuada a versão console e adequada à empresa.Com isso o QA poderá ter estatísticas sobre os sistemas implantados e novos desenvolvimentos
Por não usar estruturas gráficas como os demais, não foi preciso BNF e nem fazer o cálculo por arestas e nós
![Page 30: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/30.jpg)
Extensões
• Sugestões para trabalhos futuros e aperfeiçoamentos:– Sub-rotinas críticas;
– Outras métricas;– Leitura do banco de dados;
– Base de dados dos resultados;– Linguagem PL para outros bancos;
– Outras linguagens procedurais.
![Page 31: APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO ...campeche.inf.furb.br/tccs/2006-I/2006-1karinetrevisanicunhaap.pdf · CC = E – N + p » E = número de arestas » N](https://reader035.fdocumentos.com/reader035/viewer/2022070115/60ab09f0bebb433c1d3f584b/html5/thumbnails/31.jpg)
Relevância Pessoal
• Consolidação dos conceitos de desenvolvimento de projetos;
• Notoriedade conseguida dentro da empresa;
• Aprendizado da linguagem Java;• Mais uma etapa vencida.