Investigación e Innovación
en Ingeniería de Software
Investigación e Innovación en Ingeniería de Software / Fabio Alberto Vargas Agudelo, Dario Enrique Soto, Juan Camilo Giraldo, compiladores. – Medellín : Publicar T, Sello Editorial TdeA, 2017. 118 páginas. ; Ilustraciones a color. Incluye referencias bibliográficas. ISBN: 978-958-59687-6-9 Correción de estilo, diseño, diagramación y animación Divegráficas Ltda. divegraficas@gmail.com Derechos reservados del Tecnológico de Antioquia – Institución Universitaria Los capítulos publicados incorporan contenidos derivados de procesos de investigación académica, que cumplen una función social, sin embargo, no representan los criterios institucionales del Tecnológico de Antioquia – Institución Universitaria. Los contenidos son responsabilidad exclusiva de los autores y cualquier observación o cuestionamiento sobre la originalidad de los textos, puede ser notificada al correo de los autores. El Tecnológico de Antioquia Institución Universitaria autoriza la reproducción parcial de los textos con fines exclusivamente académicos, dando estricto cumplimiento a las normas de referenciación bibliográfica en favor de los autores y de las instituciones editoras. Cualquier uso diferente, requerirá autorización escrita de los compiladores, y su omisión inducirá a las acciones legales dispuestas por las leyes internacionales sobre la propiedad intelectual y derechos de autor. Hecho en Colombia
Investigación e Innovación en Ingeniería de Software Tecnológico de Antioquia – Institución Universitaria Publicar T – Sello Editorial TdeA Tecnológico de Antioquia – Institución Universitaria Calle 78B No. 72A – 220 PBX: (+57)(4) 444 37 00 www.tdea.edu.co Medellín - Colombia Dr. Lorenzo Portocarrero Sierra Rector Dr. Fabio Alberto Vargas Agudelo Director de Investigación – Coordinación del Sello Editorial Dr. Juan Camilo Giraldo Mejía Decano Facultad de Ingeniería
Dr. Lorenzo Portocarrero Sierra Rector Dr. Fabio Alberto Vargas Agudelo Director de Investigación – Coordinación del Sello Editorial Dr. Juan Camilo Giraldo Mejía Decano Facultad de Ingeniería Autores: Acosta, María Angélica Atzmanstorfer, Karl Botero, Ricardo de Jesús Correa, Gabriel Jaime Estrada, Hugo Giraldo, Juan Camilo Giraldo, Ramiro Gómez, Sebastian Guzman, Alejandro Jiménez, Jovani Alberto Marín, Beatriz Martinez, Alicia Mossos, Nlison Parra, José Eucario Reyes, Adriana Xiomara Rincón, Isbelia Karina Rivera, Diana Soto, Dario Enrique Suárez, Albert Miyer Suárez, Sir Alexci Torres, León Alberne Vargas, Fabio Alberto Villamizar, Aixa Villamizar, Katerine ISBN: 978-958-59687-6-9 Investigación e Innovación en Ingeniería de Software / Fabio Alberto Vargas Agudelo, Dario Enrique Soto, Juan Camilo Giraldo, compiladores. – Medellín : Publicar T, Sello Editorial TdeA, 2017.
CONTENIDO
7
PRESENTACIÓN
9
Capítulo I
DISEÑO DEL PROCESO DE EVALUACIÓN DE USABILIDAD PARA LA APLICACIÓN MÓVIL “GEOCIUDADANO”
21
Capítulo II
31
Capítulo III
43
Capítulo IV
53 63 79 93
EVALUACIÓN EXPERIMENTAL DE SOFTWARE DESARROLLADO CON FINES DIDÁCTICOS MODELADO DE REQUISITOS DE SOFTWARE EN APLICACIONES DE INTELIGENCIA AMBIENTAL (AMI) BASADO EN EL FRAMEWORK I APLICACIÓN DE ESTRATEGIAS BASADAS EN PROYECTOS PARA LA FORMACIÓN DE PROFESIONALES INFORMÁTICOS
Capítulo V
PROCESO DE PRUEBAS EN PROYECTOS PARA OBTENER CONOCIMIENTO UTILIZANDO INTELIGENCIA DE NEGOCIOS
Capítulo VI
PAQUETES Y PATRONES EN LA FORMACIÓN INICIAL DEL INGENIERO DE SOFTWARE
Capítulo VII
REFLEXIONES PARA LA CONSIDERACIÓN DE UN PROGRAMA DE EDUCACIÓN SUPERIOR EN TORNO AL BIG DATA EN LA CIUDAD DE MEDELLÍN
Capítulo VIII
CREACIÓN DE VIDEOJUEGOS COMO METODOLOGÍA PARA APRENDIZAJE DE LOS FUNDAMENTOS DE LA PROGRAMACIÓN
101
Capítulo IX
109
Capítulo X
EL
MODELO DE APRENDIZAJE VIRTUAL DE LENGUAJES DE PROGRAMACIÓN MEDIANTE INMERSIÓN DINÁMICA UTILIZANDO DOKEOS MÉTODO PARA CREAR UN MÓDULO DE MINERÍA DE DATOS QUE APOYE LA INTERPRETACIÓN DE RESULTADOS
PRESENTACIÓN Prefacio La Ingeniería de Software desde su nacimiento en los años sesenta ha obtenido grandes avances dando solución a diferentes aspectos de la industria, hasta posicionar el software como uno de los sectores con mayor relevancia de la economía global. Hoy en día, los grandes volúmenes de datos y la complejidad que soportan los sistemas de software, los nuevos estilos de vida de la sociedad influenciados por la tecnología generan nuevos retos para la disciplina. Siendo, la innovación y la investigación factores importantes que responden a la dinámica y evolución de la ingeniería de software. En consecuencia, la Facultad de Ingeniería y la dirección de investigación del Tecnológico de Antioquia I.U. compilan resultados de investigación de la comunidad académica e investigativa del país, conjugando diferentes enfoques de la disciplina a través del presente libro denominado: investigación e innovación de la ingeniería de software. Este libro está orientado a estudiantes, académicos, investigadores, desarrolladores y a la comunidad académica con especial interés en la ingeniería de software. El libro está conformado por capítulos autónomos e inéditos, cada uno estructurado por secciones que presenta cada resultado de investigación a través de la contextualización, el desarrollo, las conclusiones y trabajos futuros de cada temática abordada. Teniendo como premisa la cooperación académica el libro investigación e innovación de la ingeniería de software genera un espacio para la disertación, la transferencia y la apropiación del conocimiento en el contexto de la investigación asociado a los programas académicos a nivel técnico, tecnológico, profesional y posgradual del área de los programas informáticos que nuestras IES ofertan acorde con sus procesos misionales. Esta primera edición, presenta diez (10) capítulos que responden a la noción de la implementación e influencia de la ingeniería de software en aspectos como: la educación, la geomática, la gestión de conocimiento, la ingeniería de requisitos, la programación y el tratamiento de la información entre otros, que inciden en la cadena de valor del software. Fabio A. Vargas, Dario E. Soto, Juan C. Giraldo. Compiladores
Investigación e Innovación en Ingeniería de Software
9
Capítulo I DISEÑO DEL PROCESO DE EVALUACIÓN DE USABILIDAD PARA LA APLICACIÓN MÓVIL “GEOCIUDADANO”1 Karl Atzmanstorfer - karl.atzmanstorfer@sbg.ac.at Universidad de Salzburg, Austria. Estudiante de doctorado en GISCIENCE Beatriz Marín - bmarin@admon.uniajc.edu.co Institución Universitaria Antonio José Camacho. Cali, Colombia Nilson Mossos - nmossos@admon.uniajc.edu.co Institución Universitaria Antonio José Camacho. Cali, Colombia Diana Rivera - diana.rivera@campusucc.edu.co Universidad Cooperativa de Colombia. Cali, Colombia
I. INTRODUCCIÓN Geociudadano es una plataforma que posibilita a la comunidad la opción de reportar problemas de su entorno para encontrar entre todos una solución [1]. Está orientada al manejo de información geoespacial que permite visualizar las características de interés de una zona a través de un mapa, promoviendo la interacción humana en la solución de problemas mediante la colaboración en un ambiente crítico, reflexivo e investigativo, y generando construcción de conocimiento de impacto social [2]. Es el trabajo de un grupo de personas del Departamento de Geoinformática de la Universidad de Salzburg, Austria, que busca brindar a la población herramientas para empoderarse de su contexto social y facilitar un ambiente de aprendizaje colaborativo . Geociudadano ya se encuentra funcional en un sector de Quito, Ecuador, y se planea disponer también de él para la ciudad de Cali, Colombia. Por su alto impacto social, se requiere la inclusión de elementos de
usabilidad en su interface que permitan hacer un uso adecuado de la aplicación de una manera satisfactoria para el usuario teniendo en cuenta el contexto particular de un sistema geográfico (ver Figura 1).
Figura 1. Aplicación móvil Geociudadano y categorías para reportar un punto
Capítulo I, pp. 9 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
10
Se presenta a continuación el proceso metodológico que se utiliza para construir un plan de evaluación a partir del cual se identifique el nivel de usabilidad del aplicativo, que implica la revisión de técnicas y métodos que se deben introducir en el proceso de evaluación, ya que desde el inicio del desarrollo del software no se han tenido en cuenta elementos de usabilidad o técnicas de Diseño Centrado en el Usuario (DCU). El desarrollo del texto se estructura de la siguiente forma: en la sección 2 se presentan los conceptos importantes de usabilidad en el marco de sistemas computacionales; en la sección 3 se ofrece el análisis de los conceptos y teorías de la definición del método enmarcado en los sistemas geográficos, las técnicas que se han de aplicar y la construcción de las herramientas; en la sección 4 se muestran los resultados, los cuales se contextualizan en la sección 5; en la sección 6 se presenta el trabajo futuro, y en la sección 7 las conclusiones.
Cuando se trata de sistemas computacionales la comunicación se realiza a través de interfaces que han evolucionado con el tiempo, desde un conjunto de cables, interruptores y tarjetas perforadas a avanzadas pantallas táctiles y dispositivos de realidad virtual. La comunicación con el usuario avanza a ser intituiva y efectiva, lo que hace posible involucrar el contexto social. Es así como surgen nuevas áreas del conocimiento que involucran el componente tecnológico y el componente humano, una de ellas es Interacción Humano Computador (IHC) que toma elementos de la psicología, la antropología, la lingüística y las ciencias de la computación, para llevar a cabo determinadas tareas bajo ciertos criterios de aceptación. Las áreas cubiertas por la IHC se presentan en la Figura 2.
II. CONCEPTOS PRINCIPALES DE USABILIDAD Para entender las principales características que se deben tener en cuenta en la evaluación de usabilidad, a continuación se identifican y aclaran los principales conceptos: A. Usabilidad – IHC – DCU La usabilidad se refiere a la forma como un humano interactúa con cualquier producto, esta interacción se puede evaluar y calificar [3]. Según la ISO 9241-11 de la International Organization for Standardization [4], la usabilidad se define como el grado en que un producto puede ser usado por ciertos usuarios para alcanzar un objetivo, presentando como criterios de medición la efectividad, la eficiencia y la satisfacción. Por otro lado, Jakob Nielsen propone los siguientes criterios de medición de la usabilidad [5]: facilidad de aprendizaje, eficiencia, facilidad de ser recordado en el tiempo, manejo de errores y satisfacción, los cuales se pueden aplicar sobre cualquier contexto de uso en ambientes web o móviles, pero cada contexto tiene su particularidad.
Figura 2. Áreas IHC. Adaptado de [6] Entre los logros alcanzados en IHC se encuentra la definición de diferentes enfoques de diseño. Uno de ellos es el DCU [7], [8], en el cual las interfaces se realizan a partir del conocimiento de las habilidades y necesidades de los usuarios, de modo que se logra disminuir errores y se aumenta la productividad por medio de la aceptación y satisfacción al interactuar con la aplicación. DCU propone metodologías de diseño que involucran las necesidades de los usuarios para obtener una buena usabilidad. La relación de los conceptos hasta aquí expuestos se muestra en la Figura 3:
Capítulo I, pp. 10 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
11
C. Estándares y Métodos Usabilidad: Grado en que un producto puede ser usado IHC: Interacción componentes tecnológicos humanos DCU: Metodologías de diseño buscan aumentar la usabilidad
Figura 3. Relación Usabilidad, IHC y DCU B. Usabilidad en Sistemas de Información Geográficos El objeto de estudio en esta investigación se enfoca en el contexto de los sistemas de información geográficos (GIS, por su sigla en inglés) donde, además de modelar información espacial, el diseño de la interface cumple un papel importante en su aceptación. Según Bolognesi, Baranauskas y Bauzer [9], la dificultad de la representación de este tipo de información radica en la necesidad de preservar la familiaridad del usuario con el mundo real. El principal elemento utilizado para ello son los mapas, en los que la comunicación cartográfica se expresa a través de colores, tamaños, valores, granularidad, orientación, posición en el plano y forma. Cada uno de los símbolos usados en un GIS debe ofrecer pistas que ayuden al usuario a entender los modos de interacción que tiene disponibles para realizar determinadas tareas [10]. Si se añade al GIS la movilidad, se tienen características particulares para la evaluación de la usabilidad [11]. Aunque las aplicaciones móviles utilizan criterios similares a los usados en aplicaciones de escritorio, se deben tener en cuenta factores diferenciadores como las restricciones físicas y el espacio móvil [5], [12]-[15]. Con respecto a la información geoespacial, se incorporan nuevos criterios que permiten alcanzar un grado aceptable de usabilidad en los elementos de geovisualización, tales como las tecnologías utilizadas, la lista de mapas, etc. [16], [17], [18].
Se han propuesto una gran variedad de estándares bajo el concepto de DCU, entre los que sobresale la gama ISO por su popularidad y aplicación en la industria. Para el desarrollo de este proyecto, se tratan la ISO 13407, la ISO TR 18529 y la ISO 9241:11. En la ISO 9241:11 se definen los principales conceptos que enmarcan los criterios tratados en este documento. Veamos: • Efectividad: Precisión y completud alcanzadas al realizar una tarea específica. • Eficiencia: Se refiere a los recursos utilizados para alcanzar una tarea con precisión y completud. • Satisfacción: Sentimiento de agrado o desagrado al interactuar con una aplicación. • Contexto de uso: Comprende el contexto de uso de una aplicación, incluyendo los usuarios y equipos que intervienen [4]. Para la aplicación de Geociudadano se tienen en cuenta los criterios de efectividad en torno a la tarea fundamental de reportar un punto en un mapa, la eficiencia en el tiempo que toma realizar autónomamente esta actividad, mientras la satisfacción se mide por observación y calificación considerando el contexto espacial del usuario. Según la norma ISO 13407 [19] se proponen cinco actividades para incluir DCU en el desarrollo de software, se inicia con la planeación del DCU y se finaliza con la evaluación del diseño en un proceso iterativo (ver Figura 4).
Figura 4. Ciclo de vida DCU según la ISO 13407
Capítulo I, pp. 11 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
12
Posteriormente, la ISO TR18529 [20] propone siete procesos con sus prácticas para incluir al usuario en el ciclo de vida del sistema, las actividades de DCU las detalla de la siguiente manera:
SUMI brinda un conjunto de preguntas enfocadas en conocer la experiencia del usuario en una aplicación, con el fin de brindar información útil a los desarrolladores y dueños del proyecto o negocio [24], [25].
• Asegurar el proceso DCU en la estrategia de desarrollo del sistema • Planificar y gestionar el proceso DCU • Especificar los requisitos de los interesados y de la organización • Entender y especificar el contexto de uso • Producir soluciones de diseño • Evaluar los diseños en cuanto a requerimientos • Introducir y operar el sistema
Tomando como referencia el ciclo de vida propuesto por Xavier Ferré [26], el cual generaliza las fases planteadas por otros autores, como [27], [28], se plantean los siguientes procesos con sus actividades:
Además de los estándares ISO, existen otros marcos de trabajo como LUCID [21] y MPIU+a [22] que también buscan impulsar el DCU en los procesos de desarrollo de software. Entre las actividades propuestas se incluye especificar un modelo de usabilidad desde los inicios del desarrollo para las versiones posteriores de Geociudadano. D. Evaluaciones de usabilidad El proceso de evaluación de usabilidad se ubica al final de la cadena DCU y consiste en cuantificar los elementos identificados como de usabilidad prioritaria en un producto. En dicho proceso intervienen diferentes componentes que permiten estructurar las técnicas y los procedimientos necesarios para determinar el grado de usabilidad alcanzado. Para realizar las mediciones de cada criterio se utilizan escalas como Likert, Subjective Mental Effort Question (SMEQ) y Usability Magnitude Estimation (UME). Likert y UME son escalas sobre puntos que se presentan horizontalmente, aunque la escala UME ofrece un espectro más grande de respuestas. La escala SMEQ, por su parte, tiene representación sobre una línea vertical que refleja la facilidad de realizar la tarea. Las escalas SMEQ y UME han demostrado ser de fácil empleo en algunos estudios, pero por su sencillez de representación, en este estudio será utilizada la escala Likert [23]. Existen también herramientas de evaluación como SUMI, que permiten medir la percepción de los usuarios en aspectos como la eficiencia, simplicidad, utilidad y control de un producto en un ambiente realista.
Figura 5. Ciclo de vida evaluación de usabilidad [26] En el proceso de especificación se analizan los usuarios en una población objetivo y se identifican las tareas foco del producto y los criterios de usabilidad; la disposición de la información geoespacial implica en este paso proponer las tecnologías móviles y de localización soportadas. En el diseño se elabora el objeto que se va a utilizar para realizar la evaluación según la técnica seleccionada. En la evaluación se lleva a cabo la aplicación del diseño con los usuarios y se presentan los resultados a partir de los criterios de usabilidad [29]. M. Haklay [16] propone algunas técnicas y herramientas HCI para evaluar aplicaciones web geoespaciales que a su vez se pueden generalizar a todo tipo de desarrollos. Veamos: • Frameworks de evaluación que permiten elaborar evaluaciones formativas e incrementales, prototipado, casos de estudio y estudios remotos. • Métodos de evaluación tales como test de usabilidad, estudios de campo, recorridos cognitivos, análisis de tareas y evaluaciones basadas en heurísticas. • Técnicas de recolección de datos como cuestionarios, entrevistas, grupos focales, protocolos para la técnica “pensar en voz alta”, anotaciones diarias y eye-tracking.
Capítulo I, pp. 12 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
• Técnicas de análisis de datos como análisis de contenidos, análisis estadístico, medidas de rendimiento, conteo de frecuencias y análisis del discurso. III. DISEÑO DE LA EVALUACIÓN A partir de la información recopilada se definió el método para seguir y las herramientas que se emplearon en la evaluación. A. Métodos Se toma el ciclo de vida propuesto por Ferré [26] y se incorporan elementos del ciclo de vida de DCU, debido a que en el proceso de desarrollo de la aplicación se carece formalmente de elementos de DCU en las etapas iniciales.
13
De acuerdo con estas condiciones se selecciona una muestra de 54 estudiantes sobre una población total de alrededor de 90 estudiantes de segundo semestre de los programas de Licenciatura en Pedagogía Infantil y Trabajo Social, de la Institución Universitaria Antonio José Camacho de Cali. Esta comunidad reside en su mayoría en las poblaciones de Guachené y Villa Rica (norte del departamento de Cauca), donde el acceso a internet es limitado y hay fuertes necesidades sociales. Se identifica un rango estimado de edades de los usuarios para determinar el lenguaje apropiado y la forma de abordar las encuestas.
1) Fase de especificación: Las actividades propuestas son las siguientes: Especificación del contexto de uso y de los requerimientos: Se realizan entrevistas a los dueños del producto para conocer las necesidades reflejadas en funcionalidades desarrolladas en éste y sus expectativas. Como parte del apoyo en este punto, se hace necesario especificar un mapa de navegación que guíe cada una de las posibilidades de recorrido dentro del aplicativo. En esta fase de modelamiento se destacan algunas diferencias culturales y comunicativas. Se encuentran los siguientes resultados: La aplicación busca apoyar que la comunidad se empodere de sus problemas locales, mediante la posibilidad de presentar y ubicar geográficamente una situación particular. Se espera sea utilizada desde un dispositivo móvil. Se toma como referencia adicional en este punto el despliegue de una versión anterior en Quito, Ecuador. Análisis de los usuarios: Según los contextos definidos, se establecen las siguientes características de la población objetivo: • Comunidad de un estrato medio-bajo, con actitud de empoderamiento y participación en la toma de decisiones de su grupo. • Conocimiento básico en el manejo de un dispositivo móvil, lo que incluye grabación de sonido y toma de fotografías.
Figura 6. Vista general de información de puntos Geociudadano (Ecuador) Especificación de análisis de tareas: Se realiza un recorrido detallado por las interfaces de la aplicación (ver Figura 5), para identificar las tareas y el valor que el usuario tiene en el cumplimiento de ese objetivo, de lo cual resulta la siguiente lista: • Registrarse en la aplicación - alto • Ingresar al aplicativo - alto • Explorar mapas - medio • Reportar un punto - alto • Consultar puntos reportados - alto • Cambiar configuración – bajo
Capítulo I, pp. 13 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
14
En la Tabla 1 se define la descripción para cada una de estas tareas: Tabla 1. Especificación de tareas Tarea: Registrar usuario Descripción: Las subtareas asociadas permiten a una persona registrarse como un nuevo usuario de Geociudadano, lo que involucra la creación de credenciales según los campos: Nombres, Username, Email y Contraseña. Subtarea: Seleccionar en la pantalla principal el botón de Crear cuenta Acciones: 1. Ubicar en la pantalla principal el botón para crear una cuenta nueva. 2. Presionar el botón Crear nueva cuenta. Errores Leves: El usuario encuentra poco legible el tamaño del texto. Medios: El usuario consume un tiempo considerable intentando ubicar el botón de crear una nueva cuenta. Después de presionar el botón, no hay una respuesta rápida por parte de la aplicación. Graves: El usuario no ubica el botón para crear una cuenta y desiste. Subtarea: Completar formulario de registro Acciones: Digitar el nombre del usuario Digitar el apellido del usuario Digitar el alias que desea usar en la aplicación Digitar el correo electrónico Digitar la contraseña de ingreso para la aplicación Digitar la confirmación de la contraseña Presionar el botón Crear cuenta Errores Leves: Que los textos de los campos de entrada de datos tengan mala ortografía Que los campos de entrada de datos no se traduzcan Medios: El usuario no entiende lo que significa cada uno de los campos de entrada de datos. El usuario no entiende que todos los campos de entrada de datos son obligatorios. Graves: El usuario no sabe qué información debe digitar y desiste. El usuario no ubica el botón Crear cuenta y desiste.
Especificaciones de usabilidad: se definen las áreas H1, H2, C1, C2, C3 y C4 de la Fig. 1 como los referentes para evaluar y se analizan los atributos de usabilidad presentados por los autores en [5], [14], [30], [31], de donde resultan los siguientes atributos y métricas [32]: • Eficiencia de uso: se refiere al empleo de los recursos en la interacción. Métrica: (1)Tiempo empleado en completar una tarea de forma autónoma. Rápido: 1-30 seg. Lento: mayor a 31 seg. En este punto es necesario colocar un ítem que permita identificar la tecnología utilizada cuando se lleve a cabo la ejecución, refiriéndose al tipo de celular y al sistema operativo. • Efectividad y Facilidad de aprendizaje: Se refieren al grado de cumplimento de una tarea específica desde el punto de vista de la precisión y a la curva de aprendizaje. Métrica: Porcentaje de tareas completadas con éxito de forma autónoma. • Portabilidad: Se refiere a la capacidad de funcionar correctamente en diferentes plataformas. Métrica: (1) Número de ejecuciones exitosas de la aplicación en diferentes plataformas y GPS. (2) Características del dispositivo. • Manejo de errores: Se refiere a la capacidad de la aplicación de recuperarse de los errores. Métrica: Número de errores y salidas exitosas de dichos errores. • Flexibilidad, estética y diseño- consistencia. Se refiere a la utilización de patrones de diseño simples en las interfaces. Métrica: (1) Despliegue adecuado en el dispositivo. (2) Tiempo de ubicación de los botones de manera autónoma. Se propone evaluar el reconocimiento de los símbolos utilizados sobre el mapa mediante encuesta. • Agradable para el usuario. Se refiere al sentimiento producido al interactuar con una tarea. Métrica: Número de tareas terminadas satisfactoriamente y evaluadas “agradable o no agradable”. Escala Likert. Se propone incluir grabación de las interacciones. • Privacidad: Se refiere a la protección y control de la información. Métrica: Número de reglas de seguridad. • Ayuda y documentación: Se refiere a la facilidad de trabajo autónomo en la aplicación. Métrica: Número de tareas realizadas de manera autónoma. • Habilidades, control de usuario y libertad. Se refiere a la posibilidad que tiene el usuario de navegar libremente por la aplicación. Métrica: Opciones de retorno y navegabilidad por el aplicativo.
Capítulo I, pp. 14 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
• Accesibilidad: Se refiere a las alternativas de uso para personas con limitaciones físicas. Métrica: (1) Tamaño de letra flexible. (2) Presentación de texto alternativo en imágenes. • Lista de mapas: Se refiere al despliegue de las opciones de geovisualización. Métrica: Cambio de mapas de manera autónoma. 2) Fase de diseño: Para esta fase se tiene en cuenta lo siguiente: • Se seleccionan como técnicas de recolección de datos el test de usabilidad, que se entiende como la evaluación a través de la interacción de la aplicación con una muestra real de la población objetivo, y la evaluación heurística mediante el uso de herramientas como la entrevista, las encuestas y la observación de grupos focales, las cuales son de fácil aplicación y de bajo costo para su implementación. • Se revisan los criterios seleccionados y se evalúan con las tareas y sus prioridades, lo que da como resultado cada una de las preguntas que permiten identificar el grado de usabilidad. Estas encuestas se orientan para ser diligenciadas por el equipo de estudio en usabilidad, mediante observación e interacción con los usuarios en el test de usabilidad. Esta decisión se toma teniendo en cuenta el número de ítems para registrar y el nivel de manejo de las tecnologías de los usuarios finales (ver Figura 7).
Figura 7. Punto de la encuesta diseñada para la tarea de registrarse
15
Con el fin de caracterizar detalladamente la población objetivo frente a los resultados de la evaluación, se diseña una encuesta sociodemográfica en la cual se identifica rango de edad, etnia, nivel educativo, acceso a la tecnología y estrato [33], con el fin de obtener datos que permitan proponer mejoras de usabilidad y confrontar los datos obtenidos con el estimado propuesto; esta encuesta sí debe ser diligenciada directamente por el usuario (ver Figura 8).
Figura 8. Fragmento de la encuesta sociodemográfica Para la prueba heurística se utilizan los criterios seleccionados y se diseña la encuesta que realizarán los expertos (ver Figura 9).
Figura 9. Prueba heurística
Capítulo I, pp. 15 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
16
3) Fase de evaluación: Se planean los aspectos logísticos de la ejecución: • Convocatoria de la población objetivo: Se establecen los días de estancia en Cali de los investigadores de la Universidad de Salzburg. • Disposición del espacio físico: Se realiza la solicitud de un salón en la sede sur de la Institución Universitaria Antonio José Camacho. • Recursos por utilizar: Se establece el número de dispositivos móviles, encuestas físicas y personal de apoyo. IV. RESULTADOS Tomando como base los conceptos y teorías principales se diseñó la evaluación de usabilidad para la aplicación Geociudadano, se establecieron unas características y atributos mínimos para una aplicación especializada en georreferenciación cumpliendo los requerimientos del grupo propietario del producto y la caracterización de la población objetivo. Las fases y herramientas incluidas en el diseño permitieron marcar una ruta confiable para aplicar estos procedimientos en otros procesos de evaluación. Los resultados de su ejecución se validarán en la segunda fase del proyecto (ver Figura 10). Asimismo, se espera que la metodología propuesta para la evaluación del GIS Geociudadano pueda ser empleada en el estudio de otros contextos de aplicaciones móviles.
Termina cuando los elementos logísticos son aprobados
Especificación - Contexto de uso y requerimientos - Análisis de usuarios - Análisis de tareas - Especificaciones de usabilidad
En la fase de especificación se incluyen los elementos de DCU necesarios para conocer el usuario y las tareas, y poder definir acertadamente los criterios de usabilidad. V. DISCUSIÓN En el proyecto Geociudadano se aplican los métodos y procedimiento de DCU en el plan de evaluación de usabilidad sobre un producto terminado. Se establece la usabilidad como un atributo y no como parte del ciclo de vida de un proyecto, lo cual desconoce el impacto de los elementos usables en la salida al mercado de un desarrollo computacional. Al diseñar la evaluación de usabilidad se detectan falencias en la elaboración de los requerimientos, pero si se inicia el proceso DCU desde las primeras fases de desarrollo se puede reducir esta brecha. VI. TRABAJOS FUTUROS Este trabajo describe el proceso de diseño de la evaluación aplicada a la primera versión de Geociudadano [34]. Los resultados de la ejecución de este diseño permitirán validar los criterios seleccionados y la selección de las técnicas. Se espera construir un framework que ofrezca al desarrollador recomendaciones de usabilidad a partir de la caracterización de contextos específicos y sus usuarios, para facilitar desde etapas tempranas la inclusión en el desarrollo del producto de algunos elementos básicos de DCU. Para esta nueva iniciativa se cuenta con el apoyo institucional de la Institución Universitaria Antonio José Camacho y la Universidad Cooperativa de Colombia. VII. CONCLUSIONES
Evaluación - Planeación de los aspectos logísticos de la evaluación
Diseño - Selección de técnicas de recolección de datos - Evaluación de criterios de usabilidad
Figura 10. Esquema general que se sigue para realizar el diseño de la evaluación cuando no se han incluido elementos de DCU en las etapas iniciales de desarrollo
La inclusión de DCU en etapas iniciales del desarrollo del producto busca obtener aplicaciones fáciles de usar y que satisfagan las necesidades de los usuarios, sin embargo, no es un hábito de los desarrolladores debido a la dinámica de aplicaciones móviles en el mercado que requieren salir prontamente al usuario final. Dedicar tiempo en las etapas iniciales de desarrollo a conocer al usuario asegura obtener un diseño ajustado a las características particulares de los consumi-
Capítulo I, pp. 16 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
dores finales de la aplicación. Durante este diseño se identificaron elementos de navegación difíciles de seguir en el contexto de la población objetivo, que tiene poco contacto con la información espacial. El diseño del plan de evaluación requirió el doble de tiempo estimado inicialmente para ello, ya que fue necesario llevar a cabo procesos adicionales que no correspondían a esta etapa de desarrollo, p. ej.: Una especificación formal y exhaustiva de requerimientos estaba ausente y fue necesario construir unos elementos básicos de orientación. Como menciona Sommerville en [35], los costos de errores en requerimientos son más altos que los costos en errores de implementación.
17
[7] A. Soriano, N. Montaño, y J. Michinel, “Lo significativo en la interacción humano-computador: una perspectiva educativa del diseño de software”, Revista de Pedagogía, vol. 26, n.o 77, pp. 375-395, septiembre-diciembre 2005. [8] M. C. Marcos, “HCI (human computer interaction): concepto y desarrollo”, El Profesional de la Información, vol. 10, n.o 6, pp. 4-16, 2001. [9] A. Bolognesi, M. C. Baranauskas y C. Bauzer, “Cartography and Geographic Information Systems as Semiotic Systems: A Comparative Analysis”, ACM-GIS 2000 Proc. Eighth ACM Symp. Adv. Geogr. Inf. Syst., enero 2000. [10] D. Lanter, User-Centered graphical user interface design for GIS, Santa Barbara: University of California, 1991.
REFERENCIAS [1] “geoCiudadano Cali” (2016, 19 de julio). [En línea]. Disponible en: http://cali.geociudadano.org/ . [Accedido: 23-sep-2016].
[11] M. Haklay, Ed., Interacting with Geospatial Technologies. Chichester, UK: John Wiley & Sons, Ltd., 2010.
[2] F. Mendes, R. de Souza, y A. Gomes, Handbook of research on 3-D virtual environments and hypermedia for ubiquitous learning. Hershey, Pennsylvania: IGI Global, 2016.
[12] F. Nayebi, J. M. Desharnais, and A. Abran, “An Expert-Based Framework for Evaluating iOS Application Usability”, en Proceedings of the 2013 Joint Conference of the 23rd International Workshop on Software Measurement (IWSM) and the Eighth International Conference on Software Process and Product Measurement (MENSURA), 2013, pp. 147-155.
[3] T. Lowdermilk, User-Centered Design: A Developer’s guide to Building User Friendly Applications. Cambridge: O’Reilly, 2013. [4] International Organization for Standardization (1998). “ISO 9241-11:1998 (en), Ergonomic requirements for office work with visual display terminals (VDTs) — Part 11: Guidance on usability”. [En línea]. Disponible en: https://www.iso.org/obp/ ui/#iso:std:iso:9241:-11:ed-1:v1:en. [Accedido: 21jun-2016]. [5] J. Nielsen, Mobile Usability (2012). Book by Nielsen Norman Group. [En línea]. Disponible en: https://www.nngroup.com/books/mobile-usability/. [Accedido: 21-jun-2016]. [6] T. Hewett, R. Baecker, S. Card, T. Carey, J. Gasen, M. Mantei, G. Perlman, G. Strong y W. Verplank (2009), “Human -Computer Interaction,” in Curricula for Human-Computer Interaction. [En línea]. Disponible en: http://old.sigchi.org/cdg/cdg2.html. [Accessed: 14-May-2012].
[13] M. Haklay, “Computer-Mediated Communication, Collaboration and Groupware”, en Interacting with Geospatial Technologies, M. Haklay, Ed. Chichester, UK: John Wiley & Sons, Ltd., 2010. [14] D. Madrigal and B. McClain (2010). “Usability for Mobile Devices”. UXmatters. [En línea]. Disponible en: http://www.uxmatters.com/mt/archives/2010/09/usability-for-mobile-devices.php. [Accedido: 21-jun-2016]. [15] A. Hussain and M. Kutar (2009). “Usability Metric Framework for Mobile Phone Application”. Conference Paper on The 10th Annual PostGraduate Symposium on The Convergence of Telecommunications, Networking and Broadcasting. Liverpool, UK. [En línea]. Disponible en: https://www.researchgate. net/publication/267368031_Usability_Metric_Framework_for_Mobile_Phone_Application. [Accedido: 21-jun-2016].
Capítulo I, pp. 17 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
18
[16] M. Haklay, Ed. Interacting with Geospatial Technologies. Chichester, UK: John Wiley & Sons, Ltd., 2010.
bility measurement inventory”, International Journal of Digital Information and Wireless Communications, vol. 2, n.° 2, pp. 196-201, 2012.
[17] A. Scharl and K. Tochtermann, Eds., The Geospatial Web. London: Springer London, 2007.
[26] X. Ferré, N. Juristo, H. Windl, and L. Constantine, “Usability Basics for Software Developers”, IEEE Softw, vol. 18, n.o 1, pp. 22-29, Enero 2001.
[18] A. Skarlatidou, “Web-Mapping Applications and HCI Considerations for their Design”, en Interacting with Geospatial Technologies, M. Haklay, Ed. Chichester, UK: John Wiley & Sons, Ltd., 2010, pp. 245-264. [19] International Organization for Standardization (1999, junio). “ISO 13407:1999 - Human-centred design processes for interactive systems”. [En línea]. Disponible en: http://www.iso.org/iso/catalogue_detail.htm?csnumber=21197. [Accedido: 23-sep-2016]. [20] International Organization for Standardization (2000, junio). “ISO/TR 18529:2000 - Ergonomics -- Ergonomics of human-system interaction -Human-centred lifecycle process descriptions”. [En línea]. Disponible en: http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=33499. [Accedido: 23-sep-2016]. [21] C. B. Kreitzberg (2008). “The LUCID Framework. An introduction”. C. Cognetics. [En línea]. Disponible en: http://www.leadersintheknow.biz/Portals/0/Publications/Lucid-Paper-v2.pdf. [Accedido: 23-sep-2016]. [22] T. Granollers i Saltiveri, “MPIu+a. Una metodología que integra la ingeniería del software, la interacción persona-ordenador y la accesibilidad en el contexto de equipos de desarrollo multidisciplinares”. Tesis de Doctorado, Universitat de Lleida, julio 2004. [23] J. Sauro and J. Dumas, “Comparison of three one-question, post- task usability questionnaries”, en Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, New York: ACM, abril 2009, pp. 1599-1608.
[27] B. Battleson, A. Booth, and J. Weintrop, “Usability testing of an academic library web site: A case study”, J. Acad. Librariansh., vol. 27, pp. 188198, 2001. [28] J. Hom (1998). “The usability methods toolbox handbook”. [En línea]. Disponible en: http:// www.idemployee.id.tue.nl/g.w.m.rauterberg/lecturenotes/usabilitymethodstoolboxhandbook.pdf [29] J. Nielsen (2006). „Digital Divide: The 3 Stages“. NN/g: Nielsen Norman Group. [En línea]. Disponible en: https://www.nngroup.com/articles/digital-divide-the-three-stages/. [Accedido: 21-jun-2016]. [30] M. Hub, Z. Valenta, and O. Višek, “Heuristic evaluation of GeoWeb”, Research Gate, vol. 11, n.o 2, Enero 2008. [31] International Organization for Standardization (2011, marzo). “ISO/IEC 25010:2011 - Systems and Software Engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) -System and Software Quality Models”. [En línea]. Disponible en: http://www.iso.org/iso/catalogue_detail.htm?csnumber=35733. [Accedido: 21-jun-2016]. [32] A. Parra y B. González, “Hci: evaluación de usabilidad en la plataforma móvil geoespacial geociudadano”, Cali: Institución Universitaria Antonio José Camacho, 2016. [33] B. Marín, “Entrevista sobre la situación socioeconómica de la población de Guachené y VillaRica”.
[24] T. Arh and B. Jerman, “A Case Study of Usability Testing - the SUMI Evaluation Approach of the EducaNext Portal”. WSEAS Transactions on Information Science & Applications, vol. 5, n.° 2, febrero 2008.
[34] K. Atzmanstorfer, A. Eitzinger, B. Marín, A. Parra, and B. González, “HCI-Evaluation of the GeoCitizen-reporting App for citizen participation in spatial planning and community management amongst members of marginalized communities in Cali, Colombia”, GIForum, 2016.
[25] Z. Mansor, Z. Kasirum, S. Yahya, and N. Arshad, “The evaluation of WebCost using software usa-
[35] I. Sommerville, Ingeniería del software. Madrid: Pearson Educación, 2005.
Capítulo I, pp. 18 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
AUTORES
19
Karl Atzmanstorfer. Magíster en Geoinformática Aplicada y en Geografía, Historia y Ciencias Políticas y Sociales de la Universidad de Salzburg, Austria. Estudiante de doctorado en GISCIENCE Doctoral College de la Universidad de Salzburg, Austria.
Nilson Mossos. Magíster en Ingeniería con énfasis en Ingeniería de Sistemas en la Universidad del Valle. Estudiante de doctorado en Ingeniería con énfasis en Ciencias de la Computación en la Universidad del Valle. Director del grupo de investigación Grintic y docente de tiempo completo de la Facultad de Ingenierías de la Institución Universitaria Antonio José Camacho.
Beatriz Marín. Ingeniera de Sistemas de la Universidad del Valle, estudiante de maestría en Sistemas de Información Geográfica de UniGis. Coordinadora de Investigación de la Facultad de Ingenierías de la Institución Universitaria Antonio José Camacho e investigadora del grupo Grintic de la misma universidad.
Diana Rivera. Magíster en Ingeniería con énfasis en Ingeniería de Sistemas en la Universidad del Valle. Docente de tiempo completo de la Universidad Cooperativa de Colombia, Cali. Integrante del Grupo de Investigación en Ingeniería Aplicada de dicha universidad.
Capítulo I, pp. 19 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
21
Capítulo II EVALUACIÓN EXPERIMENTAL DE SOFTWARE DESARROLLADO CON FINES DIDÁCTICOS Eucario Parra - eucarioparra5@gmail.com Unisabaneta. Sabaneta (Ant.), Colombia
INTRODUCCIÓN La incorporación de las Tecnologías de la Información y la Comunicación (TIC) a los procesos de aprendizaje viene siendo un asunto de interés investigativo en la educación, específicamente en la línea de las mediaciones pedagógicas. Pero el énfasis se ha puesto en temas como la fundamentación pedagógica de los medios, la caracterización comunicativa de los artefactos, la presencia de la multimedia, las capacidades de interacción con los estudiantes o los atributos de la virtualidad como escenarios para el aprendizaje, y se han dejado menos opciones a cuestiones relacionadas con la calidad integral de los dispositivos o con las metodologías definidas para su construcción. A propósito de lo anterior, hay investigaciones pendientes acerca del impacto real en las instituciones educativas de los proyectos sobre contenidos educativos digitales para indagar, por ejemplo, cuál es la proporción entre la cantidad de proyectos terminados y los que realmente son utilizados efectivamente en las aulas. Como supuesto podría plantearse que el número de dispositivos terminados que se incorporan exitosamente en los procesos de aprendizaje es bajo. El problema de la calidad, además, se refleja en la eficiencia de los recursos utilizados. En este caso se ve que la cantidad de recursos invertidos (como tiempo de duración del proyecto o contratación de expertos) y el despliegue tecnológico ofrecido son injustificados
frente a la exigua cantidad de contenidos incorporados para el aprendizaje o la escasa capacidad pedagógica esperada. Por ejemplo, un alto despliegue de recursos invertidos en un juego animado para enseñar inglés resultaría injustificado si al final el contenido solo aportara el significado de unas pocas palabras. Con respecto a la metodología, igualmente como un supuesto puede afirmarse que en la construcción de software educativo (llámese objetos virtuales de aprendizaje, contenidos digitales para el aprendizaje o mediaciones digitales para el aprendizaje) participan equipos de investigadores expertos en educación que no siguen rutas especificas dentro de un ciclo de vida de proyecto, tal como sí ocurre en la ingeniería. De esta forma, en la construcción de los dispositivos priman intereses como la integración de multimedia, pero sin un análisis previo de requisitos funcionales y no funcionales y sin un diseño conceptual de alguna arquitectura. Es de anotar que el propósito de este artículo no es demostrar la validez de tales supuestos, sino tomar estos como justificación para proponer un concepto de calidad integral aplicable en proyectos destinados a la construcción de software con fines didácticos. Un asunto de especial cuidado sobre la calidad de los dispositivos de software para la didáctica es que son mediadores en los procesos de enseñanza. Esta circunstancia implica análisis de asuntos sensibles
Capítulo II, pp. 21 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
22
inmersos en los procesos educativos, como la motivación, la cognición, los valores o la completitud de los aprendizajes. Siendo así, surgen entonces preocupaciones cuando los docentes delegan funciones de enseñanza o apoyan las suyas en dispositivos de software o contenidos digitales cuya calidad pedagógica no ha sido evaluada. Podría pensarse que el asunto de la validación es una generalidad en el ciclo de vida de todo software que se desarrolle, y es cierto. Pero en el campo del software educativo las validaciones deben tener ciertos agregados relacionados con la psicopedagogía, ya que su dominio es esencialmente el de la enseñanza. En relación con lo anterior, se hace una propuesta que, en resumen, plantea que la calidad debe considerar integralmente el marco de la ingeniería del software en cuanto a producto, proceso y producto en uso, así como el marco de la investigación experimental educativa para validación de la capacidad didáctica. II. MARCO DE TRABAJO PARA LA CREACIÓN DE CONTENIDOS DIGITALES PARA EL APRENDIZAJE (MARCODA II) En la Universidad de San Buenaventura – Seccional Medellín, el grupo de investigación de la Facultad de Ingeniería ha desarrollado varias iniciativas para la creación de contenidos digitales para el aprendizaje: Ingeniería de Software para Desarrollar Objetos de Aprendizaje (ISDOA) [1]; Metodología de Desarrollo de Software para Objetos Virtuales de Aprendizaje (MESOVA) [2], y Marco de Trabajo para la Construcción de Contenidos Digitales de Aprendizaje (MARCODA) [3]. Los propósitos de estos estos tres proyectos han sido proponer una metodología ingenieril para la construcción de contenidos digitales y acoplar el ciclo de vida de desarrollo de software para la especificidad de las soluciones dirigidas a las mediaciones didácticas y los procesos formativos (software educativo). Como continuación de las propuestas surge MARCODA II, que hace énfasis en la importancia de la experimentación educativa para la validación de la
calidad de productos de software construidos para la didáctica, y en la agilidad para la documentación de los procesos de software. MARCODA II tiene una estructura de tres fases y surgió después de la evaluación de prototipos desarrollados en los tres proyectos anteriores. La fase experimental y la revisión del alcance de la documentación constituyen los aspectos más importantes. Seguidamente se describe la estructura de la metodología: A. Fase I: Concepción del Software Didáctico Comprende las actividades incluidas en las incursiones N.º 1 a N.º 6 que se describen a continuación: 1. Incursión 1: Caracterización del dominio pedagógico: Es la determinación del contexto educativo del software, esto es, el ambiente en el cual se pondrá el dispositivo en uso. Los pedagogos del proyecto son actores directos de esta actividad, y a partir de sus expectativas y experiencias construirán el dominio. 2. Incursión 2: Definición de las funciones generales del software: Entre pedagogos e ingenieros analistas definen los requisitos funcionales básicos (en la metodología Scrum, los llamados Epics) [4] que se desean del software. Puede decirse que en esta incursión se definen las áreas funcionales o historias épicas de usuarios que luego se descompondrán en unidades funcionales más simples. 3. Incursión 3: Análisis del comportamiento esperado del software: El equipo de pedagogos y analistas definen cuál es el nivel de interactividad del dispositivo (alto, medio o bajo), según la capacidad para adaptarse a las decisiones de los estudiantes que lo utilicen y la incidencia en su conducta. Otro asunto que entra en juego en esta fase es la magnitud de la multimedia exigida (máxima, media o mínima) según las exigencias en cuanto a animación, audio, video y capacidad de inmersión.
Capítulo II, pp. 22 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
4. Incursión 4: Caracterización de los usuarios del sistema: El equipo de pedagogos del proyecto hace una caracterización de los usuarios del dispositivo de software cuando entre en producción. Esto tiene una importancia trascendental, ya que variables como intereses, necesidades, edad, medio cultural y problemas cognitivos deben estar alineadas con el desarrollo del software. Además, estas variables por sí mismas conllevan implicaciones técnicas relacionadas con la usabilidad en atributos como facilidad de aprendizaje, recuerdo en el tiempo o navegación intuitiva [5], [20], [21]. 5. Incursión 5: Determinación de reglas generales del ambiente educativo: En otros contextos de ingeniería del software esto se entiende como las reglas generales del negocio. El equipo de pedagogos debe precisar cuáles son las condiciones psicopedagógicas de los usuarios, las restricciones y alcances que se derivan del ambiente educativo, las delimitaciones comunicacionales y las consideraciones que se imponen desde el contexto social y cultural donde se utilizará el dispositivo de software. 6. Incursión 6: Descripción de los requisitos no funcionales: El equipo de analistas y los patrocinadores del proyecto deben definir las características con respecto a rendimiento e interconectividad esperados, desempeño, disponibilidad, escalabilidad, flexibilidad, instalación, mantenibilidad, operatividad, integración y seguridad del dispositivo de software [6]. En esta incursión se inician las versiones preliminares de un prototipo del software. B. Fase II: Diseño e Implementación Comprende las actividades de las incursiones N.º 7 y N.º 8. 1. Incursión 7: Diseño conceptual del software: Los equipos de analistas y pedagogos acuerdan la arquitectura conceptual del software definiendo áreas o módulos, la lógica de las interacciones y los flujos
23
de información para las respuestas del software ante el estímulo de los estudiantes en las interacciones. No es el propósito ni la filosofía de MARCODA II el diseño detallado de las especificaciones ni la exactitud de artefactos abstractos como los casos de uso, los diagramas de clases o los diagramas de secuencias de Lenguaje de Modelado Unificado (UML), pero estos sí se pueden utilizar desde una perspectiva general para dar claridad a la arquitectura propuesta. En el diseño conceptual, además, se pueden utilizar maquetas o modularidad jerárquica para ilustrar la idea arquitectónica del software. Asimismo, en esta incursión se continúa con el perfeccionamiento del prototipo iniciado en las incursiones anteriores. 2. Incursión 8: Implementación de historias de usuarios: Las historias épicas de usuarios definidas en la Incursión N.º 2 se descomponen ahora en historias más simples (requisitos funcionales específicos) que debe implementar el equipo de ingenieros y técnicos. Esta implantación es incremental hasta completarse el software totalmente. La implementación implica procesos técnicos como la elaboración de programas, la integración de componentes de multimedia o la incorporación de plataformas de comunicación, en concordancia con las definiciones de la Fase I. En esta incursión, en los incrementos se van logrando versiones del prototipo que son evaluadas por pedagogos y patrocinadores del proyecto. C. Fase III: Evaluación Integral del Software Comprende las incursiones N.º 9 y N.º 10. 1. Incursión 9: Validación y verificación del software: Se construyen y aplican guiones de validación y verificación de acuerdo con los estándares de calidad de ingeniería del software que se definan en el equipo de analistas del proyecto, para evaluar la calidad del proceso, del producto y del producto en uso. En la filosofía de MARCODA II el énfasis no está en documentación exhaustiva, pero sí deben quedar rastros de la calidad en el proceso del software. La calidad del producto debe ser rigurosamente medida, de acuerdo
Capítulo II, pp. 23 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
24
con las métricas establecidas por el sistema de calidad que se elija. 2. Incursión 10: Evaluación experimental: El equipo de pedagogos y los patrocinadores de los proyectos deben crear ambientes de experimentación con el fin de evaluar directamente en ambientes educativos reales la capacidad didáctica del dispositivo de software. La evaluación del producto en uso tiene objetivos distintos a la evaluación experimental. En el primero, las métricas miden si el software cumple con las metas específicas de eficacia, productividad, seguridad y satisfacción en un ambiente del sistema realista [7]. A su vez la evaluación experimental mide la incidencia del software en el cambio de conducta de los estudiantes que son sus usuarios, esto es, en qué nivel modifica sus esquemas de aprendizaje. Es de anotar que MARCODA II no determina un ciclo de vida en cascada o en secuencialidad absoluta de las fases. Sus diez incursiones se desarrollan en un modelo espiral, tal como se muestra en la Figura 1.
Figura 1. Desarrollo de fases en espiral Los modelos en espiral tienen la ventaja que no requieren de una definición completa de los requisitos para iniciar diseños e implementaciones, ya que se puede llegar a las distintas fases hasta que se logre el producto esperado. Además, determinan que la ejecución de las 10 incursiones del modelo no sea lineal, sino que tenga más proximidad con una red de actividades. Es de agregar que con el avance en las incursiones se van obteniendo incrementos cada vez más finos del prototipo del software. La Tabla 1 ofrece un resumen de las 10 incursiones.
Tabla 1. Incursiones del marco MESOVA II
1 2
Incursión Caracterización del dominio pedagógico
Hito Atributos psicopedagógicos del contexto del software. Historias épicas de usuarios. Versión preliminar de un Definición de las funciones generales del software prototipo.
3
Análisis del comportamiento esperado del software
Niveles de interactividad y multimedia esperados.
4
Caracterización de los usuarios del sistema
Características de los usuarios participantes en los procesos formativos.
5
Determinación de reglas generales del ambiente Alcances y condiciones del ambiente donde se explotará educativo el software.
6
Descripción de los requisitos no funcionales
Conjunto de prestaciones técnicas del software.
7
Diseño conceptual del software
Modelo arquitectónico no detallado.
8
Implementación de historias de usuarios
Programas y recursos digitales integrados. Versiones avanzadas del prototipo.
9
Validación y verificación del software
Guiones de casos de prueba aplicados y resultados sistematizados.
10
Evaluación experimental
Resultados de los grupos experimentales y de control.
Capítulo II, pp. 24 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
Con respecto a la metodología de desarrollo de la propuesta MESOVA II, se tejió la siguiente ruta: Primer momento: Evaluación de los conceptos, alcances y resultados de ISDOA, MESOVA y MARCODA. Segundo momento: Formulación de las 10 incursiones sometidas a análisis, evaluaciones y retroalimentación de profesores de la Facultad de Ingeniería y la Facultad de Educación de la Universidad de San Buenaventura. Tercer momento: Construcción de un prototipo de contenido digital aplicando MESOVA II para la enseñanza de objetivos e hipótesis y para ser incorporado en cursos de metodología de la investigación. Cuarto momento: Evaluación del prototipo: se aplicó en el curso de Metodología de la Investigación de la Facultad de Ingeniería de Unisabaneta. Quinto momento: Análisis de resultados. Los grupos experimental y de control fueron sometidos a procesos de enseñanza, con y sin la presencia del contenido digital. Luego se aplicó una prueba a ambos grupos y los resultados fueron de 3,6 en el grupo experimental y de 3,8 en el grupo de control. Se consideró que esta diferencia no es significativa y por eso se concluyó que los dos resultados son iguales. III. LA EVALUACIÓN EXPERIMENTAL DEL SOFTWARE Una buena práctica metodológica en el ciclo de vida de un software con fines didácticos es la relacionada con su evaluación integral. En relación con esto se sugieren procesos de validación y verificación que comprenden mediciones técnicas de acuerdo con estándares de calidad de ingeniería del software y escenarios de experimentación con los usuarios. Mientras que en el primer caso la calidad encierra criterios con respecto al proceso (cómo se hace el software), el producto (las características externas) y el uso (su comportamiento en ambiente de usuario), en el segundo caso se hacen mediciones sobre el cambio de conducta del usuario por incidencia del software didáctico. Aún
25
más, la evaluación técnica está basada en la aplicación de instrumentos estandarizados para la medición de características de acuerdo con cierto referente de calidad (por ejemplo, ISO 9126), mientras la evaluación experimental consiste en medición de comportamientos de los usuarios cuando están en interacción con el contenido digital. IV. FUNDAMENTOS DE LA EVALUACIÓN EXPERIMENTAL Antes de presentar la propuesta sobre la evaluación experimental comprendida en la incursión N.º 10, merece destacarse que sus prácticas son del dominio de disciplinas como la educación y la psicología. El fundamento de la evaluación experimental está dentro de lo que se conoce académicamente como investigación experimental. En la evaluación experimental, aunque obedece a sólidos conceptos sobre su organización y estructura metodológica, de todas formas la construcción de los experimentos implica análisis especiales relacionados, según condiciones como las siguientes [8]: 1. Conocimiento que tiene el investigador acerca de los factores que pueden afectar la validez. 2. Comprensión de las condiciones reales y cambiantes de cada caso. 3. Imaginación para intuir soluciones ante los factores que afecten la validez. 4. Flexibilidad para adaptar el diseño a nuevas exigencias de la experimentación. La evaluación experimental puede aplicarse efectivamente en la evaluación de contenidos digitales o software para el aprendizaje, ya que en el escenario de la proximidad directa se comparan propósitos de su diseño contra las respuestas de los estudiantes. Pero, además, este tipo de investigación es una buena opción para evaluar metodologías de enseñanza, comparar didácticas o medir impactos de ambientes de aprendizaje. La investigación experimental es importante dentro de los estudios explicativos. Tal como se define en [9], su interés se centra en la explicación de por qué ocurre un fenómeno y en qué condiciones se manifiesta, o
Capítulo II, pp. 25 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
26
por qué distintas variables en una investigación pueden estar relacionadas entre sí. La esencia en este tipo de investigación está en la forma como se planifican los experimentos, entendidos como manipulaciones controladas de variables independientes que inciden sobre variables dependientes [10]. En la experimentación la incidencia de unas variables sobre otras se establece desde la relación lógica causa-efecto, planteada dentro de una generalidad de la forma: “si X entonces Y”. El asunto de cuidado es que el comportamiento observado en Y sí obedezca exclusivamente a la manipulación que se hizo sobre X. Según [11], el propósito de la experimentación en el marco de las probabilidades, es medir relaciones causales entre variables para confirmar o rechazar hipótesis, pero afirma que solo en algunas ocasiones el investigador puede manipular a los individuos o grupos para que el experimento tenga validez, debido a sus particularidades inevitables. Con respecto a lo anterior, Ramón [10] afirma que con un buen diseño del experimento se puede establecer que las variaciones producidas en las variables dependientes son ocasionadas exclusivamente por los cambios en las variables independientes. Por esta razón, para diseños experimentales idóneos se plantean pautas como las siguientes: apropiada selección de un marco teórico; inteligente selección de los sujetos u objetos expuestos a la manipulación de las variables; uso correcto de técnicas estadísticas; establecimiento de los mecanismos adecuados de control de las variables independientes y de otras variables asociadas, y la adecuada medición (involucra el qué medir, con qué medir y la unidad de medida). En los diseños experimentales entran en juego tres tipos de variables: independientes (X), dependientes (Y) y extrañas (Z). Estas últimas son denominadas también contaminadoras o intervinientes. Las primeras representan situaciones, factores o tratamientos que el investigador controla; las segundas representan los resultados de la experimentación, son las variables que se alteran por la manipulación de las variables independientes; mientras que las variables extrañas son variables independientes que si no se controlan
pueden incidir en el resultado de la experimentación [12]. Por ejemplo, la variable horario (Z) puede incidir en el resultado de un experimento educativo si una medición en el grupo experimental se hace en una hora temprana iniciando la jornada, y en el grupo de control se hace en la tarde terminando la jornada (es probable que factores como el cansancio acumulado incidan en la predisposición de los estudiantes o en su concentración). Siendo así, en los experimentos debe cuidarse que las alteridades originadas en las variables extrañas sean las mismas para todos los sujetos observados. Es decir, en la evaluación de la relación causa (X) – efecto (Y) hay que cuidar que si existe una tercera variable (Z) que también incide sobre la variable Y, esta tenga las mismas condiciones y la misma intensidad en todas las mediciones. En [13] se exponen conceptualizaciones básicas acerca de los diseños experimentales y ejemplos sobre sus tipologías. En Rojas [11], al hacerse un análisis sobre las hipótesis de investigación, se afirma que, aunque las variables independientes originan diversos efectos en las variables dependientes, en el supuesto de las causas pueden existir vínculos de estas con otras determinadas situaciones que pueden generar repercusiones en el experimento. Agrega que las relaciones entre las variables en muy pocas veces son lineales, ya que existen distintas variables intermedias que pueden actuar en las condiciones de la experimentación. El modelo clásico de la investigación experimental comprende la selección de dos grupos de sujetos, según [14]: a) El grupo experimental (GE), constituido por quienes están sometidos al tratamiento experimental; b) El grupo de control (GC), es un conjunto equivalente al anterior, el cual también está sujeto a observación durante el experimento, pero sin la manipulación de variables independientes. La comparación con el grupo de control permite establecer hasta dónde la manipulación alteró las variables dependientes del grupo experimental. Además, plantea [14] que en el modelo se presentan tres fases: en la primera el grupo GE está expuesto a la experimentación (manipulación de variables), mientras que el otro grupo, no; en la segunda se establecen
Capítulo II, pp. 26 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
las mediciones de los comportamientos de los grupos GE y GC, y en la tercera se hacen comparaciones, análisis e inferencias con respecto al comportamiento de ambos grupos. Sostiene este autor que a pesar de la sencillez de este modelo para el investigador puede no ser fácil, ya que por la complejidad del ser humano entran en juego variables extrañas (Z) que pueden ser difíciles de controlar, relacionadas con las conductas humanas, los valores, los sentimientos o los prejuicios. En una conceptualización sobre diseños investigativos experimentales en psicología [12], se plantean tres pilares básicos del proceso de experimentación — análisis, diseño y medida— asociados con las formas de validación, definidas como validez interna, validez externa, validez de constructo y validez de la conclusión estadística. El diseño consiste en la planificación del ambiente del experimento, la selección de los sujetos u objetos y los mecanismos de control, de manera que los resultados sean libres de sesgos, generalizables y fidedignos [15]. Es de anotar que el cuidado con el diseño puede ser más significativo que la misma interpretación estadística de los resultados, ya que de esta forma se pueden salvar incidencias sobre las variables, aparte de las originadas en las manipulaciones que ha programado el investigador. Esto significa que deben establecerse controles sobre las variables extrañas que potencialmente pueden incidir en el ambiente y los resultados de la experimentación. Se advierte entonces que un buen diseño de investigación debe procurar el equilibrio entre validez interna y validez externa. La validez interna se refiere a si el experimento mide lo que realmente debe medir, de acuerdo con las hipótesis planteadas [14], lo que exige controlar el efecto de otras variables que también pueden ser causa del efecto observado. La validez externa hace referencia a la capacidad de generalización, de manera que los resultados puedan extenderse a otros participantes, contextos o momentos [12]. Los estudios no aleatorizados o cuasi-experimentales se caracterizan por que la muestra para la experimentación no se escoge en forma aleatorizada. Algunas de sus características son las siguientes:
27
• Intervención en grupos humanos en los cuales la presencia (las condiciones de la exposición del sujeto) no se puede manipular; • Hay variables dependientes e independientes e hipótesis para contrastar, pero no hay aleatorización de los sujetos, ni de los grupos experimentales ni de los grupos de control; • La validez interna de la experimentación está comprometida, ya que no se puede garantizar que los grupos comparados (experimental y de control) sean equivalentes [12], [14]. En relación con lo anterior, es evidente la amplitud del marco conceptual sobre investigación experimental. No obstante, en el devenir de los fenómenos sociales y educativos hay ocurrencias que no siempre se pueden interpretar dentro de la lógica de la causalidad. Al respecto, [15] hace alusión al determinismo, entendido como el vínculo recursivo de la relación causa-efecto (la repetición del estímulo produce el mismo resultado) y cita al filósofo Christian Wolff para afirmar que es insuficiente en tres casos: • En el entorno hay una incidencia causal múltiple. • El objeto es vago, difuso o poco desarrollado. • El objeto por sus características se resiste a su formalización. Dicho esto, antes de entrar a la propuesta sobre diseño de experimentos para evaluar contenidos digitales, software educativo y metodologías de enseñanza, cabe advertir que en las diferencias en los comportamientos entre un grupo experimental y otro de control pueden influir también otras variables, como dificultades de aprendizaje, desarrollo de la inteligencia, especificidades de orden biológico, pasado familiar o realidad cultural. Puede haber, además, comportamientos difíciles de modelar formalmente, como aspectos motivacionales de los estudiantes, o puede darse el caso de situaciones que se observan pero que no aparecen siempre o que son imprecisas, por ejemplo, la creación de distractores en la dinámica natural del grupo. V. LA FASE EXPERIMENTAL La fase experimental de MARCODA II se exhibe en los siguientes párrafos, considerando que una línea importante de la investigación educativa es la
Capítulo II, pp. 27 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
28
evaluación de la efectividad de los recursos digitales empleando conceptos y técnicas de la investigación experimental. Como un punto de partida inicial, deben considerarse las diferencias entre la calidad del software con fines en cuanto a la forma como se construyen (procesos), las características finales del producto y las características del producto en uso, esto como una extensión de los modelos para la evaluación de la calidad en el desarrollo de software. En [16] y [17] se exponen conceptos sobre las diferentes métricas y el marco para la calidad en uso del producto de software. No obstante, hay una especialidad que debe considerarse en la evaluación de la calidad del software educativo. Es la que tiene que ver con la naturaleza del ambiente en el cual se aplicará el producto de software, el tipo de usuario y la intencionalidad. En este caso el software no es transaccional, no está alineado con estrategias para la productividad o la competitividad, no está incrustado en ambientes robóticos. En realidad, los propósitos son más complejos, pues se relacionan con la didáctica y las intenciones pedagógicas, de cuyos procesos sería imposible aislar connotaciones de la dimensión humana. En coherencia con lo anterior, la investigación experimental es una buena opción para evaluar la calidad de los contenidos digitales desde el punto de vista de la calidad externa del software en los procesos de aprendizaje, y sus alcances didácticos y pedagógicos. Esto porque de manera científica se evalúan los comportamientos de los sujetos ante la activación de dispositivos producidos para la enseñanza, en consideración de múltiples variables y controles. Pero, aun así, el proceso experimental planeado puede resultar insuficiente. Esta advertencia se resalta porque la conexión lógica del racionalismo entre el estado inicial y el estado final de un evento, obedeciendo a una relación causa efecto, puede tener excepciones cuando el entorno genera valores causales múltiples sobre un objeto [18]. Además, porque el objeto puede estar incompleto o poco desarrollado o porque puede resistirse a la formalización. Este aspecto es significativo en la evaluación experimental de contenidos digitales, ya que el sujeto que aprende, el estudiante, se caracteriza por aspectos internos como su inteligencia, su creativi-
dad, el desarrollo de su lenguaje y el desarrollo de su cognición, que por sí solos determinan complejidades naturales [19]. Aunque la tipología del contenido y la especificidad de la intencionalidad pueden determinar formas específicas de la experimentación, se propone un modelo para ser aplicado en la evaluación experimental del software (ver Figura 2).
Figura 2. Procesos de la experimentación Los componentes de este modelo se explican así: Determinación instrumental: Identificación de variables pedagógicas, didácticas y tecnológicas. Definición de atributos que serán medidos y unidades de medición. Selección de grupos: Los grupos de experimentación y de control deben seleccionarse procurando igualdad de condiciones cognitivas y psicosociales. Se sugiere aplicación previa de pruebas pretest y análisis de condiciones reales de los estudiantes para una selección inicial (de iguales o parecidas condiciones) y de ésta, al azar, se pueden obtener los grupos de experimentación y de control. Preparación del ambiente: Se deben crear dos escenarios separados pero iguales tanto en aspectos físicos como educativos, circunstanciales y temporales. En uno estará el grupo de control y en el otro el grupo experimental. Solo hay una diferencia: en el grupo de control no está instalado el dispositivo de software o contenido digital con fines didácticos, mientras en el grupo experimental, sí.
Capítulo II, pp. 28 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
Ejecución de procesos de enseñanza: En el grupo de control se llevarán a cabo las clases, actividades, evaluaciones y demás procesos formativos, en condiciones normales. En el grupo experimental se programarán las mismas clases, en los mismos horarios y con iguales procesos formativos a los de los grupos de control, pero con el apoyo del software o el contenido digital que se está evaluando.
29
3. El software con fines didácticos debe someterse a la evaluación experimental antes de ser incorporado en los procesos formativos institucionales. De lo contrario, se estará faltando a la ética pedagógica. 4. El ambiente educativo para los grupos experimental y de control debe estar alineado con las incursiones de la fase I (Concepción del software).
Evaluación de resultados: Luego de terminados los procesos formativos en ambos grupos, se hace una evaluación definitiva de cada uno. Pueden incluirse resultados parciales y una actividad final. Lo fundamental es que en uno y otro grupo debe tenerse en cuenta que las actividades evaluativas y los indicadores de evaluación deben ser idénticos.
5. El impacto pedagógico determina el éxito o el fracaso del proyecto, pero esto no es óbice para las exigencias de calidad en términos de los conceptos de la ingeniería del software.
Decisiones sobre el dispositivo: Si la evaluación general del grupo de control es igual a la del grupo experimental, indica que la calidad didáctica del dispositivo es aceptable y puede ser buen recurso didáctico para las actividades formativas, pero no es confiable. Si la evaluación del grupo de control es superior a la del grupo experimental, entonces el dispositivo debe revisarse y se deben examinar los procesos de las incursiones de MARCODA II N.º 1 a N.º 10, inclusive. No se recomienda en este caso incluir el dispositivo en las actividades formativas de la institución. La incursión N.º 10 se revisaría también, ya que es probable que haya habido imperfecciones en el diseño de los experimentos. Por otra parte, si la evaluación del grupo experimental es superior a la del grupo de control, entonces el dispositivo se considera de alta calidad didáctica y se sugiere incluirlo en las actividades formativas.
La calidad del software con fines didácticos requiere validaciones y verificaciones técnicas, de acuerdo con estándares de ingeniería del software, pero, además, debe someterse a experimentaciones para determinar las dimensiones de su impacto pedagógico.
Principios del modelo propuesto: 1. La evaluación experimental es un constitutivo del ciclo de vida que se propone en MARCODA II. No es un adjunto. 2. Una prueba no es suficiente para decidir sobre la calidad didáctica del dispositivo. Se requieren procesos formativos experimentales en varias clases y de varios periodos de tiempo.
VI. CONCLUSIONES
En este sentido, debe diferenciarse entre calidad del producto en uso y calidad del producto en relación con la capacidad para alterar las conductas de los usuarios que aprenden. En el marco de desarrollo de software MARCODA II, se propone que la experimentación hace parte del ciclo de vida de desarrollo y por esto para los analistas y líderes de los proyectos su planeación no debiera ser un asunto opcional. En última instancia, lo que se persigue con esta propuesta es que en la construcción de software con fines didácticos y de contenidos digitales, los equipos de trabajo reconozcan que los productos están involucrados en procesos formativos de alcance psicopedagógico y, por lo tanto, antes de su explotación deben analizarse sus capacidades didácticas reales, para así reducir riesgos con los estudiantes.
Capítulo II, pp. 29 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
30
REFERENCIAS [1] M. E. Serna, C. A. Castro, y T. R. Botero, “Ingeniería de Software para Desarrollar Objetos de Aprendizaje –ISDOA– ”. En Prensa, 2011. [2] J. E. Parra, “Propuesta de metodología de desarrollo de software para objetos virtuales de aprendizaje —MESOVA—”. Revista Virtual Universidad Católica del Norte, N.º 34, pp. 113-137, sep. 2011. [3] C. A. Castro, J. E. Parra, W. Perdomo, y A. Lagunes, “Una propuesta de Marco para la Construcción de Contenidos Digitales de Aprendizaje con prácticas ágiles —MARCODA—”. Nuevas Ideas en Informática Educativa TISE 2015, 2015. [4] T. Dimes, Conceptos Básicos de Scrum: Desarrollo de Software Agile y Manejo de proyectos, Nueva Jersey: Babelcube Books, 2015. [5] J. Nielssen, Usability Engineering, San Francisco: Morgan Kaufmann, 1993. [6] I. Sommerville, Ingeniería del software, Madrid: Pearson, 2005. [7] Instituto Colombiano de Normas Técnicas y Certificación (ICONTEC), Norma Técnica Colombiana NTC 4243, Bogotá, 2009. [8] E. Lara y B. Ballesteros, Métodos de investigación en educación social, Madrid: UNED, 2001. [9] V. Díaz, Metodología de la investigación científica y bioestadística. Para médicos, odontólogos y estudiantes de ciencias de la salud, Santiago: Ril Editores, 2006. [10] G. Ramón (2015), Diseños experimentales. Disponible en: http://viref.udea.edu.co/contenido/ menu_alterno/apuntes/ac37-diseno_experiment.pdf [11] R. Rojas, Guía para realizar investigaciones sociales, México: Plaza y Valdés, 2013. [12] M. Ato, J. López, y A. Bonavente (octubre 2013), “Un sistema de clasificación de los diseños de
investigación en psicología”, Anales de Psicología, vol. 29, n.º 3, pp. 1038-1059. Disponible en: http:// dx.doi.org/10.6018/analesps.29.3.178511. [13] L. Cayuela, Introducción al diseño de experimentos, Madrid: Universidad Rey Juan Carlos, 2011. [14] N. Rodríguez (julio-diciembre 2011), “Diseños experimentales en educación”, Revista de Pedagogía, vol. XXXII, N.º 91, pp. 147-158. Disponible en: http://www.redalyc.org/articulo.oa?id=65926549009 [15] G. De la Reza, Sistemas Complejos. Perspectivas de una Teoría General, México: Anthropos, 2010. [16] Instituto Colombiano de Normas Técnicas y Certificación (ICONTEC), Norma Técnica Colombiana NTC 5420-1, Bogotá, 2006. [17] Instituto Colombiano de Normas Técnicas y Certificación (ICONTEC), Norma Técnica Colombiana NTC 5420-2, Bogotá, 2007. [18] H. Ponce, M. López, J. Labra, J. Brugerolles, y J. Tirado (2007), “Evaluación experimental de un programa virtual de entrenamiento en lectura significativa”, Revista Electrónica de Investigación Psicoeducativa, vol. 5, N.º 2, pp 399-432. Disponible en: http://www.oei.es/es120.htm. [19] L. J. Beltrán, y A. J. Bueno, Psicología de la Educación, México: Alfaomega, 1997. [20] A. Arias, y A. Durango, Ingeniería y Arquitectura del Software, IT Campus Academy, 2016. [21] T. G. Saltiveri, J. L. Vidal, y J. J. Cañas. Diseño de sistemas interactivos centrados en el usuario, Barcelona: Editorial UOC. AUTOR Eucario Parra. Ingeniero de Sistemas, licenciado en Matemáticas, magíster en Desarrollo de Software, magíster en Educación, especialista en Docencia, especialista en Pedagogía de la Virtualidad. Docente investigador de Unisabaneta y catedrático de la Universidad de Antioquia.
Capítulo II, pp. 30 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
31
Capítulo III MODELADO DE REQUISITOS DE SOFTWARE EN APLICACIONES DE INTELIGENCIA AMBIENTAL (AMI) BASADO EN EL FRAMEWORK I* Alejandro Guzmán - guzmanagc@cenidet.edu.mx Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET). Cuernavaca, México Hugo Estrada – hugo.estrada@infotec.mx Centro de Investigación e Innovación en Tecnologías de la Información y la Comunicación. México Alicia Martínez - amartinez@cenidet.edu.mx Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET). Cuernavaca, México Fabio Alberto Vargas - fvargas@tdea.edu.co Tecnológico de Antioquia-I.U. Medellín, Colombia
I. INTRODUCCIÓN El aumento de la inteligencia ambiental (AmI, por sus siglas en inglés) es más evidente en la vida cotidiana. Cada vez es mayor el número de dispositivos que se emplean y que nos permiten realizar mediciones de la información de una manera inteligente. Por ejemplo, mediante el control de ciertos actuadores y sensores [1]. Un aspecto importante en la AmI es la interacción. Una diversidad de usuarios puede necesitar, o voluntariamente buscar, la interacción directa con el sistema para indicar sus preferencias y necesidades. Hoy en día, los dispositivos incorporan la potencia de la computación de cualquier tipo, es decir, nuevos tipos de interacción surgen con cada nuevo dispositivo, y la interacción persona-computadora sigue creciendo como un área importante de estudio [2]. Así como la interacción, existen otros elementos como inteligencia, ubicuidad y sensibilidad al contexto, que son tras-
cendentales en la AmI y que actualmente no se han considerado en el desarrollo de aplicaciones de AmI. Por esta razón es necesario buscar nuevas técnicas, formas de representar y modelar estos elementos que forman parte de la inteligencia ambiental. En este artículo presentamos un enfoque de modelado de requisitos de software en aplicaciones de inteligencia ambiental, basado y extendido del Framework i*, incorporando los elementos básicos de este tipo de aplicaciones. El artículo se estructura de la siguiente manera: En la sección II se presenta un marco teórico sobre la temática central de la investigación. En la sección III se presenta un análisis de algunas metodologías de ingeniería de software. En la sección IV se especifica el modelado de requisitos y su aplicación en un caso de estudio. Finalmente, en la sección V se muestran las conclusiones y los trabajos futuros.
Capítulo III, pp. 31 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
32
II. MARCO TEÓRICO Esta investigación se centra en dos temáticas principales. A) Inteligencia Ambiental (AmI) y B) el Framework i*. A. Inteligencia Ambiental (AmI): Es un paradigma en las tecnologías de la información y las comunicaciones (TIC), en el cual las personas son asistidas a través de un entorno digital que es consciente de su presencia, sensible al contexto y adaptable a sus necesidades, hábitos y emociones [3]. La AmI hereda aspectos de muchas áreas de las ciencias de la computación como la computación ubicua, la cual tiene como principal objetivo satisfacer la demanda de “Tener siempre todo en todas partes” [2]. La inteligencia ambiental reúne los recursos para proporcionar servicios flexibles e inteligentes para los usuarios que actúan en sus entornos [2]. B. Framework i*: Es un lenguaje de modelado adecuado para entender el dominio del problema del sistema, desarrollado para el modelado y razonamiento de entornos de organización y sistemas de información. El nombre i* se refiere a la noción de intencionalidad distribuida [4]. El marco de modelado i* ve los modelos de organización como redes de actores sociales que tienen libertad de acción y dependen unos de otros para lograr sus objetivos y metas, llevar a cabo sus tareas y obtener los recursos necesarios [5]. III. ANÁLISIS DE METODOLOGÍAS En esta sección se detalla el análisis realizado a cuatro metodologías de ingeniería de software para modelar un caso de estudio utilizando la inteligencia ambiental. Las metodologías analizadas son: 1) Documentación de requerimientos centrada en el usuario (DoRCU) [6]. Esta metodología se enfoca en la obtención de requisitos y documentación de todos los procesos del desarrollo del software. 2) Modelo de requisitos para sistemas embebidos (ABS-BesoinsSEM) [7]. Metodología de requisitos adaptada para la construcción de aplicaciones de sistemas embebidos. 3) Ingeniería de requisitos para entornos inteligentes
(RE4IE) [8]. Marco de trabajo para la construcción de sistemas con entornos inteligentes. 4) Enfoque para la incorporación de la tecnología a los modelos de negocio [9]. Metodología enfocada en la integración de procesos de negocio y tecnologías a nivel conceptual. El principal objetivo de este análisis fue identificar las ventajas y desventajas de las metodologías de ingeniería de software. Así, se aplica el mismo caso de estudio de una aplicación de AmI a cada una de ellas, con el objetivo de conocer cuál de ellas se adaptaba mejor para representar los elementos básicos de la aplicación. Como resultado del análisis, se identifica que estas metodologías no proveen los conceptos básicos de una aplicación de inteligencia ambiental, porque no presentan una notación gráfica de representar los requerimientos y presentan carencias en la representación y especificación de las formas de interacción entre el usuario y la tecnología. Sin embargo, la metodología de enfoque para la incorporación de la tecnología a los modelos de negocio [9] permite generar módulos, modelar gráficamente e incorporar elementos tecnológicos, los cuales son de gran relevancia para representar una aplicación de AmI. Esta metodología utiliza el Framework i* como técnica de modelado. A pesar de que la metodología de enfoque para la incorporación de la tecnología a los modelos de negocio [9] utiliza el framework i*, no permite modelar una interacción cercana a la interacción natural que existe entre persona-tecnología. De esta manera, se propone extender este framework para modelar una interacción natural, es decir, cómo las personas interactúan a través de sus sentidos naturales con el entorno, así como también modelar los demás elementos (inteligencia, ubicuidad, sensibilidad al contexto) que integra la AmI. IV. MODELADO DE REQUISITOS DE SOFTWARE EN APLICACIONES DE AmI El modelo propuesto representa los elementos básicos de una aplicación de inteligencia ambiental. Algunos autores, como Irazabal [3], definen un conjunto de elementos tales como: ubicuidad, conciencia, inteli-
Capítulo III, pp. 32 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
gencia e interacción natural como características principales de la AmI. Esta idea es apoyada por Vázquez y López [10], quienes definen los siguientes elementos como características trascendentes en un sistema de inteligencia ambiental: computación, comunicación e información ubicua; sensibilidad al contexto, e inteligencia e interacción natural. Como el universo de todos los elementos que integra la inteligencia ambiental es muy amplio, en este artículo los elementos básicos de una aplicación de AmI se unificaron en los que muestra la Tabla 1.
33
Tabla 1. Elementos básicos unificados de una aplicación de AmI
Ubicuidad Inteligencia Sensibilidad al contexto Interacción natural Nuestro enfoque propuesto [11] se encuentra formado por cuatro fases: 1) Fase de modelado de negocios; 2) Fase de modelado de la tecnología; 3) Fase de modelado de interacción, y 4) Fase de modelado general (ver Figura 1).
Figura 1. Vista general del modelado de requisitos de aplicaciones de AmI Caso de estudio: Se tomó como caso de estudio el sistema de inteligencia ambiental “POSEIDON (PersOnalized Smart Environments to increase Inclusion of people with DOwn’s syNdrome)” [12]. Sistema que tiene como objetivo principal incluir (integrar en la sociedad) a personas con síndrome de Down a través de diversos dispositivos tecnológicos. El sistema se compone de seis módulos (ver Figura 2).
cuatro servicios principales: Atención temprana, Apoyo a la escolaridad, Entrenamiento y Transición a la vida adulta, y Entrenamiento ocupacional.
A. Fase de Modelado de Negocios: En esta fase, por medio de un modelo de servicios [9], se modela el contexto de la organización donde el sistema va a operar. En este modelo se representan como actores: los clientes de la organización y la asociación para personas con síndrome de Down-ASSIDO, de Murcia, España [13]. La asociación ofrece
Figura 2. Módulos del sistema POSEIDON Además de las metas que dependen de ambos actores como: contar con la edad apropiada para el servicio, tener un cuidador, unirse a un programa de estudio,
Capítulo III, pp. 33 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
34
unirse a un taller de trabajo, unirse a un programa de iniciación profesional, unirse a un programa de integración laboral, unirse a un perfil profesional, y unirse a un taller de desarrollo personal, en este modelo el principal objetivo es identificar los entornos sobre los cuales se va a ejecutar la aplicación. Por esta razón, se extiende la notación de Actor como elemento para representar el entorno (Figura 3). Se decidió extender la notación de Actor porque es una unidad a la que pueden atribuirse dependencias intencionales, además de que se pueden integrar otras subunidades [5]. Para el caso de estudio, POSEIDON, se identificaron seis entornos: tres teléfonos inteligentes Android, dos computadores (sin importar el sistema operativo), y un computador Mac. En la Figura 4 se muestra el Modelo de servicios. En este modelo se captura la “Sensibilidad al contexto” a través de la definición del
contexto de la organización y de sus clientes. En este contexto la aplicación se ejecuta en la asociación para gente con síndrome de Down ASSIDO.
Figura 3. Extensión de la notación actor para representar el entorno
Figura 4. Modelo de servicios de la organización donde va a operar el sistema
Capítulo III, pp. 34 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
B. Fase de modelado de la tecnología: En esta fase se representan todos los componentes tecnológicos del sistema a través de dos modelos: modelo de la tecnología para el desarrollo y modelo de la tecnología para operar. Para representar los elementos tecnológicos se utiliza la notación de Agente del Framework i*. Un agente es una unidad que se puede utilizar para referirse a agentes de tipo (hardware/software) artificial [5]. Esto es muy útil para la integración de tecnología en los modelos de negocio, ya que la inteligencia ambiental opera en base a tecnologías que pueden ser útilmente clasificadas en hardware y software. Modelo de la tecnología para el desarrollo: Este modelo representa todos los elementos tecnológicos necesarios para el desarrollo de la aplicación y defi-
35
ne el sistema que se va a generar. En la Figura 5 se muestra el sistema de software identificado como POSEIDON. Modelo de la tecnología para operar: Este modelo representa todos los elementos tecnológicos necesarios para el funcionamiento de la aplicación, y las funciones principales del sistema en cada uno de los entornos definidos en el modelo de servicios (ver Figura 6). El entorno Computador 1 contiene el elemento tecnológico de software red social (sitio web para navegadores). La principal tarea de este elemento es mostrar una vista general personal de la información del usuario, la cual se deriva en tres metas adicionales; la primera meta es medios sociales, esta meta se deriva en tres tareas: empezar/obtener discusiones, escribir un blogspot y crear grupos especiales.
Figura 5. Modelo de la tecnología para el desarrollo
Capítulo III, pp. 35 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
36
La segunda meta es discusiones, esta meta se deriva en tres tareas: comentar en un hilo de discusión, crear nuevos hilos de discusión y crear nuevos temas. La tercera meta es comunicación personal, la cual se deriva en tres tareas: compartir mensajes, obtener una vista general de actividades, y enviar mensajes individuales. Esta red social utiliza recursos y elementos tecnológicos del computador como el ethernet y el wifi para enviar y recibir datos. El entorno Computador 2 contiene al elemento tecnológico de software servicio web para cuidadores, que tiene cinco metas. La primera meta se llama ver calendario, que se deriva en una tarea llamada agregar eventos, consecuentemente derivada en tres tareas más: agregar instrucciones con voz, agregar instrucciones con imágenes, y agregar instrucciones con videos. La segunda meta es ver compras, que se deriva en una tarea: hacer lista de compras. La tercera meta es ver monitoreo, y se deriva en dos tareas: dar seguimiento a la posición del usuario, y marcar lugares importantes. La cuarta meta se llama ver videos, y se deriva en una tarea: agregar videos de Youtube. La quinta meta es ver símbolos, y se deriva en una tarea: agregar símbolos. Este servicio web utiliza recursos y
elementos tecnológicos de la PC Computadora como el ethernet y el wi-fi para enviar y recibir datos. El entorno tecnológico Teléfono móvil 1 contiene el elemento tecnológico de software aplicación para el usuario con síndrome de down,que tiene siete metas. La primera meta se llama entrenar, la cual se deriva en una tarea: entrenar en el manejo del dinero. La segunda meta se llama ver videos, la cual se deriva en una tarea: ver videos subidos por el cuidador. La tercera meta se llama ver calendario, la cual se deriva en dos tareas: agregar nuevos eventos, y ver eventos planeados. La cuarta meta se llama ayuda con las compras, la cual se deriva en una tarea: asistir en el manejo del dinero. La quinta meta se llama definir preferencias, la cual se define en dos tareas: encender/apagar el seguimiento de la posición y elegir colores de temas. La sexta meta se llama navegar mediante el uso de rutas planeadas, esta meta utiliza el elemento tecnológico de hardware GPS. La séptima meta se llama notificar sobre las tareas, y utiliza el elemento tecnológico de hardware actuador de vibración. Esta aplicación móvil utiliza recursos y elementos tecnológicos del teléfono móvil como el módulo gsm/gprs y wi-fi para enviar y recibir datos.
Figura 6. Modelo de la tecnología para operar Capítulo III, pp. 36 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
El entorno tecnológico Teléfono móvil 2 contiene el elemento tecnológico de software aplicación para crear rutas, la cual consta de una meta: crear rutas. Esta meta utiliza el elemento tecnológico de hardware gps y se deriva en tres tareas: crear rutas agregando texto, crear rutas agregando fotos (esta tarea utiliza el elemento tecnológico de hardware cámara), y crear rutas agregando notas de voz (esta tarea utiliza el elemento tecnológico de hardware micrófono). Esta aplicación móvil utiliza recursos y elementos tecnológicos del teléfono móvil como el módulo gsm/gprs y wi-fi para enviar y recibir datos. El entorno tecnológico Teléfono móvil contiene dos elementos tecnológicos de software. El primero es la aplicación para entrenar en el manejo del dinero. Esta aplicación tiene una meta llamada entrenar al usuario en el manejo del dinero, que se deriva en una tarea: elegir el precio correcto del producto. El segundo elemento de software es la aplicación para asistencia en el manejo del dinero, la cual tiene una meta llamada asistir a los usuarios en el manejo del dinero, que se deriva en cuatro tareas: la primera tarea se llama ayudar con los pagos que se deriva en una tarea llamada ver con cuánto dinero se debe pagar. La segunda tarea se llama ayudar con la lista de compras, que se deriva en una tarea llamada ver lista de compras. La tercera meta se llama ayudar con la cartera, que se deriva en una tarea llamada ver cuánto dinero hay en la cartera. La cuarta meta se llama hacer llamadas, que se deriva en una tarea llamada llamar al cuidador. Estas aplicaciones móviles utilizan recursos y elementos tecnológicos del teléfono móvil como el módulo gsm/gprs y wi-fi para enviar y recibir datos. El entorno tecnológico Computador MAC 3 contiene el elemento de software sistema de navegación para el hogar. Esta aplicación consta de una meta llamada ayudar a usuarios para navegar en las rutas, la cual se deriva en tres tareas: la primera tarea se llama aprender a navegar, que a su vez se deriva en dos tareas más: mover hacia la izquierda en la ruta y mover hacia la derecha en la ruta. La segunda tarea, llamada Jugar un juego con fotos, se deriva en una tarea: elegir la foto correcta de la ruta. La tercera tarea, llamada jugar un juego con direcciones, se deriva en una tarea: elegir la dirección correcta. Este sistema de navegación para el hogar utiliza recursos y elementos tecnológicos del computador MAC como el ethernet y el wi-fi para enviar y recibir datos.
37
En el modelo de la tecnología para operar se captura la inteligencia mediante las principales tareas y metas, además de la sensibilidad al contexto mediante la integración de los elementos tecnológicos en cada uno de los entornos definidos en el modelo de servicios. C. Fase de Modelado de la Interacción En esta fase se modela toda la interacción que existe dentro de la aplicación a través del modelo de interacción del usuario y la tecnología [11]. En este modelo se representan tres tipos de interacción: La interacción persona-tecnología, la interacción tecnología-tecnología y la interacción persona-persona a través de la tecnología. Para representar la interacción persona-tecnología se extendió la notación de asociación de Actor del Framework i* como elemento para representar el tipo de interacción que existe. Para ello se definen tres tipos principales de interacción persona-tecnología que pueden ser: a través de gestos, voz o sonido y tacto, como se puede observar en la Figura 7.
Figura 7. Extensión de la notación de asociación de Actor para representar interacciones Se decidió proponer una nueva notación de asociación de actor, porque actualmente no existe un elemento que nos permitiera representar una comunicación entre diferentes elementos como persona-tecnología. En este caso (ver Figura 8) el usuario principal (usuario con síndrome de Down) interactúa con la aplicación en el teléfono a través del tacto, con la red social a través del tacto y con las aplicaciones de manejo de dinero a través del tacto y de la voz. Por otro lado, el usuario secundario (el cuidador del usuario con síndrome de Down) interactúa con la aplicación para crear rutas a través del tacto y la voz, y con el sistema de navegación a través del tacto.
Capítulo III, pp. 37 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
38
Figura 8. Modelo de interacción del usuario y la tecnología Para representar la interacción tecnología-tecnología utilizamos la asociación de actor communicates. En este caso, los módulos de comunicación wi-fi, ethernet y gsm/gprs se comunican con el servidor web para mantener la información concentrada, en todo lugar y en todo momento (cómputo ubicuo). Para representar la comunicación persona-persona a través de la tecnología, se definieron nuevos componentes tecnológicos que nos permiten mantener la información en todos lados en cualquier lugar, utilizando además la asociación de actor communicates. En este caso se definió el componente servidor web, que permite comunicar a los usuarios (usuario con síndrome de Down y su cuidador). Además fueron incorporados nuevos elementos como tipo de visibilidad [11] (ver Figura 9). Este elemento permite identificar si el elemento sobre el cual está posicionado es un elemento visible al usuario o un elemento que se mantiene oculto hacia el usuario,
ya que esta es la esencia de la inteligencia ambiental: no se siente, no se ve, no se toca, pero actúa constantemente, como una presencia invisible [10].
Figura 9. Elemento para representar el tipo de visibilidad de elementos tecnológicos En este modelo de interacción del usuario y la tecnología se captura la “ubicuidad” a través de la definición de los dispositivos tecnológicos, los cuales permiten mantener la información en cualquier lugar y la “interacción natural” mediante la especificación de las asociaciones de actor entre persona-tecnología, tecnología-tecnología y persona-persona a través de la tecnología.
Capítulo III, pp. 38 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
D. Fase de Modelado General Esta fase provee información general sobre las metas de la organización y las metas del sistema mediante un árbol de meta-refinamiento [14]: El objetivo principal de este modelo es proveer la información
39
general de todas las metas y tareas definidas específicamente en el modelo de la tecnología para operar (ver Tabla 2). Esta fase también puede considerarse como la documentación de los requisitos generados por la metodología.
Tabla 2. Árbol de Meta-Refinamiento Nombre de la meta
Tipo de meta
Inclusionar a personas con síndrome de Down
Actor
Meta general
Inclusionar a personas con síndrome de Down a través de diversos dispositivos Entrenar
Meta de logro dependencia Operacional con dependencia
Aplicación para usuarios con SD
Entrenar en el manejo del dinero
Operacional sin dependencia
Aplicación para usuarios con SD
Ver videos
Operacional con dependencia
Aplicación para usuarios con SD
Ver videos subidos por el cuidador
Operacional sin dependencia
Aplicación para usuarios con SD
Ver calendario
Operacional con dependencia
Aplicación para usuarios con SD
Ver eventos planeados
Operacional sin dependencia
Aplicación para usuarios con SD
Agregar nuevos eventos
Operacional sin dependencia
Aplicación para usuarios con SD
Ayuda con las compras
Operacional con dependencia
Aplicación para usuarios con SD
Asistencia en el manejo del dinero
Operacional sin dependencia
Aplicación para usuarios con SD
Definir preferencias
Operacional con dependencia
Aplicación para usuarios con SD
Elegir color de tema
Operacional sin dependencia
Aplicación para usuarios con SD
Encender/apagar seguimiento
Operacional con dependencia
GPS (aplicación para usuarios con SD)
Notificar sobre las tareas
Operacional con dependencia
Actuador de vibración (aplicación para usuarios con SD)
Navegar mediante el uso de rutas planeadas
Operacional con dependencia
Aplicación para usuarios con SD
Ver calendario
Operacional con dependencia
Servicio web para cuidadores
Agregar eventos
Operacional sin dependencia
Servicio web para cuidadores
Agregar instrucciones con sonido
Operacional sin dependencia
Servicio web para cuidadores
Agregar instrucciones con imágenes
Operacional sin dependencia
Servicio web para cuidadores
Agregar instrucciones con videos
Operacional sin dependencia
Servicio web para cuidadores
Ver compras
Operacional con dependencia
Servicio web para cuidadores
Crear lista de tareas
Operacional sin dependencia
Servicio web para cuidadores
Ver monitoreo
Operacional con dependencia
Servicio web para cuidadores
Seguir la posición del usuario
Operacional sin dependencia
Servicio web para cuidadores
Marcar lugares importantes
Operacional sin dependencia
Servicio web para cuidadores
Video
Operacional con dependencia
Servicio web para cuidadores
Agregar videos de Youtube
Operacional sin dependencia
Servicio web para cuidadores
Ver símbolos
Operacional con dependencia
Servicio web para cuidadores
Agrega símbolos
Operacional sin dependencia
Servicio web para cuidadores
Crear rutas
Operacional con dependencia
GPS (aplicación para crear rutas)
Crear rutas agregando texto
Operacional sin dependencia
Aplicación para crear rutas
Capítulo III, pp. 39 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
40
Tipo de meta
Actor
Crear rutas agregando fotos
Nombre de la meta
Operacional con dependencia
Cámara (aplicación para crear rutas)
Crear rutas agregando voz
Operacional con dependencia
Micrófono (aplicación para crear rutas
Ayudar a las personas a navegar en las rutas
Operacional con dependencia
Aprender a navegar
Operacional sin dependencia
Sistema de navegación para el hogar
Moverse hacia la izquierda en la ruta
Operacional sin dependencia
Sistema de navegación para el hogar
Moverse hacia la derecha en la ruta
Operacional sin dependencia
Sistema de navegación para el hogar
Jugar un juego con fotos
Operacional sin dependencia
Sistema de navegación para el hogar
Elegir la foto correcta en la ruta
Operacional sin dependencia
Sistema de navegación para el hogar
Jugar un juego con direcciones
Operacional sin dependencia
Sistema de navegación para el hogar
Elegir la dirección correcta
Operacional sin dependencia
Sistema de navegación para el hogar
Ayudar a los usuarios en el manejo del dinero
Operacional con dependencia
Aplicación para asistencia en el manejo del dinero
Ayuda con los pagos
Operacional sin dependencia
Aplicación para asistencia en el manejo del dinero
Ver con cuánto se tiene que pagar
Operacional sin dependencia
Aplicación para asistencia en el manejo del dinero
Ayuda con la lista de compras
Operacional sin dependencia
Aplicación para asistencia en el manejo del dinero
Ver lista de compras
Operacional sin dependencia
Aplicación para asistencia en el manejo del dinero
Ayuda con la cartera
Operacional sin dependencia
Aplicación para asistencia en el manejo del dinero
Ver cuánto dinero tiene la cartera
Operacional sin dependencia
Aplicación para asistencia en el manejo del dinero
Hacer llamadas
Operacional sin dependencia
Aplicación para asistencia en el manejo del dinero
Llamar al cuidador
Operacional sin dependencia
Aplicación para asistencia en el manejo del dinero
Entrenar a los usuarios en el manejo del dinero
Operacional con dependencia
Aplicación para asistencia en el manejo del dinero
Elegir el precio correcto para el producto
Operacional sin dependencia
Aplicación para asistencia en el manejo del dinero
Ver resumen personal
Operacional con dependencia
Red social
Ver medios sociales
Operacional sin dependencia
Red social
Comenzar discusión
Operacional sin dependencia
Red social
Escribir un post
Operacional sin dependencia
Red social
Crear un grupo especial
Operacional sin dependencia
Red social
Ver discusiones
Operacional sin dependencia
Red social
Comentar en un hilo de discusión
Operacional sin dependencia
Red social
Crear nuevos hilos de discusión
Operacional sin dependencia
Red social
Crear nuevos temas
Operacional sin dependencia
Red social
Ver comunicación personal
Operacional sin dependencia
Red social
Compartir mensajes
Operacional sin dependencia
Red social
Obtener un resumen de las actividades
Operacional sin dependencia
Red social
Enviar mensaje individual
Operacional sin dependencia
Red social
Operacional con dependencia
WI-FI, Ethernet, GSM/GPRS (todas las aplicaciones)
Enviar/recibir datos
Capítulo III, pp. 40 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
V. CONCLUSIONES Y TRABAJO FUTURO En este artículo se presenta un modelado de requisitos de aplicaciones de inteligencia ambiental (AmI) que extiende y toma como base el Framework de modelado de sistemas i*. Este modelado permite una representación gráfica de los componentes de una aplicación de AmI, así como su interacción con las personas que intervienen. Se toman en consideración los elementos básicos de una aplicación de inteligencia ambiental (ubicuidad, inteligencia, sensibilidad al contexto, e interacción natural) y se implementa el modelado en un caso de estudio real de inteligencia ambiental como forma de validación del enfoque. Los trabajos futuros van enfocados a que en la actualidad se siga refinando el modelado para validar el cubrimiento de los elementos básicos de una aplicación de AmI. Para hacerlo se continúa trabajando en varios casos de estudio de aplicaciones reales de inteligencia ambiental. Además se pretende el desarrollo de una herramienta de software que permita realizar los modelos de una manera más práctica. REFERENCIAS [1] K. Ducatel, M. Bogdanowicz, F. Scapolo, J. Leijten, and J. C. Burgelman (Eds.) (2001), “Scenarios of Ambient Intelligence in 2010”, ISTAG, European Commission, Disponible en: http://www.cordis.lu/ist/ istag. [2] J. Augusto and P. McCullagh, “Ambient Intelligence: Concepts and Applications”. Computer Science and Information Systems, vol. 4, n.º 1, pp. 1-28. 2007. [3] L. Irazabal, “Inteligencia ambiental ¿Una oportunidad para una mejor calidad de vida?”, DYNA, vol. 79, n.º 8, pp. 42-43, 2004. [4] E. Yu (2009). “Social Modeling and i*”, in Conceptual Modeling: Foundations and Applications. LNCS. 5600. Springer, pp. 99-121. doi: 10.1007/9783-642-02463-4_7. [5] E. Yu, “Modelling Strategic Relationships for Process Reengineering”. Published doctoral dissertation, University of Toronto, Canada, 1995.
41
[6] G. Báez y S. I. B. Brunner, “Metodología DoRCU para la Ingeniería de requerimientos”, WER (Workshop in Engineering of Requirements), pp. 210222, 2001. [7] L. González y G. Urrego, “Modelo de requisitos para sistemas embebidos”, Revista Ingenierías, Universidad de Medellín, 2008. [8] C. Evans, L. Brodie, and J. Augusto, “Requirements Engineering for Intelligent Environments”. In Proceedings The 10th International Conference on Intelligent Environments (IE’14), IEEE Press, 2014, pp. 154-161. [9] A. Martínez, B. Vázquez, H. Estrada, L. Santillan, and C. Zavala, “Incorporating technology in service-oriented i* business models: a case study”. Springer-Verlag Berlin Heidelberg. 2016. [10] I. Vázquez y D. López. “Inteligencia Ambiental: La presencia invisible”, Solo programadores, n.º 127, pp. 16-19, 2005. [11] A. Guzmán, F. Vargas, A. Martínez, and H. Estrada, “A methodology for modeling Ambient Intelligence applications using i* Framework”, en Proceedings of the Ninth International i* Workshop (iStar 2016), CEUR Vol-1674. pp. 61-66. 2016. [12] J. C. Augusto, T. Grimstad, R. Wichert, E. Schulze, A. Braun, G. M. Rodevand, and V. Ridley (2013), “Personalized Smart Environments to Increase Inclusion of People with Down’s Syndrome”, in Proceedings of 4th International Joint Conference on Ambient Intelligence, pp. 223-228. 3-5. Disponible en: http://www.poseidon-project.org/ [13] Asociación para personas con Síndrome de Down-ASSIDO. Plaza Bohemia 4, Apartado 2048, 30009. Murcia, España (http://www.assido.org/). [14] H. Estrada, A. Martínez, and O. Pastor, “Goal-based business modeling oriented towards late requirements generation”, Lecture Notes in Computer Science, 2003.
Capítulo III, pp. 41 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
42
AUTORES Hugo Estrada. Es doctor en Informática en un proyecto de co-tutela entre la Universidad Politécnica de Valencia en España y la Universita degli Studi di Trento, Italia. Maestro en Ciencias Computacionales por el Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET) (1996) y licenciado en Informática egresado del Instituto Tecnológico de Zacatepec, Morelos (1994). Actualmente, es investigador de la Dirección Adjunta de Innovación y Conocimiento (DAIC) de INFOTEC, donde realiza investigación en temáticas como internet del futuro, datos abiertos, web semántica, modelado organizacional, big data, y sistemas de inteligencia ambiental para apoyo a la salud. Alejandro de Jesús Guzmán. Recibió el título de Ingeniero en Sistemas Computacionales mediante tesis de investigación (2015) por el Instituto Tecnológico de Tuxtla Gutiérrez en Chiapas, México. Participó en eventos de innovación y tecnología del Tecnológico Nacional de México (TecNM) a nivel regional en la ciudad de Chetumal, Quintana Roo (2013) y la ciudad de Campeche, Campeche (2015) en México. Realizó una pasantía de investigación en el Tecnológico de Antioquia (Institución Universitaria) en Medellín, Colombia (2016), y actualmente es candidato a maes-
tro en Ciencias de la Computación por el Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET), en Cuernavaca, Morelos, México (2017). Alicia Martínez. Es profesora-investigadora del Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET) en Cuernavaca, Morelos, México. Obtuvo el grado de doctora en Informática por la Universidad Politécnica de Valencia, España, y el doctorado en investigación en Informática y Telecomunicaciones por la Universidad de Trento, Italia. Su línea de investigación es Sistemas Distribuidos, en la cual actualmente realiza investigaciones referentes a la inteligencia ambiental enfocada a la salud, detectando automáticamente estados emocionales a través de cómputo móvil y redes sociales. Fabio Alberto Vargas. Es ingeniero de Sistemas por la Universidad Cooperativa de Colombia (1999), especialista en Ingeniería de Software por la Universidad Nacional de Colombia (2003), M. S. en Ingeniería de Sistemas por la Universidad Nacional de Colombia (2010) y doctor en Ingeniería de Sistemas por la Universidad Nacional de Colombia (2015). Es profesor de tiempo completo categoría asistente y director de investigación en el Tecnológico de Antioquia (Institución Universitaria). Sus áreas de interés son: ingeniería de requisitos, pruebas de software, desarrollo de software e inteligencia ambiental.
Capítulo III, pp. 42 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
43
Capítulo IV APLICACIÓN DE ESTRATEGIAS BASADAS EN PROYECTOS PARA LA FORMACIÓN DE PROFESIONALES INFORMÁTICOS Adriana Xiomara Reyes - axreyes@elpoli.edu.co Politécnico Colombiano Jaime Isaza Cadavid. Medellín, Colombia Darío Enrique Soto - dsoto@tdea.edu.co Tecnológico de Antioquia-I.U. Medellín, Colombia Fabio Alberto Vargas - fvargas@tdea.edu.co Tecnológico de Antioquia-I.U. Medellín, Colombia I. INTRODUCCIÓN En el entorno tan cambiante y en continua evolución del sector del software, se presentan nuevas formas de trabajo que requieren de las personas capacidad para adaptarse a situaciones impredecibles y contar con las aptitudes necesarias para satisfacer en el menor tiempo posible las necesidades del medio, lo cual involucra nuevos paradigmas de formación como la formación de competencias [1]. Las competencias son un enfoque para la educación y no un modelo pedagógico, se centran en unos aspectos específicos de la docencia, el aprendizaje y la evaluación. Son ellos: 1. La integración de los conocimientos, los procesos cognoscitivos, las destrezas, las habilidades, los valores y las actitudes en el desempeño ante actividades y problemas; 2. La construcción de los programas de formación de acuerdo con los requerimientos disciplinares, investigativos, profesionales, sociales, ambientales y laborales del contexto; y 3. La orientación de la educación por medio de estándares e indicadores de calidad en todos sus proce-
sos. En este sentido, como bien se expone en [2], el enfoque de competencias puede llevarse a cabo desde cualquiera de los modelos pedagógicos existentes, o también desde una integración de ellos. Tomando como base lo anterior, las necesidades del sector productivo y las tendencias en la disciplina y en la formación, se identifican las competencias requeridas por los futuros profesionales. Académicos, pedagogos, investigadores y expertos de la industria diseñan el currículo de los estudiantes bajo el modelo de formación por competencias. Pero si se definen las competencias que se necesitan, ¿cómo lograr que los estudiantes las logren? La estrategia busca incorporar los procesos de formación activos que le permiten al estudiante convertirse en el principal protagonista de los procesos de aprendizaje, para lo cual se introducen estrategias metodológicas que posibilitan la formación de un profesional con este ideal. En este artículo se presenta la estrategia basada en proyectos pedagógicos integradores que se viene aplicando en el Politécnico Colombiano Jaime Isaza Cadavid y en el Tecnológico de Antioquia-Institución Universitaria.
Capítulo IV, pp. 43 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
44
En la primera sección del documento se expone el contexto y las teorías que son el fundamento del trabajo realizado; en la segunda se muestra la estrategia definida y su vinculación en el proceso de formación, en la tercera se presenta la discusión de los resultados obtenidos y, por último, las conclusiones. II. MATERIALES Y MÉTODOS A. Contexto de la Formación de Profesionales en el Área Informática
criterios de responsabilidad social y ética, estas son las competencias profesionales que se busca formar. Una estrategia que se viene implementando es la aplicación de la educación basada en competencias, la cual centra su formación en estos principios profesionales que se espera el futuro profesional obtenga de los proyectos de formación basado en comptetencias y definidos por las asociaciones de la disciplina y los requerimientos del sector productivo y de servicios.
La industria del software ha tenido un alto crecimiento en nuestro país en los últimos años, pero ese crecimiento se ha visto frenado por la falta de talento humano de calidad. Según cifras de Fedesoft, en Colombia se emplean 45.000 profesionales en el sector y se necesitan 12.000 nuevos profesionales graduados cada año. Es así como el 80 por ciento de los profesionales egresados de carreras TIC consiguen empleo en menos de un año, se presenta un déficit anual de 7.000 profesionales que “afectará más los procesos empresariales” [3].
La metodología de enseñanza que se aplica en este tipo de formación se enfoca en el saber hacer, y genera un entorno de formación similar al del ámbito laboral para desarrollar y aplicar los conocimientos y habilidades [7], [8], [9], [10], [11].
La labor de formar talento humano de calidad debe ser asumida por las universidades e instituciones de educación superior, con el fin de resolver los problemas del proceso de software y asegurar la calidad de los productos de software siguiendo mejores prácticas, modelos y estándares que se aplican en el sector de la industria. Por eso se hace necesario desarrollar en los estudiantes las competencias generales [4] y específicas [5] que provee la ingeniería de software como disciplina.
Aprendizaje cooperativo: “Estrategias de enseñanza en las que los estudiantes trabajan divididos en pequeños grupos en actividades de aprendizaje y son evaluados según la productividad del grupo”. Se puede considerar como un método para utilizar entre otros o como una filosofía de trabajo [12].
Las competencias [6] son procesos complejos que las personas ponen en acción, actuación y creación para resolver problemas y realizar actividades básicas cotidianas en los contextos en que se desempeñan, para aportar en la construcción y transformación de la realidad. Integran los componentes cognitivos, procedimentales y actitudinales definidos en: • Saber Hacer – Procedimiento • Saber Saber – Conocimiento • Saber Ser-Comportamiento Lo que se busca en el sector productivo es que las personas identifiquen problemas y planteen soluciones de acuerdo con los estándares profesionales y con los
B. Estrategias Pedagógicas A continuación se presentan las estrategias pedagógicas que se analizaron para aplicarse al contexto de la formación por competencias:
Aprendizaje orientado a proyectos: Estrategia en la que el producto del proceso de aprendizaje es un proyecto o programa de intervención profesional, en torno al cual se articulan todas las actividades formativas [13]. Aprendizaje basado en problemas (ABP): Estrategia en la que los estudiantes aprenden en pequeños grupos, partiendo de un problema, a buscar la información que necesitan para comprender el problema y obtener una solución, bajo la supervisión de un tutor [14]. Exposición/Lección magistral: Presentar de manera organizada información (profesor-alumnos; alumnos-alumnos). Activar la motivación y los procesos cognitivos [1].
Capítulo IV, pp. 44 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
Estudio de casos: Es una técnica en la que los alumnos analizan situaciones profesionales presentadas por el profesor, con el fin de llegar a una conceptualización experiencial y realizar una búsqueda de soluciones eficaces [2]. Simulación y juego: Se les da a los estudiantes un marco donde aprender de manera interactiva por medio de una experiencia viva, para afrontar situaciones que quizá no están preparados para superar en la vida real, expresar sus sentimientos respecto al aprendizaje y experimentar con nuevas ideas y procedimientos [3]. Al realizar el análisis de estas estrategias se determinó que la más apropiada para su aplicación, según el contexto y formación de los estudiantes, es la estrategia basada en proyectos. Con esta estrategia se busca que durante la formación los estudiantes asuman una mayor responsabilidad de su propio aprendizaje y puedan identificar en qué momento y en dónde aplicar sus conocimientos cuando se enfrenten a proyectos reales. El aprendizaje basado en proyectos es una estrategia de enseñanza que constituye un modelo de instrucción auténtico en el que los estudiantes planean, implementan y evalúan proyectos que tienen aplicación en el mundo real más allá del aula de clase. En esta modalidad el estudiante es el actor principal y primer responsable de su proceso, se le invita a vivir y evidenciar el desarrollo de nuevas competencias. En ella se recomiendan actividades de enseñanza interdisciplinarias, de largo plazo y centradas en el estudiante, en lugar de lecciones cortas y aisladas Para que cumplan con su fin, los proyectos deben tener en común los siguientes elementos específicos [4]: • Centrados en el estudiante, dirigidos por el estudiante. • Claramente definidos un inicio, un desarrollo y un final. • Contenido significativo para los estudiantes; directamente observable en su entorno. • Problemas del mundo real. • Investigación de primera mano. • Sensible a la cultura local y culturalmente apropiado. • Objetivos específicos relacionados tanto con el Pro-
45
yecto Educativo Institucional (PEI) como con los estándares del currículo. • Un producto tangible que se pueda compartir con la audiencia objetivo. • Conexiones entre lo académico, la vida y las competencias laborales. • Oportunidades de retroalimentación y evaluación por parte de expertos. • Oportunidades para la reflexión y la autoevaluación por parte del estudiante. • Evaluación o valoración auténtica. En la clasificación de proyectos pedagógicos se pueden encontrar los siguientes: Proyectos colaborativos [5]: Estrategia educativa de aprendizaje y enseñanza paralela y complementaria al desarrollo de los cursos. Se puede dar entre dos o más currículos, microcurrículos, proyectos, áreas de conocimiento e incluso instituciones. Los proyectos colaborativos convocan a los participantes a sumar esfuerzos, competencias y habilidades mediante una serie de trabajos en colaboración e interacciones que les permiten alcanzar juntos un propósito común. Proyectos formativos [6]: Tipo de acción educativa centrada en la gestión de un propósito particular del currículo, que parte de la tesis de la gestión de proyectos y de la resolución de un problema central ligado a una necesidad de formación. Proyectos de aula [7]: Estrategia de enseñanza, aprendizaje y evaluación que centra su interés en necesidades educativas diagnosticadas o transversales a los procesos de formación. Los principales aspectos de su desarrollo que se deben tener presentes son el sistémico y el holístico, y la articulación de las áreas de conocimiento. Proyecto pedagógico integrador [8]: Tipo de proyecto que centra su interés en la gestión educativa compartida, por lo que se caracteriza en no corresponder a áreas específicas de formación. Se asume como una estrategia didáctica que puede involucrar la participación de la comunidad que rodea el centro educativo, que tiene límites en el tiempo y resultados que se concretan mediante productos de gestión.
Capítulo IV, pp. 45 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
46
Proyectos productivos pedagógicos (PPP) [23]: De moda en la actualidad para la gestión en instituciones educativas rurales. Este tipo de proyectos centran su interés en reconocer y propiciar el funcionamiento productivo de la región en la que se forme el estudiante, para revalorar los procedimientos, optimizar su gestión y relacionar el aprendizaje desde allí. Aunque se plantee que son productivos, en realidad constituyen un ambiente y un recurso de aprendizaje que permiten redimensionar el sentido del aprender. Proyectos productivos [9]: No hacen parte de las instituciones educativas en sí, ya que centran su interés en el desarrollo óptimo de un producto bajo los criterios de eficiencia y eficacia propios del sector productivo. Las instituciones educativas han abordado proyectos productivos en la medida en que han visto viable la localización de talleres de trabajo, centros de atención o portafolios de servicio que incluyen la oferta comercial al público. Un proyecto productivo tiene como relación condicionante la solicitud de un servicio, bajo los criterios de tiempo, calidad y competitividad. Proyectos de aplicación productiva [10]: Esta clase de proyectos están dentro del rango de los proyectos pedagógicos y cumplen un papel similar a los proyectos productivos pedagógicos, teniendo estos últimos en su denominación un interés elevado por la productividad, aunque ambos tengan solamente en su posibilidad generar acciones pedagógicas que estén encaminadas a ser evaluadas en un futuro mediano, desde los criterios que se plantean en los proyectos productivos, es decir, tiempo, calidad y competitividad. Por tanto, los proyectos de aplicación productiva son el acercamiento de las instituciones educativas al reconocimiento y la asimilación de las acciones propias de las organizaciones productivas, más no a su réplica.
que deben ser resueltos, pero para que esto se lleve a cabo con éxito debe aplicar las técnicas, modelos, herramientas y lenguajes de programación recibidos en su proceso de formación e involucrar las mejores prácticas, tal y como lo exige el sector productivo. Con esta estrategia de aplicar proyectos pedagógicos integradores en su proceso de formación se busca que integre todos estos conocimientos en forma organizada para dar solución a los problemas que se le presenten, aplicando a su vez competencias de trabajo en equipo y liderazgo. De ahí que las competencias que va a aplicar no correspondan a una sola área de conocimiento sino a todas las áreas de conocimiento que adquiere en su proceso de formación, de esta forma se puede hablar de una gestión educativa compartida, que se caracteriza por no corresponder a áreas específicas de formación. Se asume como una estrategia pedagógica que tiene límites en el tiempo y cuyos resultados se concretan mediante productos de gestión [11]. Cada nivel de formación tiene un conjunto de módulos que buscan desarrollar competencias en los estudiantes de forma gradual, equiparable al ciclo de vida y a la cadena de valor del sector del software. Las competencias de cada nivel permiten constituir un problema central para desarrollar mediante la metodología de formación por proyectos. Cada problema se desarrolla mediante las actividades presenciales e independientes de los respectivos módulos del nivel, por lo cual se denomina Proyecto pedagógico integrador, y cada módulo aporta las bases para el desarrollo de las competencias que se van a aplicar durante el desarrollo del proyecto pedagógico integrador (ver Figura 1).
Módulo 1
IV. RESULTADOS A. Estrategia Definida: Proyecto Pedagógico Integrador La estrategia de formación por proyectos se centra en que el producto del proceso de aprendizaje es un proyecto o programa de intervención profesional, y todas las actividades de formación se deben articular en torno a él. En todo proceso que participe, un profesional informático se va a encontrar con problemas
Módulo 4
PPI
Módulo 2
Módulo 3
Figura 1. Proyecto pedagógico integrador
Capítulo IV, pp. 46 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
Esta estrategia de aprendizaje basada en proyectos se debe aplicar en pequeños grupos, porque en el sector productivo los profesionales informáticos siempre van a formar parte de un equipo que busca brindar soluciones a los problemas que tienen las organizaciones, por eso se recomienda que el grupo se organice en equipos de tres a máximo cinco personas, y con el acompañamiento de un coordinador del proyecto, un docente que estará encargado de gerenciar y orientar su desarrollo. Cada uno de los docentes de los módulos correspondientes al nivel en el que se encuentren los estudiantes deben seguir los lineamientos dados por el coordinador, para aportar desde su módulo al desarrollo del proyecto. Para que esta estrategia tenga éxito los docentes que componen los diferentes módulos, en el proceso de formación de los futuros profesionales informáticos, deben incentivar en el estudiante el espíritu interpretativo y crítico, así como el autoaprendizaje. El proyecto es una estrategia de carácter didáctico-pedagógico, como parte de las metodologías activas orientadas a la solución de problemas, para buscar la construcción de nuevos conocimientos y el desarrollo de nuevos espacios de aprendizaje en la interacción constante entre docentes, estudiantes y su entorno, con el fin de brindar solución a un problema con la aplicación de los conocimientos que van adquiriendo durante su proceso de formación. B. Fases del Proyecto
47
Planeación: Es la identificación, el entendimiento y la claridad en la propuesta entregada. La organización, definición y asignación de las actividades que permitirán dar solución al problema propuesto, todo esto apoyado y asesorado por los docentes de los diferentes módulos de formación. Ejecución: Es el desarrollo simulado o real del problema, con base en situaciones presentadas en casos similares. Los docentes deben asesorar la ejecución a partir de los elementos específicos de formación de los módulos. Implantación: Es el despliegue de la solución propuesta en un entorno real o simulado, pero que cumpla con todas las características para su correcto funcionamiento. Evaluación: Es la exposición de la solución del problema alcanzada al final de proyecto, así como la experiencia del proceso vivido y la reflexión de las lecciones aprendidas durante todas las fases del proyecto. C. Ejercicios de Aprendizaje del Proyecto Pedagógico Integrador Los ejercicios del aprendizaje se organizan en los que corresponden a la propuesta, la planeación, la ejecución, la implantación y la evaluación, en cada una de estas fases se realizan unos ejercicios que llevan al estudiante a desarrollar unas competencias (ver Tabla 1).
El proyecto se organiza en varias fases denominadas: propuesta, planeación del proyecto, ejecución del proyecto, implantación y evaluación [26].
Correspondientes a la propuesta: “Proponer”. Busca que los estudiantes tengan comprensión del problema educativo central de formación.
Figura 2. Fases del Proyecto pedagógico integrador
Correspondientes a la planeación: “Identificar” y “Explicar”. Cuando se realiza un ejercicio de aprendizaje como este, se parte de otros ejercicios que componen la identificación, algunos de los cuales son, entre otros, descripción, comparación, delimitación, asociación, del caso para desarrollar. Se trata de ejercicios específicos que en su conjunto permiten la identificación plena del problema. Como el ejercicio consiste en dar cuenta de lo que se requiere, sólo se logra en la medida en que se identifique el problema y caso específico desde todas sus variables.
Propuesta: Es cada uno de los problemas que se asignan a los equipos para ser solucionados. Los docentes de los módulos deben buscar desarrollar en los estudiantes las competencias que necesiten para dar solución a este problema.
Capítulo IV, pp. 47 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
48
Correspondientes a la ejecución: “Comparar”, “Proponer” y “Solucionar”. Busca identificar casos similares al seleccionado y determinar cada una de las formas como se desarrollan. A partir de la comparación, el ejercicio de proposición se hace más viable en la medida en que se han analizado posibles formas de resolución del caso seleccionado, de allí debe salir una propuesta metodológica de solución. Además, busca generar un posible desarrollo del esquema a partir de la propuesta planteada.
Correspondientes a la implantación: “Implantar”. Busca la identificación del mejor entorno para desplegar su solución, solucionar los problemas o situaciones que se presentan en éste e implantar la solución conseguida al final del proyecto. Correspondientes a la evaluación: “Exponer” y “Responder”. Es la etapa final del proceso de aprendizaje, en la que se deben seleccionar las estrategias pertinentes para que un público o auditorio conozca los logros obtenidos.
Tabla 1. Proceso del Proyecto pedagógico Fase
Ejercicios de aprendizaje
Propuesta
Proponer
Proponer proyecto para desarrollar
Identificar
Título, objeto para analizar, definición del problema, problemas relacionados, ubicación del proyecto, justificación y alcance Objetivos general y específico para desarrollar. Referencias teóricas Estado actual del problema elegido
Planeación del proyecto
Pasos específicos
Metodología seleccionada Indagar sobre situaciones similares (Ir de lo particular a lo general) Explicar
Cronograma del proyecto Factor humano y recursos tecnológicos y financieros
Comparar Ejecución del proyecto
Proponer Solucionar
Implantación Evaluación
Entrega y exposición del anteproyecto Levantamiento de requerimientos y definición de especificaciones. Dar aplicabilidad a situaciones reales o simuladas Diseñar un bosquejo de la solución Desarrollo de la solución propuesta Documentación del desarrollo de la solución Elaboración de manuales del sistema y usuario
Implantar
Instalación del desarrollo de la solución
Exponer
Presentación de la solución desarrollada
Responder
Responder a las preguntas que surjan en el proceso
La implementación del Proyecto pedagógico integrador se caracteriza por estar liderado por un módulo central, el cual articula los demás módulos del semestre, y a través de él se pueden evidenciar las competencias desarrolladas por los estudiantes. Los estudiantes se deben organizar en grupos de trabajo de 3 o 4 a los cuales se les asigna un proyecto, el grupo debe seguir cada una de las fases del proyecto —la
propuesta, la planeación, la ejecución, la implantación y la evaluación—, durante cada una de ellas deben llevar a cabo el estudio del proyecto y la interpretación de las especificaciones entregadas, luego realizar la construcción de módulos en un lenguaje específico, implantarlos en un entorno real o simulado y socializar los resultados para recibir la retroalimentación por parte de un jurado.
Capítulo IV, pp. 48 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
Durante cada una estas fases intervienen unas personas que tienen unos roles asignados: el coordinador del proyecto, el docente del módulo central, los docentes de los otros módulos que cursan los estudiantes durante su semestre, los estudiantes y los jurados. Son funciones y responsabilidades del coordinador del proyecto:
49
Los estudiantes deben desarrollar en equipo el proyecto siguiendo cada etapa, entregando los informes en las fechas establecidas y cumpliendo con las indicaciones dadas por el coordinador del proyecto. Los jurados intervienen en la fase de evaluación, realizan una evaluación constructiva sobre el proceso y el producto entregado por cada equipo.
• Dirigir y coordinar el proyecto a los estudiantes durante todo el anteproyecto y el Proyecto pedagógico integrador. • Revisar todo el material presentado por los estudiantes y exigir las modificaciones que considere necesarias. • Coordinar las reuniones que crea convenientes para estar informado de la marcha del proyecto. • Verificar que el informe final llene todos los requisitos exigidos por la institución • Verificar el cumplimiento de lo planeado y los objetivos acordados. • Revisar y aprobar los informes de avance que el equipo de estudiantes prepare para entregar a la Coordinación de proyectos. • Evaluar proyecto y anteproyecto. • Fijar fechas para entregas, informes de avance y proyectos de cada nivel académico. • Citar a los docentes - jurados cuando sea necesario. • Evaluar el proyecto en cuanto al cumplimiento de compromisos, tales como: informes, indicaciones dadas, normalidad y regularidad en la ejecución del proyecto.
Para facilitar el desarrollo del Proyecto pedagógico integrador, en el Tecnológico de Antioquia se implementó en la plataforma virtual de la Institución, ubicada en la dirección: http://e-learning.tdea.edu.co, todo lo correspondiente a los diferentes niveles del PPI. Allí cada estudiante matriculado puede ingresar y consultar la información de su equipo, descargar las fichas o entregables con los que debe cumplir el equipo, realizar entregas por este medio, hacer seguimiento a las fechas de actividades, entregas y notas asignadas en los diferentes módulos, tanto el central como los otros que curse y que le aporten al proyecto.
Son funciones del docente del módulo central: desarrollar en los estudiantes las competencias principales para el desarrollo del proyecto, así como apoyar y orientar la elaboración de los informes y avances que se entregan al coordinador, tener comunicación constante con los docentes encargados de los otros módulos para hacer seguimiento a las competencias que están desarrollando en cada uno de estos módulos y que son necesarias para el desarrollo del proyecto.
Esta estrategia pedagógica permite desarrollar trabajo interdisciplinario que posibilita la comprensión holística del objeto de formación y el acercamiento a otros objetos de conocimiento, una forma de trabajo que es coherente con el enfoque por competencias sistémico complejo y con la gestión del conocimiento.
Los docentes de los otros módulos cursados por los estudiantes tienen la responsabilidad de desarrollar las competencias que le corresponden a cada uno para aportar al desarrollo del proyecto.
V. DISCUSIÓN El Proyecto pedagógico integrador, como estrategia pedagógica, desarrolla en los estudiantes competencias generales y específicas. De las generales: indagación sobre nuevos conocimientos, interpretación y abstracción a partir de unas especificaciones entregadas, habilidades comunicativas, trabajo en equipo, análisis, construcción de elementos de software, pensamiento analítico y actitud investigativa.
Además, la evaluación de competencias es una medición de la capacidad profesional, entendida como el conjunto articulado y coherente de resultados de aprendizaje que un proceso formativo debe garantizar, para que una persona pueda demostrar en el trabajo desempeños competentes en su campo profesional.
Capítulo IV, pp. 49 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
50
Los estudiantes de Informática y Sistemas del Politécnico Colombiano Jaime Izasa Cadavid y del Tecnológico de Antioquia desarrollan las competencias definidas mediante proyectos pedagógicos integradores por semestre, y finalizan validando sus competencias en una práctica en el sector empresarial. Los resultados obtenidos se evidencian en las prácticas profesionales efectuadas por los estudiantes de las instituciones universitarias. El logro de estas competencias se evalúa en la realización de la práctica empresarial en donde llevan a cabo actividades acordes a su perfil de formación. Los resultados obtenidos en las evaluaciones hechas por los empresarios evidencian el buen desempeño y el logro de las competencias de formación que el sector productivo requiere (ver Figura 1).
Figura 3. Desempeño de los estudiantes en las prácticas profesionales Las empresas donde los estudiantes llevaron a cabo las prácticas profesionales perciben que el desempeño excelente de los estudiantes ha crecido de un 48 % a un 60 %; el desempeño bueno se ha mantenido más regular, de un 35 % a un 38 %; el aceptable ha disminuido de un 12 % a un 2 %, mientras que el desempeño malo, del semestre 2014-2 al 2015-2, desapareció. Se considera entonces que los empresarios per-
ciben los conocimientos, la calidad y los procesos de la práctica profesional como excelentes y buenos, lo cual cumple con los objetivos propuestos como resultado del proceso de formación por competencias y la estrategia que apoya este proceso en las instituciones, pero igualmente visualizando algunas oportunidades de mejoramiento relacionadas. VI. CONCLUSIONES Los procesos de enseñanza, aprendizaje y evaluación deben desarrollar formas para medir, acompañar y ajustar sus gestiones para el logro de los resultados propuestos en los distintos niveles de formación. Las instituciones de educación superior plantean el logro de las competencias por parte de sus estudiantes desde la formación por proyectos, en los que se propone el desarrollo de las competencias de formación en situaciones y problemas diversos, graduales y continuos de cada nivel académico respectivo, enmarcados en la creatividad y la formación pedagógica. Y esto está definido en la propuesta que vienen aplicando y que se ha presentado en este documento como lo es el Proyecto Pedagógico Integrador. Proyecto, porque está compuesto de una serie de acciones por fases, gestionadas por los equipos de trabajo; Pedagógico, porque es una herramienta que posibilita el aprendizaje significativo que evidencia las competencias generales y específicas desarrolladas en cada uno de los módulos. Para desarrollar el Proyecto pedagógico integrador se requiere la participación de cada uno de los módulos del respectivo nivel de formación, lo que demanda coordinación y articulación de estrategias al coordinador de proyectos, al docente del módulo central y a los docentes de los módulos de cada nivel. Para tal fin se deben tener en cuenta las competencias que hay que desarrollar en cada uno de los módulos, y que cada módulo aporte desde su área de conocimiento al desarrollo del proyecto con la orientación y guía del coordinador de proyectos. Esto ha permitido que los estudiantes logren alcanzar las competencias y las apliquen en el contexto laboral al momento de realizar sus prácticas profesionales.
Capítulo IV, pp. 50 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
VII. AGRADECIMIENTOS Este artículo presenta los resultados de un trabajo que surgió del modelo de formación por proyectos de la Alianza Futuro Digital. Agradecemos al Equipo de trabajo de la T&T del Politécnico Colombiano Jaime Isaza Cadavid, al Comité de Innovacampus y al equipo de trabajo del PPI del Tecnológico de Antioquia, primera institución universitaria del departamento acreditada como de alta calidad. REFERENCIAS [1] J. T. Fernández, y C. R. Bueno, “Evaluación de competencias profesionales en educación superior: Retos e implicaciones (evaluation of professional competences in higher education: challenges and implications)”, Educación XX1, vol. 19, n.º 1, 2016, [2] S. Tobón, La formación basada en competencias en la educación superior: el enfoque complejo. México: Universidad Autónoma de Guadalajara, 2008. [3] S. J. M. Marín, S. A. Aramburo, y J. R. Velásquez, “Análisis Sistémico de la Industria del Software en Colombia: Identificando el Problema del Crecimiento”, Revista EIA, vol. 12, n.º 23, 2016. [4] J. H. Flores, Proyecto Tunning América Latina. Reflexiones y perspectivas de la Educación Superior en América Latina. Informe final 2004-2007, Bilbao: Universidad Deusto-Universidad de Groningen, 2007. [5] IEEE/ACM Curricula Recommendations. Disponible en: http://www.acm.org/education/curricula.html. [6] A. Villa, y M. Poblete, Aprendizaje basado en competencias. Una propuesta para la evaluación de las competencias genéricas. Bilbao: Mensajero/ICE Universidad de Deusto, 2007. [7] A. Colmena, y P. Sánchez, Desarrollo de productos electrónicos I. Grado Superior, España: Anele MEC, 1995. [8] J. M. Fletcher, C. Schatschneider, & P. Mehta, (1998). “ The role of instruction in learning to read: Preventing reading failure in at-risk children”, Journal of Educational Psychology, vol. 90, n.º 1, 1998.
51
[9] A. Gonczi, y J. Athanasou, Instrumentación de la educación basada en competencias. Perspectivas de la teoría y práctica en Australia, Limusa, 1996. [10] M. D. C. Malpica, El punto de vista pedagógico. En Competencia laboral y educación basada en normas de competencia. México: Sep. Cnccl Conale, 1996, pp. 123-140. [11] L. Mertens, Competencia laboral: sistemas, surgimiento y modelos. Montevideo: Cinterfor, 1996. [12] D. W. Johnson, R. T. Johnson, y E. J. Holubec, El aprendizaje cooperativo en el aula. Barcelona: Paidós, 1999. [13] R. Tippelt, y H. Lindemann, El método de proyectos. El Salvador, München, Berlin, 2001. [14] J. L. Figueroa Hernández et al., “Aprendizaje basado en problemas (ABP).” Rev Fac Med UNAM, vol. 45 n.º 5, 2002. [15] Sánchez, M. R., “Metodologías docentes en el EEES: de la clase magistral al portafolio”, Tendencias pedagógicas, n.º 17, pp. 83-103. [16] Wassermann, S. (1999). El estudio de casos como método de enseñanza. Buenos Aires: Amorrortu. [17] Batista, M. Á. H., “Consideraciones para el diseño didáctico de ambientes virtuales de aprendizaje: una propuesta basada en las funciones cognitivas del aprendizaje”. Revista Iberoamericana de Educación, vol. 38, n.º 5, 25 de abril, 2006. [18] Castro, Santiago, “Juegos, Simulaciones y Simulación-Juego y los entornos multimediales en educación ¿mito o potencialidad?”, Revista de Investigación, vol. 32, n.º 65, pp. 223-245, 2008. [19] Maldonado Pérez, M., “Aprendizaje basado en proyectos colaborativos. Una experiencia en educación superior”, Laurus, vol. 14, n.º 28, pp. 158-180, septiembre-noviembre, 2008. [20] Tobón, S. T., El aprendizaje de competencias mediante proyectos formativos. Centro de Investigación en formación y evaluación, Coloquio, La Salle Benavente, Colombia, 22, pp. 1-31, 2009.
Capítulo IV, pp. 51 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
52
[21] Ruiz, L. P., y Páez, E. R., Proyectos de aula, Revista Episteme, n.º 1, 2010. [22] Ramírez, N. H., El Proyecto Integrador: Una estrategia pedagógica para lograr la integración y la socialización del conocimiento, Psychologia. Avances de la disciplina, vol. 1, n.º 1, pp. 235-240, 2007. [23] Ramírez C., Á. I., Pedagogía para aprendizajes productivos. Proyectos pedagógicos productivos y desarrollo territorial. 3.ª ed., Bogotá: Ecoe, 2009. [24] Restrepo Gómez, B., “Investigación formativa e investigación productiva de conocimiento en la universidad”, Nómadas, n.º 18, mayo de 2003, pp. 195202, Bogotá. [25] Nickerson, R., Perkins, David y Smith, Edward, Enseñar a pensar: Aspectos de la aptitud intelectual, Madrid: Paidós Ibérica, 1994. [26] Alianza Futuro Digital, “Modelo de Formación por Proyectos Pedagógicos Integradores”, 2008.
AUTORES Adriana Xiomara Reyes. Ingeniera de Sistemas, especialista en Teleinformática, magíster en Ciencias Computacionales, doctora en Ingeniería de Sistemas. Docente asociada de la Facultad de Ingeniería del Politécnico Colombiano Jaime Isaza Cadavid, Medellín, Colombia. Darío Enrique Soto. Profesor asociado de tiempo completo del Tecnológico de Antioquia I.U. Es ingeniero de sistemas, magíster en Ciencias Computacionales y candidato a doctor en Ingeniería de Sistemas e Informática. Es investigador del grupo GIISTA del Tecnológico de Antioquia I.U. Fabio Alberto Vargas. Ingeniero de Sistemas, magíster en Ingenieria de Sistemas, doctor en Ingeniería de Sistemas. Director de Investigaciòn del Tecnológico de Antioquia, Medellín, Colombia.
Capítulo IV, pp. 52 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
53
Capítulo V PROCESO DE PRUEBAS EN PROYECTOS PARA OBTENER CONOCIMIENTO UTILIZANDO INTELIGENCIA DE NEGOCIOS Juan Camilo Giraldo - jgiraldo1@tdea.edu.co Tecnológico de Antioquia-I.U. Medellín-Colombia Darío Enrique Soto - dsoto@tdea.edu.co Tecnológico de Antioquia-I.U. Medellín-Colombia Katerine Villamizar - kvillamizars@gmail.com Tecnológico de Antioquia-I.U. Medellín-Colombia
I. INTRODUCCIÓN En la actualidad, en los proyectos de obtención de conocimiento basados en inteligencia de negocios (BI, por sus siglas en inglés), la validación del producto se realiza en las etapas finales de la implementación. Esto genera trabajos adicionales que inciden en los tiempos y recursos asignados al proyecto. Por tal razón, los procesos formales de verificación y validación tienen relevancia para mitigar estos riesgos en el proceso de construcción de productos BI. Según los autores Villamizar et al. [1], afirman que existe un faltante en las pruebas frente al ciclo de vida de los productos BI. De acuerdo a los autores Myers et al. [2], argumentan la existencia de un sinnúmero de modelos, prácticas y metodologías para apoyar el proceso de pruebas de software con un enfoque exclusivo a su ciclo de vida y no en el ciclo de vida de proyectos de minería de datos. La razón principal de las falencias detectadas en el proceso de pruebas en la construcción de productos BI, es la ausencia de instrumentos que faciliten la implementación de las actividades de verificación y va-
lidación en dicho proceso desde las etapas iniciales de la construcción del producto asociadas a los proyectos BI. Como alternativa de solución, esta investigación propone un proceso de pruebas para los proyectos de obtención de conocimiento con el objeto de mejorar la calidad de los productos finales, a través de un conjunto de actividades e instrumentos que faciliten el seguimiento sistemático y progresivo de los artefactos y productos generados durante la ejecución del proyecto. Para establecer un punto de referencia en el diseño del plan de pruebas, se instancian las etapas del ciclo de vida de proyectos BI propuestas por la metodología CRISP-DM (Cross Industry Standard Process for Data Mining), incorporando a las actividades planteadas un conjunto de entregables que permiten definir hitos en cada etapa para facilitar el proceso de verificación y validación. Esta definición de procesos durante la construcción y las pruebas permite una simetría que redundará positivamente en las variables del proyecto como tiempo, confiabilidad, usabilidad, pertinencia y costo. El artículo se estructura de la siguiente forma: en la sección 2 se exponen los materiales y métodos em-
Capítulo V, pp. 53 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
54
pleados en el desarrollo del proceso planteado; en la sección 3 se describen los resultados del desarrollo del proceso; en la sección 4 se presenta una discusión del trabajo, en la sección 5 las conclusiones y por último las referencias. II. MATERIALES Y MÉTODOS A. Materiales La obtención de conocimiento se logra en los datos que se encuentran consolidados en bases de datos analíticas o históricas, las cuales son alimentadas por diferentes fuentes de datos [3]. Este proceso se conoce como KDD (por su sigla en inglés: Knowledge Discovery in Data bases). El propósito está orientado a descubrir el conocimiento desde la información [4]. Darle valor a la información descubierta permite responder el porqué de los patrones que se generan desde los datos, es decir se les da significado [5]. El proceso de obtención de conocimiento debe ser probado en cada una de sus fases, al igual que en el desarrollo de software se prueban sus etapas con el fin de garantizar su calidad. Una prueba es un conjunto de actividades que tienen como propósito examinar un sistema de forma controlada [6]. En cualquier proceso de desarrollo de soluciones es necesario contar con un conjunto de actividades paralelas centradas en pruebas que permitan evaluar, desde diferentes aspectos y momentos, la funcionalidad de artefactos y componentes de sistemas [7]. Las buenas prácticas que involucran métodos y modelos para pruebas se orientan en soluciones de software, pero no en todas las etapas del ciclo de descubrimiento de conocimiento KDD [2]. Se considera una etapa, en la cual se hace verificación y validación a los modelos de minería generados por los algoritmos especializados que integran bases de datos, estadística e inteligencia artificial [8]. La verificación y validación tienen como propósito garantizar que el desarrollo de una solución sigue las etapas que la metodología específica indica, y que cumple con los objetivos trazados [9]. Para conocer las actividades específicas que se deben desarrollar en cada etapa del ciclo de vida de KDD, se siguen metodologías. La metodología indica
que se debe cumplir con cada fase en forma ordenada y sistémica [10], sin definir el cómo. B. Métodos Se siguen las etapas de la metodología CRISP-DM, la cual se ha convertido en un estándar internacional para proyectos de descubrimiento de conocimiento KDD [11]. El propósito es conocer en detalle la funcionalidad de cada fase del KDD, y proponer los artefactos de pruebas para cada una de ellas, especificando las técnicas de pruebas que las relacionan. La metodología CRISP-DM sigue seis etapas: La primera es la comprensión del negocio, la segunda es la comprensión de los datos. La tercera fase se denomina preparación de los datos. La cuarta etapa es el modelado. La quinta fase es la explotación. La sexta fase se denomina evaluación. La metodología consolida un proceso iterativo con los requisitos que facilita la mejora de cada fase durante su ejecución[12]. III. RESULTADOS Para definir un proceso de pruebas acorde con los proyectos BI, se plantea la siguiente metodología: • Especificar el ciclo de vida en proyectos BI, a partir de la metodología CRISP-DM [1]. • Identificar los requerimientos de verificación y validación en las actividades y activos de los proyectos de obtención de conocimiento [1]. • Definir los roles y artefactos del proceso de pruebas para proyectos de obtención de conocimiento. • Validar mediante un caso de estudio la aplicación del proceso de pruebas. Como parte de los resultados, los autores inicialmente describen las actividades y entregables que se desarrollan en cada una de las etapas del proceso de obtención de conocimiento, con el propósito de contrastar las actividades de verificación y validación definidas en la Figura 1. Por consiguiente, en el presente documento se describen las actividades y artefactos del proceso de pruebas con sus responsables. A. Actividades y Entregables de los Proyectos de Obtención de Conocimiento
Capítulo V, pp. 54 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
1. Comprensión del negocio (modelado de la organización): Se realiza la identificación de la organización y sus procesos. Se especifican las necesidades de acuerdo con las metas de la organización. Tabla 1. Actividades y entregables de la etapa “Modelado de la organización” Actividades Caracterizar la organización.
Entregables Elemento que identifica cada uno de los recursos que el equipo debe gestionar, producir y desarrollar para el logro de un proyecto de software.
Realizar una especificación de procesos y actividades Diagrama BPMN (notación relacionados con las nece- del modelado de procesos de sidades identificadas pre- negocio). viamente. Identificación del proble- Especificación de las variables ma, y alcance del mismo. (hechos y dimensiones) Hacer preguntas que per- Listado de preguntas relaciomitan especificar las nece- nadas con los requisitos o nesidades o alcance esperado. cesidades. Definir los Indicadores articulados con las necesidades y metas esperadas Listado de indicadores. por la organización, y que responden a las preguntas indicadas.
2. Comprensión de los datos (Extracción, fuentes): Se obtiene de las diferentes fuentes u orígenes (Bases de Datos) de la organización; las colecciones de datos necesarias para dar respuesta a las necesidades planteadas. Tabla 2. Actividades y entregables de la etapa “Extracción” Actividades
Entregables
Listado de las bases de datos Identificar las fuentes de da- operativas y transaccionales tos internas y externas (bases internas y externas que conde datos y sus formatos). tienen los datos necesarios para el análisis.
55
Actividades
Entregables
Formatos específicos comEspecificar el mapeo nece- puestos por variables (atrisario para obtener los datos butos o campos), para recibir desde las diferentes fuentes. los datos desde los diferentes orígenes. Definir las estrategias de extracción de datos, relacionando variables y criterios de búsqueda.
Scripts (consultas o vistas) que apuntan a los diferentes orígenes y extraen los datos específicos.
Realizar limpieza de datos a las diferentes colecciones Nuevos conjuntos o colecobtenidas desde las fuentes ciones de datos. internas y externas.
3. Modelado (Consolidación): Se consolidan los datos obtenidos de las diferentes fuentes, en una base de datos denominada Bodega de datos. Tabla 3. Actividades y entregables de la etapa “Consolidación” Actividades
Entregables
Se diseña e implementa la bodega de datos (Modelo estrella), donde Diseño de bodega de se especifican las dimensiones y los datos. hechos. Se especifican procedimientos necesarios para migrar los datos desde el Diccionario de la origen al destino (desde las fuentes a bodega. la bodega de datos). Durante este proceso se realiza una actividad que consiste en transforInforme de transformar los datos (tipos y longitudes), mación con el fin de garantizar la simetría y consistencia.
4. Explotación: Se realizan consultas a la bodega de datos con el fin de obtener información, y después de analizarla se obtiene conocimiento.
Capítulo V, pp. 55 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
56
Tabla 4. Actividades y entregables de la etapa “Explotación” Actividades
Entregables
Se determinan los criterios Consultas (scripts) con condipara definir las colecciones ciones para obtener la informade información desde la ción de la bodega. bodega de datos. Se especifican criterios de selección para las técnicas Listado con los criterios de la de análisis de información selección de técnicas. apropiadas. Validación de modelos.
Modelos generados.
5. Visualización: Se presentan los resultados procesados luego de aplicar diferentes técnicas de minería de datos. Para facilitar la interpretación de los modelos se utilizan interfaces gráficas que muestran la relación de las variables y dan significado a la información. Tabla 5. Actividades y entregables de la etapa “Visualización” Actividades
Entregables
Se especifican las interfaces para la visualización Informe de resultados. de los modelos obtenidos.
B. Proceso de Pruebas Propuesto De acuerdo con cada una de las etapas planteadas para el proceso de obtención de conocimiento, se propone un proceso de pruebas, teniendo en cuenta que las pruebas permiten al equipo del proyecto reducir el riesgo de fallas en el producto, mediante las actividades de verificación y validación en las fases del proyecto BI, a través de una adaptación continua y un cambio en los patrones de pruebas desde el punto de vista de los resultados [1]. En la Figura 1 se presenta el proceso propuesto y se especifica lo siguiente:
• Plan de pruebas: Documento base de la planificación que orienta la ejecución, con los lineamientos que se deben tener en cuenta para realizar las pruebas en todo el proceso de obtención de conocimiento. • Fases de obtención de conocimiento (color azul): Se presenta cada una de las fases con sus correspondientes artefactos (color gris). • La verificación y la validación como forma de pruebas: Son transversales a cada una de las actividades del proceso de obtención de conocimiento. • Las listas de chequeo y casos de prueba (color verde): Representan los artefactos que se generan de las pruebas (diseño y ejecución de las mismas) en cada una de las fases del proceso. • Las diferentes técnicas de pruebas que se pueden aplicar en cada una de las fases [13]: • Pruebas unitarias: El objetivo es probar las unidades más pequeñas de un componente específico, en este caso de los artefactos generados en extracción, consolidación y explotación. • Pruebas automáticas: Se elaboran para artefactos automáticos, específicamente para script de extracción de datos (en Extracción) y algoritmo de explotación. • Pruebas de integración: Se centran en verificar el ensamblaje correcto entre los distintos componentes, una vez que han sido probados unitariamente. • Pruebas de sistema: Son pruebas de integración del sistema completo. Permiten probar el sistema en su conjunto y con otros sistemas con los que se relaciona, para verificar que las especificaciones funcionales y técnicas se cumplen. • Pruebas de aceptación: Los usuarios prueban los métodos y resultados del proceso de obtención de conocimiento para establecer si está lista la toma de decisiones. • Pruebas de regresión: Se emplean a la hora de implementar cambios en todo el proyecto, con la finalidad de corroborar que todo el proceso del proyecto se sigue ejecutando con calidad, sin tener que modificar el núcleo (core) del mismo.
Capítulo V, pp. 56 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
57
Tabla 6. Actividades de pruebas y entregables de la etapa “Modelado de la organización” Actividades
Figura 1. Actividades del proceso de pruebas en proyectos para obtención de conocimiento C. Artefactos para el Proceso de Pruebas en Proyectos de Obtención de Conocimiento A continuación se presenta la propuesta de cada uno de los artefactos que se deben generar en el proceso de pruebas para proyectos de obtención de conocimiento. En cada una de las fases se especifican las actividades y los entregables. Adicional a esto, se plantea el diagrama de procesos específico para cada una de las fases del proceso de obtención del conocimiento.
Entregables
Diseñar la lista de chequeo para verificar la totalidad de la documentación (Características de la organización, Diagrama de pro- Lista de chequeo de docesos de la organización, cumentación. Especificación del problema, preguntas y variables, Especificación de indicadores). Diseñar casos de prueba para validar la consistencia Diseño de caso de prueba y completitud de la docuModelado de la organizamentación (Validar consisción. tencia entre indicadores y preguntas).
Para cada diagrama se especifican dos roles: • Diseñador de pruebas: Es el encargado de generar los artefactos que se ejecutarán para verificar o validar la prueba. Es quien diseña los lineamientos con los que se realizará dicha verificación y validación. • Ejecutor de pruebas: Es el encargado de corroborar que se están cumpliendo los objetivos especificados en los diseños de prueba. 1) Comprensión del negocio (modelado de la organización) Para el Modelado de la organización, en la Tabla 6 se presentan las diferentes actividades que se deben llevar a cabo para probar dicha fase, con sus correspondientes entregables. Asimismo, estas actividades se detallan en la Figura 2 con el proceso que se debe efectuar para llevarlas a cabo con un orden específico.
Figura 2. Proceso de pruebas del Modelado de la organización 2) Comprensión de los datos (Extracción, fuentes) Luego de especificar los indicadores, se deben establecer las fuentes u orígenes de datos que corresponden a los sistemas de información de la organización, y que guardan los datos (log de transacciones) necesarios para realizar BI. Estos datos son extraídos aplicando técnicas de ETL, y posteriormente se transformarán para ser consolidados en la bodega de datos.
Capítulo V, pp. 57 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
58
Para la Extracción de las fuentes, en la Tabla 7 se presentan las diferentes actividades que se deben realizar para verificar los artefactos generados en la fase de extracción, esto es, las bases de datos fuente y la ejecución del script. Estas actividades se detallan en la Figura 3, junto con el proceso en el que se especifican los diferentes pasos y las fuentes que se requieren para llevarlo a cabo. Tabla 7. Actividades de pruebas y entregables de la etapa “Extracción” Actividades
Entregables
Diseñar la lista de chequeo para verificar la Lista de chequeo de datos existencia de las bases de y variables. datos con sus correspondientes variables. Diseñar casos de prueba para validar la consistencia entre las variables y las fuentes de datos, y Diseño de caso de prueba, posterior a la extracción fuente y variables. de los datos se debe validar su calidad de acuerdo con los formatos. Verificar la funcionalidad Lista de chequeo de script del script de la extracción de extracción. de los datos. Verificación de la consistencia de los datos entre Lista de chequeo de exlas bases de datos fuente y tracción de datos. los datos extraídos.
Figura 3. Proceso de pruebas de la extracción
3) Modelado (Consolidación) Luego de transformar los datos y aplicar ETL, éstos son integrados en la bodega de datos. Durante el paso de los datos se debe garantizar su consistencia e integralidad. Esta actividad se soporta en las estructuras del origen y destino, verificando la simetría de las bases de datos origen y la base de datos destino. Para la Consolidación de las bodegas de datos, en la Tabla 8 y la Figura 4 se detallan diferentes actividades que verifiquen y validen la estructura tanto de la bodega como del diccionario de datos. Tabla 8. Actividades de pruebas y entregables de la etapa “Consolidación” Actividades Crear lista de chequeo para verificar la estructura de la bodega de datos con base en las fuentes. Diseñar casos de prueba para validar la consistencia y completitud de los datos migrados. Crear lista de chequeo para verificar la completitud del diccionario de datos.
Entregables Lista de chequeo de estructura de la bodega.
Diseño de caso de prueba de la consolidación.
Lista de chequeo del diccionario de datos.
Figura 4. Proceso de pruebas de la consolidación
Capítulo V, pp. 58 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
4) Explotación Para el proceso de Explotación de la información se requiere verificar las diferentes consultas y el algoritmo que generan los datos extraídos, con base en los diferentes indicadores para la obtención de conocimiento. Este proceso, se detalla en la Tabla 9 y la Figura 5. Tabla 9. Actividades de pruebas y entregables de la etapa “Explotación” Actividades Entregables Crear lista de chequeo para verificar la funcio- Lista de chequeo de connalidad y estructura de las sultas. consultas.
59
mación obtenida con base en los indicadores a partir de modelos específicos. En la Tabla 10 y la Figura 6 se especifican las actividades que se deben realizar para validar esta fase de la obtención del conocimiento. Tabla 10. Actividades de pruebas y entregables de la etapa “Visualización” Actividades
Entregables
Crear casos de prueba Caso de prueba de funciopara validar la funcionalinalidad. dad por medio de GUI.
Crear lista de chequeo para verificar la correcta configuración del algoritmo con Lista de chequeo de algobase en los parámetros de ritmo. la técnica y las características del proyecto. Crear casos de prueba para validar la funcionali- Caso de prueba de funciodad con base en los indi- nalidad. cadores.
Figura 6. Proceso de pruebas de la visualización IV. DISCUSIÓN El propósito del modelo de pruebas no solo se centra en garantizar la calidad de los datos, sino en asegurar el cumplimiento de los procesos asociados a las fases de construcción de los proyectos BI. En consecuencia, se plantea un modelo de pruebas que cubre los factores críticos asociados a la calidad del dato para las etapas del proceso de construcción del proyecto BI. En la Tabla 11 se describe el propósito de la verificación y validación propuesto por el modelo desarrollado en las fases de construcción del proyecto BI.
Figura 5. Proceso de pruebas de la explotación 5) Visualización: Como parte del proceso final de la obtención de conocimiento, se encuentra la visualización de la inforCapítulo V, pp. 59 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
60
Tabla 11. Propósito de las pruebas en el proceso de obtención de conocimiento Etapas del proceso Comprensión del negocio Comprensión de los datos
Extracción
Consolidación
Explotación
Visualización
Propósitos de las pruebas Validar la consistencia entre los requerimientos del cliente frente a los procesos de negocios de la organizacional [14]. Verificar la calidad de las fuentes de datos[15]. Verificar la consistencia de los datos. Verificar el análisis exploratorio y descriptivo de los datos. Validar la consistencia de los datos que integra la vista minable. Verificar la coherencia entre la selección de técnicas y el enfoque que se ha de usar. Clasificar el conjunto de datos para prueba y entrenamientos de los modelos. Validar la Consistencia entre los objetivos del proyecto y los resultados de los modelos propuestos. Establecer el nivel de calidad de los resultados de los patrones obtenidos frente a los indicadores para analizar. Establecer criterios de acceso a la funcionalidad. Validar el nivel de uso y desempeño de la solución BI.
El modelo de pruebas intenta mitigar riesgos identificados en la literatura, como: • Fuentes de datos inadecuadas para su explotación [16]. • Falta de Alineación con la estrategia de la organización [16]. • Falta de apoyo de la alta dirección [16]. • Falta de control de calidad en los procesos [16]. • No se tienen en cuenta las expectativas del usuario [17]. • No se involucra al usuario final en la construcción de la solución BI [18]. • No se cuenta con la participación de líderes funcionales por departamentos [18].
• La construcción de la solución no cuenta con una metodología de desarrollo de proyectos BI [19]. • Baja calidad en los datos [15]. V. CONCLUSIONES El propósito principal del artículo es definir un proceso de pruebas para proyectos de obtención de conocimiento, partiendo de los entregables del proceso estándar de construcción de productos BI. El proceso de pruebas define un conjunto de actividades que permiten verificar y validar los procesos y artefactos definidos en el proceso de construcción, y contribuye a la calidad del producto y del proceso involucrando instrumentos que integran los elementos esenciales de una solución BI, tales como: Estrategia organizacional, una metodología de construcción, control en la calidad de los datos y cumplimiento de las actividades asociadas a los procesos. En cuanto a trabajos futuros se tiene prevista la validación del modelo de pruebas a través de un caso de estudio en el contexto empresarial para mejorar el modelo propuesto. Tambien se plantea el desarrollo de un framework que permita garantizar las actividades de verificación y validación previstas en el modelo, así como la aplicabilidad del modelo. REFERENCIAS [1] K. Villamizar, D. Soto, J. Giraldo & J. Jiménez, “Modelo de pruebas en proyectos BI”, in 14 th LACCEI International Multi-Conference for Engineering, Education, and Technology: “Engineering Innovations for Global Sustainability”, San José de Costa Rica, pp. 2-9, 2017. [2] G. Myers, C. Sandler, T. Badgett. The art of software testing. Editorial John Wiley & Sons, 2011. [3] R. D. Lezcano, Minería de Datos. Universidad Nacional del Nordeste, 2002. [4] C. Bravo, S. Maldonado, R. Weber. Experiencias prácticas en la medición de riesgo crediticio de microempresarios utilizando modelos de credit scoring. Revista de Ingenierıa de Sistemas, vol. 24, n.º 1, pp. 69-88, 2010.
Capítulo V, pp. 60 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
61
[5] V. Valcárcel, “Data Mining y el descubrimiento de conocimiento”, Revista de la Facultad de Ingeniería Industrial. UNMSM, vol. 7 n.º 2, pp. 83-86, 2004.
[17] D. Sammon, P. Finnegan. “The ten commandments of data warehousing”, ACM SIGMIS Database, vol. 31, n.º 4, pp. 82-91, 2000.
[6] International Organization for Standardization, ISO/IEC/IEEE 24765 - Systems and software engineering -- Vocabulary. ISO/IEC/IEEE, 2010.
[18] S. Ko, S. Abdullaev. “A study on the aspects of successful business intelligence system development”, En International Conference on Computational Science. Springer, Berlin, Heidelberg, pp. 729732, 2007.
[7] J. Tuya, “El futuro estándar ISO/IEC 29119-Software Testing”, REICIS. Revista Española de Innovación, Calidad e Ingeniería del Software, pp. 33-35, 2009. [8] J. A. Cabrera Rodríguez, Bodega de Datos, Universidad Agraria de la Habana, 1998. [9] D. R. Wallace, R. Fujii, “Software verification and validation: An overview”, IEEE Software, vol. 6, n.º 3, pp. 10-17, 1989. [10] S. K. Chang and T. Shih, “Multimedia Software Engineering”, In Handbook of software engineering and knowledge engineering, World Scientific, 2001, pp. 615-637, 2001. [11] P. Britos. “Objetivos de negocio y procesos de minería de datos basados en sistemas inteligentes”, Reportes Técnicos en Ingeniería del Software, vol. 7, n.º 1, pp. 26-29, 2005. [12] O. Salcedo, R. Galeano, L. Rodríguez, “Metodología Crisp para la Implementación Data Warehouse”, Tecnura, vol. 14, n.º 26, pp. 35-48, 2010, Universidad Distrital Francisco José de Caldas. [13] L. Velásquez, Visión general del testing”, Cuaderno Activa, n.º 1, pp. 71-80, 2011. [14] J. Montilva, J. Barrios. “BMM: A business modeling method for information systems development”, The Clei Electronic Journal, vol. 7, n.º 2, 2004. [15] P. Baker, Z. R. Dai, J. Grabowski, I. Schieferdecker, C. Williams, “Model-Driven Testing: Using the UML Testing Profile”, Springer, 2008. [16] B. Wixom, H. Watson. “An empirical investigation of the factors affecting data warehousing success”, MIS quarterly, pp. 17-41, 2001.
[19] R. Weir, T. Peng, J. Kerridge. “Best Practice for Implementing a Data Warehouse: A Review for Strategic Alignment”, En DMDW, 2003. AUTORES Juan Camilo Giraldo. Profesor de tiempo completo del Tecnológico de Antioquia I.U. Es ingeniero de sistemas, magíster en Ingeniería y doctor en Ingeniería de Sistemas e Informática. Con más de 10 años de experiencia académica, ha sido catedrático a nivel de pregrado y posgrado en diferentes universidades de la ciudad de Medellín. Es investigador del grupo GIISTA del Tecnológico de Antioquia I.U. Darío Enrique Soto. Profesor asociado de tiempo completo del Tecnológico de Antioquia I.U. Es ingeniero de sistemas, magíster en Ciencias Computacionales y candidato a doctor en Ingeniería de Sistemas e Informática. Con más de 10 años de experiencia académica, ha sido catedrático en los niveles de pregrado y posgrado en diferentes universidades del país. Es investigador del grupo GIISTA del Tecnológico de Antioquia I.U. Katerine Villamizar. Profesora de tiempo completo del Tecnológico de Antioquia I.U. Es ingeniera de Sistemas y magíster en Ingeniería de Sistemas. Con más de 3 años de experiencia académica, ha sido catedrática en el nivel de pregrado en el Tecnológico de Antioquia. Ha trabajado en el sector productivo para garantizar la calidad de soluciones mediante pruebas de software. Es investigadora del grupo GIISTA del Tecnológico de Antioquia I.U.
Capítulo V, pp. 61 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
63
Capítulo VI PAQUETES Y PATRONES EN LA FORMACIÓN INICIAL DEL INGENIERO DE SOFTWARE Ricardo de J. Botero Tabares - rbotero@tdea.edu.co Tecnológico de Antioquia-I.U. Medellín, Colombia I. INTRODUCCIÓN Las ingenierías relacionadas con las ciencias de la computación, como las de sistemas, informática y de software, tienen asignaturas que cimientan la capacidad de análisis para la solución de problemas con algoritmos deterministas. En diferentes instituciones de educación superior (IES) que ofertan programas de ingeniería, dichas asignaturas han tomado diversas denominaciones: Fundamentos de Programación, Lógica de Programación I, Algoritmos I, Introducción a la Computación y algunos más, donde se trabaja de manera teórica o teórico-práctica bajo el modelo educativo presencial, o con las herramientas que ofrecen las Tecnologías de la Información y la Comunicación (TIC) bajo los modelos educativos semipresencial, presencial remoto o virtual. También otras ingenierías, como la industrial, electrónica y mecánica, incluyen alguna asignatura dentro de sus planes de estudio que permite a los estudiantes adentrarse en el mundo del desarrollo de software desde los primeros niveles de formación, con una menor profundización que las ingenierías computacionales, por tratarse de programas con otros intereses formativos específicos. Cabe preguntarse: ¿Cuál es la diferencia, o mejor aún, el valor agregado, de un primer curso de programación de ordenadores para ingenieros de software, respecto a un curso similar para ingenieros de sistemas, industriales, electrónicos o mecánicos? Este artículo responde el interrogante mediante una propuesta curricular para el curso Lógica de Programación I del programa Ingeniería en Software de la Facultad de In-
geniería del Tecnológico de Antioquia, primera IES en ofertar dicho programa en el país [1]. La propuesta es producto de dos proyectos del Grupo de Investigación en Ingeniería de Software del Tecnológico de Antioquia (GIISTA) [2] [3], en consonancia con otros trabajos donde se exponen argumentos que favorecen la enseñanza temprana del paradigma de programación orientado a objetos [4], y con tres proyectos de grado para optar al título de ingenieros de software del Tecnológico de Antioquia, relacionados con librerías de clases para lógica de programación [5], estructuras de datos lineales estáticas y dinámicas [6] y estructuras de datos no lineales [7], donde se proponen nuevas estrategias pedagógicas para el proceso docente educativo de los tecnólogos en sistemas e ingenieros de software, extensivas a las demás ingenierías anexas a las ciencias de la computación. Cabe anotar que el trabajo con paquetes y patrones de software se puede articular en otros programas académicos de ingeniería distintos a la ingeniería de software, por una sencilla razón: se pueden crear paquetes específicos reutilizables para las ingenierías electrónica, mecánica, química, ambiental, civil, etc., con los cuales se puede incentivar el aprendizaje de la programación. Sin embargo, el trabajo con patrones puede ser más pertinente para las ingenierías asociadas a las ciencias de la computación (de sistemas, informática, sistemas y computación, etc.), porque los patrones constituyen plantillas que promueven el desarrollo ágil de aplicaciones, es decir, la construc-
Capítulo VI, pp. 63 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
64
ción de software con patrones que se ajustan a cierto conjunto de problemas con requisitos comunes. Por lo anterior, la decisión de trabajar con paquetes y patrones en programas de ingeniería distintos a la ingeniería de software constituye una acción autónoma de los comités curriculares de cada programa. El artículo se encuentra estructurado de la siguiente manera: las secciones II y III resumen los aspectos generales de los paquetes de clases y los patrones de software, respectivamente; la sección IV es la más extensa, en ella se presenta el marco de trabajo para la solución de problemas con paquetes reutilizables y patrones de software; la sección V desarrolla dos ejemplos en los que se aplican patrones y se reutilizan paquetes, con una visión curricular semejante a la expuesta en clase presencial o virtual ante los estudiantes; finalmente, en la sección VI se presentan las conclusiones. II. PAQUETES O LIBRERÍAS DE CLASES Un paquete de clases equivale en el argot computacional a una librería, biblioteca o espacio de nombres, y el uso de uno u otro de estos términos depende del lenguaje de programación y el entorno de desarrollo utilizados. Un paquete es un conjunto de clases reutilizables que ofrecen servicios enfocados a suplir necesidades comunes de clientes y usuarios. Las clases de un paquete reutilizadas con asiduidad por la comunidad de desarrolladores de software reciben el apelativo de clases de uso común o clases de utilidad. Se debe anotar que los paquetes constituyen el fundamento de la ingeniería de software basada en componentes, que adquiere todo su furor productivo con los lenguajes orientados a objetos como Java y C#, por mencionar solo dos ejemplos de la extensa lista de lenguajes de programación soportados por dicho paradigma. Los paquetes de clases también son numerosos: basta con revisar la vasta progenie de la Application Program Interface (API) de Java o de los lenguajes que soporta la plataforma Visual Studio.Net: 1) El paquete javax.swing [8] proporciona un conjunto de componentes “ligeros” para el desarrollo de interfaces gráficas de usuario, dibujo de figuras e incrustación de imágenes, con sus clases JFrame, JLabel, JTextField, JButton, entre otras; la librería equivalente a javax.
swing en Visual Studio es System.Windows.Forms [9], con funcionalidad similar y clases correspondientes a las ya mencionadas: Form, Label, TextBox y Button. 2) El paquete java.sql [10] proporciona la API para acceder y procesar datos almacenados en una base de datos relacional, con su equivalente System.Data.Sql [11] de Visual Studio, y clases correspondientes para ambos entornos, y 3) un extenso etcétera de paquetes para entrada y salida de flujos de datos, cálculos aritméticos, trabajo con redes y aplicaciones distribuidas, esquemas de seguridad, manipulación de sonidos, comunicación entre objetos multilenguaje con la especificación CORBA, etc. Otras API disponibles en el mercado son las de Python [12] y GO [13]. III. PATRONES DE SOFTWARE Un patrón de software es un conjunto de clases que, por su estructura, semántica y relaciones, se acoplan para la solución mediante software de una determinada gama de problemas. Las primeras publicaciones sobre patrones las propuso el arquitecto Alexander [14], estudios que repercutieron en el área de la computación con los trabajos de Gamma et al [15] y Larman [16], quien aporta los Patrones Generales de Software para Asignar Responsabilidades (GRASP, por su sigla en inglés). Gabriel [17] afirma que “Cada patrón es una regla de tres partes, la cual expresa una relación entre un contexto dado, un conjunto de fuerzas que ocurren repetitivamente en ese contexto y cierta configuración de software que permite a esas fuerzas resolverse por sí mismas”. La cara opuesta de los patrones son los antipatrones, los cuales se deben evitar e identificar a partir de los primeros semestres de programas relacionados con las ciencias de la computación. Algunos antipatrones tienen nombres peyorativos que indican su ineficacia [18]: clase gorda, entrada chapuza, gran bola de lodo, reinventar la rueda cuadrada, entre una quincena de ellos; un marco comparativo entre los patrones y los antipatrones de software se presenta en [19]. IV. MARCO DE TRABAJO CON PAQUETES Y PATRONES La solución de problemas en ingeniería de software conlleva la reutilización de componentes de software
Capítulo VI, pp. 64 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
existente y probado (paquetes o librerías), o la aplicación de patrones de diseño, para lo cual se propone el siguiente marco de trabajo: A. Paquetes Reutilizables Iniciales (PRI) Los PRI son cuatro y se pueden aplicar con facilidad en un curso de lógica de programación para ingenieros de software; son ellos: lenguaje, geometría, ecuación y empresa, expuestos en la Tabla 1 con los conceptos de computación y clases que incluyen. Tabla 1. Paquetes Reutilizables Iniciales (PRI) Librería/ Conceptos
Clases que incluye
lenguaje/ clase; método estático; clases de utilidad; tipo de datos; entrada y salida estándar; senten- Consola cias de control; paráme- Math tros; procedimiento y fun- Cadena ción; constante; funciones aritméticas; métodos para manipular cadenas. geometría/ clase abstracta; herencia y polimorfismo; métodos constructores, de carga, de acceso y analizadores.
Figura Círculo Cuadrado Cono Cubo
EcuaciónLineal ecuación/ métodos estáEcuaciónCuadrática ticos. Número empresa/ relación de Empleado EmpleadoAsaasociación, herencia, lariado métodos. EmpleadoADestajo
Las librerías de clases para fundamentos de programación pretenden que el estudiante de ingeniería de software se familiarice, desde las primeras instancias de su proceso formativo como profesional, con algunos conceptos importantes en el mundo de hoy para todo analista-desarrollador: el análisis de problemas, la correspondiente representación gráfica de la solución mediante un diagrama de clases y la escritura de pseudocódigo como preámbulo a la edición de código
65
puro en un lenguaje orientado a objetos. Este proceso formativo conlleva el estudio de los conceptos objeto y clase, los cuales implican la profundización de otros como: atributo, método, visibilidad o alcance, clase de uso común o utilidad, tipo de dato, sentencias de control, relaciones entre clases (solo asociación y dependencia), reutilización de clases y clase Programa (esta última no reutilizable, pues contiene el método principal() – o main()–, punto de entrada utilizado por el compilador o intérprete para iniciar la ejecución de una aplicación). El concepto de método lleva a la diferenciación entre el término general “algoritmo” y otros equivalentes utilizados a lo largo de la historia de la programación, tales como: rutina, subrutina, programa, subprograma, procedimiento y función. Además, se identifican los servicios que prestan los métodos constructor, de carga, de acceso y analizador; un método analizador implica el paso de parámetros y el trabajo con las sentencias de control, variables, constantes, operadores y expresiones. El concepto de clase permite el estudio de los diagramas de clase y de las relaciones de asociación y dependencia, preámbulo para el estudio del Lenguaje Unificado de Modelado – UML [20] que se profundiza en cursos superiores de ingeniería de software. Las librerías de clases para un curso de lógica de programación o para cualquier asignatura similar en educación superior, se implementan con facilidad en versiones recientes de Entornos Integrados de Desarrollo (IDE) como NetBeans, Eclipse y Visual Studio. Net, lo cual facilita la realización de prácticas de programación, apoyando en gran medida el desarrollo ágil de aplicaciones. A continuación se hace una breve descripción de cada paquete. 1) Paquete lenguaje Este paquete es importado por defecto, es decir, siempre se encuentra disponible aunque se omita su inclusión; su estructura se presenta en la Figura 1. Lenguaje constituye el primer paquete de clases que se debe tratar en el microcurrículo de un curso de iniciación a la programación, porque contiene las clases de utilidad o de uso común Consola, Math y Cadena.
Capítulo VI, pp. 65 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
66
Las clases Consola y Programa son omnipresentes para todo proyecto, ya que se requieren en la solución de cualquier tipo de problema.
Figura 1. Estructura del paquete lenguaje1 Es importante anotar que todos los métodos del paquete lenguaje son estáticos, lo cual permite invocarlos a través del nombre de la clase a la que pertenecen, sin necesidad de instanciar objeto alguno. Enunciados clásicos y triviales, pero que se deben tratar en el proceso docente educativo de la programación de ordenadores, son:
Una muestra de seis problemas típicos que se pueden plantear para este paquete es la siguiente: 1. Imprimir el área y el perímetro de un círculo cuyo radio mide 12.7 mm. 2. Ingresar el radio de un círculo; mostrar su área. 3. Crear un cuadrado cuyo lado se da en metros. Mostrar su área y perímetro, además del volumen del cubo que genera. 4. Ingresar 100 círculos y 200 cuadrados. Por cada figura ingresada imprimir su área; al final mostrar las áreas promedio por cada tipo de figura. 5. Crear n conos, de los cuales se conoce el radio de su base y la altura. Mostrar el volumen de cada cono y el radio y altura que generaron el máximo volumen. El valor de la variable n lo ingresa el usuario. 6. Crear una cantidad desconocida de círculos, sobre los cuales se conoce su radio y coordenadas del centro. ¿Cuántos círculos se generaron desde un mismo centro? Para dos círculos con coordenadas de centro distintas, ¿cuál es la distancia mínima que los separa?
1. Mostrar el mensaje “Hola mundo” 2. Ingresar dos números enteros y mostrar el mayor o un mensaje que indique igualdad. 3. Imprimir los primeros 100 números naturales. 4. Mostrar el dato mayor entre 100 números enteros ingresados por el usuario. 5. Mostrar los primeros n términos de la serie de Fibonacci. 2) Paquete geometría El paquete geometría, expuesto en la Figura 2, contiene la clase abstracta Figura, de la cual heredan las clases Círculo y Cuadrado, que a su vez originan Cono y Cubo. Este sistema de herencia simple permite el estudio de conceptos básicos para la programación orientada a objetos, como la visibilidad (pública y privada), la sobrecarga de métodos, el polimorfismo y los métodos constructores (tienen el mismo nombre de la clase), de carga (con prefijo set), de acceso (con prefijo get) y analizadores (como los métodos polimórficos calcularArea(), mostrarPerímetro() y calcularVolumen()). 1 Los diagramas de clases expuestos en el presente capítulo fueron desarrollados con el programa Dia, software libre disponible en http:// live.gnome.org/Dia
Figura 2. Estructura del paquete geometría Otros problemas para proponer se podrían enfocar sólo a la escritura de los métodos analizadores, verbi gratia: “Escriba el seudocódigo del método calcularVolumen() de la clase Cono”.
Capítulo VI, pp. 66 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
3) Paquete ecuación En la Figura 3 se presenta la librería ecuación que contiene tres clases: EcuaciónLineal, EcuaciónCuadrática y Número. Como su nombre lo indica, las dos primeras se utilizan para gestionar la solución de ecuaciones lineales y cuadráticas, mientras que la tercera contiene métodos que permiten determinar sin un número entero es primo, pertenece a la sucesión de Fibonacci, es perfecto o corresponde a un número amigo de otro dado como parámetro. Las clases del paquete ecuación son independientes entre sí y no presentan relaciones como la de herencia, inmersa en el paquete geometría. Es de anotar que el método sumar() conlleva un polimorfismo exento de herencia, pues maneja un parámetro tipo EcuaciónLineal o EcuaciónCuadrática, según la clase donde se defina, y retorna un objeto de estos mismos respectivos tipos que genera dependencias recursivas.
67
raíces imaginarias? Tener en cuenta que el método hallarRaíces() retorna verdadero si las raíces son reales o falso, si son imaginarias. 3. Ingresar dos ecuaciones cuadráticas de la forma ax2 + bx + c = 0. Mostrar la suma de ambas ecuaciones. 4. Ingresar un número entero. Indicar si se trata de un número primo, un número de Fibonacci o un número perfecto. 5. Mostrar los primeros 10 números de Fibonacci que sean primos y los 10 primeros números perfectos. Como en el caso del paquete geometría, se pueden plantear problemas tendientes a escribir el seudocódigo para cada uno de los métodos analizadores de las clases del paquete ecuación. 4) Paquete empresa La estructura del paquete empresa se expone en la Figura 4, donde se observa la clase base abstracta Empleado y dos clases derivadas: EmpleadoAsalariado y EmpleadoADestajo, las cuales contienen un método polimórfico denominado calcularSalario(). La clase EmpleadoADestajo contiene un atributo público constante: PAGO_UNIDAD, cuyo valor figurativo es 47892.05.
Figura 3. Estructura del paquete ecuación Cinco problemas típicos para esta librería son: 1. Mostrar las raíces de la ecuación lineal 7x – 3 = 0 y de la ecuación cuadrática 5x2 – 12x + 8 = 0. 2. Hallar la solución de un sistema de n ecuaciones cuadráticas de la forma ax2 + bx + c = 0, donde el valor de n y los coeficientes de cada ecuación se ingresan vía consola. ¿Cuántas ecuaciones tienen
Figura 4. Estructura del paquete empresa Una lista de problemas típicos para el paquete empresa es la siguiente: 1. ¿Cuál es el salario del empleado asalariado Alan Turing que trabajó 30 horas pagadas a €25 y de la empleada a destajo Ada Byron que produjo 50 unidades?
Capítulo VI, pp. 67 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
68
2. Ingresar los datos completos de 100 empleados asalariados. Imprimir un listado con la cédula y el salario de cada empleado, además de las cédulas y nombres de quienes devengan el mayor salario. 3. Escriba un método que reciba como parámetros dos vectores de objetos, el primero de tipo EmpleadoAsalariado y el segundo de tipo EmpleadoADestajo. Mostrar la cédula y el salario de todos los empleados y el salario promedio por cada tipo. 4. Para la clase EmpleadoAsalariado, escriba el método calcularSalario() con las siguientes restricciones: si la cantidad de horas trabajadas sobrepasa de 40, se consideran horas extras, las cuales se pagan con un incremento del 10% respecto a la hora normal. Se debe destinar un 2% del salario bruto para ahorro navideño, valor que es devuelto como parámetro. El método debe retornar el salario neto devengado. 5. Escriba un método que reciba una lista ligada de empleados a destajo. Mostrar el nombre y el salario de cada empleado y la cantidad de empleados que devengan un salario inferior a una cantidad establecida por el usuario. B. Paquetes Reutilizables para Estructuras de Datos (PRED) Los PRED son cinco: Arreglos, listasDeAccesoRestringido, listasLigadas, árbolesBinarios y grafos, resumidos en la Tabla 2 con los conceptos y clases que incluyen. Estos paquetes tienen aplicación en un curso de estructuras de datos o de lógica de programación avanzada. Tabla 2. Paquetes Reutilizables para Estructuras de Datos (PRED) Paquete/ Conceptos arreglos/ estructura de datos estática; arreglo unidimensional o vector; arreglo bidimensional o matriz; operaciones sobre arreglos.
Clases que incluye Vector Matriz
Paquete/ Conceptos
Clases que incluye
listasDeAccesoRestringido/ funcionamiento de una pila (LIFO); funcionamiento de una cola (FIFO); tipos de colas; operaciones sobre pilas y colas.
Pila Cola ColaDePrioridad Deque
ListaLigadaSimple listasLigadas/ manejo di- ListaLigadaSimpleCircular ListaLigadaDoble námico de memoria; referencia a un nodo; tipos de ListaLigadaDobleCircular Nodo listas ligadas. NodoDoble árbolesBinarios/ estructura de datos no lineal; ArbolBinario operaciones sobre árboles NodoAB binarios, árbol binario de ABB búsqueda, árbol balanceaAVL do. grafo/ representación de un grafo en memoria; Grafo operaciones sobre un graVértice fo; algoritmos de Dijkstra, ListaAdy Prim y Kruskal.
Las clases de los paquetes PRED están disponibles en los lenguajes de programación orientados a objetos, con los identificadores ingleses Vector, Stack, Queue, Node, LinkerList, etc. Por tanto, los paquetes PRED constituyen un preámbulo conceptual para la comprensión de las clases de utilidad relacionadas con las estructuras de datos internas, detalladas a continuación. 1) Paquete arreglos Este paquete permite la solución de problemas donde apliquen las estructuras de datos lineales y estáticas Vector y Matriz; su estructura o configuración se presenta en la Figura 5. Las clases de los PRED contienen métodos constructores, de carga, de acceso y analizadores, que las responsabilizan de ciertos servicios para los usuarios que las requieran. Por ejemplo, la clase Vector es responsable de almacenar datos del mismo tipo en una estructura de datos unidimensional y estática, y presta
Capítulo VI, pp. 68 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
varios servicios: ingreso, eliminación, búsqueda, modificación y ordenamiento de datos; la clase Matriz es responsable de almacenar datos del mismo tipo en una estructura de datos bidimensional y estática, y presta los servicios de inserción y eliminación de filas y columnas, búsqueda de elementos, multiplicación de matrices y producto por un escalar.
69
• ¿Cuántos estudiantes ingresaron y cuál es la nota promedio del grupo? • ¿Cuántos estudiantes obtuvieron una nota superior a la promedio? • ¿Cuáles son los nombres de los mejores estudiantes? 5. Implementar los métodos analizadores de las clases Vector y Matriz. 2) Paquete listasDeAccesoRestringido La Figura 6 expone la configuración del paquete listasDeAccesoRestringido, donde se observan las clases Cola, con sus derivadas ColaDePrioridad y Deque, y la clase Pila.
Figura 5. Configuración del paquete arreglos Algunos problemas que se pueden resolver con el paquete arreglos son: 1. Ingresar una cantidad conocida de números reales. Imprimir: • El listado de valores ingresados, ordenado de forma ascendente. • La moda, es decir, el dato que más se repite. 2. En las elecciones para alcalde de una ciudad dividida en siete zonas, se presentan cuatro candidatos. Ingresar la cantidad de votos obtenidos por los diferentes candidatos en cada zona, y mostrar un informe con el total de votos por candidato y por zona y un mensaje que indique cuál fue el candidato ganador, es decir, el que obtuvo más votos. Si se presentan empates, se debe convocar a nuevas elecciones. 3. Escribir un algoritmo que reciba como parámetros dos matrices m1(m * n) y m2(n * p). Retornar la matriz resultado de m1 * m2. 4. Ingresar una cantidad desconocida de estudiantes universitarios, de los cuales se conoce su nombre y nota promedio semestral. Responder los siguientes interrogantes:
Figura 6. Configuración del paquete listasDeAccesoRestringido Algunas situaciones para resolver mediante el paquete listasDeAccesoRestringido son las siguientes: 1. Escribir un método que acepte como parámetro un vector de objetos y retorne una pila con los elementos del vector. 2. Hay un banco con dos cajeros, uno con experiencia y otro inexperto. El tiempo promedio de transacción para el nuevo cajero es el doble que el del cajero experimentado. Escriba un algoritmo para dirigir a los clientes al cajero apropiado, de tal forma que el tiempo promedio de espera sea igual en ambas colas [21].
Capítulo VI, pp. 69 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
70
3. Implemente una función que reciba una cola como parámetro y que la retorne invertida. 4. Leer una expresión en notación infija y mostrarla en notación posfija. 5. Escriba una rutina que imprima en orden inverso los elementos de una lista enlazada. Para hacerlo, recorra la lista copiando cada elemento en una pila. Cuando alcance el fin de la lista enlazada, extraiga repetidamente el tope hasta que la pila quede vacía [22]. 3) Paquete listasLigadas Esta librería de clases maneja relaciones de herencia y agregación, como se muestra en la Figura 7. La herencia se evidencia porque ListaLigadaSimpleCircular y ListaLigadaDoble son clases derivadas (o subclases) de la clase base (o superclase) ListaLigadaSimple; de igual manera, la clase ListaLigadaDobleCircular hereda de ListaLigadaDoble, haciendo que esta última sea superclase y subclase al mismo tiempo. La relación de agregación se evidencia porque la clase ListaLigadaSimple está compuesta por cero o más elementos de la clase Nodo, así como la clase ListaLigadaDoble se compone de un conjunto de cero o más elementos de la clase NodoDoble.
1. Ingresar una cantidad desconocida de números enteros y almacenarlos en una lista ligada; mostrar el conjunto de datos ingresados ordenados de menor a mayor. 2. Generar de manera aleatoria los lados de una cantidad conocida de cubos y almacenarlos en una lista ligada simple. Mostrar por cada cubo la longitud del lado y su volumen. Unidad de medida: milímetros. 3. Ingresar un sistema de n ecuaciones cuadráticas y almacenarlas en una lista doble circular. La variable n corresponde a un entero digitado por el usuario. Mostrar cada ecuación con sus respectivas raíces. 4. Almacenar en una lista encadenada simple circular los primeros diez números perfectos; mostrarlos e indicar si alguno de ellos corresponde a un número de Fibonacci. 5. Un número es perfecto cuando la suma de sus divisores, exceptuando él mismo, es igual al número. Por ejemplo, 6 y 28 son números perfectos, porque: 6 = 1+2+3 y 28 = 1+2+4+7+14. 6. Ingresar n empleados asalariados y m empleados a destajo, almacenando los datos de cada tipo de empleado en dos listas ligadas simples independientes. Imprimir el nombre, cédula y salario de cada empleado. 4) Paquete árbolesBinarios El paquete árbolesBinarios consta de las clases ArbolBinario, ABB (Árbol Binario de Búsqueda), AVL (Árbol Binario Balanceado), NodoAB y NodoAVL, relacionadas entre sí con tres generalizaciones y dos composiciones, como lo indica la Figura 8.
Figura 7. Configuración del paquete listasLigadas Para el paquete listasLigadas se pueden plantear variedad de problemas, algunos donde se requiera la reutilización de paquetes PRI:
Figura 8. Configuración del paquete árbolesBinarios
Capítulo VI, pp. 70 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
La configuración del paquete árbolesBinarios se puede ampliar para incluir otros tipos de árboles: ArbolB, ArbolBMás, ArbolDeSintaxis, ArbolN_ario, Arbol1-2-3, entre otros. Para la jerarquía presentada en el paquete, se pueden plantear ejercicios como los siguientes: 1. Crear un árbol binario con números aleatorios enteros entre 1 y 99. Imprimir los datos del árbol, indique cuáles son hojas y cuáles son nodos internos, además, imprimir el valor promedio de los nodos. 2. En un árbol binario se ha guardado la información genealógica de una persona dada P. Para almacenar los datos se tuvo en cuenta el siguiente criterio: “La rama izquierda de cada nodo almacena los datos de la madre de P y la rama derecha almacena los datos del padre de P”. Este criterio vuelve a aplicarse para guardar los datos genealógicos de la madre y el padre de P, lo que nos lleva a una formulación recursiva del problema. Escriba un método que imprima el nombre de todos los progenitores femeninos de P. [23] 3. Escriba el método balancear (int) de la clase AVL, el cual balancea un árbol binario según el valor del parámetro del método: 1, 2, 3 o 4, para los balanceos izquierda-izquierda, izquierda-derecha, derecha-derecha y derecha-izquierda, respectivamente. 4. Escriba una función para generar el árbol AVL de altura h con el menor número de nodos. ¿Cuál es el tiempo de ejecución de su función? [24] 5. Escriba un procedimiento que recorra un árbol binario por nivel. Es decir, primero se visita la raíz, luego los hijos inmediatos de la raíz, después los nietos de la raíz, etc. (Sugerencia: use una cola) [25]. 5) Paquete grafos El paquete grafos expuesto en la Figura 9 contiene las clases Grafo, Vértice y ListaAdy. Maneja relaciones de agregación porque un grafo está compuesto por vértices y aristas, cuyos pesos se pueden representar en una matriz o en una lista ligada de adyacencias; además, este paquete utiliza los servicios de otras dos librerías (árbolesBinarios y listasLigadas), dado que los algoritmos de Prim [26] y Kruskal [27] retornan el árbol de expansión mínimo de un grafo y la representación del grafo en lista ligada de adyacencias conlleva
71
la reutilización de la clase ListaLigadaSimple. Otro algoritmo importante sobre grafos es el de Dijkstra [28], el cual no reutiliza servicios de librerías externas pero tiene amplia aplicación en el sector productivo, dado que permite hallar los costos de los caminos mínimos desde un vértice a todos los demás vértices del grafo. Es de anotar que la clase Grafo representa tanto a un grafo dirigido como no dirigido, porque los valores implícitos en la matriz o en la lista ligada de adyacencias hacen que sea de uno u otro tipo.
Figura 9. Configuración del paquete grafos Algunos ejercicios propuestos sobre grafos son los siguientes: 1. Escriba la función hayCaminoSimple(Object, Object) de la clase Grafo, la cual devuelve true si hay camino entre las dos claves de vértices pasadas como parámetros, o retorna false en caso contrario. Sobrecargar esta función de tal manera que retorne el costo del camino más corto; si no hay camino, la función debe retornar cero (0). 2. Un problema típico de grafos es la simulación de movimiento sobre su estructura. Suponga que en un grafo hay dos fichas, cada una ocupando un vértice. En un movimiento cada una de las fichas debe avanzar una posición utilizando un arco. El objetivo del juego es llegar a una posición final dada, con la restricción de que en ningún momento las dos fichas pueden ocupar el mismo vértice. Suponiendo que comienza jugando la ficha 1, desarrolle una función que determine el ganador del juego [29].
Capítulo VI, pp. 71 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
72
3. Una reducción transitiva de un grafo dirigido G = (V, A) es cualquier grafo G’ con los mismos vértices pero con la menor cantidad de arcos posible, de modo que el cierre transitivo G’ es el mismo que el de G. Demuéstrese que si G es un grafo dirigido acíclico, la reducción transitiva de G es única [30]. 4. Para las dos formas de representación de un grafo, elabore algoritmos para determinar si un grafo no dirigido tiene ciclos o no [31]. 5. Un grafo no dirigido G = (V, A) se denomina bipartito si V puede ser dividido en dos conjuntos disjuntos V1 y V2, tales que toda arista de A une un nodo de V1 con un nodo de V2. Desarrollar un algoritmo de tiempo O(V + A) para determinar si un grafo no dirigido es bipartito [32]. C) Patrones Iniciales para el Diseño de Software (PIDS) Los PIDS son cuatro: Genérico, Método Estático, Nueva Abstracción y Combinado, descritos en la Tabla 3. Tabla 3. Patrones Iniciales para el Diseño de Software (PIDS) Patrón
Descripción
Genérico
Permite la solución de cualquier tipo de problema. Se recomienda este patrón en la solución de problemas que conlleven uso de funciones aritméticas o procesamiento de cadenas.
Método Estático
Aplica en la solución de problemas con métodos estáticos, donde no se instancian objetos.
Nueva Abstracción
Conlleva la creación de tipos de datos abstractos del ámbito del problema y la instanciación de objetos.
Combinado
Combinan patrones y paquetes (patrones PIDS y paquetes PRED y PRI).
Cada patrón se puede utilizar para la solución de problemas en múltiples contextos, los cuales se resuelven dentro del método main() de la clase Programa, que se sirve de la clase Consola para controlar las entradas y salidas.
1) El Patrón Genérico Este patrón, ilustrado en la Figura 10, es aplicable a cualquier tipo de situación; se recomienda para problemas simples donde sólo intervengan la clase Programa y el paquete lenguaje.
Figura 10. Patrón Genérico Algunos problemas en los que se aplica el patrón Genérico son: 1. Ingresar tres nombres y mostrarlos en orden alfabético. 2. Mostrar los n primeros términos de la sucesión de Fibonacci, dada por: 0, 1, 1, 2, 3, 5, 8, 13, 21, etc. El valor de n se ingresa por teclado. 3. El número e corresponde a la constante de Napier o número de Euler, y tiene un valor aproximado de 2.71828. Hallar una aproximación de ex, por la siguiente serie derivada del teorema de Taylor [33]: 1+ x + x2/2! + x3/3! + x4/4! + …xn/n!. El valor del exponente x se lee por consola. 4. Mostrar el resultado de la sumatoria:
5. Mostrar el resultado de la productoria: donde la variable x es un número entero ingresado por el usuario. 2) Patrón Método Estático El patrón Método estático de la Figura 11 puede contener uno o más atributos de un tipo de datos es-
Capítulo VI, pp. 72 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
tándar como int, double, char, string o bool, y conlleva el uso de métodos estáticos, entre los cuales se destaca el método main().
73
Algunos problemas donde aplica el patrón Nueva Abstracción son: 1. Mostrar las raíces de una ecuación cuadrática de la forma ax2 + bx + c = 0. Los coeficientes a, b y c corresponden a números enteros leídos por consola. Sugerencia: trabajar con objetos. 2. Ingresar dos ecuaciones cuadráticas de la forma ax2 + bx + c = 0. Imprimir las raíces de cada ecuación y la suma de las ecuaciones iniciales.
Figura 11. Patrón Método Estático Un método estático se responsabiliza de alguna tarea. Los problemas donde aplica este patrón de software por lo regular son extensos y se solucionan sin la instanciación de objetos; dos ejemplos de estos problemas son: 1. Ingresar un número entero n. Imprimir el resultado de la sumatoria, 2. Presentar un menú en pantalla con las siguientes opciones: • Ingresar código y precio de un producto. • Mostrar la cantidad de productos ingresados, el acumulado total por concepto de precios y el precio promedio. • Dado el código de un producto, eliminarlo. • Finalizar. 3) El Patrón Nueva Abstracción
3. De los productos de un almacén se conoce su código, precio y color (1: amarillo, 2: azul, 3: rojo). Ingresar 100 productos y mostrar: • Los códigos de los productos más caros. • El precio promedio de todos los productos. • El porcentaje de productos por cada color. 4. Dado un tiempo expresado en horas, minutos y segundos, mostrar el tiempo del próximo segundo. 5. Dados dos tiempos en horas, minutos y segundos que representan la partida y llegada de un viaje, indicar cuál fue su duración. 4) Patrón Combinado El patrón Combinado, que se expone en la Figura 13, es el más completo de todos, dado que combina los demás patrones ya definidos, y puede aplicar para problemas complejos o extensos que se pueden proponer en prácticas de laboratorio para realizar en una o varias semanas.
El patrón Nueva Abstracción, expuesto en la Figura 12, tiene aplicación cuando surgen clases del ámbito del problema o tipos abstractos de datos durante el proceso de análisis; en este caso se requiere el uso de objetos.
Figura 12. Patrón Nueva Abstracción
Figura 13. Patrón Combinado
Capítulo VI, pp. 73 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
74
Un problema típico para este patrón es el siguiente [34]:
A. Problema Resuelto con el Paquete Ecuación y el Patrón Combinado
Se quiere construir un programa para administrar los vuelos de una aerolínea que parten de Bogotá hacia las demás ciudades del mundo. El sistema debe ser capaz de manejar cualquier cantidad de ciudades y cualquier número de vuelos hacia ellas. La aerolínea sólo maneja un tipo de avión, el cual tiene 15 filas (de la 0 a la 14) con cinco sillas cada una. Las sillas se encuentran identificadas por el número de la fila en la que se encuentran y por una letra de la ‘A’ a la ‘E’ (por ejemplo, la silla “7C”). Para administrar la información de las ciudades y vuelos existen tres requerimientos funcionales: (1) Agregar una nueva ciudad de destino, para lo cual se debe suministrar un nombre y unas coordenadas sobre el mapa. (2) Eliminar una ciudad, la cual debe ser señalada por el usuario sobre el mapa. (3) Agregar un vuelo desde Bogotá hacia una de las ciudades de destino ya definidas. Para esto el usuario debe señalar la ciudad en el mapa y dar un código para el vuelo, que debe ser único, lo mismo que una fecha y una hora.
Hallar la solución de un sistema de n ecuaciones cuadráticas de la forma ax2 + bx + c = 0, donde el valor de n y los coeficientes de cada ecuación se ingresan vía consola. ¿Cuántas ecuaciones tienen raíces imaginarias? Tener en cuenta que el método hallar Raíces() retorna verdadero si las raíces son reales o falso, si son imaginarias.
Desde el punto de vista del usuario que va a realizar una reserva, hay tres opciones: (4) Listar todos los vuelos existentes a una ciudad de destino dada, ordenados por fecha y hora. (5) Presentar la información de un vuelo particular. En este caso se deben mostrar todas las sillas ocupadas y disponibles del vuelo, además del porcentaje libre del mismo. (6) Hacer una reserva de un vuelo. En esta opción el usuario debe dar la ciudad de destino, el vuelo, la identificación de la silla que quiere reservar, el nombre del pasajero y su número de identificación. Finalmente, desde el punto de vista del encargado de seguridad de la aerolínea, hay una opción que le permite generar un archivo con el manifiesto de embarque, en el cual aparece la información de cada uno de los pasajeros que van a viajar. V. DOS PROBLEMAS RESUELTOS En esta sesión se presentarán dos problemas resueltos que ilustran el uso de paquetes y patrones planteados en la sesión del marco de trabajo.
Solución: 1) Análisis El análisis conlleva la interpretación del problema por el analista, quien identifica las posibles entradas de datos, el proceso y la salida o resultados. El proceso cubre la descripción de la solución en lenguaje natural, donde se identifican posibles componentes para reutilizar, valga decir, paquetes o librerías, y se define el patrón de la solución. Para este problema: • Entrada: la cantidad de ecuaciones cuadráticas a procesar (n) y por cada ecuación la terna de coeficientes cuadrático, lineal y término independiente (a, b y c). • Salida: las raíces de cada ecuación cuadrática y la cantidad de ecuaciones con raíces imaginarias. • Proceso: 1. Declarar variables locales e inicializar contador de ecuaciones con raíces imaginarias. 2. Ingresar la cantidad de ecuaciones para solucionar. 3. En un ciclo, ingresar las n ecuaciones cuadráticas y mostrar sus raíces. Tener en cuenta que se debe actualizar el contador de ecuaciones con raíces imaginarias. 4. Mostrar el contador de ecuaciones con raíces imaginarias. • Paquetes para reutilizar: lenguaje y ecuación. • Patrón de diseño de la solución: Combinado. 2) Diagrama de clases El diagrama de clases muestra una solución gráfica del problema, mediante el modelado estático con diagrama de clases que cumple las reglas semánticas del Lenguaje de Modelado Unificado (UML). El diagra-
Capítulo VI, pp. 74 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
ma para esta situación consta de tres clases: Programa, EcuaciónCuadrática y Consola, según se aprecia en la Figura 14.
75
Tabla 4. Pseudocódigo de la clase Programa
Figura 14. Diagrama de clases para el problema de las ecuaciones cuadráticas El analista también puede plantear un diagrama de clases conceptual, donde sólo se especifican las clases sin la necesidad de describir sus atributos y métodos, como se indica en la Figura 15, donde se aprecia el objeto ec tipo EcuaciónCuadrática, que en tiempo de ejecución cambiará n veces su estado.
Figura 15. Diagrama de clases conceptual para el problema de las ecuaciones cuadráticas 3) Seudocódigo El seudocódigo es un texto que guarda similitud con el código de un lenguaje de producción como Java o C#. Para este caso, sólo se realizará el seudocódigo de la clase Programa, dado que las clases Consola y EcuaciónCuadrática son componentes reutilizables, es decir, ya se encuentran desarrollados y probados. Es de observar que las palabras reservadas del seudocódigo se encuentran en negrita, como se observa en la Tabla 4. el recuadro siguiente:
En el seudocódigo anterior se debe resaltar la primera línea, donde se importa o incluye el paquete ecuación; vale recordar que el paquete lenguaje se importa por omisión. Además, el método mostrarRaíces() de la clase ecuaciónCuadrática() imprime las raíces de la ecuación o muestra el mensaje “Raíces imaginarias”, retornando a la vez un valor booleano. B. Problema Resuelto con los Paquetes Geometría y ListasLigadas, con Aplicación del Patrón Combinado Generar de manera aleatoria los lados de una cantidad conocida de cubos y almacenarlos en una lista ligada simple. Mostrar por cada cubo la longitud del lado y su volumen. Unidad de medida: milímetros.
Capítulo VI, pp. 75 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
76
3) Seudocódigo
Solución:
Tabla 5. Pseudocódigo de la clase Programa
1) Análisis • Entrada: la cantidad de cubos para procesar. • Salida: Por cada cubo, la longitud de su lado y su volumen. • Proceso: 1. Declarar variables locales e inicializar el contador de cubos. 2. Ingresar la cantidad de cubos para procesar. 3. Crear dos objetos: uno de tipo ListaLigadaSimple y otro de tipo Cubo. 4. Dentro de un ciclo, generar números aleatorios que representan la longitud del lado para cada uno de los cubos. A medida que se crea un cubo, agregarlo a la lista ligada y contabilizarlo. 5. Por fuera del ciclo, invocar un método estático que imprime las longitudes y áreas para cada cubo. • Paquetes a reutilizar: lenguaje, geometría y listasligadas. • Patrón de diseño de la solución: Combinado. 2) Diagrama de clases El diagrama de clases para este problema se presenta en la Figura 16, donde se observan los tres paquetes para reutilizar (lenguaje, geometría y listasLigadas) y tres tipos de relación en un diagrama de clases UML (asociación, agregación y dependencia).
VI. CONCLUSIONES Figura 16. Diagrama de clases para el problema de los cubos En este diagrama de clases se aplica el patrón de diseño Combinado, porque está implícito el patrón Método Estático y se reutilizan paquetes iniciales (PRI) y paquetes para estructuras de datos (PRED).
Las librerías de clases agilizan la tarea del desarrollador de software porque se reutilizan componentes fiables, lo cual repercute en la satisfacción de los requerimientos del cliente. Los paquetes geometría, ecuación y empresa llevan a la solución de problemas con la instanciación de ob-
Capítulo VI, pp. 76 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
jetos; el paquete lenguaje no obliga a la creación de objetos, pero precisa el uso de los métodos estáticos inmersos en sus clases Consola y Math. El uso de patrones en el desarrollo de software facilita un buen diseño orientado a objetos. Un patrón captura la estructura esencial de una familia de soluciones con probado éxito. El conocimiento de patrones simples, como los expuestos en el presente artículo, prepara una futura comprensión de los patrones GRASP. Además, la certera identificación de un patrón determinado para un problema particular dinamiza aún más la etapa de análisis con el ahorro de tiempo en la concepción de la solución. Los patrones no son librerías; van, más bien, en la línea de un esqueleto básico que cada desarrollador luego adapta a sus necesidades y a las peculiares características de su aplicación. Los patrones Genérico y Método Estático no conllevan el uso de objetos durante el proceso de diseño de la solución; por el contrario, el patrón Nueva Abstracción conlleva el uso obligado de objetos, mientras que el patrón Combinado puede o no manejarlos, dependiendo de la situación problemática por resolver. Problemas extensos o con ciertos grados de complejidad pueden implicar el uso de paquetes reutilizables iniciales y para estructuras de datos (PRI y PRED). Es pertinente y necesario que las facultades de ingeniería con programas académicos asociados a la computación, y en concreto ingeniería de software, realicen reformas curriculares innovadoras para dinamizar la docencia en asignaturas del área específica desde los primeros niveles de formación. REFERENCIAS [1] Tecnológico de Antioquia Institución Universitaria. Ingeniería en Software por Ciclos Propedéuticos. [En línea]. Disponible en: http://www.tdea.edu. co/index.php/es/facultades/facultad-de-ingenieria/ingenieria-en-software-por-ciclos-propedeuticos
77
[2] R. Botero, C. Castro, y E. Parra, Método Integrado de Programación Secuencial y programación Orientada a Objetos para el análisis, diseño y elaboración de algoritmos - MIPSOO. Medellín: Tecnológico de Antioquia I. U., 2004. [3] R. Botero, G. Taborda, y C. Castro, Sistema para el Modelamiento por Objetos- SISMOO. Medellín: Tecnológico de Antioquia I. U., 2009. [4] D. Gayo, A. Cernuda, J. M. Cueva, M. Díaz, M. P. Almudena, J. M. Redondo, “Reflexiones y experiencias sobre la enseñanza de la POO como único paradigma”, IX Jornadas sobre la Enseñanza Universitaria de la Informática (JENUI’2003), Cádiz, España, 2003. [5] D. González, y D. Montiel, “Librerías de Clases para reutilización en Lógica de Programación”, Tesis para optar al título de Ingeniero de Software. Tecnológico de Antioquia I. U., Medellín, 2015. [6] M. A. Navarro, y L. M. Sánchez, “Librerías de Clases para las Estructuras de Datos Lineales Estáticas y Dinámicas”, Tesis para optar al título de Ingeniero de Software, Tecnológico de Antioquia I. U., Medellín, 2016. [7] Z. Londoño, y R. Molina, “Librerías de clases para las estructuras de datos Árbol Binario y Grafo”, Tesis para optar al título de Ingeniero de Software, Tecnológico de Antioquia I. U., Medellín. En curso. [8] Package javax.swing. [On line]. Disponible en: https://docs.oracle.com/javase/7/docs/api/javax/ swing/package-summary.html [9] Microsoft, Developer Network. Namespace System.Windows.Forms. [On line]. Disponible en: https://msdn.microsoft.com/en-us/library/system. windows.forms(v=vs.110).aspx [10] Package java.sql. [On line]. Disponible en: https://docs.oracle.com/javase/7/docs/api/java/sql/ package-summary.html [11] Microsoft, Developer Network. Namespace System.Data.Sql. [On line]. Disponible en: https:// msdn.microsoft.com/en-us/library/system.data.sql(v=vs.110).aspx [12] The Python Standard Library. [On line]. Disponible en: https://docs.python.org/3/library/
Capítulo VI, pp. 77 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
78
[13] The Go Programming Language. [On line]. Disponible en: https://golang.org/pkg. [14] C. Alexander, A Pattern Language, New York: Oxford University Press, 1977. [15] E. Gamma, R. Helm, R. Johnson, y J. Vlissides, Design Patterns. Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995. [16] C. Larman, UML y Patrones. Prentice- Hall, 2004. [17] R. P. Gabriel, Patterns of Software. Tales from the Software Community. New York: Oxford University Press, 1996. [18] W. Brown, H. McCormick, and T. Mowbray, AntiPatterns: Refactoring Software, Architectures and projects in Crisis, USA: Wiley and Sons, 2000. [19] R. Botero, “Patrones GRASP y Anti-Patrones: un Enfoque Orientado a Objetos desde Lógica de Programación”, Revista Entre Ciencia e Ingeniería, n.° 8, 2010. [20] J. Rumbaugh, I. Jacobson, and G. Booch, The Unified Modeling Language. Reference Manual, Boston, Massachusetts: Addison-Wesley, 2005. [21] M. E. S. Loomis, Estructura de datos y organización de archivos, México: Prentice-Hall, 1991. [22] M. A. Weiss, Estructuras de Datos en Java, Madrid: Addison Wesley, 2002. [23] S. Cairó, y O. Guardati, Estructuras de Datos, México: McGraw-Hill, 1993. [24] M. A. Weiss, Estructuras de Datos y Algoritmos. Wilmington, Delaware, E.U.A.: Addison-Wesley Iberoamericana, 1995. [25] R. L. Kruse, Estructuras de Datos y Diseño de Programas, México: Prentice –Hall, 1988. [26] R. C. Prim, “Shortest connection networks and some generalizations”. Bell System Technical Journal, vol. 36, n.º 6, pp. 1389-1401, 1957.
[27] J. B. Kruskal, “On the shortest spanning subtree of a graph and the traveling salesman problem”. Proceedings of the American Mathematical Society, vol. 7, n.º 1, pp. 48-50, 1956. [28] E. W. Dijkstra, Structured Programming, New York: Academic Press, 1972. [29] J. A. Villalobos, Diseño y Manejo de Estructuras de Datos en C, Bogotá, Colombia: McGraw-Hill, 1996. [30] A. V. Aho, J. E. Hopcroft, y J. D. Ullman, Estructuras de Datos y Algoritmos, Wilmington, Delaware, E.U.A.: Addison-Wesley Iberoamericana, 1988. [31] R. Flórez, Algoritmos, estructuras de datos y programación orientada a objetos. Bogotá: Ecoe Ediciones, 2005. [32] G. L. Heileman, Estructuras de datos, algoritmos y programación orientada a objetos. Madrid: McGraw-Hill, 1998. [33] W. Granville, Cálculo diferencial e integral. México: Limusa, 2009. [34] J. A. Villalobos, Introducción a las estructuras de datos. Aprendizaje activo basado en casos. Bogotá: Pearson Educación de Colombia, 2008. AUTOR Ricardo de Jesús Botero Tabares. Ingeniero de Sistemas, especialista en Didáctica Universitaria, magíster en Ingeniería – Área Sistemas y Computación. Profesor de la Facultad de Ingeniería del Tecnológico de Antioquia con más de 20 años de experiencia, docente en varias IES del valle de Aburrá, Colombia, donde ha impartido cursos relacionados con lógica de programación, estructuras de datos, bases de datos, lenguajes orientados a objetos, metodología de la investigación, matemáticas discretas y análisis de algoritmos. Coordinador del Grupo de Investigación en Ingeniería de Software del Tecnológico de Antioquia (GIISTA). Autor de libros y artículos; ponente en encuentros y congresos de carácter nacional e internacional relacionados con las ciencias de la computación.
Capítulo VI, pp. 78 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
79
Capítulo VII REFLEXIONES PARA LA CONSIDERACIÓN DE UN PROGRAMA DE EDUCACIÓN SUPERIOR EN TORNO AL BIG DATA EN LA CIUDAD DE MEDELLÍN Gabriel Jaime Correa - gabriel.correahe@amigo.edu.co Universidad Católica Luis Amigó. Medellín, Colombia Ramiro Giraldo - rgiraldo@funlam.edu.co Universidad Católica Luis Amigó. Medellín, Colombia
I. INTRODUCCIÓN Particularmente en Colombia en la actualidad, la cultura de datos no está muy desarrollada, lo cual impide una utilización óptima de un activo sustancial como son los datos. Por ejemplo, se estima que en Colombia sólo el 65% de los datos son recolectados efectivamente y de estos sólo el 58,87% es relevante. Hay empresas que deben transitar todavía las fases previas de la analítica de las bases de datos tradicionales [1]. De acuerdo con el panorama anterior, se han venido introduciendo y trabajando en las organizaciones conceptos como Inteligencia de Negocios (BI, por sus siglas en inglés) para transformar los datos en información y la información en conocimiento, de forma que se pueda optimizar el proceso de toma de decisiones en los negocios. Los autores de la presente contribución técnica pretenden llamar la atención sobre la necesidad de impulsar la educación en la analítica de datos, especialmente enfocada en la revisión de la realidad colombiana, donde la influencia de las carreras de ingeniería de sistemas, informática y computación es relativamente débil, si se tiene en cuenta el gran potencial de la economía de la información en el producto interno
bruto del país [2], [3]. Esta aseveración se aplica con fuerza en el departamento de Antioquia, toda vez que se ha identificado el clúster de información como uno de los de mayor potencial para propiciar el desarrollo económico de la región [4]. De esta manera, en la contribución técnica se proponen contenidos curriculares para la creación de un programa de especialización en big data e inteligencia de negocios en la Universidad Católica Luis Amigó –Funlam- de la ciudad de Medellín, alineados con las tendencias que brindan al estudiante una formación completa en las siguientes áreas: Inteligencia de Negocios, Ciencia de los Datos, Investigación-Innovación y Responsabilidad Social. En esta contribución técnica se alude a una propuesta funcional, académica e investigativa articulada con avances en ingeniería e informática en la ciudad de Medellín. Esto, sin dejar de lado el conjunto de valores (éticos, morales, sociales), que también deben constituir un factor diferenciador en los programas universitarios. Por lo anterior, se realiza una reflexión interpretativa en torno a la conveniencia de implementar un programa de educación superior en el nivel de posgrado, en torno a la temática del big data y la inteligencia de negocios. Se espera que los profesionales en dicha área del conocimiento contribuyan al desarrollo
Capítulo VII, pp. 79 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
80
social y económico de la región, a través de iniciativas de emprendimiento, empleabilidad, valor agregado y reconocimiento por iniciativas de desarrollo técnico y tecnológico en la región y el país, teniendo en cuenta el alto valor agregado que representa el conocimiento adquirido a través de este tipo de programas [3]. La estructura del artículo es la siguiente: en la sección 1, la Introducción, se enfatiza en un programa de analítica de datos en el área metropolitana de Medellín y el valle de Aburrá, la cual tiene incidencia en el resto del departamento de Antioquia. La sección 2 contiene una revisión del marco teórico, que incluye definiciones y necesidades sobre requerimientos de educación en big data e inteligencia de negocios. La sección 3 presenta algunas reflexiones en torno a las nuevas oportunidades y necesidades derivadas del avance tecnológico con big data e inteligencia de negocios, con algunos sondeos en países con las mejores universidades del mundo. La justificación de la pertinencia para formación en el ámbito posgradual en la región del valle de Aburrá se presenta en la sesión IV. Las últimas secciones corresponden a las conclusiones y las referencias bibliográficas. II. MARCO TEÓRICO Las tendencias tecnológicas globales buscan generar desarrollos que ayuden a transformar y mejorar las condiciones de vida del ser humano. Particularmente, las de mayor valor agregado están orientadas en forma integral a las siguientes temáticas: La nanotecnología, la biotecnología, la infotecnología y la cognotecnología [5]. De manera particular, de acuerdo con el objeto de formación, se habla de la simulación, los sistemas expertos, la inteligencia artificial, el Cloud Computing; y en relación con lo organizacional se habla de: Information Technology Infrastructure Library (ITIL), Control Objectives for Information and related Technology (COBIT), Business Inteligence (BI), Integración de Sistemas, Big Data, entre otros. Alrededor de dichas evoluciones tecnológicas se lleva a cabo el desarrollo y la formación de profesionales en este campo en el ámbito mundial [6]. A. Definiciones La inteligencia de negocios (BI) se puede definir como el conjunto de metodologías, aplicaciones y tecnologías que permiten reunir, depurar y transformar
datos de los sistemas transaccionales e información desestructurada (interna y externa a la compañía) en información estructurada, para su explotación directa (reporting, análisis OLTP / OLAP, alertas) o para su análisis y conversión en conocimiento, dando así soporte a la toma de decisiones sobre los negocios de las empresas [7]. Una evolución notable de las técnicas de inteligencia de negocios se evidencia en las tecnologías de big data y análisis de datos, las cuales representan una nueva frontera para la innovación, la competitividad y la productividad, al tiempo que evidencian la riqueza que representa la información y el conocimiento asociado al volumen de datos y contenidos de todo tipo que se está acumulando gracias a las Tecnologías de la Información. A partir del avance en las bases de datos se posibilita el desarrollo tecnológico que permite transformar culturas, profundizar el estudio de los mercados y personalizar las preferencias de los consumidores, teniendo en cuenta las necesidades, adaptaciones, transformaciones y desarrollos específicos de los habitantes de una región. El término Big Data se refiere a un conjunto de datos de gran tamaño que, a la vez, se actualiza a gran velocidad y no encaja en las estructuras de proceso convencionales de datos de las empresas. Es decir, la propuesta que big data ofrece a las organizaciones es la ventaja de no tener que enfocarse solamente en los datos que generan sus empleados, sino que también se pueden aprovechar los datos que vienen de afuera, de fuentes no convencionales, como el audio, el video, los mensajes en redes sociales y, tal vez lo más interesante, la información que proporcionan los dispositivos electrónicos [8]. De eso se trata el big data, de incorporar la información proveniente de fuentes no estructuradas, como las redes sociales, los videos o las conversaciones telefónicas. A pesar de que muchos autores consideran esta definición demasiado dispersa, si profundizamos en las características que componen el big data, existe un mayor grado de acuerdo en aducir que se fundamenta en el paradigma de las tres “V” (volumen, variedad y velocidad). El elevado volumen de datos (más de un petabyte) precisa nuevas técnicas de almacenamiento a gran escala y enfoques distintos para recuperar la información; la variedad de las fuentes de datos (texto, audio, vídeo, etc.) hace que las redes relacionales sencillas sean difícilmente aplicables, y, por último, el in-
Capítulo VII, pp. 80 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
cesante incremento con que se generan los datos, hace que la velocidad sea un parámetro clave en su manejo. Existen, entonces, tres características o dimensiones: Volumen, variedad y velocidad [9]. • Volumen: Cada día las empresas registran un aumento significativo de sus datos (terabytes, petabytes y exabytes), creados por personas y máquinas. En el año 2000 se generaron 800.000 petabytes (PB) de datos almacenados y se espera que esta cifra alcance los 35 zettabytes (ZB) en el 2020. Las redes sociales también generan datos, es el caso de Twitter, que por sí sola genera más de 7 terabytes (TB) diariamente, y de Facebook, 10 TB de datos cada día. Algunas empresas generan terabytes de datos cada hora de cada día del año, es decir, están inundadas de información. • Variedad: Se puede afirmar que va muy de la mano con el volumen, pues de acuerdo con éste y con el desarrollo de la tecnología, existen muchas formas de representar los datos; es el caso de datos estructurados y no estructurados. Estos últimos son los que se generan desde páginas web, archivos de búsqueda, redes sociales, foros, correos electrónicos o producto de sensores en diferentes actividades de las personas; un ejemplo es el de convertir 350 mil millones de lecturas de los medidores por año para predecir el consumo de energía. • Velocidad: Se refiere a la velocidad con que se crean los datos, que es la medida en que aumentan los productos de desarrollos de software (páginas web, archivos de búsquedas, redes sociales, foros, correos electrónicos, etc.). Esta situación permite identificar la necesidad creciente en los ámbitos local, regional y nacional de mejorar los índices de productividad y competitividad de las empresas, de manera que estén a la vanguardia de los avances tecnológicos, en particular en el área de las ciencias de la computación, y específicamente en el análisis de bases de datos mediante técnicas de BI y de big data. Lo anterior se convierte en una razón de peso para sugerir la implantación de programas de posgrado que permitan afianzar el conocimiento de profesionales relacionados con la ciencia de los datos.
81
1) Penetración de las Metodologías Big Data y BI en el Entorno Universidad-Empresa-Estado Resulta claro que en la actualidad el saber, la tecnología y la educación deban ocupar un lugar prioritario en la agenda de discusión de las sociedades del mundo. Los temas de la educación y el conocimiento están ligados a los grandes problemas del crecimiento, el bienestar y la democracia. En buena medida, los logros o complicaciones en torno a tales problemas estarán condicionados por la capacidad de los sistemas educacionales de organizar, transmitir, reproducir y distribuir equitativamente conocimientos y capacidades [10]. A partir de la década de los ochenta del siglo pasado pareciera gestarse una nueva sociedad en la que la información constituye un elemento determinante de su quehacer cotidiano, que nos sumerge en un proceso de modificación de nuestras formas de vida conocido como globalización de la cultura y mundialización de la economía, producidos substancialmente por fuerzas y factores derivados del avance técnico y científico. Esta era tecnoglobal plantea, como nunca antes, la necesidad de impulsar la productividad y la competitividad como condición para mejorar el nivel de vida de la población de modo sostenido y duradero [11]. La demanda por servicios de ingeniería está aumentando y, junto a los avances de la ciencia y la tecnología, está agregando nuevos ámbitos de actuación, al cambiar las prácticas de ingeniería y la educación de los ingenieros. El conocimiento de las tecnologías de la información, junto con la electrónica y las comunicaciones (o las TIC), se convierte en valor cuando se aplica en los procesos, productos y servicios de las organizaciones [3]. Su campo de aplicación en el mercado es prácticamente ilimitado, la cantidad de datos ha crecido en el mundo, las empresas producen trillones de bytes de información de sus clientes, proveedores y operaciones. Por eso es necesario crear soluciones de big data que permitan capturar, comunicar, agregar, almacenar y analizar dichos datos, lo que convierte el big data en parte de cada sector y función de la economía mundial, y es tan importante como otros factores de la actividad económica, porque anexa innovación y competitividad a las empresas en la creación de nuevos productos y servicios.
Capítulo VII, pp. 81 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
82
En todo el mundo, en mayor o menor medida, existe una brecha entre lo que se puede lograr con estas capacidades, su potencialidad, y lo que realmente se explota comercialmente, en un mercado prácticamente ilimitado. Actualmente, el creciente volumen de información que producen los procesos de negocio de las empresas abre la posibilidad a tener aún mayores ventajas competitivas y oportunidades, y ello crea la necesidad de soluciones de big data que permitan hacer análisis de sus datos y mejorar la toma de decisiones [12]. A partir del procesamiento de encuestas de 65 preguntas relacionadas con la implementación de iniciativas de big data, realizadas a 500 grandes empresas en el año 2012 [13], las cuales tenían cada una como mínimo 30.000 empleados, se encontraron los siguientes usos: reducir el riesgo, 11%; mejorar la toma de decisiones, 22%; operaciones más eficientes ,10%; innovación en nuevos productos, 11%; calidad superior en productos y servicios, 10%; incremento en las ventas, 15%, y mejorar la experiencia del usuario, 22%. Asimismo, las empresas reportaron un uso de big data en sus funciones en: gestión del riesgo, 43%; operaciones, 29%; tecnología de la información, 52%; gestión del desarrollo de productos, 36%; servicio al cliente, 40%; análisis de mercado y análisis de clientes, 69%; gestión del fraude, 48%; mercadeo directo y en línea, 40%, y comercio electrónico y operaciones en línea, 52%. Las empresas encuestadas están representadas, según su misión, en servicios financieros (53%), seguros (19%), gobierno (10%) y otras empresas (18%) [13]. III. OPORTUNIDADES DE FORMACIÓN EN BIG DATA Y EN INTELIGENCIA DE NEGOCIOS En junio de 2011, el presidente Barack Obama lanzó la Iniciativa de Genómica de Materiales dirigida a todos los involucrados en esta industria, para ayudar a descubrir y desarrollar nuevos materiales de una forma más rápida mediante la creación de infraestructura de innovación en materiales centrada en el uso de big data, y mediante el uso de herramientas computacionales, herramientas experimentales y datos digitales, los cuales permitan mejorar el bienestar de los seres humanos, crear energías limpias, mejorar la seguridad
nacional y formar una nueva generación de fuerza de trabajo [13]. Primeramente, se estableció un estudio de 90 días con empresarios, científicos, universidades, sociedad civil y gobierno federal, incluyendo empresas del sector público y privado, para detectar cómo el big data está cambiando las relaciones entre gobierno, ciudadanos, empresas y consumidores, y entender la importancia de esta área como conductora del progreso y dinamismo cívico y económico de los Estados Unidos. Se concluyó que es necesario formar profesionales egresados de programas de ciencias y programas de ingeniería, mediante la creación de programas para científicos de datos, de manera que puedan dar solución a las necesidades demandantes de su trabajo en el sector productivo, y aumentar el valor y el rendimiento de las empresas [14]. A. Percepción del Interés de Empresas en Big Data Se realizó una encuesta de big data a 44 empresas líderes en Estados Unidos en el sector de ciencias de la vida, salud y servicios financieros, y que constituyen las que más se involucran en sus proyectos de datos. El porcentaje de empresas que reporta la creación de iniciativas de big data pasó del 31,4% en 2013 al 62,4% en el 2015, lo que convierte el big data en un aspecto de importancia crítica para el crecimiento y éxito de estas empresas; solo el 18% de las empresas encuestadas indicaron que big data no es importante para ellas [15]. Según Gartner Inc., en Estados Unidos los avances en big data no sólo están permitiendo mejorar la productividad de las empresas, sino también la creación de otras dedicadas a prestar servicios de inteligencia de negocios dada la creciente demanda de este tipo de soluciones, lo que a su vez demanda personal especializado en esta área [16], y ello supone nuevos desafíos en la implementación de estas infraestructuras [17]. Este panorama señala la necesidad de formación de personal especializado que diseñe e implemente soluciones de big data, lo cual generará un gran potencial económico en Estados Unidos en los próximos años. Sin embargo, es necesaria una mayor inversión de las empresas, con el fin de generar nuevos avances en la ciencia, la medicina y los negocios, lo que representa una creciente oportunidad en adquisición, extracción y limpieza, integración, análisis, modelamiento e interpretación de datos [18].
Capítulo VII, pp. 82 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
Puede entenderse cómo a nivel mundial el big data introduce grandes cambios en diversas industrias: favorece la creación masiva de nuevos productos, servicios y proyectos, impulsa el análisis de grandes volúmenes de datos, y proporciona valor diferenciado para aquellas empresas que adoptan e invierten en este tipo de iniciativas. Por lo anterior, se evidencia la necesidad mundial de contratar expertos en analítica de datos, porque las empresas requieren profundizar en el conocimiento de sus clientes a través de la información relacionada con marketing, operaciones y gestión del riesgo. Además, la analítica de datos constituye una nueva forma de crear negocios mediante la explotación de la información en las empresas, pues se favorece la diferenciación basada en información, así como los intercambios comerciales, las redes de distribución, la creación de modelos de venta minorista, los servicios financieros y de gobierno, la publicidad, las relaciones públicas, las manufacturas, los medios, las telecomunicaciones, la energía, la salud y las ciencias de la vida. Todo ello a partir de la creación de su propia estructura big data o la contratación de una infraestructura de servicio [19]. B) Condiciones de Formación Posgradual en el Área de Conocimiento en Big Data Al analizar los programas de formación avanzada en ingeniería de sistemas, informática y ciencias de las computación incluidos en el Ranking QS [3], [20], [21], es posible verificar la oferta de programas de posgrado enfocados en el tratamiento de datos mediante analítica, estadística y bases de datos avanzadas, articuladas con ciertos desarrollos tecnológicos que van más allá de la aplicación del paradigma relacional, tan común en las bases de datos. En la gran mayoría de países, el ciclo de desarrollo posgradual tiene una duración que oscila entre 1 y 2 años (sin incluir la formación doctoral), dependiendo de la adaptación y dedicación del estudiante. Lo anterior, dado que el público objetivo de estos programas se enfoca en profesionales que suelen dedicar parte de su tiempo a las actividades laborales. Hay que tener en cuenta que en algunos países se acepta la convalidación de algunos cursos avanzados que se suelen dictar en la formación del pregrado. Un análisis de este tipo de programas demuestra algunas tendencias específicas. Veamos [3]:
83
• Procesos de cambio. La práctica de la ingeniería está viviendo simultáneamente varios procesos de cambio. Entre ellos destacan los siguientes: aumento del contenido de base científica y tecnológica; creciente demanda social por más soluciones y sistemas que requieren ingeniería de calidad, eficiente y ambientalmente sustentable; aceleración del ciclo de desarrollo de productos; realización de servicios globales de ingeniería; entre otros [22]. • Factores de cambio. Los principales factores que están provocando los cambios de la ingeniería son: las demandas de las personas y de las políticas públicas respecto a mejores soluciones (desde nuevos dispositivos electrónicos domésticos, conectividad y democratización de la información); los nuevos contenidos generados por el avance de la ciencia y la tecnología; el requerimiento de soluciones más elaboradas e integrales en las sociedades más complejas de los países avanzados, y las propias fuerzas internas de la práctica de la ingeniería, entre ellas: concurrencia de funciones, articulación con investigación y desarrollo, articulación con innovación e interdisciplinariedad, nuevos métodos de diseño, trabajo en red, trabajo deslocalizado, y uso intenso de tecnologías de la información en todas las fases de concepción, desarrollo y ejecución. • Número de ingenieros. En diversas sociedades se ha detectado la escasez de ingenieros, medidos respecto de las necesidades actuales y proyectadas para los próximos 20 años. Países tan diversos como Alemania, China, India, Pakistán, Rusia, Brasil, así como países de África han identificado esta carencia, en algunos casos en forma aguda, y Colombia no es la excepción. Esta escasez se expresa en diversos ámbitos, desde la brecha informática hasta la computación avanzada [3]. A esto se suma la preocupación expresada por diferentes organismos gubernamentales, que han detectado una pérdida relativa de interés por estudiar ingeniería frente a otras profesiones [23], [24]. Para la fecha en que se realiza esta contribución técnica, se reportan a nivel internacional cerca de más de 10.000 instituciones de educación superior que ofrecen el programa de Ciencias de la Computación y de la Información [25]. No obstante, la calidad aca-
Capítulo VII, pp. 83 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
84
démica de las universidades se evidencia en los escalafones de diferentes índices de medición, entre los que se destacan el índice Shangai [26] y el índice QS [20]. Este último es el de mayor aceptación entre los ministerios de educación de América Latina, tanto por su trayectoria histórica como por la objetividad de sus mediciones, pues tiene en cuenta seis aspectos para la medición de la calidad universitaria a nivel mundial: Reputación académica (consultas globales entre instituciones), reputación de los empleadores, cocientes de compromiso docentes/estudiantes, citaciones bibliográficas de los trabajos investigativos, visitas de estudiantes internacionales, internacionalización. C) Caracterización Internacional de Programas de Análisis y Ciencias de los Datos Para las facultades de ingeniería se destaca el posicionamiento de las siguientes universidades, como las instituciones que ofrecen los mejores programas de ciencias computacionales y de la información a nivel mundial: Massachusetts Institute of Technology (MIT), EE. UU.; Stanford University, EE. UU.; University of Oxford, R. U.; Harvard University, EE. UU.; Carnegie Mellon University, EE. UU.; University of Cambridge, R. U.; University of California, Berkeley (UCB), EE. UU.: ETH Zurich, Swiss Federal Institute of Technology, Suiza; National University of Singapore (NUS), Singapur; Princeton University, EE. UU.; University of Toronto, Canadá; Imperial College London, R. U.; The University of Melbourne, Australia; Nanyang Technological University, Singapur; The Hong Kong University of Science and Technology, Hong Kong; University of California, Los Ángeles (UCLA), EE. UU.; Tsinghua University. China; École Polytechnique Fédérale de Lausanne (EPFL), Suiza; The University of Hong Kong, Hong Kong; The University of Edinburgh, R. U.; The University of Tokyo, Japón; The Chinese University of Hong Kong (CUHK), Hong Kong; Peking University, China; University of British Columbia, Canadá, etc. Dichos centros de formación ofrecen programas de formación posgradual en el área de conocimiento, en la modalidad de máster o maestría en ciencias de la computación y sistemas de información. En resumen, de este listado de las mejores universidades del mundo en el área de formación posgradual
en ciencias de la computación y en sistemas de información, por su origen, el 28% de las instituciones provienen de EE. UU., el 10% del Reino Unido, el 7% de Australia, el 6% de Alemania, el 5% de China, 5% de Hong Kong, 4% de Corea del Sur, 4% de Canadá, 4% de Italia y 3% de Taiwán y Japón. Entre el 1% y 2 % de las instituciones más visibles provienen de países como Holanda, Suiza, Singapur, Brasil, Francia, India, Malasia, Nueva Zelanda, España, Suecia, Bélgica, Israel, Rusia y Austria [3], [20]. En el listado de los 500 mejores programas de posgrado en Ciencias de la Computación e Informática, clasifican 22 universidades de Iberoamérica (incluyendo cuatro universidades colombianas) [21]. Para la realización de esta contribución técnica se tomaron las mencionadas universidades iberoamericanas, y luego del análisis de la oferta en formación posgradual en las ciencias de la computación e ingeniería de la información, se pudo evidenciar lo siguiente: • Todas las instituciones ofrecen el programa bajo la metodología presencial, y en su mayoría se articulan con la formación de pregrado en la misma institución educativa. • En general, la duración del programa es de 2 años. También se aceptan modalidades de estudio con intensificación en la formación básica, mediante cursos avanzados del área, con duración de un año y la posterior realización de un trabajo investigativo o tesis, que puede tomar un máximo de 2 semestres. • Un programa de máster puede tener una duración entre 1 y 2 años (como máximo), con énfasis en investigación, desarrollo e innovación, y en caso que el estudiante así lo desee, puede efectuar su formación en el nivel de doctorado. • La tasa de ocupación laboral de los profesionales que toman la formación posgradual en el área de conocimiento, corresponde a un empleo pleno, cercano al 100% [27]. • En general, la culminación del programa de ingeniería en las universidades revisadas exige que los estudiantes presenten un proyecto final de grado de maestría, el cual puede servir de introducción para sus futuros estudios a nivel de posgrado. D. Competencias de los Graduados en el Área de Conocimiento en Big Data
Capítulo VII, pp. 84 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
Se puede concluir que la diferencia entre los programas de posgrado que se ofrecen en las universidades colombianas respecto de las universidades extranjeras, en cuanto a la formación equivalente de las ciencias de la computación y sistemas, no es significativa, excepto por la denominación del título (téngase en cuenta que en Colombia se aceptan como posgrados los títulos de especialización, maestría o doctorado). Estos ingenieros se consideran como profesionales capaces de actuar productivamente en equipos multidisciplinarios, en los que demuestran habilidades para la autogestión y la cogestión, además de una conducta de liderazgo empresarial [3]. Pueden desempeñarse en las siguientes áreas [22]: • Empresas, industrias e instituciones públicas y privadas que cuenten con sistemas computarizados de información y control o los deseen implantar. • Compañías para el servicio y mantenimiento de software y hardware para sistemas de información y equipos de computación. • Industrias con aplicación de la robótica. • Empresas de apoyo y soporte tecnológico para las telecomunicaciones. • Corporaciones nacionales e internacionales especializadas en la instalación de redes de computadores a gran escala. • Compañías de diseño, programación e implementación de software. • Compañías asesoras de control de procesos industriales computarizados. • Firmas y fundaciones públicas y privadas de investigación científica y tecnológica. • Compañías productoras de bienes de consumo masivo. • Empresas asociadas a la ingeniería en computación. • Compañías petroleras e industrias en general. • Instituciones de educación superior. • Análisis estadístico. • Técnicas de administración. • Gestión de información y de conocimiento en las organizaciones. E. Oportunidades para Formación en Colombia y en la Región Se hace necesario el incremento de la productividad mediante la formación de recurso humano con perti-
85
nencia en desarrollo de ciencia y tecnología enfocada al sector, que permita desarrollar un ambiente más favorable de negocio y aporte a la internacionalización de las empresas y al desarrollo económico de la región. Esta aspiración ha quedado consignada en el plan estratégico de competitividad del departamento de Antioquia [28], donde se deja evidencia del predominio que han tenido las actividades de construcción y servicios financieros, la innovación de productos en la creación de oportunidades de negocio, y la posibilidad de que el sistema educativo posibilite un cambio estructural en los mercados de innovación y tecnología para hacer de Antioquia una región más competitiva. Esta visión procura la transición de la industria de media a alta tecnología por medio de la investigación, la innovación y el desarrollo de nuevas tecnologías que permitan aumentar el nivel productivo del sector empresarial [29]. En ese contexto, el sistema educativo desempeña un papel crítico en suplir las necesidades de una fuerza de trabajo que está compitiendo globalmente. Es bien reconocido que un sistema de educación fuerte que ofrece programas de pregrado es de suma importancia para el cumplimiento de los talentos necesarios para la Industria de Tecnologías de la Información (TI) [30]. A esto contribuye el hecho que en Medellín se haya determinado en su plan de desarrollo, el impulso a la innovación, especialmente lo concerniente a la consolidación de los clústeres, que hacen más competitiva a toda la región. La Comunidad Clúster de Medellín y Antioquia es una estrategia pública de desarrollo económico y competitivo que construye tejido empresarial por medio de la conformación de redes de negocios y la identificación de oportunidades de mercado. En la actualidad es la primera comunidad de este tipo conformada en Colombia y está constituida por seis clústeres [31], [32]: • Clúster Energía Eléctrica • Clúster Textil / Confección, Diseño y Moda • Clúster Construcción • Clúster Turismo de Negocios, Ferias y Convenciones • Clúster Servicios de Medicina y Odontología • Clúster Tecnologías de Información y Comunicación
Capítulo VII, pp. 85 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
86
La Alcaldía de Medellín, con el apoyo de la Cámara de Comercio de Medellín para Antioquia, ha puesto en marcha dicha iniciativa. El objetivo de facturación del sector TIC es pasar de 600 millones de dólares previstos en 2013 a 3.000 millones de dólares en 2020 [28]. Para ello el clúster cuenta con colaboradores clave como el sector empresarial, la Gobernación de Antioquia, el Gobierno de Colombia y el Centro Tecnológico Ruta N que trabaja en la capacidad de servicios, capacitación, investigación e innovación tecnológica. Se han identificado tres segmentos estratégicos clave [32]: Smart Services Outsourcing (SSO), Creative transmedia. Contenidos digitales (entretenimiento, educación, publicidad), Smart Cities (i-city). En la iniciativa de desarrollo de clústeres es posible referir el esfuerzo significativo que se realiza a través de alianzas públicas y privadas, cuya mayor representatividad se evidencia en el programa Ruta N, que corresponde a la corporación creada por la Alcaldía de Medellín y dos empresas nacionales para aumentar la competitividad de la ciudad, de la región y del país en los negocios basados en la tecnología, y que atiende la innovación asociada a los clústeres de Energía Eléctrica, Servicios de Medicina-Odontología y Tecnologías de Información y Comunicación [22]. Dicha iniciativa ha llamado la atención del mundo entero, lo cual ha propiciado la llegada de decenas de empresas del sector tecnológico y del desarrollo de software, lo que le ha conferido a Medellín el título como la ciudad más innovadora del mundo [33]. La creación de nuevas empresas, así como la consolidación y expansión de las actuales en el sector TIC, constituyen actualmente una preocupación dada la cantidad de ingenieros informáticos y de sistemas que se necesitan para atender la enorme demanda de personal cualificado en la prestación de estos servicios de alto valor agregado. De acuerdo con la información presentada en este artículo, y de conformidad con los datos hallados en los diferentes medios consultados, se encuentra que existe una demanda insatisfecha [34], lo que coincide con las conclusiones de algunos organismos gubernamentales que plantean la falta de personal capacitado en la disciplina para el desarrollo y la gestión de TIC en la ciudad de Medellín y en el departamento
de Antioquia [35]. Además, se encuentran elementos comunes con la visión planteada por el plan regional de competitividad del departamento, “Visión Antioquia siglo XXI”, que para el caso de la subregión dispuso orientaciones tendientes a los siguientes objetivos[36]: • Promover la educación integral, entendiendo al hombre como un ser capacitado en su quehacer, formado en valores, con conciencia ética y ambiental. • Incorporar elementos de competitividad y sostenibilidad en los procesos y las actividades de producción para garantizar la dotación ambiental para las presentes y futuras generaciones. • Formar una sociedad líder con responsabilidad social frente a su desarrollo solidario, ético y equitativo, formar capital social. • Aprovechar las ventajas comparativas frente a otras subregiones para impulsar un desarrollo subregional sostenible. • Apoyar la búsqueda y consolidación de una identidad propia en una subregión multiétnica y multirracial. • Crear un gran sentido de pertenencia. • Promover el desarrollo de una subregión integrada, territorial y económicamente competitiva. Estudios realizados por el Observatorio del Mercado de Trabajo y la Seguridad Social [37], mencionan que entre las 10 carreras más rentables que tiene el país en estos momentos se encuentran aquellas que se asocian a las áreas de ingeniería de sistemas y/o informática, incluyendo los estudios que incorporan las técnicas de tecnologías en bases de datos e inteligencia de negocios, según la demanda que hacen las compañías por profesionales en esta área del conocimiento . Un dato muy interesante tiene que ver con el alto porcentaje de empleabilidad de los graduados profesionales que actualmente cursan programas de posgrado afines a la carrera de ingeniería de sistemas, cuya empleabilidad es superior al 92% según se registra en el observatorio laboral del MEN. Lo anterior, teniendo en cuenta la correlación entre profesionales de los programas de ingeniería de sistemas y los estudiantes de posgrados afines al área. Para el caso específico de los posgrados en analítica y big data, la información consignada en el Observatorio Laboral del MEN, aunque limitada, permite anotar información extraída de
Capítulo VII, pp. 86 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
los empleadores de estos profesionales [22], [38]. En general, las personas egresadas con este tipo de posgrado llaman el interés del empresariado, por tratarse de una verdadera revolución tecnológica en el mundo de los negocios. En consecuencia, un programa universitario en big data e inteligencia de negocios debe tener estrecha relación tanto con los programas en el ámbito internacional como con los ofertados en el país y a nivel regional en los municipios que conforman el área metropolitana del valle de Aburrá. F. Normatividad Colombiana Aplicable a Formación Universitaria en Big Data y BI Un programa de formación universitaria en big data e inteligencia de negocios debería inscribirse, primero que todo, en la filosofía del mejoramiento continuo de la universidad que lo ofrezca, con el propósito de monitorear permanentemente sus niveles de calidad. Para ello se cuenta con la vigilancia del Ministerio de Educación Nacional, el cual ha considerado reglamentar y establecer políticas que aseguren la calidad de la educación, a través del Decreto 1075 del 26 de mayo de 2015, por medio del cual se expide la Reglamentación del Sector Educación en Colombia. En este referente normativo se definen los criterios mínimos de calidad para el funcionamiento de los programas en el país y sus indicadores de calidad. Igualmente, con un programa de este tipo se formarán profesionales que presten sus servicios a la sociedad, según la regulación requerida en la Ley 1341 del 30 de julio de 2009, por medio de la cual se definen principios y conceptos sobre la sociedad de la información y la organización de las Tecnologías de la Información y las Comunicaciones (TIC). La elaboración de este tipo de programas también puede seguir las recomendaciones de la Iniciativa CDIO, la cual pretende proporcionar a los alumnos una formación que ponga énfasis en los fundamentos de la ingeniería, enmarcándolos en el contexto de Concebir-Diseñar-Implementar-Operar sistemas, productos y servicios del mundo real. La Iniciativa CDIO
87
tiene los siguientes objetivos generales, para la formación de alumnos capaces de dominar un profundo conocimiento operativo de los fundamentos técnicos [39]: • Ser líderes en la creación y la operación de nuevos productos y sistemas. • Comprender la importancia y el impacto estratégico de la investigación y del desarrollo tecnológico en la sociedad. Para el efecto, se adoptan 12 estándares, los cuales generan puntos de referencia y metas que pueden aplicarse internacionalmente, y proporcionan un marco para la mejora continua, son ellos: contexto, resultados de aprendizaje, currículum integrado, construcción de productos de la ingeniería, experiencias de diseño-implementación, espacios de trabajo, experiencias de aprendizaje integrado, aprendizaje activo, fortalecimiento de la competencia de los académicos, fortalecimiento de la competencia docente de los académicos, evaluación del aprendizaje, evaluación del programa de posgrado). También se tienen en cuenta las recomendaciones expedidas por la Asociación Colombiana de Facultades de Ingeniería (ACOFI), la cual participa con documentos que permiten a los programas identificar parámetros muy importantes para tener en cuenta en sus currículos [40]. Finalmente, la normatividad de estos programas también considera el tratamiento de análisis de datos, el cual está regulado en Colombia por medio de la Ley 1266 de 2008, también conocida como Ley de Habeas Data, la cual se aplica a todos los datos personales financieros, crediticios, comerciales y de servicios registrados en un banco de datos. En este sentido, la aplicación de la Ley 1266 de 2008 está encaminada a regular el uso de esa información, y por tanto otro tipo de datos, por ejemplo, aquellos mantenidos en un ámbito exclusivamente personal o doméstico o los que se incluyen en una historia clínica, se encuentran excluidos de la aplicación de esta norma. También se tiene en cuenta la Ley 1581 de 2012, correspondiente a la Ley General de Protección de Datos Personales y su respectivo decreto reglamentario 1377 de 2013, cuya normativa amplía el espectro de protección en el manejo de información de datos personales de los ciudadanos colombianos.
Capítulo VII, pp. 87 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
88
No obstante, teniendo en cuenta que los profesionales interesados en los programas de formación en big data e inteligencia de negocios inicialmente se relacionan con la carrera de ingeniería de sistemas, también es importante mencionar el abanico de otras profesiones interesadas en dicho programa, entre las que se cuentan todas aquellas que involucran análisis de información y ciencia de los datos. IV. PERTINENCIA DE LA FORMACIÓN EN EL ÁREA DE CONOCIMIENTO EN BIG DATA El informe de la Comisión Internacional sobre Educación para el Siglo XXI [41] reconoce la complejidad de la educación y destaca cuatro pilares para asentar las políticas y estrategias de desarrollo educativo del futuro: “aprender a ser, a conocer, a hacer y a convivir”. Dos de esos cuatro pilares, aprender a ser y aprender a hacer, dan cuenta de la importancia que tiene desarrollar en las personas competencias para incorporarse al mundo del trabajo, generar su propia identidad y definir su personalidad. Los otros dos son propios del momento histórico que vivimos y que regirán el futuro: aprender a conocer y aprender a vivir juntos [41]. Teniendo en cuenta la revisión presentada en las anteriores secciones de esta contribución técnica, se concibe la oportunidad de ofrecer un programa de estudios de posgrado que vaya más allá de la temática en ingeniería de sistemas o de las ciencias de la computación, el cual tendrá un papel destacado para la universidad que lo ofrezca, pues a través de sus valores, su fortaleza en buenas prácticas y unas sólidas bases técnicas, profesionales y de pertinencia social, contribuirá no sólo al desarrollo, sino a la sostenibilidad en las necesidades identificadas a causa de la brecha en tecnologías de la información, que dé respuestas tanto a los retrasos del sector como a los retos y desafíos a los que se enfrenta la región, la nación y el mundo. Un profesional en análisis de datos se deberá formar en el marco de las nuevas tecnologías, con visión sistémica, creativa, adaptable a los permanentes cambios e innovación tecnológicos y consciente de su impacto en la sociedad. Al momento de ofertar un programa de posgrado en big data e inteligencia de negocios, la universidad
deberá contar con rasgos que lo diferencien de otros programas en el medio. El mismo se interrelacionará con todas las disciplinas de la ciencia y la ingeniería a través del pensamiento analítico que se ha de implantar en su perfil profesional. Lo anterior conlleva la aplicación de una estructura de pensamiento que contempla el todo y las partes, así como las conexiones entre las partes, con la finalidad de entender las situaciones complejas, sus elementos y alternativas de solución a los problemas que tienen que enfrentar en su vida profesional. En resumen, la especialización en big data e inteligencia de negocios da respuesta a la necesidad creciente del sector productivo de contar con recurso humano calificado en el tratamiento de datos para la toma de decisiones. De esta manera, desde el punto de vista curricular e investigativo, se proporcionarán los elementos teóricos y prácticos que coadyuvarán a la construcción de un mejor país, pues siendo esta una disciplina transversal a otros saberes y campos de la ciencia, propenderá por sentar las bases que soporten procesos de sistematización en diferentes esferas del saber con calidad, eficiencia y efectividad. En consecuencia, se puede asegurar que las condiciones mínimas en la preparación de dichos profesionales, pertinentes para los tiempos actuales, deben caracterizarse por los siguientes aspectos: • En cuanto al programa en general: Los especialistas deben recibir formación integral, sin descuidar el aspecto fundamental de la carrera, pero enfatizando en valores éticos que posteriormente les sirvan como marco para tomar decisiones. • Los especialistas deben contribuir a la productividad empresarial, desde el punto de vista de los desarrollos de aplicaciones informáticas (diseño, implementación y mantenimiento), gestión de proyectos informáticos en big data, en bodegas de datos e inteligencia de negocios, en tanto que, como se ha expuesto previamente, en el medio colombiano se percibe la ausencia de profesionales que se dediquen a dichas actividades. • Para estos especialistas existen oportunidades para internacionalizarse, dada la posibilidad de conocer ambientes empresariales diferentes y en lo posible con mayores niveles de desarrollo. • La relación teoría-práctica se debe enfatizar a lo largo de todo el posgrado y no únicamente hacia el final.
Capítulo VII, pp. 88 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
• Los especialistas deben orientarse tanto a las empresas de tecnología de valor agregado, como a empresas de servicios en ambientes multiculturales, complejos y dinámicos, donde el manejo de la información será el factor clave del conocimiento. • No puede perderse de vista que uno de los roles de los especialistas en el área de conocimiento es enfocarse en el contexto del desarrollo sostenible, y así contribuir con el mejoramiento de la calidad de vida de las personas, las organizaciones y las comunidades. • Los especialistas en big data e inteligencia de negocios podrán aportar a la superación del retraso tecnológico en gran parte del sector productivo colombiano. • El especialista en esta área de conocimiento debe estar en capacidad de formular nuevas soluciones a las problemáticas que enfrenta en el mundo real y no simplemente esperar a ser un simple ejecutor de órdenes. También es importante que los especialistas del programa tengan una gran capacidad de aprendizaje y rápida adaptación al mundo laboral. • Es importante anotar que esta área de especialización se percibe para profesionales con visión futurista, es decir, que miren a la empresa desde el futuro y no desde el presente o el pasado. Las empresas requieren un profesional con férrea disciplina y serias convicciones sobre su rol en el contexto de una empresa. • Los profesionales deben estar en capacidad de articular la teoría con la realidad en pro de plantear soluciones viables. Este criterio es uno de los factores que hoy se utilizan en los procesos de selección de personal en las empresas. Un especialista en el área debe tener claridad sobre la interrelación de los aspectos concernientes al análisis de datos, bodegas de datos, tecnologías en big data, y prospectiva del análisis de información; luego, no puede desconocer los aspectos económico, financiero y comercial. Asimismo, debe tener claro que el mundo actual es una realidad globalizada, por tanto debe pensar en cuanto a la aplicación de conocimiento con miras a lograr la productividad empresarial pero con estándares mundiales. En los tiempos del big data la sociedad evoluciona en la manera tradicional de realizar análisis de datos y ha creado un nuevo método de predicción para el conocimiento y la investigación. En este sentido, es necesario tener en cuenta el impacto de este nuevo paradigma en la noción tradicional de protección de
89
datos y su regulación. Sea en el ámbito público o el privado, el análisis de datos o big data es una herramienta poderosa que permite tomar decisiones más eficientes a través de una gran variedad de bases de datos y la implementación de modelos matemáticos [42]. La otra cara de la moneda es, por supuesto, el costo que la recolección de esta información tiene sobre quienes la generamos con cada post en redes sociales, cada foto tomada con nuestro dispositivo móvil o cada tiquete de avión que compramos: la renuncia a la privacidad [4]. A partir de esta reflexión analítica e interpretativa, se ha concebido la realización de un programa de posgrado en el área de conocimiento de big data e inteligencia de negocios, que espera ofertar la Universidad a la cual están adscritos los autores de esta contribución técnica. Como atributos o rasgos distintivos del programa, se concibe la oportunidad de brindar al estudiante conocimientos que se imparten en pocas instituciones de educación superior en Colombia, de acuerdo con el análisis comparativo realizado, en las áreas de análisis de datos, bodegas de datos, tecnologías en big data y prospectiva del análisis de información. Por lo anterior, los profesionales en esta área de conocimiento se formarán con un perfil enfocado en la capacidad de aplicar la resolución de problemas y la introducción de innovaciones, soportado en la prospectiva tecnológica, con capacidad de aplicar análisis en escenarios dinámicos, los cuales tienen que enfrentar los ingenieros en su quehacer diario. VI. CONCLUSIONES Los recientes avances en las técnicas y tecnologías de datos grandes han permitido a muchas empresas manejar grandes volúmenes de datos de manera eficiente. Sin embargo, estos avances en las técnicas y tecnologías todavía no se han estudiado en detalle, con especial atención a la gestión de grandes volúmenes de datos. Por tal razón, se evidencia la necesidad de investigar técnicas factibles de análisis, haciendo hincapié en el almacenamiento, tratamiento previo, el procesamiento y la seguridad. Por otra parte, los aspectos críticos de estas técnicas se analizan mediante la elaboración de una taxonomía con el fin de identificar los problemas y las propuestas para aliviar estos
Capítulo VII, pp. 89 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
90
problemas. Algunos autores abogan por la necesidad de producir una taxonomía de grandes volúmenes de datos con claros ejemplos de los tipos de datos particulares y de datos administrativos. La reflexión analítica e interpretativa presentada en esta contribución técnica puede tenerse en cuenta en el favorecimiento de la creación de un programa en el nivel de posgrado, en el campo de la inteligencia de negocios y del análisis de big data, con el fin de enfocarse en la integralidad de los sistemas y su aplicabilidad en todos las esferas —económicas, sociales y tecnológicas— requeridas por la actual sociedad. Tal programa permitirá enfatizar el beneficio y la importancia de formar profesionales que quieran asumir los retos y desafíos que exige la era de la información en temas como salud, entretenimiento, banca, etc. En todo caso, se propiciará el estudio interdisciplinario de los sistemas en general, en cualquier nivel, exigidos por todos los campos de las ciencias multidisciplinarias, pues el desarrollo de la teoría de análisis de datos y de la inteligencia de negocios impacta todos los aspectos humanos y tecnológicos. REFERENCIAS [1] CAOBA (2017), “Centro de Excelencia y Apropiación en Big Data y Análisis de Información”, Alianza CAOBA. [En línea]. Disponible en: http:// alianzacaoba.co/. [Accedido: 05-may-2017]. [2] A. Cuesta-Meza, “Caracterización de la industria del software en el Triangulo del Café - Colombia”, Entre Cienc. E Ing., vol. 4, n.o 7, pp. 76-87, 2010. [3] G. Correa-Henao, J. Gaviria-Hincapié, y R. Giraldo-Escobar, “Revisión y diagnóstico sobre las condiciones de calidad en los programas de Ingeniería de Sistemas en Colombia”, Rev. Iberoam. Educ. Super. (RIES), vol. 8, n.o 22, pp. 3-24, 2017. [4] A. Escobar-Cortés y C. Hernández Bermúdez, “Oportunidades mercadológicas basadas en TIC´S para las PYMES con oferta de comercio electrónico del Valle de Aburrá”, Escuela de Ingeniería de Antioquia, 2011. [5] L. Plazas, L. Sastoque, y A. Duarte-Gómez, “Estudio de la dimensión empresarial y gremial de la
situación actual y prospectiva de la ingeniería de sistemas”, Rev. Matices tecnológicos, vol. 4, p. 9, 2014. [6] S. Corrales-Núñez, “El Hecho Científico y la Computación: e-Science como Agente de Transformación en lo Científico y lo Social”, Rev. Trama, vol. 3, n.o 1, p. 25, 2013. [7] Sinnexus (2016), “Bussinness Intelligence e Informática Estratégica”, Sinergia e Inteligencia de Negocio. [En línea]. Disponible en: http://www.sinnexus.com/downloads/SnxFolletoComercial.pdf. [Accedido: 11-nov-2016]. [8] R. Dinero (2015), “Big Data: la mina de oro”, Revista Dinero. Noticias Económicas. [En línea]. Disponible en: http://www.dinero.com/edicion-impresa/ tecnologia/articulo/el-poder-economico-del-big-data-su-desarrollo-colombia/210853. [Accedido: 10oct-2016]. [9] R. Connelly, C. J. Playford, V. Gayle, y C. Dibben, “The role of administrative data in the big data revolution in social science research”, Soc. Sci. Res., vol. 59, pp. 1-12, sep. 2016. [10] D. Guerra-Rodríguez, “Situación actual y perspectiva de la educación en la ingeniería en México. Parte II: Propuestas”, Ing. FIME-UANL, vol. 3, n.o 6, pp. 8-14, 2000. [11] D. Guerra-Rodríguez, “Situación actual y perspectiva de la educación en la ingeniería en México. Parte I: Diagnóstico”, Ing. FIME-UANL, vol. 1, n.o 5, pp. 39-44, 1999. [12] R. Dinero (2015), “Especial de Tecnología: Big Data”, Revista Dinero (Colombia). [En línea]. Disponible en: http://www.dinero.com/especiales-comerciales/especial-de-tecnologia-2015/articulo/big-data/207065. [Accedido: 10-oct-2016]. [13] Executive Office of the President (2014), “Big Data: Seizing Opportunites, Preserving Values”, Whitehouse.Gov. [En línea]. Disponible en: https:// bigdatawg.nist.gov/pdf/big_data_privacy_report_ may_1_2014.pdf. [14] U. S. Government (2014), “Materials Genome Initiative National Science and Technology Council Committee on Technology Subcommittee on the Ma-
Capítulo VII, pp. 90 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
terials Genome Initiative JUNE 2014”, Whitehouse. Gov. [En línea]. Disponible en: https://www.mgi.gov/ sites/default/files/documents/mgi_strategic_plan_-_ dec_2014.pdf. [15] Newvantage-Partners (2016), “Big Data Executive Survey 2016”, NewVantage Partners LLC. [En línea]. Disponible en: http://newvantage. com/wp-content/uploads/2016/01/Big-Data-Executive-Survey-2016-Findings-FINAL.pdf. [Accedido: 06-jun-2017]. [16] D. C. Plummer et al., (2015), “Top 10 Strategic Predictions for 2015 and Beyond : Digital Business Is Driving “Big Change”. [En línea]. Disponible en: https://www.gartner.com/doc/2864817/top--strategic-predictions-digital. [Accedido: 10-oct-2016]. [17] M. K. Singh y P. Kumar, “An Analytical Study of Challenges of Big Data in Current Era”, Int. J. Enhanc. Manag. Comput. Appl., vol. 3, n.o 6, pp. 68-71, 2014. [18] A. Labrinidis y H. V. Jagadish, “Challenges and opportunities with big data”, Proc. VLDB Endow., vol. 5, n.o 12, pp. 2032-2033, 2012. [19] M. D. Ortiz-Morales, L. Joyanes-Aguilar, y L. M. Giraldo-Marín, “Los desafíos del marketing en la era del big data”, e-Ciencias la Inf., vol. 6, n.o 1, p. 30, nov. 2016. [20] Q. Quacquarelli_Symonds (2016), “World’s Top Universities (Ranking QS)”, QS Quacquarelli Symonds Limited - Top Universities. [En línea]. Disponible en: http://www.topuniversities.com/. [Accedido: 12-nov-2016]. [21] Q. Quacquarelli_Symonds (2016), “QS University Rankings: Latin America 2016”, QS Ranking Worldwide - Top Universities. [En línea]. Disponible en: http://bit.ly/1Gdhk9A. [Accedido: 11-nov-2016]. [22] Ruta_N (2015), “Observatorio CT+i: Informe No. 1 Área de oportunidad: Innovación en educación superior”. [En línea]. Disponible en: http://www. rutanmedellin.org/images/biblioteca/observatoriocti/04_TIC/VT_BIG-DATA-EN-EDUCACION_EAFIT.pdf. [Accedido: 10-nov-2016].
91
[23] M. P. Kindelán Echevarría y A. M. Martín, “Ingenieros del siglo XXI: importancia de la comunicación y de la formación estratégica en la doble esfera educativa y profesional del ingeniero”, Arbor Ciencia, Pensam. y Cult., vol. 94, n.o 732, pp. 731-742, 2008. [24] J. Sombrinho, La educación superior en el mundo 2007, Barcelona, España: Universidad Politécnica de Cataluña, 2007. [25] WEF, The Global Information Technology Report. Génova (Suiza): World Economic Forum, 2016. [26] Center for World-Class Universities (2015), “Academic Ranking of World Universities”, Center for World-Class Universities. [En línea]. Disponible en: http://www.shanghairanking.com/es/index.html. [Accedido: 02-mar-2016]. [27] EFE (2015), “Profesiones relacionadas con el Big Data generan más de 100.000 empleos en España”, Agencia EFE de Noticias. [En línea]. Disponible en: http://www.techweek.es/utility-computing/analisis/1015600005301/profesiones-relacionadas-big-data-cien-mil-empleos-espana.1.html. [Accedido: 10oct-2016]. [28] CamaraMED (2015), “Plan Estratégico de Emprendimiento Regional de Antioquia”, Comisión Regional de Competitividad de Antioquia. [En línea]. Disponible en: http://www.camaramedellin.com.co/ site/Portals/0/Documentos/Biblioteca/memorias/politicas-de-la-red-regional-de-emprendimiento.pdf. [Accedido: 01-jul-2015]. [29] Cámara de Comercio de Antioquia, “Las 500 empresas más grandes de Antioquia.”, Rev. Antioqueña Econ. y Desarro., vol. 13, p. 103, 2016. [30] MinTIC Colombia (2015), “Fortalecimiento de la Industria de Tecnologías de Información en Colombia”, Ministerio de las TIC de Colombia. [En línea]. Disponible en: http://www.fiti.gov.co. [Accedido: 20-may-2015]. [31] CamaraMED (2013), “Comunidad Cluster”, Cluster y Competitividad. [En línea]. Disponible en: http://www.camaramedellin.com.co/site/Cluster-y-Competitividad/Comunidad-Cluster.aspx. [Accedido: 01-jul-2015].
Capítulo VII, pp. 91 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
92
[32] Voluntas (2014), “Estrategia TIC Medellín – Antioquia”, Voluntas Consulting / Innovación, Investigación, Sector Tic. [En línea]. Disponible en: http:// www.voluntas.com.co/estrategia-tic-medellin-antioquia/. [Accedido: 01-jul-2015]. [33] WSJ (2012), “City of the Year”, CitiBank and the Marketing Services Department of WSJ. Magazine. [En línea]. Disponible en: http://online.wsj.com/ ad/cityoftheyear. [Accedido: 01-jul-2015]. [34] G. Ulloa-Villegas (2008), “¿Qué pasa con la ingeniería en Colombia?”, Eduteka. [En línea]. Disponible en: http://www.eduteka.org/IngenieriaColombia.php. [Accedido: 02-mar-2015]. [35] MinEducación (2015), “Observatorio Laboral para la Educación en Colombia”, Ministerio de Educación Nacional de Colombia. [En línea]. Disponible en: http://bit.ly/1uwq1cu. [Accedido: 01-jul2015]. [36] Comisión_Tripartita (2006), “Antioquia 2020: Estrategia de Competitividad para Medellín, El Área Metropolitana del Valle de Aburrá y Antioquia”. [En línea]. Disponible en: http://bit.ly/1JqeNMu. [Accedido: 11-oct-2016]. [37] S. Farné y C. A. Vergara, “Los Profesionales Colombianos en el Siglo XXI. ¿Más Estudian, Más Ganan?”, Boletín Universidad Externado, Bogotá (Colombia), p. 25, 01-jun-2008. [38] MinEducación (2015), “Observatorio Laboral en Colombia”, Observatorio Laboral para la Educación en Colombia. [En línea]. Disponible en: http:// www.graduadoscolombia.edu.co/encuesta/. [Accedido: 01-jul-2015]. [39] CDIO, “Estándares CDIO con rúbricas personalizadas”, Chalmers University of Technology.
Worldwide CDIO Initiative, Chalmers University of Technology, Gothenburg (Suecia), 2010. [40] G. A. Hernández-Pantoja y Á. A. Martínez-Navarro, “Ingeniería de Sistemas: Retrospectiva y desafios”, Rev. Unimar, vol. 27, n.o 4, pp. 97-106, 2009. [41] UNESCO (1996), “La Educación Encierra un Tesoro”, Naciones Unidas para la Educación. [En línea]. Disponible en: http://www.unesco.org/education/pdf/DELORS_S.PDF. [Accedido: 11-nov-2016]. [42] A. Gandomi, M. Haider, S. Pouyllau, A. Ferrer-Sapena, y E. A. Sanchez-Perez, “Open Data, Big Data: Where Do We Go? TT - Open data, big data: hacia dónde nos dirigimos?”, Int. J. Inf. Manage., vol. 35, n.o 3, pp. 150-156, abr. 2013. AUTORES Gabriel Jaime Correa. Ingeniero eléctrico, magíster en Ingeniería de Sistemas de la Universidad Nacional. Doctor en Eficiencia Energética de la Universidad de Zaragoza. Profesor e investigador de la Universidad Católica Luis Amigó. Con más de 10 años de experiencia académica, ha sido catedrático en los niveles de pregrado y posgrado en diferentes universidades del país. Ramiro A. Giraldo. Ingeniero de Sistemas de la Universidad Antonio Nariño. Especialista en Gerencia Educacional de la Universidad Pedagógica y Tecnológica de Colombia. Magíster en Educación de la Universidad de Medellín. Decano de la Facultad de Ingenierías y Arquitectura de la Universidad Católica Luis Amigó. Su interés en investigación y áreas de actuación incluye la gestión educativa y temas relacionados con ingeniería en desarrollo de software.
Capítulo VII, pp. 92 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
93
Capítulo VIII CREACIÓN DE VIDEOJUEGOS COMO METODOLOGÍA PARA EL APRENDIZAJE DE LOS FUNDAMENTOS DE LA PROGRAMACIÓN Sebastián Gómez - sgomezja@tdea.edu.co Tecnológico de Antioquia – I.U. Medellín, Colombia Aixa Villamizar - aixa.villamizar@tdea.edu.co Tecnológico de Antioquia – I.U. Medellín, Colombia
I. INTRODUCCIÓN Los programas académicos del área de informática han tenido una dificultad relacionada con la deserción académica en los primeros semestres. Esto se debe a la complejidad de las asignaturas de programación, especialmente la introducción a los fundamentos de programación, que obliga al estudiante a tener un nuevo paradigma en la forma de pensar y de afrontar algún problema. Por lo anterior, la forma de enseñar la programación ha sido un área fundamental de estudio y de investigación para instituciones de educación superior que ofertan este tipo de programas. Una de estas investigaciones fue desarrollada por el Instituto Tecnológico de Massachusetts (MIT), la cual generó como resultado el lenguaje de programación denominado Scratch. Este lenguaje se enmarca dentro del grupo denominado programación visual, porque la persona al momento de codificar está viendo permanentemente el código sin necesidad de escribirlo, simplemente utiliza piezas preexistentes.
El objetivo de esta investigación fue fomentar la motivación de los estudiantes en relación con las asignaturas de programación, con el fin disminuir la deserción académica y a su vez incrementar su interés por dichas asignaturas. Para hacerlo se propuso una alternativa en la cual se fomenta la creatividad de los estudiantes y se utiliza un elemento cercano a los nativos digitales, como lo es el uso de videojuegos. Se busca lograr que los estudiantes adquieran habilidades necesarias para comprender y aplicar soluciones informáticas, recursos y herramientas disponibles para la creación de videojuegos (aplicables a cualquier tipo de solución), pero de una forma lúdica y divertida para ellos, y hacer de la programación una herramienta para divertirse bajo la premisa de aprender jugando. Este artículo se distribuye de la siguiente forma: en la sección II se hace una descripción del uso de los juegos en la educación; luego, en la sección III se explica el lenguaje de programación Scratch y su uso con fines educativos. En la sección IV se presenta la metodología utilizada y en la sección V, los resultados obtenidos de la aplicación de la metodología en cursos reales de introducción al área profesional.
Capítulo VIII, pp. 93 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
94
II. LOS JUEGOS EN LA EDUCACIÓN A lo largo de su historia el ser humano ha jugado como método de diversión, desde juegos improvisados hasta juegos con reglas específicas, pero considerando la diversión como punto fundamental. En los últimos años se ha creado el concepto de juego serio, el cual sigue teniendo como propósito entretener, pero con un fin definido, que permite experimentar con problemas reales y ayudar a la comprensión de temas importantes, lo que transforma el juego de una simple actividad lúdica a una actividad con un fin aprovechable [1], [2] [3]. Ypsilanti et al. realizaron una investigación en la que concluyeron que un juego serio es mucho más que un juego, debido a que genera efectividad al momento de facilitar el proceso de aprendizaje [4]. La relevancia del uso de los juegos en educación ha sido tal, que el Horizon Report para educación superior los consideró como una de las herramientas para utilizar en un plazo de dos a tres años, reconociendo el uso de los juegos como algo relevante para la enseñanza, el aprendizaje y el desarrollo creativo [5]. En el campo académico se han visto experiencias de la aplicación de juego, como es en el caso de la revisión realizada en [6], donde se analizaron siete casos de estudio que utilizaron los juegos como experiencia de aprendizaje, divididos en tres categorías: los juegos como metáfora de aprendizaje, los juegos como simulación de micromundos y los juegos para el desarrollo de habilidades. En otros trabajos similares, se concluyó que los juegos generan un mayor compromiso y motivación por parte de los estudiantes en el proceso de aprendizaje, y además facilitan el desarrollo de las denominadas competencias del siglo XXI [7], [8], [9]. En otra investigación realizada en la Universidad de La Laguna se utilizaron juegos sociales para medir el nivel de colaboración e interacción entre los estudiantes [10]. En el área de la informática también se han realizado investigaciones con el propósito de fortalecer el aprendizaje de la programación a través del uso de juegos. Un ejemplo de esto es el proyecto reportado en [11], donde diseñaron un software educativo a través del diseño colaborativo de juegos. El modelo fue inspirado
por la teoría del diseño de juegos y la guía para desarrollar juegos de tablero, que les facilitaba a los estudiantes la extracción y expresión de sus necesidades para futuro software educativo. III. SCRATCH Scratch es un lenguaje de programación desarrollado por el MIT, bajo la premisa de diseñar, crear y reinventar, enfocado principalmente para la enseñanza de programación a niños entre 8 y 16 años de una forma visual y agradable para ellos, y permitirles desarrollar habilidades del siglo XXI, como son el pensamiento creativo, el razonamiento sistemático y el aprendizaje colaborativo [12]. El entorno de programación consta de una ventana donde se ven los personajes y el escenario del juego o animación que se está programando, y otro espacio dedicado a la generación del código, el cual se desarrolla arrastrando piezas de sentencias de control, de eventos o efectos especiales que el personaje realizará según los acontecimientos que se vayan dando. Ouahbi, Kaddari y Elachqar desarrollaron una metodología de enseñanza de los conceptos básicos de programación mediante la creación de juegos usando el entorno de programación de Scratch, y encontraron una mejora significativa en la motivación de los estudiantes de educación básica para continuar sus estudios en el área de informática [13]. Po-Yao Chao realizó una investigación con base en los entornos visuales de programación, porque estos ofrecen unos elementos gráficos que permiten la visualización de los estados de la solución computacional que los estudiantes están desarrollando. En su estudió generó indicadores para los procesos de práctica computacional, diseño de patrones y rendimiento, todo a través de soluciones desarrolladas de forma visual [14]. Otro estudio, basado en la educación básica, integró la programación visual en currículos académicos de cinco escuelas durante dos años, enseñando conceptos de programación, lógica y práctica computacional a través del modelo de aprendizaje basado en proyec-
Capítulo VIII, pp. 94 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
tos. El estudio concluyó que el uso de la herramienta Scratch favoreció el aprendizaje de los estudiantes y se recomienda su implementación en el currículo para la enseñanza básica de programación [15]. Ferrer-Mico, Ángel, Fernàndez y Redo-Sánchez realizaron una investigación que permitió identificar un impacto positivo en el entendimiento del proceso de aprendizaje autodirigido por parte de los estudiantes. A través del desarrollo de un proyecto en Scratch, el conjunto de estudiantes pudo administrar y direccionar su propio proceso de formación para el aprendizaje de matemáticas y programación [16]. Por último, Kordaki generó un conjunto de categorías de actividades de aprendizaje que pueden ser desarrolladas por los estudiantes mediante la plataforma Scratch. Estas son la creación libre de actividades, la resolución de problemas específicos y la solución múltiple de tareas, la experimentación, la modificación de proyectos existentes y la aplicación de aprendizaje colaborativo [17]. IV. ESTRATEGIA DE ORIENTACIÓN ACADÉMICA Se diseñó una actividad para complementar el aprendizaje de la programación utilizando la plataforma Scratch, que permitiera alcanzar los objetivos de la asignatura. Para hacerlo se tomó como punto de partida la taxonomía de Bloom, y posteriormente se diseñó una metodología que permitiera a los estudiantes fortalecer sus habilidades de programación y al mismo tiempo desarrollar habilidades creativas. A. Taxonomía de Bloom La taxonomía de Bloom genera unas competencias de forma jerárquica, que va aumentando el nivel de complejidad según se avance en la jerarquía. Posteriormente Anderson y Krathwohl [18] propusieron una taxonomía modificada, que indica dominios y procesos cognitivos.
95
Tabla 1. Taxonomía Modificada de Bloom (adaptado de [18]) Nivel
Dominio cognitivo
Procesos cognitivos
1
Recordar
Reconocer, recordar, listar, describir…
2
Comprender
Interpretar, ejemplificar, comparar, explicar.
3
Aplicar
Ejecutar, implementar, resolver, usar…
4
Analizar
Diferenciar, organizar, relacionar, estructurar…
5
Evaluar
Criticar, revisar, organizar, experimentar, argumentar…
6
Crear
Generar, planear, diseñar, construir…
Con base en lo anterior, Gómez y Moreno propusieron utilizar la taxonomía para ser adaptada a las competencias académicas que los estudiantes deben desarrollar durante las actividades de formación [19], en las cuales la competencia se compone de un proceso cognitivo y de un componente propio de la temática. De esta forma, a través de la implementación del desarrollo de videojuegos mediante el uso de Scratch para el aprendizaje de los fundamentos de programación, se pretende que los estudiantes recorran su proceso de formación desde reconocer las sentencias básicas de control, hasta diseñar un juego utilizando sentencias de control propias de la programación. B) Diseño de la actividad académica Teniendo como base las competencias que el estudiante va a desarrollar se diseñaron las siguientes actividades académicas.
Capítulo VIII, pp. 95 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
96
Introducción a Scratch: De manera magistral, y con base en el desarrollo desde cero de un videojuego preestablecido, se presentó la herramienta Scratch a los estudiantes, indicando paso a paso cómo se utilizaba cada una de las sentencias de control, además del manejo de variables y de herramientas visuales que utiliza la plataforma al momento de desarrollar los juegos o animaciones. Revisión de juegos creados en Scratch: Cada estudiante realizó una búsqueda en la lista de proyectos existentes en Scratch para identificar los diferentes tipos de juego que se pueden desarrollar mediante este lenguaje de programación. Esta actividad ayudó a los estudiantes a comprender el funcionamiento de cada una de las sentencias de control en un ejemplo real, lo cual les permitió sentar bases para las diferentes ideas que tenían para sus proyectos. Planteamiento de un pitch de juego: Se conformaron equipos de trabajo para el desarrollo de un juego. En este primer momento, los estudiantes solamente debían idear la estructura del juego pensando cómo serían sus dinámicas y mecánicas, para plantearlas en un pequeño documento que serviría para la introducción al desarrollo del juego. En la Figura 1 se observa un ejemplo de un pitch planteado.
videojuego. Este product backlog es el equivalente a una pila de actividades que se deben ir desarrollando para darle finalización al juego. Por ejemplo, la creación del personaje principal, el desarrollo de los movimientos del personaje, posteriormente el diseño del fondo de pantalla de ambientación del juego, y así sucesivamente hasta tener todo el juego desarrollado. Tabla 2. Ejemplo de Product Backlog para el desarrollo de un videojuego con Scratch Product Backlog Orden de prioridad/valor al juego 1 2 3 4 5 6
Figura 1. Ejemplo de pitch Metodología de desarrollo: Posterior a la creación del pitch, se realizó una inducción a las metodologías ágiles de desarrollo de software, haciendo énfasis en el desarrollo de videojuegos. A partir de esto, cada equipo de estudiantes debía generar un Product Backlog con cada elemento que debía desarrollar del
Ítem Arte y funcionalidad básica del personaje principal (moverse en tierra, correr, saltar y morir al caer) Elementos básicos de los niveles de superficie y subterráneo Diseño y arte de los niveles de superficie (normales) del mundo 1 Temporizador avanzando hacia atrás y matando a Mario en 0 Arte y funcionalidad del enemigo básico Goomba y funcionalidad de Mario al ser tocado por el enemigo Arte y funcionalidad del enemigo Flor carnívora
7
Interfaz que muestre el número de monedas, de puntos, el tiempo y el mundo donde está Mario
8
Arte y funcionalidad del personaje cuando es grande (romper bloques)
9
Arte y funcionalidad de la casilla de pregunta, del hongo y la moneda
10
Diseño y arte de los niveles de superficie (normales) del mundo 2
11
Diseño, arte y funcionalidad básica de los niveles subterráneos y secretos (tubos)
12
Trampas y elementos de los niveles de superficie y subterráneo
Capítulo VIII, pp. 96 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
Product Backlog 13 14 15 16 17 18 19
Diseño y arte de los niveles superficie y subterráneos de los mundos 3 y4 Arte y funcionalidad del enemigo koopa normal (tortuga) Arte y funcionalidad de koopa volador Arte y funcionalidad del modo flor de Mario (lanzar fuego) Diseño, arte y funcionalidad básica para niveles tipo castillo Diseño y arte de los niveles castillo de los mundos 1, 2, 3 y 4 Arte y funcionalidad de bowser
Desarrollo del juego: Cada equipo de trabajo, durante diferentes sesiones de clase y en su tiempo independiente, fue desarrollando el juego siguiendo el paso a paso definido anteriormente en el product backlog. Constantemente, los estudiantes recibían apoyo y asesoría de los docentes, según las dudas en el manejo del lenguaje de programación de Scratch. En la Figura 2 se observa el ejemplo del código utilizado para la animación de un personaje. En este código se resalta el manejo de sentencias de control, como por ejemplo los condicionales que permiten establecer un movimiento específico cuando el personaje alcance alguno de los límites de la ventana, obligando a que permanezca dentro del juego.
97
Asimismo, se utilizan sentencias de tipo iterativas que permiten que el movimiento de los personajes se comporte como un ciclo, y así optimizar el código. Finalmente, se utilizan variables y constantes, como en el caso del tiempo, que era una limitante porque el personaje debía cumplir su misión en un intervalo de tiempo preestablecido, lo que hacía que se fuera limitando de forma iterativa. En caso de que el personaje no alcanzara a culminar su actividad en el tiempo dado, su número de vidas disminuía, y de esta forma se utilizaba otra variable. C. Rueda de Negocios Al finalizar los videojuegos, se realizó una rueda de negocios en el aula de clase, en la cual cada equipo podía exponer su juego y permitir a los compañeros interactuar con cada desarrollo. Al lado de cada proyecto había una hoja en la que cada equipo podía darle un valor monetario simbólico correspondiente a lo que invertirían en cada uno de los proyectos, así se evidenciaban aquellos que se consideraba tenían mejor proyección y desarrollo. Además, al pasar a visitar los proyectos de los compañeros, cada equipo podía hacer retroalimentación para mejorar los proyectos presentados, fomentando de esta forma el aprendizaje colaborativo y competitivo. Finalmente, hubo un proyecto que tuvo un mayor nivel de complejidad y fue valorado muy satisfactoriamente por los compañeros. En total participaron 44 estudiantes de primer semestre del programa de Ingeniería en Software por ciclos propedéuticos, y se obtuvo como resultado 14 videojuegos con fines educativos. Para lograrlo, cada equipo de estudiantes debió aplicar sentencias de control como los condicionales, ciclos y variables, entre otros. En total la actividad duró un mes durante su ejecución, desde la elaboración del pitch hasta la rueda de negocios final. V. RESULTADOS
Figura 2. Ejemplo de código
Como resultado principal, se obtuvo el desarrollo de 14 videojuegos completos, que fueron subidos a la plataforma Scratch. De igual forma se obtuvo la representación de los artefactos definidos mediante la metodología scrum para el desarrollo de cada uno de los juegos.
Capítulo VIII, pp. 97 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
98
En la Figura 3 se muestra el ejemplo del juego ganador después de la rueda de negocios.
La segunda pregunta corresponde a una de las problemáticas descritas en la introducción, y es la referente a la deserción académica generada por la desmotivación de los estudiantes en el aprendizaje de la programación y de las asignaturas relativas al área. Con respecto a esta pregunta, como se evidencia en la Figura 5, casi el 80% de los estudiantes manifestaron que construir el juego les permitió aumentar su motivación con respecto a la programación y a la carrera como tal.
Figura 3. Ejemplo de juego Para validar el funcionamiento de la actividad se aplicó una encuesta a los estudiantes basada en tres preguntas que se consideraron importantes para el desarrollo del proyecto. La primera información que se quería corroborar por parte de los estudiantes era con respecto al cumplimiento del objetivo de favorecer el aprendizaje de lógica de programación a través del desarrollo del videojuego y de la plataforma Scratch, ya que ellos también estaban aprendiendo programación bajo una metodología tradicional, y la aplicación de Scratch era un apoyo para profundizar en dicho aprendizaje.
Figura 5. Resultado encuesta a estudiantes en relación con la motivación académica La tercera pregunta correspondía al cumplimiento de la taxonomía de Bloom, que llegó hasta el nivel de crear. En ese sentido, el 75% de los estudiantes manifestaron que desarrollaron capacidad creativa y pudieron implementar los conocimientos aprendidos en el desarrollo del videojuego, cumpliendo con el último dominio cognitivo de la taxonomía.
Figura 4. Resultado encuesta a estudiantes referente al cumplimiento del objetivo de favorecer el aprendizaje Los resultados mostrados en la Figura 4 indicaron que el 75% de los estudiantes estuvieron de acuerdo y completamente de acuerdo en que la estrategia utilizada favoreció su aprendizaje de fundamentos de programación.
Figura 6. Resultado encuesta a estudiantes en relación con el cumplimiento de la taxonomía de Bloom
Capítulo VIII, pp. 98 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
Además de la encuesta, la rueda de negocios les permitió a los estudiantes retroalimentar y seleccionar el juego favorito entre todos, lo que les motivó a implementar mejoras y a fortalecer habilidades de comunicación y colaboración entre ellos. VI. CONCLUSIONES El desarrollo de juegos a través de Scratch brindó a los estudiantes la posibilidad de afianzar su conocimiento de la programación, utilizando las sentencias de control principales de una forma visual y tangible, lo que les ayudará más adelante a enfrentarse a los lenguajes de programación existentes con mayor confianza y seguridad.
99
experiencias con los compañeros de clase, ensayando aspectos del mundo real a través de la creatividad y transformándolos en un producto final. REFERENCIAS [1] S. Gómez Jaramillo y A. Villamizar Jaimes, “Aprendizaje de fundamentos de programación a través de la creación de videojuegos,” Encuentro Int. Educ. en Ing. - ACOFI, 2016. [2] H. del Castillo, D. Herrero, y M. Checa, “Desarrollo de competencias a través de los videojuegos deportivos: alfabetización digital e identidad,” RED. Rev. Educ. a Distancia, vol. 33, pp. 1-22, 2013.
Esto también permitió aumentar su motivación en la carrera de Ingeniería en Software por ciclos propedéuticos, factor importante de cara a la disminución de la deserción académica.
[3] A. Derryberry and I. Serious, “Serious games: online games for learning,” Serious Games, n.º 9, pp. 1-15, 2007.
Los estudiantes desarrollaron actividades creativas y diseñaron un juego con los elementos aprendidos previamente, de esta forma cumplieron toda la taxonomía de Bloom e hicieron un ciclo completo en su proceso de aprendizaje.
[4] A. Ypsilanti, A. B. Vivas, T. Räisänen, M. Viitala, T. Ijäs, and D. Ropes, “Are serious video games something more than a game? A review on the effectiveness of serious games to facilitate intergenerational learning,” Educ. Inf. Technol., vol. 19, n.º 3, pp. 515529, 2014.
Con la representación de los artefactos definidos mediante la metodología scrum para cada uno de los juegos, se logró que los estudiantes no sólo adquirieran conocimientos en programación mediante un entorno visual por medio del desarrollo de un videojuego, sino que aprendieran a aplicar una metodología ágil de manera práctica, lo cual propicia que tanto los tutores como los estudiantes puedan tener una mayor participación en los desarrollos. Scratch es una herramienta diseñada inicialmente para niños, pero que puede ser usada para la enseñanza de programación a cualquier tipo de población, por su forma intuitiva y visual de programar. Teniendo en cuenta lo anterior, es necesario explorar las herramientas existentes para el aprendizaje de la programación mediante videojuegos, al igual que propiciar espacios en las asignaturas en los cuales se incentive la educación mediante juegos, especialmente si se trata de temas relacionados con la programación, pues estas actividades podrán fortalecer y complementar los métodos de enseñanza tradicionales, para que los estudiantes puedan desarrollar sus propios escenarios, romper sus propias barreras y compartir sus
[5] L. Johnson, S. Becker, V. Estrada, and A. Freeman, NMC Horizon Report: 2014 Higher Education. 2014. [6] S. De Freitas, “Learning in Immersive worlds A review of game-based learning Prepared for the JISC e-Learning Programme,” JISC eLearning Innov., vol. 3, n.º 3, p. 73, October 14, 2006. [7] A. O. P. M. F. R. P. D. V. V. A. M. Katie Larsen McGlarty, “A Literature Review of Gaming in Gaming,” Gaming Educ., pp. 1-36, June, 2012. [8] F. F. Nah, Q. Zeng, and V. R. Telaprolu, “Gamification of Education: A Review of Literature,” Hcib/ Hcii 2014, pp. 401-409, 2014. [9] E. Moschini, “The construction of knowledge through gaming. How to engage university students in the understanding of the historical developments of knowledge and scholarship via playing and networking,” CEUR Workshop Proc., vol. 398, pp. 4549, 2008.
Capítulo VIII, pp. 99 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
100
[10] C. González-González, P. Toledo-Delgado, C. Collazos-Ordóñez, and J. L. González-Sánchez, “Design and analysis of collaborative interactions in social educational videogames,” Comput. Human Behav., vol. 31, n.º 1, pp. 602-611, 2014. [11] G. Triantafyllakos, G. Palaigeorgiou, and I. A. Tsoukalas, “Designing educational software with students through collaborative design games: The We!Design&Play framework,” Comput. Educ., vol. 56, n.º 1, pp. 227-242, 2011. [12] M. Resnick, J. Maloney, A. Monroy, N. Rusk, E. Eastmond, K. Brennan, A. Millner, E. Rosenbaum, J. Silver, B. Silverman, and Y. Kafai, “Scratch: Programming for All,” Commun. ACM, vol. 52, n.º 12, 2009. [13] I. Ouahbi, F. Kaddari, and A. Elachqar, “Learning Basic Programming Concepts by Creating Games with Scratch Programming Environment,” Procedia Soc. Behav. Sci., vol. 191, pp. 1479-1482, 2015. [14] P. Chao, “Computers & Education Exploring students computational practice, design and performance of problem-solving through a visual programming environment,” Comput. Educ., vol. 95, pp. 202215, 2016. [15] J. M. Sáez-López, M. Román - González, and E. Vásquez-Cano, “Computers & Education Visual programming languages integrated across the curriculum in elementary school: A two year case study using Scratch in five schools ez-Lo,” Comput. Educ., vol. 97, pp. 129-141, 2016. [16] T. Ferrer-Mico, M. Àngel, P. Fernàndez, and A. Redo-sanchez, “Impact of Scratch programming on students understanding of their own learning process,” Procedia - Soc. Behav. Sci., vol. 46, pp. 1219-1223, 2012.
[17] M. Kordaki, “Diverse categories of programming learning activities could be performed within Scratch,” Procedia - Soc. Behav. Sci., vol. 46, pp. 1162-1166, 2012. [18] D. R. Krathwohl, “A Revision of Bloom’ s Taxonomy: An Overview,” Theory into Practice, vol. 41, n.º 4, 2002. [19] S. Gómez Jaramillo and J. Moreno Cadavid, “Selection of collaborative learning techniques using Bloom’s taxonomy,” Commun. Comput. Inf. Sci., n.º 606, pp. 1-12, 2016. AUTORES Sebastián Gómez. Ingeniero de Sistemas e Informática por la Universidad Nacional de Colombia, magíster en Ingeniería y candidato a doctor en Ingeniería de la Universidad Nacional de Colombia. Con más de 5 años de experiencia académica se ha desempeñado como docente de tiempo completo del Tecnológico de Antioquia, por un largo periodo fue el coordinador académico del programa de Ingeniería en Software. Es investigador del Grupo GIISTA y actualmente es el encargado de la unidad de virtualidad de la institución. Aixa Villamizar. Ingeniera de Sistemas por la Universidad Francisco de Paula Santander, magíster en Diseño y Gestión de Proyectos Tecnológicos por la Universidad Internacional de la Rioja España. Con más de 5 años de experiencia Académica, se ha desempeñado como docente de cátedra y tiempo completo en diferentes universidades de la ciudad de Cúcuta. Actualmente es docente de tiempo completo del Tecnológico de Antioquia I.U, investigadora del grupo GIISTA y coordinadora académica del programa de Tecnología en Diseño y Desarrollo Web y Tecnología en Gestión Informática del Tecnológico de Antioquia.
Capítulo VIII, pp. 100 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
101
Capítulo IX MODELO DE APRENDIZAJE VIRTUAL DE LENGUAJES DE PROGRAMACIÓN MEDIANTE INMERSIÓN DINÁMICA UTILIZANDO DOKEOS María Angélica Acosta - maacostap@ufpso.edu.co Universidad Francisco de Paula Santander. Ocaña (N. Sant.), Colombia Isbelia Karina Rincón – ikrinconp@ufpso.edu.co Universidad Francisco de Paula Santander. Ocaña (N. Sant.), Colombia Sir Alexci Suárez - sasuarezc@ufpso.edu.co Universidad Francisco de Paula Santander. Ocaña (N.Sant.)-Colombia Albert Miyer Suárez - albertmiyer@hotmail.com Universidad de Pamplona (N. Sant.), Colombia
I. INTRODUCCIÓN Las instituciones de educación superior hacen esfuerzos continuos por reducir el nivel de deserción en los cursos de programación, específicamente en las carreras de ingeniería, originada en gran medida por el desconocimiento de los conceptos y técnicas de programación [1]. El problema no es solo local, también es un inconveniente en universidades como la Carnegie Mellón y el Instituto Tecnológico de Massachusetts [2], [3], donde el descenso de estudiantes es de más del 60%; de tal forma que para incentivar el aprendizaje y resolver el problema han creado métodos mediante los cuales se intenta que la primera experiencia al programar se convierta en algo placentero. Sin embargo, el primer contacto con un curso de programación se torna para el estudiante en una la-
bor traumática por distintas razones: a) programar es una habilidad, y enseñar habilidades es complicado; b) nunca han tenido contacto con la programación; c) falta de conocimientos matemáticos específicos que ayuden a resolver los problemas; d) el tiempo para aprender a programar puede ser corto, si lo comparamos con asignaturas como matemáticas, donde los estudiantes ya poseen conocimientos adquiridos por varios años. Lo anterior puede implicar que el estudiante sienta que la programación es de difícil manejo, ya que no solo tienen que analizar y encontrar la solución al problema, también deben implantarlo, mediante códigos de programación adecuados. El estudiante que inicia una carrera de ingeniería se encuentra al inicio con asignaturas o cursos relacionados con la programación, los cuales le servirán en toda su carrera y desarrollo profesional, por eso se debe ofrecer la posibilidad de aprender de manera progresiva un len-
Capítulo IX, pp. 101 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
102
guaje, que a la vez le permita pasar de un lenguaje a otro sin crear dependencia del inicial y pueda seguir practicando fuera del aula de forma efectiva. Entre los lenguajes para iniciar el proceso de enseñanza se encuentra el lenguaje Java, por sus fortalezas en diferentes áreas de la informática (web, seguridad, multiplataforma, etc.). El proceso de enseñanza se inicia con diagramas de flujo y pseudocódigo, y el aprendizaje se enfoca a la solución de problemas lógicos; el inconveniente radica en que, cuando se debe pasar de estas herramientas a una codificación en Java, da la sensación que es un proceso diferente, ya sea porque la codificación se realiza en inglés o cambia su sintaxis. A continuación se describen las técnicas y plataformas utilizadas en la enseñanza de la programación, las cuales se han centrado en crear procesos o métodos para mejorar el rendimiento y la comprensión del lenguaje. Entre estos enfoques de aprendizaje algunos autores se han centrado en una programación educacional que se enfoca en el diseño de la aplicación, olvidando la terminología del lenguaje. Otros proponen herramientas para escribir programas con interfaz gráfica para novatos, mientras utilizan diversos paradigmas, como programación estructurada, que permitan comprender la lógica de los programas [4]. Algunos investigadores inician directamente con orientación a objetos utilizando escenarios bajo entornos como Greenfoot [5], mediante el cual se puede obtener información clara de lo que es una clase, objeto, método, etc., ya que esta terminología es la que genera dicha problemática [6]. En cuanto a las plataformas y programas más importantes se pueden nombrar la creada por Wanda Dann y Dennis Cosgrove de la Universidad Carnegie Mellon [7] mediante el proyecto Alice como iniciativa para combatir la falta de interés en las ciencias de la computación; su entorno innovador en programación 3D hace que crear una animación, un juego interactivo o un video sea algo fácil y motivador [8], [9]. Asimismo, el grupo de investigación del laboratorio de medios del Instituto Tecnológico de Massachusetts [10], [11], [12] ha creado “Scratch”, un programa que permite encajar bloques gráficos sin que existan los obstáculos de sintaxis y puntuación de los lengua-
jes de programación, con lo cual la programación es más amplia y se logra desde una edad más temprana, aprendiendo conceptos matemáticos en un ambiente estimulante. Sin embargo, estas dos herramientas no son suficientes para que el alumno aprenda Java, por eso la Universidad de Helsinki desarrolló Jeliot [13], [14], con la finalidad de visualizar gráficamente la ejecución de un programa en Java que funcionara como sustituto de las pruebas de escritorio tradicionales. Los métodos computacionales de enseñanza también permiten acortar el tiempo en que un estudiante aprende los conceptos básicos de programación. Entre ellos se pueden mencionar el e-learning y el screencast. El primero se refiere al uso del internet, mediante plataformas que almacenan, recuperan y permiten compartir información que mejora el conocimiento y el rendimiento, dando una visión diferente de los paradigmas tradicionales. Esta herramienta es evaluada mediante modelos como el de Aceptación Tecnológica [15], que ayuda a conocer la facilidad de uso, la percepción de utilidad y la implantación exitosa. Por su parte, el Screencast se basa en un video donde se muestra la pantalla de una computadora, y se va narrando todo lo que sucede a medida que se desarrolla la codificación y utilización de algún entorno integrado de desarrollo (IDE). Si hablamos de plataformas de internet, una de las que tiene mejores resultados es Codecamy [16], donde se utilizan pequeñas lecciones y se aprende de forma sencilla respondiendo diferentes preguntas. Es de resaltar el trabajo presentado por [17], donde se centran en la estructuración y resolución de problemas más que en el contenido de la asignatura, así ven el conjunto de forma general y le dan menos importancia al carácter con el cual se termina la línea. Otros investigadores enseñan mediante juegos [18], de tal manera que cautivan la atención del estudiante realizando pequeños proyectos o por medio de casos prácticos utilizando repositorios [19]. Aunque las metodologías anteriores ofrecen buenos resultados en la solución de los problemas, no han logrado resolverlos en su totalidad. Así que, teniendo en cuenta los aspectos anteriores y la problemática que encierra la programación, se propone una metodología que ayude al aprendiz a desarrollar programas en pseudocódigo, y que a la vez vaya captando los conceptos básicos de tres lenguajes al tiempo, me-
Capítulo IX, pp. 102 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
diante la técnica de inmersión dinámica, para dar una correlación entre el pseudocódigo y los lenguajes de alto nivel, pero sin enseñar estos lenguajes. De esta manera el estudiante puede captar por sí mismo la información relevante. De tal forma que, como una solución al problema, se presenta una metodología basada en inmersión dinámica, la cual permite mejorar y disminuir el tiempo de aprendizaje. La hipótesis consiste en realizar una correlación del pseudocódigo y un lenguaje de alto nivel, sin la explicación como tal del segundo lenguaje, y así brindar la posibilidad al alumno de aprender un nuevo lenguaje de forma natural, tal como se aprende un lenguaje materno. Para ello se crea un sistema de clases virtuales que llevan al alumno a comprender lección por lección de manera amigable y progresiva. El presente artículo se organiza de la siguiente manera: en la sección del marco teórico se presentan los métodos y plataformas de enseñanza utilizados en diferentes universidades; en la sección de metodologías se exponen los conceptos de inmersión dinámica, así como la adaptación del método en la asignatura de Fundamentos de Programación; posteriormente se muestran y analizan los resultados y, finalmente, se presentan las conclusiones correspondientes. II. MATERIALES Y MÉTODOS Con la finalidad de comprobar la hipótesis de aprendizaje basada en la correlación de pseudocódigo y los lenguajes, se han realizado pruebas piloto con la asignatura de Fundamentos de Programación la cual comprende una carga de seis horas semanales, dos horas teóricas y cuatro horas prácticas, las cuales se pueden solapar en función de las necesidades. Se realizan dos parciales y un examen final establecidos por la universidad, además de un tercer parcial definido por el docente. Con el objetivo de que los resultados sean más eficientes y homogéneos, se han efectuado tests en varias universidades. El contenido del primer parcial tiene conceptos básicos de programación, como: variables, estructuras de control, vectores y matrices; en esta primera etapa se utilizan herramientas como diagramas de flujo (DFD) y pseudocódigo. Para el segundo parcial se vuelve a enseñar el mismo contenido pero específicamente para Java, C++ y Visual Basic
103
(JCV), y se finaliza la asignatura. A continuación se detalla la metodología aplicada y el análisis de datos. A. Inmersión Dinámica El entorno de inmersión dinámica es utilizado en la enseñanza y traducción de diferentes lenguajes maternos, ya que activa habilidades de aprendizaje y elimina traducciones, de tal forma que se aprenden los conceptos básicos o traducciones de un lenguaje. Las fases del método comprenden el uso de imágenes, intuición, interactividad, enseñanza y éxito (ver Figura 1).
Figura 1. Modelo de inmersión dinámica. (Elaboración propia) En la primera fase se aprenden conceptos básicos utilizando imágenes claras, luego de aprendidas se puede comprender de forma fácil el significado mediante intuición, posteriormente se puede interactuar para verificar lo aprendido, y finalmente la enseñanza se pone a prueba por medio de una simulación real mostrando el desempeño con exactitud para verificar el éxito de la metodología. B. Programación Mediante Inmersión Dinámica La metodología de inmersión dinámica se utilizó mediante la herramienta Pseint, la cual permite realizar programas en pseudocódigo basados en nuestro idioma, y observar la ejecución así como los resultados de cada programa. De esta forma el alumno puede captar de forma visual el desarrollo del programa, captando las imágenes de ejecución de cada instrucción. El método consiste en dividir la pizarra virtual en dos secciones: en la primera se explican y codifican los programas en Pseint, y en la segunda se
Capítulo IX, pp. 103 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
104
codifica en JCV, realizando una correlación línea por línea entre los lenguajes (ver Tabla 1), sin embargo no se explica la sintaxis del lenguaje Java, por ejemplo, de tal forma que el estudiante relacione las instrucciones de Java con las instrucciones del pseudocódigo, y mediante intuición pueda entender su funcionamiento (ver Figura 2). Para verificar lo aprendido se utiliza una plataforma de enseñanza basada en Dokeos, de tal forma que exista una interactividad entre Pseint y JCV, mediante ejercicios y test de evaluación, finalmente el estudiante realiza una simulación de programas codificados, sin la ayuda del docente. La evaluación del método se realiza la primera semana después del primer parcial, y se realiza una segunda evaluación tres semanas después. Tabla 1. Correlación entre Pseint y Java (Elaboración propia) #
SECCIÓN 1 – PSEUDOCÓDIGO
1
Proceso Comparar
2 3 4 5 6 7 8 9 10 11 12 13 14 15
Definir A,B,C Como Real; A=87.4; B=23.78 C=34.55 Si (A>B) y (A>C) Entonces Escribir (“a es mayor”); Sino Si (b>c) Entonces
SECCIÓN 2 - JAVA Import java.util.Scanner; Class Comparar { Public Static void main( String[] args){ int A,B,C float; A=87.4; B=23.78 C=34.55 If (A>B) && (A>C) {
System.out.println(“a es mayor”); else If (b>c) { System.out.println(“b maEscribir (“b mayor”); yor”); Sino else System.out.println(“c maEscribir (“c mayor”); yor”); FinSi } FinSi } FinProceso }}
Figura 2. Juego de triki (Elaboración propia) C. Muestra del Estudio La prueba piloto y la muestra del estudio están conformadas por dos grupos del primer semestre del año 2014 y dos grupos del segundo semestre del mismo año, e integradas por alumnos del programa Ingeniería de Sistemas de la Universidad de Pamplona, y dos grupos en proceso de la Universidad Francisco de Paula Santander Ocaña del primer semestre de los años 2014 y 2015, además del programa Ingeniería Industrial de la Universidad de Pamplona, para una muestra total de 208 estudiantes (ver Tabla 2). Sin embargo, para este artículo solo se analizan los resultados de los 4 grupos iniciales, formando una muestra de 100 alumnos en total. Tabla 2. Cantidad de alumnos evaluados Grupo
Semestre
Año
A B A B A C A
I I II II I I I
2014 2014 2014 2014 2014 2014 2015
Cantidad de alumnos 29 30 20 21 30 22 32
A
I Ing. industrial
2015
24
Capítulo IX, pp. 104 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
A los alumnos del primer semestre de 2014 se les enseña la asignatura de forma tradicional, o sea que solo después del primer parcial se inició la enseñanza del lenguaje JCV, mientras que a los dos grupos del segundo semestre de 2014 se les aplicó la metodología de inmersión dinámica. Después de una semana de realizado el primer previo se efectúan dos evaluaciones, tanto a los alumnos del primer semestre como a los del segundo semestre. Posteriormente, a la tercera semana se volvieron a realizar pruebas para conocer el avance en la asignatura. El test de evaluación consistió en preguntar conceptos básicos del lenguaje, así como ejercicios. Luego se tabulan los resultados y se promedian los dos test de evaluación. La forma de evaluar el éxito de la propuesta se hizo de forma cuantitativa y cualitativa teniendo en cuenta el tiempo de aprendizaje. El método pretende ser utilizado en la enseñanza de la programación en el área de la ingeniería civil por algunos docentes en su capacitación; por eso algunos docentes de la Universidad de Pamplona empiezan a hacer pruebas para conocer su eficiencia y efectividad. III. RESULTADOS Y DISCUSIÓN Después de llevar a cabo los tests de evaluación, se recolectó la información y se ponderó de acuerdo con tres niveles: insuficiente, cuando tenían notas inferiores a 3, aprobado, entre 3 y 4, y sobresaliente, mayor a 4. Al analizar los resultados de los grupos del primer semestre (ver Tabla. 3), se constató que más del 50% de los estudiantes tenían una nota insuficiente, y se observó que tenían problemas en la estructura del programa, aunque el rendimiento en la escritura y la lectura de datos era bastante acertado. Sólo el 20,76% de los evaluados habían acertado en la mayoría de preguntas, y el 25,84% aprobaron pero con serias fallas. Se pudo conocer que las estructuras de control como do..while y el for eran las más difíciles, por eso un 15,25% lo entendían en su totalidad.
105
Tabla 3. Evaluación semana uno grupo A-I y B-I primer semestre 2014 (Elaboración propia) Test
Sobresaliente
Aprobado
Insuficiente
13
9
37
17
21
21
10
16
33
9
15
35
49
61
126
20,76
25,84
53,38
Estructura de un programa Java Escritura, lectura Operadores Estructuras de control
Total Porcentaje de acierto
Al examinar los resultados de los grupos del semestre II (ver Tabla 4) se puede observar que el 65,85% obtuvieron una nota sobresaliente en la primera semana, superando en más del 40% a los grupos que no habían utilizado la metodología de inmersión dinámica. En líneas generales, el 80,52% de los alumnos entendían los conceptos básicos del lenguaje, lo cual permitía una mayor profundización de la lógica de programación mediante Java. Tabla 4. Evaluación semana uno grupo A-I y B-I segundo semestre 2014 (Elaboración propia) Test
Sobresaliente
Aprobado
Insuficiente
30
7
4
29
8
4
25
6
10
24
6
11
108
27
29
65,85
14,67
17,68
Estructura de un programa Java Escritura, lectura Operadores Estructuras de control Total Porcentaje de acierto
Capítulo IX, pp. 105 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
106
Después de tres semanas se comprobó que el porcentaje de alumnos con nota insuficiente en los grupos del primer semestre era de 9,32%, mientras que en los del segundo era de 5,48%. Sin embargo, existía un marcada diferencia en la resolución de los problemas de programación, ya que los del primer semestre presentaban mayores problemas de tipo lógico (ver Tabla 5), mientras que los del segundo semestre fallaban sintácticamente debido al descuido en la codificación (ver Tabla 6).
Tomando en cuenta que las primeras semanas desmotivan al estudiante, hay que resaltar la cantidad de estudiantes que inician con buena nota el aprendizaje de Fundamentos de Programación, mediante Pseudocódigo, JCV e inmersión dinámica, tal como se puede observar en la Figura 3.
Tabla 5. Evaluación semana tres grupo A-I y B-I primer semestre 2014 (Elaboración propia) Sobresaliente
Aprobado
Insuficiente
Estructura de un programa java
57
0
2
Escritura, lectura
48
5
6
50
5
4
31
18
10
186
28
22
78,18
11,86
9,32
Test
Operadores Estructuras de control Total Porcentaje de acierto
Los alumnos que habían aprendido con inmersión dinámica estaban dispuestos a aprender otro lenguaje, mientras que los otros grupos presentaban desmotivación y obstáculos para entender el lenguaje Java. Tabla 6. Evaluación semana tres grupo A-I y B-I segundo semestre 2014 (Elaboración propia) Test Estructura de un programa java Escritura, lectura Operadores Estructuras de control Total Porcentaje de acierto
Sobresaliente
Figura 3. Evaluación de los grupos en la primera semana (Elaboración propia) Tabla 7. Evaluación para los años 2014 y 2015 (Elaboración propia) Test
Sobresaliente
Estructura de un programa java Escritura, lectura Operadores Estructuras de control Total Porcentaje de acierto
Aprobado Insuficiente
88
7
13
90
18
0
83
18
7
77
22
9
338
71
29
77,16
16,21
6,62
Aprobado Insuficiente
41
0
0
39
2
0
35
2
4
34
2
5
149
6
9
90,85
3,65
5,48
Figura 4. Porcentaje de alumnos según la etapa de inmersión aplicada (Elaboración propia)
Capítulo IX, pp. 106 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
Después de observar el proceso de forma continua, se puede demostrar la efectividad del método, al lograr una cantidad de más del 60% de alumnos sobresalientes y reducir considerablemente el tiempo que pueden tardar en aprender más de un lenguaje de programación a la vez (ver Figura 4). VI. CONCLUSIONES Los resultados demuestran que al aplicar inmersión dinámica en la enseñanza de la programación, los alumnos aprenden de una manera más eficaz y en un tiempo menor, logrando avances significativos en el lenguaje Java, permitiendo centrarse en la lógica del programa. También se constató que los alumnos a los cuáles se les aplicó el método, podían incorporar un tercer lenguaje sin ayuda del docente, de esta manera no se restringían en el uso de un lenguaje determinado. Los test de evaluación ofrecían una retroalimentación, permitiendo corregir los errores o dudas presentadas, convirtiendo la plataforma en un tutor virtual. Finalmente se puede decir que el método ofrece buenos resultados, como alternativa para la enseñanza de un primer lenguaje en la asignatura de Fundamentos de Programación. REFERENCIAS [1] J. Ruiz Aquino, J. H. Hernández, D. A. Gutiérrez, y G. H. Alférez Salinas,). Comparativa entre paquetes de software de apoyo a la enseñanza de la programación en java. México: Universidad de Montemorelos, 2008. [2] C. Villanueva, “Alice: aprende a programar con objetos”. Neoteo Revista de Tecnología, 2011. [3] U. Mamani, R. Linares, M. Ibarra, J. Herrera, W. Mollocondo, “Childthink. Propuesta de un modelo didáctico para la enseñanza de la programación en niños”. 6th International Symposium on Innovation and Technology - ISIT2015, Mar del Plata, Argentina, 2015. [4] S. M. Tuttle, “Teaching java as a second programming language”. Journal of Computing Sciences in Colleges, n.º 17, pp. 34-45, 2001. [5] M. Blumenstein, “Strategies for improving a java-based, first year programming course” Procee-
107
dings of International Conference on Computers in Education, pp. 1095-1099, 2002. [6] S. García, Desarrollo de un escenario en el entorno greenfoot: hundir la flota. Madrid: Universidad Carlos III de Madrid, 2009. [7] D. Cosgrove, W. Dann, and D. Slater, Exploring wonderland: Java programming using Alice and Media computation. Prentice Hall, 2010. [8] W. Dann, D. Cosgrove, D. Slater, D. Culyba, and S. Cooper, “Mediated transfer: Alice 3 to Java. Proceedings of the 43rd ACM Technical Symposium on Computer Science Education, pp. 141-146, 2012. [9] D. C. Cliburn, “Student opinions of Alice in cs1”. 38th Annual Frontiers in Education Conference. FIE 2008, t3b-1 - t3b-6, 2008. [10] M. Resnik, “Cultivando las semillas para una sociedad más creactiva”, Revista Actualidades Investigativas en Educación, vol. 8, n.º 1, pp. 1-7, 2008. [11] C. L. Vidal, C. Cabezas, J. H. Parra y L. P. López, “Experiencias prácticas con el uso del lenguaje de programación Scratch para desarrollar el pensamiento algorítmico de estudiantes en Chile”, Form. Univ., vol. 8, n.º 4, 2015, La Serena. [12] N. Monjela y P. S. San Martín (enero-abril 2016), “Programar con Scratch en contextos educativos: ¿asimilar directrices o co-construir tecnologías para la inclusión social ?”, Praxis Educativa, vol. 20, n.º 1, pp. 61-71. doi: http://dx.doi.org/10.19137/praxiseducativa-2016-200106. [13] A. Moreno, and M. S. Joy, “Jeliot 3 in a demanding educational setting”. Electronic Notes in Theorical Computer Science (ENTCS), n.º 178, pp. 51-59, July 2007. [14] N. Myller, “Automatic prediction question generation during program visualization”. Electronic Notes in Theoretical Computer Science (ENTCS), n.º 178, pp. 43-49, 2007. [15] A. Valencia, y S. Gil, “Evaluación de herramientas virtuales de aprendizajes mediante el modelo de aceptación tecnológica (tam)”, 3er congreso international. Las TIC Aplicadas a la Educación en los Procesos de Aprendizajes y Enseñanzas de las Ciencias, pp. 1-5, 2012, Tlalnepantla.
Capítulo IX, pp. 107 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
108
[16] M. Harlow, and I. Dew (march 4th 2012), “Codecademy: Learn how to write code at home”, The Observer. Disponible en: http://www.theguardian.com/ technology/2012/mar/04/learn-javascript-code-on-net. [17] R. Satorre, P. Compañ, y F. Llorens, “Un modo de entender la programación”, JENUI: X Jornadas de Enseñanza Universitaria de la Informática, Alicante, 2004. [18] J. Palazón, “Herramientas gratuitas de Microsoft para la educación Tiching. Educación 3.0, pp. 1415, 2011. [19] M. Gómez, Una revisión de métodos pedagógicos innovadores para la enseñanza de la programación, Madrid: Universidad Complutense de Madrid, 2008. FINANCIACIÓN Y AGRADECIMIENTOS A la Universidad Francisco de Paula Santander, “Ocaña” y su División de Investigación y Extensión (DIE), y a la Universidad de Pamplona, por sus recursos físicos y condiciones para garantizar la investigación. AUTORES María Angélica Acosta: Ingeniera mecánica con maestría en Ingeniería Mecánica de la Pontificia Universidad Católica Do Rio De Janeiro, es investigadora Júnior por Colciencias, publicando artículos en revistas indexadas. Actualmente es docente de planta ocasional de la Universidad Francisco de Paula Santander Ocaña en áreas de ingeniería civil. Tiene experiencia en las áreas de extensión y transferencia de conocimiento.
Isbelia Karina Rincón Parada: Ingeniera de sistemas en la Universidad Católica de Colombia, Bogotá, y especialista en Auditoría de Sistemas, título propio de la Universidad Católica de Colombia obtenido en el 2007, y magíster en Tecnología Educativa y Medios Innovadores para la Educación (2015), de la Universidad Tecnológica de Monterrey, México. Hasta la fecha ha publicado artículos en revistas indexadas, además ha escrito capítulos de libros, igualmente ha participado en la producción de material educativo. Tiene experiencia como docente en el área de auditoría de sistemas y como asesor de trabajos de investigación en la formación de pregrado y posgrado en universidades públicas y privadas. Sir Alexci Suárez: Ingeniero de sistemas, con doctorado en Sistemas Inteligentes en la Ingeniería de la Universidad de León, España. Ha trabajado como catedrático en universidades nacionales y extranjeras, liderando proyectos de tecnología enfocados en el reconocimiento de patrones y análisis discriminante, y ha publicado artículos de investigación en revistas de alto impacto. Actualmente es director del grupo de investigación GRUCITE, editor de la Revista Ingenio y director de la División de Investigación y Extensión de la Universidad Francisco de Paula Santander Ocaña. Es investigador Júnior por Colciencias. Albert Miyer Suárez: Ingeniero mecánico, con doctorado en Ingeniería Mecánica por la Universidad de León, España. Actualmente es docente de planta de la Universidad de Pamplona en las áreas de ingeniería industrial, sus publicaciones en artículos científicos y libros se enfocan en la simulación y sistemas numéricos. Ha liderado proyectos a nivel internacional fomentando la cultura de la investigación en Iberoamérica. Es investigador Júnior por Colciencias.
Capítulo IX, pp. 108 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
109
Capítulo X MÉTODO PARA CREAR UN MÓDULO DE MINERÍA DE DATOS QUE APOYE LA INTERPRETACIÓN DE RESULTADOS Juan Camilo Giraldo - jgiraldo1@tdea.edu.co Tecnológico de Antioquia – I.U. Medellín, Colombia Darío Enrique Soto - dsoto@tdea.edu.co Tecnológico de Antioquia – I.U. Medellín, Colombia Fabio Alberto Vargas - fvargas@tdea.edu.co Tecnológico de Antioquia – I.U. Medellín, Colombia Jovani Jiménez Builes – jajimen1@unal.edu.co Universidad Nacional de Colombia – Medellín, Colombia León Alberne Torres Restrepo – albernetorres@gmail.com CENIDET – Cuernvaca, México
I. INTRODUCCIÓN La minería de datos es una colección de técnicas y herramientas que se presentan como apoyo para el procesamiento analítico en Línea OLAP durante el proceso de obtención de conocimiento conocido como Knowledge Discovery in Databases (KDD) [1]. Existe diversidad de técnicas orientadas a la predicción y a la obtención de conocimiento. Las de predicción se denominan técnicas Supervisadas, y las de obtención de conocimiento se denominan no Supervisadas. Todas las técnicas son automáticas, y apoyan la toma de decisiones en las organizaciones a partir de la exploración y explotación de los datos contenidos en bases de datos transaccionales. Las técnicas automáticas son algoritmos que integran bases de datos, estadística, e inteligencia artificial. Cada componen-
te aporta en dicho proceso, lo que permite el almacenamiento de los datos, la toma de decisiones y la selección, clasificación y agrupamiento de los datos [2] [3]. En [2] se resalta una de las técnicas no Supervisadas más aplicadas para la búsqueda de relaciones entre los datos, denominada Reglas de Asociación, y se incorpora desde el algoritmo Apriori, que permite la asociación o relación de variables. Luego de aplicar estas técnicas de minería de datos se llega a una etapa costosa para los analistas: se trata de la interpretación de los resultados obtenidos que se encuentran dentro de los modelos generados por las técnicas. Los datos se presentan en diferentes formas en el contexto de la minería de datos, dependiendo de la técnica y las herramientas utilizadas. Por ejemplo, el algoritmo Apriori genera los datos en términos de reglas de asociación [4] [5], y algunas herramientas
Capítulo X, pp. 109 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
110
muestran estas asociaciones a través de una red o grafo de dependencias. Sin embargo, estos modelos son insuficientes para interpretar los datos, en consecuencia, se desarrolla un método y una aplicación de software con el propósito de apoyar la interpretación de los datos derivados de la técnica de asociación (algoritmo Apriori). II. MATERIALES Y MÉTODOS En la primera etapa se hizo una caracterización relacionada con la minería de datos y algunas técnicas o algoritmos aplicados para la obtención de conocimiento. La caracterización permite conocer qué es y para qué se utiliza la minería de datos. Igualmente, se muestra la funcionalidad de una de las técnicas más representativas de la minería de datos, clasificada como técnica no supervisada o de obtención de conocimiento [2]. Esta técnica se conoce como Reglas de Asociación y está articulada con el algoritmo Apriori. Se aprende de la estructura de las reglas, sus componentes y restricciones estadísticas, sus modelos y sus resultados. En la segunda etapa se hace un análisis detallado de la funcionalidad de la técnica Apriori [6] [7], y se conocen sus módulos de extracción, verificación y validación de datos. Se profundiza en sus iteraciones respecto a los datos de muestra provenientes de una base de datos para conocer cómo se articulan las bases de datos, la estadística y la inteligencia artificial. En la tercera fase se extiende el algoritmo Apriori, con la propuesta de un módulo orientado a presentar una interpretación de los resultados técnicos obtenidos luego de aplicar la técnica. Este módulo tiene como propósito especificar los datos que el usuario ve en pantalla, datos en términos de reglas de asociación. Se especifica la cantidad de reglas interesantes, cantidad de reglas que no son consideradas relevantes, porcentajes, cantidad de datos implicados en el proceso, clasificación de las variables, cantidad de variables clasificadas por tipos, entre otros resultados. En la cuarta etapa se propone un modelo que muestra los pasos que se deben seguir para lograr la creación de una herramienta de minería de datos, y que a la vez muestra las fases para obtener los resultados que se presentan en este artículo.
La quinta fase se dedica a diseñar y modelar la herramienta de minería, la cual sirve como elemento validador del modelo propuesto. III. FUNDAMENTO TEÓRICO A. Minería de Datos La minería de datos es un proceso que mantiene el conocimiento y sus propiedades sin cambios durante el proceso de transformación [8]. Se considera además como un tópico usado por variedad de métodos computacionales y técnicas que permiten analizar grandes conjuntos de datos contenidos a nivel local o global [9]. La minería de datos constituye una de las fases del “proceso de descubrimiento de conocimientos en bases de datos” (Knowledge Discovery in Databases, KDD) [10]. La extracción de datos se define como la búsqueda de patrones interesantes en grandes conjuntos de datos. Es la subdisciplina informática que aporta a la inteligencia de negocios las herramientas para transformar la información en conocimiento [11]. El proceso de minería se basa en el análisis de registros provenientes de bases de datos operacionales o bodegas de datos, Data Warehouse [12]. B. Técnicas de Minería de Datos La minería de datos usa algunas técnicas matemáticas y estadísticas clásicas, que debieron evolucionar para adaptarlas al procesamiento de grandes muestras de datos y a los requisitos del procesamiento automático de la información [13]. La minería está formada por varias etapas e incluye muchas técnicas, entre ellas las estadísticas. El proceso de descubrimiento de información está formado por las siguientes etapas: preprocesado, aplicación de técnicas de minería de datos (una puede ser estadística) y evaluación e interpretación de los resultados. C. Reglas de Asociación El descubrimiento de reglas de asociación es una tarea importante. Los métodos comunes son: Apriori, FP-crecimiento, y algoritmos genéticos. Estos algorit-
Capítulo X, pp. 110 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
111
mos generalmente trabajan con datos discretos, pero en realidad la mayoría de los conjuntos de datos se compone de atributos discretos y continuos [14]. Cada vez son más las empresas y organizaciones que intentan buscar una solución en los datos almacenados en sus bases de datos históricas. Esto ha hecho que los desarrollos de sistemas destinados a realizar procesos de explotación de datos sean cada vez más frecuentes y complejos. Aplicación de las reglas de asociación: Identificación de aplicaciones para las técnicas existentes, y desarrollo de nuevas técnicas para dominios tradicionales o de nueva aplicación, como el comercio electrónico y la bioinformática, planificación de ciudades, identificación de barrios con conflicto en función de valores sociodemográficos [15]. Los ingenieros de software aplican algoritmos de minería de datos a varias tareas de ingeniería de software, lo cual plantea varios desafíos [16]: la unificación de requisitos, la gestión de patrones y datos complejos, el tratamiento de grandes volúmenes de datos y la implementación de procesos de minería en tiempo real. D. Funcionalidad del Algoritmo Apriori Luego de seleccionar el conjunto de datos provenientes de una bodega de datos se realiza la carga de datos para el algoritmo Apriori. En su primera iteración, el algoritmo toma la totalidad de los registros y los explora, a la vez que va realizando el cálculo de la frecuencia de cada ítem o variable, selecciona las variables con mayor frecuencia y descarta las de menor frecuencia. De esta operación queda un nuevo conjunto de datos, que el algoritmo utiliza para realizar las primeras relaciones entre variables, así surge un nuevo conjunto de datos que es tomado por el algoritmo para continuar las iteraciones. El algoritmo busca reducir el conjunto de datos hasta quedarse con las variables que se relacionen con mayor frecuencia y generar las reglas de asociación. Cinco etapas se siguen para obtener las reglas de asociación a partir de la aplicación del algoritmo Apriori, cada etapa indica un número de tareas específicas. La Figura 1 ilustra estas etapas.
Figura 1. Etapas que sigue el algoritmo Apriori para analizar y relacionar las variables IV. RESULTADOS A. Método Propuesto El método está compuesto por seis etapas que deben seguirse en forma secuencial. El método se comporta como una serie de actividades que se proponen para implementar un componente que apoya la interpretación de resultados obtenidos luego de aplicar el algoritmo Apriori. Las fases que propone el método consisten en caracterizar y seleccionar una técnica de minería de datos, posteriormente conocer la funcionalidad y las características de la técnica, luego especificar el componente que extenderá la técnica, a continuación, se diseña el componente que extiende el algoritmo y, finalmente, se implementa. En la Figura 2 se ilustran las etapas del método propuesto, y luego se presenta el detalle de cada una de ellas.
Figura 2. Método para la construcción que indica los pasos para crear una herramienta de minería de datos
Capítulo X, pp. 111 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
112
1) Especificación del Método Propuesto Técnicas de minería de datos: Aquí se enuncian las técnicas para considerar: Reglas de Asociación, técnica algorítmica Apriori. En la Figura 3 se ilustran las tareas que implica esta etapa.
Figura 5. Tareas para extender la técnica Proponer caso: Dentro de la técnica de asociación, utilizando el algoritmo Apriori, se necesita tener acceso a la muestra que se desea manipular para obtener conocimiento. La Figura 6 ilustra las tareas para esta etapa.
Figura 3. Tareas para la selección de la técnica seleccionada Estudiar la técnica: Selección de la técnica de Reglas de Asociación, representada en el “Algoritmo Apriori”, y conocer sus componentes, ciclos, y módulos. Las tareas de esta etapa se ilustran en la Figura 4.
Figura 6. Tareas para la obtención de conocimiento Diseñar: Este modelo se ha diseñado de tal manera que al momento de ingresar la información del origen de datos seleccionado, se deben pasar como parámetros: el código de la transacción, el código, el nombre y la cantidad de ítems, con lo cual la aplicación que se desea desarrollar lleva a cabo un proceso que deja listos los datos para empezar a realizar el proceso de gestión de conocimiento sobre la muestra. Implementar: Implementar el algoritmo utilizando un lenguaje de programación OO, y sistemas gestores de bases de datos.
Figura 4. Tareas para estudiar la técnica seleccionada
Extensión de la técnica: Determinar el proceso para obtener los ítems más frecuentes. Para lograrlo se debe identificar, caracterizar y conocer la técnica estadística para establecer las asociaciones entre variables. Identificar, caracterizar y conocer la técnica de inteligencia artificial que permite la toma de decisiones para proponer un módulo intérprete de resultados. Las tareas de esta etapa se ilustran en la Figura 5.
Los ítems de cada transacción se ingresan por separado, y tienen como identificador el ID de la transacción, si el ítem no está registrado en la tabla de ítems, primero se agrega a la tabla y luego se ingresa el movimiento a la tabla de transacciones. En la tabla de ítems se maneja el campo frecuencia, el cual aumenta automáticamente cada vez que dicho ítem aparece al ingresar un nuevo movimiento a la tabla de transacciones, esta frecuencia se utiliza después para hacer el primer barrido de las muestras, que se hace de acuerdo con el mínimo de soporte establecido para la muestra poblacional.
Capítulo X, pp. 112 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
Todos aquellos ítems que estén por debajo de dicha muestra son descartados, y después de este proceso se genera un nuevo grupo poblacional con el cual se empiezan a buscar las reglas de asociación con un nivel de soporte y confianza adecuado, de acuerdo con los parámetros previamente establecidos. 2) Interfaces y Funcionalidad de la Herramienta Configuración del caso de uso: Sobre esta interfaz se especifican los datos correspondientes a la descripción del caso específico que proporcione a la herramienta las variables necesarias para su posterior procesamiento e interpretación de la información (ver Figura 7).
113
Los patrones relevantes se refieren a las variables importantes que se ingresan al modelo con las cuales se espera obtener correlaciones o asociaciones interesantes con los datos. Selección y carga de datos: Esta interfaz consta de varios pasos. Veamos: Paso 1: La herramienta permite realizar una selección desde dos entornos: un archivo plano o una Base de datos (ver Figura 8).
Figura 8. Interfaz para la selección del origen de los datos
Figura 7. Configuración del caso de uso Las variables se refieren al sector al que pertenece la empresa, en este caso la variable que suministra o proporciona los datos, ejemplo: sector salud, sector confecciones, sector educativo, etc.
Cuando se trata de una base de datos se podrá especificar el controlador, lo que depende del sistema gestor de base de datos donde reposen los datos. Paso 2: Las bases de datos pueden estar en formato SQL Server y MySQL. En el caso de un archivo plano, simplemente se especifica la ruta donde se encuentra y se selecciona el archivo. Por último, se carga (ver Figura 9).
El área delimita o especifica aún más los datos, y permite conocer qué dependencias o departamentos de una organización proporcionan los datos que van a ser procesados y evaluados. Ejemplo: el área de dirección, administración, ventas, producción, contabilidad y finanzas, sistemas y tecnologías, etc. El problema analizado especifica las características de la variable dependiente, y de las independientes, y muestra entonces el objeto de análisis y los atributos que permiten fortalecerlo. Se concreta la naturaleza de los datos y hacia dónde apunta el análisis de la información que se quiere depurar, procesar, modelar, e interpretar.
Figura 9. Selección de archivo plano
Capítulo X, pp. 113 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
114
Paso 3: La interfaz en forma amigable guía al usuario para realizar el proceso a través de controles tipo botón de comando, y botón Radio. Una vez se haya hecho el proceso de carga de los datos, el sistema indica que es posible continuar a otra interfaz para realizar otra etapa del proceso (ver Figura 10).
Los dos últimos parámetros corresponden a la especificación del usuario y la contraseña. Esto se realiza cuando la base de datos exige un nombre de usuario y una contraseña, es decir, una cuenta de usuario. En caso de no especificar estos parámetros, es porque la conexión se está realizando directamente a través de la seguridad integrada del sistema operativo. Paso 5: Una vez establecidos los parámetros obligatorios (Controlador o Driver, servidor, Base de Datos), se presiona el botón conectar, si la conexión fue satisfactoria, al lado derecho de la interfaz se cargan los objetos de la base de datos indicada previamente.
Figura 10. Visualización de los datos contenidos en el origen seleccionado Una vez cargados, los datos se visualizarán en la parte derecha de la interfaz en forma de lista. Paso 4: Cuando se accede a Base de Datos se habilita una interfaz desde la cual se especifican los parámetros necesarios para establecer la conexión con el sistema Gestor de la Base de Datos; en el caso de la Figura 11, se especifica el driver o controlador de SQL Server. Primero se selecciona el driver o controlador, posteriormente se indica el nombre de la base de datos, luego se especifican el servidor y el puerto sobre el cual se conecta y direcciona la base de datos.
Figura 11. Selección del origen de la información desde Base de Datos
Figura 12. Selección de la tabla que contiene los datos para procesar El usuario selecciona el objeto que contiene los datos necesarios para realizar el proceso y presiona el botón Cargar Datos. Paso 6: Al lado derecho se cargan los ítems o elementos contenidos en el objeto seleccionado, estos ítems son los datos que se utilizan como datos de entrenamiento para el modelo, el cual se genera a partir de la aplicación de la técnica de minería de datos específica (ver Figura 13).
Figura 13. Carga de los ítems o elementos contenidos en el objeto seleccionado
Capítulo X, pp. 114 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
Paso 7: En esta interfaz el usuario selecciona la Mínima frecuencia, y posteriormente se cargarán las variables de tipo dependiente e independiente (ver Figura 14).
Figura 14. Interfaz para la carga de las variables de tipo dependiente e independiente Las variables dependientes son las que se comportan como predicción del proceso, y las independientes son las de entrada y las que dan fuerza al análisis de los datos. Luego de la carga de las variables se presiona el botón Continuar. Paso 8: El usuario tiene la oportunidad de seleccionar cuáles de las variables cargadas (dependientes e independientes) harán parte del proceso (ver Figura 15). La idea es que el proceso no se realice con todos los ítems, ya que esto dificultaría la interpretación de los resultados.
115
Paso 9: En esta etapa del proceso se especifica el Mínimo Soporte y la Mínima Confianza para las variables dependientes e independientes que se seleccionaron en la etapa anterior (ver Figura 16).
Figura 16. Interfaz para la especificación del Mínimo Soporte y la Mínima Confianza Con estos estadísticos se generan los conjuntos de relaciones a partir de las variables dependientes e independientes. Igualmente se muestran las reglas de asociación interesantes obtenidas en el modelo. Paso 10: Visualización de los ítems, en términos de conjuntos dependientes e independientes, y las reglas de asociación obtenidas (ver Figura 17).
Figura 17. Visualización de los ítems, en términos de conjuntos dependientes e independientes, y las Reglas de Asociación obtenidas
Figura 15. Carga de las variables de tipo dependiente e independiente
Las reglas se visualizan respetando la estructura de una regla de asociación, la cual implica una premisa y una conclusión, con un separador en el medio de las dos variables, que significa implica.
Capítulo X, pp. 115 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
116
Paso 11: Esta interfaz corresponde al informe que genera el sistema luego de presentar los conjuntos con las variables dependientes e independientes y las reglas interesantes obtenidas. El informe se presenta como la interpretación de los datos generados por el algoritmo o técnica de minería de datos aplicada, en este caso el algoritmo Apriori (ver Figura 18).
El método, como un valor agregado desde la academia, potencializa la capacidad de los investigadores respecto a la temática de minería de datos, y permea igualmente el sector organizacional. Todo esto con un elemento de innovación, porque presenta un informe cualitativo que describe el conjunto de datos obtenido a partir de la técnica de minería aplicada. El prototipo está orientado a fortalecer el sector académico y el organizacional, enriqueciendo a los investigadores y analistas con elementos teóricos y prácticos que enfatizan en la funcionalidad, la potencialidad y el aporte de una técnica reconocida y aplicada como lo es el algoritmo Apriori.
Figura 18. Informe que genera el sistema luego de presentar los conjuntos con las variables dependientes e independientes La interpretación presenta al analista de datos un informe con las variables dependientes e independientes del proceso de minería, con campos como: transacciones procesadas, total de ítems o variables, los ítems seleccionados, etc. Luego muestra el total de reglas interesantes generadas, reglas de asociación que cumplieron con los mínimos criterios de soporte y confianza. Igualmente, muestra el total de reglas descartadas, es decir, las que no cumplieron con los estadísticos inicialmente indicados. V. CONCLUSIONES El método especifica y estandariza toda una secuencia de pasos lógicos para construir una herramienta de minería de datos que integra una técnica o algoritmo que permite obtener conocimiento a partir de una colección de datos o muestra de entrenamiento de un modelo específico. Para el analista de datos, se convierte en una herramienta que facilita la interpretación de los modelos obtenidos a partir de los criterios establecidos para el entrenamiento del algoritmo, lo que da valor agregado a la toma de decisiones.
Para la etapa de interpretación de resultados se propone como trabajo futuro integrar al sistema reglas de producción y un lenguaje controlado, que enriquezcan y demuestren la trazabilidad y las coherencias de resultados frente a una base de conocimientos que acumula experiencias derivadas de la dinámica asociada a los procesos de negocio de la organización. REFERENCIAS [1] L. Polkowski (Ed.), Rough sets in knowledge discovery 2: Applications, Case Studies and Software Systems, vol. 19. Physica-Verlag, Germany, 2013. [2] J. Han, J. Pei, and M. Kamber, Data mining: concepts and techniques. Elsevier, 2011. [3] R. Agrawal and R. Srikant, “Fast algorithms for mining association rules”. In Proc. 20th int. conf. very large data bases, VLDB, vol. 1215, 1994, pp. 487-499. [4] A. B. E. D. Ahmed and I. S. Elaraby, “Data Mining: A prediction for Student’s Performance Using Classification Method”. World Journal of Computer Application and Technology, vol. 2, n.° 2, pp. 43-47, 2014. [5] J. S. Park, M. S., Chen, and P. S. Yu, “An effective hash-based algorithm for mining association rules”. ACM, vol. 24, n.° 2, pp. 175-186, 1995. [6] Y. Zhao (2015), “Association Rule Mining with R.”, R and Data Mining Workshop for the Master of Business Analytics course, Deakin University, Melbourne. Disponible en: http://www2.rdatamining. com/uploads/5/7/1/3/57136767/rdatamining-slidesassociation-rules.pdf.
Capítulo X, pp. 116 de 118, ISBN 978-958-59687-6-9
Investigación e Innovación en Ingeniería de Software
[7] M. Al-Maolegi and B. Arkok (2014), “An improved Apriori algorithm for association rules”. [On line]. arXiv preprint arXiv:1403.3948. Disponible en: https://arxiv.org/abs/1403.3948. [8] Y. Farhang, S. M. Shamsuddin, and H. Fattahi, “Granular Computing Based Data Mining in the Views of Rough Set and Fuzzy Set”. In International Conference on Informatics Engineering and Information Science, Springer Berlin Heidelberg, pp. 624629, 2011. [9] F. Wang, H., Li, and R. Li, “Data mining with independent component analysis”. In 2006 6th World Congress on Intelligent Control and Automation, IEEE, vol. 2, pp. 6043-6047, 2006. [10] A. D. L. C. Domínguez Rodríguez, “Herramienta para la integración de modelos de Minería de Datos”. Revista Estudiantil Nacional de Ingeniería y Arquitectura. RNPS 2359, vol. 2, n.° 2, 2011. [11] R. García Martínez, R. Lelli, H. Merlino, L. Cornachia, D. Rodriguez, P. Pytel, y H. Arboleya, Ingeniería de proyectos de explotación de información para pymes. Grupo Investigación en Sistemas de Información, Departamento Desarrollo Productivo y Tecnológico, Universidad Nacional de Lanús, 2009. [12] J. M. Moine, S. Gordillo, y A. S. Haedo, “Análisis comparativo de metodologías para la gestión de proyectos de minería de datos”, en CACIC XVII Congreso Argentino de Ciencias de la Computación, 2011. [13] C. M. Z. Jaramillo, G. G. Calderón, y J. J. C. Mojica, “Generación automática del diagrama entidad-relación y su representación en SQL desde un lenguaje controlado (UN-LENCEP)”, Revista Ingenierías Universidad de Medellín, vol. 10, n.° 18, pp. 127-135, 2011. [14] G. Yang, Mining Association Rules from Data with Hybrid Attributes Based on Immune Genetic Algorithm, FSKD, China, 2010. [15] J. C. Riquelme, R. Ruiz, and K. Gilbert, “Minería de Datos: Conceptos y Tendencias”, Inteligencia Artificial. Revista Iberoamericana de Inteligencia Artificial, vol. 10, n.° 29, pp. 11-18, 2006. [16] T. Xie, S. Thummalapenta, D. Lo, and C. Liu, “Data mining for software engineering”, Computer, vol. 42, n.° 8, pp. 55-62, 2009.
117
AUTORES Juan Camilo Giraldo. Profesor de tiempo Completo del Tecnológico de Antioquia I.U. Es ingeniero de sistemas, magíster en Ingeniería y doctor en Ingeniería de Sistemas e Informática. Con más de 10 años de experiencia académica, ha sido catedrático en los niveles de pregrado y posgrado en diferentes universidades de la ciudad de Medellín. Es investigador del grupo GIISTA del Tecnológico de Antioquia I.U. Darío Enrique Soto. Profesor asociado de tiempo completo del Tecnológico de Antioquia I.U. Es ingeniero de sistemas, magíster en Ciencias Computacionales y candidato a doctor en Ingeniería de Sistemas e Informática. Con más de 10 años de experiencia académica, ha sido catedrático en los niveles de pregrado y posgrado en diferentes universidades del país. Es investigador del grupo GIISTA del Tecnológico de Antioquia I.U. Fabio Alberto Vargas. Es ingeniero de sistemas por la Universidad Cooperativa de Colombia (1999), especialista en Ingeniería de Software por la Universidad Nacional de Colombia (2003), M. S. en Ingeniería de Sistemas por la Universidad Nacional de Colombia (2010) y doctor en Ingeniería de Sistemas por la Universidad Nacional de Colombia (2015). Es profesor de tiempo completo categoría asistente y director de investigación en el Tecnológico de Antioquia - Institución Universitaria. Sus áreas de interés son: ingeniería de requisitos, pruebas de software, desarrollo de software e inteligencia ambiental. Jovani Alberto Jiménez Builes. Actualmente es profesor titular de la Facultad de Minas de la Universidad Nacional de Colombia. Medellín. Es licenciado en Informática en la Universidad de Medellín y recibió una maestría en ciencias en Ingeniería de Sistemas, y un Ph.D. en Ingeniería de la Universidad Nacional de Colombia. Sus áreas de investigación incluyen: inteligencia artificial en la educación, gestión del conocimiento, e-learning y t-learning. León Alberne Torres Restrepo. Es ingeniero de sistemas del Tecnológico de Antioquia I.U., actualmente es candidato a magister del CENIDET – Cuernavaca, México.
Capítulo X, pp. 117 de 118, ISBN 978-958-59687-6-9
Este libro se terminó de diseñar y animar en el mes de Octubre del 2017, en Divegráficas Ltda Medellín - Colombia