Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

Modelo de Investigacin en Ingeniera del Software: Una propuesta de investigacin tecnolgica Jaime A. Chavarriaga L. Hugo F. Arboleda J.

Grupo LIDIS Universidad San Buenaventura, Cali, Colombia {jaime,huarbole}@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, concretado 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. Situacin esta que obliga a definir mtodos de investigacin 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. 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 Ingeniera, Mtodo de Investigacin, Ingeniera del Software. 1. Antecedentes La investigacin en ingeniera de software es un tema que requiere de una reflexin permanente por parte de los grupos que desean acometer su realizacin. Mxime an cuando en algunos mbitos este tipo de actividad no es considerada algn tipo de investigacin en estricto o se confunde con cualquier tipo de proceso de desarrollo de software [3][8].

Conscientes de esta situacin, un proceso permanente de reflexin se inici al interior del grupo de investigacin LIDIS desde mediados del 2000. En principio, basado en una reflexin epistemolgica en torno al conocimiento propio de la ingeniera, de la ingeniera de software, los mtodos que se han desarrollado en la historia de la ingeniera [13] [24] y sus posibilidades de aplicacin en la Ingeniera de Software [5]. 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. 2. Consideraciones para una Estrategia de Investigacin 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. Uno de los ejemplos de esta situacin, y de la necesidad de adaptaciones de la teora a la prctica, fue planteada por Jacobson al establecer diferencias entre el mtodo y el proceso [10]. El mtodo hace referencia a la secuencia de actividades que permiten lograr un desarrollo especfico en el laboratorio. El mtodo, como tal, no puede ser aplicado directamente y sin diferencias en todas las organizaciones. El proceso representa el conjunto de actividades que se definen para su realizacin al interior de un grupo de trabajo, considerando su cultura organizacional, su recurso humano y sus experiencias tecnolgicas. Aunque podra pensarse que la aplicacin de las investigaciones en el plano empresarial es un proceso lineal, en realidad es un proceso iterativo. Por ejemplo, aunque podra pensarse que la secuencia se presenta llevando la teora a la prctica (Teora Prctica) o adaptando el mtodo al proceso (Mtodo Proceso), en realidad la teora se alimenta de la prctica y el mtodo de las adaptaciones a procesos (Mtodo Proceso Mtodo). Las diferentes tecnologas, teoras y mtodos sufren un proceso de maduracin que solo puede lograrse a travs de su aplicacin en entornos empresariales reales. Algunos mtodos de ingeniera

de software, como por ejemplo el Rational Unified Process (RUP), ha evolucionado a travs de diferentes versiones fruto de un proceso iterativo establecido desde su creacin a mediados de los noventa. 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]. El Instituto de Ingeniera de Software [23] en Estados Unidos define tres etapas en su estrategia de investigacin: (1) Creacin, donde se identifican las tendencias y necesidades del departamento de defensa de los Estados Unidos, y se maduran las tecnologas en el mbito acadmico, (2) Aplicacin, donde se aplica en entornos empresariales reales mediante proyectos de desarrollo y consultora con el soporte del grupo de investigacin para continuar madurando la tecnologa, y (3) Amplificacin, donde se definen estrategias de transferencia, como cursos, conferencias, libros y licencias de uso. 3. Propuesta de Estrategia de Investigacin La estrategia de investigacin propuesta, basada en los modelos de Martin y McClure y del SEI, y consiste en tres grandes fases: (1) investigacin y desarrollo inicial, (2) Investigacin aplicada, y (3) Transferencia. Cada iniciativa o lnea de investigacin debe cumplir con estas tres fases, en el proceso de maduracin de la tecnologa. Cada una de ellas involucrando el desarrollo de varios proyectos de investigacin, posiblemente cada uno de ellos con mtodos y tcnicas diferentes.

- Tendencias de la tecnologa - Necesidades del entorno - Casos de xito - Soluciones en casos concretos

- Diagnsticos - Revisin del estado del arte - Investigacin acadmica en laboratorio - Pruebas de concepto Investigacin y desarrollo inicial

- Proyectos piloto - Uso en proyectos reales - Desarrollo de productos Investigacin aplicada

- Cursos - Conferencias - Licenciamiento

Transferencia

Retroalimentacin a partir de experiencias en proyectos reales

Figura 1. Esquema de la estrategia de investigacin 3.1. La investigacin y desarrollo inicial: representa el comienzo de cualquier iniciativa o lnea de investigacin. En ella se delimita el rea de trabajo investigativo que se busca desarrollar en la iniciativa. Normalmente surge a partir de una serie de lluvia de ideas en las cuales se busca determinar las principales necesidades de la industria o las tendencias de la tecnologa que deben ser analizadas al interior del grupo. En algunos casos, puede surgir tambin a partir de una solucin innovadora e interesante encontrada en la industria o por alguno de los investigadores. Para el desarrollo de esta etapa, normalmente se requieren varios tipos de investigaciones: diagnsticos, revisiones del estado del arte, investigaciones acadmicas y desarrollo de soluciones en el laboratorio (pruebas de concepto). Una iniciativa culminar esta etapa cuando pueda establecer, por lo menos en ambientes controlados, la factibilidad tcnica de una solucin al problema propuesto. En algunos centros de investigacin [23] existen procedimientos definidos para establecer las nuevas iniciativas o lneas de investigacin. Algunas de estas, de hecho, pueden no superar la etapa inicial y no desarrollarse a travs de proyectos piloto en empresas reales. En algunos casos se define un etapa de estudio de factibilidad que puede durar unos ocho o nueve meses antes de constituirse una nueva iniciativa. 3.2. La investigacin aplicada: es la etapa en donde se busca madurar la tecnologa definida en la etapa inicial, trabajando en el desarrollo de la tecnologa y en su aplicacin en situaciones reales. A medida que se tienen experiencias de aplicacin de la tecnologa por parte del grupo de investigacin y empresas de la industria, se encuentran las posibles fallas en el modelo de solucin propuesto y se definen las adaptaciones que puedan ser requeridas para su aplicacin en empresas. En esta etapa normalmente se desarrollan proyectos investigativos de naturaleza ms emprica y aplicada, en muchos casos siguiendo tambin esquemas de investigacin-accin-participativa. Una iniciativa culminar esta etapa cuando pueda configurar una solucin madura a alguna problemtica en ingeniera de

software, incluyendo consideraciones sobre las limitaciones e implicaciones de su implementacin en empresas reales que realicen procesos de desarrollo de software. 3.3. La transferencia: es la etapa que busca amplificar el impacto de las nuevas tecnologas, prcticas y conocimientos, ms all de las empresas con las cuales se trabaj en el proceso de investigacin aplicada. Para cumplir su objetivo, los grupos de investigacin desarrollan otros tipos de actividades, tales como cursos, conferencias, y licenciamiento de la tecnologa. 4. Consideraciones para los Tipos de Investigaciones En la actualidad se ha logrado un consenso en la comunidad cientfica sobre el reducido nivel de impacto de las investigaciones en el mbito empresarial. En parte debido a la falta de evidencia sustancial sobre el valor derivable de la aplicacin de estos nuevos conocimientos [7]. Situacin que ha motivado la definicin de modelos y esquemas de investigacin emprica [18] y cualitativa [6]. 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. Trabajos posteriores centrados en la estructura de los documentos tcnicos que se presentan a las conferencias internacionales motivaron una serie de nuevas clasificaciones y consideraciones [11][22]. Shaw defini una serie de atributos de calidad que podran evaluarse en un proyecto de investigacin, as como una serie de recomendaciones para su diseo [19][20] [21]. 4.1. Tipos de Investigaciones 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. De acuerdo a la clasificacin de Shaw, el tipo de pregunta puede corresponder a: (1) Mtodo de desarrollo, cuando se desea definir la forma de construir un tipo de producto particular o desarrollar alguna actividad especfica, (2) Mtodo de anlisis o evaluacin, cuando se establecen mecanismos para evaluar alternativas o determinar el nivel de algn atributo del producto, (3) Diseo, evaluacin o anlisis de una instancia particular, cuando se analiza alguna propiedad de un producto o proyecto, o se hacen comparaciones entre las mismas, (4) Generalizacin o caracterizacin, cuando se busca definir reglas o heursticas que apliquen en un dominio de la ingeniera, y (5) Estudio de factibilidad o exploracin, cuando se busca vislumbrar alguna forma o tcnica que no ha sido posible hasta el momento. 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. El Mecanismo de validacin, que garantiza la aplicabilidad de los resultados en otros mbitos y empresas, puede ser: (1) Anlisis, cuando se aplica algn mecanismo riguroso de verificacin formal o emprica, (2) Evaluacin, cuando se revisan los resultados a partir unos criterios predefinidos, (3) Experiencia, cuando se usan evidencias encontradas en varias aplicaciones reales, (4) Ejemplo, cuando se muestra una sola aplicacin que sirve de verificacin, (5) Persuasin, cuando se pretende confirmar la validez de la propuesta solo con argumentos no verificables, y (6) Afirmacin evidente, cuando no se plantea ninguna argumento de validez. Como es de suponer, los dos ltimos mecanismos de verificacin son inaceptables (o, por lo menos, los menos deseables) para los investigadores en el rea. El investigador, de acuerdo a la fase de la estrategia de investigacin, debe seleccionar la combinacin adecuada de los elementos de la investigacin que le permita cumplir con los objetivos propuestos. Al conjugar el tipo de pregunta, el tipo de resultado y el mecanismote validacin, se configura el mtodo o el diseo concreto de la investigacin.

Tipo de pregunta

Tipo de Resultado

Mecanismo de Validacin

Pregunta

Resultado

Validacin

Patrones de diseo de la investigacin

Diseo (Mtodo) de la investigacin

Figura 2. Esquema de los diseo de 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. Los mtodos Histricos permiten recopilar experiencias y conocimientos de proyectos y productos ya elaborados, permitiendo reconocer y recopilar patrones y heursticas, as como definir bases para nuevos proyectos experimentales. Los mtodos Histricos son: (1) Investigacin literaria, cuando se revisa informacin de documentos y artculos pblicamente disponibles, (2) datos legados, cuando se revisan los artefactos y documentos productos de un proyecto de desarrollo ya terminado, (3) lecciones aprendidas, cuando se analizan los resultados de un proyecto para establecer aspectos cualitativos que puedan aplicarse a nuevos desarrollos, y (4) anlisis esttico, cuando la revisin se hace sobre productos terminados y no sobre los documentos generados en su construccin.

Los mtodos Controlados, estn diseados para establecer conclusiones fcilmente verificables, normalmente permitiendo corroborar descubrimientos, tcnicas o modelos encontrados mediante las otras tcnicas. Los mtodos controlados son: (1) experimento replicado, cuando se aplican mtodos o tcnicas diferentes en varios proyectos de forma simultnea para realizar comparaciones, (2) experimento en entorno sinttico, cuando se utilizan proyectos simulados en laboratorio o en ambientes controlados, (3) anlisis dinmico, cuando se modifica un producto para analizar su comportamiento y hacer comparaciones, y (4) simulacin, cuando se hacen simulaciones de los proyectos o productos en modelos del mundo real. 5. Experiencias utilizando el Modelo de Investigacin La primera iniciativa del grupo de investigacin LIDIS en donde se ha intentado aplicar parte de este modelo general de investigacin, se inici a finales de 2001 en el tema de diseo y reutilizacin de arquitecturas de software. Esta iniciativa surgi con el fin de apoyar los procesos de fortalecimiento en temas de diseo de software y mejoramiento de productos de la red de Parques Tecnolgicos de Software (ParqueSoft) y algunas empresas de desarrollo de software en Colombia. Durante su desarrollo, la iniciativa ha incluido una gran variedad de proyectos, incluyendo la definicin de dominios de aplicacin, el diagnstico sobre los productos y prcticas al interior de ParqueSoft, el establecimiento de nuevos estilos de arquitectura utilizando herramientas opensource, la documentacin de patrones de diseo, la elaboracin de libreras y marcos de trabajo (frameworks) y la construccin de herramientas de desarrollo y generacin de cdigo. En su primera etapa, Investigacin y desarrollo inicial, el grupo de investigadores trabaj en la configuracin varios proyectos que nos permitieran caracterizar mejor el problema y encontrar soluciones a los mismos. Muchos de estas investigaciones requirieron diseos variados: investigacin literaria, estudio de campo, estudio de caso, experimento replicado y monitoreo de proyectos, entre otros. En esta primera etapa, desarrollada en el transcurso de un ao y medio, se realizaron algunas actividades tanto en el laboratorio, como en dos de las empresas de desarrollo de software. En esta primera etapa se buscaron proyectos que, por sus propias caractersticas, permitieran cubrir el ms amplio espectro de posibilidades en trminos de tipos de requerimientos funcionales y no funcionales aplicables a ese contexto. Al final de esta etapa se defini con un conjunto de mtodos, tcnicas, patrones, estilos y herramientas de software que podran resolver el problema en una gran variedad de empresas con caractersticas similares. En la segunda etapa de la estrategia, Investigacin aplicada, una gran variedad de proyectos piloto fueron propuestos y realizados. En total se han desarrollado hasta el momento unos siete proyectos piloto con empresas reales en donde los modelos, esquemas y herramientas propuestos se han colocado a prueba y han servido como retroalimentacin a las investigaciones. Proyectos que nos han permitido constatar y comparar los resultados y hacer modificaciones y mejoras sobre los planteamientos.

En la actualidad, la iniciativa se halla revisando muchos de los resultados de los proyectos piloto, trabajando en refinar las soluciones planteadas, definir modelos predicativos ms confiables y establecer una tecnologa madura que pueda solucionar algunos de los problemas y pueda aplicarse en otros entornos. Seguramente, la iniciativa tendr que seguir desarrollando investigaciones aplicadas durante algn tiempo ms antes de consolidar un paquete tecnolgico maduro que pueda ser presentado a la comunidad cientfica o licenciado a la industria. 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 La Ingeniera de Software no es una ciencia, es una profesin tecnolgica. Una profesin que aborda la construccin e implementacin de un tipo particular de tecnologa, el software, y genera conocimientos relacionados con el desarrollo de estas prcticas en proyectos y situaciones reales. Por esta razn, esta profesin, como cualquier profesin tecnolgica, se encuentra ntimamente relacionada con la industria de software y sus procesos de mejoramiento y fortalecimiento. Plantear una estrategia de trabajo investigativo que considere el desarrollo de la tecnologa, la puesta a prueba de la misma en situaciones reales y su transferencia a las empresas de la industria de software, debe ser un aspecto clave en el proceso de consolidacin de los grupos y lneas de investigacin. El involucrar actividades al interior de empresas de software, incluyendo proyectos piloto de algunas tecnologas y/o proyectos de consultora o desarrollo, no significa que la estrategia de investigacin no involucre el rigor apropiado o no se convierta solamente en una estrategia comercial. Involucrar a las empresas de software en realidad es una necesidad en el desarrollo de tecnologas realmente utilizables en la industria. El desarrollo de las investigaciones debe realizarse con un rigor apropiado, buscando mecanismos de verificacin que posibiliten 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. La reflexin permanente sobre la estrategia y sobre los mtodos de investigacin apropiados, son en s mismas, actividades que buscan definir el rigor apropiado a las actividades de los grupos de investigacin. En la actualidad, una gran variedad de autores e investigadores han desarrollado algunos modelos y teoras relacionadas con los procesos de investigacin en ingeniera de software.

Lamentablemente, muchos de ellos parecen esquemas aislados o no articulados apropiadamente. Los grupos de investigacin pueden establecer su propio esquema de trabajo a partir de la articulacin de las diferentes teoras y modelos existentes, buscando establecer con claridad (1) la estrategia general para el trabajo investigativo, (2) las reas temticas que deben ser abordadas, (3) los elementos bsicos del diseo de la investigacin y (4) una serie de arquetipos o patrones de diseo de las investigaciones. 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://www2.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://www2.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

You might also like