Para obtener el título de Graduado en Ingeniería Informática o en Ingeniería en Tecnologías de la Información en la UNED
es necesario presentar un Proyecto de Fin de Grado. En la la ETSI Informática hay tres tipos de proyectos: oferta general, oferta
específica y convenios con empresas. El proyecto que exponemos
aquí es de oferta específica. Según el reglamento, los
proyectos de este tipo "son trabajos vinculados a la
investigación y actividades de los departamentos sobre temas
relacionados con las materias de la titulación".
OpenMarkov es una
herramienta para construir y evaluar modelos gráficos probabilistas,
como redes bayesianas, diagramas de influencia y otros. Ha sido
desarrollada totalmente en la UNED, con la participación de profesores,
investigadores contratados y estudiantes. Según nuestros conocimientos,
esta herramienta se ha utilizado ya para docencia e investigación al
menos en 30 países: España, Portugal, Francia, Italia, Reino Unido,
Bélgica, Holanda, Alemania, Eslovenia, Noruega, Suecia, Finlandia,
Polonia, Ucrania, Israel, Turquía, Arabia Saudí, Irán, China, India,
Corea del Sur, Malasia, Singapur, Japón, Estados Unidos, México, Cuba,
Colombia, Ecuador, Venezuela, Brasil, Argelia, Ghana y Nigeria.
Probablemente hay usuarios de otros lugares de los que aún no tenemos
noticia. Los usuarios incluyen desde centros de investigación avanzados
(como el Massachusetts Institute of Technology), agencias del Gobierno
de Estados Unidos y grandes multinacionales, hasta estudiantes de países
con muy pocos recursos.
Este proyecto está relacionado con la asignatura Modelos probabilistas y análisis de decisiones, una optativa de 4º curso del Grado en Ingeniería en Tecnologías de la Información, que también puede cursarse como optativa en el Grado en Ingeniería Informática.
El objetivo es añadir nuevas funcionalidades al programa OpenMarkov, tales como las siguientes:
Cada una de estas líneas puede dar lugar a un proyecto
diferente. El tema concreto del proyecto se establecerá de
común acuerdo entre el alumno/a y los profesores que lo van a
dirigir.
Todos estos proyectos incluyen una parte de implementación de
algoritmos ya existentes y una parte de integración en la
interfaz gráfica de usuario.
Por tanto, el interés no está tanto en aportar cosas
nuevas (un proyecto de fin de carrera no es un trabajo de
investigación), sino en realizar un trabajo de la máxima calidad,
siguiendo los principios de la ingeniería del software: hay que
realizar un análisis de requisitos, de arquitectura y de
diseño muy cuidadoso y bien documentado, con diagramas en UML. La interfaz debe estar internacionalizada; de momento, debe funcionar en español y en inglés. Hay que elaborar pruebas exhaustivas con JUnit.
El código en Java debe ser fácilmente mantenible; para
ello, ha de ser claro, limpio, elegante, robusto y muy bien documentado
(en inglés). Además, hay que redactar
documentación que facilite el trabajo de futuros programadores.
Esta documentación, en inglés, podrá presentarse
como un anexo a la memoria del proyecto, que puede estar escrita en
castellano o en inglés.
Más abajo indicamos otras herramientas informáticas recomendadas para este proyecto. Precisamente éste es uno de los puntos interesantes de esta
propuesta: trabajar con tecnologías muy actuales, que tienen
gran
demanda en el mercado laboral, como UML, JUnit, Eclipse, IntelliJ, maven, git, nexus, jenkins...
De hecho, una de las profesiones más demandadas en la actualidad es la
de desarrollador Java, como se indica, por ejemplo, en este artículo. Por ello, al terminar el proyecto los
profesores emitirán un certificado
en que harán constar el trabajo realizado por el alumno/a,
detallando las herramientas empleadas y el hecho de haber colaborado con un
equipo amplio de programadores en un proyecto de repercusión internacional.
Este proyecto está destinado a alumnos a quienes les guste el trabajo bien hecho (no se trata sólo de que el programa funcione, sino de que el código sea elegante y robusto), disfruten programando en Java y tengan interés por colaborar en la creación de un programa de software libre que ya se ha utilizado en más de 30 países.
El alumno que se presente como candidato para realizar este proyecto
debe reunir los siguientes requisitos:
El alumno/a deberá firmar un documento en que acepte que su
trabajo, en caso de que tenga la calidad suficiente, estará
disponible públicamente con licencia GPL o similar, dejando constancia de su autoría, naturalmente.
Los alumnos interesados en este proyecto deberán enviar a los
profesores que lo proponen (véase más abajo) su currículum vitae y su expediente académico;
es suficiente un listado de calificaciones, no hace falta que
envíen documentos escaneados. También es muy importante
que indiquen el tiempo de que disponen; por ejemplo, "3 horas diarias de lunes a
viernes tres horas diarias más 5 horas los sábados". Por
favor, sea realista en su estimación. Disponer del tiempo necesario es esencial para completar el proyecto.
Francisco Javier Díez Vegas
Manuel Arias Calleja
Horario de consultas: lunes y miércoles de 11:00 a 13:30 y de 16:30 a 18:00.
Fax: 91.398.88.95
Correo-e:
fjdiez@dia.uned.es, marias@dia.uned.es
El alumno deberá trabajar con las versiones más recientes de Java (JDK), JUnit, Eclipse o IntelliJ, maven, git, nexus, jenkins, etc., que están disponibles de forma gratuita en Internet.
Para integrar el trabajo de los diferentes programadores, utilizamos bitbucket, que es similar a SourceForge, Google Code, etc.
Tiene más información en la página para programadores de OpenMarkov y, sobre todo, en la wiki.