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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Medidas <strong>de</strong> la complejidad <strong>de</strong>l softwareDe la <strong>de</strong>scripción <strong>de</strong> la métrica <strong>de</strong> Chapin se <strong>de</strong>spr<strong>en</strong><strong>de</strong> la necesidad <strong>de</strong> que elsoftware a que se aplica esté estructurado como segm<strong>en</strong>tos <strong>de</strong> código que secomunican <strong>en</strong>tre ellos, lo que impone una seria limitación a su uso. A<strong>de</strong>más, apesar <strong>de</strong> su relativa dificultad <strong>de</strong> cálculo, no mi<strong>de</strong> importantes aspectos <strong>de</strong> lacomplejidad que aportan los datos (como por ejemplo, la <strong>de</strong>bida a la separación<strong>en</strong>tre refer<strong>en</strong>cias a variables).7. Estructuras <strong>de</strong> control <strong>de</strong>l programaLa posibilidad <strong>de</strong> que el flujo <strong>de</strong> ejecución <strong>de</strong> un programa siga diversos caminossegún se cumplan o no ciertas condiciones aum<strong>en</strong>ta <strong>de</strong> una forma <strong>de</strong>cisiva nuestradificultad para <strong>en</strong>t<strong>en</strong><strong>de</strong>r lo que hace el programa <strong>en</strong> cada una <strong>de</strong> las situacionesque se pued<strong>en</strong> dar. Por ejemplo, un pequeño programa con 20 estructurasIF..THEN..ELSE anidadas podrá ejecutarse sigui<strong>en</strong>do 2 20 caminos distintos. Y esprevisible que tras cada uno <strong>de</strong> ellos los resultados <strong>de</strong> la computación sean difer<strong>en</strong>tes,lo que hace que el programador <strong>de</strong>ba t<strong>en</strong>erlos todos <strong>en</strong> cu<strong>en</strong>ta (al m<strong>en</strong>os<strong>en</strong> sus líneas g<strong>en</strong>erales).Normalm<strong>en</strong>te, la complejidad <strong>de</strong>bida al flujo <strong>de</strong> control se mi<strong>de</strong> contando lastransfer<strong>en</strong>cias <strong>de</strong> control que pued<strong>en</strong> darse <strong>en</strong> el código (t<strong>en</strong>i<strong>en</strong>do <strong>en</strong> cu<strong>en</strong>tatambién la longitud total <strong>de</strong>l programa), o estudiando sus interrelaciones.La explosión combinatoria <strong>de</strong> caminos posibles <strong>en</strong> cuanto t<strong>en</strong>emos unas pocass<strong>en</strong>t<strong>en</strong>cias <strong>de</strong> bifurcación, hace necesario el uso <strong>de</strong> alguna herrami<strong>en</strong>ta para po<strong>de</strong>rmanejar esa complejidad. Una <strong>de</strong> estas herrami<strong>en</strong>tas, que permite repres<strong>en</strong>tar losposibles flujos <strong>de</strong> ejecución d<strong>en</strong>tro <strong>de</strong> un código, es el grafo ori<strong>en</strong>tado. En él, losnodos son bloques don<strong>de</strong> la ejecución es totalm<strong>en</strong>te secu<strong>en</strong>cial. Sólo dispon<strong>en</strong> <strong>de</strong>una <strong>en</strong>trada y una salida, y no hay d<strong>en</strong>tro <strong>de</strong> ellos saltos <strong>en</strong> el flujo <strong>de</strong> ejecución.Los arcos sirv<strong>en</strong> para indicar las posibles transfer<strong>en</strong>cias <strong>de</strong> control <strong>de</strong> unos nodosa otros. Un ejemplo <strong>de</strong> grafo, que podría correspon<strong>de</strong>r a un programa real es el<strong>de</strong> la figura 18.Como ejemplos significativos <strong>de</strong> métricas que tratan con la complejidad <strong>de</strong>l flujo<strong>de</strong> control, <strong>de</strong>scribiremos el número ciclomático <strong>de</strong> McCabe y la ext<strong>en</strong>sión queMyers hace <strong>de</strong>l mismo.7.1. Número ciclomáticoMcCabe [McCabe, 1976] propone una medida <strong>de</strong> la complejidad <strong>de</strong> un programa,basada <strong>en</strong> su grafo <strong>de</strong> control, que ha sido ampliam<strong>en</strong>te aceptada. Su éxitoprobablem<strong>en</strong>te se <strong>de</strong>ba, <strong>en</strong>tre otras causas, a la gran facilidad con que se calcula,a que su significado es intuitivam<strong>en</strong>te s<strong>en</strong>cillo <strong>de</strong> asimilar, y a que estudios sobreprogramas reales avalan su relación con el tiempo <strong>de</strong> <strong>de</strong>sarrollo, la dificultad <strong>de</strong>mant<strong>en</strong>imi<strong>en</strong>to, etc.285

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

Saved successfully!

Ooh no, something went wrong!