O termo complexidade se destaca no estado de eventos ou coisas, que têm múltiplos interconectados extremamente complexas ligações e estruturas. Em programação de software, como a concepção de software é realizado, o número de elementos e suas interconexões progressivamente emergir para ser grande, que se torna muito difícil de compreender de uma vez.
Projeto de Software complexidade é difícil avaliar sem utilizar medidas métricas e complexidade. Vamos ver três importantes medidas complexidade do software.
Em 1977, o Sr. Maurice Howard Halstead introduziu as métricas para medir complexidade do software. Halstead métricas do depende da efetiva implementação do programa e as suas medidas, que são calculados diretamente a partir dos operadores e operandos do código fonte, de maneira estática. Ela permite avaliar tempo de ensaio, o vocabulário, o tamanho, as dificuldades, os erros e os esforços de C/C++ /Java código-fonte.
Segundo Halstead, "um programa de computador é uma implementação de um algoritmo considerado para ser um conjunto de fichas que podem ser classificados como operadores ou operandos". Halstead métricas pensar um programa como uma seqüência de operadores e os seus associados os operandos.
Ele define vários indicadores para verificar complexidade do módulo.
Parâmetro | Significado |
---|---|
N1 | Número de operadores exclusivos |
N2 | Número de operandos |
N1 | Número total de ocorrência dos operadores |
N2 | Número total de ocorrência de operandos |
Quando queremos selecionar arquivo de código-fonte para ver os detalhes em sua complexidade Métrica Viewer, o seguinte resultado é visto no relatório de métricas.
Métrica | Significado | Representação Matemática |
---|---|---|
N | Vocabulário | N1 + n2 |
N | Tamanho | N1 + N2 |
V | Volume | Duração * Log2 Vocabulário |
D | Dificuldade | (N1/2) * (N1/N2) |
E | Esforços | Dificuldade * Volume |
B | Erros | Volume / 3000 |
T | Tempo de teste | Tempo = esforços / S, onde S=18 segundos. |
Cada programa inclui comandos para executar, a fim de realizar alguma tarefa e outras declarações de tomada de decisão que decidir, o que as declarações têm de ser executados. Estas decisões constrói alterar o fluxo do programa.
Se compararmos dois programas de mesmo tamanho, um com mais declarações de tomada de decisão será mais complexo, como o controle de programa salta com frequência.
McCabe, no ano de 1976, propôs medida complexidade Cyclomatic para quantificar complexidade de um determinado software. É gráfico circular modelo que é baseado na tomada de decisões construtos de programa como se de outra coisa, do-while, repeat-até, switch-case e vá para as declarações.
Processo de controle de fluxo gráfico.
Se o controlo pode sucursal do bloco i bloco j
Desenhar um arco
De saída nó nó de entrada
Desenhar um arco.
Para calcular complexidade Cyclomatic de um módulo de programa, usamos a fórmula -
V(G) = e – n + 2 Where e is total number of edges n is total number of nodes
O Cyclomatic complexidade do referido módulo é
e = 10 n = 8 Cyclomatic Complexity = 10 - 8 + 2 = 4
Segundo P. Jorgensen, Cyclomatic complexidade de um módulo não deve exceder 10.
É amplamente utilizado para medir o tamanho do software. Função Ponto centra-se na funcionalidade fornecida pelo sistema. Recursos e funcionalidades do sistema são utilizados para medir a complexidade do software.
Função contagem de pontos em cinco parâmetros, denominados Entrada Externa, Saída Externa, lógico arquivos internos, arquivos de Interface Externa, e inquérito externo. Ao considerar a complexidade do software cada parâmetro é ainda classificado como simples, média ou complexo.
Vamos ver os parâmetros da função ponto:
Cada entrada exclusivo para o sistema, a partir do exterior, é considerado como entrada externa. Unicidade de entrada é medido, como não há duas entradas devem ter mesmos formatos. Estas entradas podem ser dados ou parâmetros de controle.
Simples - se a entrada contagem é baixa e afeta menos arquivos internos
Complexo - se a entrada é alta e afeta mais arquivos internos
Média - entre simples e complexo.
Todos os tipos de saída fornecida pelo sistema são contadas nesta categoria. Saída é considerado exclusivo se o seu formato de saída e/ou de transformação são únicos.
Simples - se a saída é baixa contagem
Complexo - se alta contagem de saída é
Média - entre simples e complexo.
Cada sistema de software mantém arquivos internos, a fim de manter suas informações funcionais e para funcionar corretamente. Estes arquivos possuem os dados lógicos do sistema. Isso lógico de dados pode conter ambos os dados funcionais e controle de dados.
Simples - se o número de tipos de registro são baixos
Complexo - se o número de tipos de registro são de alta
Média - entre simples e complexo.
Sistema de Software pode ser necessário para partilhar os seus ficheiros com alguns softwares externos ou pode ser necessário para passar o arquivo para processamento ou como parâmetro para alguma função. Todos esses processos são contadas como arquivos de interface externa.
Simples - se o número de tipos de registro no arquivo compartilhado são baixos
Complexo - se o número de tipos de registro no arquivo compartilhado são elevados
Média - entre simples e complexo.
O inquérito é uma combinação de entrada e de saída, no qual o usuário envia alguns dados para informar-se sobre como entrada e o sistema responde ao usuário com a saída de inquérito processado. A complexidade de uma consulta é mais do que externo de entrada e saída externa. Consulta é dito para ser único, se sua entrada e saída são únicos em termos de formato e de dados.
Simples - se a consulta precisa de baixas produtividades processamento e pequena quantidade de dados de saída
Complexo - se a consulta precisa de um alto rendimento e grande quantidade de dados de saída
Média - entre simples e complexo.
Cada um desses parâmetros, o sistema é dado weightage segundo a sua classe e complexidade. O quadro abaixo cita o weightage dada para cada parâmetro:
Parâmetro | Simples | Média | Complexo |
---|---|---|---|
As entradas | 3 | 4 | 6 |
Saídas | 4 | 5 | 7 |
Inquérito | 3 | 4 | 6 |
Arquivos | 7 | 10 | 15 |
Interfaces | 5 | 7 | 10 |
A tabela acima dos rendimentos Função-primas pontos. Essas funções são ajustadas de acordo com a complexidade do ambiente. Sistema é descrito com catorze características diferentes:
Estas características são então classificados de 0 a 5, conforme indicado abaixo:
Todas as classificações são então somados como N. o valor de N varia de 0 a 70 anos (14 tipos de características x 5 tipos de classificações). Ele é usado para calcular complexidade fatores de ajuste (CAF), usando a seguinte fórmula:
CAF = 0.65 + 0.01N
Em seguida,
Delivered Function Points (FP)= CAF x Raw FP
O FP pode então ser usado em vários quesitos, tais como:
Custo = $ / FP
Qualidade = Erros / FP
Produtividade = FP / pessoa-mês