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
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 softwareproductos sin garantía, <strong>en</strong> el s<strong>en</strong>tido <strong>de</strong> que es común la v<strong>en</strong>ta "tal cual", singarantizar un <strong>de</strong>terminado comportami<strong>en</strong>to <strong>de</strong>l sistema informático. Los estudiossobre fiabilidad y verificación constituy<strong>en</strong> un campo don<strong>de</strong> la investigación esmuy activa, aunque hasta el mom<strong>en</strong>to no ha <strong>de</strong>parado resultados espectaculares(véase el capítulo sobre el <strong>de</strong>sarrollo <strong>de</strong>l software).2. Estudio <strong>de</strong>l software <strong>de</strong>s<strong>de</strong> el marco HxIxO = IOUna vez que hemos llegado a la conclusión <strong>de</strong> que el software es efectivam<strong>en</strong>te algobastante complejo, po<strong>de</strong>mos analizarlo d<strong>en</strong>tro <strong>de</strong>l marco conceptual HxIxO -> IO,propuesto por Sáez Vacas. Para ello, com<strong>en</strong>cemos por id<strong>en</strong>tificar cada uno <strong>de</strong> loselem<strong>en</strong>tos <strong>de</strong> este marco.De una forma s<strong>en</strong>cilla, podremos id<strong>en</strong>tificar el objeto (O) como el propio software,tal y como estamos acostumbrados a <strong>en</strong>t<strong>en</strong><strong>de</strong>rlo. Eso es, un programa dado, queuna vez ejecutado <strong>de</strong>termina el comportami<strong>en</strong>to <strong>de</strong> un ord<strong>en</strong>ador, y que estáescrito <strong>en</strong> algún l<strong>en</strong>guaje <strong>de</strong> programación. Consi<strong>de</strong>raremos como objeto el códigofu<strong>en</strong>te y no el código objeto porque este primero es con el que se <strong>en</strong>fr<strong>en</strong>ta elprogramador (o cualquier otra persona que participa <strong>en</strong> el diseño, <strong>de</strong>sarrollo omant<strong>en</strong>imi<strong>en</strong>to), y <strong>de</strong>l que <strong>de</strong>p<strong>en</strong><strong>de</strong> <strong>en</strong> último extremo el funcionami<strong>en</strong>to <strong>de</strong>lprograma. Estamos asumi<strong>en</strong>do implícitam<strong>en</strong>te que la herrami<strong>en</strong>ta que utilizamospara convertirlo <strong>en</strong> ejecutable (normalm<strong>en</strong>te un compilador o un intérprete)funciona a<strong>de</strong>cuadam<strong>en</strong>te, sin errores y sin efectos "extraños". Aunque esto nosiempre es cierto, no nos planteará <strong>de</strong>masiados problemas, ya que la herrami<strong>en</strong>tano es más que otro objeto software, al que podríamos aplicar el mismo tratami<strong>en</strong>toque vamos a aplicar a nuestro programa.Si queremos <strong>en</strong>marcar este objeto d<strong>en</strong>tro <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> tres niveles <strong>de</strong> complejidad, not<strong>en</strong>dremos problemas <strong>en</strong> colocarlo <strong>en</strong> el nivel más bajo, don<strong>de</strong> nos ocupamos <strong>de</strong> lacomplejidad <strong>de</strong> los elem<strong>en</strong>tos aislados (ver capítulo sobre marcos conceptuales).El H <strong>de</strong> nuestra fórmula pue<strong>de</strong> ser asociado a toda persona que participe <strong>en</strong> el ciclo<strong>de</strong> vida <strong>de</strong> un programa, <strong>de</strong>s<strong>de</strong> que se especifica su funcionalidad, hasta que seretira <strong>de</strong> la vida activa. Cada una <strong>de</strong> ellas t<strong>en</strong>drá sus intereses y motivaciones, ybuscará un aspecto difer<strong>en</strong>te d<strong>en</strong>tro <strong>de</strong>l objeto consi<strong>de</strong>rado. Así, al personal<strong>en</strong>cargado <strong>de</strong>l mant<strong>en</strong>imi<strong>en</strong>to y modificación le interesará que no haya dificultad<strong>en</strong> la compr<strong>en</strong>sión y sí facilidad para cambiar partes <strong>de</strong>l código. El codificador estaráinteresado <strong>en</strong> la capacidad expresiva <strong>de</strong> las herrami<strong>en</strong>tas que use al programar, y<strong>en</strong> conseguir con el m<strong>en</strong>or esfuerzo posible una codificación efici<strong>en</strong>te y sin errores.Y así, cada uno <strong>de</strong> ellos se c<strong>en</strong>trará <strong>en</strong> unas características difer<strong>en</strong>tes <strong>de</strong>l programa.Un caso especial aparece cuando id<strong>en</strong>tificamos H con el usuario <strong>de</strong>l programa.Aquí O no es propiam<strong>en</strong>te el código fu<strong>en</strong>te, sino el programa <strong>en</strong> ejecución, y sobretodo su interfaz con la persona que lo usa. En este caso particular (y muy267