APLICATIVO PARA CÁLCULO DE MÉTRICA DE …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... ·...

31
APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO-FONTE PL/SQL Karine Trevisani Cunha Alexander Roberto Valdameri - Orientador

Transcript of APLICATIVO PARA CÁLCULO DE MÉTRICA DE …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... ·...

Page 1: APLICATIVO PARA CÁLCULO DE MÉTRICA DE …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

Exemplo

Page 17: APLICATIVO PARA CÁLCULO DE MÉTRICA DE …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

Diagrama de Classes

Page 23: APLICATIVO PARA CÁLCULO DE MÉTRICA DE …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

Codificação

• String Tokenizer

Page 25: APLICATIVO PARA CÁLCULO DE MÉTRICA DE …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

Codificação

• Cálculo da CC

Page 26: APLICATIVO PARA CÁLCULO DE MÉTRICA DE …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

Versão Console

Rotina de Ajuda →

← Geração do Resultado

Page 27: APLICATIVO PARA CÁLCULO DE MÉTRICA DE …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

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 …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2006-1... · • Atributo de qualidade da ISO/IEC 9126-1 • Pode corresponder a 70% do custo

Relevância Pessoal

• Consolidação dos conceitos de desenvolvimento de projetos;

• Notoriedade conseguida dentro da empresa;

• Aprendizado da linguagem Java;• Mais uma etapa vencida.