Anteproyecto de Trabajo Fin de Carrera Servicio de selección de currícula de alumnos para empresas usando un sistema experto y una interfaz Web Eduardo Rogado Rodríguez Ingeniería en Informática Escuela Técnica Superior de Ingeniería Informática Universidad de Alcalá [email protected] Palabras clave. Sistemas Expertos, Inteligencia Artificial, Currículum, Selección de personal. 1 Introducción Un Sistema Experto es un tipo de software que imita el comportamiento de un experto humano en la resolución de un problema mediante el almacenamiento de conocimientos del campo de aplicación del problema y la deducción lógica de conclusiones. Las Sistemas Expertos se aplican por norma general en problemas que implican un procedimiento basado en el conocimiento, a partir de la utilización de normas o estructuras que contengan conocimientos y experiencias de expertos especializados, de la deducción lógica de conclusiones, de la capacidad de interpretación de datos ambiguos, y de la capacidad de manipulación de conocimientos afectados por valores de probabilidad. Estos sistemas han sido aplicados en una gran cantidad de ámbitos laborales obteniendo buenos resultados, como el de la medicina, como por ejemplo el sistema experto MYCIN desarrollado para aconsejar a los médicos en la investigación y determinación de enfermedades infecciosas de la sangre, o como el de la informática, donde el sistema experto XCON configura, según las necesidades del cliente, redes de ordenadores VAX. Al existir problemas en la búsqueda y selección de estudiantes universitarios por parte de empresas u organizaciones, como por ejemplo, el excesivo tiempo en la selección de perfiles de futuros trabajadores que poseen currícula con diferentes cualidades, o la dificultad de encontrar un trabajador experto en una determinada especialidad, se propone la utilización de un sistema experto que consiga paliar esta deficiencia de una manera útil y eficiente, de la misma manera en que los ejemplos mostrados anteriormente consiguieron obtener grandes beneficios. Para crear este servicio se utilizará una interfaz Web, necesaria para su mayor expansión debido a la importancia de Internet como medio de intercambio de información, desde la cual el usuario (empresa u organización) indicará los perfiles deseados a buscar. Se producirá una búsqueda en la base de datos de la universidad, y los resultados de esta se enviarán al sistema experto, el cual seleccionará los mejores estudiantes y explicará los motivos de la elección. La utilización de sistemas expertos para solucionar los problemas anteriormente descritos no supondría la pérdida de las relaciones personales, siempre importante con estudiantes candidatos, sino que asesoraría en la selección indicando los motivos de esta de una manera lógica y coherente. 2 Objetivos El objetivo principal del trabajo consiste en Desarrollar un servicio de selección de currícula de alumnos para empresas usando un sistema experto y una interfaz Web. Los objetivos específicos planteados son los siguientes: 1. 2. 3. 4. 5. 6. Analizar y documentar los fundamentos del sistema experto que identifique la mejor elección dentro de una lista de posibilidades de una manera efectiva e inteligente. Investigar las diferentes aplicaciones existentes de los sistemas expertos que seleccionen elementos. Conseguir que el sistema experto tenga capacidad de aprendizaje para optimizar los resultados de las búsquedas. Diseñar el sistema experto para que muestre soluciones alternativas y que justifique la línea de razonamiento al realizar una elección. Desarrollar una interfaz Web sencilla y cómoda que permita introducir datos para realizar las búsquedas y mostrar los resultados. Redactar un informe o memoria final. 3 Resultados El principal resultado del trabajo será un informe (memoria) con los siguientes contenidos: - Diseño del sistema experto y la justificación de los parámetros de diseño establecidos. - - - Desarrollar el sistema experto propuesto que elija el mejor currículum dentro del conjunto de candidatos, siendo esta elección realizada de una manera inteligente. Capacidad de análisis de los resultados obtenidos por parte del sistema experto mostrando la causa de la toma de decisiones. Desarrollar una interfaz Web que sea útil, segura, efectiva, eficiente y usable. Documentación del código fuente del sistema experto diseñado y de las actividades de ingeniería del software que se hayan realizado durante el proceso de desarrollo. Obtener un manual de usuario que describa el funcionamiento y uso del sistema. 4 Metodología Se establecerá una metodología de observación activa; estudio cuidadosamente documentado para resolver un problema y/o cambiar una situación (Herbert et al., 1990); llevando a cabo una revisión bibliográfica profunda sobre la situación actual de los sistemas expertos. Para el desarrollo del prototipo también se seguirá la metodología IDEAL, la cual posee un ciclo de vida basado en prototipaje rápido, consistente en conseguir, desde etapas muy iniciales del desarrollo, unos prototipos que den idea de cómo debe funcionar el sistema definitivo. Se debe conseguir un proceso de mejora gradual, construyendo prototipos que se someten a pruebas de uso, las cuales mostrarán nuevas mejoras a incorporar a un nuevo prototipo. 5 Recursos Para la realización del proyecto se precisará disponer de acceso a la base de datos de alumnos de la Universidad de Alcalá y una máquina servidora de aplicaciones desde la que se acceda a la base de datos de la universidad. También se requerirá el siguiente equipamiento informático: - - Hardware: Se necesitará un computador personal con impresora láser, acceso a Internet, y un procesador de alta velocidad, debido a la gran cantidad de tiempo de proceso necesario durante el aprendizaje del sistema experto. Software: Se utilizarán las utilidades de programación de sistemas expertos de la herramienta CORVID 1.3.10. (disponible en www.exsys.com ).El diseño de los programas se realizará utilizando la herramienta CASE Rational Rose. Se utilizarán herramientas J2EE con el conector a bases de datos JDBC y conectores ODBC para acceso a las bases de conocimiento propias del sistema experto. Se utilizará también cualquier tipo de herramienta de gestión de bases de datos y de programación Web. 6 Bibliografía Aroca, F. (1998), “Diseño de un sistema experto de diagnóstico con incertidumbre SEDEIC”, Universidad de Alcalá. Enrique, G. (1998), “Sistema experto para invertir en bolsa”, Universidad de Alcalá. Roncero, A. (2000), “Diseño de un sistema gestor de bases de datos con importación desde Internet”, Universidad de Alcalá. Plaza, J. (2002), “Sistema experto de orientación preuniversitaria para alumnos de bachillerato”, Universidad de Alcalá. García, J. (2001), “Consulta de notas mediante un entorno Web”, Universidad de Alcalá. Madrid, F. (1999), “Sistema experto para juegos de simulación con C++”, Universidad de Alcalá. García, R. (1996), “I Jornadas sobre inteligencia artificial, control y sistemas expertos”, Universidad de Alcalá. Hartnell, T. (1986), Sistemas expertos. Introducción al diseño y aplicaciones, Anaya. Naylor, C. (1986), Construya su propio sistema experto, Díaz de Santos. Amador, L. (1996), Inteligencia Artificial y sistemas expertos, Universidad de Córdoba. Lasala, P. (1994), Introducción a la inteligencia artificial y a los sistemas expertos, Prensas Universitarias de Zaragoza. Sánchez, J. (1988), Sistemas expertos, una metodología de programación, Ra-Ma, Madrid. Giarritano, J. (2001), Sistemas expertos, principios y programación, Internacional Thomson. Simons, G. (1985), Expert systems and mycros, Manchester National Computing Centre. 7 Planificación A continuación se muestra el Diagrama de Gantt con la planificación prevista para el proyecto, el cual duraría 145 días de trabajo a razón de ocho horas diarias. El proyecto empezaría el lunes 24 de Octubre del 2004 acabando este el lunes 16 de Mayo del 2005. En la planificación inicial se ha tenido en cuenta la propuesta del proyecto los días invertidos en realizarla. También se plantean los días necesarios para la recolección de requisitos del sistema (seis días), y el análisis pormenorizado de la aplicación (veinticinco días), en el cual se elaboraría documentación sobre este proceso. Se han separado dentro del proceso del diseño, el diseño de las bases de datos (tres días) del diseño general de la aplicación (catorce días), mostrando la gran relevancia que tiene la utilización de datos de los alumnos y la necesidad de almacenamiento de información por parte del sistema experto. Al ser también muy importante el servidor de la aplicación, se ha incluido un proceso de estudio pormenorizado de estos comprobando las características de cada uno (cuatro días). Una vez escogido el servidor, será necesario prepararlo antes del proceso final de desarrollo del sistema, por lo que se ha introducido una tarea de integración de la solución escogida (tres días). Por último, dado que la metodología a utilizar se basa en prototipos, y que por cada prototipo es necesario realizar pruebas, las tareas de desarrollo y pruebas se realizarán en paralelo, por lo que la duración de cada una de estas tareas resulta muy duradera en el tiempo (treinta y cuarenta días respectivamente). Por último se ha indicado la tarea de elaboración de la documentación en la cual se realizarán los manuales de usuario y la redacción del proyecto fin de carrera. En la siguiente figura se muestra el Diagrama de Gantt resultante: