Sei sulla pagina 1di 67

CIS0810IS02

PsiCoder: Software Educativo para Facilitar el Proceso de Enseanza Aprendizaje en un Curso


Bsico de Programacin

Autor(es):
Liliam Paola Pez Prez
John Henry Vsquez Acero

Trabajo de Grado presentado para optar el ttulo de Ingeniero de Sistemas

PONTIFICIA UNIVERSIDAD JAVERIANA


FACULTAD DE INGENIERIA
CARRERA DE INGENIERIA DE SISTEMAS
BOGOT, D.C.
DICIEMBRE 2008

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

PONTIFICIA UNIVERSIDAD JAVERIANA


FACULTAD DE INGENIERIA
CARRERA DE INGENIERIA DE SISTEMAS

Rector Magnfico
Joaqun Emilio Snchez Garca S.J.
Decano Acadmico Facultad de Ingeniera
Ingeniero Francisco Javier Rebolledo Muoz
Decano del Medio Universitario Facultad de Ingeniera
Padre Sergio Bernal Restrepo S.J.
Directora de la Carrera de Ingeniera de Sistemas
Ingeniero Luis Carlos Daz Chaparro
Director Departamento de Ingeniera de Sistemas
Ingeniero Germn Alberto Chavarro Flrez
Pgina 1
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

Nota de Aceptacin

______________________________________________________
______________________________________________________
______________________________________________________

________________________________________
Jos Hernando Hurtado Rojas
Director del Proyecto
________________________________________

Germn Alberto Chavarro Flrez


Jurado

________________________________________
Julio Ernesto Carreo Vargas
Jurado

Diciembre, 2008

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

Artculo 23 de la Resolucin No. 1 de Junio de 1946


La Universidad no se hace responsable de los conceptos emitidos por sus alumnos en sus
proyectos de grado. Slo velar porque no se publique nada contrario al dogma y la moral catlica
y porque no contengan ataques o polmicas puramente personales. Antes bien, que se vean en ellos
el anhelo de buscar la verdad y la Justicia

Pgina 3
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

DEDICATORIA
Dedicado a Jimmy Andrs Vsquez Acero.
Espero que desde los Cielos, el esfuerzo, dedicacin y noches de desvelo sin tu compaa te hagan
sentir orgulloso
AGRADECIMIENTOS
Agradecemos a nuestro director Hernando Hurtado por su apoyo, inters y compromiso con el
trabajo de grado.
Agradecemos tambin a las diferentes personas que nos colaboraron en la tesis en sus diferentes
etapas, en las correcciones, sobre todo a Leonardo Flrez, y a Camila por su ayuda desinteresada.
Liliam Paola Pez Prez agradece:
A mis Padres, por darme la oportunidad de estudiar y a mi familia por entender mis mltiples
cambios de humor y oportunidades en las que no pude compartir tantos momentos agradables con
ellos. Tambin agradezco su confianza en mis capacidades.
John Henry Vsquez Acero agradece:
A mis padres por ser este trabajo el pago a todo su esfuerzo y apoyo en mi vida Universitaria.
A mis amigos que creyeron en m, en mis aptitudes y en todo lo bueno que ellos ven en mi ser.
A todos los estudiantes que les agrade y les sea til nuestro proyecto, pues para ellos es nuestra
dedicacin en este largo ao de trabajo.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

Contenido
INTRODUCCIN 8
I - DESCRIPCION GENERAL DEL TRABAJO DE GRADO 9
1. OPORTUNIDAD PROBLEMTICA 9
1.1 Descripcin del contexto
1.2 Formulacin

10

2. DESCRIPCIN DEL PROYECTO


2.1 Visin global

11

2.2 Justificacin

12

2.3 Objetivo general

13

2.4 Objetivos especficos

13

11

2.5. Metodologa Propuesta 13

II - MARCO TERICO

16

1. MARCO CONCEPTUAL

16

1.1 Traductores

16

1.2 Compiladores

16

1.3 Analizadores

16

1.4 Proceso de Traduccin 16


1.5 Conversores Fuente Fuente

2. MARCO CONTEXTUAL

18

18

2.1 Curso Bsico de Programacin 18


2.2 Trabajos anteriores

III - PROCESO

19

27

1. DESARROLLO DEL PROYECTO

27

1.1 Anlisis de Requerimientos Funcionales 27


Pgina 5
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

1.2 Aspectos tcnicos generales y Requerimientos no funcionales


1.3 Diseo General de la Aplicacin 31
1.4 Diseo Detallado y Codificacin de la Aplicacin

34

1.5 Pruebas41
1.6 Herramienta Desarrollada

2. REFLEXIN METODOLGICA

42

43

IV - RESULTADOS Y RECOMENDACIONES 45
1.

RESULTADOS 45
1.1 Prueba Inicial para Estudiantes 45
1.2 Prueba de Salida para Estudiantes

49

1.3 Prueba Inicial para Profesores 50


1.4 Prueba de Salida para Profesores

51

1.5 Anlisis de Resultados 53

V - CONCLUSIONES Y TRABAJOS FUTUROS


1.

CONCLUSIONES

2.

TRABAJOS FUTUROS 55

54

54

VI - REFERENCIAS Y BIBLIOGRAFA 56
1. REFERENCIAS

56

2. BIBLIOGRAFA

58

V- ANEXOS 60
ANEXO 1. GLOSARIO 60
ANEXO 2. ESTRUCTURA DEL RBOL SINTCTICO
ANEXO 3. ARCHIVOS DE PRUEBA

62

63

ANEXO 4. DESCRIPCIN DE LA PRUEBA DE USABILIDAD

64

29

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

ABSTRACT
This document describes the process and the results of the construction of PsiCoder, an educational
software tool built to support the teaching learning process on a basic computer programming
course. The document describes the analysis, schedule, planning, development and implementation
of the software as well as the resulting output of an Usability test.

RESUMEN
El presente documento describe el proceso y resultado del anlisis, planeacin y desarrollo de
PsiCoder, una herramienta de software educativo creada para apoyar el proceso de enseanza
aprendizaje en un curso bsico de programacin, incluyendo tambin los resultados obtenidos a
travs de la elaboracin y ejecucin de una prueba piloto de Usabilidad.

Pgina 7
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

INTRODUCCIN
La adquisicin de un estilo correcto de programacin es una tarea fundamental en las ingenieras
informticas, y en general en cualquier titulacin de ciencias o ingeniera [2]. Es por esto que se
espera poder utilizar un programa que permita al estudiante aprender a programar, a la vez que va
ejerciendo este oficio de una manera sencilla, y as aprovechar las ventajas que ofrecen los
computadores como recursos didcticos.
Sin embargo, no siempre todas las herramientas que existen para estos fines son vlidas, pues las
metodologas de enseanza y los recursos pedaggicos cambian de institucin en institucin, y ms
an, de profesor a profesor.
Es por esto que se ha dispuesto como trabajo de grado la creacin de una herramienta, llamada
PsiCoder, que permita apoyar el proceso de enseanza aprendizaje en un curso bsico de
programacin.
Para la creacin de esta herramienta se tom como caso de estudio la asignatura Pensamiento
Algortmico, dictada en la Pontificia Universidad Javeriana como parte del ncleo comn en todos
los programas de ingeniera, de donde se tomaron los temas bsicos tratados, con el fin de obtener
requerimientos funcionales que permitieran la sustentacin de la herramienta.
Gracias a que la herramienta est diseada principalmente para su uso y aplicacin en la Pontificia
Universidad Javeriana (aunque esto no es limitante para que otras instituciones puedan modificarla
y usarla en sus planes pedaggicos), se dise una prueba especfica que permitiera evaluar la
usabilidad de la herramienta, tomando como muestra a un grupo aleatorio de estudiantes de
ingeniera que se encontraran tomando el curso, y un grupo selecto de profesores que dictaran la
materia.
La prueba mostr que la herramienta cumple satisfactoriamente con el nivel de usabilidad esperado,
y que adicionalmente refleja el esfuerzo y dedicacin dados a la construccin de la herramienta, en
el sentido que los encuestados opinaron que la herramienta motiva su uso, y que podra promover el
inters por la asignatura.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

I - DESCRIPCION GENERAL DEL TRABAJO DE GRADO


1. Oportunidad Problemtica
1.1 Descripcin del contexto
La adquisicin de un estilo correcto de programacin es una tarea fundamental en las ingenieras
informticas, y en general en cualquier titulacin de ciencias o ingeniera [2]. Es por esto que se
espera poder utilizar una herramienta de software que permita al estudiante aprender a programar, a
la vez que va ejerciendo este oficio de una manera sencilla, y as aprovechar las ventajas que
ofrecen los computadores como recursos didcticos.
Actualmente en la Pontificia Universidad Javeriana, los estudiantes de Ingeniera de Sistemas se
enfrentan a las primeras asignaturas del rea de programacin: Pensamiento Algortmico,
Programacin de Computadores y Estructuras de Datos. Pensamiento algortmico, como tal, es una
de las asignaturas que hace parte del ncleo bsico de la formacin de un Ingeniero,
independientemente de la carrera que este se encuentre cursando (Civil, Industrial o Sistemas). Las
otras dos pertenecen al ncleo bsico en la formacin de los estudiantes de Ingeniera de Sistemas y
son la continuacin de pensamiento algortmico [1].
Esta asignatura semestralmente se ofrece aproximadamente a 400 estudiantes, en grupos de 20
alumnos cada uno, lo cual implica diversidad de docentes de planta y ctedra, donde el
Departamento de Ingeniera de Sistemas, define los contenidos de este curso, los parmetros de
evaluacin del mismo y es el responsable de la seleccin y evaluacin de docentes [1].
Los profesores manejan diversas metodologas de enseanza de acuerdo con su experiencia
docente. Pocos usan las nuevas tecnologas como apoyo a las clases presenciales; en la mayora de
los casos las clases son orientadas por los docentes de manera magistral, combinando la exposicin
de conceptos tericos con la realizacin de ejercicios prcticos. Durante el curso se tienen algunos
laboratorios donde se utiliza el lenguaje C para validar los conceptos vistos en el transcurso del
semestre [1].

Pgina 9
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

Gracias a estudios realizados por los investigadores de [1], se han identificado una gran variedad de
problemticas, a pesar del esfuerzo del Departamento de Ingeniera de Sistemas en revisar, evaluar
y modificar los procesos de evaluacin conjunta y el seguimiento de la metodologa usada por los
docentes.
Las problemticas identificadas [1] son:
-

Bajo ndice de aprobacin de los estudiantes en el curso.


Desercin estudiantil, tanto de la asignatura durante un periodo acadmico, como el retiro
total de la Carrera.
La imposibilidad de asegurar una unificacin del desarrollo de los contenidos, debido a que
no se puede monitorear el cumplimiento del programa por parte de los docentes.

A travs de la experiencia como partcipes de este curso, y bajo la propuesta de efectuar futuras
encuestas a los estudiantes, se cree que parte de estas problemticas tienen como causas la
imparticin de la asignatura sin acceso a herramientas que ayuden a afianzar los conocimientos de
una manera ms ldica, as como considerar en el aspecto pedaggico los estilos de enseanza y
aprendizaje en ingeniera [4] y las prcticas docentes que promueven en los alumnos estilos de
estudio que contribuyen a su aprendizaje y formacin [5].
Por lo tanto, se establecen como causas:
-

Dificultad en expresar conceptos abstractos propios del contenido del curso en prcticas
tangibles para los estudiantes.
Baja experiencia de los estudiantes frente a la resolucin de problemas de tipo algortmico
Bajo nmero de herramientas que apoyen tanto el aprendizaje como la enseanza de los
temas del curso.
Cursos basados ms en la lectura de contenidos, que en la prctica.
Clases magistrales que se tornan tediosas para los estudiantes.

1.2 Formulacin
El presente trabajo de grado busca dar respuesta a la siguiente pregunta: Cmo facilitar el proceso
de enseanza y aprendizaje de los conceptos bsicos en la introduccin a la programacin,
orientado a los estudiantes que cursan la primera asignatura del rea de programacin en las
carreras de ingeniera?
En un estudio realizado, descrito en [6], se describe un curso de pre programacin en donde se
disponen de distintas herramientas de aprendizaje y enseanza (tanto de software como

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

metodolgicas). En ste, se tratan temas propios de la asignatura como la creacin de diagramas y


dibujos descriptivos de un modelo general de un problema dado, el uso de Pseudocdigo, la
resolucin de problemas en conjunto, algoritmos, planes de pruebas, documentacin, clarificacin
de requerimientos y modularizacin. El estudio muestra un aumento significativo en el
entendimiento y aprendizaje por parte de los estudiantes, quienes demostraron mayores habilidades
frente al siguiente curso de programacin. Cabe resaltar que en este curso ningn tipo de lenguaje
de programacin es enseado o suministrado como herramienta de aprendizaje.
As, diferentes mtodos son propuestos para lograr efectuar este curso de pre programacin, y entre
estos, herramientas de software que permiten al estudiante desenvolverse de una manera ms gil en
cuanto a la forma de resolver problemas, utilizando herramientas de visualizacin de algoritmos [7],
encontrndose varias disponibles [7][8][9], acompaadas de un pseudocdigo sencillo de leer,
abstraer y entender. Sin embargo, en lo que se ha adelantado de investigacin, existen muy pocas
herramientas que permitan al estudiante interactuar directamente con el pseudocdigo, y stas no se
acomodan lo suficiente a la parametrizacin definida por el Departamento de Ingeniera de Sistemas
para la asignatura de Pensamiento Algortmico [12].
Por lo anterior se propone la creacin de una herramienta de software que le permita a los
estudiantes interactuar con el pseudocdigo, capaz de adaptarse a la metodologa usada por cada
docente, con una posibilidad de extensin que permita a futuros trabajos la integracin de otros
mtodos de enseanza, como mdulos de visualizacin de algoritmos, y otras aplicaciones
didcticas que soporten el entendimiento de la asignatura.

2. Descripcin del Proyecto


2.1 Visin global
En este trabajo de grado se muestra el proceso de la elaboracin de PsiCoder: una herramienta de
software educacional que pretende apoyar el proceso de la enseanza por parte de profesores y
monitores de la Pontificia Universidad Javeriana, para el aprendizaje de los estudiantes de un curso
bsico de programacin, en este caso la asignatura Pensamiento Algortmico.

Pgina 11
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

2.2 Justificacin
En la elaboracin de la propuesta para Trabajo de grado ofrecida al Departamento de Ingeniera de
Sistemas de la Pontificia Universidad Javeriana, se tenan como posibles soluciones a la
problemtica descrita en la parte inicial de este documento la adaptacin e implementacin de
herramientas existentes que cubrieran la mayor parte de objetivos encontrados, o crear una
herramienta, en caso de no ser posible la adaptacin formulada previamente.
As, en primer lugar se realiz una exploracin de herramientas que cubrieran la manipulacin del
pseudocdigo (Esta exploracin se describir en el marco conceptual de este documento), y que
permitiera ajustarse a las necesidades, de los cursos de la Pontificia Universidad Javeriana (tal como
se describe en [1]), o en otras instituciones educativas.
Sin embargo, existen problemas que hacen que esta posible implementacin no se acomode a lo que
se requiere, pues el cdigo que estas herramientas trabajan es muy poco flexible, lo que requerira
que tanto estudiantes como profesores hicieran un extenso estudio del cdigo propuesto en cada
herramienta, y que al pasar a los siguientes cursos de programacin (en los cuales se trabaja el
lenguaje C++ [1]), se generen posibles problemas de aprendizaje y entendimiento de los conceptos
acadmicos por parte de los estudiantes, pues tanto la sintaxis como la semntica del lenguaje
tratado en estas herramientas difiere bastante del planteado en el pensum para cada programa de
ingeniera.
Adems, una de las principales dificultades encontradas en la planeacin de la adaptacin de tales
herramientas es que no realizan una aproximacin verdadera de pseudocdigo, pues el
pseudocdigo es considerado como un lenguaje falso, un lenguaje intermedio entre nuestro
lenguaje y el de programacin, debido a que quien lo utiliza se gua por una serie de normas pero
sin llegar a usar una estructura tan rgida como la del lenguaje de programacin [17][18].
Es por esta razn que se tom la decisin de crear una nueva herramienta, PsiCoder, que permita
subsanar los problemas que las dems herramientas tienen. El propsito inicial de PsiCoder no es
crear un lenguaje de pseudocdigo que se adece solamente a los requerimientos de la Pontificia
Universidad Javeriana, si no por el contrario, permitir que ste cdigo se adapte a la metodologa
educacional de diferentes instituciones de educacin superior o secundarias.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

Para esto, se propone el diseo una herramienta que permita lograr este objetivo de dos maneras
distintas:
En primer lugar, la creacin de un tipo de documento, que se ha denominado Plantilla, que
permite al profesor o tutor definir caractersticas del lenguaje, tales como las palabras reservadas y
operadores, que se adapte de una mejor manera a su mtodo de enseanza, y manteniendo una
sintaxis parecida al lenguaje destino (en este caso C++), para evitar las falencias que anteriormente
se nombraban de las herramientas indagadas.
En segundo lugar, la aplicacin est escrita con una aproximacin por componentes, lo que permite
a un determinado plantel educativo poder reescribir el componente de lectura del pseudocdigo
(implementando un analizador sintctico definido), para que ste se adece mejor a su filosofa y
metodologa de enseanza.

2.3 Objetivo general


Realizar una herramienta de software, como apoyo didctico, que facilite la enseanza y el
aprendizaje de los conceptos bsicos en la primera asignatura del rea de programacin en las
carreras de ingeniera, caso de estudio Pontificia Universidad Javeriana Bogot.

2.4 Objetivos especficos


1. Definir el estado del arte de las herramientas que apoyan los conceptos tratados en la
asignatura de Pensamiento Algortmico.
2. Disear y desarrollar una herramienta de software que funcione en los sistemas operativos
Windows y Linux, capaz de ejecutar algoritmos en pseudocdigo.
3. Realizar una prueba piloto en una clase de pensamiento algortmico con el fin de validar la
usabilidad de la herramienta.

2.5. Metodologa Propuesta


El proceso a seguir para la realizacin de PsiCoder est dividido en dos fases principales:

Pgina 13
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

Fase 1: Indagacin y bsqueda de informacin


En esta fase se obtendr y analizar toda la informacin necesaria para establecer el conjunto de
caractersticas que la herramienta PsiCoder puede ofrecer. Para esto se determinarn las fuentes de
informacin que se tienen al alcance con el fin de hacer una indagacin prominente de las
herramientas existentes que apoyen los contenidos del curso de pensamiento algortmico. Estos
temas sern obtenidos del programa del curso. Esta investigacin estar basada en la metodologa
propuesta en [15] y referenciando el documento como una investigacin descriptiva.
Una vez obtenida la informacin, se realizar un estudio sobre la temtica del curso para establecer
el alcance de las caractersticas de la herramienta PsiCoder. Es necesario determinar en esta fase
qu temas del curso la herramienta cubrir y cules no.
Fase 2: Especificacin, Diseo y Desarrollo de la herramienta
Para esta fase adaptaremos la metodologa para desarrollo gil Extreme Programming[10] (XP,
Programacin Extrema), creada por Kent Beck, para el desarrollo de aplicaciones que requieren un
grupo de programadores pequeo, dnde la comunicacin sea ms factible, adoptando nicamente
las etapas y/o caractersticas que se acoplen a nuestras necesidades a la hora de la realizacin de la
herramienta.
Esta metodologa se compone de varias etapas [10][11]:
-

Planificacin: Aunque en esta etapa se extraen los requerimientos de los usuarios a travs
de User Stories[10], se obtendrn los requerimientos a partir del documento generado en la
primera fase de la metodologa planteada, y a partir de este proceso se generarn los User
Stories. Se definirn las iteraciones a realizar para el desarrollo de la herramienta de
acuerdo al nmero de User Stories obtenidos, y se definir un plan de pruebas inicial y
pruebas unitarias, que se irn refinando en cada iteracin.

Diseo: se definirn los trminos que se emplearn en el grupo de trabajo, y se establecern


las partes y funcionalidades de la herramienta a travs de diagramas. En nuestro caso
utilizaremos UML (Unified Modelling Language). Se generar un documento que describa
la arquitectura de la herramienta.

Codificacin: se desarrollar la herramienta, definiendo estndares y parmetros de


codificacin. El desarrollo se realiza por parejas, implementando una funcionalidad a la

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

vez, y en un orden especfico, de acuerdo a la criticidad de los requerimientos. Se usar el


paradigma de programacin Orientada a Objetos. En esta fase se utilizar tambin
Subversion[16] como herramienta de control de versiones.
-

Pruebas: Se ejecutan las pruebas unitarias, determinando desde los resultados obtenidos si
se puede continuar iterando o no. Estas pruebas se realizarn con la herramienta JUnit [14]
en caso de ser necesario. Posteriormente, se ejecuta el plan de pruebas final.

La etapa de planificacin se realizar una sola vez, y las etapas de Diseo, Codificacin y Pruebas,
se realizarn por iteracin (Ver figura 1). El nmero de iteraciones estar determinado por la
cantidad de funcionalidades y caractersticas que la herramienta provee.

Figura 1. (Adaptada de [13])

Pgina 15
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

II - MARCO TERICO
Para el correcto desarrollo de este trabajo de grado fue necesario la investigacin y apropiacin de
distintos conceptos tericos, que se describirn a continuacin. Adems, se presenta tambin el
contexto sobre el cual se soporta este documento.

1. Marco Conceptual
1.1 Traductores
Se define como traductor a aquel programa que traduce o convierte desde un texto o programa
escrito en un lenguaje fuente hasta un texto o programa equivalente escrito en un lenguaje destino
produciendo, si cabe, mensajes de error [25]. Se consideran entonces como traductores a los
compiladores, quienes usualmente generan a partir de un cdigo de texto cdigo mquina, y los
intrpretes (los cuales generan como lenguaje destino un conjunto de acciones atmicas que el
programa intrprete puede ejecutar).

1.2 Compiladores
Se considera como compilador a un programa traductor que tiene como entrada un conjunto de
sentencias ordenadas en un lenguaje formal, escrito en uno o ms archivos fuente, y que genera
como salida uno o un conjunto de archivos ejecutables, es decir, se realiza una traduccin de un
cdigo de alto nivel hacia un cdigo mquina [25].

1.3 Analizadores
Los analizadores, son programas o mdulos de un traductor, que se encargan del procesamiento y
anlisis de la informacin que viaja a travs del proceso de traduccin. Su tarea principal es la
revisin de la informacin obtenida por entrada y compararla contra un conjunto de reglas con el fin
de establecer si sta es vlida. Generalmente, si la informacin es vlida, se procesa y se convierte
en datos (que pueden ser tanto lgicos, como escritos en un cdigo u objetos binarios) para una
prxima etapa en el proceso, o generar un error o lista de errores en caso contrario.

1.4 Proceso de Traduccin


Los traductores generalmente dividen su labor en dos etapas: Una primera que se encarga de
analizar la entrada, generando estructuras intermedias, y otra que sintetiza la salida a partir de

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

dichas estructuras [25]. Por lo tanto, un esquema general de un traductor se puede representar segn
la figura 2.

Figura 2. Esquema de un Traductor (Adaptado de [25]).


En la etapa de anlisis se llevan a cabo tres tipos de subfases:
-

Anlisis lexicogrfico: Reconoce y divide el cdigo fuente y los agrupa de una manera
estructurada en componentes bsicos del programa, donde cada componente es una
secuencia de caracteres, llamados lexemas, que pertenecen a una categora gramatical
(nmeros, variables, constantes, palabras reservadas, etctera).

Anlisis sintctico: Se comprueba que todo lexema sea vlido y reconocible, y que la
estructura de los lexemas cumplan las reglas gramaticales del lenguaje. Los analizadores
sintcticos usualmente construyen rboles lgicos con los lexemas, encapsulados en alguna
estructura de datos definida, o en estructuras textuales de algn metalenguaje.

Anlisis Semntico: Se recorre el rbol sintctico generado con el fin de encontrar errores
correspondientes al significado del cdigo escrito. Pueden evaluarse en esta etapa la validez
de las expresiones, chequeo de tipos, rangos de valores, existencia de variables, etc.

Pgina 17
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

Una vez llevada a cabo la fase de anlisis, se realiza la etapa de sntesis, en la cual se construye el
programa objeto deseado (que tiene una equivalencia semntica al cdigo fuente) a partir de las
estructuras generadas en la etapa anterior [25].
Las fases fundamentales de la sntesis son:
-

Generacin de cdigo intermedio: Se genera un cdigo, independiente o no de la mquina,


donde es posible realizar el uso de optimizadores de cdigo.

Generacin de cdigo mquina: Crea el cdigo ejecutable por la mquina donde se utilizar
el programa, as como los bloques destinados a almacenar los datos propios del cdigo.

Fase de optimizacin: Esta puede efectuarse sobre el cdigo intermedio, sobre el cdigo
mquina, o sobre juntos. En esta fase se busca mejorar el rendimiento general de la
ejecucin del cdigo destino.

La etapa de sntesis vara segn la implementacin del traductor, pudiendo este eliminar algunas de
las fases, o contener ms; siempre y cuando se cumpla que la idea de la generacin de un cdigo
destino.

1.5 Conversores Fuente Fuente


Los conversores fuente fuente, son traductores que estn diseados especficamente para permitir
la traduccin de un lenguaje a otro, con la caracterstica de que se encuentran en un nivel de
abstraccin medianamente equivalente [25]. Son implementados generalmente cuando se requiere
de un lenguaje especfico para un problema determinado, pero donde no es necesaria la
construccin de un compilador, si no que nicamente basta con la traduccin a otro lenguaje que
pueda ser compilado de una manera sistemtica.

2. Marco Contextual
2.1 Curso Bsico de Programacin
Actualmente, en la Pontificia Universidad Javeriana, todos los programas de Ingeniera contienen
en su pensum acadmico, como parte del ncleo comn de aprendizaje, diferentes asignaturas
orientadas a la programacin de computadores [19], dependiendo del nivel de conocimientos que se

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

espera de un estudiante de una determinada carrera. Sin embargo, todos los estudiantes de estas
carreras asisten en comn a la asignatura Pensamiento Algortmico [20], en donde se obtiene la
formacin bsica necesaria para introducir a los estudiantes en la experiencia de aprender a
programar.
As, como ha sido explicado en la problemtica inicial de este trabajo de grado, y basndose en la
premisa de utilizar como caso de estudio a la Pontificia Universidad Javeriana Bogot, el curso de
Pensamiento Algortmico representa los contenidos generales que un curso bsico de programacin
contiene, y que la herramienta PsiCoder debe apoyar, enunciados a continuacin:
-

Tipos de datos y Operadores.

Uso de variables, constantes, Operaciones de entrada y salida.

Sentencias condicionales y anidamiento.

Condicionales mltiples y Sentencias repetitivas.

2.2 Trabajos anteriores


La idea de crear una herramienta que sea capaz de interactuar (crear, modificar, compilar y ejecutar)
con alguna forma de pseudocdigo es algo en lo que anteriormente se ha trabajado [21]. Es por esto
que en esta parte del documento se mostrar un estado del arte de las herramientas que siguen este
objetivo, con el fin de establecer las caractersticas y requerimientos que la herramienta PsiCoder
debera ofrecer, ya sea en el momento de su concepcin e implementacin, o en un futuro trabajo.
2.2.1 CompiSeudo UNAL
CompiSeudo UNAL [9], en s, no es una herramienta en donde el estudiante pueda escribir y
ejecutar pseudocdigo, si no un conjunto de herramientas didcticas para la enseanza y el
aprendizaje de los conceptos bsicos de programacin, para su uso en cursos a distancia a travs de
Internet. CompiSeudo cuenta con tres herramientas:

Pgina 19
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

Un generador de Applets Java, el cual transforma algn pseudocdigo, escrito en el editor


que se nombrar a continuacin, en un Applet depurador, que ejecuta el pseudocdigo paso
a paso, y donde es posible ver la pila de valores de las variables definidas (ver figura 3).

Figura 3. Applet Depurador


-

Un editor de pseudocdigo, orientado al profesor, donde se escribe un pseudocdigo con


una sintaxis definida (Ver figura 4). Inicialmente, esta herramienta posee una interfaz
bastante sencilla, de fcil entendimiento si se est acostumbrado al manejo de otras
aplicaciones similares. Sin embargo, el propsito principal de esta herramienta induce a que
el estudiante no la utilice, pues est diseada nicamente para generar applets depuradores.
Adems, carece de cualquier tipo de ayuda para la escritura del pseudocdigo, limitndose
a recibir un determinado texto, realizar syntax highlightning (colorear las palabras segn su
significado en el cdigo), y mostrar los posibles errores de compilacin.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

Figura 4. Editor de pseudocdigo de CompiSeudo UNAL


-

Un evaluador de expresiones lgicas, para el apoyo del entendimiento de la ejecucin de


pseudocdigo mostrado en los applets depuradores (ver figura 5).

Pgina 21
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

Figura 5. Evaluador de expresiones lgicas


La principal caracterstica que se puede resaltar de esta herramienta, es la diferenciacin de errores
que sta realiza al momento de compilacin, pues muestra los errores clasificados en errores
Sintcticos y en errores Semnticos, lo cual facilitara al estudiante a apropiarse del tipo de errores
posibles cuando se est programando.
Actualmente, no se conoce de ninguna institucin que haga uso de stas herramientas, debido a que
el proceso de instalacin no se encuentra documentado.
2.2.2 Entorno de Desarrollo SLE 2
SLE 2 [22], a diferencia de CompiSeudo UNAL, es una aproximacin real de la escritura de
pseudocdigo orientado a estudiantes.
Esta herramienta permite la creacin de mltiples cdigos fuentes (en lenguaje SL [22]),
permitiendo la compilacin y ejecucin del cdigo escrito (ver figura 6).

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

Figura 6. Entorno de Desarrollo SLE 2


Las principales caractersticas de esta herramienta es que permite la depuracin del cdigo (Debug),
y la visualizacin de expresiones (Watches) de algn cdigo determinado al momento de depurar.
Cuenta tambin en su editor con syntax highlightning y visor de lnea. Est disponible para los
Sistemas Operativos Windows (98, ME, XP) y Linux.
Esta herramienta es en la actualidad usada en la Universidad de Asuncin, Uruguay, para la
enseanza de la programacin de computadores. Sin embargo, no se adeca al concepto y propsito
inicial del Pseudocdigo [17][18], pues sus creadores definen el lenguaje utilizado como SL.
2.2.3 VisualPseudo
VisualPseudo [23], es una herramienta que permite la escritura y ejecucin de pseudocdigo,
basado en Pascal.

Pgina 23
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

Permite la creacin de mltiples documentos, y cuenta con un editor de syntax highlightning (ver
figura 7).

Figura 7. VisualPseudo
Entre sus principales caractersticas, cuenta con un analizador de errores en tiempo real, el cual
permite al estudiante ver los errores sintcticos y semnticos a medida en que escribe su cdigo.
Cuenta adems con una tabla que muestra las variables declaradas, su mbito (global, local, etc.), y
si se encuentra en ejecucin, su valor. Un valor agregado de esta herramienta es que muestra la
ejecucin de cdigo a travs de dilogos de usuario, y no a travs de una consola.
Como se encuentra escrito slo con archivos Java, se considera multiplataforma, aunque no ha sido
comprobado.
El anlisis de esta herramienta qued descartado, pues slo se encuentra disponible en portugus.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

2.2.4 PSeInt (PIPEH PSeudo Intrprete)


PSeInt [24] es quiz la ms completa de las herramientas para la escritura y ejecucin de
pseudocdigo. Su aproximacin de pseudocdigo es ms natural que en las otras herramientas, y
permite la creacin de mltiples documentos y editor con syntax highlightning (ver figura 8).

Figura 8. PSeInt
Esta herramienta cuenta con las caractersticas ms interesantes, pues permite la generacin de
Diagramas de Flujo a partir del pseudocdigo escrito, y permite la exportacin del cdigo traducido
a C++ (aunque sta es una caracterstica experimental). Posee tambin una pequea barra de
herramientas que muestra las estructuras de control bsicas del pseudocdigo, para su inclusin
dentro del texto de cdigo que el estudiante se encuentre escribiendo.
Inicialmente se propuso la adaptacin de esta herramienta para la utilizacin en cursos de
aprendizaje, pero al igual que SLE, cuenta con un cdigo definido, y que no se acomoda con la
aproximacin de enseanza de la Pontificia Universidad Javeriana [20].
Pgina 25
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

As entonces, se ha dispuesto que la herramienta pueda cubrir las caractersticas de las herramientas
descritas, y que genere un valor agregado para la Pontificia Universidad Javeriana, y en general
para cada institucin en donde se desee utilizarla. En la tabla 1, se presenta un listado de las
herramientas que se mencionan en este documento, con un conjunto de caractersticas que cada una
ofrece.

Tabla 1. Comparativa de herramientas.


La leyenda de la tabla es la siguiente:
-

: Cumple con la caracterstica.

: No cumple con la caracterstica.

: Se espera que en un trabajo futuro, cumpla con la caracterstica.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

III - PROCESO
En este apartado del documento, se presenta el proceso llevado a cabo para la realizacin del
proyecto de grado, con el fin de cumplir con los objetivos propuestos.

1. Desarrollo del Proyecto


1.1 Anlisis de Requerimientos Funcionales
Los requerimientos funcionales fueron obtenidos a travs de la especificacin de las necesidades
vistas en la problemtica inicial, teniendo en cuenta los trabajos anteriores mencionados, para
ofrecer una herramienta que se adece a los lineamientos y metodologas de enseanza estipuladas
por el Departamento de Ingeniera de Sistemas de la Pontificia Universidad Javeriana [20].
La elaboracin de los requerimientos funcionales provino del anlisis de la problemtica y fueron
redactados en conjunto con el Director de trabajo de grado.
1.1.1 User Stories
Para la especificacin de requerimientos se realizaron User Stories, tal como lo sugiere la
metodologa XP [10], sobre la cual est basada la metodologa utilizada en este documento (Fase 2:
Especificacin, diseo y desarrollo, etapa de Planificacin).
A continuacin se enumeran los User Stories identificados:
1. Al cerrar la aplicacin: Si el documento en el que se est trabajando no se ha guardado,
preguntar si se desean guardar los cambios. Se puede realizar desde alguna opcin de la
barra de men.
2. Al abrir la aplicacin: Aparece la ventana principal con la barra de men, que permitir la
creacin y edicin de documentos, tales como el cdigo fuente y la plantillas.
3. Documentos: Se deben poder crear, abrir y editar dos tipos de documento: plantillas y
archivos de Pseudocdigo.

Pgina 27
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

4. Definicin de archivos de Pseudocdigo: Archivos planos de texto, que contienen un


cdigo fuente comprensible para la herramienta, la cual estar en la capacidad de realizar
sobre estos anlisis lxico, sintctico y semntico, y ofrecer la funcionalidad de
compilacin.
5. Definicin de Plantilla: Documento de propiedades, que permitir el cambio dinmico de
los lexemas correspondientes a palabras clave y operadores, usados en el anlisis de los
archivos de Pseudocdigo.
6. Vista de creacin plantilla: Cuando se crea una plantilla, la aplicacin debe mostrar un
cdigo de ejemplo que muestre como quedara el uso de esta, lo cual se puede realizar
desde la opcin de la barra de men o desde el icono de la barra de herramientas.
7. Vista de carga de plantilla: Para abrir una plantilla se puede realizar desde el icono de la
barra de herramientas o desde la opcin de la barra de men. La aplicacin debe mostrar un
mensaje de carga exitosa de la plantilla.
8. Vista de edicin de plantilla: Para editar una plantilla, deber existir un panel donde se
permita editar las palabras reservadas comunes, tipos de datos, condicionales, ciclos,
operaciones matemticas, operaciones booleanas de la plantilla. La vista deber proveer
tambin un visor que permita la visualizacin o vista previa del documento.
9. Vista de creacin archivo de Pseudocdigo: Cuando se crea un archivo de pseudocdigo, la
aplicacin debe mostrar un editor del cdigo, y debe proveer la estructura bsica de un
cdigo fuente, realizando la coloracin del texto (syntax highlighting) segn la plantilla que
se encuentre cargada.
10. Vista de edicin de archivo de Pseudocdigo: Para editar un archivo de Pseudocdigo se
debe mostrar el editor de cdigo, junto con un grupo de herramientas, definidas a libre
disposicin del desarrollo, que promuevan la usabilidad de la herramienta.
11. Editar fuente de letra: La fuente se puede editar con las opciones que se encuentran en una
barra ubicada en la parte superior de la herramienta en la cual se puede subir o bajar el
tamao de la fuente, cambiar el tipo de fuente, ir a una lnea deseada, y mostrar u ocultar el
numero de lnea.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

12. Guardar archivos: Para guardar los archivos se puede realizar por medio del icono en la
barra de herramientas o desde la opcin de la barra de men, se puede guardar los cambios
en el mismo documento o realizar una copia del mismo.
13. Imprimir archivo: Se debe proveer la funcionalidad de impresin de archivos de cdigo
fuente.
14. Compilar: Se puede realizar desde la barra de herramientas y desde la opcin de la barra
men, haciendo click en el icono. En esta se realiza la estructura del programa a ejecutar y
se muestran posibles errores sintcticos y semnticos que posea el cdigo fuente escrito.
15. Ejecutar: Se puede realizar desde la barra de herramientas y desde la opcin de la barra
men. En esta se realizar primero la compilacin del archivo fuente, para despus ser
ejecutado el programa en caso que no haya errores.
16. Vista de errores: Debe mostrar un cuadro en el cual sern mostrados los errores para que se
puedan corregir y as ejecutar el programa.
17. Ayuda: Se puede acceder a la ayuda desde la opcin de la barra de men y desde el icono de
la barra de herramientas, en esta se encontrar lo necesario para utilizar la herramienta
adecuadamente.
18. Cambiar palabras claves: al estar editando o creando una plantilla y querer cambiar una
palabra clave se selecciona la pestaa deseada y el campo deseado, actualizando la vista
previa cada vez que se cambie de campo o se oprima la tecla Enter.
19. Traduccin del Pseudocdigo: Se debe tener la opcin de guardar el documento con
formato .cpp, es decir, que se realice una traduccin de lenguaje a C++.

1.2 Aspectos tcnicos generales y Requerimientos no funcionales


Una vez definidos los requerimientos funcionales de la herramienta a travs de los User Stories, se
determinaron los aspectos generales de implementacin, y que a su vez mostraron los
requerimientos no funcionales de la misma.

Pgina 29
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

1.2.1 Mltiples ambientes de ejecucin


Para ofrecer una suficiente flexibilidad a la herramienta, se sugiri inicialmente que sta pudiese ser
ejecutada en distintos sistemas operativos. Para esto, se especific que la herramienta se ejecutara
en los sistemas operativos instalados en las salas donde se realizan los laboratorios de
programacin, siendo estos Windows XP y Mandriva Linux 2008.
As, entonces se determin que la herramienta fuese desarrollada en un lenguaje que permitiera
generar ejecutables en ambos ambientes, y por esta razn se escogi como lenguaje de
programacin Java, ya que permite la reutilizacin del mismo cdigo para su utilizacin en estos
sistemas operativos, y que adems se cuenta con la experiencia necesaria para llevar a cabo el
desarrollo con esta tecnologa.
1.2.2 Requerimientos Tcnicos
Debido a la implementacin de la herramienta, es necesario que las mquinas donde se ejecutar
PsiCoder tengan instalado el Java Development Kit (JDK) versin 1.6 o posterior. Tener instalado
un Java Runtime Enviroment (JRE) no es suficiente, pues se utilizan herramientas de compilacin
slo provistas por el entorno de desarrollo Java (JDK).
As, la herramienta se podr ejecutar en los sistemas operativos que cuenten con un JDK Versin
1.6 vlido. Se sugiere usar la implementacin de Sun Microsystems preferiblemente, debido a que
las pruebas realizadas se ejecutaron sobre sta, pero se espera que trabaje bien con la
implementacin OpenJDK y la implementacin propia de Apple Computers Inc., estableciendo de
antemano que no se realizarn pruebas sobre estas implementaciones que comprueben el correcto
funcionamiento de la herramienta.
1.2.3 Licenciamiento
La licencia con la cual se distribuir la herramienta PsiCoder, ser la GNU General Public Licence
(GPL) versin 3 [31]. Se ha optado por usar esta licencia, debido a que permite una mayor
compatibilidad con prximas implementaciones de aditamentos y funcionalidades que se deseen
llevar a cabo en futuros trabajos, y permite, adems, la libre distribucin y modificacin de la
herramienta, por parte de la comunidad mundial de desarrollo de software.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

1.3 Diseo General de la Aplicacin


Una vez definidos los requerimientos tcnicos y funcionales de la herramienta, se procedi a
realizar el diseo de sta, a travs mltiples iteraciones que permitieran el trazado de los
requerimientos con sus respectivos componentes de software.
1.3.1 Modelo Arquitectural
Para el desarrollo de PsiCoder se utiliz el modelo arquitectural MVC (Modelo-Vista-Controlador)
[26], ya que su uso es comn en aplicaciones interactivas, orientada a su uso por parte de usuarios
finales, y que se encuentra dividida en tres grandes componentes. El componente del Modelo
contiene la funcionalidad principal y la manutencin lgica de los datos. El componente de la Vista
muestra la informacin al usuario en una forma que ste pueda comprender, y el componente
Controlador se ocupa de procesar la entrada del usuario, para modificar o procesar el Modelo, y a su
vez actualizar los datos que la Vista presenta. La interfaz de usuario se compone de las vistas y
controladores.
1.3.2 Diagrama de Componentes
A continuacin se muestra el diagrama de componentes (figura 9) utilizados en PsiCoder:

Pgina 31
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

Figura 9. Diagrama de Componentes


Segn el diagrama proporcionado, los componentes de la herramienta se describen as:
-

Componente PsiCoder: Es el componente base de la herramienta. Se encarga de administrar


todos los componentes en la aplicacin, y se encuentra constituido por la interfaz grfica y
el Framework de Plugins.

Componente Interfaz de Usuario: Se encarga de administrar y proveer la interaccin con el


usuario. Se conforma de tres subcomponentes que actan como el modelo arquitectnico
propuesto.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

Componente Documento: Es la representacin lgica de los datos (Modelo) que el


usuario crea y edita. Por el momento, los documentos sern los Archivos de
Pseudocdigo y las Plantillas

Componente Perspectiva: Se encarga de proveer la visualizacin de los datos hacia


el usuario (Vista), dndole una representacin grfica de los documentos que se
hayan creado o se estn editando. Pueden existir varias perspectivas para un mismo
documento.

Componente Controlador de Perspectivas: Administra el intercambio de vistas y la


actualizacin de los documentos segn los cambios realizados por el usuario
(Controlador).

Framework de Plugins: Componente destinado a hacer la herramienta flexible y extensible,


con la finalidad de cargar dinmicamente las libreras usadas por la herramienta, as como
tambin Aditamentos o Plugins, para proveer ms funcionalidades a la herramienta de las
que actualmente tiene.

Componente Intrprete: Se encarga de la manipulacin lgica de los documentos de


Pseudocdigo y de realizar la fase de anlisis competente del proceso de compilacin, con
el fin de generar el rbol sintctico definido en el Anexo 2.

Componente Compilador: Este componente acta como un envoltorio de un compilador de


algn lenguaje de alto nivel, con el fin de proveer la fase de sntesis del proceso de
compilacin, realizando la traduccin del rbol sintctico dado por el componente
Intrprete hacia el lenguaje de alto nivel definido.

Es importante resaltar que ni el componente intrprete ni el componente compilador fueron creados


usando una herramienta de generacin de compiladores tal como CUP, YACC o JavaCC [25],
debido a las siguientes razones:
-

Segn las recomendaciones de calidad del Capability Maturity Model Integration (CMMI)
[29], el uso de tecnologas nuevas para los desarrolladores infiere un proceso poco maduro,
Pgina 33

Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

y que genera riesgos en el momento del desarrollo, que pueden conllevar al retraso de la
herramienta, o peor an, al fracaso. Adems, debido a que el tiempo de desarrollo del
proyecto fue relativamente corto (8 meses), quedaba fuera del alcance y disponibilidad del
cronograma utilizado.
-

El desarrollo de la aplicacin estuvo enfocado principalmente en el control y manejo de los


tiempos estimados de las iteraciones, as como de la poltica de utilizar el menor nmero de
libreras externas al desarrollo propuesto, para brindar una herramienta de tamao pequeo,
y que tal vez no hubiese sido posible si se utilizaran componentes de terceros.

1.4 Diseo Detallado y Codificacin de la Aplicacin


El desarrollo de la aplicacin fue llevado a cabo utilizando como herramientas de programacin el
entorno de desarrollo integrado NetBeans 6.0 [27]. Se utiliz tambin un estndar comn de
codificacin e identado acordado por los desarrolladores de la herramienta. El cdigo fue
administrado por un Servidor de control de versiones Subversion [16].
1.4.1 Componente Interfaz Grfica
El componente de interfaz grfica fue desarrollado utilizando patrones de diseo generales para
aplicaciones de escritorio, de la siguiente forma:
-

Se utilizaron los patrones Singleton y Facade [28], para ofrecer un punto de acceso general
a los componentes de la aplicacin, tal como lo muestra la figura 10.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

Figura 10. Patrones Singleton y Facade


-

Se utiliz el patrn Observer [28], para notificar los cambios de perspectivas que se
realizan cada vez que un documento es creado o abierto, tal como se muestra en la figura
11.

Pgina 35
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

Figura 11. Patrn Observer.


-

Se utilizaron los patrones Adapter y Command [28], para la implementacin de las


funcionalidades ofrecidas por la barra de men, tales como copiar, pegar, cortar, deshacer,
rehacer, etc. Tal como se muestra en la figura 12.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

Figura 12. Patrones Adapter y Command

Pgina 37
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

1.4.2 Componente Framework de Plugins


El Framework de Plugins fue diseado y codificado con la finalidad de ser reusable, y se dispone
como una librera anexa a la herramienta. El modelo de clases se encuentra en la figura 13.

Figura 13. Diagrama de clases del Framework de Plugins


1.4.3 Componente Intrprete
Este componente se implement siguiendo los lineamientos propuestos en el proceso de traduccin
descrito en el marco conceptual de este documento. La estructura utilizada como rbol sintctico
(ver Anexo 2) fue dispuesta de tal manera que pudiese ser recorrida utilizando el patrn Visitor [28],
adaptado a las necesidades de la implementacin (ver la figura 14).

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

Figura 14. Intrprete y Patrn Visitor.


1.4.4 Componente Compilador
El componente compilador fue desarrollado con el fin de ofrecer una capa de abstraccin entre el
rbol sintctico y la generacin del cdigo destino. La idea primordial del funcionamiento del
compilador de PsiCoder reside en la implementacin de un traductor que se asemeje al concepto de
conversor fuente fuente, descrito en el marco conceptual del presente documento. As, se logra
ocultar la implementacin de la traduccin al lenguaje de alto nivel y su compilacin y ejecucin
por parte de este componente, ofreciendo una mayor flexibilidad a la herramienta. La figura 15
muestra el diagrama de clase de este componente.
Pgina 39
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

Figura 15. Diagrama de Clase del Componente Compilador


1.4.5 Proceso General de Traduccin-Compilacin del Pseudocdigo
Despus de ser definidos los componentes de la herramienta, se estableci que el proceso de
interpretacin, traduccin y compilacin del pseudocdigo fuese el siguiente:
1. El pseudocdigo en texto es pasado al intrprete como una cadena de caracteres.
a. Al recibir la cadena de caracteres, el intrprete pasa sobre sta el analizador lxico,
el cual busca e identifica los distintos lexemas definidos en la tabla de smbolos,
utilizando para esto un motor de expresiones regulares.
b. Una vez identificados los lexemas, son almacenados y revisados por un Parser
[25], que acta tambin como analizador sintctico. ste se encarga de la
construccin del rbol sintctico, identificando los posibles errores que existiesen
en la sintaxis del pseudocdigo escrito.
c. Con el rbol sintctico construido, el intrprete pasa sobre ste el analizador
semntico, el cual se encarga de buscar y reportar errores en el significado de las
sentencias escritas.
2. Una vez procesado el texto, y transformado en el rbol sintctico, ste es pasado hacia el
compilador, para generar los objetos ejecutables

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

a. El Compilador utiliza un traductor quien se encarga de transformar el rbol


sintctico en cdigo de algn lenguaje de alto nivel (la implementacin actual
utiliza Java), y almacenarlo dentro de un archivo de texto.
b. Con el archivo fuente generado, ste es pasado hacia el compilador del lenguaje de
alto nivel (la implementacin actual utiliza para ste propsito un JDK vlido), para
generar algn tipo de archivo ejecutable.
c. Ya generado los ejecutables, el componente enlaza y ejecuta estos archivos para ser
manipulados por el usuario.

1.5 Pruebas
Una vez finalizada cada iteracin de desarrollo, se ejecutaron las pruebas pertinentes para verificar
la trazabilidad y la funcionalidad de la herramienta.
1.5.1 Pruebas Unitarias
Se llev a cabo un conjunto de pruebas por cada componente, verificando y validando el correcto
funcionamiento del mismo. En caso de que el componente no pasara la prueba, se hizo una
reiteracin, analizando los aspectos en donde la implementacin fallaba, para corregirla y seguir
con el proceso de revalidacin y verificacin.
1.5.2 Pruebas de Integracin
Una vez aceptadas las versiones de cada componente, se procedi a realizar las pruebas de
integracin, con el fin de asegurar que la comunicacin entre componentes fuera la correcta. Al
igual que con las pruebas unitarias, en cada caso donde la prueba no fuese exitosa, se procedi a
realizar una reiteracin sobre el proceso.
1.5.3 Pruebas de Sistema
Con las pruebas unitarias e integrales realizadas, los componentes validados y verificados se
sometieron a pruebas de sistema, para asegurar que la herramienta funcionara y cumpliera con los
requerimientos funcionales y no funcionales extrados de los User Stories enunciados
anteriormente. Se ejecutaron pruebas tales como la creacin, edicin, compilacin y ejecucin de
archivos de Pseudocdigo, provistos en el Anexo 3.
Pgina 41
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

1.5.4 Prueba de Usabilidad


Una vez terminada la herramienta, se procedi a ejecutar una prueba de usabilidad, con el fin de
determinar que tan cmodos se sienten los usuarios (estudiantes y profesores del curso Pensamiento
algortmico) con respecto a la facilidad de uso de la herramienta, su aspecto visual y su
funcionalidad. La descripcin de la prueba se describir brevemente en la posterior seccin de
resultados, y la descripcin detallada se encuentra en el Anexo 4.

1.6 Herramienta Desarrollada


Llevadas a cabo varias iteraciones en el proceso de desarrollo e implementacin, se culmin con
xito la herramienta, para ser utilizada en la prueba de usabilidad.
Bsicamente, la herramienta construida est divida en dos partes: el editor de pseudocdigo (ver
figura 16), el cual permite a los estudiantes la escritura, compilacin y ejecucin de pseudocdigo;
y el editor de plantillas (ver figura 17), el cual permite a los profesores o tutores la modificacin de
las palabras reservadas y operadores con los cuales se definen la tabla de smbolos utilizados por el
intrprete del pseudocdigo.

Figura 16. Vista de Edicin de Pseudocdigo

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

El editor de pseudocdigo cuenta con un panel que permite visualizar las lneas de cdigo, y un
editor de texto que realiza syntax highlight. Adems cuenta con mltiples herramientas, tales como
el visualizador de errores (parte inferior de la figura 16), una barra de ayuda que permite la
insercin de cdigo (panel derecho de la figura 16), un pequeo panel de autocompletado, y una
barra de herramientas para manipular la fuente del editor.

Figura 17. Vista de Edicin de Plantillas


La vista de edicin de plantillas cuenta con un panel editor de las palabras reservadas y operadores
(parte derecha de la figura 17), en donde se realizan los cambios de los mismos. Estos cambios son
reflejados en el pre visualizador de pseudocdigo (parte izquierda de la figura 17), el cual presenta
un cdigo de ejemplo que muestra cmo quedara la estructura general del pseudocdigo, basado en
la plantilla que se est editando.

2. Reflexin Metodolgica
La aplicacin de la metodologa propuesta sobre el desarrollo del proyecto fue llevada
exitosamente, gracias a la organizacin y empeo puesto por parte de los desarrolladores y
colaboradores del proyecto. Sin embargo, en las pruebas realizadas, la herramienta JUnit no se us,
Pgina 43
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

ya que la mayora de las pruebas unitarias eran triviales, o se dispona de una amplia estructuracin
sobre el diseo de los componentes de la herramienta, lo que conllev a reducir la complejidad de
las pruebas.
Se espera que en futuros procesos, basados en la metodologa usada, se haga un anlisis acerca del
uso de esta herramienta de sistematizacin de pruebas, con el fin de comprobar si efectivamente su
uso permite acelerar el proceso de implementacin, y reduce la cantidad de iteraciones que se deben
realizar.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

IV - RESULTADOS Y RECOMENDACIONES
1.

Resultados

Como se haba mencionado antes, fue realizada una prueba de usabilidad para determinar el nivel
de dicho atributo, para demostrar, en parte, que PsiCoder cumple en su objetivo de apoyar el
proceso de enseanza aprendizaje en un curso bsico de programacin.
La prueba fue realizada sobre un grupo aleatorio de estudiantes y profesores, que pertenecieran al
curso de Pensamiento Algortmico. Se evaluaron en total a 45 estudiantes, donde se encontraban
estudiantes de todas las ingenieras, estudiantes nuevos en la materia, estudiantes repitentes,
estudiantes con y sin previo conocimiento de herramientas de programacin; todos estos sin hacer
distincin alguna. La prueba fue realizada tambin a 4 profesores, tanto de ctedra como de planta,
para analizar la usabilidad de la herramienta desde su punto de vista.
La prueba realizada se llev a cabo en los laboratorios de ingeniera de la Pontificia Universidad
Javeriana, con la herramienta previamente instalada en cada mquina. Se aplicaron cuatro encuestas
distintas, dos para los estudiantes y dos para profesores, bajo las mismas condiciones.
La primera prueba se realiz al mismo tiempo que se daban las instrucciones a los encuestados de
cmo utilizar la herramienta, para que tanto profesores como estudiantes probaran las
funcionalidades en un cierto nmero de pasos. Acabada la primera encuesta, se procedi a realizar
la segunda encuesta, para que tanto profesores como estudiantes evaluaran su experiencia con la
herramienta, indicando comentarios que nos permitiera retroalimentar en aspectos tanto de
funcionalidad como de usabilidad.
Los detalles de la prueba se encuentran en el Anexo 4, y las encuestas realizadas en el Anexo 5.

1.1 Prueba Inicial para Estudiantes


Los resultados obtenidos de la realizacin de la prueba fueron los siguientes:

Pgina 45
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

Pgina 47
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

1.2 Prueba de Salida para Estudiantes

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

1.3 Prueba Inicial para Profesores

Pgina 49
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

1.4 Prueba de Salida para Profesores

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

1.5

Anlisis de Resultados
Una vez tomados y tabulados los resultados de las pruebas, se concluye que el nivel de usabilidad
de la herramienta es significativamente alto. En las preguntas realizadas, los encuestados concluyen
en ms de un 75% que la herramienta es fcil de usar, es atractiva a la vista y promueve el uso de la

Pgina 51
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

herramienta, tornndolo en algo sumamente significativo para el cumplimiento de los objetivos


propuestos inicialmente, ya que parte de los principales factores para el uso efectivo de una
herramienta de software es la promocin, incentivacin y agrado de la misma [30]. Parte del xito
de la prueba proviene de la estructura visual sencilla de la herramienta, y del uso de imgenes que
relacionan los conceptos abstractos con la funcionalidad del pseudocdigo utilizado .
1

Tambin es importante resaltar el agrado general que proporciona la creacin, edicin y uso de las
plantillas, que permiten a los profesores o tutores personalizar la forma en la que la herramienta
reconoce el cdigo que sus estudiantes escriben, ajustada a su metodologa de enseanza.
Los resultados negativos obtenidos (8% aproximadamente) provinieron de pequeos fallos en la
herramienta, pues para la prueba fue usada una versin beta de la misma, pues adems de
comprobar la usabilidad de sta, otro de los propsitos era comprobar su funcionalidad a travs de
una ltima iteracin sobre la metodologa propuesta, donde se corrigieron todos los defectos.

Conclusiones obtenidas a travs del anlisis en los comentarios de las encuestas.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

V - CONCLUSIONES Y TRABAJOS FUTUROS


1. Conclusiones
La creacin de la herramienta PsiCoder se bas en todo momento en el pro del aprendizaje de los
estudiantes de la programacin de computadores, y en el apoyo metodolgico y pedaggico hacia
los profesores y tutores de estos cursos. As mismo, siempre se tuvo proyectado un alcance fijo y
realista que permitiera el cumplimiento de los objetivos descritos en su totalidad.
Se realiz un estudio acerca de las herramientas que tuviesen como propsito el acercamiento por
parte de los estudiantes hacia la programacin a travs del manejo interactivo del Pseudocdigo,
para as lograr una base firme y sustentada con la cual poder esclarecer las caractersticas
funcionales y de usabilidad que la herramienta PsiCoder requera. Esto permiti proyectar a
PsiCoder como una herramienta estable, con un nivel de madurez suficiente para ser usada a futuro
como una ayuda didctica en la enseanza y el aprendizaje de la programacin de computadores, en
especial, porque se vio fuertemente influenciada en cubrir y apoyar los aspectos de inters por parte
de los estudiantes con respecto a la asignatura de Pensamiento Algortmico dictada actualmente en
la Pontificia Universidad Javeriana.
Se toma tambin como una conclusin que el proceso de desarrollo establecido con seriedad, y la
firme constancia de la aplicacin de la metodologa propuesta sobre cada etapa del proyecto, hayan
permitido que el proyecto fuera llevado a cabo en los mrgenes establecidos por el cronograma
propuesto, cumpliendo con los objetivos funcionales de la herramienta a cabalidad, incluso llegando
un poco ms all.
Tal como se describe en el marco contextual de este documento, PsiCoder deba cubrir los temas
fundamentales de principio del curso de Pensamiento Algortmico, tal como las declaraciones de
variables, uso de expresiones, condicionales y sentencias repetitivas. Sin embargo, gracias al
esfuerzo y dedicacin por ofrecer una herramienta de calidad, que supliera significativamente el
vaco de una herramienta concreta y funcional para el apoyo del curso, se promovi el llegar ms
all de los temas establecidos que la herramienta deba abordar, llegando as a implementar temas
posteriores de la asignatura como lo son la declaracin y uso de arreglos multidimensionales, la
Pgina 53
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

declaracin de tipos de datos como estructuras o registros, y la definicin y uso de funciones y


procedimientos.
Esto permiti llevar hacia un grupo de estudiantes y profesores una herramienta madura y pertinente
para su uso en la familiarizacin de los conceptos bsicos en la programacin, sustentando estas
afirmaciones bajo los altos ndices de aceptacin alcanzados en la realizacin de la prueba piloto de
usabilidad, para as satisfactoriamente demostrar que PsiCoder es un gran candidato para apoyar en
la pedagoga propia de la Pontificia Universidad Javeriana, y en otras instituciones educativas
donde se opte por usar la herramienta.

2. Trabajos Futuros
Una vez construido PsiCoder, el objetivo que se debe seguir despus de la realizacin de la
herramienta, es entonces, disear y ejecutar planes de pruebas de implementacin en la Pontificia
Universidad Javeriana, que permitan realizar un estudio y un anlisis serios acerca de qu tan eficaz
es la herramienta para promover, incentivar y apoyar el proceso de enseanza aprendizaje de la
asignatura Pensamiento Algortmico, evaluando tambin los ndices de desercin, retiro, y prdida
de la asignatura.
Tambin se promueve, que gracias a la flexibilidad con la que PsiCoder fue diseada, se
implementen distintos aditamentos para la herramienta que permitan, entre otros:
-

Generacin de Diagramas

Apertura de mltiples documentos y relacin de los mismos

Depurador del cdigo escrito

Visor de Expresiones

Inclusin de compilado y ejecucin de archivos C++

Variacin de la estructura sintctica del cdigo escrito, con el fin de proveer un mayor
acercamiento al concepto de Pseudocdigo

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

Utilizacin de compiladores generados utilizando herramientas tales como JFlex, YACC,


JavaCC, SableCC, CUP, entre otras.

Pgina 55
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

VI - REFERENCIAS Y BIBLIOGRAFA
1. Referencias
[1] Hurtado, J.; Chavarro, G.; Carreo, J. & Avellaneda, F. (2007), 'El problema de la Enseanza y
Aprendizaje en la formacin bsica de programacin para Ingenieros', Technical report,
Facultad de Ingeniera, Departamento de Ingeniera de Sistemas, Pontificia Universidad
Javeriana.
[2] Largo, F. & Cuerda, R. (1996), 'Ensear Programacin en las Ingenieras Informticas', II
Jornadas Nacionales de Innovacin en las Enseanzas de las Ingenieras, Instituto de Ciencias
de la Educacin, Instituto de Ciencias de la Educacin, Universidad Politcnica de Madrid,
Technical report, Grupo i3a (Informtica Industrial e Inteligencia Artificial), Departamento de
Tecnologa Informtica y Computacin, Universidad de Alicante.
[3] Allinson, C. & Hayes, J. (1996), 'The cognitive Style Index', Journal of Management Studies
33:1, pp. 119--135.
[4] Felder, R. (1988), Learning and Teaching Styles in Engineering Education, Engr. Education.
[5] Restrepo, M.; Campo, R.; Guzmn, V.; Londoo, O. & Rincn, H. (2002), 'Prcticas de estudio
de universitarios', Technical report, Facultad de Educacin, Informes de Investigacin,
Pontificia Universidad Javeriana.
[6] Faux, R. (2006), 'Impact of preprogramming course curriculum on learning in the first
programming course', #IEEE_J_EDU# 49(1), pp. 11--15.
[7] Mudner, T. & Shakshuki, E. (2004), A new approach to learning algorithms, in 'Proc.
International Conference on Information Technology: Coding and Computing ITCC 2004', pp.
141--145.
[8] Naps, T. (2005), 'JHAVE: supporting algorithm visualization', #IEEE_M_CGA# 25(5), 49--55.
[9] Bez, H. & Vargas, J. (2003), 'Ayudas didcticas para el curso virtual de Programacin de
Computadores', Tesis de pregrado, Facultad de Ingeniera, Departamento de Ingeniera de
Sistemas e Industrial, Universidad Nacional de Colombia.
[10]

Beck, K.Addison-Wesley, ed. (2000), eXtreme Programming explained: Embrace Change,

Upper Saddle River, NJ.

Pontificia Universidad Javeriana

[11]Wells,

D.

Memoria de Trabajo de Grado Ayuda Didctica

(1999),

'Extreme

Programming:

Gentle

Introduction.',

http://www.extremeprogramming.com/
[12]

Avellaneda, F., 'Pequeo Manual de Seudocdigo', Pontificia Universidad Javeriana,

Facultad

de

Ingeniera,

Departamento

de

Ingeniera

de

Sistemas.

http://sophia.javeriana.edu.co/programacion/Recursos/Seudocodigo/Definicion_de_Seudocodig
o.html
[13]

Ambler, S. (2001), 'AM Throughout the XP Lifecycle', The Official Agile Modeling (AM)

Site. http://www.agilemodeling.com/images/lifecycleXPProjectBeck.gif
[14]

Louridas, P. (2005), 'JUnit: unit testing and coiling in tandem', #IEEE_M_S# 22(4), pp 12--

15.
[15]

Sampieri, R.; Collado, C. & Lucio, P., Hill, M., ed. (1998), Metodologa de la

Investigacin, McGraw Hill.


[16]

Collabnet, Open Source Software Engineering Tools. http://subversion.tigris.org/

[17]

Lanzillotta,

Anala,

Revista

Digital

Master

Magazine,

http://www.mastermagazine.info/termino/6428.php
[18]

Wikipedia,

la

enciclopedia

libre,

Definicin

de

Pseudocdigo.

http://es.wikipedia.org/wiki/Pseudoc%C3%B3digo
[19]

Pgina

oficial

de

Ingenieras,

Pontificia

Universidad

Javeriana.

http://ingenierias.javeriana.edu.co
[20]

Programa del curso oficial Pensamiento Algortmico, Pontificia Universidad Javeriana,

2008.

http://sophia.javeriana.edu.co/programacion/Contenidos/4206-

Pensamiento_Algoritmico.html
[21]

Marco A. Balieiro y Eloi L. Favero. Compiladores e interpretadores: Uma abordagem

prctica. En XX Semana Paraense de Informtica, Belm, PA., 2006.


[22]

Uruguay Centro Nacional de Computacin, Universidad de Asuncin. Lenguaje SL y

entorno de desarrollo SLE. Disponible en http://www.cnc.una.py/sl/

Pgina 57
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

[23]

Marco

ISTAR CIS0810IS02

A.

Balieiro.

Herramienta

Visualpseudo.

Disponible

en

http://sourceforge.net/projects/visualpseudo.
[24]

Pablo

Novara.

Herramienta

PiPeh

Pseudointerprete.

Disponible

en

http://pseint.sourceforge.net/.
[25]

Sergio Glvez R. y Miguel A. Mora M., Java a Tope: Traductores y Compiladores con

LEX/YACC, JFlex/CUP y JavaCC, Dpto. de lenguajes y Ciencias de la Computacin, E.T.S. de


Ingeniera Informtica, Universidad de Mlaga, 2005.
[26]

Revista dotNetMania, Arquitecturas, algunos fundamentos. Edicin N 6, Madrid,

Julio/Agosto

de

2006.

Disponible

en

http://homepage.mac.com/imaz/iblog/C612772037/E20050907214355/Media/Arquitecturas
%2c%20algunos%20fundamentos.pdf
[27]

Entorno de desarrollo Integrado NetBeans. Disponible en http://www.netbeans.org/.

[28]

C. Larman, UML y Patrones, 2da edicin, Pearson Education - Prentice Hall, 2003.

[29]

Joaqun

Gracia,

CMM

CMMI,

Agosto

de

2005.

Disponible

en

http://www.ingenierosoftware.com/calidad/cmm-cmmi.php.
[30]

Mercovich, Eduardo. Cmo hacer un Test de Usabilidad de un sitio: Planificacin,

Seleccin de Usuarios, Pruebas, Reporte y Anlisis. Buenos Aires, Argentina, 1999. Disponible
en : http://www.gaiasur.com.ar/infoteca/siggraph99/test-de-usabilidad-de-un-sitio.html
[31]

Licencia

GNU

General

Public

License,

Versin

3.

Disponible

en

http://www.gnu.org/copyleft/gpl.html
[32]

Informtica PC. Disponible en http://www.informatica-pc.net/glosario/glosario_p.php

2. Bibliografa
[33]

B. Bruegge and A. H. Dutoit, Ingeniera de Software Orientado a Objetos, Prentince Hall,

2002.
[34]

A. V. Aho, M. S. Lam, R. Sethi and J. D. Ullman, Compilers: Principles, Techniques, and

Tools, 2da Edicin, Addison Wesley, 2006.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

Pgina 59
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

V- ANEXOS
Anexo 1. Glosario
-

ALGORITMO: Conjunto ordenado y finito de instrucciones o pasos que definen un


procedimiento. El algoritmo nos da la solucin genrica a un problema y lo podremos
emplear todas las veces que se nos presente ese mismo problema [22]

PSEUDOCODIGO: Es una serie de normas lxicas y gramaticales a la mayora de los


lenguajes de programacin, pero sin llegar a la rigidez sintctica de estos ni a la fluidez del
lenguaje coloquial [23], son la combinacin de el lenguaje comn con palabaras claves e
instrucciones de programacin.

API: Application Programming Interface que se traduce al espaol como Interfaz de


Programacin de Aplicaciones. Es un compendio de documentacin sobre los
procedimientos que se pueden utilizar dentro de las libreras de un lenguaje de
programacin. Especficamente para el lenguaje JAVA existe el API provisto por SUN.

JAVA: Lenguaje de programacin orientado a objetos que fue diseado por Sun con el
objetivo de la independencia de la plataforma.

DESARROLLO ORIENTADO A OBJETOS: Enfoque para el desarrollo de software en el


que las abstracciones fundamentales en el sistemas son objetos independientes. Se utiliza el
mismo tipo de abstraccin durante la especificacin, diseo y desarrollo [33].

CLASE: Abstraccin de un conjunto de objetos que tienen los mismos atributos,


operaciones, relaciones y semnticas [33].

ATRIBUTOS: Propiedades de cada uno de los objetos individuales.

PRUEBA DE SISTEMA: es un tipo de prueba que se realiza a un sistema cuando ha sido


terminado para verificar si funciona en el ambiente en el cual se va a utilizar. En estas
pruebas se revisan la relacin de los elementos del sistema con su entorno.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

PRUEBA UNITARIA: es un tipo de prueba que se realiza de manera aislada a un


componente de un sistema con el fin de verificar que produce los resultados esperados,
prueba de componentes individuales [33].

PRUEBAS DE INTEGRACIN: Actividad de prueba durante la cual los desarrolladores


encuentran defectos combinando una pequea cantidad de subsistemas u objetos [33].

PRUEBAS DE USABILIDAD: Validacin de un sistema o un modelo mediante el uso de


prototipos y simulaciones de un usuario [33].

ESTILO ARQUITECTONICO: Modelo de diseo de sistema general que puede usarse


como punto inicial para el diseo del sistema [33].

ERROR

SINTCTICO: Error encontrado en un cdigo, el cual aparece cuando un

conjunto de lexemas o palabras no cumplen con las reglas estructurales del lenguaje [33].
-

ERROR SEMANTICO: Error encontrado en un cdigo, cuando un conjunto de lexemas no


tienen un significado aparente segn las reglas gramaticales del lenguaje [33].

ERROR LEXICO: Error encontrado en un cdigo, cuando uno o ms lexemas no son


reconocidos por la tabla de smbolos del lenguaje [33].

PLUGIN: es un programa que interacta con un software para aumentar sus servicios,
aadindole alguna funcionalidad extra [32].

Pgina 61
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

Anexo 2. Estructura del rbol Sintctico

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

Anexo 3. Archivos de Prueba

Pgina 63
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

Anexo 4. Descripcin de la Prueba de Usabilidad


Los pasos a realizar para el diseo de los casos de usabilidad de la prueba estn basados en [3],
siendo adaptados al caso particular y al objetivo de la prueba.
OBJETIVO
La prueba se realiza para verificar la usabilidad de la ayuda didctica PsiCoder, en el contexto para
el cual fue diseada, es decir, para la ayuda y soporte al proceso de enseanza-aprendizaje de la
materia Pensamiento Algortmico.
1.1.

Planificacin

1.1.1.

Coordinador del proceso de la Prueba.

La prueba de usabilidad estar a cargo de Liliam Paola Pez Prez y John Henry Vsquez Acero,
estudiantes que disearon y desarrollaron la ayuda didctica, con el apoyo del director de trabajo de
grado Jos Hernando Hurtado, y la asesora del profesor de planta de la universidad Leonardo
Florez.
1.1.2.

Alcance de la prueba

Determinar un nivel cualitativo de usabilidad de la ayuda didctica, con el fin de proporcionar bases
que sirvan para sustentar una posible implementacin en la asignatura de Pensamiento Algortmico.
1.1.3.

Participantes y encuesta de la prueba

LA MUESTRA
Se seleccionar una muestra para la prueba de usabilidad, la cual delimita un grupo conformado por
estudiantes con tres tipos diferentes de conocimientos: estudiantes que estn cursando la materia y
utilizan una herramienta similar, un segundo grupo de estudiantes que estn cursando la materia
pero que no estn utilizando ninguna herramienta, y por ltimo, monitores de la asignatura que han
explorado una herramienta similar a PsiCoder. La muestra tomada es no determinstica para tener
un grupo informal y aleatorio [1], y por esta razn no se realizara el clculo de error.

Pontificia Universidad Javeriana

Memoria de Trabajo de Grado Ayuda Didctica

La muestra utilizada es conveniente para estudios de investigacin y exploratorios de tipo


cualitativo, lo que nos proporcionar informacin suficiente y de calidad para cumplir con el
objetivo de la prueba [2]. As, en primer lugar se identificar los estudiantes con las caractersticas
descritas, luego se seleccionarn 3 cursos de estudiantes y 1 monitor que cumplan con el perfil, para
tener en total 45 personas conformando la muestra.
La seleccin de los estudiantes estar a cargo del director de tesis, quien elegir estudiantes
interesados en colaborar con la investigacin. Adems, se busca que los candidatos tengan la
disponibilidad de tiempo, ya que la prueba tendr una duracin de 1 horas y ser realizada en las
salas de la facultad, en la que se tiene pre instalada la herramienta.
Como opciones de respuesta a las diferentes preguntas, se utilizar la escala de Likert [4], entre
otras, permitiendo al encuestado escribir observaciones y argumentaciones que tenga al respecto.
Un elemento adicional que nos ayudar a recoger ms informacin sobre la prueba.
1.2.

Elaboracin de los Casos de Prueba de usabilidad

ESTUDIANTES
1. Crear un nuevo archivo fuente
2. Solicitar a los estudiantes cargar una plantilla
3. Introducir al estudiante acerca de cmo crear un cdigo de ejemplo, con y sin errores
4. Solicitar al estudiante compilar el cdigo que han escrito
5. Solicitar al estudiante ejecutar su cdigo fuente
6. Finalizar la prueba y realizar test de salida
PROFESORES
1. Solicitar crear una nueva plantilla

Pgina 65
Preparado por el Grupo Investigacin Istar- Versin 1.01 12/03/2008

Ingeniera de Sistemas

ISTAR CIS0810IS02

2. Explicar cmo funciona la creacin de una nueva plantilla, solicitar que la modifiquen
1.2.1.

Nombre de los casos de prueba

Los casos de prueba que se van a realizar sern a estudiantes y a profesores, que llevan su mismo
nombre.
1.3.

Ejecucin de la prueba

La prueba se llevo a cabo con total normalidad y de acuerdo con lo previsto, se realizo en dos de los
cursos al inicio de la clase de pensamiento algortmico y en el otro al final de la misma.
REFERENCIAS
[1] Jos Luis Hernndez Gonzlez, RECOPILACIN DE LA INFORMACIN: CONCEPTOS DE
ESTADSTICA Y SU CLASIFICACIN, Instituto Tecnolgico de Apizaco, Mxico. Disponible en
http://www.itapizaco.edu.mx/~joseluis/apuntes/estadistica/definiciones% y muestreos.pdf
[2] Hernndez Sampieri, Metodologa de la Investigacin, 2001, McGraw Hill.
[3] Mercovich, Eduardo. Cmo hacer un Test de Usabilidad de un sitio: Planificacin, Seleccin de
Usuarios, Pruebas, Reporte y Anlisis. Buenos Aires, Argentina, 1999. Disponible en :
http://www.gaiasur.com.ar/infoteca/siggraph99/test-de-usabilidad-de-un-sitio.html
[4] Teora y Construccin de Pruebas Psicolgicas SIC 636, Escuela de Psicologa, Universidad de
las Amricas, Chile.

Potrebbero piacerti anche