Atributos internos del producto
Los atributos de producto internos describen los productos de software de una manera que depende únicamente del producto en sí. La razón principal para medir los atributos internos del producto es que ayudará a monitorear y controlar los productos durante el desarrollo.
Medición de los atributos internos del producto
Los principales atributos internos del producto incluyen size y structure. El tamaño se puede medir estáticamente sin tener que ejecutarlos. El tamaño del producto nos dice el esfuerzo necesario para crearlo. Del mismo modo, la estructura del producto juega un papel importante en el diseño del mantenimiento del producto.
Midiendo el tamaño
El tamaño del software se puede describir con tres atributos:
Length - Es el tamaño físico del producto.
Functionality - Describe las funciones que proporciona el producto al usuario.
Complexity - La complejidad es de diferentes tipos, como.
Problem complexity - Mide la complejidad del problema subyacente.
Algorithmic complexity - Mide la complejidad del algoritmo implementado para resolver el problema
Structural complexity - Mide la estructura del software utilizado para implementar el algoritmo.
Cognitive complexity - Mide el esfuerzo requerido para comprender el software.
La medición de estos tres atributos se puede describir de la siguiente manera:
Longitud
Hay tres productos de desarrollo cuya medición de tamaño es útil para predecir el esfuerzo necesario para la predicción. Son especificación, diseño y código.
Especificación y diseño
Estos documentos suelen combinar texto, gráficos y diagramas y símbolos matemáticos especiales. La medición de especificación se puede utilizar para predecir la longitud del diseño, que a su vez es un predictor de la longitud del código.
Los diagramas de los documentos tienen una sintaxis uniforme, como dígrafos etiquetados, diagramas de flujo de datos o esquemas Z. Dado que los documentos de especificación y diseño constan de textos y diagramas, su longitud se puede medir en términos de un par de números que representan la longitud del texto y la longitud del diagrama.
Para estas mediciones, los objetos atómicos deben definirse para diferentes tipos de diagramas y símbolos.
Los objetos atómicos para los diagramas de flujo de datos son procesos, entidades externas, almacenes de datos y flujos de datos. Las entidades atómicas para las especificaciones algebraicas son géneros, funciones, operaciones y axiomas. Las entidades atómicas para los esquemas Z son las diversas líneas que aparecen en la especificación.
Código
El código se puede producir de diferentes formas, como lenguaje procedimental, orientación a objetos y programación visual. La medida tradicional más utilizada de la longitud del programa de código fuente son las líneas de código (LOC).
La longitud total,
LOC = NCLOC + CLOC
es decir,
LOC = Non-commented LOC + Commented LOC
Aparte de la línea de código, también se pueden utilizar otras alternativas como el tamaño y la complejidad sugeridos por Maurice Halsted para medir la longitud.
La ciencia del software de Halstead intentó capturar diferentes atributos de un programa. Propuso tres atributos internos del programa, como la longitud, el vocabulario y el volumen, que reflejan diferentes puntos de vista del tamaño.
Comenzó definiendo un programa Pcomo una colección de tokens, clasificados por operadores u operandos. Las métricas básicas para estos tokens fueron,
μ1 = Número de operadores únicos
μ2 = Número de operandos únicos
N1 = Ocurrencias totales de operadores
N2 = Número de operadores únicos
La longitud P Puede ser definido como
$$ N = N_ {1} + N_ {2} $$
El vocabulario de P es
$$ \ mu = \ mu _ {1} + \ mu _ {2} $$
El volumen de programa = No. de comparaciones mentales necesarias para escribir un programa de longitud N, es
$$ V = N \ veces {log_ {2}} \ mu $$
El nivel de programa de un programa P de volumen V es,
$$ L = \ frac {V ^ \ ast} {V} $$
Donde, $ V ^ \ ast $ es el volumen potencial, es decir, el volumen de la implementación de tamaño mínimo de P
La inversa del nivel es la dificultad:
$$ D = 1 \ diagup L $$
Según la teoría de Halstead, podemos calcular una estimación L como
$$ {L} '= 1 \ diagup D = \ frac {2} {\ mu_ {1}} \ times \ frac {\ mu_ {2}} {N_ {2}} $$
De manera similar, la duración estimada del programa es $ \ mu_ {1} \ times log_ {2} \ mu_ {1} + \ mu_ {2} \ times log_ {2} \ mu_ {2} $
El esfuerzo requerido para generar P está dado por,
$$ E = V \ diagup L = \ frac {\ mu_ {1} N_ {2} Nlog_ {2} \ mu} {2 \ mu_ {2}} $$
Donde la unidad de medida E ¿Se necesitan discriminaciones mentales elementales para comprender P
Las otras alternativas para medir la longitud son:
En términos de la cantidad de bytes de almacenamiento informático necesarios para el texto del programa
En términos de la cantidad de caracteres en el texto del programa
El desarrollo orientado a objetos sugiere nuevas formas de medir la longitud. Pfleeger y col. descubrió que un recuento de objetos y métodos conducía a estimaciones de productividad más precisas que las que utilizan líneas de código.
Funcionalidad
La cantidad de funcionalidad inherente a un producto da la medida del tamaño del producto. Hay tantos métodos diferentes para medir la funcionalidad de los productos de software. Discutiremos uno de estos métodos, el método de punto de función de Albrecht, en el próximo capítulo.