Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mifisis2004 PDF
Mifisis2004 PDF
Resumen
Con el fin de acometer las tareas de investigacin, los grupos de investigacin deben definir
una estrategia de trabajo que permita combinar el trabajo acadmico en laboratorio con
experiencias reales de aplicacin de tecnologa en empresas de la industria de software. El
grupo de investigacin LIDIS ha propuesto un esquema en donde se sintetizan algunos de
las estrategias y clasificaciones definidas en los ltimos aos por diversos autores,
ofreciendo orientaciones bsicas sobre el desarrollo de estas actividades.
Palabras claves
1. Antecedentes
Esta reflexin se ha visto complementada por una serie de trabajos realizados por la
comunidad cientfica internacional sobre caracterizaciones de los trabajos investigativos
que se realizan en ingeniera de software [9] [14], los atributos de calidad deseables de este
tipo de trabajo [19][20][21] y las bases conceptuales para la realizacin de diseos de
investigacin en el rea [25][26].
Al interior del grupo, y a partir de una serie de talleres realizados a finales de 2002, un
modelo de las actividades de investigacin fue definido, identificando las estrategias de
trabajo que se aplicaran para desarrollar las tareas investigativas y estableciendo tambin
algunas reas conceptuales en donde es necesario lograr mayores definiciones.
La Ingeniera de Software, como cualquier otra ingeniera, es una profesin tecnolgica [5],
centrada en la elaboracin de productos tecnolgicos de software de calidad. Por su propia
naturaleza, la ingeniera de software se encuentra estrechamente ligada a la industria de
software. En realidad, tanto la industria necesita de la ingeniera para desarrollar sus
productos, como los ingenieros requieren de una industria para realizar sus proyectos y
tecnofactos.
Sin embargo, desde hace algn tiempo se han observado diferencias entre el conocimiento
generado en el mbito acadmico e investigativo, y su aplicacin real en las empresas
[7][8]. En muchos casos, problemas y situaciones analizadas y solucionadas en el plano
investigativo siguen sin trascender al plano empresarial.
Las diferentes etapas de este proceso de maduracin han sido analizadas por diferentes
autores. Una de las primeras propuestas, elaborada por Martin y McClure [15], establece
primordialmente tres fases: (1) Crisis y reconocimiento, (2) nfasis Acadmico y (3)
Asimilacin y Madurez.
Siguiendo estos lineamientos, los centros de investigacin deben realizar una estrategia de
investigacin que permita desarrollar y madurar las tecnologas a travs del trabajo
conjunto de universidades, grupos de investigacin, empresas de la industria de software y
entidades gubernamentales relacionadas con el sector [4][25].
Algunos de los trabajos iniciales de Basili, Taschi y Zelkowitz [1] [2] se centraron en el
carcter experimental de los proyectos de investigacin en ingeniera de software y los
diseos que deberan emplearse para su ejecucin. Zelkowitz y Wallace definieron una
clasificacin de doce (12) modelos diferentes de verificacin experimental en ingeniera de
software [25][26].
Otros autores han propuesto clasificaciones sobre los tipos de investigaciones aplicados en
Ingeniera de Software. Basili [2] propuso clasificar las investigaciones a partir de los
experimentos que se definen en su interior : (1) in vivo, cuando se desarrollan al interior
de organizaciones que desarrollan software e (2) in vitro cuando se realizan en entornos
controlados. Kitchenham [12] por otra parte, clasific los modelos experimentales en (1)
cuantitativos, cuando se analizan variables cuantificables en los experimentos, (2)
cualitativos, cuando se realizan revisin intersubjetiva de algunos atributos (por ejemplo,
atributos de calidad) y (3) benchmarking, cuando se realizan pruebas comparativas de
diferentes tecnologas para analizar su rendimiento y beneficio relativo.
Al interior de cada una de las fases de la estrategia de una iniciativa o lnea de investigacin
deben disearse proyectos de investigacin y desarrollo que permitan madurar la tecnologa
apropiada y solucionar los problemas especficos definidos en cada una de las iniciativas o
lnea de investigacin.
Para disear los diferentes proyectos de investigacin, es necesario considerar el conjunto
de elementos bsicos de evaluacin de la investigacin establecidos por Shaw [19]: (1) el
tipo de pregunta, (2) el producto final, y (3) el mecanismo de verificacin.
Segn la misma clasificacin el tipo de resultado de cada proyecto puede ser: (1)
Procedimiento o tcnica, cuando se define un conjunto de pasos para acometer una tarea,
(2) Modelo cualitativo o descriptivo, cuando se define una estructura o taxonoma para
algn rea problema, (3) Modelo emprico, cuando se define un modelo predictivo basado
en datos observados, (4) Modelo analtico, cuando se define un modelo estructural que
permite un anlisis formal o la manipulacin automtica, (5) Herramienta o notacin,
cuando se implementa una herramienta que apoya algn procedimiento o tcnica, (6)
Solucin especfica o prototipo, cuando se desarrolla una aplicacin problema que permite
observar algn principio de ingeniera, y (7) Reporte de experiencia, cuando se muestra
resultados preliminares y observaciones que no han sido suficientemente generalizadas o
sistematizadas.
Patrones de
diseo de la Diseo (Mtodo) de la
investigacin investigacin
Con el fin disear sus proyectos, el investigador puede utilizar alguno de los arquetipos o
patrones de diseo de investigacin utilizados a nivel internacional. Zelkowitz y Wallace
[25] [26] definen tres categoras para los diferentes arquetipos de mtodos de investigacin
y verificacin en ingeniera de software: (1) Mtodos de Observacin, donde se recopila
informacin durante la ejecucin de los proyectos, (2) Mtodos Histricos, cuando se revisa
informacin de proyectos ya terminados, y (3) Mtodos controlados, cuando se establecen
mecanismos con mltiples observaciones para hacer verificacin estadstica o de otro tipo.
Los mtodos de Observacin normalmente son mecanismos que permiten detectar aspectos
interesantes al interior de proyectos de software y podran servir de base para nuevos
proyectos experimentales. Este tipo de mtodos incluyen: (1) Monitoreo de proyecto, donde
se recopila informacin sin nimo de influir en el desarrollo del mismo, (2) Estudio de
caso, donde la informacin se recopila siguiendo un mtodo y un propsito especial, (3)
asercin, cuando se recopila informacin para demostrar algn planteamiento o idea, y (4)
estudio de campo, cuando se revisan de forma simultnea varios proyectos.
A partir de este trabajo, nuevas ideas de investigacin han surgido, en especial en el campo
de la migracin de aplicaciones y rediseo de arquitectura. Situacin que podr
conducir en un futuro al establecimiento de nuevas iniciativas de investigacin y a un
nuevo conjunto de etapas de una estrategia de investigacin en esa rea.
6. Conclusiones
Bibliografa
[1] 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.
[2] Basili, V. R., The Role of Experimentation: Past, Present, Future, (Keynote
presentation), 18th International Conference on Software Engineering, Berlin, Germany,
March, 1996.
[3] Campos, F. J. Reingeniera de la Metodologa en MIFISIS 2002. En MIFISIS 2002. I
Workshop sobre Mtodos de Investigacin y Fundamentos Filosficos en Ingeniera del
Software y Sistemas de Informacin. Universidad Rey Juan Carlos. Noviembre 18 de 2002.
http://kybele.escet.urjc.es/MIFISIS/Articulos/Art10.pdf
[4] Consortium for Software Engineering Research. http://www.cser.ca
[5] Chavarriaga, J. La Ingeniera de Software como profesin tecnolgica: Implicaciones en
la investigacin. Mtodos de Investigacin y Fundamentos Filosficos en Ingeniera del
Software y Sistemas de Informacin. Madrid: Universidad Rey Juan Carlos, 2003. p.162 -
178
[6] Dewayne, P. Porter, A. Votta, L. Empirical Studies of Software Engineering: A
roadmap. en Finkelstein, A. (editor) Proceedings of the Conference on The Future of
Software Engineering. ACM Press. 2002. http://www.softwaresystems.org/front.html
[7] 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.
http://www.softwaresystems.org/front.html
[8] Glass, R. The Software Research Crisis, IEEE Software, Noviembre 1994.
http://csdl.computer.org/comp/mags/so/1994/06/s6042abs.htm
[9] Galan, F.J. Caete, J.M. Qu se entiende en Espaa por Investigacin en Ingeniera de
Software? En MIFISIS 2002. I Workshop sobre Mtodos de Investigacin y Fundamentos
Filosficos en Ingeniera del Software y Sistemas de Informacin. Universidad Rey Juan
Carlos. Noviembre 18 de 2002. http://kybele.escet.urjc.es/MIFISIS/Articulos/Art09.pdf
[10] Jacobson, I. Object Oriented Software Engineering: A Use Case Driven Approach.
Addison-Wesley. 1992.
[11] Johnson, R. Beck, K. Booch. G. Cook, W. Gabriel, R. Wirfs-Brock, R. How to get a
Paper Accepted at OOPSLA. Panel. OOPSLA93.
http://www.acm.org/sigs/sigplan/oopsla/oopsla96/how93.html
[12] Kitchenham B. A., Evaluating software engineering methods and tool, ACM
SIGSOFT Software Engineering Notes, (January, 1996) 11-15.
[13] Koen, B. Definition of the Engineering Method. American Society for Engineering
Education. Washington. 1985.
[14] Marcos, E. Investigacin en Ingeniera de Software vs. Desarrollo de Software en
MIFISIS 2002. I Workshop sobre Mtodos de Investigacin y Fundamentos Filosficos en
Ingeniera del Software y Sistemas de Informacin. Universidad Rey Juan Carlos.
Noviembre 18 de 2002. http://kybele.escet.urjc.es/MIFISIS/Articulos/Art11.pdf
[15] Martin, J. y McClure, C. Structured Techniques for Computing. Prentice-Hall /
Englewood Cliffs, NJ, EE.UU. 1985
[16] Parnas, D. "Successful Software Engineering Research". Software Engineering Notes,
Vol. 23, No. 3, May 1998, pp. 64-68
[17] Potts, C. Software Engineering Research Revisited, IEEE Software. Septiembre 1993.
[18] 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
[19] Shaw, M. What makes Good Research in Software Engineering?. European Joint
Conference on Theory and Practice of Software ETAPS 2002. Abril 2002. http://www-
2.cs.cmu.edu/~Compose/ftp/shaw-fin-etaps.pdf
[20] Shaw, M. Designing Good Research Projects in Software Engineering and getting
results accepted for publication. Carnegie Mellon University.
http://www.csc.calpoly.edu/~csturner/courses/shaw.pdf
[21] Shaw, M. Writing Good Software Engineering Research Papers. Minitutorial.
Internacional Conference on Software Engineering, ICSE 2003. Mayo 2003. http://www-
2.cs.cmu.edu/~Compose/shaw-icse03.pdf
[22] Snyder, A. How to get a Paper Accepted at OOPSLA. OOPSLA91 Proceedings.
http://www.acm.org/sigs/sigplan/oopsla/oopsla96/how91.html
[23] Software Engineering Institute. Carnegie Mellon University. http://www.sei.cmu.edu
[24] Sprague de Camp, L. The Ancient Engineers. Barnes & Noble. New Cork. 1993.
[25] Zelkowitz, M. Wallace, D. Experimental Models for Validating Technology. IEEE
Computer . Mayo 1998, pp 23-31.
[26] Zelkowitz, M. Wallace, D. Experimental Validation in Software Engineering.
Conference of Empirical Assessment & Evaluation in Software Engineering, Keele
University. Marzo 1997. http://hissa.nist.gov/exper/ease.html