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.