Está en la página 1de 9

Fundamentos de las Metodologas en la Ingeniera del Software

Jos Miguel Santibez A.


Escuela de Ingeniera Universidad de Ciencias de la Informtica Avenida Pedro de Valdivia 641 Providencia, Santiago, Chile jms@caos.cl

Resumen
Considerando las diversas explicaciones que se tienen de las metodologas de desarrollo de Sistemas de Informacin (cada autor, propone sus propias variantes), el presente artculo tiene como objetivo ayudar a ordenar la discusin, entregando definiciones que permitan que se organice la conversacin y faciliten la crtica objetiva y la proposicin de alternativas a metodologas, mtodos, herramientas y procedimientos existentes hoy en da o en el futuro.

Ingeniero Civil en Informtica titulado en la Universidad de Santiago de Chile y Acadmico de la Universidad de Ciencias de la Informtica, ha dictado las ctedras de Sistemas de Informacin (1995 a la fecha), Taller y Proyecto (2000 a la fecha) y ha sido profesor corrector y gua de memorias desde 1996. En la actualidad divide su actuar profesional entre la actividad acadmica y como ingeniero consultor de diversos proyectos, fundamentalmente en el rea Internet.

1. Introduccin
Al analizar las diferentes fuentes bibliogrficas disponibles en las reas de Sistemas de Informacin e Ingeniera de Software, una de las primeras conclusiones importantes, es que no existe una propuesta que sea comn a los distintos autores. No slo por la existencia de metodologas distintas (por ejemplo la estructurada o la orientada a objetos) dos autores distintos (o incluso el mismo autor en distintas ediciones de su libro) tratan una misma metodologa de maneras diferentes. Algunos autores, han optado por hacer una descripcin detallada de distintos modelos que se pueden aplicar en un desarrollo de software, otros plantean su propia visin de cmo se debe aplicar determinada metodologa, llegando al punto, de ignorar (o rechazar) la existencia de alternativas a lo que proponen. Por si ello no bastara, cada profesional del rea, tiene su propia opinin de que herramientas o modelos tienen resultados y son tiles de aplicar y cuales no (y dentro de ellos, con mltiples variaciones de cmo, cundo y dnde aplicarlos); y eso, descontando a esa gran masa que considera que el desarrollo de software es un arte, que ellos mismos son artistas y que cualquier documentacin o metodologa en el desarrollo del software, es una tranca a la creatividad y, en buen chileno, un cacho que, de ser necesario, se le asigna al ms nuevo de los contratados, como prueba de fuego o bautismo que debe superar. Intentar compilar toda la informacin relativa a la Ingeniera de Software, es una tarea titnica, que probablemente, no dara frutos. Ms an, cuando quienes vengan en el futuro, tendrn tanto derecho como quienes hoy estn desarrollando software, para criticar las metodologas existentes y proponer sus propias modificaciones o mejoras. Sin embargo, el sentar algunas bases slidas que ayuden a encauzar la discusin de Metodologas, es una tarea prioritaria hoy en da. El punto de partida para ello, es rescatar las definiciones adecuadas, aquellas que pese a existir, son habitualmente ignoradas por los ingenieros. Luego, en funcin de esas definiciones, es posible construir los trminos que deben ser utilizados en la discusin, crtica y nuevas proposiciones sobre el tema. El presente documento, pretende convertirse en un canal de discusin que permita alcanzar el consenso respecto de los conceptos asociados a la palabra metodologa y su aplicacin en el mbito de la Ingeniera Informtica. Una reflexin inicial y necesaria, surge de constatar que mientras la mayora de las ramas de la ingeniera han dispuesto de muchos aos para establecer y comprobar sus teoras y prcticas, la Ingeniera de Software es un verdadero recin nacido y que a la fecha, como ingeniera no tiene ms de 20 aos. Al mirar la construccin de un edificio, sorprende la sincronizacin con la que actan los distintos operarios. Los camiones llegan a descargar material poco antes de que sean necesarios y retiran las sobras en el momento indicado. Las gras, desde plumas a bobcats llegan y permanecen en escena el tiempo necesario y son instalados y retirados con tal celeridad, que parece producto de la magia. Ms de un cliente ha esperado eso del desarrollo de sus sistemas. Que analistas y programadores, cual ballet con aos de prctica, se sincronicen y funcionen como reloj, logrando sistemas en tiempos mnimos, casi just in time. Por supuesto, esa esperanza ignora que la Ingeniera Civil,

encargada de esas construcciones, lleva miles de aos de prctica, muchos ms que los de caminos y puentes del imperio romano, e incluso ms que los de las pirmides egipcias.

2. Definiciones
El punto de partida de cualquier conversacin, debe ser el establecer el conjunto de trminos comunes que sern utilizados en la discusin. Quiz la mayor fuente de discrepancias, se debe a que los trminos usados, son entendidos de distintas maneras por los participantes. Este proceso, se inicia con la palabra que sirve de ttulo a este artculo y sigue con todos aquellos trminos que aparecen en las mismas definiciones. Si bien inicialmente se propone una definicin en funcin de la experiencia del autor, se han buscado otras fuentes que den soporte a la acepcin dada. Metodologa: Coleccin de mtodos de solucin de problemas organizados bajo una filosofa comn y gobernados por un conjunto de principios. Segn la RAE, se define la palabra metodologa como: 1. Ciencia del mtodo. 2. Conjunto de mtodos que se siguen en una investigacin cientfica o en una exposicin doctrinal. Habitualmente, la palabra metodologa acostumbra a ser utilizada segn la segunda acepcin y, a falta de otra palabra, se propone mantener esa definicin. Mtodo: Forma de hacer las cosas. Segn la RAE, se define la palabra mtodo como: 1. Modo de decir o hacer con orden una cosa. 2. Modo de obrar o proceder; hbito o costumbre que cada uno tiene y observa. 3. Procedimiento que se sigue en las ciencias para hallar la verdad y ensearla. Puede ser analtico o sinttico. 4. Obra que ensea los elementos de una ciencia o arte. Pressman1, por su parte, indica que Los mtodos de la ingeniera del software indican cmo construir tcnicamente el software. Se entiende por Mtodo, al modo de hacer las cosas, que le indica a una persona que debe hacer a continuacin y que permite que, de ser necesario, se pueda remplazar a esa persona en medio de un trabajo, sin que ello implique un atraso en el proyecto.

{Pressman 93] pgina 25.

Tcnica: Un conjunto de procedimientos precisamente descritos para lograr una tarea estndar. Nuevamente segn la RAE: 1. Conjunto de procedimientos y recursos de que se sirve una ciencia o un arte. 2. Pericia o habilidad para usar de esos procedimientos y recursos. 3. Habilidad para ejecutar cualquier cosa, o para conseguir algo. Es importante notar la diferencia entre hacer algo de la definicin de la RAE, respecto de lograr una tarea estndar de la definicin inicial. El problema con la definicin de la RAE, es que algo es absolutamente ambiguo y puede significar desde la aplicacin de una herramienta, hasta el desarrollo de un proyecto complejo. Considerando el objetivo inicial de establecer un consenso respecto del conjunto de trminos aplicados, es necesario evitar cualquier ambigedad, an cuando eso signifique reducir el alcance del trmino original. De esta manera, la definicin se centra en una tarea estndar, una accin especfica, claramente definida y acotada, que permite alcanzar un objetivo muy especfico, y que se puede alcanzar utilizando un conjunto acotado de herramientas. Herramienta: Instrumentos o ayudas tangibles en la realizacin de una tarea. Segn la RAE: 1. Instrumento, por lo comn de hierro o acero, con el que trabajan los artesanos. 2. Conjunto de estos instrumentos. 3. Mquina herramienta. 4. Herraje1. 5. Fam. Arma blanca, pual, navaja, faca. 6. Fig. y fam. Cuernos de algunos animales, como el toro y el ciervo. 7. Fig. y fam. Los dientes de la boca de una persona o un animal. An cuando en el castellano, las palabras Herramienta e Instrumento, no son exactamente intercambiables2, debido a un comprensible error de interpretacin en la traduccin, la palabra inglesa Tools3 hace pensar ms en Herramientas que en Instrumentos. Orientado hacia el objetivo principal de este documento, se entrega la definicin de la RAE del trmino instrumento: 1. Conjunto de diversas piezas combinadas adecuadamente para que sirva con determinado objeto en el ejercicio de las artes y oficios. 2. Ingenio o mquina. 3. Aquello de que nos servimos para hacer una cosa. 4. Instrumento msico. 5. Lo que sirve de medio para hacer una cosa o conseguir un fin. 6. Escritura, papel o documento con que se justifica o prueba alguna cosa.
2

La palabra Herramienta tiene una clara connotacin artesanal, mientras que la palabra Instrumento tiene mayor connotacin cientfica, aunque tambin musical. Con mayor rigurosidad, es conveniente decir que la palabra tools tiene como mejor traduccin a la palabra Utensilio, la cual, segn la RAE se define como: Lo que sirve para el uso manual y frecuente. Y tambin: Herramienta o instrumento de un oficio o arte.

Al observar las acepciones 1, 2, 3 y 5 es claro que cuando en ingeniera se usa el trmino Herramienta, se hace referencia a Instrumento. Segn Pressman4, Las herramientas de la ingeniera del software suministran un soporte automtico o semiautomtico para los mtodos En esta categora, Pressman se refiere principalmente, al uso de herramientas de software, como por ejemplo, productos CASE (ingeniera de software asistida por computador, sigla en ingls). Herramienta de Software: Un paquete de programas para computadores para asistir en una o ms tcnicas de una metodologa. La funcin de las Herramientas de Software es facilitar el trabajo de las personas involucradas en el proyecto. Procedimiento: Como poner en prctica las herramientas. Segn la RAE: 1. m. Accin de proceder. 2. Mtodo de ejecutar algunas cosas. Siendo Proceder: 1. m. Modo, forma y orden de portarse y gobernar uno sus acciones bien o mal. Y segn Pressman5: Los procedimientos de la ingeniera del software son el pegamento que junta los mtods y las herramientas y facilita un desarrollo racional y oportuno del software de computadora.

3. Fundamentos de la Ingeniera
Siguiendo la lnea de las definiciones, es til sealar que segn la RAE Ingeniera es el Conjunto de conocimientos y tcnicas que permiten aplicar el saber cientfico a la utilizacin de la materia y de las fuentes de energa. En lo principal, la Ingeniera se basa en la utilizacin de mtodos, con pasos organizados y repetibles. La tradicin de la ingeniera es la de seleccionar un conjunto de pasos o etapas que de una u otra manera pueden ser agrupados en cuatro secciones fundamentales y claramente definidas: Anlisis: es siempre el inicio del trabajo, no se empieza nada sin un estudio previo de la situacin. El anlisis apropiado en la tradicin de la ingeniera debe dejar documentacin apropiada para que cualquier otro ingeniero conocedor de la metodologa sea capaz de tomar el testimonio (cual carrera de postas) y continuar SIN prdida de trabajo. Diseo: Concluido el anlisis, es necesario decidir qu y cmo se va a dar solucin al problema planteado. Al igual que el anlisis, el diseo debe producir
4 5

[Pressman 93] pgina 25 [Pressman 93] pgina 26

resultados tales que permitan el reemplazo del ingeniero que est trabajando en cualquier momento. Sin diseo NO hay Ingeniera. Construccin: Una vez completados (al menos parcialmente) los pasos anteriores, se puede empezar a traducir los aspectos diseados en una solucin real (software + archivos/bases de datos) Pruebas: La ltima parte antes de poder entregar la solucin al usuario, para su uso en el medio. Y aunque no hay disponible una definicin precisa de Ingeniera del Software, Pressman 6 rescata: El establecimiento y uso de principios de ingeniera robustos, orientados a obtener software econmico que sea fiable y funcione de manera eficiente sobre mquinas reales. Queda tambin la nocin que se puede obtener al extender la definicin de la RAE para el trmino Ingeniera, entendiendo que la Ingeniera de Software es el que el Conjunto de Conocimientos y Tcnicas que permiten el desarrollo de software, en otras palabras, las Metodologas de desarrollo de Software.

4. Elementos importantes
Toda Metodologa, considera a lo menos cuatro elementos importantes: Principio Rector: Tambin denominado filosofa de la metodologa, es la norma o idea fundamental que rige el pensamiento o la conducta, y orienta el anlisis, diseo y desarrollo del software. Es el Principio, el que ordena y estructura las herramientas que son aplicables en la metodologa, as como los Procedimientos con los que se aplica. Tradicionalmente, se apellida a cada metodologa en funcin del principio que la rige: Metodologa estructurada7 se fundamenta en que lo ms importante de un sistema de informacin, son las estructuras que lo componen y que, por lo tanto, el anlisis se debe centrar en ellas, descomponindolas en nuevas subestructuras hasta tener elementos tan simples, que puedan ser resueltos en forma sencilla. Metodologa orientada a objetos indica que el principio rector es la orientacin a objetos, es decir el anlisis de todos los componentes del sistema como un conjunto de objetos que poseen propiedades y que, a travs de mensajes, se interrelacionan entre s.

Herramientas: son definiciones de mecanismos manuales, semiautomticos o automticos que permiten analizar, disear o construir el software. Las herramientas quedan estrechamente ligadas al principio rector de la metodologa y es muy poco probable que una misma herramienta sea utilizable en ms de una metodologa 8. Una herramienta debe tener un objetivo especfico y un
6 7

[Pressman 93] pgina 25, refirindose a la definicin propuesta por Fritz Bauer en el ao 1969. En ms de una oportunidad, diversos profesores del rea, se han referido a ella como Metodologa Clsica, pues es producto de la evolucin histrica del desarrollo de software. A menos que existan elementos comunes en la definicin del Principio rector de cada una de las metodologas

mtodo de aplicacin. Por lo general, se ha demostrado que las herramientas grficas (que usan imgenes) son ms fciles de usar y entender que las herramientas que slo se sustentan en textos escritos. Son ejemplos de herramientas: los DFD, MER, Lenguaje Estructurado, Diagramas de Componentes, Diagramas de Herencia, etc. Procedimientos9: Se refiere al modo de hacer, con orden, las cosas; es decir, como poner en prctica las herramientas. Los procedimientos corresponden a la definicin que permite unir y ordenar los resultados de cada herramienta y facilitan el desarrollo racional y oportuno de software. Definen la secuencia en la que se aplican las herramientas, la entrega de los resultados de ellas, los controles que ayudan a asegurar la calidad. Tambin coordinan y controlan los cambios y entregan las directrices que ayudan a los administradores a evaluar el progreso del proyecto. Modelos: El modelo define las etapas a realizar para alcanzar la solucin al problema planteado. Los Modelos, se refieren a la forma de organizar los Procedimientos, de manera de obtener resultados de calidad en el menor tiempo posible. A diferencia de las Herramientas y los Procedimientos, los modelos son relativamente independientes del principio, pudiendo aplicarse sin grandes dificultades, cualquier modelo a cualquier metodologa. Pese a lo anterior, el modelo debe quedar definido claramente antes de iniciar el desarrollo del software. Ejemplos de modelos son: Cascada, Prototipos, Espiral, T4G, RAD: Cascada: Tambin denominado clsico10. Bajo este modelo, los procedimientos de la metodologa se ordenan en pasos o etapas, las cuales debern ser seguidas bajo un enfoque secuencial de anlisis, diseo y desarrollo. Creado a partir del modelo convencional de lnea de produccin de la ingeniera clsica, este modelo es el ms aplicado en el desarrollo de Software. Prototipos11: Los prototipos son modelos (no necesariamente productos de software) que permiten estudiar y probar aspectos especficos del producto final (en este caso el producto de software). Bajo este modelo, se planifica la aplicacin de las diferentes herramientas, para producir elementos de pruebas especficas (interfaz de usuario, mantenedores, procesos) que debern ser presentados al usuario y confirmados por ste. Alternativamente, se ha denominado de esta forma, al resultado del diseo rpido de productos de software que permitan comprender de mejor manera los requerimientos del usuario. Sin embargo, para prevenir confusiones, se sugiere que para esos casos, se usen las denominaciones siguientes, segn corresponda. Espiral: El modelo espiral, pretende optimizar los tiempos y reducir la incertidumbre del proyecto, as, la idea es partir produciendo una pequea parte del sistema (pero completamente funcional) y una vez completada, se procede a crear una
9

Se ha optado por la palabra Procedimiento para prevenir el conflicto entre las palabras Mtodo y Metodologa. Sin embargo, tanto en la definicin como en el uso, se observa claramente que son trminos intercambiables. Vase: [Pressman 93], [Barros] y otros. No est de ms la definicin RAE: Ejemplar original o primer molde en que se fabrica una figura u otra cosa

10 11

segunda parte, acoplada a la primera, de manera de que en cada iteracin, se obtiene una versin aumentada del sistema. El proceso concluye cuando se considera que el sistema ha alcanzado un nivel de maduracin tal, que permite que el trabajo para el que fue creado, sea realizado sin mayores inconvenientes. T4G o RAD(D): T4G es la sigla de Tcnicas de 4 Generacin y RAD(D) es la sigla de Rapid Application Development (and Deploy) o Desarrollo (y Distribucin) rpido de aplicaciones. Como modelo, se basa en la existencia de herramientas de software que se caracterizan como T4G y RAD(D), las cuales permiten que el analista diseador de un sistema, realice un mnimo anlisis y diseo, lo traduzca rpidamente en aplicacin y se lo presente al usuario para su estudio y posterior aprobacin o indicaciones para modificacin. Actualmente, este es, con una alta probabilidad, el modelo ms utilizado por los desarrolladores de software; sin embargo, y probablemente en la misma tasa de ocurrencia, es llamado modelo prototipo.

5. A modo de Reflexin
Quiz llame la atencin del lector, en que este documento no se han definido claramente las etapas que ordena cada modelo. Ni siquiera se ha hecho un listado de herramientas o procedimientos segn alguna metodologa. La razn es simple, el autor de este texto est convencido de que NO existe una definicin estricta ni que sea posible siquiera intentar un consenso al respecto. Al revisar literatura especializada, queda claro que cada autor (incluyendo al suscrito) tiene sus propias versiones al respecto de cmo y cuando utilizar cada herramienta, o la divisin del proyecto en etapas para dar solucin a un problema especfico. Esto es positivo. La historia ensea que en la Ingeniera Informtica se han cometido numerosos errores, y se debe aprender de ellos. Y la leccin principal, es que an hoy, existen jefes de proyectos, analistas, diseadores y/o programadores (mencin a cargos, no ttulos) que al enfrentar un proyecto, actan ms como artistas inspirados por la divina providencia que como personas metdicas. Y eso ocurre porque muchas veces llega un jefe de proyecto inspirado y decide poner en prctica toda una serie de elementos metodolgicos aprendidos en el ltimo seminario al que asisti, sin tener claro si ellos son aplicables en la realidad de su empresa o no. La metodologa, para que sirva, debe cumplir con dos condiciones fundamentales: 1. Debe tener Hitos bien definidos: El analista/diseador debe saber claramente cuales son los objetivos de la etapa en la que se encuentra, reconociendo claramente las tareas que debe realizar para alcanzar dichos objetivos. 2. Debe ser Incremental: El resultado de una etapa, debe ser de utilidad para la persona que va a realizar la etapa siguiente. Frecuentemente, se escucha a diversas personas del rea informtica, declamando amargamente por el hecho de tener que crear un documento que refleje, por escrito el diseo del trabajo realizado. En esos casos, se tiene un proyecto cuya metodologa de desarrollo no cumpli con las condiciones arriba sealadas. Si la metodologa define pasos que no son de utilidad al desarrollador, entonces ste lo dejar para el ltimo momento, rompiendo as con la idea fundamental de tener una metodologa.

No est de ms, terminar esta reflexin, recordando que una metodologa, sea esta la que sea, debe constituir un estndar de desarrollo. Y los estndares no son tales por ser buenos, bonitos o baratos, slo son estndares, cuando son utilizados como tales.

6. Bibliografa
[Barros 90]: [Kendall 91]: [Pressman 93]: [RAE 95] Barros V., Oscar: Manual de diseo lgico de sistemas de informacin administrativos, Editorial Universitaria, 1990. Kendall, Kenneth E.;Kendall, Julie E.: Anlisis y Diseo de Sistemas, Prentice-hall Hispanoamericana. 1991. Pressman, Roger S: Ingeniera del Software, un enfoque prctico, Tercera edicin, McGraw-Hill/Interamericana de Espaa S.A., Espaa 1993. Real Academia Espaola: Diccionario de la Lengua Espaola, Edicin Electrnica, versin 21.1.0, Espasa Calpe S.A. 1995.

[Sommervile 88]: Sommerville, Ian: Ingenieria de software, Sistemas Tcnicos de Edicin, 1988. [Yourdon 93]: Yourdon, Edward: Anlisis Hispanoamericana. 1993. Estructurado Moderno, Prentice-hall

También podría gustarte