Midiendo la Estructura

La medición de las propiedades estructurales de un software es importante para estimar el esfuerzo de desarrollo así como para el mantenimiento del producto. La estructura de requisitos, diseño y código ayuda a comprender la dificultad que surge al convertir un producto en otro, al probar un producto o al predecir los atributos del software externo a partir de las primeras medidas internas del producto.

Tipos de medidas estructurales

La estructura del software tiene tres partes. Ellos son -

  • Control-flow structure - Es la secuencia en la que se ejecutan las instrucciones en un programa.

  • Data-flow structure - Es el comportamiento de los datos al interactuar con el programa.

  • Data structure - Es la organización de los elementos de datos en forma de listas, colas, pilas u otras estructuras bien definidas junto con un algoritmo para crearlos, modificarlos o eliminarlos.

Medición de la estructura de control de flujo

Las medidas de flujo de control generalmente se modelan con un gráfico dirigido, donde cada nodo o punto corresponde a declaraciones del programa, y ​​cada arco o borde dirigido indica el flujo de control de una declaración a otra. Estos gráficos se denominan gráfico de flujo de control o gráfico dirigido.

Si ‘m’ es una medida estructural definida en términos del modelo de diagrama de flujo, y si el programa A es estructuralmente más complejo que el programa B, luego la medida m(A) debería ser mayor que m(B).

Medición de la estructura del flujo de datos

El flujo de datos o flujo de información puede ser intermodular (flujo de información dentro de los módulos) o intra-modular (flujo de información entre módulos individuales y el resto del sistema).

Según la forma en que los datos se mueven a través del sistema, se pueden clasificar en lo siguiente:

  • Local direct flow - Si un módulo invoca un segundo módulo y le pasa información o el módulo invocado devuelve un resultado al llamador.

  • Local indirect flow - Si el módulo invocado devuelve información que posteriormente se pasa a un segundo módulo invocado.

  • Global flow - Si la información fluye de un módulo a otro a través de una estructura de datos global.

La complejidad del flujo de información se puede expresar según Henry y Kafura como,

Information flow complexity (M) = length (M) × fan-in (M) × (fan-out (M))2

Dónde,

  • Fan-in (M) - El número de flujos locales que terminan en M + el número de estructuras de datos de las que M. recupera la información.

  • Fan–out (M) - El número de flujos locales que emanan de M + el número de estructuras de datos que actualiza M.

Estructura de datos de medición

La estructura de datos puede ser tanto local y global.

Locally, se medirá la cantidad de estructura en cada elemento de datos. Se puede utilizar un enfoque de teoría de gráficos para analizar y medir las propiedades de estructuras de datos individuales. En ese sentido, los tipos de datos simples, como los números enteros, los caracteres y los valores booleanos, se ven como números primos y se consideran las diversas operaciones que nos permiten construir estructuras de datos más complejas. Las medidas de la estructura de datos se pueden definir jerárquicamente en términos de valores para los números primos y valores asociados con las diversas operaciones.

Globally, se medirá un recuento del número total de variables definidas por el usuario.