MTODOS PARA INGENIERA DE SOFTWARE BASADA EN EVIDENCIA
Mtodos Para Ingeniera De Software Basada En Evidencia
Alejandro Espinosa Erazo, Efrn Vargas Bravo, John Schneider Jordan y John Camacho Viteri
Resumen Palabras claves: Abstract Keywords:
MTODOS PARA INGENIERA DE SOFTWARE BASADA EN EVIDENCIA Introduccin Los administradores de software tienen que tomar decisiones importantes acerca de las tecnologas a emplear en sus proyectos, deben estar al tanto de los problemas que ocurren en los departamentos de la empresa, problemas como numerosos reportes acerca de defectos para sus clientes. Por ende se busca tomar decisiones correctamente, poderlos resolver de inmediato y pasar los informes respectivos. Existen iniciativas internacionales como la red ISERN (de sus siglas en ingls International Software Engineering Research Network) y el congreso ESEM (de sus siglas en ingls Empirial Software Engineering and Measurement) para trascender la utilidad de la ingeniera en software emprica, la cual gana cada vez ms importancia en el mercado, tal como indica Wohlin, Cabe recalcar que signo de la madurez que ha alcanzado, es la aparicin a partir del ao 2000 de algunos libros en ingls del tema del software emprico basado en evidencia (Wohlin et al.,2000;Juristo y moreno;2001;Shull et al.,2008). En la actualidad se manejan grandes volmenes de informacin, para que la industria adopte investigaciones de la ingeniera en software, es fundamental seguir un enfoque de ingeniera en software basada en evidencias, por la cual es importante generar mtodos empricos para contribuir a la madurez de los proyectos. La ingeniera en software basada en evidencia surgi desde hace 20 aos atrs, y cada vez se le est dando ms importancia a los estudios empricos. Se ha determinado estudiar, generar y aplicar los casos de estudios en base a los mtodos empricos existentes y observar sus beneficios. A medida que se implementen ms mtodos basados en evidencia existirn ms estudios y prcticas eficientes y de calidad con menos margen de error. El propsito del paper ser el de dar a conocer la metodologa de ingeniera de software basada en evidencia, su usabilidad, objetivo y herramientas. Tambin se har referencia a un estudio sobre las empresas desarrolladoras de sistemas ecuatorianas en el rea de ingeniera de software.
Ingeniera Software Experimental La ingeniera software experimental o emprica, se basa en ser una gua fiable en los proyectos para los profesionales. Adems ayuda a evaluar y monitorizar la calidad del MTODOS PARA INGENIERA DE SOFTWARE BASADA EN EVIDENCIA software. El propsito de la investigacin sera satisfacer aspectos muy importantes en todo mbito como trminos de seguridad, rendimiento, accesibilidad, mantenibilidad, entre otros respecto a los requisitos funcionales y no funcionales, ya que no siempre vienen definidos formalmente. Adems, en un mercado tan competitivo, donde las empresas desean automatizar procesos mediante el uso de sistemas o softwares, es importante tener una gua para mantener la calidad y eficiencia que el cliente se merece. Se puede comprender mejor que es la ingeniera de software emprica con el siguiente concepto (Juristo & Moreno, 2010): La ingeniera de software experimental (ISE) es una disciplina de la ingeniera de software que pretende producir informacin fiable para los profesionales acerca de qu tecnologas se deben utilizar en los proyectos de desarrollo de software. La ISE utiliza estudios empricos (experimentos, cuasi-experimentos, estudios de caso, etc.) para evaluar la eficacia de las tecnologas para el desarrollo de software. El objetivos de realizar experimentos, es conocer las causas y efectos por las cuales se obtienen resultados. Un experimento, permite analizar un caso, en condiciones controladas, y estudiar sus caractersticas para una mejor compresin. Otra ventaja esencial, es las veces que podemos iterar y variar particularidades de la realidad y estudiar el impacto de ese experimento en varias situaciones. La Ingeniera de Software Experimental (ISE) har posible la comprensin e identificacin de las variables que entran en juego en la construccin de software y las conexiones que existen entre ellas. Experimentar con la construccin de software permitir aumentar la comprensin de lo que hace al software bueno y cmo hacerlo bien. La ingeniera de software experimental, permite realizar un desarrollo de software de manera eludible y cientfica, relacionando procesos de produccin y el resultado obtenido. La ISE traslada a la Ingeniera del Software (IS) el paradigma experimental (Zapata, Aballay, & Sev). Es necesario que todo experimento se ajuste a su propio contexto, para que los principios del experimentalismo se puedan adaptar, por esta razn se MTODOS PARA INGENIERA DE SOFTWARE BASADA EN EVIDENCIA desarrolla una metodologa experimental para la IS. Desde que la ISE surgi como una disciplina, se ha progresado en la realizacin de experimentos aislados, pero ste es slo un primer pas en la secuencia de actividades del paradigma experimental. Queda pendiente el anlisis y adaptacin de otros principios del experimentalismo. Este artculo cientfico se encuadra en la lnea que investiga cmo generar evidencias a partir de tcnicas de recoleccin de informacin.
Ingeniera Basada en Evidencia El paradigma basado en evidencia se basa en reunir la mayor cantidad de informacin posible sobre los estudios disponibles para de esta forma tener una visin ms amplia y poner obtener conclusiones ms fiables y reducir los efectos negativos. La herramienta principal que utiliza el paradigma basado en evidencia es la revisin sistemtica, tambin conocida como Revisin Sistemtica de Literatura (RSL) es un mtodo que consiste en reunir todos los resultados experimentales posibles y analizar de forma objetiva, imparcial y consistente. El mtodo RSL es una forma de fuente secundaria de informacin la cual obtiene los resultados de varios tipos de fuentes primarias como: encuestas, estudios de casos y cuasi-experimentos. El origen de la revisin sistemtica se dio en la medicina clnica, donde los resultados de un estudio individual no era de total fiabilidad. Aunque en la medicina clnica existen varios mtodos experimentales que se pueden llevar a cabo en un estudio, an quedan muchas dudas si los resultados no se confirman en diferentes fuentes. Poco despus la revisin sistemtica emigr hacia otros dominios donde la capacidad de realizar estudios experimentales no es muy amplia. Una alternativa a la revisin sistemtica puede ser lo que se conoce como mapeo sistemtico, lo cual se basa en reunir la mayor cantidad de estudios primarios para clasificarlos dependiendo del tema. Esto le sirve al investigador para tener en cuenta en cules preguntas de investigacin existe una carencia de informacin y en cuales hay suficiente para su futuro anlisis.
MTODOS PARA INGENIERA DE SOFTWARE BASADA EN EVIDENCIA El paradigma basado en evidencia es principalmente til en el rea de ingeniera de software al momento de tomar decisiones como qu tecnologa utilizar, muchas veces se toman decisiones sin ningn tipo de evidencia emprica simplemente siendo influenciada la decisin por publicidad. La EBSE (de sus siglas en ingls Evidence-Based Software Engineering) sigue 5 pasos: 1. Convertir el problema o informacin requerida en forma de pregunta. 2. Buscar la literatura que mejor responda a la pregunta de investigacin. 3. Evaluar crticamente la evidencia. Su validez, impacto y aplicabilidad. 4. Integrar la evidencia evaluada. 5. Evaluar el rendimiento y buscar formas de mejorarlo. En el campo de la medicina clnica este paradigma fue efectivo y muy aplicado debido a la cantidad de estudios con los que se cuenta. Este no es el caso en el campo de la ingeniera de software, se cuenta con pocos estudios y muchas veces la informacin en los mismos no es de alta calidad. Esto obliga al investigador a tener un papel ms activo y buscar evidencia e informacin de manera ms directa como buscar expertos en el tema y tratar con otros desarrolladores y sus experiencias.
Revisiones Sistemticas: Las revisiones sistemticas son aquellas que resumen y analizan la evidencia con respecto de una pregunta especfica en una forma estructurada, explcita y sistemtica... Cualitativas: cuando se presenta la evidencia en forma descriptiva...Cuantitativas: Cuando mediante el uso de tcnicas estadsticas, combinan cuantitativamente los resultados
Mtodos Empricos Al hablar sobre la ingeniera de software y como esta se basa en evidencia tenemos que tener en cuenta los mtodos principales y estrategias que se usan para la recoleccin de evidencias. A continuacin se detallan los mtodos principales que utiliza la EBSE para la recoleccin de informacin: casos de estudio, los cuasiexperimentos y las encuestas. MTODOS PARA INGENIERA DE SOFTWARE BASADA EN EVIDENCIA Casos de estudio: Los casos de estudio corresponden a los tipos de experimento o reas especficas de trabajo en una organizacin que debe de ser analizadas con el fin de obtener y analizar datos para una organizacin. En cuanto a la recoleccin de evidencia esta tcnica es un soporte para una organizacin ya que basndose en una previa situacin se obtiene informacin sobre cmo puede mejorarse estos mtodos realizados en el caso, siguiendo el principio de las buenas prcticas.
Cuasiexperimentos Podemos interpretar lo que son los cuasiexperimentos por el siguiente texto (Cuasiexperimentos en la investigacin, 2009): Manipulan deliberadamente, al menos, una variable independiente para observar su efecto y su relacin con una o ms variables dependientes, slo que difieren de los experimentos verdaderos en el grado de seguridad o confiabilidad que pueda tenerse con la equivalencia inicial de los grupos. En los diseos cuasiexperimentales los sujetos no se asignan al azar a los grupos ni se emparejan, sino que dichos grupos ya estaban formados antes del experimento. En resumen, los cuasiexperimentos son otra forma en la que las organizaciones se basan en lo que es la recoleccin de evidencia y obtener la relacin entre grupos determinados de personas. El obtener evidencia por medio de este mtodo consiste en una situacin ya dada los valores o relaciones que se dan dentro de los procesos de la compaa. Para las compaas y organizaciones, el uso de los cuasiexperimentos es por los beneficios que proporciona en lugar de otro tipo de experimentos. Ya que dentro de una organizacin la estructura de las reas al igual que los empleados ya estn asignados, el uso de los cuasiexperimentos es ms recomendable ya que se puede introducir situaciones tpicas de la empresa en el momento de realizar las pruebas para obtener los resultados ms cercanos a la realidad y de esa forma recolectar la evidencia de forma efectiva. MTODOS PARA INGENIERA DE SOFTWARE BASADA EN EVIDENCIA Encuestas Las encuestas son usadas dentro de la recoleccin de informacin como una herramienta para obtener conocimientos y aptitudes de los participantes en una empresa. Una encuesta, al igual que un experimento trabaja con una etapa de planificacin y bsqueda de un grupo seleccionado, en estos casos los temas que se necesitan conocer y a quienes les es ms relevante. Debido a que las encuestas trabajan con las aptitudes de las personas, estas pueden reconocer como una empresa est reaccionando hacia un nuevo enfoque en el trabajo al igual que reformar las prcticas que ya efectan. Estas herramientas de recoleccin de informacin son el pilar de la EBSE debido a que permiten conocer otras experiencias con procesos o herramientas de las cuales no se cuenta con suficiente informacin.
Conclusiones Para finalizar este estudio, se discute en base a dos aspectos: cmo el experto puede hacer uso de la experimentacin y cmo la compaa puede sacar beneficio de esta perspectiva. De manera sucesiva el uso de experimentos en ingeniera en software es ms frecuente. Como estudiantes se puede realizar experimentos o leer acerca de los mismos con el objetivo de tomar decisiones basadas en evidencias cientficas y no en juicios o creencias. Por ejemplo, a travs de los motores de bsqueda es posible encontrar diversos experimentos realizados en ingeniera en software para estudiar los anlisis de acuerdo a los requerimientos de la empresa. En el caso de las compaas de software, el uso de experimentos es de gran utilidad para validar, por ejemplo: prcticas que quieran institucionalizar o tecnologas que deseen evaluar antes de llevarlas a cabo. El personal de procesos tendra evidencia de que esta prctica les ahorrar un alto porcentaje de tiempo pero implica un aumento de esfuerzo. En base a esto, el rea de procesos cuenta con evidencia objetiva que puede usar de manera confiable para tomar una decisin sobre adoptar o no esta prctica en la compaa.
MTODOS PARA INGENIERA DE SOFTWARE BASADA EN EVIDENCIA Bibliografa: Juristo, N. Y A. Moreno(2001).Basics of Software Engineering Experimentation, Kluwer Academic Publishers. http://escuela.med.puc.cl/publ/boletin/20052/RevisionesSistematicas.pdf http://osg2.blogspot.com/ Juristo, A., & Moreno, A. (2010). Basics of Software Engineering Experimentation. Madrid: Springer. Zapata, S., Aballay, L., & Sev, G. (s.f.). Experimentos Controlados y Educacin en Ingeniera de Software. Obtenido de Sedici: http://sedici.unlp.edu.ar/bitstream/handle/10915/18535/Documento_completo.pdf?s equence=1