Medindo a Estrutura
A medição das propriedades estruturais de um software é importante para estimar o esforço de desenvolvimento e também para a manutenção do produto. A estrutura de requisitos, design e código ajuda a entender a dificuldade que surge na conversão de um produto em outro, no teste de um produto ou na previsão dos atributos externos do software a partir das primeiras medidas internas do produto.
Tipos de medidas estruturais
A estrutura do software tem três partes. Eles são -
Control-flow structure - É a seqüência em que as instruções são executadas em um programa.
Data-flow structure - É o comportamento dos dados à medida que interage com o programa.
Data structure - É a organização dos elementos de dados na forma de listas, fila, pilhas ou outras estruturas bem definidas junto com algoritmo para criar, modificar ou excluir.
Estrutura de medição de controle-fluxo
As medidas de fluxo de controle são geralmente modeladas com gráfico direcionado, onde cada nó ou ponto corresponde às declarações do programa, e cada arco ou borda direcionada indica o fluxo de controle de uma declaração para outra. Esses gráficos são chamados de gráfico de fluxo de controle ou gráfico direcionado.
E se ‘m’ é uma medida estrutural definida em termos do modelo de gráfico de fluxo, e se o programa A é estruturalmente mais complexo do que o programa B, então a medida m(A) deve ser maior que m(B).
Medindo Estrutura de Fluxo de Dados
O fluxo de dados ou fluxo de informações pode ser intermodular (fluxo de informações dentro dos módulos) ou intramodular (fluxo de informações entre módulos individuais e o resto do sistema).
De acordo com a forma como os dados estão se movendo pelo sistema, eles podem ser classificados da seguinte forma -
Local direct flow - Se um módulo invoca um segundo módulo e passa informações para ele ou o módulo invocado retorna um resultado para o responsável pela chamada.
Local indirect flow - Se o módulo invocado retornar informações que são subsequentemente passadas para um segundo módulo invocado.
Global flow - Se a informação flui de um módulo para outro por meio de uma estrutura de dados global.
A complexidade do fluxo de informações pode ser expressa de acordo com Henry e Kafura como,
Information flow complexity (M) = length (M) × fan-in (M) × (fan-out (M))2
Onde,
Fan-in (M) - O número de fluxos locais que terminam em M + o número de estruturas de dados a partir das quais a informação é recuperada por M.
Fan–out (M) - O número de fluxos locais que emanam de M + o número de estruturas de dados que são atualizadas por M.
Medindo Estrutura de Dados
A estrutura de dados pode ser ambas local e global.
Locally, a quantidade de estrutura em cada item de dados será medida. Uma abordagem da teoria dos gráficos pode ser usada para analisar e medir as propriedades de estruturas de dados individuais. Nesses tipos de dados simples, como inteiros, caracteres e booleanos, são vistos como primos e as várias operações que nos permitem construir estruturas de dados mais complexas são consideradas. As medidas da estrutura de dados podem então ser definidas hierarquicamente em termos de valores para os primos e valores associados às várias operações.
Globally, uma contagem do número total de variáveis definidas pelo usuário será medida.