Sei sulla pagina 1di 4

Escuela Colombiana de Ingenierı́a

Decanatura de Ingenierı́a de Sistemas


Coordinación de Proyectos de Grado

Formulación de Proyecto
Nombre ProofNix con interfaz RCP de Eclipse
Director Rodrigo López Beltrán
Equipo de estudiantes Oscar Barrios y Luis Molina
Centro de estudios CEIS
Lı́nea de Investigación
Proyecto de investigación al que pertenece AlJuarizmi
Duración 8 meses

1. Resumen ejecutivo

ProofNix es un asistente de demostraciones matemáticas basadas en la lógica de Dijkstra. Su uso es


principalmente académico y pretende ser una herramienta de ayuda para estudiantes y profesores que
deseen realizar demostraciones matemática apoyados por un sistema amigable con el usuario.
Actualmente, la interfaz gráfica del sistema está desarrollada con el api Swing de Java. Se quiere
reimplementar esta interfaz usando el “Rich Client Platform” de Eclipse para darle a ProofNix una
apariencia más acorde con el sistema operacional en donde se ejecute aprovechando que los controles
gráficos de RCP son efectivamente “nativos” para cada plataforma.

2. Descripción del proyecto

2.1. Planteamiento del problema

Dentro del software de apoyo para sistemas de demostración, han tomado fuerza los llamados “asis-
tentes de demostración” que no pretenden descubrir demostraciones por sı́ solos sino que aparecen
como apoyo para demostradores humanos a quienes ayudan con las fases tediosas y potencialmente
muy largas de una demostración. ProofNix ( [1]) es el resultado de una primera fase de reingenierı́a
del sistema ProofStar ( [2], [3])
El presente proyecto es una segunda fase de reingenierı́a del sistema en la que se quiere:

Mejorar la interfaz de usuario dándole un aspecto más “nativo”.


Corregir algunos errores relacionados con la entrada y el despliegue de fórmulas que usan carac-
teres especiales.
Hacer más robusta la conexión de la interfaz con el núcleo del sistema que está desarrollado en
Haskell ( [4]).

2.2. Justificación

Es imperativo disponer en la Escuela Colombiana de Ingenierı́a de un asistente de demostración que se


use como herramienta pedagógica en los cursos de la lı́nea de matemáticas discretas. El sistema actual

1
ha recibido elogiosos comentarios pero todavı́a no puede ser utilizado de manera confiable (sobre todo
por su interfaz) con propósitos pedagógicos. Esta serie de proyectos apuntan a producir una versión
suficientemente robusta para ser usada en el salón de clase.

2.3. Marco teórico y estado del arte

Múltiples son los factores que contribuyen a que una aplicación sea denominada como adecuada, desea-
ble e inclusive, tal y como se describe generalmente: “buena”. Aunque tales calificativos, dependerán
expresamente de la percepción del usuario al momento de su uso y de cómo este asigne prioridades
en cuanto a requerimientos se refiere, la combinación y la proporción - entre cada uno de ellos- en la
cual hacen presencia, son la clave en la cual radica la acogida del software en los distintos mercados
(comercial, educativo, de investigación, etc.). Considerando el aspecto no funcional, la usabilidad pro-
porcionada por un ambiente gráfico de usuario adquiere tanta importancia al momento de definir la
funcionalidad de una aplicación, que intrı́nsecamente adquiere la cualidad de la cual inicialmente se
excluı́a.
RCP (Rich Client Platform) es una plataforma de desarrollo para la implementación de interfaces
enriquecidas, compatibles y capaces de lucir como una aplicación nativa; haciendo uso de componentes
propios de Eclipse, de forma que todo producto lleva consigo la apariencia de tal IDE. Al establecerse
esta relación entre el componente gráfico de Eclipse y las aplicaciones desarrolladas mediante el uso
de RCP, se transfieren caracterı́sticas tales como:

Extensibilidad, permitiendo integrar o se integrada a sistemas de mayor tamaño ( [6]).

Consistencia independiente de la plataforma, dando la posibilidad de que el desarrollo de software


se enfoque en la búsqueda de la solución a un problema en particular en lugar de hacerse a la
resolución de inconvenientes especı́ficos del entorno operacional.

Facilidad al configurar y disponibilidad de soporte en cuanto al mantenimiento se refiere.

ProofNix, es un ambiente de demostración (cuya versión previa fue denominada ProofStar) basado
en la lógica calculativa de Dijkstra, que actualmente cuenta con un entorno gráfico desarrollado en
la biblioteca gráfica de Java, Swing, haciendo que su implementación como mecanismo de interacción
entre el usuario y la aplicación sea estática y se limite su uso al de un software incapaz de integración
alguna de nuevos componentes. Adicionalmente, se cuenta con un problema que se ha propagado desde
la implementación de su primera versión, el cual consiste en un mecanismo de traducción de doble vı́a
( [1]) destinado a la presentación ası́ como el procesamiento de caracteres asociados a sı́mbolos lógicos
requeridos para expresar fórmulas ingresadas por el usuario.
Es precisamente en torno a estos dos aspectos, que la segunda fase de reingenierı́a del sistema ha sido
diseñada para el trabajo de esta nueva etapa del proyecto.

2.4. Objetivo general y especı́ficos

Como ya se dijo, se quiere ante todo, obtener una interfaz robusta para el asistente de demostración
ProofNix. Por otro lado, se quiere adquirir experiencia de implementación de Interfaces de Usuario
usando Eclipse-RCP. Esta es una tecnologı́a muy exitosa ( [5], [6]) y particularmente adaptada para
ambientes de desarrollo de software (ide) pero que no es muy conocida dentro de la Escuela Colombiana
de Ingenierı́a . Este proyecto también puede verse como un primer paso en la dirección de incorporar
esta tecnologı́a a los cursos de ingenierı́a de software de La Escuela.

2
2.5. Alcance del proyecto

Considerando el estudio realizado previamente sobre la complejidad y el manejo de la tecnologı́a


RCP, el proyecto en su fase inicial estará comprendido esencialmente por dos paquetes de trabajo.
El primero consta de las labores y actividades de investigación y práctica, orientadas al aprendizaje
sobre los distintos componentes que hacen parte del entorno de desarrollo, tales como perspectivas,
editores, vistas, comandos, menús, barras de herramientas y el proceso de despliegue y configuración
de un producto asociado a una aplicación standalone. Lo anterior tiene como propósito el hacerse al
conocimiento apropiado en cuanto a la operación y uso de RCP, ası́ como adquirir las herramientas
concretas para desarrollar interfaces de usuario cien por ciento operativas y orientadas a la flexibilidad
y extensibilidad en cuanto se refiere a su mantenimiento y futuras modificaciones. El segundo paquete
de trabajo se centra en la implementación final del mecanismo encargado del ingreso y presentación
(despliegue) de caracteres especiales que hacen parte de expresiones y formulas lógicas dadas por
el usuario y derivadas por el motor de deducciones de la aplicación, de forma que definitivamente se
solucionen los problemas de desempeño que este componente ha causado, buscando eliminar el proceso
de traducción de doble vı́a de la codificación de caracteres.

2.6. Metodologı́a propuesta

Para el proyecto se dispuso una amplia documentación bibliográfica en la que se describe de manera
detallada la estructura, uso, descripción, ventajas y estándares de la herramienta RCP. Ésta literatura
será la base teórica de la investigación, de la cual se obtendrá el contenido propicio para el desarrollo
del proyecto relacionado con ProofStar de tal manera que la información que se consigne sea concisa
y puntual a la hora de construir la interfaz. De la misma manera, con el fin de obtener experiencia de
primera mano, se cuenta con un extensivo catálogo de tutoriales de distintos niveles de la implemen-
tación y utilización de RCP. Con dichos tutoriales se espera crear conocimientos concretos pasando
de la teorı́a bibliográfica a un entorno práctico que materialice la recolección de información sobre el
tema, para quizás crear versiones propias, ajustadas para el proyecto y que eventualmente se utilicen
como material en cursos de ingenierı́a de software en La Escuela.

2.7. Área de aplicación del producto resultado del proyecto

Herramienta de apoyo a la docencia de las matemáticas discretas.

2.8. Resultados esperados

Una interfaz de usuario apropiada para un asistente de demostración conectada al sistema Proof-
Nix y desarrollada en Eclipse RCP.

Adquirir experiencia en el desarrollo de interfaces de usuario usando la plataforma RCP de


Eclipse.

2.9. Usuarios potenciales directos e indirectos de los resultados de la investigación

Personas interesadas en realizar demostraciones con la lógica de Dijkstra-Scholten, en particular,


profesores y estudiantes del ciclo de cursos de matemáticas discretas de la decanatura de sistemas.

3
2.10. Cronograma

2.11. Herramientas de software utilizadas

Linux, Eclipse RCP y Haskell.

2.12. Criterios de terminación del trabajo

Contar con el conocimiento suficiente sobre los distintos componentes de la arquitectura y de la


tecnologı́a, de forma que a la hora de implementar y desarrollar un entorno gráfico de usuario para
una aplicación en concreto se haga de forma rápida, correcta y cohesiva de acuerdo a los requerimientos
de esta última. Ası́ mismo, al término del trabajo se debe haber implementado una solución apropiada
para el ingreso y despliegue de caracteres especiales para su correcto procesamiento en el motor de
deducciones y presentación al usuario respectivamente.

2.13. Evaluadores

Los profesores Jaime Bohórquez y Vı́ctor Toro

Bibliografı́a

[1] Rodolfo Arteaga. ProofNix, un asistente de demostración portátil. Proyecto de Grado. Escuela
Colombiana de Ingenierı́a, Bogotá, 2009.

[2] Jaime Bohórquez y Camilo Rocha. Assisted Calculational Proofs and Proofchecking Based on
Partial Orders. FORMED Workshop, Budapest, 2008.

[3] Andrés Bogotá. ProofStar. Proyecto de Grado. Escuela Colombiana de Ingenierı́a, Bogotá, 2008.

[4] Graham Hutton. Programming in Haskell. Cambridge University Press, 2007.

[5] Vladimir Silva Eclipse Rich Client Platform Projects. APress 2009.

[6] Lars Vogel. Eclipse RCP - Tutorial (Eclipse 3.5)


http://www.vogella.de/articles/RichClientPlatform/article.html

Potrebbero piacerti anche