9
Ensayo Inforrnftlica Adaplativa - JesUs A. Hernandez R. comportamiento natural de las aplicaciones no se manifestaba de esa manera, sin embargo, la tecnologia disponible y principalmente la acostumbrada concepcion del desarrollo de software no permitian mayor flexibilidad. Las viejas aplicaciones infarmaticas, algunas de elias pueden aun estar en servicio y generando utilidades, han estado afectadas par modificaciones en una forma progresiva, continua y no lineal desde el mismo momento de su creacion. Aunque las aplicaciones de software se hacen para manejar informacion y aunque la informacion es flexible y esta en permanente cambio, los sistemas informaticos se han estado construyendo de una manera rigida, sin considerar que ellos evolucionan y se deben ajustar a los cambios en su materia prima -es decir, a la transformacion de la informacion. En el fondo 10 que se espera son productos de consumo, efimeros, que van en contravia a la perdurabilidad de las organizaciones. Este es un punto significante que se refleja de manera directa en la fase de retiro del cicio tradicional de vida del software, figura 1.1. Fase que manifiesta que se da por entendido que se espera que el sistema debe dejar de funcionar, durante algun momenta en la organizacion. Con estos decadentes principios todas las metodologias y herramientas automaticas que se propongan seran inutiles en el intento de tener sistemas evolutivos de software. Las metodologias actuales para desarrollo de software han aportado diferentes elementos para mejorar la flexibilidad y la reutilizacion de las apl icaciones informaticas [Pressman-88], cabe preguntarse por que persiste la crisis del software [Gibbs-94]. En este trabajo no se desacalifican esas propuestas de construccion de software, se reconoce su utilidad en el desarrollo de un proyecto informatico, en particular en 10 que se denomina su ingenierfa progesiva (ver capftulo 2). Si observamos las metodologfas no de forma aislada sino como parte de un proyecto informatico, se nota que su idea prinCipal es que el trabajo pase por un cierto numero de fases, la estructura de las cuales es independiente del contenido del proyecto. EI modelo en que descansan esas metodologfas tiene como bases fundamentales la division del proyecto en fases, la sincronizacion de tareas y la independencia del contexto [80ehm-81,Semmens-92,Schefstr6m- 93, Hull-93]. En el desarrollo en fases se asume que cada una debe terminar antes de comenzar la proxima. Lo que significa que con anterioridad a las primeras fases debemos conocer las caracterfsticas, propiedades y alternativas de solucion del producto final. Las fases existen y conviene distribuir el trabajo de esa manera, pero hay suficientes razones para moverse hacia adelante y hacia atras con el objetivo de cumplir con un proyecto informatico. 7

Ensayo Inforrnftlica Adaplativa -JesUs A. Hernandez R. 7

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ensayo Inforrnftlica Adaplativa -JesUs A. Hernandez R. 7

Ensayo Inforrnftlica Adaplativa - JesUs A. Hernandez R.

comportamiento natural de las aplicaciones no se manifestaba de esa manera, sin embargo, la tecnologia disponible y principalmente la acostumbrada concepcion del desarrollo de software no permitian mayor flexibilidad. Las viejas aplicaciones infarmaticas, algunas de elias pueden aun estar en servicio y generando utilidades, han estado afectadas par modificaciones en una forma progresiva, continua y no lineal desde el mismo momento de su creacion. Aunque las aplicaciones de software se hacen para manejar informacion y aunque la informacion es flexible y est a en permanente cambio, los sistemas informaticos se han estado construyendo de una manera rigida, sin considerar que ellos evolucionan y se deben ajustar a los cambios en su materia prima -es decir, a la transformacion de la informacion. En el fondo 10 que se espera son productos de consumo, efimeros, que van en contravia a la perdurabilidad de las organizaciones. Este es un punto significante que se refleja de manera directa en la fase de retiro del cicio tradicional de vida del software, figura 1.1. Fase que manifiesta que se da por entendido que se espera que el sistema debe dejar de funcionar, durante algun momenta en la organizacion. Con estos decadentes principios todas las metodologias y herramientas automaticas que se propongan seran inutiles en el intento de tener sistemas evolutivos de software.

Las metodologias actuales para desarrollo de software han aportado diferentes elementos para mejorar la flexibilidad y la reutilizacion de las apl icaciones informaticas [Pressman-88], cabe preguntarse por que persiste la crisis del software [Gibbs-94]. En este trabajo no se desacalifican esas propuestas de construccion de software, se reconoce su utilidad en el desarrollo de un proyecto informatico, en particular en 10 que se denomina su ingenierfa progesiva (ver capftulo 2). Si observamos las metodologfas no de forma aislada sino como parte de un proyecto informatico, se nota que su idea prinCipal es que el trabajo pase por un cierto numero de fases, la estructura de las cuales es independiente del contenido del proyecto. EI modelo en que descansan esas metodologfas tiene como bases fundamentales la division del proyecto en fases, la sincronizacion de tareas y la independencia del contexto [80ehm-81,Semmens-92,Schefstr6m­93, Hull-93].

En el desarrollo en fases se asume que cada una debe terminar antes de comenzar la proxima. Lo que significa que con anterioridad a las primeras fases debemos conocer las caracterfsticas, propiedades y alternativas de solucion del producto final. Las fases existen y conviene distribuir el trabajo de esa manera, pero hay suficientes razones para moverse hacia adelante y hacia atras con el objetivo de cumplir con un proyecto informatico.

7

Page 2: Ensayo Inforrnftlica Adaplativa -JesUs A. Hernandez R. 7

Ensayo Inf01lllAtica Adaptativa - JesUs A. HemHndez R.

La sincronizacion de tareas presupone una completa identificacion de los subcomponentes del producto final, 10 que implica un alto de nivel de determinismo. EI problema es que la estructura establecida, con mucha frecuencia, cambia en el mismo proceso de desarrrolio de la aplicacion.

Los proyectos de software no son independientes del contexto, estan dominados durante su construccion por nuevos desarrollos originados en los cambios organizacionales por condiciones externas y en el mejoramiento continuo tanto instrumental como corporativo. EI modelo tradicional no prescribe procedimientos para enfrentar esta problematica.

Este modelo considera que el transcurso entre un comienzo difuso e incierto hacia una meta concreta y especifica es monotonico, aunque la experiencia profesional demuestra 10 contrario. Refutar el modele tradicional de construccion de software de ninguna manera es controversial, se encuentran muchas publicaciones que tocan este topico [Boehm-88,Schefstr6m­88, Perry-89, Lindgreen-90,Arnold-93, Thomson-94, Hernandez-95a]. EI modelo tradicional de desarrollo de software debe ser mejorado al menos en los siguientes aspectos: -Permitir la iteracion entre fases y que el producto de cada una pueda ser cambiado, en principio, en cualquier momento. -Permitir que diferentes partes del trabajo esten en diferentes fases en un momento dado. -Facilitar la inicializacion de nuevos desarrollos en un proyecto de acuerdo a unos requisitos, diserios e implantaciones ya existentes.

En la ingenieria tradicional de software, cuando un analista va a desarrollar una aplicacion, parte de cero condiciones con el proposito de alcanzar un conjunto de requerimientos iniciales y continua su labor con las herramientas que tenga a disposicion, hasta lograr esa meta, como se indica en el grafo de la figura 1.1. En el mejor de las oportunidades ese conjunto A de especificaciones permanecera inalterable, perc sabemos que en la mayoria de los casos los requerimientos iniciales cambian durante el proceso de construccion del software y en el peor de ellos se termina trabajando con otro conjunto de especificaciones diferente al original. En cualesquiera de las ocasiones, el analista, que actua conforme a una vision tradicional de desarrollo, sigue una trayectoria lineal que parte de un tiempo cero hasta un tiempo x, tiempo este en donde se termina la construccion del paquete

8

Page 3: Ensayo Inforrnftlica Adaplativa -JesUs A. Hernandez R. 7

Ensayo InfoIlllAtica Adaptativa - JesUs A. Hernandez R

informatico porque se ha conseguido el mayor acercamiento a la declaraci6n inicial de requerimientos. Es decir, el ingeniero de software repite, sin discusi6n, cada vez que se enfrenta a un sistema nuevo 0 viejo un conjunto establecido de actividades sucesivas, que acumulan tiempo, hasta lograr la mejor aproximaci6n al objetivo solicitado, el punto A en el grafo de la figura 1.1. En otras palabras, con el esquema tradicional de desarrollo cada aplicaci6n informatica de realiza como si fuera un sistema aislado y singular, que podriamos representar como una colecci6n dispersa de grafos lineales cada uno con un principio y un fin, independientes de los otros.

Esfuerzo Acumulado A = Condo Iniciales

~A (Esp. Requerim.)t= 0

tiempo

Gestacion Maduracion Crecimiento Retiro

Figura 1.1. Cicio tradicional de vida del software

Por otra parte, sostener las condiciones iniciales, es decir, buscar la conservaci6n de las caracteristicas que generaron el sistema, es una actividad normal tanto en los productos de manufactura como en los productos 16gicos. EI mantenimiento de las aplicaciones de software es una acci6n natural esperada, pero el exceso de mantenimiento en los sistemas informaticos, que es uno de los aspectos que se cuestiona en la crisis del software, es producto de la rigidez con la que se conceptualiza su construcci6n comenzando por los objetivos a alcanzar. Hasta ahora la mejor aproximaci6n para concebir sistemas informaticos flexibles ha sido considerar el mantenimiento dentro del cicio de vida del software, 10 que significa enfrentar solo los cambios respecto a las condiciones iniciales y no los cambios producidos en el sistema por la evoluci6n organizacional. Figura 1.2.

9

Page 4: Ensayo Inforrnftlica Adaplativa -JesUs A. Hernandez R. 7

Ensayo lnfonnatica AdaptatiVR - JesUs A Hernandez R

t-I____---i..~A A = Condo Iniciales 1= 0 (Esp. Requerim.)

d M = Mantenimiento t =0

Gestacion Maduracion Retiro MCrecimiento Manto.

Figura 1.2. Mantenimiento en el cicio de vida

Con este enfoque, los viejos sistemas informaticos terminaran eliminandose con el criterio de las altas frecuencias y elevados gastos del mantenimiento de software, y la comprension de los actuales para metros de orden de la organizacion dara paso a la construccion de una nueva aplicacion informatica. En este proceso se pierde parte de la memoria institucional , se elevan los costos y se disminuye la efectividad de los departamentos de informatica al no incrementar el nivel de informatizacion de la corporaci6n, pues se encuentran limitados a mantener activos los sistemas vigentes junto con todas sus deficiencias.

Si cambios en las condiciones externas del sistema son quienes originan sus modificaciones, la aplicacion comienza a experimentar nuevas condiciones iniciales y la solucion exige un trabajo mas alia del mantenimiento, mas alia del sostenimiento de las caracterfsticas de origen. Un pequeno ejemplo de la vida cotidiana nos aclara este dilema [Hernandez-93a): luego que se compra un automovil, usado 0 nuevo, se efectuan ciertas actividades para sostener las condiciones iniciales de la compra, 0 mejor dicho, del conjunto de aspectos por los cuales se adquirio el vehiculo, actividades popularmente lIamadas mantenimiento del auto motor, tales como balanceo de lIantas, cambio de aceite, sincronizacion, encerado, etc. Con el tiempo podriamos querer ganar mayor estabilidad en el vehiculo, ya sea porque con el uso algunas caracterfsticas internas de la maquina se han desgastado 0

por que hemos cambiado nuestro propos ito de aprovechamiento de ese automovil, y para tal efecto instalamos 0 ejes mas largos 0 rines mas anchos; tambien podriamos buscar disminuir la resistencia al viento adicionando alerones u otros aditamentos al auto, etc. Es decir, con estas modificaciones 10 que hemos hecho es generar unos nuevos parametros de orden en el automovil y comenzamos desde ese momento a efectuarle mantenimiento para sostener ese nuevo conjunto de condiciones iniciales de

10

Page 5: Ensayo Inforrnftlica Adaplativa -JesUs A. Hernandez R. 7

Ensayo InfoI1lliltica Adaptativa - JesUs A Herruindez R.

la maquina. Notese que el ejemplo habla tanto de la estructura como de la funcion del sistema y que en ambos casos se siguen consideraciones iguales a las ya comentadas.

Las alteraciones en los sistemas pueden ser causadas par cambios en los parametros internos 0 por la necesidad de completar unas condiciones iniciales (especificacion de requerimientos). Estas variaciones son de tipo estructural, funcional 0 de ambas clases. Cuando las alteraciones son originadas por causas internas presentan un comportamiento continuo, creciente pero con tendencia a la saturacion, es en este ultimo momenta cuando el sistema requiere de una transfomacion radical. Este comportamiento se presenta en todos los sistemas de informacion e incluso en las actuales aplicaciones informaticas. Adicional y simultaneamente, los sistemas de informacion tienen que ser moldeados para cumplir can los cambios en los parametros externos, reflejo de su ambiente y para el cual trabajan, siendo estos cam bios el resultado de las acciones de supervivencia de las organizaciones, los cuales par su conformacion discontinua, no lineal y progresiva, son la labor mas dificil que tienen que enfrentar los profesionales del software. Una representacion de estas dos situaciones se ofrece en la Figura 1.3. Con estos comportamientos simultaneos pero tan disfmiles en los cambios de un sistema queda claro que con la concepcion del cicio tradicional de vida del software es muy diffci I comprender y emprender la adaptacion de las aplicaciones informaticas.

CosIo A<.1.Il11ulado Costo AcumuJado

t t

Cambios en S.1. respecto a Cambios en S.1. respecto a condiciones intemas panimetros extemos

Figura 1.3. Presencia del cambio permanente en los S.I.

Los sistemas de informacion se encuentran, de forma natural, en un estado inestable, par los continuos cambios a los que se ve abocada la

11

Page 6: Ensayo Inforrnftlica Adaplativa -JesUs A. Hernandez R. 7

Ensayo InfOIUlJltica Adaptativa - JesUs A Hemimdez R.

organizacion y por 10 tanto, estan perdiendo de manera extensa grados de libertad para lIevar a cabo los objetivos corporativos, motivo de su creacion y objeto de su operacion. En la prcktica no se nota esto con facilidad pues observamos las aplicaciones informaticas en un intervalo de tiempo relativamente corto en el cual se puede inferir, sin muchas complicaciones, que el sistema se encuentra en un estado de estabilidad (en realidad en un estado de estabilidad temporal). AI considerar espacios mayores de tiempo se nota que en el sistema observado la inestabilidad aumenta crecientemente hasta lIegar a la total fragilidad del mismo, cuya expresion mas usual es el exceso de mantenimiento, manifestandose el futuro comportamiento macroscopico de ese sistema a traves de un nuevo conjunto de parametres de orden [Haken-83]. Con la vision tradicional de desarrollo, eventual mente, la naciente direccion a tomar en el sistema se da a conocer de modo fortuito por un analista 0 un usuario de la aplicacion de software. Solo en el case de una informatica adaptativa este rumbo se buscaria y se conoceria de forma intencional y no como sucede en la actualidad que se descubre de manera ocasional.

Los nuevos parametros de orden que definen el futuro comportamiento del sistema de informacion se generan por procesos entropicos naturales 0

artificiales, positiv~s 0 negativ~s, internos 0 externos, que actuan sobre, ya sea en alguno 0 todos: el entorno de la organizacion, la corporacion en si misma 0 la aplicacion informatica. Con el transcurso del tiempo algunos modos de inestabilidad, de los que se han presentado en el sistema, comienzan a hacerse permanentes 0 reiterativos y son aquellos que sirven para definir un nuevo conjunto de especificacion de requerimientos para una aplicacion informatica.

En los sistemas naturales y en los artificiales el conocimiento deliberado de las estructuras que regulan esos nuevos parametres de orden es el eje de su adaptacion [Holland-93]. La parte mas importante aqui, sin embargo, es reconocer que los sistemas en general se encuentran en un estado continuo de cambio y que en consecuencia, tambien 10 estan las aplicaciones de software.

Obtener productos informaticos flexibles ha sido el proposito principal de la ingenieria de software, no obstante, desde cuando se propuso esta disciplina cientifica [Gibbs-94] millones de lineas de c6digo estan esperando por una transformacion que las acerque a ese objetivo y esa cantidad sigue creciendo dia a dia con las actuales aplicaciones. Las comunidades

12

Page 7: Ensayo Inforrnftlica Adaplativa -JesUs A. Hernandez R. 7

Ensayo InfOTlllfttica Adaptativa - JesUs A Hernandez R.

informaticas internacionales han confrontado esta situacion can diferentes enfoques pero orientandose mas al instrumento (tecnologfas de hardware y software) que a la materia prima de este (Ia informaci6n). A esto hay que adicionarle que los usuarios y productores de la tecnologia de software usualmente estan bajo las mismas presiones de tiempo y costa deb ida a la necesidad de presentar resultados rapidos y baratos, y como los metodos y herramientas modernas no se miran crfticamente por sus compradores y se dan como un hecho que garantiza una posible soluci6n, no se han logrado una solida calidad en el software y un notable incremento en la productividad de los departamentos de informatica. Las nuevas tecnologfas probablemente produciran unos pocos mejoramientos puntuales, sin colmar las expectativas, y luego de est a seran finalmente abandonadas, estableciendose un rapido curso repetitiv~ de creaci6n-retiro tanto de las tecnologias utilizadas como de los productos informaticos resultantes.

La informacion es, al mismo tiempo, la materia prima y el producto final de las construcciones de software. A partir de sus caracteristicas se definen las deseables en los sistemas informaticos: flexible, portatil, reutilizable, etc. La informaci6n tam bien es el agente de cambia de los procesos de fabricaci6n del software. Aunque los sistemas informaticos se hacen para manejar informaci6n no se desarrollan con base a la naturaleza de la informacion [Scarrot-89] y los profesionales del software casi solo se interesan en las caracteristicas del instrumento mas que en el proposito de este al verse presionados por la influencia del mercado de la sociedad de consumo en sus carreras profesionales. Esta permutacion de objetivos de darle mayor importancia al instrumento que al manejo de la informacion, necesidad que nos ha conducido a el, ha obstruido la configuracion de una verdadera informatica adaptativa.

Las aplicaciones informaticas actuales son rigidas, cerradas y poco eficientes porque sus realizadores no tienen en cuenta de forma directa que la informacion que las origin6 ha cambiado y continuara haciendolo. En la medida que la cultura de construcci6n de software para fabricar un nuevo sistema informatica sea similar al actual concepto de desarrollo, fundamentado en el cicio tradicional de vida, las nacientes aplicaciones de software terminaran presentando las caracteristicas indeseadas de sus antecesoras.

13

Page 8: Ensayo Inforrnftlica Adaplativa -JesUs A. Hernandez R. 7

Ensayo lnfon:n.atica Aciaptativa - JesUs A. Hernandez R.

1.3 Cicio Real de Vida del Software.

Los humanos, para tomar sus diarias decisiones, cualesquiera que elias sean, dependen de la informacion, cuantitativa y cualitativamente, temporal o continuamente. Conocer y obtener informacion y usar esa informacion, ya sea como individuos 0 en las actividades sociales, es una incesante lucha para los humanos. Esta situaci6n se presenta directamente desde una simple organizaci6n humana hasta un complejo sistema socioeconomico. Para enfrentar esta dependencia los humanos construyen instrumentos para manejar informacion y tratan, indebidamente, de subyugar la informacion a las limitaciones de esas maquinas, cuando es la informacion la que debe generar las restricciones sobre las herramientas debido a que ella es la materia prima de esos instrumentos.

Los cambios en la informacion rigen la vida humana. La reacci6n humana es la construcci6n de instrumentos para identificar, manejar y almacenar la informaci6n. Con estas mismas herramientas los humanos mejoran el entendimiento de los mensajes recibidos y reproducen la informaci6n ampliandola en contenido e incrementando sus receptores. EI conocimiento generado se emplea de nuevo para mejorar esos instrumentos y enfrentar los acontecimientos causantes de la informaci6n, en ciclos perpetuos pero no invariantes. En la figura 1.4 se aprecia que los eventos del mundo son una clase disparadora de agentes de cambio de la informacion, algunos de ellos, muy pocos por cierto, son producidos directamente por un individuo, la mayoria son el resultado sinergetico de las adividades humanas 0

ecologicas. En general, estos eventos tienen un comportamiento estocastico y son extremadamente diffciles de aprehender [Hernandez-93a].

Genera y Eventos Esclavlza

de4 Mundo ~ Agen 5

de~ambio

Escla\llzanl Esclavizil. y Generan ~ Informacion .. Human

Formacion de Informacion

14

Mejoran (Instrumentos Construve para Manejar

Sosten imiento de Informacior

Informacion .....----'

Figura 1.4. Gic/os de /a informaci6n cambiante.

Page 9: Ensayo Inforrnftlica Adaplativa -JesUs A. Hernandez R. 7

Ensayo Inforrn.atica Adaptativa - JesUs A. Hernandez R .

La informacion que los eventos desencadenan la adquieren los humanos para manipular los agentes de cambio activos 0 para producir nuevos agentes, en un cicio que podriamos lIamar de formaci6n de /a Informacion. Con los instrumentos que el humane construye para mantener y mejorar la comprension de la informacion conocida se crea otro cicio que podriamos IIamar de sostenimiento de /a informaci6n, figura 1.4. La informacion, entonces, se origina y se propaga en ciclos perpetuos, interdependientes y mutables, de los cuales dependen los humanos y en los cuales ellos pueden influir en una pequena parte.

La reingenierfa de software se esta utilizando para reconstruir los vleJos sistemas informaticos, pero en vista que la informacion, su materia prima, esta cambiando permanentemente, aquellas aplicaciones reingenieradas que no involucren est a condicion, de forma inevitable, con el tiempo, tendran que someterse a una nueva reconstruccion, haciendo de esta alternativa de solucion una mas de las tantas inoperantes.

La reingenJena se presenta como la solucion para convertir los vleJos sistemas en otros mas modernos y como un nuevo enfoque para enfrentar la crisis del software y de las organizaciones [Arnold-93, Hammer-93]]. Una excelente idea a pesar de los productos finales obtenidos con los procesos de transformacion. Pasado un tiempo, los sistemas reingenierados exhibiran las mismas deficiencias de sus fuentes de origen, como resultado del empleo del enfoque tradicional de construccion, cuyas inconveniencias se discutieron en el apartado anterior. No pensamos aqui que la reingenieria es una propuesta inutil, 10 que queremos advertir es que su aplicacion aislada no sirve como tampoco 10 seria sino es aplicada de forma permanente.

Puede observarse en el cicio tradicional de vida del software que desde la misma etapa de la concepcion no se tiene en cuenta la evolucion del sistema informatico (situacion representada en el grafo lineal de la figura 1.1). Se presume que el sistema informatico debe perecer 0 ser retirado, sin importar en su construccion 0 en su retiro si las expectativas de la organizacion a la que sirve ese sistema son de supervivencia 0 de desarrollo, y para nada se considera de que manera el software contribuye a esa esperanza organizacional. En la sociedad informatizada, el software ha dejado de ser otra herramienta mas de la empresa para lograr sus objetivos corporativos, instrumento que antes podria ser deshechado en un momenta dado para

15