12.07.2015 Views

Libro en PDF - DIT - Universidad Politécnica de Madrid

Libro en PDF - DIT - Universidad Politécnica de Madrid

Libro en PDF - DIT - Universidad Politécnica de Madrid

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Complejidad y Tecnologías <strong>de</strong> la Información6. Estructura y flujo <strong>de</strong> datosUn factor importante <strong>en</strong> la complejidad <strong>de</strong>l software vi<strong>en</strong>e dado por la forma cómose manejan los datos d<strong>en</strong>tro <strong>de</strong>l programa. A igualdad <strong>de</strong> otros factores, será máscomplejo aquél <strong>en</strong> el que los datos se manej<strong>en</strong> <strong>de</strong> una forma más complicada.Según los criterios que tomemos <strong>en</strong> cu<strong>en</strong>ta para medir esta complicación, t<strong>en</strong>dremosdifer<strong>en</strong>tes métricas:a. Intervalo <strong>en</strong>tre refer<strong>en</strong>cias a datos. Ti<strong>en</strong>e <strong>en</strong> cu<strong>en</strong>ta que al programador le esmás difícil seguir el flujo <strong>de</strong> datos cuando las refer<strong>en</strong>cias a éstos están muyseparadas.b. Par <strong>de</strong> uso segm<strong>en</strong>to-global. Cuanto más se us<strong>en</strong> variables globales, más posibilida<strong>de</strong>shay <strong>de</strong> cometer errores, y más complicado es mant<strong>en</strong>er claro lo quepasa con los datos.c. Medida Q <strong>de</strong> Chapin. Se supone que la complejidad que introduce el manejo<strong>de</strong> datos no es igual para todos los tipos <strong>de</strong> variables.La mayoría <strong>de</strong> estas técnicas ti<strong>en</strong><strong>en</strong> problemas a la hora <strong>de</strong> su utilización práctica,al po<strong>de</strong>rse aplicar sólo a <strong>de</strong>terminados tipos <strong>de</strong> software.6.1. Intervalo <strong>en</strong>tre refer<strong>en</strong>cias a datosEsta técnica se apoya <strong>en</strong> la i<strong>de</strong>a <strong>de</strong> que cuanto más dispersas por el código esténlas refer<strong>en</strong>cias a una variable, más difícil <strong>de</strong> <strong>en</strong>t<strong>en</strong><strong>de</strong>r será el comportami<strong>en</strong>to <strong>de</strong>esa variable. Con una gran dispersión, el programador t<strong>en</strong>drá que t<strong>en</strong>er <strong>en</strong> lacabeza los posibles cambios <strong>de</strong> valor <strong>en</strong> zonas <strong>de</strong>l listado muy separadas <strong>en</strong>tre sí.Sin embargo, con dispersión pequeña, podrá c<strong>en</strong>trarse más <strong>en</strong> el código adyac<strong>en</strong>teal que está estudiando. Por tanto, cuando las refer<strong>en</strong>cias a variables se separan,el programa será más difícil <strong>de</strong> mant<strong>en</strong>er y los efectos colaterales in<strong>de</strong>seados,difíciles <strong>de</strong> evitar. En g<strong>en</strong>eral, el software t<strong>en</strong>drá una mayor complejidad.Antes <strong>de</strong> ver cómo se calcula el valor <strong>de</strong> la métrica, <strong>de</strong>finiremos el concepto <strong>de</strong>intervalo <strong>en</strong>tre refer<strong>en</strong>cias. Será el número <strong>de</strong> s<strong>en</strong>t<strong>en</strong>cias que hay <strong>en</strong> el listado <strong>de</strong>un programa <strong>en</strong>tre dos refer<strong>en</strong>cias inmediatas al mismo id<strong>en</strong>tificador <strong>de</strong> variable(ver figura 12). Una vez <strong>de</strong>finido este concepto, el cálculo <strong>de</strong> la métrica es inmediato.Se reduce a contar la cantidad <strong>de</strong> intervalos <strong>en</strong>tre refer<strong>en</strong>cias que seanmayores que un cierto intervalo.Esta medida podrá dar una i<strong>de</strong>a <strong>de</strong> lo difícil que es <strong>en</strong>t<strong>en</strong><strong>de</strong>r el comportami<strong>en</strong>to<strong>de</strong> los datos. Por ejemplo, un programa con un 18% <strong>de</strong> intervalos mayores <strong>de</strong> 100,será más complejo que uno que t<strong>en</strong>ga sólo un 7% <strong>de</strong> intervalos <strong>de</strong> ese tipo (aigualdad <strong>de</strong> otras características).278

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!