Atributos de produto interno

Os atributos internos do produto descrevem os produtos de software de uma forma que depende apenas do próprio produto. A principal razão para medir os atributos internos do produto é que isso ajudará a monitorar e controlar os produtos durante o desenvolvimento.

Medindo Atributos de Produto Interno

Os principais atributos internos do produto incluem size e structure. O tamanho pode ser medido estaticamente sem a necessidade de executá-los. O tamanho do produto nos informa sobre o esforço necessário para criá-lo. Da mesma forma, a estrutura do produto desempenha um papel importante no projeto de manutenção do produto.

Medindo o tamanho

O tamanho do software pode ser descrito com três atributos -

  • Length - É o tamanho físico do produto.

  • Functionality - Descreve as funções fornecidas pelo produto ao usuário.

  • Complexity - A complexidade é de diferentes tipos, como.

    • Problem complexity - Mede a complexidade do problema subjacente.

    • Algorithmic complexity - Mede a complexidade do algoritmo implementado para resolver o problema

    • Structural complexity - Mede a estrutura do software usado para implementar o algoritmo.

    • Cognitive complexity - Mede o esforço necessário para entender o software.

A medição desses três atributos pode ser descrita da seguinte forma -

comprimento

Existem três produtos de desenvolvimento cuja medição de tamanho é útil para prever o esforço necessário para a previsão. Eles são especificação, design e código.

Especificação e design

Esses documentos geralmente combinam texto, gráfico e diagramas e símbolos matemáticos especiais. A medição de especificação pode ser usada para prever o comprimento do design, que por sua vez é um preditor do comprimento do código.

Os diagramas nos documentos têm sintaxe uniforme, como dígrafos rotulados, diagramas de fluxo de dados ou esquemas Z. Como os documentos de especificação e projeto consistem em textos e diagramas, seu comprimento pode ser medido em termos de um par de números que representam o comprimento do texto e o comprimento do diagrama.

Para essas medições, os objetos atômicos devem ser definidos para diferentes tipos de diagramas e símbolos.

Os objetos atômicos para diagramas de fluxo de dados são processos, entidades externas, armazenamentos de dados e fluxos de dados. As entidades atômicas para especificações algébricas são classificações, funções, operações e axiomas. As entidades atômicas para os esquemas Z são as várias linhas que aparecem na especificação.

Código

O código pode ser produzido de diferentes maneiras, como linguagem procedural, orientação a objetos e programação visual. A medida tradicional mais comumente usada de comprimento de programa de código-fonte são as linhas de código (LOC).

O comprimento total,

LOC = NCLOC + CLOC

ie,

LOC = Non-commented LOC + Commented LOC

Além da linha de código, outras alternativas, como o tamanho e a complexidade sugeridos por Maurice Halsted, também podem ser usadas para medir o comprimento.

A ciência de software de Halstead tentou capturar diferentes atributos de um programa. Ele propôs três atributos internos do programa, como comprimento, vocabulário e volume, que refletem diferentes visões de tamanho.

Ele começou definindo um programa Pcomo uma coleção de tokens, classificados por operadores ou operandos. As métricas básicas para esses tokens eram,

  • μ1 = Número de operadores únicos

  • μ2 = Número de operandos únicos

  • N1 = Total de ocorrências de operadores

  • N2 = Número de operadores únicos

O comprimento P pode ser definido como

$$ N = N_ {1} + N_ {2} $$

O vocabulário de P é

$$ \ mu = \ mu _ {1} + \ mu _ {2} $$

O volume do programa = número de comparações mentais necessárias para escrever um programa de duração N, é

$$ V = N \ vezes {log_ {2}} \ mu $$

O nível de programa de um programa P de volume V é,

$$ L = \ frac {V ^ \ ast} {V} $$

Onde, $ V ^ \ ast $ é o volume potencial, ou seja, o volume da implementação de tamanho mínimo de P

O inverso do nível é a dificuldade -

$$ D = 1 \ diagup L $$

De acordo com a teoria Halstead, podemos calcular uma estimativa L Como

$$ {L} '= 1 \ diagup D = \ frac {2} {\ mu_ {1}} \ times \ frac {\ mu_ {2}} {N_ {2}} $$

Da mesma forma, a duração estimada do programa é, $ \ mu_ {1} \ times log_ {2} \ mu_ {1} + \ mu_ {2} \ times log_ {2} \ mu_ {2} $

O esforço necessário para gerar P é dado por,

$$ E = V \ diagup L = \ frac {\ mu_ {1} N_ {2} Nlog_ {2} \ mu} {2 \ mu_ {2}} $$

Onde a unidade de medida E são discriminações mentais elementares necessárias para entender P

As outras alternativas para medir o comprimento são -

  • Em termos do número de bytes de armazenamento do computador necessários para o texto do programa

  • Em termos de número de caracteres no texto do programa

O desenvolvimento orientado a objetos sugere novas maneiras de medir o comprimento. Pfleeger et al. descobriram que uma contagem de objetos e métodos levou a estimativas de produtividade mais precisas do que aquelas que usam linhas de código.

Funcionalidade

A quantidade de funcionalidade inerente a um produto dá a medida do tamanho do produto. Existem tantos métodos diferentes para medir a funcionalidade de produtos de software. Discutiremos um desses métodos ─ o método do Ponto de Função de Albrecht ─ no próximo capítulo.