kemapmobile: una adaptación de la herramienta...

13
Resumen Este trabajo describe el proceso de creación de la herramienta software KemapMobile para la plataforma Android. El artefacto es una adaptación del software de escritorio KeMap que se integra en la plataforma educativa VerilUOC y permite a los estudiantes conectarse a ella para descargar, en la aplicación, ejercicios con los que poner a prueba y afianzar sus conocimientos sobre la simplificación de funciones lógicas booleanas con mapas de Karnaugh y tablas de verdad. La arquitectura cliente-servidor de la aplicación permite a los estudiantes disponer de ejercicios personalizados, y al profesorado obtener datos sobre el uso de la herramienta y sobre la progresión del alumnado. 1. Introducción La necesidad de generar de una forma sencilla y rápida soluciones cercanas a la mínima para resolver ecuaciones booleanas con las que poder simplificar circuitos lógicos combinacionales dio pie a la aparición de diversas técnicas que solventan el problema sin usar los postulados y teoremas del álgebra de Boole, que tiene como gran inconveniente no conocer a priori el orden de aplicación de los teoremas que se deben utilizar para obtener la solución mínima. Una de estas técnicas la describió M. Karnaugh en 1953, tomando como base para desarrollar su idea un trabajo anterior de E.W. Veicht, y cuya creación justificó argumentando que con la nueva técnica se evita el inconveniente de la lentitud en la búsqueda de la solución que deriva de desconocer el orden en que se deben aplicar las reglas del álgebra de Boole en este tipo de problemas, y se simplifica la dificultad de la resolución por no ser necesario usar dichas reglas[1]. El método de Karnaugh consiste en trasladar los datos de una función lógica o una tabla de verdad que representa el diseño de un circuito lógico combinacional a una matriz o mapa, y extraer los términos mínimos que en forma de suma de productos o en forma de producto de sumas conformarán la solución mínima. Karnaugh detalla en su texto una serie de reglas que permiten hacer agrupaciones de celdas adyacentes (adyacencia vertical y horizontal) de acuerdo con su contenido y extraer los términos mínimos con la observación y el reconocimiento de patrones geométricos que generan las agrupaciones de celdas sobre la matriz. La razón del trabajo de investigación actual es solventar un problema cuya pregunta es si es posible crear un producto computacional que se ejecute en dispositivos móviles basados en la plataforma Android y que sirva como herramienta de aprendizaje para la comprensión de la técnica que Karnaugh ideó y de otros conceptos asociados a la síntesis de circuitos lógicos combinacionales, como son las tablas de verdad, los términos mínimos y las expresiones simplificadas en forma de suma de productos. El creciente uso de teléfonos móviles y tabletas en nuestra sociedad y las evaluaciones con resultado positivo hechas sobre el impacto que tuvo en los estudiantes el uso de otras herramientas software educativas con funcionalidades similares[2-6] justifica, en opinión del autor, el desarrollo de este trabajo. Este documento se estructura en los siguientes capítulos: 1. Introducción 2. Contribución 3. Estado del arte 3.1.Conclusiones de la revisión KemapMobile: una adaptación de la herramienta software KeMap a la plataforma Android Autor: Diego Acaymo GonzálezArroyo Director del proyecto: David Bañeres Besora TFM de investigación – Máster Universitario de Software Libre Universitat Oberta de Catalunya [email protected]

Upload: ledien

Post on 19-Sep-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Resumen

Este trabajo describe el proceso de creación de laherramienta software KemapMobile para laplataforma Android. El artefacto es una adaptacióndel software de escritorio KeMap que se integra en laplataforma educativa VerilUOC y permite a losestudiantes conectarse a ella para descargar, en laaplicación, ejercicios con los que poner a prueba yafianzar sus conocimientos sobre la simplificación defunciones lógicas booleanas con mapas de Karnaugh ytablas de verdad. La arquitectura cliente-servidor dela aplicación permite a los estudiantes disponer deejercicios personalizados, y al profesorado obtenerdatos sobre el uso de la herramienta y sobre laprogresión del alumnado.

1. Introducción

La necesidad de generar de una forma sencilla yrápida soluciones cercanas a la mínima para resolverecuaciones booleanas con las que poder simplificarcircuitos lógicos combinacionales dio pie a la apariciónde diversas técnicas que solventan el problema sin usarlos postulados y teoremas del álgebra de Boole, quetiene como gran inconveniente no conocer a priori elorden de aplicación de los teoremas que se debenutilizar para obtener la solución mínima.

Una de estas técnicas la describió M. Karnaugh en1953, tomando como base para desarrollar su idea untrabajo anterior de E.W. Veicht, y cuya creaciónjustificó argumentando que con la nueva técnica seevita el inconveniente de la lentitud en la búsqueda dela solución que deriva de desconocer el orden en que sedeben aplicar las reglas del álgebra de Boole en este

tipo de problemas, y se simplifica la dificultad de laresolución por no ser necesario usar dichas reglas[1].

El método de Karnaugh consiste en trasladar losdatos de una función lógica o una tabla de verdad querepresenta el diseño de un circuito lógicocombinacional a una matriz o mapa, y extraer lostérminos mínimos que en forma de suma de productoso en forma de producto de sumas conformarán lasolución mínima. Karnaugh detalla en su texto unaserie de reglas que permiten hacer agrupaciones deceldas adyacentes (adyacencia vertical y horizontal) deacuerdo con su contenido y extraer los términosmínimos con la observación y el reconocimiento depatrones geométricos que generan las agrupaciones deceldas sobre la matriz.

La razón del trabajo de investigación actual essolventar un problema cuya pregunta es si es posiblecrear un producto computacional que se ejecute endispositivos móviles basados en la plataforma Androidy que sirva como herramienta de aprendizaje para lacomprensión de la técnica que Karnaugh ideó y deotros conceptos asociados a la síntesis de circuitoslógicos combinacionales, como son las tablas deverdad, los términos mínimos y las expresionessimplificadas en forma de suma de productos. Elcreciente uso de teléfonos móviles y tabletas en nuestrasociedad y las evaluaciones con resultado positivohechas sobre el impacto que tuvo en los estudiantes eluso de otras herramientas software educativas confuncionalidades similares[2-6] justifica, en opinión delautor, el desarrollo de este trabajo.

Este documento se estructura en los siguientescapítulos:

1. Introducción 2. Contribución 3. Estado del arte

3.1.Conclusiones de la revisión

KemapMobile: una adaptación de la herramienta software KeMap a laplataforma Android

Autor: Diego Acaymo GonzálezArroyoDirector del proyecto: David Bañeres Besora

TFM de investigación – Máster Universitario de Software LibreUniversitat Oberta de Catalunya

[email protected]

4. Metodología de la investigación 5. Implementación de KemapMobile

5.1.Android: paradigma de desarrollo 5.2.Desarrollo del artefacto 5.3.Contratiempos durante la implementación

6. Discusión de los resultados 7. Conclusiones 8. Referencias 9. Publicación del artículo

2. Contribución

El artefacto que resulta de esta investigación es unainstanciación que sirve como prueba de concepto paramostrar la interacción con los métodos y modelos quese implementan en la plataforma educativaVerilUOC[6] de la Universitat Oberta de Catalunya, aladaptar la herramienta software ya existente KeMappara ejecutarla en dispositivos móviles compatibles conla plataforma Android.

KeMap es una herramienta software de escritorioque se ejecuta en máquinas virtuales Java compatiblescon la versión 1.6 del JRE de Oracle y en función delusuario que se valida en la aplicación, contra lainfraestructura de la Universitat Oberta de Catalunya,descarga de la plataforma VerilUOC un conjunto deejercicios para que los alumnos puedan practicar yafianzar sus conocimientos sobre el método de losmapas de Karnaugh y de los conceptos asociados.Estos ejercicios disponen de una descripción delproblema que se debe resolver, y permiten que severifique la solución del alumno según las opcionesque se escogen entre las permitidas para cada ejercicio.

La aplicación es capaz de comprobar la validez delas modificaciones en la tabla de verdad y en el mapade Karnaugh, así como validar las agrupaciones deceldas en el mapa y la expresión simplificada en formade suma de productos. Después de comprobar lasolución que se introdujo, KeMap indica si lasrespuestas fueron correctas para cada opción deverificación que se escogió, y en caso de no serlomuestra pistas acerca de en que difiere la soluciónintroducida de la solución correcta. Para cada ejercicio,además de la descripción del problema, la aplicaciónmuestra un registro con el número de veces que seresolvió y el número de intentos que fueron correctos.También permite guardar el estado de resolución delejercicio en el disco y así continuar con el problema enotra ocasión.

La adaptación de esta herramienta software aentornos móviles como resultado de este trabajo deinvestigación se llama KemapMobile, y entiende elautor que llena un hueco existente en la actualidad,

pues si bien existen productos con funcionalidadesparecidas para entornos de escritorio, no se haencontrado ninguno que sea compatible con laplataforma Android y que tenga similarescaracterísticas con respecto a las funcionalidades o altipo de arquitectura de KemapMobile. La arquitecturacliente-servidor en la que se basa el producto permiteal profesorado recabar datos sobre su uso y sobre eléxito de los alumnos al resolver los ejercicios, ytambién permite modificar ejercicios existentes oañadir otros nuevos y que los cambios se reflejen en elterminal móvil del usuario que ejecuta la aplicación enel momento que se publique la modificación o adicióndel ejercicio.

3. Estado del arte

Esta revisión del estado del arte tiene como objetivodescribir los avances más significativos sobre losartefactos que tienen alguna relación con el métododescrito por M. Karnaugh[1], una de las técnicas desimplificación de mayor uso para trabajar confunciones lógicas que cuenten con un número devariables no superior a seis. El método de los mapas deKarnaugh cuenta con una serie de reglas que permitenagrupar (mediante el reconocimiento de patronesgeométricos) celdas en una matriz que contiene datosprovenientes de una función lógica o una tabla deverdad, y que son una forma de representar un circuitológico combinacional.

A continuación se describen las características mássignificativas de cada artefacto que se analizó duranteel desarrollo de la investigación:

WinLogiLab → El artículo de investigación escritopor Charles Hacker y Renate Sitte dio lugar aldesarrollo, por parte del primero de los autores, de unainstanciación del artefacto descrito en el documento[3]para la Universidad de Griffith, y tiene una licenciaprivativa que permite de forma gratuita su uso con finesacadémicos. La aplicación es compatible con sistemasoperativos Microsoft Windows posteriores a la versión95, y no fue posible averiguar el lenguaje deprogramación con el que se desarrolló por no apareceren el artículo ni en la página web de la herramienta.

WinLogiLab contiene un conjunto de ocho móduloscon diversas funcionalidades en cada uno de ellos, y delos que sólo están relacionados con el tema deinvestigación sobre simplificación de funciones lógicascon mapas de Karnaugh, y son BoolTut y WinBoolean.El módulo BoolTut provee al alumno de un sistema detutoría inteligente con el uso de una guía que describepaso a paso el procedimiento de resolución de un mapade Karnaugh o del algoritmo de Quine-McCluskey a

partir de los datos existentes en una tabla de verdad.Este módulo también cuenta con un juego en el que sele presenta al usuario un mapa de Karnaugh para queeste agrupe las celdas necesarias y el programa puedacomprobar la corrección del ejercicio, además demostrar en la misma ventana otro mapa con la solucióncorrecta.

El segundo módulo objeto de estudio esWinBoolean, cuya creación responde a la idea demostrar las relaciones entre los circuitos lógicoscombinacionales, el álgebra booleana y las tablas deverdad. Este módulo permite definir los datos inicialescon cualquiera de las tres formas de representacióndescrita y obtener la solución mínima con el método delos mapas de Karnaugh, para lo que muestra junto a lasolución, la tabla de verdad y el mapa con laagrupación de celdas correcta, y en otra pestaña de lamisma ventana aparece la representación de la soluciónmínima en forma de diagrama de circuitoscombinacionales.

Karmin → El artefacto descrito en el documento[4] es el resultado de un trabajo de investigación sobreenlaces conceptuales hecho por Raúl I. Jáuregui y otrospara la Universidad Nacional de la Patagonia “SanJuan Bosco”. El programa está escrito en el lenguaje deprogramación C# y se ejecuta sobre sistemasoperativos Microsoft Windows que dispongan de laplataforma .NET a partir de la versión 2.

Al contrario que muchas de las herramientas objetode esta evaluación, Karmin cuenta únicamente con dosfuncionalidades básicas. La primera permite al usuariorellenar los datos de una tabla de verdad para que elprograma muestre la función lógica original y calculela simplificación, mientras que en la segunda el usuariopuede rellenar un mapa de Karnaugh y el softwarecalcula la función original y el resultado simplificado,la desventaja es que no muestra la agrupación de lasceldas en el mapa, con lo que la utilidad de laherramienta se limita a calcular los resultados a partirde esos dos únicos métodos de entrada de datos.

Uno de los puntos fuertes de Karmin es la sencillezde uso, y que cuenta con una interfaz gráfica cuidada yfácil de adaptar a terminales móviles de pantallareducida, además de contar con un servicio de ayudageneral con información acerca de la instalación y delfuncionamiento del programa.

Karma → Esta aplicación descrita por C.E. Klocken el documento[7] y desarrollada por F. R. Schneidery otros en el Instituto de Informática de la UniversidadFederal de Rio Grande do Sul tiene una licencia GPLque la convierte en software libre, se implementó conel lenguaje de programación Java y se ejecuta como unapplet en navegadores web o como aplicación de

escritorio sobre sistemas operativos que dispongan deuna máquina virtual Java compatible.

Karma dispone de una interfaz gráfica atractiva yfácil de adaptar a las pantallas reducidas de losdispositivos móviles por su diseño compacto ymodular, que cuenta con nueve módulos de los quesólo dos tienen una relación directa con la técnica delos mapas de Karnaugh. El primero consiste en unsistema de aprendizaje que combina el uso de juegoscon la tutoría inteligente, donde los juegos son depreguntas cortas que el usuario debe responder paraque el software decida si lo ha hecho correctamente, ylos módulos de tutoría inteligente muestran losresultados según los datos que introduzca el usuario,guiándolo durante todo el proceso. Este sistema deaprendizaje cuenta con ejercicios para practicarconceptos relacionados con la agrupación de celdas enun mapa de Karnaugh.

El segundo módulo del programa que guardarelación con el tema de investigación actual muestra deforma conjunta una tabla de verdad y un mapa deKarnaugh asociado a esta, en la que ambas formas derepresentar los datos son editables por el usuario ydonde se reflejan los cambios al modificar cualquierade las dos, con lo que aporta valor al fin pedagógico dela herramienta. Los datos del mapa de Karnaugh y de latabla de verdad se pueden crear de forma manual por elusuario, y también se pueden cargar desde plantillascontenidas en la aplicación para que esta devuelva laexpresión simplificada, aunque también es capaz dereducir expresiones lógicas que se introducen en formade función. El software hace los cálculos con elalgoritmo de Quine-McCluskey y al finalizar el procesomuestra los implicantes seleccionados y los pasos delalgoritmo. Este módulo cuenta con un servicio deayuda básico que describe su funcionamiento.

Developing mobile learning applications forelectrical engineering courses → Los autores JoshPotts, Nick Moore y Somsak Sukittanon presentan enel texto[6] el diseño y creación de un artefacto para laUniversidad de Tennesse con la que ayudar a losestudiantes en la adquisición y comprensión deconceptos relacionados con la lógica digital y elprocesamiento de señales. En el documento publicadose indica que el software se encuentra disponible parasu descarga desde el repositorio de aplicaciones para laplataforma Android de Google, pero no se pudoencontrar y por tanto tampoco se pudo evaluar lainstanciación del artefacto. En la publicación deconferencia[2] se explica que el programa escompatible con los sistemas operativos GoogleAndroid y Apple iOS, donde la versión para la primeraplataforma se desarrolló con el lenguaje de

programación Java y la versión para iOS se creó con ellenguaje de programación Objective-C.

La aplicación tiene dos módulos diferentes, uno seorienta hacia el campo de la lógica digital y el otrohacia el procesamiento de señales (este último noguarda relación con el trabajo de investigación actual).El primer módulo tiene seis funcionalidades diferentes,de las que sólo dos tienen una relación directa con eltema de estudio. La primera de estas funcionalidadessirve para evaluar la salida que genera un circuitocombinacional de acuerdo con los datos de entrada, ycomprobar si los valores de salida introducidos por elusuario son correctos. La otra funcionalidad interesantecon que cuenta la aplicación muestra a los alumnos unmapa de Karnaugh para que estos, a partir de los datosque contiene el mapa, puedan encontrar la soluciónmínima. Una limitación de la aplicación es que alcomprobar el resultado no muestra en el mapa deKarnaugh las agrupaciones de celdas.

A game based learning content for tutoring insimplifying boolean functions → La instanciación delartefacto que creó Yong Suk Choi para la UniversidadHanyang de Seúl como resultado de la investigacióndescrita en el artículo[5], no se pudo obtener paraevaluarla por no aparecer en el documento ningunadirección desde la que descargarlo ni ningunareferencia acerca del nombre del producto que pudierausarse para encontrarlo en Internet. En el textotampoco se hace mención a la licencia con que cuentael programa ni a las plataformas de ejecucióncompatibles.

El artículo indica que la herramienta combina dosmodelos de aprendizaje, que son la tutoría inteligente yla enseñanza basada en juegos para motivar alestudiante y facilitar su comprensión sobre la técnicade los mapas de Karnaugh. En el juego el autor haceuna analogía entre una red de pesca y un mapa deKarnaugh para que el alumno practique las reglas deagrupación de celdas, mientras que la tutoría inteligentese implementa con un mapa de Karnaugh en el que elalumno debe agrupar las celdas de acuerdo alcontenido de estas; cuando el usuario crea un grupoque no es correcto, la aplicación muestra comentarios oindicaciones en forma de pistas que sirvan de guía paracompletar el ejercicio.

Una de las diferencias con otras herramientasevaluadas que usan la tutoría inteligente, la enseñanzabasada en juegos o una combinación de las dos, es eldiseño de la interfaz gráfica de la aplicación, que seasemeja a un videojuego clásico con varios personajes(avatares) y un escenario colorido que muestra untemporizador y un contador de puntos. La mayorlimitación del software es la escasez de

funcionalidades, ya que no trata conceptosestrechamente relacionados con los mapas de Karnaughcomo son las tablas de verdad o las funciones lógicas, yse centra exclusivamente en afianzar conceptos sobre laagrupación de celdas.

Boole-Deusto → La herramienta creada por JavierGarcía Zubía, Jesús Sanz Martínez y Borja SotomayorBasilio en el departamento de arquitectura decomputadores de la universidad de Deusto fue creadacon el lenguaje de programación C++, y cuenta conuna licencia privativa cuyo uso y distribución es libre sise hace con fines personales o educativos.

Boole-Deusto se creó para trabajar sobre lossistemas operativos de la familia Microsoft Windows,sin que existan en la actualidad versiones conocidaspara los sistemas operativos de plataformas móviles, yque cuenta con una interfaz gráfica poco atractiva quecarece de un servicio de ayuda o instrucciones de usopara las diferentes funcionalidades con las que cuentael programa. Esta aplicación se divide en dossecciones, en la que la primera se orienta hacia elanálisis y el diseño de circuitos combinacionales,mientras que la segunda lo hace hacia el análisis y eldiseño de circuitos secuenciales. La parte relacionadacon los circuitos secuenciales queda fuera de la materiade investigación por lo que sólo se hace referencia a laprimera sección de la herramienta.

Entre las funcionalidades más destacadas en elapartado de lógica combinacional se encuentra laposibilidad de que el usuario pueda definir circuitoscombinacionales con la creación de expresionesbooleanas y con el uso de tablas de verdad, formascanónicas y mapas de Karnaugh. Una característicamuy útil de la aplicación es que al definir un circuitocombinacional con alguno de los métodos descritos, losdatos se reflejan de forma automática en loscomponentes de los demás métodos, si bien tiene lagran desventaja de que el diseño de la herramienta nocuenta con una interfaz gráfica que permita ver almismo tiempo la representación de los datos para losdiferentes métodos. Con los datos introducidos Boole-Deusto es capaz de obtener la solución mínima, aunquelos autores no indican en el documento analizado[8] latécnica de simplificación de funciones lógicas con laque se calcula la expresión mínima, sí indican que setrata de un método no heurístico, por lo que siempredevuelve la solución óptima en forma de suma deproductos o en forma de producto de sumas, con la queel programa puede generar el diagrama del circuitocombinacional resultante de la simplificación.

Otra funcionalidad muy interesante con la quecuenta la aplicación es el “modo aprendizaje”, queconsta de dos pruebas: una en la que el usuario agrupa

las celdas de un mapa de Karnaugh y el softwarecomprueba si la agrupación es correcta, y otra en la queel usuario escribe una suma de productos o un productode sumas y el software comprueba la validez de lasolución.

KVD → Karnaugh-Veicht Diagram (KVD) es unaherramienta[9] creada por Martin Hoffmann en 2011,de la que el autor desconoce si es el resultado de untrabajo de investigación académica por no poderencontrar documentación que lo acredite, permite veren un mapa de Karnaugh la representación de unaexpresión booleana y simplificarla con el algoritmo deQuine-McCluskey.

El uso del programa es muy sencillo y dispone deuna interfaz gráfica muy simple y amigable dondeaparece una mapa de Karnaugh en la que el usuariointroduce los datos que representan la función lógicaque quiere simplificar. Cuando el usuario modifica elvalor de una celda en el mapa, la aplicación compruebasi es posible realizar alguna agrupación, y en casoafirmativo la resalta y calcula el resultado de lasimplificación de acuerdo con el contenido del mapa.

La característica más atractiva de esta aplicación yel motivo por el que se evaluó es que se ejecuta sobrela plataforma Android de Google y es de libre descargay uso, si bien no se especifica la licencia del programaen el repositorio de aplicaciones para Android deGoogle ni en la página web del autor del software.

MiniKarnaugh → La aplicación desarrollada porSerban Stoenescu, de la que se desconoce si es elresultado de un proyecto de investigación, tiene comoprincipal atractivo que es de uso libre, se ejecuta sobre

la plataforma Android de Google y permite simplificarfunciones lógicas. Este software[10] cuenta con unaúnica ventana donde el usuario puede representar uncircuito combinacional en forma de expresión lógica,tabla de verdad o mapa de Karnaugh para que laaplicación devuelva el resultado de la simplificación,con la desventaja de que no muestra las agrupacionesde celdas en el mapa y no informa de la técnica desimplificación que utiliza. Otra limitación de estaherramienta es el diseño poco elaborado de su interfazgráfica de usuario.

3.1. Conclusiones de la revisión

Durante esta revisión del estado del arte se observóque las instanciaciones de artefactos que resultan de losartículos que se escogieron tienen un fin pedagógico, ypara facilitar el aprendizaje del estudiante incorporanmodelos de enseñanza con juegos de preguntas cortas oretos y una tutoría inteligente que usa un sistema deguía con pistas. Una funcionalidad importante desde elpunto de vista pedagógico con la que no todas lasherramientas cuentan es mostrar la agrupación deceldas adyacentes en un mapa de Karnaugh alsimplificar los datos que este contiene, aunque es ciertoque varias aplicaciones hacen hincapié en practicar lasreglas de agrupación y tienen módulos específicos paraque los alumnos las aprendan o afiancen susconocimientos sobre la cuestión. En los documentosque describen los artefactos evaluados que cuentan conla funcionalidad descrita no se hace mención a latécnica que usan para agrupar las celdas del mapa, por

Figura 1. Tabla comparativa de las características

ARTEFACTO Valida las

agrupacionesde celdas

Valida lastablas deverdad

Valida lasexpresiones

simplificadas

Ejercicioscon

enunciado

Arquitecturacliente

servidor

CompatibleplataformaAndroid

WinLogiLab o - - o - -

Karmin - - - - - -

Karma o - - o - -

Developing* o - o o - o

A game based** o - - o - -

Boole-Deusto o - o o - -

K V D - - - - - o

MiniKarnaugh - - - - - o

KemapMobile o o o o o o* Developing mobile learning applications for electrical engineering courses** A game based learning content for tutoring in simplifying boolean functions

lo que fue interesante la lectura de un documento sobresistemas expertos[11] que usa un conjunto de reglasque permite comprobar si dos celdas de un mapa sonadyacentes entre sí, para que según el contenido de lasmismas se pueda decidir si forman un grupo.

Una amplia mayoría del software que resulta de losdocumentos académicos que se evaluaron se diseñaronpara ejecutarse sobre sistemas operativos de la familiaMicrosoft Windows, así que para revisar el estado delarte sobre el tema de investigación en la plataformaAndroid de Google fue necesario contar conaplicaciones de las que, en el momento de escribir estetexto, se desconoce si son el resultado de unainvestigación académica. Para elaborar la revisión delestado del arte sobre el tema de actual, se evaluó unconjunto de herramientas que en su mayoría soninstanciaciones de artefactos que aparecieron comoresultado de proyectos de investigación que siguieronuna estrategia de diseño y creación, y que guardanrelación con la simplificación de funciones lógicasmediante el uso del método de los mapas de Karnaugh.La figura 1 muestra una comparativa de algunascaracterísticas de las aplicaciones que se reseñaron eneste estudio del estado del arte.

4. Metodología de la investigación

Para desarrollar la investigación se siguió unaestrategia de diseño y creación a partir de la que segeneró un artefacto en forma de instanciación que sedescribe en esta sección. Los datos que se recabaron yanalizaron para hacer el trabajo se obtuvieron porobservación directa del funcionamiento de lasherramientas software similares existentes y con larevisión de los documentos que se indican en la secciónde referencias y otros que no se añadieron por no tenerentidad suficiente para incluirlos en esa sección.

Cada documento que se revisó fue consideradocomo una entidad propia que analizar, de formacualitativa, más que considerarlo como un simplecontenedor de datos con los que trabajar de formacuantitativa, y para ello se estudiaron características nocuantificables como el tener una finalidad educativa, eltipo de funcionalidades que ofrece o la relevancia quetenía para este trabajo de investigación. El únicoanálisis cuantitativo que se realizó fue para contabilizarel número de artefactos surgidos de esos documentosque fuesen compatibles con la plataforma Android, ypara contar el número de funcionalidades que sedescribían en los documentos que se revisaron.

En el análisis por observación que se hizo sobre losartefactos que se estudiaron las conclusiones setomaron con cautela ya que algunas de las valoraciones

sobre los aspectos que se evaluaron se hicieronsubjetivamente sin definir previamente unos criteriosnormalizados o estandarizados. Los que se evaluaronobjetivamente fueron el número y tipo defuncionalidades que ofrecían y el grado de finalizacióndel artefacto, mientras que la evaluación subjetiva sehizo sobre aspectos como la fiabilidad, la facilidad deuso y la estética. Un breve resumen de las conclusionesque se obtuvieron de la revisión de los documentos yde la observación directa se puede leer en la sección deestado del arte de este texto.

El artefacto que se creó es el resultado de un modelode desarrollo que se basó en la técnica de prototipado.Se eligió este modelo porque tiene la gran ventaja deque no era necesario entender completamente cadadetalle del problema para poder contar con un primerproducto tangible que tuviese unas funcionalidadesmínimas a partir de las cuales empezar a construir elartefacto. Antes de implementar el prototipo base, seestudió la arquitectura de la herramienta KeMap y suforma de interaccionar con la plataforma VerilUOCpara determinar que a priori era factible el nuevodesarrollo, si bien existían algunos problemas inicialesde compatibilidad entre algunas de las tecnologías queusan KeMap y la plataforma Android, y que sepudieron solventar. Para crear cada nueva versión delprototipo se siguió un ciclo iterativo sobre la etapassiguientes:

1. Se formuló una teoría sobre la compatibilidadde una tecnología (Web Services, Swing, etc.)o una funcionalidad (validación decredenciales de usuario, etc.) concreta.

2. Se buscó y analizó información relacionadacon la teoría que se quería comprobar y sederivó una hipótesis en la que trabajar sobre elprototipo.

3. Se ejecutó la hipótesis y y se observaron losresultados obtenidos al modificar el prototipo.

4. Con la observación de los resultados seconfirmaba o refutaba la hipótesis.

5. Si se refutaba la hipótesis se volvía al segundopaso y se continuaba con la iteración hastaque se agotaban las hipótesis. Si no seconfirmaba ninguna entonces no se aceptabala teoría y se deducía que la tecnología ofuncionalidad no era compatible con laplataforma Android.

6. Si se confirmaba la hipótesis se aceptaba lateoría y los cambios se reflejaban en lacreación de una nueva versión base delprototipo.

5. Implementación de KemapMobile

En esta sección se describe el proceso de creaciónde KemapMobile. Comienza con una breveintroducción sobre el paradigma de desarrollo enAndroid, y continúa con la descripción de laimplementación para finalizar con los problemasencontrados durante el proceso y las soluciones que seimplementaron.

5.1. Android: paradigma de desarrollo

Las aplicaciones para Android se escriben en ellenguaje Java y se ejecutan en máquinas virtuales, paralo que Android cuenta con la máquina virtual Dalvik.Esta máquina virtual se encarga de ejecutar lasaplicaciones, el framework de estas y las libreríasexisten en el entorno de ejecución, en adelante core-libraries, que también están escritas en Java. Una de lascaracterísticas principales de Dalvik es que no escompatible con el bytecode que se genera para lamáquina virtual Java estándar, sino que usa su propiobytecode. Muchas de las core-libraries que acompañana Dalvik en la plataforma Android existen también enel entorno de ejecución de Java estándar, por lo que enocasiones basta con recompilar el código fuente de una

aplicación Java existente para poder ejecutarse en laplataforma Android. Esta plataforma permite trabajarcon aplicaciones multi-hilo, y destina una máquinavirtual Dalvik a cada aplicación que se ejecuta conobjeto de incrementar la estabilidad y la seguridad delsistema[12].

La pila de software de Android cuenta con 5 capas:el kernel Linux y herramientas de bajo nivel como loscontroladores del hardware están en la primera capa.En la segunda capa se encuentran las librerías nativaspara trabajar, entre otros, con la base de datosrelacional SQLite o con libc (librería estándar para ellenguaje C en Android). El entorno de ejecución deAndroid, compuesto por las core-libraries y la máquinavirtual Dalvik aparecen en otra capas, y sobre estas estála capa del framework de aplicaciones que contiene elgestor de ventanas, el gestor de “activities” y otros,mientras que en la capa superior están las aplicaciones.

La estructura básica de una aplicación para laplataforma Android tiene 4 elementos principales. Elprimero es un archivo en lenguaje XML, en eldirectorio raíz de la aplicación, llamadoAndroidManifest.xml que describe la aplicación alsistema que lo ejecuta. El resto de elementos son losarchivos fuente en el lenguaje Java que contienen lalógica de la aplicación, los archivos en lenguaje XMLque implementan la interfaz de usuario, y los recursosque la aplicación necesite como imágenes, ficheros detexto y otros. El paradigma de desarrollo deaplicaciones para Android tiene además otrosconceptos únicos como activities e intents. El principalpropósito de las activities es interaccionar con elusuario y están formadas por una ventana con lainterfaz de usuario y código Java para interaccionarcon los elementos que la componen, siendo habitualque las aplicaciones tengan más de una activity. Elciclo de vida de las activities también forma parteesencial del paradigma de desarrollo de Android y sepuede ver en la figura 2. La labor de los intents esservir de intermediarios para comunicar las activitiesentre sí, pudiendo comunicar una activity de unaaplicación con otra activity de la misma aplicación o deotra diferente.

5.2. Desarrollo del artefacto

El entorno de desarrollo en el que se creó elartefacto estuvo compuesto por las herramientassoftware Oracle JDK 1.6 y Eclipse 3.8. A la última sele añadió como complemento el framework ADT v.21para integrar el SDK de Android en el entorno. Duranteel proceso de desarrollo fue necesario el uso de otrasherramientas auxiliares que ayudaron a comprobar y a

Figura 2. Ciclo de vida de una activity

This image has been reproduced from work created and shared bythe Android Open Source Project and used according to termsdescribed in the Creative Commons 2.5 Attribution License. Seehttp://developer.android.com/reference/android/app/Activity.html

refutar algunas de las hipótesis que se plantearon alcrear los prototipos. Se usó el analizador de paquetesWireshark 1.6 para estudiar la estructura y el contenidode los datos transmitidos entre KeMap y la plataformaeducativa VerilUOC. Otra herramienta auxiliar queayudó al desarrollo fue SoapUI 4.5 que sirvió parahacer pruebas sobre los servicios web de VerilUOC,junto al depurador de código integrado en Eclipse quese usó para analizar el código de KeMap antes deadaptarlo a la plataforma Android y durante eldesarrollo de KemapMobile. Para ejecutar losprototipos se usó una tableta Samsung Galaxy de 10.1”y una tableta virtual de 10.1” que proveía el frameworkADT.

El desarrollo del artefacto tuvo cuatro etapas:análisis, diseño, implementación y pruebas. En la etapade análisis se estudió la posible incompatibilidad entrelas diferentes tecnologías que usaría la herramienta y sedecidieron las funcionalidades del artefacto con ladefinición de los casos de uso que se necesitaron:selección de idioma, validación de las credenciales delusuario, selección de un ejercicio, modificación de lasalida de una función en la tabla de verdad,modificación del mapa de Karnaugh, modificación dela expresión lógica simplificada, almacenamiento ycarga de un ejercicio en el disco, y verificación de lasolución dada a un ejercicio. En la etapa de diseño sedescribió como sería la interacción entre la interfaz deusuario y cada caso de uso analizado, se crearonhipótesis para solucionar los problemas que sedetectaron durante el análisis y se definió la interfazgráfica de usuario. Durante la etapa de implementaciónse creó la interfaz gráfica que se definió en la fase dediseño, se codificaron los casos de uso y seimplementaron las hipótesis que se plantearon en laetapa anterior. En la fase de pruebas se comprobó queel comportamiento de los prototipos era el que seesperaba al ejecutar los juegos de pruebas.

Para implementar el proyecto se enlazaron, comolibrerías en las opciones de compilación de Eclipse,muchas de las clases existentes en la parte cliente delsoftware de la plataforma VerilUOC, de donde seobtuvieron también otros recursos como imágenes ytraducciones a otros idiomas de los textos para usar enla interfaz gráfica de usuario.

También fue necesario crear nuevas clases enlenguaje Java e implementar desde cero la interfazgráfica y el código necesario para interaccionar conella. Las clases que se crearon son LoginActivity eInitialConnection para implementar la funcionalidadrelacionada con la elección del idioma y con lavalidación de las credenciales de un usuario contra laplataforma educativa VerilUOC, para lo que se usó el

protocolo de autenticación OAuth. Estas dos clases seusan sólo en la activity inicial de KemapMobile juntoal archivo login_activity.xml que implementa lainterfaz gráfica de la activity. La clase FileChooser seusa como base para la activity que sirve para elegir eldestino en el disco de un ejercicio que se quieraguardar. El otro componente de la activity es el archivofilechooser_activity.xml que implementa la interfaz deusuario, La activity que contiene la interfaz principalde la aplicación está compuesta por el archivokemap_activity.xml y la clase KemapActivity, que usala clase InitialData para descargar los ejercicios desdela plataforma VerilUOC junto a las clasesVeriluocCallsMobile y KemapCallsMobile. Estas dosúltimas clases son adaptaciones para KemapMobile delas clases VeriluocCalls y KemapCalls del softwarecliente de VerilUOC que no eran compatibles con laplataforma Android y de los que se disponía del códigofuente.

Las funcionalidades que se diseñaron para laaplicación permiten al usuario obtener un conjunto deejercicios de acuerdo con su perfil en la plataformaeducativa VerilUOC. Al elegir un ejercicio se modificaen la interfaz principal el contenido de la tabla deverdad, las opciones de verificación disponibles paraese ejercicio, el mapa de Karnaugh y los botones deedición de la expresión lógica simplificada. Losejercicios también tienen una descripción delenunciado en formato PDF que no se descargainicialmente dentro del conjunto de ejercicios del perfildel usuario, sino que sólo se hace si este pide verlo.

El usuario puede verificar la adición de términos enel mapa de Karnaugh, las agrupaciones de celdas en elmapa, las modificaciones hechas sobre una tabla deverdad en la salida de una función según el valor de lasentradas, y comprobar la solución de la expresiónlógica simplificada en forma de suma de productos.Las opciones de verificación disponibles se establecende acuerdo a la información que contiene cadaejercicio, y de acuerdo a ello el usuario puede escogerque soluciones quiere verificar, donde la única opciónde verificación que es de uso obligatorio y siempre estádisponible es la que comprueba la validez de lasexpresiones simplificadas. La aplicación permiteguardar en el disco el estado de la resolución de unejercicio para retomarlo posteriormente. Laverificación de la solución se hace en la máquina queejecuta el cliente para garantizar la escalabilidad de laplataforma educativa VerilUOC y evitar posiblessobrecargas durante los picos de utilización de lasherramientas de la plataforma[6].

5.3. Contratiempos durante la implementación

Los principales problemas que surgieron durante eldesarrollo del artefacto tuvieron que ver con laincompatibilidad entre Android y algunas tecnologíasque usa la plataforma educativa VerilUOC. Estas

incompatibilidades se identificaron en la etapa deanálisis previa a la creación del primer prototipo y conel análisis de los datos que se recabaron se estimó quea lo largo del proceso iterativo de prototipado que sesiguió como modelo de desarrollo era factiblesolucionar los problemas que se detectaron.

Figura 3. Extracto del código que se usó para llamar a los Web Services de VerilUOC

Al pulsar el botón Verificar en KemapActivity se ejecuta un método en la clase KemapCallsMobile.java que construye y ejecuta la llamada al servicio web y obtiene la respuesta:

public String dofileverifylocale(int pos, String year, boolean cont) { String resultado = ""; if(cont == true && plafile.isAllEmpty() == false) { Exercise ex = VexercicistableKM.get(pos); String namespace = "http://VRLUploadFile.mega.org/"; String url = "http://wyoming.uoc.es:8080/VRLUploadFile/VerifyFile"; String nombreMetodoWS = "ParseKeMap"; String accionSOAP = "http://VRLUploadFile.mega.org/VerifyFile/ParseKeMapRequest"; Vector<String> property_1 = new Vector<String>(2); property_1.add("username"); property_1.add(niu); Vector<String>property_2 = new Vector<String>(2); property_2.add("idexercise"); property_2.add(String.valueOf(ex.getId())); Vector<String>property_3 = new Vector<String>(2); property_3.add("idcourse"); property_3.add(ex.getIdCourse()); Vector<String>property_4 = new Vector<String>(2); String cadena = fileToString(plafile.getFile()); property_4.add("filekm"); property_4.add(cadena); Vector<String> property_5 = new Vector<String>(2); property_5.add("year"); property_5.add(year); Vector<String> property_6 = new Vector<String>(2); property_6.add("DEBUG"); property_6.add("true"); SoapObject rpc = new SoapObject(namespace, nombreMetodoWS); //crea un objeto de tipo SoapObject para llamar al WS //De acuerdo a la documentacion del ws, hay 6 parametros que debemos pasar. Para obtener //informacion del WS , se puede consultar http://wyoming.uoc.es:8080/VRLUploadFile/VerifyFile?WSDL rpc.addProperty(property_1.get(0), property_1.get(1)); rpc.addProperty(property_2.get(0), property_2.get(1)); rpc.addProperty(property_3.get(0), property_3.get(1)); rpc.addProperty(property_4.get(0), property_4.get(1)); rpc.addProperty(property_5.get(0), property_5.get(1)); rpc.addProperty(property_6.get(0), property_6.get(1)); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.setAddAdornments(false); envelope.implicitTypes = true; envelope.bodyOut = rpc; envelope.dotNet = false; //el ws no está hecho en .net, si true entonces devuelve error con VerilUOC envelope.encodingStyle = SoapSerializationEnvelope.XSD; HttpTransportSE androidHttpTransport= null; try { String conexion = url;

androidHttpTransport = new HttpTransportSE(conexion); androidHttpTransport.debug = true; androidHttpTransport.call(accionSOAP, envelope); //Consulta al WS resultado = envelope.getResponse().toString(); //Respuesta del WS }catch (Exception e){ return e.getMessage(); } } else { return "Error al validar la solución."; } ... }

La primera incompatibilidad que se detectó se debíaa que la herramienta software que se adaptó (KeMap)usa componentes Swing de la librería javax.swing, queno existe en la plataforma Android. Esto obligó a creardesde cero la interfaz gráfica de usuario del artefactode acuerdo con el paradigma de desarrollo de Android.

Otra clase que se relaciona con la interfaz gráfica ytampoco existe en la plataforma Android es Point, dela librería java.awt que usa la máquina virtual Java deOracle. Sí existe la clase android.graphics.Point quetiene parecidas funcionalidades aunque la forma deinteraccionar con ella no es la misma que para hacerlocon java.awt.Point al no ser compatibles las llamadas alos métodos públicos que contienen ni tampoco lasestructuras de las respuestas que se reciben, si bien estaclase sólo afecta a las funcionalidades que guardanrelación con la agrupación de celdas y la modificaciónde términos en el mapa de Karnaugh.

La funcionalidad para ver el contenido en formatoPDF de la descripción de los ejercicios tambiénpresentó problemas por no existir en el SDK deAndroid ninguna librería que permita renderizar elcontenido de los archivos PDF. Se identificaron variasaproximaciones factibles a la solución del problema: laprimera fue usar librerías de terceros, pero las que se

estimaron que se podían implementar (Adobe ReaderMobile SDK, Foxit Embedded PDF SDK) tenían unalicencia no libre y se descartó la idea inicialmente. Lasegunda aproximación consistió en mostrar elcontenido del fichero con un visor de archivos PDF,pero también se descartó porque obligaba a disponer deuno instalado en el dispositivo móvil. La aproximaciónque se escogió fue abrir el archivo en el navegador webque existe por defecto en los terminales móviles queejecutan Android y mostrar su contenido con laaplicación Google Docs. Esta solución tiene ladesventaja de que Google puede cambiar en el futurolas condiciones del servicio y quedar inutilizada lafuncionalidad, si bien se estimó válida como solucióninicial al problema mientras no se encuentre unaalternativa que se base en la primera aproximación.

Otra característica de la plataforma Android queobligó a rediseñar parte de la lógica inicial de laaplicación es la necesidad de lanzar hilos de ejecucióndiferentes del principal para ciertas operaciones queson susceptibles de impedir la interacción inmediataentre el usuario y la la interfaz gráfica, como larespuesta hecha a algún servicio de la red o lasescrituras en el disco. Esta característica está activadesde la versión 3.0 de Android, por lo que si no se

Figura 4. Estructura de la interfaz principal

usaban otros hilos por ejemplo para descargar losejercicios o para verificar las soluciones, el artefactosería inservible en dispositivos móviles que usenversiones posteriores de la plataforma Android porquese obtendría un mensaje de error que genera la claseandroid.os.NetworkOnMainThreadException.

También se encontró un problema con el uso de latecnología Web Services. Las core-libraries de Androidno proporcionan clases para trabajar con esatecnología, de la que sí dispone las core-libraries de laversión que usa la máquina virtual Java de Oracle. Laversión para equipos de escritorio KeMap usa libreríasde terceros (org.mega.vrluploadfile) que llaman amétodos contenidos en las core-libraries javax.xml.wsy javax.jws, por lo que fue necesario rehacer parte de lalógica existente para verificar la solución de losejercicios. Para ello fue necesario dejar de usar laslibrerías de terceros incompatibles, se usó la libreríaKSoap2 con objeto de facilitar la codificaciónrelacionada con las llamadas a los Web Services de laplataforma educativa VerilUOC. También se usó laherramienta software Wireshark para analizar laestructura de los paquetes de datos que seintercambiaron el software cliente y el software

servidor de VerilUOC, y los datos que se recabaron seusaron con la herramienta SoapUI para hacer pruebastipo “black-box testing” contra los Web Services de laplataforma educativa y estudiar las respuestas adiferentes consultas, antes de codificar la versión delprototipo donde se implementó el uso de la tecnologíaWeb Services para verificar las soluciones de losejercicios. Un extracto del código se puede ver en lafigura 3.

Una dificultad inherente a la plataforma Android sederiva de la existencia de diversos tamaños de pantallaen los dispositivos móviles en las que se esta seejecuta. El artefacto se creó como prueba de conceptopara ejecutarlo en pantallas de 10.1”, pero se diseñópara adaptarlo fácilmente a pantallas de menor tamañoal dividir la interfaz principal en dos capasindependientes que se pueden separar en una activitypara cada una: el lado izquierdo contiene loscomponentes para seleccionar los ejercicios y ver sudescripción, mientras que la capa del lado derechotiene los componentes que se usan para trabajar con elejercicio que se eligió y verificar la solución que seintrodujo. El diseño general de la interfaz gráficaprincipal del artefacto se ilustra en la figura 4.

Figura 5. Interfaz de acceso e interfaz principal ejecutándose en Android 4.0

6. Discusión de los resultados

La implementación del artefacto KemapMobile esaún un prototipo que no tiene todas las funcionalidadescon las que cuenta la herramienta software KeMap paraequipos de escritorio, si bien las que no seimplementaron en la versión actual del prototipopueden añadirse al artefacto al no detectarseincompatibilidades que lo impidan.

Estas funcionalidades son las que permitenalmacenar por petición directa del usuario un ejercicioen el disco o cargar un ejercicio que se guardó en unasesión de trabajo anterior, que se puede añadir si semodifican las rutinas existentes que guardan y carganlos ejercicios desde el disco durante el proceso deverificación de una solución para hacerlo también porpetición directa del usuario, y las que permitenverificar las agrupaciones y las modificaciones en unmapa de Karnaugh, que se pueden implementar con eluso de la clase Point de la librería android.graphics, sise vuelve a codificar parte de la lógica existente enKeMap y se adapta a la versión para la plataformaAndroid de la clase java.awt.Point que usa la máquinavirtual Java de Oracle.

Las funcionalidades que sí implementa esta versióndel prototipo son: la validación de las credenciales delusuario contra la plataforma educativa VerilUOC, unainterfaz gráfica de usuario disponible en variosidiomas, la selección de diferentes cursos y ejerciciossegún el perfil del usuario, la visualización delenunciado o descripción del ejercicio contenida en unarchivo PDF, y el almacenamiento y carga de unejercicio en el disco durante el proceso de verificación.El resto de funcionalidades de las que dispone elartefacto actual tiene relación con la verificación de lassoluciones de los ejercicios y permiten elegir quéopciones de verificación se usarán al corregir losejercicios, entre las que se encuentran disponibles deacuerdo con las especificaciones de cada ejercicio laverificación de: la expresión lógica simplificada, lamodificación del mapa Karnaugh (inactiva en estaversión), la agrupación de celdas en el mapa (inactivaen esta versión), la edición de la tabla de verdad y otraque permite obtener pistas al comprobar la solución delejercicio si la que se introdujo fue incorrecta. Porúltimo, el artefacto es capaz de verificar la validez delas modificaciones en las salidas de una función en unatabla de verdad y la corrección de la expresión lógicasimplificada en forma de suma de productos.

La herramienta se diseñó para adaptarla en el futuroal tamaño de las pantallas reducidas de los teléfonosmóviles, ya que esta versión sólo se implementó paratabletas mayores de 7”. El inconveniente del tamaño se

puede solucionar fácilmente gracias a la división en doscapas (izquierda y derecha) de la interfaz principal, conlo que en tiempo de ejecución se podría ocultar omostrar cualquiera de las dos según las necesidades.

La figura 5 muestra la interfaz gráfica de acceso a laplataforma VerilUOC y la interfaz gráfica principal delartefacto.

7. Conclusiones

En este trabajo se presentó el proceso creación deKemapMobile, un producto computacional que seejecuta en dispositivos móviles que usan la plataformaAndroid y que sirve como herramienta de aprendizajepara la comprensión de la técnica que M. Karnaughideó y de otros conceptos que se asocian a la síntesis decircuitos lógicos combinacionales como las tablas deverdad y las expresiones lógicas simplificadas.

El artefacto que resultó de esta investigación sirvecomo prueba de concepto que muestra la interacciónentre KemapMobile y la plataforma educativaVerilUOC de la Universitat Oberta de Catalunya paraobtener ejercicios sobre la síntesis de circuitos lógicoscombinacionales y validar las soluciones que introduceel alumno al resolverlos.

Al comparar KemapMobile con las herramientasque se describen en el estado del arte de estedocumento se observó que al contrario que el resultadode este trabajo, la mayoría de las funcionalidades de lasherramientas que se estudiaron no se usan para validarlas soluciones. No se encontró ninguna que valide lacorrección de las modificaciones en una tabla deverdad y sólo dos que validen las expresiones lógicassimplificadas, y su función se centra en calcular unafunción mínima con los datos que introduce el usuarioen una función lógica sin simplificar, en una tabla deverdad o en un mapa de Karnaugh. Otro aspecto quediferencia KemapMobile del resto de trabajos que seestudiaron es que se basa en una arquitectura cliente-servidor que permite al profesorado personalizar losejercicios disponibles para cada estudiante y recabardatos para seguir la progresión de estos.

El autor considera que el resultado de este trabajollena un hueco existente en la actualidad, pues si bienexisten productos con funcionalidades parecidas paraentornos de escritorio, no se encontró ninguno que seacompatible con la plataforma Android y que tengasimilares características con respecto a lasfuncionalidades o al tipo de arquitectura que tieneKemapMobile.

8. Referencias

1. KARNAUGH, M. The Map Method for Synthesis ofCombinational Logic Circuits. American Institute ofElectrical Engineers, Part I: Transactions of theCommunication and Electronics, 1953, vol. 72, no. 5.pp. 593-599. ISSN 0097-2452, 1953

2. POTTS, J. Developing mobile learning applicationsfor electrical engineering courses. , 2011. Proceedingsof IEEE Southeastcon, 2011

3. HACKER, C., SITTE, R. Interactive teaching ofelementary digital logic design with WinLogiLab.IEEE Transactions on Education, 2004, vol. 47 no. 5pp. 196-203, 2004

4. JÁUREGUI, R., et al. Sistema KARMIN: unaherramienta para la enseñanza de simplificación defunciones lógicas. , 2010. XVI Congreso argentino deciencias de la computación, 2010 pp. 265-274, 2010

5. YONG, S.C. A Game Based Learning Content forTutoring in Simplifying Boolean Functions, IEEE 10thInternational Conference on Advanced LearningTechnologies (ICALT), 2010

6. BAÑERES D., et al. Entorno de soporte para elautoaprendizaje en el diseño de circuitos digitales,Jornadas de Enseñanza Universitaria de la Informática(17es: 2011: Sevilla), 2011

7. KLOCK, C. E., et al. KARMA: A Didactic Tool forTwo-Level Logic Synthesis. , 2007. IEEE InternationalConference on Microelectronic Systems Education,MSE '07. , pp. 59-60, 2007

8. ZUBÍA, J.G. Educational Software for DigitalElectronics: BOOLE-DEUSTO., IEEE Proceedings ofInternational Conference on Microelectronic SystemsEducation, 2003

9. KVD [en línea]. Ver 2.0.1. Martin Hoffmann, c2011.Programa informático disponible en Google Play[descargado el 16 de abril de 2013]

10. MiniKarnaugh [en línea]. Ver. 5.0. SerbanStoenescu, c2013. Programa informático disponible enGoogle Play [descargado el 16 de abril de 2013]

11. LEE, E. T. An Expert System for Karnaugh MapMinimization. , 1991. IECON '91 Proceedings ofInternational Conference on Industrial Electronics,Control and Instrumentation, 1517-1520 vol.2, 1991

12. BRÄHLER, S. Analysis of the AndroidArchitecture, Tesis, Karlsruhe Institute of Technology,2010

9. Publicación del artículo

El artículo se podría enviar a la revista ComputerApplications in Engineering Education de WileyPeriodicals, Inc., si bien antes sería necesario traducirel texto al idioma inglés y adecuar el formato a lasnormas de publicación.

Esta revista publica artículos de investigación enáreas que exploran nuevas herramientas de software ymódulos multimedia para la enseñanza de la ingenieríay en otros campos que se asocian con las aplicacionescomputacionales educativas relacionadas con lasingenierías.