Вы находитесь на странице: 1из 18

La Ingeniera del Software como una profesin

Tecnolgica: implicaciones en la investigacin


Jaime A. Chavarriaga L.
Grupo LIDIS
Universidad San Buenaventura, Cali, Colombia
{jaime }@usb.edu.co
Resumen
La Ingeniera de Software es una profesin de naturaleza tecnolgica, que
retoma teoras y conocimientos de diversas fuentes y aborda el desarrollo de
software de calidad y a nivel industrial. Como tal, la Ingeniera de Software
construye conocimiento en torno a estas prcticas de desarrollo de software,
conocimiento que se concreta en la definicin mtodos, modelos y esquemas
de funcionamiento que pueden ser aplicados por los ingenieros en sus
actividades profesionales.
La forma como se construyen estos mtodos, modelos y esquemas de
funcionamiento que constituyen el conocimiento propio de la Ingeniera de
Software se basa en la revisin y formalizacin de heursticas surgidas de la
experiencia real en procesos y productos de software.
Por su misma naturaleza, es necesario definir mtodos de investigacin en
Ingeniera de Software que aborden problemas y situaciones reales de la
Industria de Software, que busquen identificar, formalizar y teorizar sobre las
mejores prcticas de la misma y sobre su aplicabilidad general en diferentes
empresas a nivel regional y mundial. Mtodos de Investigacin que no
necesariamente deben seguir los lineamientos clsicos de investigacin
experimental cuantitativa.
Palabras Clave: Ingeniera, Mtodo de Investigacin, Ingeniera del
Software.

1 Introduccin
La Ingeniera de Software es una profesin tecnolgica relativamente joven1, sus
inicios se remontan a mediados de la dcada de los sesenta cuando algunas
instituciones e investigadores se propusieron la tarea de definir nuevas formas de
construir software, formas ms efectivas y confiables.
La forma como se construye el conocimiento en la Ingeniera de Software ha sido
una cuestin importante, incluso desde sus comienzos. Los mtodos de la
Ingeniera de Software, como manifestaciones de ese conocimiento propio, han

Algunas de las primeras definiciones de la Ingeniera de Software se remontan a 1969,


cuando se editaron las memorias de la Software Engineering: A report on a Conference
sponsored by the NATO Science comit.

surgido de una gran variedad de fuentes y formas de trabajo, en algunas ocasiones


como apropiaciones y adaptaciones de mtodos existentes en otras disciplinas.
En los ltimos aos, a partir de algunos estudios sobre el desarrollo de las
investigaciones de la Ingeniera de Software en el pasado [7][8] que han mostrado
su relativamente poco impacto en las prcticas profesionales y la ausencia de
mtodos de investigacin en algunos casos, se ha generado una polmica sobre las
formas como las investigaciones deben desarrollarse en esta rea. Nuevas
perspectivas tendientes a la conformacin de diferente mtodos de investigacin
han surgido: Ingeniera de Software Experimental [8], Ingeniera de Software
Emprica [12], y Mtodos Cualitativos de Investigacin en Ingeniera de Software
[22], entre otros.
Un punto importante que podra considerarse al momento de buscar los mtodos
con las cuales la investigacin puede desarrollarse, es la naturaleza misma de la
Ingeniera de Software. Mientras algunos autores conciben a la Ingeniera de
Software como una divisin de la Ingeniera de Sistemas [1], otros como una
divisin de las Ciencias de la Computacin [2], y otros como una profesin y una
ciencia a la vez [9], cada uno proponiendo diferentes esquemas de investigacin de
forma acorde con su nocin de lo que la Ingeniera misma es.
Al preguntarnos por el mtodo de investigacin que debe usarse en Ingeniera de
Software, de alguna forma nos preguntamos por la naturaleza misma de la
Ingeniera, por el tipo de conocimiento que se genera en su interior, y sobre las
formas como ste se construye. Concebir la Ingeniera como una ciencia o como
una profesin, afecta nuestra nocin sobre lo que debera ser la investigacin en su
interior.

2 Ingeniera: Ciencia o Profesin?


Con el fin de lograr mayores claridades sobre la naturaleza de la Ingeniera (en
general) y de la Ingeniera de Software (en particular), es posible establecer una
diferenciacin entre las disciplinas cientficas tradicionales y las profesiones.
Las disciplinas cientficas centran su campo de conocimiento en torno a la
definicin y comprensin de un objeto de estudio, tpicamente estableciendo
mtodos y mecanismos tendientes a establecer teoras comprensivas del mismo y a
su verificacin a travs de mecanismos empricos. Sus propsitos parecen definirse
ms en trminos de la comprensin y control de algunos fenmenos del mundo.
En las profesiones, por otro lado, su campo de conocimiento se da por la
convergencia, debate y cooperacin de diversas disciplinas en torno al desarrollo
de una prctica propia. Sus propsitos parecen definirse ms en trminos del
desarrollo de una serie de actividades y de tareas en la vida laboral.
La Ingeniera es una profesin de naturaleza tecnolgica, que busca la
aplicacin de mtodos y principios de las diversas ciencias y disciplinas para la

creacin, construccin y mejoramiento de productos con adecuados niveles de


calidad, economa y tiempo de desarrollo. Los productos de los cuales se ocupa la
ingeniera pueden ser productos simples de acuerdo a especificaciones concretas o
pueden ser sistemas y procesos que permitan la produccin masiva de bienes y
servicios de acuerdo a estndares establecidos de calidad y/o especificacin.
A diferencia de otras disciplinas que buscan la comprensin de fenmenos o textos
culturales, o de otras profesiones en donde la aplicacin de los modelos y de los
procesos de diseo no es una caracterstica fundamental, la ingeniera tiene el
propsito prctico de generar productos y soluciones reales a problemas y
situaciones en el mundo real.2
La naturaleza prctica de la ingeniera, la ha llevado a aplicar conocimientos y
teoras formuladas por disciplinas cientficas (que se centran en la descripcin y
comprensin de fenmenos), y a formular teoras y mtodos nuevos, centrados en
la aplicacin prctica de los primeros.
La idea de aplicacin prctica de las ciencias, parece ser la concepcin moderna
sobre las ingenieras. De hecho, algunos de los nombres mismos de las disciplinas,
parecen denotar esta relacin. Algunos ejemplos pueden ser la Ingeniera
Mecnica, que asume las teoras explicativas de la Fsica Mecnica, la Ingeniera
Elctria de la Fsica Elctrica, la Ingeniera Electrnica de la Fsica Electrnica y la
Ingeniera Qumica de la Qumica. Denominacin que no significa que estas
ingenieras sean un subconjunto de estas disciplinas y/o que su nica fuente de
teoras sean solo ellas.
En general, conocimientos propios de la Administracin, la planeacin de
proyectos, la Sicologa, el manejo de personal, y el manejo econmico, son
retomados permanentemente por la Ingeniera para el desarrollo de su propia
actividad.
En la actualidad, la naturaleza misma de los productos en los cuales trabajan los
ingenieros, han establecido ingenieras que se centran en los productos y que
retoman teoras e ideas de multiplicidad de ciencias y disciplinas. Retomando los
conocimientos que le son ms apropiados para el desarrollo de sus prcticas. La
Tabla 1 muestra algunas de las Ingenieras cuyo campo de conocimiento se centran
en el desarrollo de unos productos.

Algunos autores se refieren a la Ingeniera como una arte, debido a la naturaleza prctica
de la misma y a su relacin intrnseca con otras formas de profesin.

Ingeniera

Naturaleza de los productos Ciencias de donde asume algunas


que se ocupa
teoras

Ingeniera Industrial

Industria

Ingeniera
Alimentos

de Alimentos

Fsica (Mecnica), Qumica, Ciencias


Administrativas, ..
Qumica, Biologa, ...

Ingeniera
Agroindustrial

AgroIndustria

Fsica (Mecnica), Qumica, ...

Ingeniera Petrolera

Petrleo

Fsica (Mecnica), Qumica, ...

Ingeniera
Econmica

Finanzas

Economa, Matemtica Financiera, ...

Tabla 1. Ejemplos de Ingenieras denominadas de acuerdo al producto que


desarrollan

3 La Ingeniera como Tecnologa


La Ingeniera, aunque aplica conocimientos de diversas disciplinas, no se limita
solo a eso. En realidad, la Ingeniera desarrolla una variedad de nuevos
conocimientos en torno a la aplicacin de estos conocimientos el desarrollo de las
prcticas constructivas propias de ella. La Ingeniera desarrolla una serie de
conocimientos tecnolgicos.
Aunque en la vida cotidiana parecemos referirnos a la Tecnologa solo como una
conjunto de herramientas o dispositivos. El origen del trmino esta referido al
estudio de las tcnicas. Y es ms acertado definir la tecnologa como un rea de de
conocimientos, que parte de necesidades y problemas humanos, que se vale del
diseo para el desarrollo de soluciones y que se concreta en la produccin de
instrumentos, modelos y procedimientos.
Considerando las formas del conocimiento, podramos referirnos entonces a tres
formas diferentes de conocimiento:

Conocimiento Cientfico

Conocimiento Tcnico

Conocimiento Tecnolgico

El conocimiento Cientfico, surgido de las disciplinas cientficas, tpicamente


brinda explicaciones sobre los fenmenos del mundo, incluyendo fenmenos
naturales, sociales y culturales, entre otros.
El conocimiento Tcnico, tpicamente relacionado los artesanos y/o empleados,
establecen una serie de conocimientos necesarios para el desarrollo de una serie de

actividades. Tpicamente relacionado con la experiencia y el conocimiento


emprico de varias generaciones en la construccin o desarrollo de prcticas
especficas.
El conocimiento Tecnolgico, surgido del estudio y reflexin sobre el
conocimiento tcnico, que plantea nuevas y mejores formas de desarrollar esas
prcticas y que emplea para ello todo el conocimiento cientfico y disciplinar a su
alcance.
Durante el siglo XVI, cuando este tipo de diferenciaciones se empezaron a gestar, y
cuando se empez a privilegiar el conocimiento cientfico sobre las otras formas de
conocimiento, existan diferencias muy marcadas entre el conocimiento cientfico y
el conocimiento tecnolgico. En esa poca, el conocimiento tecnolgico surgi a
partir de la compilacin y revisin de las tcnicas empleadas por los artesanos con
el fin de organizar programas de enseanza e instruccin.
Durante el siglo XX, muchas de estas divisiones fueron tornndose cada vez ms
difusas, mostrando como el conocimiento tecnolgico poda realizar
mejoramientos sobre las tcnicas empleando el conocimiento cientfico y de otras
disciplinas. La Tecnologa, como fenmeno cultural, es el conjunto de
conocimientos que ha hecho posible la transformacin de la naturaleza por el
hombre y que son susceptibles de ser estudiados, comprendidos y mejorados por
las generaciones presentes y futuras.[13]
La Ingeniera es una de las manifestaciones actuales ms importantes de la
Tecnologa, como un campo de conocimiento que aborda el estudio de las tcnicas
de construccin de determinados bienes y servicios, y que propone mejoras a los
mismos desde perspectivas y teoras de diversa naturaleza.
La Ingeniera desarrolla una serie de nuevos conocimientos en torno al desarrollo
de los productos de los que se ocupan, los mtodos para su construccin y la forma
como se desarrollan estos en la vida en real, en empresas que se dedican a construir
esos productos a nivel industrial.3

4 La Ingeniera de Software como Profesin Tecnolgica


Los ingenieros no celebran hasta que ellos puedan caminar sobre el
puente completado, sosteniendo a su hijo en sus manos.
-- Richard Guisselquist.
Fritz Bauer estableci una de las primeras definiciones de ingeniera de software en
1969: Ingeniera de Software es el establecimiento y uso de principios robustos de
3

Lo ms natural es pensar que la Investigacin en Ingeniera debera ocuparse de los


mtodos para la especificacin, planeacin, construccin y mantenimiento de los productos
de los que se ocupa, y no de abordar teoras explicativas sobre las cuales basa su labor.

ingeniera, orientados a obtener software que sea fiable y funcione de manera


eficiente sobre mquinas reales.[11]
Sin embargo, a partir de ese momento, una gran variedad de nuevas definicin
surgieron, generando de fondo una dualidad sobre el trmino. Mientras algunos
autores conciben a la Ingeniera de Software como una divisin de la Ingeniera de
Sistemas [1], otros como una divisin de las Ciencias de la Computacin [2], y
otros como una profesin y una ciencia a la vez [9], originando una variedad de
nociones sobre lo que ella misma debera ser, sobre el tipo de conocimiento que
debera abordar y sobre los mtodos de investigacin que debera usar.
Concebida como una profesin tecnolgica, la Ingeniera de Software posee las
siguientes caractersticas:

Su campo de conocimiento no se da por la definicin de un objeto de


estudio, sino por la convergencia, debate y cooperacin de diversas
disciplinas en torno al desarrollo de una prctica propia. Las diferentes
disciplinas aportan elementos que permiten modelar y analizar los
problemas, y disear y probar las soluciones que desea abordar la
Ingeniera.

La Ingeniera de Software apropia los saberes aportados por disciplinas


como las Ciencias de la Computacin, la Lgica, la Matemtica, la
Administracin y las Ciencias Humanas, entre otras, para el anlisis,
diseo e implementacin a nivel industrial de productos de Software4.

Las comunidades acadmicas y profesionales de la ingeniera no surgen


solo a partir de un objeto disciplinar sino tambin de las relaciones con
usuarios concretos que demandan servicios especficos. Desde este punto
de vista, las comunidades profesionales en la ingeniera de sistemas buscan
responder a las necesidades de sistemas de informacin que les permitan a
las organizaciones administrar y operar de una forma eficiente.

La Ingeniera de Software, como tecnologa y fenmeno cultural5 en Colombia,


involucra un campo de conocimiento sobre los procesos de construccin de
software, sobre los mtodos de articulacin de personas, procesos y recursos
tecnolgicos en pos de la produccin, aseguramiento de calidad y comercializacin
de productos de software, y sobre aquellos que involucran la creacin y
perfeccionamiento de herramientas y tecnofactos que permiten mejorar la
eficiencia de esos procesos.

Comprender que la Ingeniera de Software no se basa nica y exclusivamente en teoras


de las Ciencias de la Computacin puede ser clave para entender que la una no es una
subdivisin de la otra.
5
La Tecnologa debe asumirse como hecho cultural, que se inserta en las estructuras
sociales para producir en ellas cambios que a la postre le pueden ser beneficiosos o
contraproducentes segn las circunstancias.[13]

Este tipo de definicin, no parece ser muy diferente a la nocin de la misma que se
tienen en otros pases. Finklestein y Krammer, por ejemplo, plantean que La
Ingeniera de Software es la rama de la Ingeniera de Sistemas concerniente al
desarrollo de grandes y complejos sistemas intensivos en software, enfocndose en
los objetivos, los servicios que debe proveer y las restricciones del sistema, la
especificacin precisa del sistema y su comportamiento, y la implementacin de
esas especificaciones; las actividades requeridas para asegurar el cumplimiento de
tales especificaciones, la evolucin de tales sistemas a travs del tiempo. Tambin
se ocupa de los procesos, mtodos y herramientas para el desarrollo de estos
sistemas intensivos en software de forma econmica y a tiempo.[1]
La Ingeniera de Software es una profesin de naturaleza tecnolgica que se enfoca
en la solucin de problemas relacionados con la construccin a nivel industrial de
productos de software de calidad. El conocimiento que se genera en su interior gira
en torno al anlisis, diseo e implementacin de este tipo de soluciones.

5 El conocimiento en la Ingeniera de Softwar e


La Ingeniera de Software es a menudo tratada como una rama de las
ciencias de la computacin. Esto es como entender a la Ingeniera
Qumica como una rama de la Qumica. Se necesitan tanto a los
Qumicos como a los Ingenieros Qumicos pero son muy diferentes. Los
Qumicos son cientficos; Los ingenieros Qumicos son ingenieros. La
Ingeniera de Software y las Ciencias de la Computacin tienen la
misma relacin.
-- David Lorge Parnas
La Ingeniera de Software no plantea sus conocimientos en torno a un objeto
disciplinar, sino al desarrollo de su prctica profesional y a la tecnologa propia del
desarrollo de software. Debido a su propia naturaleza, la construccin del
conocimiento corresponde a un proceso de investigacin tecnolgica.
La investigacin tecnolgica en la ingeniera presenta una serie de caractersticas
que la vinculan en forma natural con la innovacin tecnolgica, lo cual indica que
las instancias de promocin inicial de los proyectos de investigacin y la
evaluacin de la investigacin tecnolgica pueden ser utilizadas como un
instrumento para fomentar la innovacin.
Con innovacin tecnolgica se designa la incorporacin del conocimiento
cientfico y tecnolgico, propio o ajeno, con el objeto de crear o modificar un
proceso productivo, un tecnofacto, una mquina para cumplir un fin valioso para
una sociedad.
Con investigacin tecnolgica en la ingeniera se designa un mbito de produccin
de conocimiento tecnolgico validado, que incluye tanto el producto cognitivo

(teoras, tcnicas, tecnologas, maquinarias, patentes, etc.) como las actividades que
desarrollan los ingenieros para producir y validar dichos productos y
conocimientos.
Los procesos de construccin en la ingeniera se soportan en una estructura
cognitiva compleja que incluye asociaciones conceptuales de alto nivel en un
determinado campo, por lo tanto cada fase de este proceso se deriva de un cuerpo
terico que guan la produccin a partir de la investigacin, la cual ayuda a
movilizar procesos mentales para efectos de dar respuestas adecuadas a las
necesidades y demandas del medio a partir de considerar el texto y contexto como
elementos claves que aluden a la pertinencia de las soluciones en relacin con la
problemtica planteada.
La ingeniera identifica el diseo como algo propio de la profesin y a la habilidad
de disear como de suma importancia para la ejercicio de la misma. El diseo es
una regin epistemolgica en donde lo terico se transforma en materialidad. Este
hace las veces de un operador que transmuta la abstraccin en concrecin. [14]
Se deduce entonces que el diseo en tecnologa de la informacin, es un proceso
complejo e innovador que transforma lo abstracto en concreto, como la
prefiguracin intelectiva de lo concreto a partir del signo.
Adems se destaca el respeto a los procesos de reflexin y operacin inherentes a
la prxis del saber tecnolgico: el proceso social, el proceso tecnolgico y el
proceso tcnico.[15]
El proceso social comprende las actividades y relaciones que suceden al interior de
la organizacin, todas ellas gobernadas por principios de accin econmicas,
polticas y axiolgicas.
El proceso tecnolgico como proceso intelectivo, se refiere a la apropiacin y
construccin de los saberes que, a partir de su articulacin interna viabilizan la
concepcin y el diseo del tecnofacto.
El proceso tcnico, comprendido como proceso operacional respecto a la
concrecin del prototipo, se entiende como la materialidad ptima del diseo hecha
herramienta de trabajo y como el espacio del quehacer experimental del tecnlogo.

5.1 La Aproximacin General de Ingeniera


La Ingeniera, en general, trata de la generacin de productos funcionales,
confiables, y econmicos. Productos que operan de acuerdo a las especificaciones
o expectativas establecidas por los clientes.
Para lograr la generacin de tales productos, la ingeniera utiliza una aproximacin
diferente a las de otras disciplinas. Los procesos de generacin de productos estn
basados en principios cientficos que permiten garantizar de antemano la
funcionalidad, confiabilidad y economa de los productos.

La aproximacin de ingeniera se centra en la utilizacin de modelos abstractos


para el proceso de construccin de soluciones. 6

....
El problema
(mundo real)

modelos
abstractos

El producto
(mundo real)

El mtodo

Figura 1. Esquema de la Aproximacin de Ingeniera.


El proceso de generacin del producto parte de la comprensin del problema en el
mundo real. 7 Para su comprensin, el ingeniero establece modelos abstractos que
le permitan comprender y analizar el problema. Estos modelos abstractos pueden
ser de diversa naturaleza: modelos matemticos, modelos estadsticos, modelos
fsicos, modelos qumicos, modelos grficos de los pasos de un proceso, entre
otros.
Cada uno de los modelos que se generan, es transformado de manera rigurosa en
otros modelos. As modelos obtenidos de la realidad son transformados en modelos
ms concisos y abstractos que buscan comprender a cabalidad el problema y
plantearle soluciones en el plano de los modelos.
Los modelos que inicialmente permitieron comprender el problema, son
transformados por el ingeniero, en modelos que plantean la solucin y establecen
los criterios para implementarla en el mundo real. Los modelos de la solucin
permiten probar la solucin en el plano de los modelos, sin recurrir a construir

Definir el proceso en funcin de modelos permite involucrar disciplinas como la


Ingeniera de Software e Industrial, en donde algunos mtodos de desarrollo de productos
no se centran en las ciencias tradicionales.
En muchas ocasiones el problema del mundo real ya ha sido identificado y especificado
claramente por otros profesionales. Ejemplos pueden ser los esquemas arquitectnicos
para un ingeniero civil, la definicin de productos que presentan diseadores a los
ingenieros, etc.

soluciones falibles.8 El ingeniero construye, finalmente, la solucin en el mundo


real de acuerdo a los modelos de solucin que defini previamente.
En ingeniera se llama mtodo al conjunto de modelos y transformaciones que
permiten al ingeniero construir soluciones especificas a partir de determinado tipo
de problemas.9
La cientificidad del mtodo se centra en la capacidad de los modelos de
transformarse en otros de manera predecible y sistemtica, adems de su capacidad
de predecir confiable y verazmente el comportamiento de las soluciones en el
mundo real.
En muchas ocasiones, el mtodo obtenido a nivel experimental, de laboratorio o en
entornos acadmicos, debe ser adaptado en un proceso, el cual permite la
construccin masiva de productos. De esta forma, un mtodo obtenido en
laboratorio para sintetizar una protena, producir determinado alimento o construir
determinado aparato electrnicos, debe adaptarse en un proceso que permita la
produccin masiva de esos productos en una fbrica o industria.
Una de las virtudes de los procesos, es que pueden ser mejorados continuamente.
Una vez se ha establecido un proceso, la revisin del proceso y de los productos
que genera, permiten establecer cambios continuos sobre el proceso para generar
mejores productos. 10
Las actividades de mejoramiento continuo y de adaptaciones de los procesos de
produccin masiva, son tambin actividades naturales de los ingenieros.
Actividades para las cuales, los ingenieros aplican mtodos y modelos de igual
forma como fueron generadas las primeras soluciones.
Es necesario anotar que en muchas ocasiones, los procesos de mejoramiento y
adaptacin de los procesos redundan en la generacin de nuevos productos, en
ocasiones de naturaleza muy diferente a los inicialmente producidos.

5.2 El conocimiento de la Ingeniera como genera dora de Industria


Una de las contribuciones de los ingenieros se centra en la capacidad de definir y
mejorar al sector industrial. A diferencia del sector artesanal, el sector industrial se

Los modelos que emplea un ingeniero civil, por ejemplo, le permiten garantizar la
operacin adecuada de un puente (de acuerdo a unas especificaciones) sin requerir a la
construccin de ste. Ejemplos similares pueden hallarse fcilmente en otras ingenieras.
9
Se utiliza la diferenciacin entre mtodo y proceso sugerida por Ivar Jacobson en su texto
de Ingeniera de Software Orientado a Objetos [25].
10
Esta terminologa de procesos y de mejoramiento continuo esta acorde con los procesos
de aseguramiento de calidad y con las ideas de CMM, PSP e ISO9000.

centra en la aplicacin de procesos, razn por la cual, la ingeniera juega un papel


muy importante en su quehacer.11
A nivel artesanal, cada uno de los productos es generado por individuos diferentes
con habilidades y conocimientos diferentes. Como resultado de ello, la calidad de
cada uno de los productos, depende de la persona que la elabor.
A nivel industrial, en donde se realiza una produccin masiva de productos, la
calidad de los mismos se centra en el proceso de desarrollo que se lleva a cabo en
ellos. Siguiendo esta idea, la calidad de los productos no se centrar entonces en la
habilidad de las personas, sino en la predictividad, adherencia y calidad del proceso
que los genera.
Probablemente, la virtud de la ingeniera no se centra entonces en la generacin de
los productos, sino en la capacidad de generacin de procesos de produccin de
los mismos. Procesos que deben ser repetibles y rigurosos, que deben permitir
garantizar ciertos niveles de calidad y xito.12

6 La construccin de conocimiento en Ing eniera


Debido a que el conocimiento de la Ingeniera se centra en los
construccin de determinados productos y servicios, y en los
existentes para adaptar esos mtodos en procesos aplicables en
Empresas, ellos se desarrollan a partir de los mtodos y procesos de
de esos productos y servicios.

mtodos de
mecanismos
Industrias y
construccin

En general, el mtodo que aplica la Ingeniera para la construccin de su


conocimiento tecnolgico, es la formalizacin de las experiencias, la identificacin
de las mejores prcticas y la formalizacin de las heursticas relacionadas con la
construccin de los productos y servicios de los cuales se ocupa.[16][17].
Esta definicin va en contra de la apreciacin general de la Ingeniera como la
aplicacin de conocimiento cientfico para la construccin de bienes y servicios.
Sobre este punto es importante recordar que las primeras expresiones de la
Ingeniera surgieron antes de que el conocimiento cientfico fuera la forma
privilegiada de conocimiento y que el mtodo cientfico fuese definido. Los
primeros ingenieros, quienes construyeron el acueducto romano, los principales
monumentos de la antigedad, los carruajes, los molinos de agua, las catapultas y
11

Un caso complejo puede ser la ingeniera civil como generadora de una industria
especfica. Los ingenieros civiles permiten consolidar una industria de la construccin,
con niveles de calidad y rendimiento superiores a un sector artesanal del mismo
(compuesto, por ejemplo, de albailes nicamente).
12
Probablemente una ingeniera civil de excelencia no se halla en una que permita construir
adecuadamente un slo puente, sino una que permita la construccin continua de puentes
adecuados. Probablemente una buena industria de produccin no sea aquella que
identifica o disea buenos nuevos productos, sino las que establecen procesos adecuados
que le permitan la construccin masiva de productos con niveles adecuados de calidad.

otras obras clsicas de la ingeniera, no pudieron aplicar el conocimiento cientfico,


simplemente por que tal no exista. En su lugar, aplicaron heursticas surgidas del
desarrollo emprico de su profesin.[18]
Aunque es claro que las formas ms incipientes de la Ingeniera surgieron de estas
heursticas, es tambin claro que las formas ms evolucionadas de la Ingeniera
basan la construccin de sus conocimientos en una relacin muy estrecha entre
ciencia y tecnologa, incluso hasta un punto en donde es muy difcil diferenciar la
una de la otra.
Teniendo en cuenta esto, es importante entonces considerar mtodos de
construccin de conocimiento que no solo se asemejen a procesos de investigacin
cientfica, sino mejor a procesos de investigacin e innovacin tecnolgica.
En los procesos de innovacin tecnolgica, lo que se busca es el mejoramiento de
un producto y/o un proceso, aplicando para ello todo el conocimiento cientfico,
tcnico y heurstico a su disposicin.
Una de los principales cuestionamientos a estas formas de investigacin (basadas
en heursticas) en Ingeniera de Software se centran en las formas de validacin de
sus resultados. Diagnsticos realizados en el pasado por Basili, Taschi y Zelkowitz
[7][8] han mostrado que gran parte del conocimiento propio de la Ingeniera de
Software no parece ofrecer mecanismos de validacin. Pareciendo para algunos,
que muchos de ellos son meras especulaciones sobre unas pocas experiencias
exitosas. Situacin por la cual se han propuesto mtodos de investigacin ms
experimentales, en donde los componentes de verificacin experimental de las
teoras son de gran importancia para la aceptacin de los resultados de las mismas.
En realidad, hay que reconocer que el impacto de las investigaciones en las
prcticas de las empresas no ha sido muy alto, en parte debido a la falta de
evidencia sustancial sobre el valor derivable de la aplicacin de esos nuevos
conocimientos [1]. Situacin que ha generado una serie de trabajos sobre la
validez de los resultados, que parecen conducir a la solucin probada de
aplicar los mtodos cientficos tradicionales.
El asunto aqu es que los procesos de validacin de los resultados de las
investigaciones se pueden generar, an sin emplear los mtodos cientficos
experimentales tradicionales. Hoy existe una tendencia hacia la aceptacin de la
diversidad metodolgica, y se reconocen los mecanismos de validacin propios de
las investigaciones cualitativas.
Los mtodos de investigacin de ingeniera de software emprica y basados en
mtodos cualitativos, parecen ms adecuados para la Ingeniera de Software por
varias razones:

Las empresas de desarrollo de software, entorno de trabajo de los


proyectos de ingeniera de software, normalmente estaran dispuestos a
abordar estudios experimentales muy complejos sobre los procesos que se

llevan en su interior13. Normalmente, podran recopilar informacin


emprica que luego pudiese ser analizada o formalizada.

13

Las investigaciones que se llevan a cabo en condiciones controladas


(laboratorios, universidades, etc.) conducen a mtodos que no
necesariamente aplican a las diferentes empresas o a los diferentes
proyectos. El conocimiento en torno a los procesos de desarrollo de
software se gesta en las empresas de desarrollo de software y tpicamente
no se pueden reproducir en el laboratorio.14

En la actualidad no tenemos modelos sobre los procesos de desarrollo de


software que cuenten con un nivel de cientficidad tal que nos permita
hacer experimentacin a partir de la simulacin. Aunque se ha probado la
aplicabilidad de modelos de simulacin en ambientes de enseanzaaprendizaje, su utilidad actual en el desarrollo de investigaciones
experimentales parece muy limitada.

Considerando los problemas de desarrollar las investigaciones mediante


simulacin, el ambiente ms propicio son las empresas de desarrollo de
software o los mbitos de aplicacin real de los conocimientos por parte de
los Ingenieros de Software.

Las investigaciones pueden concentrarse en experiencias exitosas (o


precisamente en las que no tienen xito), con el fin de reconocer nuevas y
mejores formas de trabajo, pero no puede suponer que son necesariamente
validas para todo tipo de situacin o empresa [6]. Los aspectos
concernientes a la validacin son necesarios para lograr una mayor
madurez de la profesin [1].

La validacin de los resultados de las investigaciones son posible a travs


de mtodos empricos y cualitativos. El hecho de no usar esquemas
experimentales cuantitativos clsicos, no es una contravencin contra la
intencin de validar los resultados.[22]

El hecho que los Ingenieros de Software deban trabajar con algoritmos,


modelos cuantitativos y esquemas de ciencias de la computacin, no es una
razn suficiente para creer que deban emplear los mismos mtodos de
investigacin que pueden usarse en esas reas. No debe confundirse la
Ingeniera de Software con las ciencias de la Computacin. [2][23][24]

Por ejemplo, una investigacin con un diseo experimental o cuasi-experimental, en


donde se desarrollara el mismo proyecto empleando diferentes procesos, incluyendo el
proceso sin modificaciones, y que se pudiesen comparar los resultados de los mismos
mediante mecanismos cuantitativos bastante amplios.
14
Anteriormente se mostraron las diferencias entre el mtodo y el proceso, y las diferencias
inherentes a los dos.

7 Una propuesta de Investigacin en Ingenier a de Software


Acorde con esta concepcin sobre el conocimiento y sobre las formas de
construccin de conocimiento en Ingeniera, podemos plantear algunas
consideraciones y propuestas sobre las formas de investigacin en Ingeniera de
Software.
Consideraciones sobre las investigaciones en Ingeniera de Software:

Las investigaciones deberan desarrollarse en torno a proyectos reales de


desarrollo de software. Aunque los desarrollos al interior de proyectos
definidos por los investigadores o en el desarrollo de las clases, las
condiciones reales de una empresa de desarrollo de software son
difcilmente reproducibles fuera de ella.

La identificacin de prcticas al interior de empresas y/o grupos de


desarrollo, puede ser un excelente punto de partida para la definicin de
mtodos y procesos de desarrollo de software.

La adaptacin de mtodos tericos de ingeniera de software a procesos


aplicables en organizaciones de desarrollo de software puede ser esencial
para comprender las particularidades propias de los mtodos y su
aplicabilidad real.

El mejoramiento de los procesos de desarrollo de software, a partir de


procesos de diagnstico y de rediseo de procesos, plantea posibilidades de
creacin de nuevos mtodos y procedimientos.

La formalizacin de los nuevos procedimientos y la construccin


herramientas que posibiliten apoyar o automatizar la aplicacin de
mismos posibilita mecanismos reales para la verificacin emprica de
procedimientos incipientes y para la aplicabilidad real por parte de
profesionales de la ingeniera.

de
los
los
los

Las investigaciones que pueden plantear nuevos conocimientos a que posibiliten el


desarrollo de la Ingeniera de software pueden ser:

Diagnstico de las prcticas y procedimientos al interior de Empresas de


Desarrollo de Software. Lo cual sugiere de un mtodo diagnstico (similar
al empleado en algunas investigaciones en el rea de la Administracin) o
un mtodo cualitativo etnogrfico

Establecimiento de las Mejores Prcticas aplicables a los procesos de


Desarrollo de Software. Lo cual sugiere un mtodo etnogrfico.

Formalizacin de las mejores prcticas en mtodos organizados de


Desarrollo de Software15. Lo cual sugiere mtodos empricos o
Etnogrficos.

Definicin de diseos y mtodos de diseo para situaciones nuevas y/o en


donde los mtodos tradicionales no aplican. Situaciones que demandan
procesos creativos ms amplios y que podran requerir el trabajo
cooperativo con investigadores de ciencias de la computacin, pero para el
rea de Ingeniera abordara investigaciones que se enmarcaran en
mtodos empricos.

Estudios sobre la aplicabilidad real del conocimiento disciplinar en casos


reales especficos. Lo cual siguiere mtodos diagnsticos, empricos y
etnogrficos.

Procesos de adaptacin de Mtodos Tericos a Procesos de Desarrollo de


Software en empresas diferentes a las que dieron origen a los primeros.
Situacin que se asemeja ms a procesos de Transferencia Tecnolgica y
que siguiere mtodos empricos.

7.1 LIDIS: Laboratorio de Investigaciones en Ingen iera de Software


A partir de estas consideraciones, la Facultad de Ingeniera de Sistemas de la
Universidad de San Buenaventura de Cali, ha desarrollado una serie de actividades
y proyectos de investigacin al interior de Empresas de Desarrollo de Software que
han culminado con el establecimiento del Laboratorio de Investigaciones en
Ingeniera de Software.
Aunque originalmente las investigaciones del grupo se centraron en el trabajo en
empresas de desarrollo de software grandes y establecidas, con el tiempo las
actividades se fueron concentrando en torno a las empresas de desarrollo pequeas
y nacientes, tpicamente parte de instituciones incubadoras de empresas y parques
tecnolgicos.
La experiencia mostr que las empresas grandes tienen caractersticas propias de
definicin de procesos, cultura organizacional y condiciones de burocracia que
dificultan el desarrollo de los procesos de innovacin y el desarrollo de las
investigaciones. Las empresas pequeas, por otro lado, suelen tener muchos ms
problemas tcnicos relacionados con el proceso de desarrollo, la construccin de
productos genricos y los procesos de mantenimiento y soporte. Generando

15

Ejemplos de procesos de formalizacin de las mejores prcticas pueden encontrarse en


los esquemas de patrones de diseo [19] que han tenido gran aceptacin entre los
Ingenieros de Software desde 1994 o la definicin del Proceso Unificado de Modelamiento
[20] o el mtodo Fusin [21] a partir de algunas de las mejores prcticas en el desarrollo de
software orientado a Objetos.

condiciones que pueden ser muy favorables para el desarrollo de las


investigaciones.

8 Conclusiones
La Ingeniera de Software no es una ciencia, es una profesin tecnolgica, que
aborda la construccin e implementacin de un tipo particular de tecnologa y que
genera conocimientos relacionados con el desarrollo de estas prcticas.
Debido a su naturaleza, podra ser inapropiado intentar aplicar mtodos cientficos
experimentales tradicionales para el desarrollo de sus investigaciones. Es posible
que mtodos ms cualitativos y empricos sean los ms apropiados.
Debido en parte a la naturaleza propia de la profesin, y al nivel actual de los
modelos y de los conocimientos que se tienen sobre los procesos de desarrollo de
software, el lugar ms apropiado para el desarrollo de las investigaciones parecen
ser las empresas que desarrollan software, las cuales son el mbito real de
aplicacin de estos conocimientos.
Naturalmente, el desarrollo de estas investigaciones debe realizarse con un rigor
apropiado, buscan mecanismos de verificacin que posibilitan determinar la
veracidad y aplicabilidad de sus resultados. Comprendiendo que los mtodos no
aplican indistintamente a todo tipo de proyectos u organizaciones y que una mayor
comprensin sobre la forma como ellos aplican en un caso determinado o no es
necesaria.

Bibliografa
[1] Finkelstein, A. Kramer, J. Software Engineering: a roadmap en Finkelstein,
A. (editor) Proceedings of the Conference on The Future of Software
Engineering. ACM Press. 2002
[2] Parnas, D. Software Engineering: An Unconsummed Marriage.
Communications of the ACM. Vol 40. No. 9. Septiembre 1997.
[3] Gisselquist, R. Engineering in Software. Communications of the ACM. Vol.
41. No. 10. Octubre 1998.
[4] Grimson, J. Kluger, H. Software Needs Engineering- a position paper. ICSE.
Limerick. Irlanda. 2000.
[5] Wasserman, A. Towards a discipline of Software Engineering. IEEE Software.
Noviembre 1996.
[6] Brooks Jr., F. No Silver Bullet Essence and Accidents of Software
Engineering en The Mythical Man-Month. Essays on Software Engineering,
Twentieth Anniversary Edition. Adisson-Wesley. Reading, MA. 1995.
[7] Shaw, M. What Makes Good Research in Software Engineering. ETAPS.
Grenoble, Suiza. 2002.

[8] Basili, V. The experimental paradigm in software engineering en Rombach,


D., Basili, V., Selby, R. Experimental Software Engineering Issues: Critical
Assessment and Future Directives. Proceedings of Dagstuhl-Workshop.
publicado en Lecture Notes in Computer Science #706. Springer-Verlag. 1993.
[9] Hilburn, T. Hirmanpour, I. Khaienoori, S. Turner, R. Qasem, A. Software
Engineering Body of Knowledge. Versin 1.0. Software Engineering Institute.
Carnegie Mellon. 1999.
[10]
Impact Project. Determining the impact of software engineering research
upon practice: Panel Summary. En Proceedings 23rd International Conference
on Software Engineering ICSE 2001 . 2001.
[11]
Naur , P. Randell, B. (editors) Software Engineering: Report of a
conference sponsored by the NATO Science Committee, Garmish, Almania.
Octubre
1968.
NATO.
http://www.cs.ncl.ac.uk/old/people/brian.randell/home.formal/NATO/index.ht
ml
[12]
Pfleeger, S. Albert Einstein and Empirical Software Engineering.
Computer. Octubre 1999.
[13]
Equipo de Tecnologa del MEN. Educacin en Tecnologa: Propuesta para
la Educacin Bsica. Documento 1. MEN. Bogot. 1996.
[14]
Bachelard, G. La Formacin del Espirit Cientfico. Siglo XXI Editores.
Mxico. 1990
[15]
Perez, U. Educacin, Tecnologa y Desarrollo. Impresin Panamericana.
Bogot. 1989.
[16]
Koen, B. Definition of the Engineering Method. American Society for
Engineering Education. Washington. 1985.
[17]
Kirck, E. Fundamientos de Ingeniera: Mtodos, Conceptos y Resultados.
Limusa. Mxico. 1979.
[18]
Sprague de Camp, L. The Ancient Engineers. Barnes & Noble. New Cork.
1993.
[19]
Gamma, E., Helm, R., Johnson, R., Vlissides, J. Software Design Patterns.
Addison Wesley. 1994.
[20]
Jacobson, I. Booch, G. Rumbaugh, J. The Rational Unified Process.
Addison Wesley. 1995.
[21]
Coleman, D. Arnold, P. Bodoff, S. Dollin, C. Gilchrist, H. Hayes, F.
Jeremaes, P. Object Oriented Development: The Fusion Method. Prentice Hall.
1994.
[22]
Seaman, C., Conradi, R. Qualitative Methods in Software Engineering
Research.
en
la
conferencia
ISERN,
Octubre
2000.
http://csdl.ics.hawaii.edu/isern/slides/seaman.qual.ppt
[23]
ACOFI-ICFES. Actualizacin y Modernizacin Curricular en Ingeniera de
Sistemas. ACOFI. Bogot. Marzo 1996.

[24]
Denning, P. Educating a new Engineer. Comunications ACM. Vol. 35. No.
12. Diciembre 1992.
[25]
Jacobson, I. Object Oriented Software Engineering: A Use Case Driven
Approach. Addison-Wesley. 1992.

Вам также может понравиться