Todas las entradas de Yaisa González Martínez

20Oct/16

Sistema informático para la gestión del proceso de culminación de estudios en la Facultad de Ciencias Informáticas de la Universidad de Granma

Sistema informático para la gestión del proceso de culminación de estudios en la Facultad de Ciencias Informáticas de la Universidad de Granma

 

Computer system for process management Completion of studies at the Faculty of Sciences Computing at the University of Granma

 

Yamira Medel Viltres 1, Cecilia Valdespino Tamayo 2, Fidel Enrique Castro Dieguez 3, Aylén Mogena Soler 4, Yaisa González Martínez5

1 Universidad de Granma, Cuba, [email protected], Sede Blas Roca Calderío. Carretera Manzanillo a Bayamo km1/2, Blanquizal- Manzanillo

2 Universidad de Granma, Cuba, [email protected], Carretera Central vía Holguín Km 1 ½  Rpto. Pedro Pompa, Bayamo, Granma

 

Resumen:

La automatización de las actividades cotidianas es una tendencia que ha venido marcando el desarrollo de las sociedades modernas. En instituciones donde se maneja un gran cúmulo de información se hace necesaria la concepción de un mecanismo para agilizar la gestión de sus actividades. En la Facultad de Ciencias Informáticas de la Universidad de Granma como parte del proceso de culminación de estudios se genera un gran volumen de datos lo que dificulta el acceso y búsqueda de la información. La presente investigación persigue el objetivo de desarrollar un sistema informático para la gestión de dicho proceso. Se utiliza la metodología de desarrollo de software SXP; los lenguajes de programación Python, JavaScript, CSS y HTML; las tecnologías framework Django y el Sistema Gestor de Base de Datos PostgreSQL y las herramientas Visual Paradigm y Geany. Se valida la aplicación a través de las pruebas de validación de tipo alfa, apoyándose en el método de caja negra que utiliza la técnica de partición equivalente con el objetivo de detectar los posibles errores que impidan el correcto funcionamiento del sistema.

Palabras Clave: gestión, proceso de culminación de estudios, sistema informático

 

Abstract: The automation of daily activities is a trend that has marked the development of modern societies. In institutions where a large amount of information handled the design of a mechanism is needed to streamline the management of its activities. In the Faculty of Computer Science at the University of Granma as part of the completion of studies a large volume of data makes it difficult to access and search for information is generated. This research aims to develop a computer system to manage this process. The software development methodlogy used SXP; Python programming languages, JavaScript, CSS and HTML; Django framework and technologies Manager PostgreSQL database and tools Visual Paradigm and System Geany. The application was validated through validation testing alpha type, based on the method of black box that uses the technique of equivalent partition in order to detect possible errors that prevent the proper functioning of the system.

 

KeyWords: management process of completion of studies, computer system

 

 

  1. INTRODUCCIÓN

El creciente desarrollo de la sociedad actual está relacionado con el constante avance de las Tecnologías de Información y las Comunicaciones (TIC), de ahí la necesidad de fomentar la automatización de procesos y tareas para satisfacer las necesidades de información y conocimiento. Los principales aportes de las TIC se concretan en una serie de funciones que facilitan el trabajo al permitir realizar las labores de una manera eficiente en un menor rango de tiempo. Los cambios rápidos, el aumento de los conocimientos de alto nivel y su actualización constante, se convierten en la mayor exigencia permanente por parte de las TIC.

El desarrollo de las tecnologías ha dado lugar a que el almacenamiento de la información sea más eficiente y seguro a posibles pérdidas. La gestión de la información constituye un apoyo para las instituciones, al permitir controlar su ciclo de vida desde su obtención hasta su disposición final. La facilidad de su uso y capacidad de operación favorecen que la forma de trabajo sea más segura y eficaz.

Cuba no está exenta de estos avances, por lo que brinda gran interés al sector de la educación superior, de igual manera regula las normas y requisitos para que los universitarios tengan igualdad de oportunidades. Este sistema de enseñanza tiene dos formas de culminar los estudios: mediante la defensa del trabajo de diploma y a través de un examen estatal. En ambos casos el estudiante debe demostrar sus habilidades y conocimientos adquiridos durante todo el transcurso de su carrera.

En la Universidad de Granma (UDG) se aplican estas vías de culminación de estudios antes mencionadas en dependencia de la carrera y el plan de estudio que tenga. Actualmente en la Facultad de Ciencias Informáticas (FCI) de la Universidad de Granma se realiza el proceso de culminación de estudios a los estudiantes que se encuentran cursando el quinto año de su carrera, mediante la discusión del trabajo de diploma.

La gestión de información referente a este proceso se desarrollaba de forma manual, lo que resultaba complejo debido a los grandes volúmenes de información que se generaban, dificultando y ralentizando la realización la búsqueda de información de los años anteriores relacionadas con los estudiantes, el acceso y recuperación de las notas de los cortes evaluativos, las pre defensas y las defensas para generar los informes correspondientes a cada etapa, así como los temas aprobados por el comité de culminación de estudios y la documentación final del trabajo de diploma (que incluye: el documento en formato .pdf y .lyx, además del código fuente de la aplicación).

Para dar solución al problema planteado se concibió desarrollar un sistema informático para la gestión del proceso de culminación de estudios en la Facultad de Ciencias Informáticas de la Universidad de Granma.

  1. Contenido

En este punto se incluye lo referente a los métodos de investigación, metodología de desarrollo de software, así como herramientas y tecnologías utilizados en el desarrollo del trabajo. Se realiza un breve descripción de la concepción del sistema y da las pruebas realizadas para validar el correcto funcionamiento del software.

2.1  Métodos de investigación científica

Para llevar a cabo la realización de este trabajo se utilizaron diferentes métodos teóricos de investigación científica:

Analítico-sintético: se utiliza durante la investigación para analizar la documentación y teorías relacionadas con el objeto de estudio. Se profundiza en las características fundamentales de los sistemas de gestión, lo que permite extraer los conceptos y elementos más importantes de los mismos en la culminación de estudios del nivel superior.

Modelación: a partir de la información recopilada y luego de un análisis del proceso de negocio, se aplica este método para generar los diagramas y modelos correspondientes al problema existente.

Inductivo-Deductivo: se utiliza para arribar a conclusiones referente a las herramientas, tecnologías y lenguajes de programación a utilizar en el desarrollo del sistema, así como en el estudio de sistemas similares desarrollados en Cuba y el Mundo.

La entrevista semiestructurada al cliente se utiliza en la presente investigación como técnica de recopilación de información, para enfocar la investigación en función de las necesidades existentes, profundizar en la situación vigente, obtener datos sobre el proceso de culminación de estudios que se realiza en la FCI y entender las especificidades del sistema a desarrollar.

2.2  Metodología de desarrollo de software

Las metodologías de desarrollo del software son aquellas que se encargan del control de los detalles organizativos. Permiten que el grupo de desarrolladores realice un proyecto en el tiempo preciso y con la calidad requerida [1].

Para guiar el desarrollo del sistema propuesto se decide utilizar la metodología  ágil SXP,  “compuesta por las metodologías SCRUM 11 y XP 12 que ofrece una estrategia tecnológica, a partir de la introducción de procedimientos ágiles, que permiten actualizar los procesos de software para el mejoramiento de la actividad productiva, lo que ayuda a fomentar el desarrollo de la creatividad, así como aumentar el nivel de preocupación y responsabilidad de los miembros del equipo.

2.3 Sistemas de gestión de información

Un sistema de gestión es “una estructura probada para la gestión y mejora continua de las políticas, los procedimientos y procesos de la organización (. . .) además, ayudan a lograr los objetivos de la organización mediante una serie de estrategias, que incluyen la optimización de procesos, el enfoque centrado en la gestión y el pensamiento disciplinado” [2].

Además un sistema de gestión contribuye a lograr las metas y objetivos de una organización, a través de una serie de estrategias, entre las cuales se encuentra la optimización de los procesos y el enfoque basado en la gestión y la disciplina. Un sistema de gestión es una estructura que involucra una serie de actividades, procesos y procedimientos que se realizan en determinada institución, con la finalidad de cumplir algún objetivo mediante la obtención de uno o diversos resultados. Existen varios tipos de sistemas de gestión dentro de los que se encaminan a la gestión documental y a la gestión de información.

Un sistema de gestión de información es el conjunto de políticas y normas que se relacionan entre sí que se establecen para el acceso y tratamiento de los recursos de información, incluye los registros administrativos y los archivos, el soporte tecnológico de los recursos y el público a que se destina. En su evolución el sistema puede manejar la función de inteligencia corporativa y generar productos de inteligencia [3].

Los sistemas de gestión permiten a las empresas lograr buenas prácticas y niveles de servicio, mejoran la realización de los procesos que se llevan a cabo, permiten lograr que la información esté protegida y organizada. Las instituciones deben establecer una eficiente gestión en los procesos que realizan, para obtener mayor efectividad y un correcto funcionamiento.

2.4 Herramientas, lenguajes y tecnologías utilizadas en el desarrollo del sistema 

Herramientas

Visual Paradigm es una herramienta CASE que se utiliza durante el ciclo de vida del desarrollo de software con la representación de los diferentes tipos de diagramas. Tiene la característica que posee licencia gratuita y comercial, es disponible en múltiples plataformas de Linux y Windows, genera código para Java y lo exporta como HTML. Tiene como propósito soportar el ciclo de vida del software durante su proceso de desarrollo mediante la presentación de diagramas. a herramienta CASE Visual Paradigm en su versión 5.0 se utiliza para modelar los diferentes diagramas. Presenta las características siguientes: multiplataforma, fácil de usar y con un ambiente gráfico agradable para el usuario [4].

Geany es un Entorno de Desarrollo Integrado (IDE), pequeño y ligero, desarrollado para proporcionar un IDE rápido con pocas dependencias de otros paquetes. Para su funcionamiento solo requiere las bibliotecas de tiempo de ejecución GTK 2 (Gimp Tool Kit). Permite trabajar con el marco de trabajo de desarrollo web seleccionado y dispone de las funciones básicas de un IDE [5].

Lenguajes

Un lenguaje de programación consiste en un sistema estructurado y diseñado de forma tal que la máquina establezca comunicación con las computadoras y también con los humanos [6].

Se utiliza el lenguaje de programación Python en la versión 2.7 dado que es interpretado o de script, multiplataforma, fácil de aprender y poderoso, para el desarrollo de aplicaciones sobre la mayoría de las plataformas y en diversas áreas. Ofrece la posibilidad de separar el programa en módulos, lo que permite su reutilización en otros programas.

Posee una licencia de código abierto llamada Python Software Foundation License, que es compatible con la licencia pública general de GNU a partir de la versión 2.1.1 e incompatible en ciertas versiones anteriores [7].

JavaScript es un lenguaje compacto, se basa en objetos, es diseñado para el desarrollo de aplicaciones cliente-servidor a través de Internet. En una aplicación cliente para un navegador, las sentencias JavaScript embebidas en un documento HTML pueden reconocer y responder a eventos generados por el usuario, como clic del mouse, información en formularios y navegación de documento a documento [8].

Se puede escribir una función JavaScript que verifique que la información ingresada por el usuario sea correcta sin que haya transmisión de datos por la red. Se puede también ejecutar archivos de audio, applets o comunicar con una extensión de Netscape en respuesta a la apertura o cierre de una página.

HTML es un lenguaje de marcas de hipertextos (HyperText Markup Lenguage) para la elaboración de páginas web. Está compuesto por una estructura básica y un código para la definición del contenido de una página web, además debe respetar ciertos criterios de accesibilidad web. Su filosofía de desarrollo está basada en las referencias, por lo que para añadir un elemento externo a la página solo hace una referencia a la ubicación de dicho elemento. Puede describir hasta cierto nivel la apariencia de un documento y hacer referencias de tipo script. Se utiliza HTML 5 para crear las plantillas que mostrarán la información a los diferentes usuarios del sistema. Entre las características de este lenguaje se encuentra la posibilidad de evaluar los formularios sin tener que usar código script y la posibilidad de portabilidad a otros sistemas o plataformas.

CSS (Cascading Style Sheets) hojas de estilo en cascada es un lenguaje usado para definir la presentación de un documento estructurado escrito en HTML o XML (eXtensible Markup Language) y por extensión en XHTML (eXtensible HyperText Markup Language). Este mecanismo simple ofrece a los desarrolladores el control total sobre estilo y formato de sus documentos, además de separar la estructura de un documento de su presentación. Su funcionamiento es basado en reglas, las cuales presentan dos partes: un selector y la declaración. CSS3 permite crear documentos HTML bien definidos, que pueden ser visualizados por varios dispositivos con diferentes características. Ayuda a separar los contenidos y la presentación de una aplicación. Mejora la usabilidad de las páginas, lo que reduce la complejidad de su mantenimiento.

Tecnologías

PostgreSQL es un Sistema de Gestión de Bases de Datos (SGBD) objeto-relacional, distribuido bajo licencia BSD (Berkeley Software Distribution) y con código fuente disponible libremente. Es el sistema de gestión de bases de datos de código abierto más potente del mercado y en sus últimas versiones no tiene nada que envidiarle a otras bases de datos comerciales. Funciona muy bien con grandes cantidades de datos y una alta concurrencia de usuarios que acceden simultáneamente al sistema. PosgreSQL en su versión 9.1 se utiliza para almacenar los datos del sistema por su capacidad de almacenamiento, que solo es limitada por el espacio físico disponible en el disco duro de la computadora donde esté instalado; es adecuado para el sistema que se desea desarrollar, facilita la administración de un gran número de datos y el marco de trabajo Django se integra de manera fácil con este Sistema Gestor de Base de Datos.

Apache es un servidor para aplicaciones web libre, eficiente y extensible que proporciona servicios HTTP (Hypertext Transfer Protocol) en sincronía con los estándares HTTP actuales que tiene objetivo de suministrar un servidor seguro [9]. Permite personalizar la respuesta ante los posibles errores que se puedan dar en el servidor. Es posible configurarlo para que ejecute un determinado script cuando ocurra un error en concreto. El servidor web Apache en su versión 2.0 permite publicar la aplicación bajo la licencia GPL (General Public License), posee la característica de ser multiplataforma, es uno de los servidores más utilizados en la actualidad; además soporta la interpretación mediante la inserción de módulos de varios lenguajes como Python, además brinda excelencia, robustez y estabilidad.

Django es un marco de trabajo de desarrollo web que permite crear y mantener aplicaciones web de alta calidad con un mínimo esfuerzo. Provee un alto nivel de abstracción de patrones comunes en el desarrollo, atajos para tareas frecuentes de programación y convenciones claras sobre cómo solucionar problemas [9].

Entre sus principales características se encuentran:

  • Está escrito en Python, lo cual es una ventaja porque hereda todas las características y facilidades que brinda este lenguaje de programación, entre ellas escribir el código del mismo que es fácil de entender, permite desarrollar aplicaciones muy rápidas y potentes.
  • Es el único marco de trabajo que por defecto viene con un sistema de administración activo, que permite ser utilizado sin ningún tipo de configuración.

Es diseñado para ahorrar tiempo a los desarrolladores al crear una nueva aplicación web, en tanto que el mismo optimiza el tiempo al contener un conjunto de módulos, clases y archivos que facilitan el trabajo. En esta investigación se utiliza Django en la versión 1.7.6 para la construcción de la aplicación, ofrece un grupo de procedimientos y funciones predefinidas para el acceso dinámico a la base de datos. En esta investigación se utiliza Django en la versión 1.7.6 para la construcción de la aplicación, ofrece un grupo de procedimientos y funciones predefinidas para el acceso dinámico a la base de datos.

2.5 Educación superior en el mundo

La educación es un proceso de socialización planificada la cual facilita el desarrollo de la inteligencia y el aprendizaje; debe ser entendida no como contenidos formales sino como el establecimiento de actividades funcionales de una manera planificada. En la actualidad el ingreso a la educación superior es un mérito de los interesados, que a través del vínculo a la misma, pueden formarse como futuros profesionales competentes, y capaces de desempeñarse en cualquier esfera de la sociedad. Tiene como objetivo la formación de capacidades y actitudes de los individuos para su  integración a la sociedad como seres que sean capaces de transformar la realidad social en un momento histórico determinado [10].

En el mundo las instituciones de educación superior, son las encargadas de la educación y calidad de la formación de los jóvenes, con la visión de ser un ente eficiente y eficaz en la formación de profesionales altamente calificados e integrados al proceso de innovación y desarrollo de las ciencias y las tecnologías [11].

2.5.1 Educación superior en Cuba

La educación superior en Cuba se centra en el desarrollo general integral de los jóvenes revolucionarios. Tiene como objetivo que los estudiantes en cualquier etapa de su vida sean capaces de resolver la situación que se les presente.

El modelo de formación de la educación superior cubana es de perfil amplio y se sustenta en dos ideas rectoras fundamentales [12]:

  • La unidad entre la educación y la instrucción, que expresa la necesidad de educar al hombre a la vez que se instruye.
  • El vínculo del estudio con el trabajo, que consiste en asegurar desde el currículo el dominio de los modos de actuación del profesional, en vínculo directo con su actividad profesional. Este modelo presenta particularidades para cada modalidad de estudio.

La labor educativa en los Centros de Educación Superior constituye la principal prioridad en el proceso de formación y se desarrolla con un enfoque integral, que involucre a toda la comunidad universitaria con la participación activa de estudiantes, profesores y trabajadores en general. Para el desarrollo de la labor educativa se deben utilizar las vías curricular y extracurricular, además estructurar esta labor en los diferentes niveles organizativos en que tiene lugar el proceso de formación [12].

La organización docente estructura el avance del estudiante en el proceso de formación, establecen normas para su permanencia y egreso, de manera que responde a la forma particular que adopta dicho proceso. Con el curso diurno, para trabajadores, y la educación a distancia en Cuba se pretende alcanzar una formación general-integral de los ciudadanos que opten por el nivel superior. Estos se rigen por normas y reglas de la institución a la que pertenecen, permitiéndoles responsabilidad y dedicación ante el estudio.

2.6 Proceso de culminación de estudios en la educación superior en Cuba

La educación superior en Cuba tiene dos formas de culminación de estudios, una es mediante la discusión del trabajo de diploma donde el estudiante debe mostrar independencia, creatividad y dominio de los objetivos generales de la carrera. Deben demostrar los conocimientos, habilidades y valores que se obtienen durante el transcurso de sus estudios. Por otro lado se encuentra la evaluación del examen estatal, el mismo se realiza mediante una serie de preguntas teóricas y prácticas comprobando los conocimientos adquiridos en toda la carrera.

El procedimiento para su realización depende de las características y requerimientos de la carrera que se trate, donde el alumno demuestre los objetivos generales de la misma a partir de ejercicios en relación con los modos de actuación de la profesión, por medio de la solución de un problema profesional que evidencie el dominio del estudiante. Igualmente deberán ser evaluados otros aspectos, tales como la precisión en el manejo correcto del lenguaje, la forma adecuada de la exposición, con independencia y razonamiento, de igual forma la seguridad para argumentar y defender sus puntos de vista [13].

2.6.1 Proceso de culminación de estudios en la Facultad de Ciencias Informáticas de la Universidad de Granma

En la FCI de la UDG el estudiante realiza la culminación de estudios mediante la evaluación de defensa del trabajo de diploma. Donde demuestra los conocimientos adquiridos durante el transcurso de sus estudios, mostrando independencia, creatividad y habilidad en la materia. Para esto se efectúa el proceso de culminación de estudios que rige la institución el cual comienza con la aprobación del Documento Rector (por parte del comité de culminación de estudios) donde se archivan todas las actas del mismo. Luego se aprueba los temas propuestos donde se recogen las actas y los perfiles del trabajo de diploma. Se planifican los cortes de los trabajos de diploma según el cronograma del documento rector de culminación de estudios en el que se guardan las actas que se generan en cada corte. Se genera un reporte general de cada corte (donde se identifican cuántos aprobados y desaprobados existen y los principales problemas presentados). Se planifican la predefensa y defensa de los trabajos de diplomas donde se deben asignar los oponentes.

A la par de este proceso el profesor principal del 5to año emite la caracterización del estudiante que incluye su trayectoria en la Federación Estudiantil Universitaria y en la Unión de Jóvenes Comunistas en caso de ser miembro de esta organización. Dicha caracterización también refleja las actividades académicas, investigativas, productivas y extracurriculares en las que se halla destacado. Además, recoge el comportamiento mantenido en la residencia estudiantil.

 

2.7 Solución propuesta

En el desarrollo de un sistema informático los requerimientos de software tributan a lograr resultados satisfactorios. Entre los que se encuentran los funcionales y no funcionales. A continuación se definen los que se identificaron para el desarrollo de la aplicación:

2.7.1. Descripción del negocio

El proceso de culminación de estudios tiene un carácter estatal y su organización  en la facultad es responsabilidad del Decano. Al comenzar un curso académico se conforma el Comité de Culminación de Estudios el cual está conformado por varios miembros, donde la secretaria es la responsable, la secretaria es responsable de confeccionar el Documento Rector que contiene la forma de evaluación y el cronograma por el cual se rige todo el proceso, al mismo tiempo es la persona encargada de generar los informes generales con los resultados obtenidos por cada etapa evaluativa del proceso de culminación de estudios. Este informe contiene los principales señalamientos, la cantidad de temas aprobados y no aprobados, así como los motivos por lo que no se aprueban. Además se encarga de confeccionar los tribunales de acuerdo con las características de la carrera y los profesores.

Los tribunales están conformados por un presidente, un secretario y un vocal, los  cuales son encargados de evaluar los trabajos de diploma que les fueron asignados.

El (La) secretario(a) de cada tribunal es el(la) encargado de realizar un acta por cada tema asignado.

Organizada toda la estructura del comité de culminación de estudios comienza el proceso de evaluación con los cortes del trabajo de diploma. El (La) secretario(a) del tribunal debe dejar plasmado en un acta los señalamientos de la presentación y el documento, la opinión del tutor, la opinión del estudiante acerca del trabajo del tutor.

Luego, el tutor propone una evaluación y posteriormente, según los señalamientos existentes en el trabajo, el tribunal emite una nota que es firmada por el estudiante.

Entre los cortes se deja un tiempo determinado para que los estudiantes arreglen los señalamientos y se preparen para la predefensa. Deben quedar plasmadas las insuficiencias presentadas y finalmente la fecha en que el estudiante se volverá a presentar en caso de no ser evaluado satisfactoriamente; el tribunal en conjunto con el oponente define si el estudiante tiene las condiciones para presentarse a la defensa.

Para finalizar el proceso de culminación de estudios, el estudiante realiza la defensa del trabajo de diploma. Este proceso va acompañado de un acta con características similares a las anteriores, pero en este caso el tribunal debe tener en cuenta la opinión  del tutor y del oponente para emitir una nota. En este último espacio el acta elaborada es registrada en Secretaría Docente con el fin de ser archivada en el expediente del estudiante.

A la par de este proceso el profesor principal del 5to año emite la caracterización del estudiante que incluye su trayectoria en la Federación Estudiantil Universitaria y en la Unión de Jóvenes Comunistas en caso de ser miembro de esta organización. Dicha caracterización también refleja las actividades académicas, investigativas, productivas y extracurriculares en las que se halla destacado. Además, recoge el comportamiento mantenido en la residencia estudiantil.

2.7.2. Requerimientos funcionales (RF)

Los requerimientos funcionales de una aplicación informática describen lo que el sistema debe hacer. Estos dependen del tipo de software, los posibles usuarios del software y del enfoque general tomado por la organización. Además, describen con detalle la función del sistema, sus entradas, salidas y excepciones [14].

A raíz de que el Sistema informático para la gestión del proceso de culminación de estudios se pretende incluir como módulo a la Plataforma Libre de Gestión de Procesos (PLGP) de la Facultad de Ciencias Informáticas se adopta la implementación de los requerimientos gestionar usuarios y permisos de usuarios, es por ello que para el sistema a desarrollar solo se define la jerarquía de roles y los permisos de los principales involucrados, para que sean evaluados en el momento de la integración del software.

Mediante la técnica de recopilación de información la entrevista semiestructurada al cliente, se identificaron los siguientes requerimientos funcionales:

  • RF1: Gestionar tema de trabajo de diploma.
  • RF2: Gestionar acta.
  • RF3: Gestionar tribunales.
  • RF4: Gestionar documento final.
  • RF5: Gestionar caracterización del estudiante de 5to año.
  • RF6: Gestionar profesor.
  • RF7: Gestionar estudiante.
  • RF8: Gestionar evaluaciones.
  • RF9: Generar reporte.
  • RF10: Asignar tribunal
  • RF11: Asignar tema

 

 

2.7.3. Requerimientos no funcionales (RNF)

Los requerimientos no funcionales no tienen que ver específicamente con el funcionamiento de un sistema. Ellos ponen restricciones sobre el producto que se está desarrollando y el proceso de desarrollo, especifican restricciones externas que debe reunir el producto [15]. A continuación se mencionan los que fueron identificados en el Sistema informático para la gestión del proceso de culminación de estudios en la FCI de la UDG:

RNF1. Apariencia o interfaz externa: el sistema debe tener un diseño simple de la interfaz que permita el acceso a las funcionalidades con no más de tres niveles de navegación, de esta manera se verifica que el sistema sea intuitivo y sencillo. El sistema debe ser multiplataforma y compatible en los diferentes navegadores y las resoluciones de pantalla. La interfaz debe tener un esquema de colores de acuerdo a las especificaciones de la FCI predominando el blanco y el azul.

RNF2. Usabilidad: el sistema debe mostrar una organización de la información que permita navegar por el software de manera intuitiva de acuerdo al orden lógico de la realización de las actividades del proceso, por lo que se debe tener en cuenta el orden visual reflejado en la jerarquía de la información. Los elementos de navegación deben permitir ir a la página de inicio desde cualquier vista y mostrar un buscador en todas las páginas.

RNF3. Rendimiento: el sistema debe ser rápido, el tiempo de respuesta debe ser como mínimo 4 segundos y un máximo de 10 segundos. Debido a que los usuarios que deben tener acceso al sistema son los involucrados al proceso de culminación de estudios en la FCI de la UDG.

RNF4. Software: para las PC clientes es necesario el navegador web Mozilla Firefox 17.0 o superior. Para los servidores se debe contar con el servidor web Apache, el sistema gestor de base de datos PostgresSQL 9.1.14.

RNF5. Hardware: las PC clientes deben contar con: Un microprocesador a velocidad de 1.0 GHz o superior; una memoria RAM de 512 MB o superior.

El servidor donde estará instalada la aplicación debe tener: un microprocesador con una velocidad de 2.66 GHz o superior. Contará con 1 GB de memoria RAM y espacio mínimo en almacenamiento de 200 MB.

RNF6. Seguridad: debe mostrar a cada usuario sólo las funcionalidades del sistema sobre las cuales tiene permiso de acceso. Para acceder al sistema es necesario autenticarse con un usuario y una contraseña válida.

2.5.1  Arquitectura de Software

La arquitectura de software de un sistema es la estructura que abarca componentes de software y las relaciones entre ellos [16]. El diseño de la arquitectura del software se refiere a la estructura global del software y las maneras en que esa estructura proporciona integridad conceptual a un sistema.

Patrones arquitectónicos

Debido a que el sistema a implementar hace uso de Django como marco de trabajo, el mismo utiliza el patrón arquitectónico “Modelo-Vista-Plantilla”, que no es más que la implementación propia del Modelo-Vista-Controlador. Para una mejor comprensión a continuación se muestra una breve explicación de esta:

Modelo (Model): capa de acceso a la base de datos. Contiene toda la información sobre los datos: cómo acceder a estos, cómo validarlos y las relaciones entre los mismos.

Vista (View): capa de la lógica de negocios. Contiene la lógica que accede al modelo y la delega a la plantilla apropiada como un puente entre el modelo y las plantillas.

Plantilla (Template): capa de presentación. Contiene las decisiones relacionadas a la presentación.

Los patrones de diseño GRASP (Patrones Generales de Software para Asignar Responsabilidades) describen los principios fundamentales de la asignación de responsabilidades a objetos [13]. El marco de trabajo que se utiliza para el desarrollo del sistema implementa tres patrones de diseño GRASP que consisten en:

  • Alta cohesión
  • Bajo acoplamiento
  • Experto

2.7.4 Modelo de datos

El almacenamiento de la información de cualquier producto de software resulta de vital importancia, el modelo de datos es el encargado de describir la estructura lógica de la base de datos. El modelo de datos utilizado para la gestión de la base de datos es el modelo relacional, este es el más utilizado en la actualidad para la modelación de problemas reales. En una base de datos relacional se definen las tablas, lo campos en cada tabla y cada una de las relaciones entre cada campo y cada tabla.

El sistema cuenta con 8 tablas fundamentales cada una con sus campos correspondiantes:

  • Procesoceo_Culminación_Estudos
  • Tema_Trabajo_Diploma
  • Profesor
  • Estudiante
  • Tribunal
  • Evaluación
  • Actas
  • Documentación final

 

2.8 Implementación y validación  

La implementación del producto es la etapa más importante que encierra el proceso de desarrollo de software, se define el estándar de codificación y se describe el proceso de pruebas que se aplica al producto para validar las funcionalidades definas por el cliente, con el objetivo de obtener un sistema con alta calidad y que cumpla con las especificaciones requeridas.

2.6.1 Estándar de codificación

Cuando se implementa un software es importante que el estilo de programación sea uniforme, más si se trabaja en equipo. Seguir un estándar de codificación se considera una buena práctica de programación. Esta práctica supone numerosas ventajas: evita que se cometan algunos errores comunes al escribir el código, lo que aumenta la calidad del mismo; la legibilidad y lo hace más fácil de comprender; tareas como el mantenimiento y las revisiones de código son realizadas con mayor rapidez y eficiencia [17].

En el desarrollo del sistema se utilizó un estilo de código, cuyas pautas principales se describen a continuación:

  • Se utilizan 4 espacios por cada nivel de identación.
  • Todas las variables y funciones se escriben en minúscula.
  • Se utiliza el símbolo blanco subrayado “_” para las palabras compuestas. Ejemplo: tipo_evaluación.
  • Los nombres de las clases se escriben con mayúsculas.
  • En la implementación del sistema se deben separar las definiciones de clases con dos líneas en blanco y las definiciones de métodos dentro de una misma clase se separaran con una línea en blanco.

 

2.6.2 Estrategia de prueba

Cualquier organización que se dedica a la investigación, producción y comercialización de software debe considerar la calidad, ya que el cliente es cada vez más exigente, no sólo en lo que se refiere al precio, sino en cuanto a los servicios y a la confiabilidad que brindan los productos de software. Las pruebas representan una actividad fundamental en el desarrollo del software y, en muchos casos, supone el único medio empleado en los proyectos para la validación del mismo. Estas son un elemento crítico para la garantía de la calidad de todo sistema informático.

Las pruebas de software son procesos que intentan proporcionar confianza en un software. No pueden demostrar que el software está libre de defectos o que se comportará en todo momento como está especificado [14].

Contar con una estrategia de pruebas adecuada que abarque el ciclo de vida del producto, permite darle seguimiento a aquellos cambios que ocurren en el desarrollo iterativo, para garantizar que el mismo cumpla con las especificaciones solicitadas y la calidad requerida. Según Pressman “Una estrategia de prueba del software integra  los métodos de diseño de caso de pruebas del software en una serie bien planeada de pasos que desembocará en la eficaz construcción del software.

Dentro del nivel de validación, se realizaron pruebas de aceptación de tipo alfa. Se evaluó el grado de calidad del software y fueron realizadas por el usuario final en presencia del desarrollador, para asegurar que el sistema cumple con los requisitos planteados. A la par de este proceso y como mecanismo de apoyo se hace uso del método de prueba de caja negra. Las pruebas de caja negra son diseñadas para validar los requisitos funcionales del software sin fijarse en el funcionamiento interno de un programa.

2.6.3 Plan de pruebas

El sistema informático para la gestión del proceso de culminación de estudios en la Facultad de Ciencias Informáticas de la Universidad de Granma cuenta con un plan de pruebas que tiene como objetivo reunir todos los datos necesarios para planificar y llevar un mayor control de las pruebas que se realizarán al sistema. En este se definen los responsables y la fecha para la que están planificadas las pruebas, para  así garantizar que el sistema cumpla con las especificaciones solicitadas.

Durante el desarrollo de la aplicación se diseñaron un conjunto de casos de prueba al que fue sometido el software, para validar las funcionalidades del sistema de acuerdo a las Historias de  Usuarios definidas.

La correcta aplicación de estos elementos garantiza llevar a cabo pruebas que demuestren que cada función es completamente operativa, produce una salida correcta y mantiene la integridad de la información. Además, permite detectar errores de interfaz, de estructura de datos y de acceso a la BD. Para realizar las pruebas de caja  negra al sistema se decide aplicar la técnica de partición equivalente con el objetivo  de validar la entrada de los datos contribuyendo a garantizar la calidad del software. Esta técnica se basa en un conjunto de estados válidos o no válidos para condiciones de entrada.

 

2.6.4 Resultados de las pruebas

El software fue sometido a un proceso de pruebas donde se analizaron cada uno de los aspectos funcionales en vista de demostrar la calidad del mismo. Se empleó el método de pruebas de caja negra, la técnica utilizada fue la de partición equivalente y se aplicaron los casos de pruebas de aceptación de tipo alfa que arrojaron los resultados siguientes:

  • Se realizaron pruebas para verificar el funcionamiento de los 11 requisitos funcionales del sistema.
  • Primero se probaron los 6 requisitos de mayor prioridad y siendo estos la base fundamental de la aplicación. Los principales problemas detectados fueron: errores de validación, ortográficos y de interfaz.
  • Luego se les realizó pruebas a 3 requisitos de prioridad media, encontrándose errores a la hora de mostrar el listado de los mismos. Se verificó que los errores encontrados en las pruebas anteriores fueron arreglados.
  • Finalmente se probaron las 2 funcionalidades de menor prioridad, logrando que se evaluaran todos los requerimientos funcionales que tiene el sistema.
  • Fueron solucionados todos los errores encontrados anteriormente y se detectaron dificultades relacionadas con aspectos de usabilidad.
  • En correspondencia con los resultados obtenidos se detectaron algunas irregularidades en el software, las cuales fueron solucionadas, garantizando la correcta validación del sistema de gestión.
  • Se comprobó que a la aplicación solo pueden acceder las personas autorizadas y dependiendo de los permisos asignados a cada uno de los usuarios serán las operaciones que podrán realizar, garantizando de esta forma la seguridad de los datos.
  • Posee una interfaz gráfica intuitiva, teniendo en cuenta las condiciones de usabilidad necesarias garantizando la facilidad de uso por parte de los usuarios.

Las pruebas realizadas al software demostraron el correcto funcionamiento del 100% de las funcionalidades implementadas en la aplicación, cumpliendo con la expectativa del cliente y elevando la calidad del sistema informático.

 

2.9 Despliegue

Para que el sistema brinde el servicio deseado, la aplicación cliente se comunica con el servidor en el cual se instalará y ejecutará el sistema mediante el protocolo HTTPS (en español: protocolo de transferencia de hipertexto segura). Para que el servidor de aplicación pueda ejercer su función correctamente se comunica con el servidor de base de datos el cual almacena los datos que solicitan los usuarios al sistema. El servidor de aplicación accede al de base de datos para tomar la información solicitada por el cliente mediante el protocolo TCP/IP (protocolo de control de transmisión/protocolo de Internet). Finalmente la aplicación hace uso de la impresora para imprimir algún documento deseado.

  1. CONCLUSIONES

Un sistema de gestión de información permite administrar de forma más organizada de los recursos de información tanto internos como externos. Aprovecha al máximo sus instrumentos en función de la mejora continua y la toma de decisiones organizacional. En la actualidad existen múltiples sistemas relacionados con el sector de la educación, el sistema propuesto no solo contribuye la agilizarla gestión de la información referente al proceso de culminación de estudios sino a lograr mayor efectividad en  la toma de decisiones y satisfacción para los involucrados en el proceso.

 

  1. REFERENCIAS BIBLIOGRÁFICAS
  1. Development methodologies: what is agile methodology? URL http://agilemethodology.org/.
  2. Medina Garrido, J. y S. J. Arjonilla Domínguez: La gestión de los sitemas de información en la empresa. 3ra edition, 2011.
  3. Moreiro, G.: Introducción al estudio de la información y la documentación, 1998.
  4. Pressman, R. G. : . Ingeniería de software. Sexta edición. 2005.
  5. Grupo de Desarrollo About. Geany: URL URLhttp://www.geany.org/Main/About.
  6. Grupo de Desarrollo Lenguajes de programación: Lenguajes de programación, 2009. URL: http://www.lenguajes-de-programacion.com/lenguajes-de-rogramacion.shtml.
  7. Álvarez, M. A: qué es python, November 2003. URL http://www.desarrolloweb.com/articulos/1325.php.
  8. Alegsa, L.: Diccionario de informática y tecnología, 1998. URL http: //www.alegsa.com.ar/Dic/sistema.php.
  9. [9] Formación online en nuevas tecnologías. qué hace un servidor web como apache. configuración, March 2012. URL http://www.digitallearning.es/blog/apache-servidor-web-configuracion-apache2-conf/.
  10. Resendiz Faro, T. y M. Jorge Guerrero: Alternativas en psicología. breve análisis del concepto de educación superior. URL http://alternativas.me/index.php/agosto-septiembre-2012/6-breve-analisis-del-concepto-de-educacion-superior
  11. Vice Rectoría Académica de la Universidad. Normativa de culminación de estudios de graduación de los estudiantes egresados de la universidad del norte de nicaragua.
  12. Rodríguez Díaz, B.; O. S. Catalá Concepción y T. Jiménez Padilla: La preparación para la culminación de estudios de contabilidad y finanzas de la SUM, cabaiguán, cuba, 2011.
  13. Sommerville, I.: Ingeniería del software. Séptima edition, 2007.
  14. Kotoyna, G.; I. Sommerville y J. Wilwy: Requirements engineering: processes and techniques, 1999.
  15. James, R. T: The DCI architecture: A new vision of object oriented programming, March 2009. URL http://www.artima.com/articles/dci_vision.html.
  16. Grupo de Desarrollo de LibrosWeb: LibrosWeb, 2015. URL https://librosweb.es/libro/django_1_0/capitulo_5/el_patron_de_diseno_mtv.html.
  17. Wesley, A y R. Gillam: Unicode demystified: a practical programmer’s guide to the encoding standard, 2003.

 

  1. Síntesis Curriculares de los Autores

La compañera Yamira Medel Viltres es graduada de Ingeniería en Ciencias Informáticas en el año 2008 en la Universidad de Ciencias Informáticas en La Habana, Cuba. Reside en el municipio Manzanillo en la provincia Granma. Actualmente se desempeña como profesora en la Carrera Ingeniería Informáticas. Cursó estudios primarios en la escuela primaria Faustino Vega de Manzanillo, Cuba, donde obtuvo resultados sobresalientes en la docencia. Cursó los estudios secundarios en la Escuela Secundaria Básica Urbana (ESBU) Mario Carbó Calzada obteniendo la condición de estudiante integral, participó en concursos y otras actividades con resultados satisfactorios. Los estudios correspondientes a la Enseñanza Media fueron cursados en el Instituto Pre- Universitario Walter Vives Vázquez, donde culminó con buenos resultados. Se ha desempeñado en su trayectoria profesional como jefa del Grupo de Calidad, Jefa de disciplina y responsable de las prácticas laborales en la carrera.