Está en la página 1de 24
9 Evolucion del software Objetivos Los objetivos de este capitulo son explicar por qué la evolucién del software forma parte importante de la ingenierfa de software, asf como describir los procesos de evolucién del software. Al estudiar este capitulo: = comprendera que el cambio es inevitable silos sistemas de software deben mantener su utilidad, y que el desarrollo y la evolucién del software pueden integrarse en un modelo espiral; = entenderd los procesos de evolucién del software y las influencias sobre dichos procesos; = aprenderé sobre los diferentes tipos de mantenimiento de software y los factores que afectan los costos de mantenimiento; y = conocerd cémo pueden valorarse los sistemas heredados para decidir si se deben descartar, mantener, someter areingenieria o sustituir. Contenido 9.1 Procesos de evolucién 9.2 Evolucién dindmica del programa 9.3 Mantenimiento del software 9.4 Administracién de sistemas heredados Capitulo 9 = Evolucién del software 235 Fl desarrollo del software nose deticne cuando un sistema se entrega, sino que continia a lo largo dea vida de éste. Después de distribuir un sistema, inevitablemente debe modi- ficarse, con la finalidad de mantenerlo dil. Tanto los cambios empresariales como los de 1as expectativas del usuario gensran nuevos requerimientes para el software existente. Es posite que tengan que modificarse partes del software para corregir errores encontrados durante su operaciéa, para adaptarto a los cambios en su plataforma de software y hard ware, y para mejorar su rendimiento w otras earacteisticas no funcionales. La crolucin del software es importante porque las organizaciones invierten grandes ‘antidades de dinero en él y en la actualidad son completamente dependienies de dichos sistemas, Sus sistemas se consideran actives empresiriales crtios, por lo que tienen que invent en el cambio del sistema para mantener el valor de estos activos. En consecuen~ a, las compatiias mas grandes gastan mds en consecvar Ios sistemas existentes que en el ‘esarollo de sistemas nuevos, Con base en una encuesta industrial informal, Eikh (2000) sugiere que entre el 85 y 90% de los costos del sofware organizacional son costos de cevolucién; mientras que otros estudios sugicren que étos conforman alrededor de dos tercios de los costos del software, Desde luego, los costos del cambio del software repre- sentan una gran parte del presupuesto de TI de todas las compaiias. La evolucién del software puede potenciarse al cambiar los requerimientos empre- sariales, con reportes de defectos del software 0 por cambios a otros sistemas en un certorno del sistema de software. Hopkins y Jenkins (2008) acuaron el térmiro desarrollo e software abardonaco”(subutilizado) para descriir situaciones en que los sistemas de software tienen que desarollarse y gestionarse en un ambiente donde dependen de muchos ‘otros sistemas de software, or consiguiente. la evolucién de un sistema rara vez puede eonsiderarse en aisla- ‘iento, Los cambics al entorno conducen a cambios en el sistema que. a la ver, pueden ‘generar més cambics en el entomo. Desde luego. el hecho de que les sistemas tengan que cevolucionar en un ambiente “rico en sistemas” con frecuencia aumenta las dificultades ‘ylos costos de la evolucién, Ademés de comprender y analizar el impacto de un cambio ‘ropuesto sobre el sistema en si, también es probsble que se dcba valorar cémoesto afec- tarfa a otros sistemas en el entorno operacional. or lo general, los sistemas de software stiles tienen una vida may larga. Por ejemplo, Jos grandes sistemas militares o de infraestructura, como los de control de téfico aéreo, egan a durar 30 afios o més; en tanto que los sistemas empreseriales eon frecuencia ‘supernlos 10 afos, Pucsto qucel costo del software es elevado, una compadia debe user un sistema de software durante muchos aflos para recuperar su inversién, Evidentemente, Jos requerimientos de ls sisicmas instalados cambian conforme lo hacen el negocio y su centomo, Por consiguicnte, se erean a iniervalos regulares nuevas versiones de los siste- ‘mas, las cuales incorporan cambios y acualizactones. PPor enge, la ingenierfa de software se debe considerar como un proceso en espiral, ‘con requerimientos, disefio, implementacién y pructas cortinuas, alo largo de la vida del sistema (Figura 9.1). Esto comienza por creer la versin I del sistema, Una vez entregads, ‘8 proponen cambios y casi de inmediato comienca el desarrollo de la versiGn 2, De hecho, la necesicad de evolucin puede volverse evidente incluso antes de que el sistema se distribuya, de manera que las Futuras versiones del software estarfan en desarrollo antes de que se libere la versi6n actual. Este modelo de evolucién de softwareimplica que una sola orgarizaciGn es responsable tanto del desarrollo del software inicial como de la evolucién del software. La mayorta de los productos de software empacados se desarrollan siguiendo este enfogue. Para el software personalizado, por lo general se uiliza un enfoque diferente. Una compafia de 236 Capitulo 9 m Evolucién del software Version 1 Operacién Validacién Version 2 Version 5 en espiral de desarrollo yevolucién software lo desarrolla para un cliente y, luego, el personal de desarrollo de! propio clien- te se hace cargo del sistema, Ellos son 10s responsables de la evolucion det software. De forma alternativa, el cliente del software puede oforgar por separado un contrato a ‘na compaiiia diferente, con la finalicad de que dé soporte al sistema y continuar su evolucién, En este caso, es probable que existan discontinuidades en cl proceso espiral. Los docu ‘mentos de requerimientos y disco quiz4 no se comparan entre una compatife y otra. stas podrfan fusionarse 0 worganizarse y heredar el software de otras compafifas, para lego descubrir que este dtimo tiene que cambiarse. Cuando le transicién del desarrollo ala evoluciGn no es uniforme, el proceso de cambiar el software después de la entrega se ‘conoce como"*martenimienio de software”, Como se analizaré més adelante en este capi- tulo, el mantenimiento incluye actividades de proceso adicicnales, como la comprensién «el programa, ademés de las actividades normales de deserrollo del software Raich y Bennett (2000) propusieron ura visi altemativa del ciclo de vida de la evo- Incién del software, como se indica en lafigara 9.2. En ese modelo, ditinguen entre evol- Giny servicio. La evolucién es la fase donde es posible hacer cambios significativos ala sxquitectura y lafuncionalidad del software, Durante el servicio, los tinicos cambios que se realizan son relativamente pequefios. Durante la evolucién, el software se usa con éxito y hay ua flujo constante de propues~ tas de cambios a los equerimientos. Sia embargo, conforme el software se modifica, su cstructura iende a degradarse y les cambios so vuelven més y mis costosos. Esto sucede «on frecuencia después de algunos aos de uso, cuando tambiéa se requieren otros cam- bios ambicntales como el hardware y los sistemas operativos, Ea alguna ctapa desu ciclo 6 vida, el software alcanza un punto de transicién donde los cambios significativos que iimplemenian nuevos requerimienios se vuelven cada vez menos rentables. es + Bolucin = Sevicio | = tro gradual Desarrollo Figura 9.2 Brolucion iniial ysevico

También podría gustarte