REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL
UNEFA INGENIERÍA DE SISTEMAS
PROPUESTA DE REINGENIERÍA A LA PLATAFORMA EDUCATIVA DE LA UNIVERSIDAD METROPOLITANA PLATUM 2.0
(DIRECCIÓN DE APRENRED, UNIVERSIDAD METROPOLITANA).
Trabajo presentado como requisito parcial para optar al título de Ingeniero de Sistemas
TUTOR INDUSTRIAL: PASANTE:
Ing. Osuna S. Rafael A. Br. Milano C. Enrique J. C.I. V-14.890.217 C.I. V-14.745.044
CARACAS, FEBRERO 2012
i
DIRECCIÓN APRENRED DIRECCIÓN APRENRED
CARTA DE APROBACIÓN DEL TUTOR INDUSTRIAL
Yo, Ingeniero Rafael Antonio Osuna Simones, titular de la cédula de identidad
Nº 14.890.217 como Tutor Industrial del presente Informe de Pasantías donde se
desarrolló una propuesta titulada “PROPUESTA DE REINGENIERÍA A LA
PLATAFORMA EDUCATIVA DE LA UNIVERSIDAD METROPOLITANA
PLATUM 2.0”. Por el Br. Enrique José Milano Camacho, titular de la cédula de
identidad N° 14.745.044, de la Carrera INGENIERÍA DE SISTEMAS, considero que
el desarrollo del presente informe se encuentra aprobado para realizar su evaluación y
calificación final de acuerdo al Reglamento Vigente de Pasantías Largas.
______________________________ Ing. Rafael Antonio Osuna Simones
C.I.V-14.890.217
ii
DEDICATORIA
A Dios Todopoderoso.
A mi esposa Elizabeth y a mi familia.
iii
RECONOCIMIENTO
Agradezco primeramente a Dios, la fuente de toda sabiduría.
A mi esposa Elizabeth por estar siempre a mi lado.
A mi familia que siempre ha creido en mi.
Al Sr. Humberto y su esposa Beatriz que son grandes amigos.
A la MsC. Renata Curci, a Betzabé y los chicos de la Dirección de AprenRed.
A mi tutor Industrial Ing. Rafael Osuna
A mi tutor académico Ing. Luis Aguilar (UNEFA)
iv
ÍNDICE DE CONTENIDO
CONTENIDO p. CARTA DE APROBACIÓN DEL TUTOR .............................................................. i
DEDICATORIA .......................................................................................................... ii
RECONOCIMIENTO ............................................................................................... iii
ÍNDICE DE CONTENIDO ....................................................................................... iv
ÍNDICE DE TABLAS ................................................................................................ vi
ÍNDICE DE GRÁFICOS.......................................................................................... vii
RESÚMEN ................................................................................................................ viii
INTRODUCCIÓN ...................................................................................................... 1
CAPÍTULO I PRESENTACIÓN DE LA EMPRESA
1.1. Razón Social ................................................................................................... 3
1.2. Actividad a la que se dedica ........................................................................... 3
1.3. Reseña histótica .............................................................................................. 3
1.4. Mision ............................................................................................................. 4
1.5. Vision ............................................................................................................. 4
1.6. Valores ............................................................................................................ 5
1.7. Objetivos de la empresa ................................................................................. 5
1.8. Organigrama General de la empresa .............................................................. 6
1.9. Organigrama del Departamento ..................................................................... 7
CAPÍTULO II SITUACIÓN ACTUAL
2.1. Necesidades detectadas: ..................................................................................... 8
2.2. Objetivo General: ............................................................................................... 9
2.2. Objetivos Específicos: ........................................................................................ 9
2.3. Justificación........................................................................................................ 9
v
CAPÍTULO III DESARROLLO DEL PROYECTO
3.1. Bases Teóricas ...................................................................................................... 11
3.2. Metodología ......................................................................................................... 17
3.3. Resultados ............................................................................................................ 29
3.4. Factibilidad Técnica, Operativa, Financiera y Legal ........................................... 40
3.5. Vinculación de los Resultados con el Perfil de Egreso ........................................ 41
CONCLUSIONES ..................................................................................................... 42
RECOMENDACIONES ........................................................................................... 44
REFERENCIAS BIBLIOGRÁFIAS ....................................................................... 45
ANEXOS .................................................................................................................... 49
Anexo A: Elementos de la base de datos .................................................................... 50
Anexo B: Diagramas y documentos de casos de uso .................................................. 58
Anexo C: Diagrama de Gantt ...................................................................................... 71
Anexo D: Pantallas del sistema ................................................................................... 73
Anexo E: Manual general del sistema ......................................................................... 80
Anexo F: Codificación del sistema ............................................................................. 93
Anexo G: Archivos y directorios del proyecto ......................................................... 132
vi
ÍNDICE DE TABLAS
Cuadro 1: Cronograma de Actividades ..................................................................... 26
Cuadro 2: Vista del Documento de Casos de Uso Registrar Materia ......................... 32
Cuadro 3: Vista del Documento de Casos de Uso Consultar Inventario .................... 33
Cuadro 4: Vista del Documento de Caso de Uso Generar Documento PDF .............. 34
Cuadro 5: Vista del Documento de Caso de Uso Total Materias Registradas ............ 35
vii
ÍNDICE DE GRÁFICOS
Gráfico 1: Organigrama General de la Universidad Metropolitana (UNIMET)........... 6
Gráfico 2: Organigrama de la Dirección de Aprendizaje en Red (AprenRed) ............. 7
Gráfico 3: Página de inicio de la Plataforma Pl@tUM 2.0 ......................................... 12
Gráfico 4: Vista general de las fases de FDD ............................................................. 20
Gráfico 5: Diagrama UML .......................................................................................... 24
Gráfico 6: Diagrama de Secuencia Registrar Materia................................................. 31
Gráfico 7: Diagrama de Actividad Registrar Materia ................................................. 36
Gráfico 8: Diagrama de Actividad Consultar Inventario ............................................ 37
Gráfico 9: Diagrama de Actividad Generar Documento en formato PDF .................. 38
Gráfico 10: Diagrama de Actividad Total Materias Registradas ................................ 39
viii
REPÚBLICA BOLVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL BOLIVARIANA
UNEFA CARRERA INGENIERÍA DE SISTEMAS
Autor: Br. Enrique José Milano Camacho
Fecha: Febrero de 2012
RESÚMEN
PROPUESTA DE REINGENIERÍA A LA PLATAFORMA EDUCATIVA DE
LA UNIVERSIDAD METROPOLITANA PLATUM 2.0
(DIRECCIÓN DE APRENRED, UNIVERSIDAD METROPOLITANA).
En la actualidad, la UNIMET en su dirección de Aprendizaje en Red, cuenta con una plataforma tecnológica educativa denominada Pl@tUM 2.0 creada hace 5 años bajo lenguaje de programación Java en reemplazo de la versión 1.0 creada bajo lenguaje PHP y XML, y que permite cursar materias de forma virtual, semipresencial y presencial con apoyo, así como cursos de educación a distancia gracias a la red de redes Internet y a los servicios web. La dirección de AprenRed, se ha visto en la necesidad de llevar a cabo importantes actualizaciones y mejoras de la herramienta tomando en cuenta las propuestas de reingeniería a la plataforma realizadas por su personal de soporte y usuarios, para darle continuidad a los servicios prestados y que vayan acorde con el avance tecnológico, en dicha dirección se identificaron los requerimientos y se determinó que la mejor metodología a utilizar fue la fase de construcción del método de Desarrollo Basado en Funcionalidades (Feature Driven Development en inglés, habitualmente resumido como FDD por sus siglas en inglés) el cual es un proceso ágil y ligero para el desarrollo de sistemas donde las clases escritas tienen propietario y solo ellos pueden cambiarlas. Descriptores: Feature Driven Development (FDD), Reingeniería, Plataformas educativas.
1
INTRODUCCIÓN
La actualización permanente de los sistemas de comunicación e información
permite que no existan barreras entre los continentes, plataformas y equipos de
computación cada vez más eficientes y robustos hacen posible el fluir de la información,
por lo que es necesario contar con sistemas que van a las par con dichas actualizaciones
para garantizar que las organizaciones realicen las actividades de manera correcta.
En la actualidad, la UNIMET, al igual que otras universidades, hace uso de los
avances de la tecnología en el mundo de la informática mediante su plataforma
educativa Pl@tUM. Como instrumento tecnológico es necesario que sea mejorado y
actualizado tomado en cuenta las opiniones de los usuarios.
La Dirección de AprenRed de la UNIMET, tiene la responsabilidad de
mantener actualizada y en funcionamiento ésta herramienta educativa y tomando en
cuenta el planteamiento anterior se desarrolla el presente informe de pasantías –
Propuestas de Reingeniría a la Plataforma Educativa de la Universidad
Metropolitana Pl@tUM 2.0 – cuya finalidad es llevar a cabo las propuestas
necesarias de reingeniría para la plataforma.
Para llevar a cado este proyecto se analizaron una serie de requerimientos por
parte de los usuarios que utilizan dicha herramienta, se definió la metodología a
utilizar como el Desarrollo Basado en Funcionalidades (Feature Driven Development
en inglés, habitualmente resumido como FDD) el cual es un proceso ágil y ligero para
el desarrollo de sistemas donde las clases escritas tienen propietario y solo ellos
pueden cambiarlas.
El informe está divido en tres capítulos: El capítulo I, contiene la presentación
de la empresa a saber razón social, actividad o actividades a las que se dedican,
reseña histórica, misión, visión, valores, objetivos, organigrama general de la empresa
2
y organigrama del departamento donde se realizo las pasantías; el capítulo II presenta
las necesidades detectadas, objetivo general, objetivos especificos y la justificación;
mientras que en el capítulo III se exponen las bases teóricas, metodología, resultados,
factibilidad técnica, operativas, financiera y legal, vinculación de los resultados con el
perfil del egresado por último se encuentra las conclusiones, recomendaciones,
referencias bibliográficas y los anexos.
3
CAPÍTULO I
PRESENTACIÓN DE LA EMPRESA
1.1. Razón Social
Nombre: Universidad Metropolitana, Dirección de Aprendizaje en Red (UNIMET, AprenRed). Dirección: Autopista Petare-Guarenas, Sector la Urbina, Distribuidor Metropolitano.
Al lado de Terrazas del Avila. Caracas
Dirección Electrónica: www.unimet.edu.ve
1.2. Actividad a la que se dedica
Educación.
1.3. Reseña histórica
Al inicio de la década de los 60 un grupo de hombres con visión de futuro,
liderado por don Eugenio Mendoza, pensó en una universidad que capacitara con
criterio moderno a jóvenes de todas las clases sociales, llamados a integrar en el
futuro los equipos profesionales calificados por el talento y preparación para ejercer
una influencia decisiva en el desarrollo del país. A tal fin el grupo constituyó en mayo
de 1964 una asociación civil sin fines de lucro. De su trabajo surgió la Universidad
Metropolitana, el 21 de octubre de 1970, fecha en la cual el Consejo Nacional de
Universidades aprueba y autoriza su organización, planes y programas. Son
designados como autoridades de la Universidad los doctores Luis Manuel Peñalver
(rector), Rodolfo Moleiro (vicerrector administrativo) y Miguel Ángel Rivas
4
(vicerrector académico).
El 22 de octubre de ese mismo año la Universidad abre sus puertas en la
antigua sede del Colegio América, ubicada en San Bernardino, Caracas. Un frondoso
samán en su patio central, es testigo del inmenso esfuerzo que se despliega en esa
etapa inicial de la institución. Bajo su enramada se forma la primera generación de
198 estudiantes; a su sombra sueña y labora el claustro, y toman cuerpo las
acrisoladas ilusiones de los fundadores.
Se ofrecen entonces cinco carreras: Ingeniería Mecánica, Ingeniería Eléctrica, Ingeniería Química, Ciencias Administrativas y Matemática. A partir de 1976, la Universidad Metropolitana establece su sede definitiva en La Urbina. El nuevo campus se extiende sobre una superficie de 100 hectáreas, colindantes con el Parque Nacional El Ávila. En la plaza del rectorado, como símbolo de continuidad, un retoño del anterior samán despliega su copa.
1.4. Misión
Formar profesionales reconocidos por su alto nivel ético, sólida formación
integral, por su capacidad emprendedora, de liderazgo y de trabajo en equipo, con
dominio de al menos un segundo idioma, y comprometidos con el desarrollo del
sector productivo y de la sociedad en general.
1.5. Vision
Fortalecer la UNIMET como una institución universitaria reconocida por la
competitividad y formación integral de sus graduados, destacada por la calidad y
pertinencia de su producción intelectual y técnica, por el valor que le asigna a la
conducta ética de sus miembros y por el esfuerzo permanente y el compromiso para
responder a las cambiantes realidades del entorno nacional e internacional.
5
1.6. Valores Rectores
El funcionamiento institucional se fundamenta en una política de
mejoramiento continuo. Tal política implica que toda la comunidad universitaria debe
practicar y promover en su desempeño de todos los días los valores y actitudes
siguientes:
• Honestidad
• Excelencia
• Respeto a la dignidad de las personas
• Responsabilidad en el trabajo
• Espíritu de trabajo en grupo
• Actitud de servicio
• Fomento de la innovación
• Mejoramiento continuo del profesorado y del personal de apoyo y
administrativo
Liderazgo de los directivos, basado en el diálogo permanente con los alumnos,
profesores y personal administrativo de la Institución.
Administración eficiente de los recursos. Vinculación con la comunidad para
responder a sus necesidades de acuerdo con la misión de la Institución.
1.7. Objetivos de la empresa
Se rigen por los Valores Rectores descritos en el punto anterior.
6
1.8. Organigrama General
Gráfico 1: Organigrama General de la Universidad Metropolitana (UNIMET)
Fuente:http://www.unimet.edu.ve/irj/go/km/docs/sede_web/images/organigrama_reducido.png
7
1.9. Organigrama del Departamento donde se realizó la Pasantía
Gráfico 2: Organigrama de la Dirección de Aprendizaje en Red (AprenRed)
Fuente: Dirección de AprenRed
8
CAPÍTULO II
SITUACIÓN ACTUAL
2.1. Necesidades detectadas:
Los cambios y avances tecnológicos que se viven a diario en el mundo,
generan nuevas necesidades que exigen tener plataformas más robustas y con más
servicios. La Universidad Metropolitana mediante La Plataforma Pl@tUM 2.0,
administrada por la Dirección de AprenRed, ofrece servicios educativos que son
utilizados por usuarios y el personal de soporte técnico, sin embargo, al momento de
realizar una búsqueda detallada de un profesor es necesario saber su número de
cédula como única opción o ver el listado por orden alfabetico lo que implica que
dicha búsqueda sea un poco complicada, además la plataforma no cuenta con un
módulo de materias abiertas por trimestre que pueda dar información mas detallada
del total de secciones de dichas materias, trayendo como consecuencia que el trabajo
se realice de forma manual y muy prolongado debido a que la Universidad ofrece
carreras de pregrado, postgrado, diplomados así como profesionalizaciones, cursos de
capacitación, entre otros. Debido a lo anterior expuesto es necesario presentar los
posibles cambios y una herramienta para el control detallado de materias en la
plataforma.
9
2.2. Objetivo General
Identificar los requerimientos de parte de usuarios y personal de soporte
técnico de Pl@tUM 2.0 para diseñar una propuesta de reingeniería en la plataforma
educativa, a fin de mejorar y actualizar el desempeño de los servicios que esta ofrece.
2.3. Objetivos Específicos
1. Levantamiento de la información y requerimientos por parte de los
usuarios.
2. Elaborar las propuestas para su aprobación.
3. Validar con el personal de AprenRed los posibles cambios en la
plataforma.
2.3. Justificación
En la actualidad, la UNIMET por medio de la Dirección de AprenRed, cuenta
con la plataforma educativa llamada Pl@tUM 2.0, que permite cursar materias de
forma virtual, semipresencial y presencial con apoyo, así como cursos de educación a
distancia. No obstante, cuando el personal de soporte ingresa al módulo de profesores
para hacer una búsqueda o modificar los datos del algún docente sólo tiene como
opción colocar el número de cédula, dicho módulo se puede mejorar ampliando las
alternativas, de esta manera, los usuarios se verían beneficiados ya que no estarán
limitados a solo un dato para realizar la solicitud. Además, la Dirección contaria con
una nueva herramienta de inventario de materias abiertas por trimestre para llevar de
forma automatizada todo el detalle de las secciones y cursos de las disntintas
modalidades sean virtuales, semipresenciales y presenciales.
Este proyecto permitirá en las futuras actualizaciones, la integración del
módulo de inventario de materias abiertas con la plataforma platum, para ofrecer
10
detalladamente la información de cada sección o curso abierto por trimestre como lo
exige la administración de AprenRed.
11
CAPÍTULO III
DESARROLLO DEL PROYECTO
3.1. Bases Teóricas
Para dar la solidez teórica al proyecto, se considera necesario iniciar el
referencial teórico con una conceptualización de lo que es la reingeniería.
Aspectos Teóricos
Reingeniería:
Para Lefcovich (s/f), Reingenieria “es aquella que constituye una recreación y
reconfiguración de las actividades y procesos de una empresa, lo cual implica volver
a crear y configurar de manera radical él o los sistemas de la compañía a los efectos
de lograr incrementos significativos, y en un corto período de tiempo, en materia de
rentabilidad, productividad, tiempo de respuesta, y calidad, lo cual implica la
obtención de ventajas competitivas”. Existen diferentes tipos, entre ellas se tienen:
reingeniería de software, organizacional y de procesos.
Los objetivos que se desean conseguir son los siguientes:
• Mejorar la calidad, rendimiento y capacidad de los sistemas existentes.
• Desarrollar sistemas adaptables y amigables.
• Reducir los errores y costos del mantenimiento.
• Facilitar las peticiones de mantenimiento.
12
• Proteger y extender la vida de los sistemas.
Plataforma Pl@tUM 2.0:
La Plataforma de la Universidad Metropolitana - PlatUM 2.0 ( Pl@tUM 2.0),
es una plataforma educativa desarrollada bajo java en sustitución de la versión 1.0. la
cual cuenta con nuevos servicios y herramientas que permiten desenvolverse con
mayor facilidad en los cursos virtuales y ofrece apoyo a los cursos en modalidad
presencial y semipresencial. Pertenece a la Universidad Metropolitana y es
administrada por la Dirección de AprenRed de dicha casa de estudios.
Gráfico 3: Página de inicio de la Plataforma Pl@tUM 2.0
Fuente: www.platum2.unimet.edu.ve/platum
Software Libre:
Según la Fundación para el Software Libre (Free Software Foundation, en
inglés), “el software libre se refiere a la libertad de los usuarios para ejecutar, copiar,
distribuir, estudiar, modificar el software y distribuirlo modificado”. Suele estar
disponible gratuitamente, o al precio de costo de la distribución a través de otros
medios; sin embargo no es obligatorio que sea así, por lo tanto no hay que asociar
software libre a software gratuito (denominado usualmente freeware, en inglés).
13
De acuerdo con lo antes expuesto, el software libre garantiza lo siguientes:
• La libertad de usar el programa, con cualquier propósito.
• Permite estudiar cómo funciona el programa y modificarlo, adaptándolo a tus
necesidades.
• Se permite distribuir copias del programa, con lo cual puedes ayudar a tu
prójimo.
• Se puede mejorar el programa y hacer públicas esas mejoras a los demás, de
modo que toda la comunidad se beneficie.
Servicios Web:
Un servicio web (en inglés, Web service) es una pieza de software que utiliza
un conjunto de protocolos y estándares que sirven para intercambiar datos entre
distintas aplicaciones de software y en redes de ordenadores como Internet,
desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier
plataforma.
La Organización para el Avance de Estándares de Información Estructurada
(OASIS, por sus siglas en inglés) y el Consorcio World Wide Web Consortium (W3C
abreviado) son los comités responsables de la arquitectura y reglamentación de los
servicios Web.
Algunas ventajas:
• Aumentan la interoperabilidad entre programas independientemente de la
plataforma en donde están instalados.
• Permite el funcionamineto entre servicios y programas de diferentes
compañías ubicados en diferentes lugares geográficos.
• Fomentan los estándares y protocolos basados en texto, haciendo más fácil
acceder y entender su contenido y funcionamiento.
14
Bases de Datos:
Es una colección de datos organizados y estructurados según un determinado
modelo de información, como lo define Gilfillan (2002), “es una coleccion de
archivos relacionados que utilizan tablas de datos relacionadas por un campo en
común”. Se diseña con un propósito específico y debe ser organizada con una lógica
coherente, estos podrán ser compartidos por distintos usuarios y aplicaciones, pero
deben conservar su integridad y seguridad al margen de las interacciones de ambos,
además su definición y descripción han de ser únicas para minimizar la redundancia y
maximizar la independencia en su utilización.
En una base de datos, las entidades y atributos del mundo real, se convierten
en registros y campos. Estas entidades pueden ser tanto objetos materiales como
libros o fotografías, pero también personas e, incluso, conceptos e ideas abstractas.
Las entidades poseen atributos y mantienen relaciones entre ellas.
Lenguaje de programación:
Es un lenguaje artificial, el cual, se utiliza para definir adecuadamente una
secuencia de instrucciones que puedan ser interpretadas y ejecutadas en una
computadora. Pueden usarse para crear programas que controlen el comportamiento
físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo
de comunicación humana. Está formado por un conjunto de símbolos y reglas
sintácticas y semánticas que definen su estructura y el significado de sus elementos y
expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se
mantiene el código fuente de un programa informático se le llama programación. Para
que la unidad central de proceso (cpu) entienda nuestras instrucciones debe usarse un
lenguaje específico conocido como código máquina, el cual comprende fácilmente,
pero que lo hace excesivamente complicado para las personas. De hecho sólo consiste
en cadenas extensas de números 0 y 1.
15
MySQL:
Según Gilfillan (2002), define MySQL (Lenguaje de Consulta Estructurado)
como “un sistema de administracion de bases de datos relational (RDBMS). Se trata
de un programa capaz de almacenar una enorme cantidad de datos de gran variedad y
de distribuirlos para cubrir las necesidades de cualquier tipo de organizacion, desde
pequeños establecimientos comerciales a grandes empresas y organismos
administrativos” (p.40).
Diagramas de Caso de Uso:
Son aquellos que documentan el comportamiento de un sistema desde el punto
de vista del usuario. Por lo tanto, determinan los requisitos funcionales del mismo, es
decir, representan las funciones que un sistema puede ejecutar. Su ventaja principal es
la facilidad para interpretarlos, lo que hace que sean especialmente útiles en la
comunicación con el cliente.
Los diagramas de casos de usos están compuestos por cuatro (04) elementos:
• Sistema.
• Actores: son aquellos que interactúan con el sistema, Un actor es algo con
comportamiento, como una persona (identificada por un rol), un sistema
informatizado u organización.
• Casos de uso: se conocen porque son los servicios que el sistema ejecutará.
Un caso de uso es una descripción de la secuencia de interacciones que se
producen entre un actor y el sistema, cuando el actor usa el sistema para llevar
a cabo una tarea específica.
• Relaciones entre casos de uso: en principio, debería describir una tarea que
tiene un sentido completo para el usuario. Sin embargo, hay ocasiones en las
que es útil describir una interacción con un alcance menor como caso de uso.
La razón para utilizarlos es mejorar la comunicación en el equipo de
desarrollo y el manejo de la documentación.
16
Tecnologías de la Información:
Es un amplio concepto que abarca todo lo relacionado a la conversión,
almacenamiento, protección, procesamiento y transmisión de la información. El
concepto se emplea para englobar cualquier tecnología que permite administrar y
comunicar información.
Aspectos Conceptuales:
PHP: Es un lenguaje de programación interpretado, diseñado originalmente para la
creación de páginas web dinámicas. Además, es un lenguaje de secuencias de
comandos de servidor diseñado específicamente para la web. Dentro de una página
web puede inscrutar código php que se ejecutara cada vez que se visite una página. El
código php es interpretado en el servidor web y genera código HTML y otro
contenido que el visitante verá.
PDF: (Formato de Documento Portátil, en inglés PDF) Es un formato de
almacenamiento de documentos, desarrollado por la empresa Adobe Systems. Es uno
de los formatos más extendidos en Internet para el intercambio de documentos y
puede contener cualquier combinación de texto, elementos multimedia como vídeos o
sonido, elementos de hipertexto como vínculos y marcadores, enlaces y miniaturas de
páginas.
Datos: Son los hechos que describen sucesos y entidades. Cualquier forma de
información, ya sea en forma electrónica o sobre papel. En forma electrónica, “datos”
se refiere a archivos, bases de datos, documentos de texto, imágenes y, voz y video
codificados en forma digital.
Herramienta: Conjunto de estos instrumentos. Objeto que se utiliza para trabajar en
diversos oficios o realizar un trabajo. Se conoce también como un subprograma o
módulo encargado de funciones específicas y afines entre sí para realizar una tarea.
Una aplicación o programa puede contar con múltiples herramientas a su disposición.
17
Software: Se refiere al equipamiento lógico o soporte lógico de un computador
digital, y comprende el conjunto de los componentes lógicos necesarios para hacer
posible la realización de una tarea específica, en contraposición a los componentes
físicos del sistema (hardware).
Java: Java es un lenguaje de programación y la primera plataforma informática
creada por Sun Microsystems en 1995. Es la tecnología subyacente que permite el
uso de programas punteros, como herramientas, juegos y aplicaciones de negocios.
Código: En programación, es el texto escrito en un lenguaje de programación que ha
de ser compilado o interpretado para ejecutarse en una computadora.
Sistema: Es un conjunto de partes o elementos organizadas y relacionadas que
interactúan entre sí para lograr un objetivo. Los sistemas reciben (entrada) datos,
energía o materia del ambiente y proveen (salida) información, energía o materia.
3.2. Metodología
3.2.1. Metodología Feature Driven Development (FDD)
Esta metodología denominada Desarrollo Basado en Funcionalidades (Feature
Driven Development en inglés, resumido como FDD) como los indica Molpeceres
(2002) “es un proceso ágil para el desarrollo de sistemas, diseñado por Peter Coad,
Eric Lefebvre y Jeff DeLuca, el cual se basa en un proceso iterativo con iteraciones
cortas que producen un software funcional que el cliente y la dirección de la empresa
pueden ver y monitorear”.
A diferencia de otros procesos ágiles no cubre todo el ciclo de vida sino sólo
las fases de diseño y construcción.
3.1.2.1. Características del FDD
FDD se basa en las siguientes características:
18
• Está pensado para proyectos con tiempo de desarrollo relativamente corto,
menos de 1 año.
• Se basa en un proceso repetido con iteraciones cortas que propone tener etapas
de cierre cada dos semanas y que producen un software funcional que el
cliente y la dirección de la empresa pueden ver y monitoriar.
• Ayuda a contrarrestar situaciones como el exceso en el presupuesto, fallas en
el programa o el hecho de entregar menos de lo deseado.
• Maneja una gran cantidad de roles, para el desarrollo del proyecto cada
integrante debe cumplir con más de dos roles de los descritos en FDD
• Durante la definición de cronogramas y estimativos de tiempos de desarrollo,
es importante sumar un tiempo de holgura a la fecha final de entrega del
proyecto, con el fin de evitar retraso e incumplimientos en las entregas
planteadas.
• Las etapas de levantamiento de requerimientos son especialmente importantes
porque ayudan a dimensionar realmente el tamaño del proyecto, tomarlas a la
ligera puede acarrear en planeaciones de tiempos no adecuados y retrasos no
deseados.
• Define claramente entregas tangibles y formas de evaluación del progreso del
proyecto.
• Se preocupa por la calidad, por lo que incluye un monitoreo constante del
proyecto.
• Se puede implementar mucho mejor en proyectos cortos y equipo de trabajo
reducidos, pues con proyectos bastantes grandes se haría mucho mas tediosa
la labor de diseño, desarrollo y documentación de cada característica.
3.1.2.2. Fases de FDD
Un proyecto que sigue FDD se divide en 5 fases secuenciales durante las
cuales se diseña y se construye el sistema:
• Desarrollo de un modelo global: Cuando comienza el desarrollo, los
19
expertos del dominio están al tanto de la visión, el contexto y los
requerimientos del sistema a construir. Se divide el dominio global en áreas
que son analizadas detalladamente. Los desarrolladores construyen un
diagrama de clases o de objetos por cada área. Se construye un modelo global
del sistema.
• Construcción de una lista de funcionalidades: Se elabora una lista de
funcionalidades que resuma la funcionalidad general del sistema. La lista es
elaborada por los desarrolladores y es evaluada por el cliente. Se divide la
lista en subconjuntos según la afinidad y la dependencia de las
funcionalidades. La lista es finalmente revisada por los usuarios y los
responsables para su validación y aprobación.
• Planeación por funcionalidad: En este punto se procede a ordenar los
conjuntos de funcionalidades conforme a su prioridad y dependencia, y se
asigna a los programadores jefes.
• Diseñar en base a las funcionalidades y Construcción por funcionalidad: Se selecciona un conjunto de funcionalidades de la lista. Se procede a diseñar
y construir la funcionalidad mediante un proceso iterativo. Una iteración
puede tomar de unos pocos días a un máximo de dos semanas. El proceso
iterativo incluye inspección de diseño, codificación, pruebas unitarias,
integración e inspección de código.
Las primeras tres fases ocupan gran parte del tiempo en las primeras
iteraciones, siendo las dos últimas las que absorben la mayor parte del tiempo según
va avanzando el proyecto, limitándose las primeras a un proceso de refinamiento.
20
Gráfico 4: Vista general de las fases de FDD
Fuente: http://www.agilemodeling.com/essays/fdd.htm
3.1.2.3. Roles y Responsabilidades de FDD
El trabajo (tanto de modelado como de desarrollo) se realiza en grupo, aunque
siempre habrá un último responsable (arquitecto jefe o jefe de programadores en
función de la fase en que se encuentre), con mayor experiencia, que tendrá la última
palabra en caso de no llegar a un acuerdo. Al hacerlo en grupo se consigue que todos
formen parte del proyecto y que los menos expertos aprendan de las discusiones de
los mas experimentados, y al tener un último responsable, se asignan las
responsabilidades que todas las empresas exigen.
• Roles claves (Key Roles en inglés):
Project Manager / Director del Proyecto:
* Lider administrativo y financiero del proyecto.
* Protege al equipo de situaciones externas.
Arquitecto jefe (Chief Architect en inglés):
* Diseño global del sistema.
* Ejecución de todas las etapas.
Director de desarrollo (Development Manager en inglés)
* Lleva diariamente las actividades de desarrollo.
21
* Resuelve conflictos en el equipo.
* Resuelve problemas referentes a recursos.
Programador Jefe (Chief Programmer en inglés)
* Analiza los requerimientos.
* Diseña el proyecto.
* Selecciona las funcionalidades a desarrollar de la última fase.
Propietario de clases (Class Owner en inglés)
* Responsable del desarrollo de las clases que se le asignaron como
propias.
* Participa en la decisión de que clase será incluida en la lista de
funcionalidades de la próxima iteración.
Expertos de dominio
* Puede ser un usuario, un cliente, analista o una mezcla de estos.
* Poseen el conocimiento de los requerimientos del sistema.
* Pasa el conocimiento a los desarrolladores para que se asegure la
entrega de un sistema completo.
• Roles de soporte (Supporting Roles en inglés)
Administrador de Dominio (Domain Manager en inglés)
* Lidera al grupo de expertos del dominio.
* Resuelve sus diferencias de opinión concernientes a los
requerimientos del sistema.
Jefe de Lanzamientos (Release Manager en inglés)
* Controla el avance del proceso mediante la revisión de los reportes
del programador jefe.
* Reporta resultados obtenidos semanalmente al gerente y al cliente
donde incluye el porcentaje de avance.
Gurú del Lenguaje (Language Lawyer en inglés)
* Responsable de poseer un vasto conocimiento en, por ejemplo, un
lenguaje específico de programación o tecnología.
22
* Es muy importante cuando se trabaja una nueva tecnología.
Ingeniero de construcción (Build Engineer)
* Responsable de preparar, mantener y correr el proceso de
construcción.
* Realiza el mantenimiento de las versiones y la publicación de la
documentación.
Herramentista (Toolsmith en inglés)
* Rol para la construcción de herramientas específicas para el
desarrollo, conversión de datos y testeo.
* Puede trabajar en la preparación y mantenimiento tanto de bases de
datos o sitios web destinados al proyecto.
Administrador del sistema (System Administrator en inglés)
* Configura, administra y repara los servidores, estaciones de trabajo y
equipos de desarrollo y testeo utilizados por el equipo.
• Roles adicionales (Additional Roles en inglés)
Probador (Tester en inglés)
* Verifica que el sistema recién creado cumpla con los requerimientos
del cliente.
* Puede llegar a ser una persona independiente del equipo del
proyecto.
Implementador (Deployer en inglés)
* Es el encargado de convertir la información existente requerida por
el nuevo sistema.
* Participa en el lanzamiento de los nuevos productos.
Escritores de documentos técnicos (Technical Writer en inglés)
* Prepara la documentación para los usuarios, que pueden formar parte
o no del equipo del proyecto.
23
3.1.3. Análisis de Sistemas
Es aquel que trata de determinar los objetivos y límites del sistema objeto de
análisis, caracterizar su estructura y funcionamiento, marcar las directrices que
permitan alcanzar los objetivos propuestos y evaluar sus consecuencias.
Dependiendo de los objetivos del análisis, se puede llegar a lo siguiente:
• Análisis de un sistema ya existente para comprender, mejorar, ajustar y/o
predecir su comportamiento.
• Análisis como paso previo al diseño de un nuevo sistema-producto.
3.1.4. Lenguaje Unificado de Modelado (UML)
Lenguaje Unificado de Modelado (UML, por sus siglas en inglés, Unified
Modeling Language), es un lenguaje de modelado de sistemas de software que
comprende un conjunto de herramientas, que permite modelar, analizar y diseñar
sistemas orientados a objetos, aún cuando todavía no es un estándar oficial, está
respaldado por el OMG (Object Management Group). Además de ser un conjunto de
herramientas, como lo describe Deitel (2002) “UML es un lenguaje gráfico complejo,
con muchas características” (p.19) gráficas para visualizar, especificar, construir, y
documentar un sistema de software, UML ofrece un estándar para describir un plano
del sistema modelo, incluyendo aspectos conceptuales tales como procesos de
negocios y funciones del sistema, y aspectos concretos como expresiones de
lenguajes de programación, esquemas de bases de datos y componentes de software
reutilizables.
24
Gráfico 5: Diagrama UML
Fuente: http://www.carlosrovira.com/blog/2004/09/una-introduccin-a-uml/
UML emplea diversos diagramas a utilizar para describir el desarrollo de un
proyecto. Los diagramas se clasifican por disciplinas como:
• Diagrama de Clase.
• Diagrama de Casos de Uso.
• Diagrama de Secuencia.
• Diagrama de Colaboración.
• Diagrama de Estado.
• Diagrama de Actividades.
• Diagrama de Componentes.
• Diagrama de Despliegues.
25
3.1.5. Técnicas e Intrumentos de recolección de información
Para la recolección de los datos, la técnica a emplear depende en gran medida
del tipo de investigación a desarrollar y el problema planteado. Tal y como indica
Flames (2001), “son una directriz metodológica que orientan científicamente la
recopilación de informaciones, datos u opiniones” (p. 35).
3.1.5.1. Instrumentos para la recolección de datos
Para recabar información en el proyecto, fue necesario emplear ciertos
instrumentos de recolección de información, los cuales son:
Instrumento 1. Observación:
La observación es el método fundamental de obtención de datos de la
realidad, toda vez que consiste en obtener información mediante la percepción
intencionada y selectiva, ilustrada e interpretativa de un objeto o de un fenómeno
determinado.
Según Hurtado (2000), la observación “es la primera forma de contacto o de
relación con los objetos que van a ser estudiados”.
Instrumento 2. Entrevista:
Se realizó una serie de entrevistas no estructuradas para recabar información y
de esta manera realizar el diagnóstico de la situación de la Plataforma Platum, las
mismas fueron aplicadas a la coordinadora de logística y plataforma, por considerarse
como la persona más adecuada para comentar todo lo relacionado al funcionamiento
de platum.
3.1.6. Desarrollo de las actividades
Para la elaboración de las propuestas se utilizó la primera y última fase de la
26
metodología FDD, ya que el proyecto de pasantías es realizar propuestas de mejoras
así como crear herramientas para el buen desempeño de la plataforma, se tocaron
algunos puntos de la fase de Construcción, pero no se profundiza dado los motivos
expuestos anteriormente.
Cuadro 1: Cronograma de Actividades
Semana Actividad Cumplió
1 Planificación inicial Si
2 Planificación inicial y diagnóstico de la situación actual de la
plataforma.
Si
3 Levantamiento de información e identificación de
requerimientos.
Si
4 Acceso a la plataforma y entrevista no estructurada. Si
5 Acceso a la plataforma y revisión de los módulos de la misma Si
6 Describir los posibles cambios a efectuar. Si
7 Asesorías sobre el ambiente PHP, MySQL, HTML, JavaScript y conexión a Bases de Datos.
Si
8 Analizar los diversos requerimientos emitidos por parte de los
usuarios de la dirección de AprenRed
Si
9 Diseñar las herramientas mediante UML. Si
10 Codificación del Diseño del Sistema. Si
11 Codificación del Diseño del Sistema. Si
12 Codificación del Diseño del Sistema. Si
13 Codificación del Diseño del Sistema. Si
14 Codificación del Diseño del Sistema. Si
15 Elaboración del manual Si
16 Presentación de las herramientas Si
Fuente: Autor (2012)
27
Resúmen de las actividades realizadas.
Semana 1. En ésta primera semana se comenzó con la planificación inicial tomando
como base los manuales de la plataforma Pl@tUM 2.0 para tener un mejor enfoque
de dicha plataforma.
Semana 2. Se continúa con la planificación inicial y se observan los pasos de las
distintas actividades que se deben realizar en la plataforma, como modificar registros
de estudiantes, abrir una nueva materia o sección, eliminar una sección siguiendo tres
pasos descritos en el manual, incribir o registrar un usuario con rol de estudiante o de
profesor, entre otros.
Semana 3. Se procede al levantamiento de la información y requerimientos por parte
de los usuarios, tomando en cuenta los detalles más relevantes que se puedan mejorar
sin afectar el funcionamiento de la plataforma.
Semana 4. Se hace una entrevista no estructurada a la coordinadora de logística y
plataforma por ser la persona que mejor conoce la plataforma y que consistió en
obtener mas detalles de una manera verbal sobre el registro de las materias y en
donde se pudo ver que todo el proceso es llevado de forma manual debido a que
platun no cuenta con un módulo de control de las cursos y secciones registradas
donde se pueda ver el total de alumnos, número de sección, nombre del profesor,
modalidad, nivela académico, fecha de apertura, usuario de soporte responsable de
dicha asignatura.
Semana 5 y 6. Se procede a detallar las opciones que tendrá la nueva herramienta
tomando como base el diseño de la plataforma, para ello se crea un modelo en php
imitando al original y se hace otro con las nuevas características donde se hace
evidente los cambios realizados solo como referencia para su posterior diseño.
Semana 7. Se consultas libros, páginas web y otros trabajos para tener una mejor
28
visión de las herramientas a utilizar, ya que se amplian los conocimientos y se puede
optar por escoger software libre de acuerdo a las necesidades del desarrollador.
Semana 8. Se analizan los requerimientos y se crean las posibles soluciones. Como
principal solución se elabora de forma manual una hoja de Excel, como base, donde
se muestran los detalles que presentara la herramienta de control de inventario
siguiendo las indicaciones de la coordinadora de logística y plataforma.
Semana 9 a la 14. Se hace el diseño de la herramienta de inventario de materias
registradas mediante los diagramas de UML y se procede a la construcción de la
misma en php usando como base la hoja de Excel. En un principio el módulo consta
de 5 partes que permiten al usuario autenticarse en el sistema, hacer el registro
detallado de una materia, realizar consultas combinado dos opciones que se muestran
en el manual, exportar la consulta a formato pdf, ver de manera numérica la cantidad
de materias dependiendo de su modalidad. Parte del código utilizado son clases y
funciones que se encuentran en internet y fuentes como libros y programas de código
abierto, los colores utilizados son los mismos de platum para no alterar la vista
gráfica y que se asemeje a la plataforma original. Se crea una base de datos con 5
tablas que permitirán guardar los datos de los registros y la cual se detalla en
otrasección del informe.
Semana 15. Se elabora el manual de la herramienta de inventario de materias
registradas. Una vez puesto en marcha el módulo de inventario se cargaron un
aproximado de 60 registros de materias para elaborar dicho manual y en donde se
detalla claramente los pasos que debe seguir un usuario para el buen uso del
instrumento, a manera de seguridad el sistema muestra mensajes en pantalla para
indicarle al operador si está ingresando los datos de manera correcta. El manual está
elaborado para ser usado por cualquier persona.
Semana 16. Se presenta a la Dirección de AprenRed la herramienta de control de
inventario de materias registradas.
29
3.2. Resultados
Gracias a las Técnicas e Intrumentos de recolección de información utilizadas,
se pudo detallar lo siguiente:
Por la observación:
• Apartado Profesores. Al momento de realizar la búsqueda de un profesor
solo se tiene la opción mediante el número de cédula, si se desea realizar una
búsqueda rápida se pierde un poco de tiempo ya que la pestaña “ver todos”
muestra los nombres en orden alfabético y en grupos de 15 profesores.
• Apartado Estudiantes. No se está validando el campo carnet y por ende
pueden estar inscritos varios alumnos con el mismo carnet.
• Apartado Gráfico. La hora del sistema no se encuentra en tiempo real, esto
trae como consecuencia que al momento de presentar una evaluación se
confunda con la hora de inicio y la hora de cierre de la actividad.
• Consultas. La plataforma no cuenta con un módulo de consultas por lote de
materias registradas así como el detalle de las mismas.
Por la entrevista:
Se pudo verificar que Pl@tUM no cuenta con un módulo de consultas de
materias registradas donde se detalle las caracteríscas de las mismas, tales como;
nombre de la materia, sección, número de estudiantes, nombre del profesor, nivel
académico, modalidad, usurio de soporte responsable de la materia y la fecha de
apertura o inscripción. Como propuesta adicional se crea una herramienta de
consultas exclusivamente para las materias registradas tomando como modelo las
características visuales de la plataforma.
30
3.3.1. Especificaciones de los Documentos de Casos de Usos de Registro de materias, Consultar Inventario, Total Materias Registradas y Generar Documentos en formato PDF
Al momento de iniciar el planteamiento de la propuesta de diseño de una
herramienta para las consultas de las materias registradas, específicamente los
módulos de Registro de Materias, Consultar Inventario y Generar Documentos en
formato PDF se detallaron y anexaron los distintos Documentos de Descripción de
Casos de Uso.
Para cada uno de los diferentes procesos que se observan en los Casos de Uso
los mismos están plasmados de una manera clara y precisa, como es la interacción
entre el usuario y el sistema de una forma directa, eficaz y eficiente; así como
también se hace sencillo y rápido el manejo de la misma.
31
• Diagrama de Secuencia Registrar Materia: muestra al usuario participante
en la interacción y los mensajes que el sistema intercambia ordenados según
su secuencia en el tiempo.
Gráfico 6: Diagrama de Secuencia Registrar Materia
Fuente: Autor (2012)
32
• Documento Caso de Uso Registrar Materia: Permite al usuario de soporte
de la plataforma acceder al sistema de control de inventario para registrar la
materia así como el detalle de la misma.
Cuadro 2: Vista del Documento de Casos de Uso Registrar materia
Fuente: Autor (2012)
Nombre: Registrar detalle de Materia /CU 1 Autor: Enrique Milano Fecha:
Descripción: Describe el proceso de realizar el Registro de las materias de una manera detallada Actores: Personal de soporte de la Dirección de AprenRed Precondiciones: El usuario debe haberse autenticado en el sistema.
Flujo Normal:
1. El actor pulsa sobre el botón para registrar una nueva materia. 2. El sistema muestra una serie de campos de texto identificados para introducir el detalle
de la materia a registrar. 3. El actor da un clic en el botón cargar. 4. El sistema comprueba la validez de los datos y los almacena.
Flujo Alternativo: El sistema comprueba la validez de los datos, si los datos no son correctos no permite el registro de la materia. Postcondiciones: El sistema envía un mensaje conformando que la materia ha sido registrada.
33
• Documento Caso de Uso Consultar Inventario: Permite al usuario de
soporte consultar detalladamente las materias registradas.
Cuadro 3: Vista del Documento de Casos de Uso Consultar Inventario
Fuente: Autor (2012)
Nombre: Consultar Inventario /CU 2 Autor: Enrique Milano Fecha: Descripción: Permite al usuario de soporte consultar detalladamente las materias registradas por nivel académico, modalidad y el usuario que realizó el registro de cada materia. Actores: Personal de soporte de la Dirección de AprenRed Precondiciones: El usuario debe haberse autenticado en el sistema.
Flujo Normal: 1. El actor pulsa sobre el botón para realizar una consulta. 2. El sistema muestra tres botonoes para realizar dos tipos de consulta. 3. El actor selecciona por medio de dos botones la consulta que desea realizar. 4. El sistema comprueba la validez de los datos y hace la consulta a la BD. Flujo Alternativo: El sistema comprueba el tipo de consulta, si no existen registros en la BD el sistema indica que existen 0 registros.
Postcondiciones: El sistema muestra en pantalla el detalle de la consulta realizada.
34
• Documento Caso de Uso Generar Documentos en formato PDF: Permite
al usuario de soporte generar en formato pdf las consultas realizadas.
Cuadro 4: Vista del Documento Caso de Uso Generar Documento formato PDF
Fuente: Autor (2012)
Nombre: Generar PDF de materias Registradas / CU3 Autor: Enrique Milano Fecha: Descripción: Permite al usuario de soporte generar un documento portable (pdf) que bien puede usar para almacenar, imprimir o enviar por por correo electrónico, entre otros. Actores: Personal de soporte de la Dirección de AprenRed Precondiciones: El usuario debe haberse autenticado en el sistema.
Flujo Normal: 1. El actor pulsa sobre el botón para realizar otras consultas. 2. El sistema muestra tres botones para las opciones del documento PDF. 3. El actor selecciona por medio de dos botones las opciones que desea para el documento PDF
y da clic en el botón Generar PDF. 4. El sistema comprueba la validez de los datos y hace la consulta a la BD.
Flujo Alternativo: El sistema comprueba el tipo de consulta, si no existen registros en la BD el sistema muestra el documento PDF sin registros.
Postcondiciones: El sistema genera un documento PDF
35
• Documento Caso de Uso Total Materias Registradas: Permite al usuario de
soporte consultar el número de materias registradas por nivel académico.
Cuadro 5: Vista del Documento de Caso de Uso Total Materias Registradas
Fuente: Autor (2012)
Nombre: Total Materias Registradas / CU4 Autor: Enrique Milano Fecha: Descripción: Permite al usuario de soporte consultar el número de materias registradas por nivel académico detanllando la cantidad por modalidad Actores: Personal de soporte de la Dirección de AprenRed Precondiciones: El usuario debe haberse autenticado en el sistema.
Flujo Normal: 5. El actor pulsa sobre el botón para realizar otras consultas. 6. El sistema muestra dos botones para realizar la consulta. 7. El actor selecciona por medio de un botón el nivel académico que desea consultar y da clic
en el botón mostrar. 8. El sistema comprueba la validez de los datos y hace la consulta a la BD.
Flujo Alternativo: El sistema comprueba el tipo de consulta, si no existen registros en la BD el sistema muestra cero (0) registros.
Postcondiciones: El sistema muestra en pantalla de forma numérica la cantidad de materias registradas
36
3.3.2. Diagramas de Actividades
• Diagrama de Actividad Registrar Materia: En este diagrama de actividad
se observan las actividades que se ejecutaran al momento que un usuario de
soporte realiza el registro de la materia.
Gráfico 7: Diagrama de Actividad Registrar Materia
Fuente: Autor (2012)
37
• Diagrama de Actividad Consultar Inventario: En este diagrama de
actividad se observan las actividades que se ejecutaran al momento que un
usuario de soporte realiza una consulta de las materias registradas.
Gráfico 8: Diagrama de Actividad Consultar Inventario
Fuente: Autor (2012)
38
• Diagrama de Actividad Generar Documento en formato PDF: En este
diagrama de actividad se observan las actividades que se ejecutaran al
momento de generar una consulta que se muestra en un documento formato
pdf por parte de un usuario de soporte.
Gráfico 9: Diagrama de Actividad Generar Documento en formato PDF
Fuente: Autor (2012)
39
• Diagrama de Actividad Total Materias Registradas: En este diagrama de
actividad se observan las actividades que se ejecutaran al momento de generar
una consulta para ver el número de materias registradas por modalidad por
parte de un usuario de soporte.
Gráfico 10: Diagrama de Actividad Total Materias Registradas
Fuente: Autor (2012)
40
3.4. Factibilidad Técnica, Operativa, Financiera y Legal:
• Factibilidad Técnica: El proyecto presento factibilidad técnica, debido a que
dirección cuenta con los equipos de computación necesarios para el proyecto,
el software utilizado bajo licencia GPL, en este caso PHP y MySQL,
OpenOffice, pueden ser descargadas desde internet sin costo alguno al igual
que las herramientas para crear un servidor de pruebas como lo es LAMP
(Linux, Apache, MySQL y PHP, antes mencionados), También se cuenta con
el asesoramiento y conocimientos que aporta el pasante, los tutores y el
personal de la Dirección de AprenRed.
• Factibilidad Operativa: Implica que el recurso humano esté capacitado y
preparado para manejar el proyecto en el cual se ve involucrado.
El equipo que labora en la dirección de AprenRed de la Unimet es personal
calificado, los cuales se encuentran preparados para cumplir con las
actividades planificadas y aptos para el buen manejo de los equipos de
informática como computadoras, acceso a la red y a la plataforma.
• Factibilidad Financiera: El proyecto es factible ya que no genera costos
adicionales para la dirección por utilizar herramientas bajo software libre, los
equipos de computación utilizados son propiedad de la unimet y el pasante que
lleva a cabo el proyecto es empleado de dicha casa de estudios.
• Factibilidad Legal: Todos los componentes involucrados en el proyecto se
encuentran resguardados, el personal es parte de la Dirección de AprenRed, las
herramientas están licenciadas bajo Licencia Pública General (GPL, por sus
siglas en inglés) la plataforma Pl@tUM 2.0 es propiedad de la Unimet y se
encuentra licenciada, el acceso a producción es monitoreado por el
administrador de la misma.
41
3.5. Vinculación de los Resultados con el Perfil de Egreso
Dentro del proceso actual que desarrolla el pasante de sistemas en la
Dirección de AprenRed de la UNIMET, se destaca que cada una de las experiencias
vividas durante dicho proceso están íntimamente relacionadas con las materias
impartidas durante el lapso en la universidad, cumpliendo de esta manera el proceso
de enseñanza y aprendizaje para forjar grandes Ingenieros que den la talla en
cualquier empresa, obteniendo así la excelencia para lograr, de esta manera, el éxito y
desarrollo de nuestro país y de las vidas de cada egresado de nuestra casa de estudio
UNEFA.
42
CONCLUSIONES
Una vez concluido el informe de pasantías, a objeto de cubrir los objetivos del
proyecto, se ofrecen las siguientes conclusiones:
Para el levantamiento de la información y requerimientos por parte de los
usuarios, se realizo una entrevista no estructurada a la coordinadora de logística y
plataforma de la Dirección de AprenRed, también se observaron los distintos
módulos que integran la plataforma Pl@tUM 2.0 por medio del acceso a la misma
con una cuenta de usuario con privilegios de administrador.
Se logró identificar los requerimientos y se detallaron los pasos para las
distintas consultas que realiza un usuario de soporte de la plataforma Pl@tUM.
En la elaboración de las propuestas se utilizaron distintas herramientas usadas
en las tecnologías de la información como PHP, MySQL, Java, entre otras. Se logró
desarrollar un módulo de inventario de materias registradas como principal propuesta
ya que Pl@tUM carece del mismo, adicionalmente se crearon las propuestas para
mejorar los tres requerimientos restantes de los cuatros detallados por medio de la
observación.
Para validar con el personal de AprenRed los posibles cambios en la
plataforma Pl@tUM se mostraron de forma gráfica las mejoras para las consultas de
los requerimientos del primer objetivo y se logró presentar el módulo de inventario
totalmente operativo.
Mediante la interacción con los usuarios de la Dirección de AprenRed y con
la ayuda de la Coordinadora de logística y plataforma se percibió la necesidad de
crear la herramienta del Módulo de Inventario y mejorar los tres procesos de
consultas que observaron con pasos extras. Los usuarios aportaron información
43
realmente importante por lo cual se puede concluir que el objetivo del levantamiento
de información fue satisfactorio, ya que los usuarios conocían bien sus necesidades y
esto permitió recolectar información de calidad para elaborar las Propuestas de
Reingeniería a la Plataforma Educativa de la Universidad Metropolitana Pl@tUM 2.0
y queda a la espera de la dirección, en otra fase, la implementación de las propuestas.
44
RECOMENDACIONES
Para la UNIMET, Dirección AprenRed
• Unimet: Habilitar áreas de pruebas con los equipos tecnológicos necesarios
con el fin de generar un ambiente realista donde el pasante pueda aplicar los
conocimientos obtenidos en el aula.
• AprenRed: Continuar con el desarrollo del presente módulo de inventario de
materias registradas, ya que mediante éste podrán obtener el detalle de cada
materia registrada de forma rápida y efectiva, dando así pronta respuesta a las
necesidades administrativas que exige la institución.
Para la UNEFA:
• Fortalecer los estándares y documentos requeridos por la comunidad de
estudiantes para el desarrollo y documentación del período de Pasantías
Industriales, con la finalidad de ofrecer una mejor calidad a la hora de
presentar el informe de pasatías.
• Crear vínculos entre el Departamento de pasantías, entes gubernamentales y
las principales empresas del país a fin de facilitar el proceso de búsqueda de
oportunidades de pasantías para beneficiar a los futuros profesionales de ésta
casa de estudios.
45
REFERENCIAS BIBLIOGRÁFIAS
[1]. Aguaded y Cabero. (2002). Educar en red. Internet como recurso para la
educación. Málaga, España. Ediciones aljibe.
Balestrini, M. (2002). Como se elabora el Proyecto de Investigación, Caracas: BL
Consultores Asociados.
Deitel y Deitel. (2004). Cómo Programar en Java. Mexico. Pearson Edicación.
Flames, A. (2001). Como elaborar un trabajo de grado de enfoque cuantitativo para
optar a los títulos de TSU, Licenciado o equivalente, Especialista, Magíster y
Doctor. Calabozo. Fundación Abel Flames.
Flames A. (2003). Cómo elaborar un trabajo de grado de enfoque cuantitativo.
Editada por Ipasme. Segunda edición.
Gilfillan, I. (2005). La Bíblia de MySQL. Madrid, España. Editorial Anaya.
Hurtado de B., J. (2000). Metodología de la investigación Holística. Caracas,
Venezuela. Sypal.
Silva, J. (2006). Metodología de la investigación. Elementos básicos. Caracas,
Venezuela. Ediciones CO-BO.
Welling y Thompson.(2005). Desarrollo Web con PHP y MySQL. Madrid, España.
Editorial Anaya.
46
REFERENCIAS DE TRABAJOS Y TESIS DE GRADO
González y Pérez. (2009). Reingeniería al Sistema de Control de Archivos y
Correspondencia (SCAC) Implantado en la C.A. Energía Eléctrica de
Barquisimeto (ENELBAR). Informe de Pasantías. UNEFA. Lara.
Rodríguez, J. (2007). Desarrollo de Prototipo Funcional del Sistema para el Control
de Gestión en la Gerencia de Tecnología y Sistema de la Procuraduría
General de la República. Informe de Pasantías. UNEFA. Caracas.
Trigo, D. (2008). Desarrollo del Prototipo de un Sistema de Información con
Tecnología Web para General Motors Venezuela Caso: Clientes de
Camiones. Informe de Pasantías. UNEFA. Caracas.
47
REFERENCIAS ELECTRÓNICAS
Achour y cols. (2012). Manual de PHP. [Página Web en línea]. Disponible: http://php.net/manual/es/index.php Consulta: 14 de noviembre de 2011
Belizario, C. (2011). Introduccion a MySQL, [Página Web en línea]. Disponible: http://desphpparatodos.blogspot.com/2011/01/introduccion-mysql-dcl.html Consulta: 17 de diciembre de 2011
Cáceres, J. (2008). Diagramas de Casos de Uso, [Página Web en línea]. Disponible: http://www2.uah.es/jcaceres/capsulas/DiagramaCasosDeUso.pdf Consulta: 02 de febrero de 2012.
Centro Nacional de Tecnologías de Información. (s/f). Software Libre en Venezuela, [Página Web en línea]. Disponible: http://www.softwarelibre.gob.ve/index.php?option=com_content&view=article&id=68&Itemid=71 Consulta: 01 de febrero de 2012.
Ciberaula. (2010). Programación Orientada a Objetos, [Página Web en línea]. Disponible: http://www.ciberaula.com/articulo/tecnologia_orientada_objetos/ Consulta: 15 de diciembre de 2011
Giachetti y cols. (2008). Perfil UML y desarrollo dirigido por modelos: desafio y soluciones para la utilizar UML como lenguaje de modelado especifico de dominio, [Página Web en línea]. Disponible: http://www.sistedes.es/TJISBD/Vol-2/No-3/articles/DSDM-08-giachetti-pud.pdf Conulta: 02 de febrero de 2012.
Lefcovich, M. (2004). Reingeniería de Procesos, [Página Web en línea]. Disponible: http://www.gestiopolis.com/recursos3/docs/ger/reipromlefco.htm Consulta 20 de febrero de 2012
Mariño, A. (2010). Normas para la elaboración y presentación de los Trabajos de Grado, [Página Web en línea]. Disponible: http://asesores-unefa.wikispaces.com/NormasAPAyUPEL Consulta: 07 de febrero de 2012.
Molpeceres, A. (2002). Procesos de desarrollo: RUP, XP y FDD, [Página Web en línea]. Disponible: www.willydev.net/descargas/Articulos/General/cualxpfddrup.PDF Consulta 10 de diciembre de 2011
Rincón, J. (1998). Concepto de Sistema y Teoría General de Sistemas. [Página Web en línea]. Disponible: http://gepsea.tripod.com/sistema.htm Consulta: 10 de noviembre de 2011
48
Ventocilla, E. (1992). Reingeniería de Organizaciones. [Página Web en línea]. Disponible:http://www.dkvgroup.com/articulos/reingenieríadeorganizaciones.pdf Consulta: 14 de noviembre de 2011
49
ANEXOS
50
ANEXO A: ELEMENTOS DE LA BASE DE DATOS
51
Tabla Materia:
En esta tabla se almacenará todos los datos referente a las materias.
Cuadro Anexo A 1: Tabla Materia
Fuente: Autor (2012)
Relaciones de la Materia con las otras tablas del módulo de inventario:
• Tabla Modalidad. • Tabla Soporte. • Tabla NivelAcademico.
Información codificada en lenguaje SQL de la Tabla Materia.
-- ----------------------------------------------------- -- Table `platum`.`MATERIA` -- -----------------------------------------------------
52
CREATE TABLE IF NOT EXISTS `prueba`.`MATERIA` ( `ID_REGISTRO` INT(11) NOT NULL AUTO_INCREMENT , `NOMBREMATERIA` VARCHAR(50) NULL , `CODMATERIA` VARCHAR(10) NULL , `SECCION` INT(11) NULL , `ALUMNOS` INT(11) NULL , `PROFESOR` VARCHAR(35) NULL , `FECHA` DATE NULL , `MODALIDAD_ID_MODALIDAD` INT(11) NOT NULL , `SOPORTE_ID_SOPORTE1` INT(11) NOT NULL , `NIVELACADEMICO_ID_NIVEL` INT(11) NOT NULL , PRIMARY KEY (`ID_REGISTRO`, `MODALIDAD_ID_MODALIDAD`, `SOPORTE_ID_SOPORTE1`, `NIVELACADEMICO_ID_NIVEL`) , INDEX `fk_MATERIA_MODALIDAD1` (`MODALIDAD_ID_MODALIDAD` ASC) , INDEX `fk_MATERIA_SOPORTE1` (`SOPORTE_ID_SOPORTE1` ASC) , INDEX `fk_MATERIA_NIVELACADEMICO1` (`NIVELACADEMICO_ID_NIVEL` ASC) , CONSTRAINT `fk_MATERIA_MODALIDAD1` FOREIGN KEY (`MODALIDAD_ID_MODALIDAD` ) REFERENCES `prueba`.`MODALIDAD` (`ID_MODALIDAD` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_MATERIA_SOPORTE1` FOREIGN KEY (`SOPORTE_ID_SOPORTE1` ) REFERENCES `prueba`.`SOPORTE` (`ID_SOPORTE` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_MATERIA_NIVELACADEMICO1` FOREIGN KEY (`NIVELACADEMICO_ID_NIVEL` ) REFERENCES `prueba`.`NIVELACADEMICO` (`ID_NIVEL` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci;
53
Tabla Soporte:
En esta tabla se encuentran almacenados los datos de los usuarios de soporte.
Cuadro Anexo A 2: Tabla Soporte
Fuente: Autor (2012)
Relaciones de la tabla Soporte con otras tablas:
• Tabla Materia.
Información codificada en lenguaje SQL de la Tabla Soporte.
-- ----------------------------------------------------- -- Table `platum`.`SOPORTE` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `prueba`.`SOPORTE` ( `ID_SOPORTE` INT(11) NOT NULL AUTO_INCREMENT , `SOPORTE` VARCHAR(20) NULL , PRIMARY KEY (`ID_SOPORTE`) ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci;
54
Tabla Usuarios:
En esta tabla se encuentran almacenados los datos de los usuarios del sistema.
Cuadro Anexo A 3: Tabla Usuarios
Fuente: Autor (2012)
Relaciones de la tabla Usuarios con otras tablas:
• Tabla Materia. Información codificada en lenguaje SQL de la Tabla Usuarios. -- ----------------------------------------------------- -- Table `platun`.`USUARIOS` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `prueba`.`USUARIOS` ( `id_soporte` INT(11) NOT NULL AUTO_INCREMENT , `nombre` VARCHAR(45) NULL , `pass_js` VARCHAR(100) NULL , `pass_php` VARCHAR(100) NULL , `email` VARCHAR(100) NULL , `usuario` VARCHAR(10) NULL , `fecha` DATE NULL , PRIMARY KEY (`id_soporte`) ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci;
55
Tabla Modalidad:
En esta tabla se encuentran almacenados los datos de las distintas modalidades de
estudio.
Cuadro Anexo A 4: Tabla Modalidad
Fuente: Autor (2012)
Relaciones de la tabla Modalidad con otras tablas:
• Tabla Materia.
Información codificada en lenguaje SQL de la Tabla Modalidad. -- ----------------------------------------------------- -- Table `platum`.`MODALIDAD` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `prueba`.`MODALIDAD` ( `ID_MODALIDAD` INT(11) NOT NULL AUTO_INCREMENT , `NOMBREMODALIDAD` VARCHAR(25) NULL , PRIMARY KEY (`ID_MODALIDAD`) ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci;
56
Tabla Nivel Académico:
En esta tabla se encuentran almacenados los datos de las distintas niveles de estudio.
Cuadro Anexo A 5: Nivel Académico
Fuente: Autor (2012)
Relaciones de la tabla Nivel Académico con otras tablas:
• Tabla Materia.
Información codificada en lenguaje SQL de la Tabla Nivel Académico. -- ----------------------------------------------------- -- Table `platum`.`NIVELACADEMICO` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `prueba`.`NIVELACADEMICO` ( `ID_NIVEL` INT(11) NOT NULL AUTO_INCREMENT , `NIVEL` VARCHAR(25) NULL , PRIMARY KEY (`ID_NIVEL`) ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci;
57
Tabla BD Platum
Cuadro Anexo A 6: BD Platum con todas sus tablas
Fuente: Autor (2012)
BD: Platum
58
ANEXO B: DIAGRAMAS Y DOCUMENTOS DE CASOS DE USO
59
Diagrama de Flujo del Proceso Inscripción en Pl@tUM.
Gráfico Anexo B 1: Diagrama de Actividad Proceso de Inscripción
Fuente: Autor (2012)
60
Diagramas de Actividades
• Diagrama de Actividad Registrar Materia: En este diagrama de actividad
se observan las actividades que se ejecutaran al momento que un usuario de
soporte realiza el registro de la materia.
Gráfico Anexo B 2: Diagrama de Actividad Registrar Materia
Fuente: Autor (2012)
61
• Documento Caso de Uso Registrar Materia: Permite al usuario de soporte
de la plataforma acceder al sistema de control de inventario para registrar la
materia así como el detalle de la misma.
Cuadro Anexo B 1: Vista del Documento de Casos de Uso Registrar materia
Fuente: Autor (2012)
Nombre: Registrar detalle de Materia /CU 1 Autor: Enrique Milano Fecha:
Descripción: Describe el proceso de realizar el Registro de las materias de una manera detallada Actores: Personal de soporte de la Dirección de AprenRed Precondiciones: El usuario debe haberse logeado en el sistema.
Flujo Normal:
5. El actor pulsa sobre el botón para registrar una nueva materia. 6. El sistema muestra una serie de campos de texto identificados para introducir
el detalle de la materia a registrar. 7. El actor da un clic en el botón cargar. 8. El sistema comprueba la validez de los datos y los almacena.
Flujo Alternativo: El sistema comprueba la validez de los datos, si los datos no son correctos no permite el registro de la materia. Postcondiciones: El sistema envía un mensaje conformando que la materia ha sido registrada.
62
• Diagrama de Caso de Uso Registrar Materia: Permite al usuario de soporte
de la plataforma acceder al sistema de control de inventario para registrar la
materia así como el detalle de la misma.
Gráfico Anexo B 3: Diagrama de Caso de Uso Actividad Registrar Materia
Fuente: Autor (2012)
63
• Diagrama de Actividad Consultar Inventario: En este diagrama de
actividad se observan las actividades que se ejecutaran al momento que un
usuario de soporte realiza una consulta de las materias registradas.
Gráfico Anexo B 4: Diagrama de Actividad Consultar Inventario
Fuente: Autor (2012)
64
• Documento Caso de Uso Consultar Inventario: Permite al usuario de
soporte consultar detalladamente las materias registradas.
Cuadro Anexo B 2: Vista del Documento de Casos de Uso Consultar Inventario
Fuente: Autor (2012)
Nombre: Consultar Inventario /CU 2 Autor: Enrique Milano Fecha: Descripción: Permite al usuario de soporte consultar detalladamente las materias registradas por nivel académico, modalidad y el usuario que realizó el registro de cada materia. Actores: Personal de soporte de la Dirección de AprenRed Precondiciones: El usuario debe haberse logeado en el sistema.
Flujo Normal: 5. El actor pulsa sobre el botón para realizar una consulta. 6. El sistema muestra tres botonoes para realizar dos tipos de consulta. 7. El actor selecciona por medio de dos botones la consulta que desea realizar. 8. El sistema comprueba la validez de los datos y hace la consulta a la BD. Flujo Alternativo: El sistema comprueba el tipo de consulta, si no existen registros en la BD el sistema indica que existen 0 registros.
Postcondiciones: El sistema muestra en pantalla el detalle de la consulta realizada.
65
• Documento Caso de Uso Consultar Inventario: Permite al usuario de
soporte consultar detalladamente las materias registradas.
Gráfico Anexo B 5: Diagrama de Caso de Uso Consultar Inventario
Fuente: Autor (2012)
66
• Diagrama de Actividad Generar Documento en formato PDF: En este
diagrama de actividad se observan las actividades que se ejecutaran al
momento de generar una consulta que se muestra en un documento formato
pdf por parte de un usuario de soporte.
Gráfico Anexo B 6: Diagrama de Actividad Generar Documento formato PDF
Fuente: Autor (2012)
67
• Documento Caso de Uso Generar Documentos en formato PDF: Permite
al usuario de soporte generar en formato pdf las consultas realizadas.
Cuadro Anexo B 3: Vista del Documento Caso de Uso Generar Documento formato PDF
Fuente: Autor (2012)
Nombre: Generar PDF de materias Registradas / CU3 Autor: Enrique Milano Fecha: Descripción: Permite al usuario de soporte generar un documento portable (pdf) que bien puede usar para almacenar, imprimir o enviar por por correo electrónico, entre otros. Actores: Personal de soporte de la Dirección de AprenRed Precondiciones: El usuario debe haberse logeado en el sistema.
Flujo Normal: 9. El actor pulsa sobre el botón para realizar otras consultas. 10. El sistema muestra tres botones para las opciones del documento PDF. 11. El actor selecciona por medio de dos botones las opciones que desea para el
documento PDF y da clic en el botón Generar PDF. 12. El sistema comprueba la validez de los datos y hace la consulta a la BD.
Flujo Alternativo: El sistema comprueba el tipo de consulta, si no existen registros en la BD el sistema muestra el documento PDF sin registros.
Postcondiciones: El sistema genera un documento PDF
68
• Diagrama Caso de Uso Generar Documentos en formato PDF: Permite al
usuario de soporte generar en formato pdf las consultas realizadas.
Gráfico Anexo B 7: Diagrama de Caso de Uso Consultar Inventario
Fuente: Autor (2012)
69
• Diagrama de Actividad Total Materias Registradas: En este diagrama de
actividad se observan las actividades que se ejecutaran al momento de generar
una consulta para ver el número de materias registradas por modalidad por
parte de un usuario de soporte.
Gráfico Anexo B 8: Diagrama de Actividad Total Materias Registradas
Fuente: Autor (2012)
70
• Documento Caso de Uso Total Materias Registradas: Permite al usuario de
soporte consultar el número de materias registradas por nivel académico.
Cuadro Anexo B 4: Vista del Documento de Caso de Uso Total Materias Registradas.
Fuente: Autor (2012)
Nombre: Total Materias Registradas / CU4 Autor: Enrique Milano Fecha: Descripción: Permite al usuario de soporte consultar el número de materias registradas por nivel académico detanllando la cantidad por modalidad Actores: Personal de soporte de la Dirección de AprenRed Precondiciones: El usuario debe haberse logeado en el sistema.
Flujo Normal: 13. El actor pulsa sobre el botón para realizar otras consultas. 14. El sistema muestra dos botones para realizar la consulta. 15. El actor selecciona por medio de un botón el nivel académico que desea consultar y
da clic en el botón mostrar. 16. El sistema comprueba la validez de los datos y hace la consulta a la BD.
Flujo Alternativo: El sistema comprueba el tipo de consulta, si no existen registros en la BD el sistema muestra cero (0) registros.
Postcondiciones: El sistema muestra en pantalla de forma numérica la cantidad de materias registradas
71
ANEXO C: DIAGRAMA DE GANTT
72
Cuadro Anexo C 1: Diagrama de Gantt
Fuente: Autor (2012)
73
ANEXO D: PANTALLAS DEL SISTEMA
74
Gráfico Anexo D 1: Pantalla de Validación al Sistema (Usuario y Clave)
Fuente: Autor (2012).
Gráfico Anexo D 2: Pantalla de Principal donde aparece el menú principal
Fuente: Autor (2012).
75
Gráfico Anexo D 3: Pantalla del menú Registrar Materia
Fuente: Autor (2012).
Gráfico Anexo D 4: Pantalla del menú Consultar Inventario
Fuente: Autor (2012).
76
Gráfico Anexo D 5: Pantalla del menú Consultar Inventariocon con el detalle de la consulta
Fuente: Autor (2012).
Gráfico Anexo D 6: Pantalla del menú Otras Consultas – Opción Generar PDF de materias
Registradas
Fuente: Autor (2012).
77
Gráfico Anexo D 7: Pantalla del menú Otras Consultas – Total Materias Registradas. Fuente:
Autor (2012).
Gráfico Anexo D 8: Pantalla del menú Otras Consultas – Total Materias Registradascon el detalle.
Fuente: Autor (2012).
78
Cuadro Anexo D 1: Documento generado en formato PDF
Fuente: Autor (2012).
79
Gráfico Anexo D 9: Pantalla Modelo Consultar Profesores
Fuente: Plataforma Pl@tUM (2012).
Gráfico Anexo D 10: Pantalla Modelo propuesta Consultar Profesores
Fuente: Autor (2012).
80
ANEXO E: MANUAL GENERAL DEL SISTEMA
81
Manual de Inventario de materias Registradas en Pl@tUM 2.0
82
Febrero de 2012 Elaborado por: Enrique J. Milano C.
I. Introducción
El presente manual trata de explicar de una manera detallada y sencilla el uso de
la herramienta de control de Inventario de las materias registradas en la plataforma
Pl@tUM 2.0
1. Objetivo:
Ofrecer al usuario de una manera visual los pasos que debe seguir para el buen
uso y desempeño de la herramienta.
2. Requerimientos:
Se requiere de un equipo de escritorio básico con conexión a la red que disponga
de los navegadores Internet Explorer 5.0 o posterior, Mozilla Firefox 3.0 o superior y
otros. Además de un programa lector de documentos PDF a gusto del usuario.
83
Febrero de 2012 Elaborado por: Enrique J. Milano C.
Para ingresar al sistema el usuario debe tener permisos de acceso de lo contrario no podrá hacer uso de la herramienta.
Ingresa el nombre de usuario Ingresa la clave
Si el usuario da clic en enviar sin colocar alguno de los datos anteriores el sistema muestra en pantalla los siguientes mensajes:
no ingresa usuario
no ingresa clave
Cuando se ingresa usuario y clave pero no está autorizado para ingresar al sistema, éste muestra el siguiente mensaje:
Acceso al Sistema
84
Febrero de 2012 Elaborado por: Enrique J. Milano C.
Una vez que el usuario inicia sesión el sistema muestra la siguiente pantalla:
En este punto el usuario puede navegar por las distintas opciones que muestra el sistema, además se indica el nombre de dicho usuario que ha ingresado.
Acceso al Sistema
85
Febrero de 2012 Elaborado por: Enrique J. Milano C. Contenido de la pestaña Registrar Materia.
En ésta opción el usuario ingresa los detalles de la materia.
1. En el campo de texto Nombre de la Materia: Ingresa el nombre de la materia. 2. En el campo de texto Cód. Materia: Ingresa el código de la materia. 3. En el campo numérico Sección: Ingresa el número de la sección. 4. En el campo numérico Alumnos: Ingresa la cantidad de alumnos de la
sección. 5. En el campo de texto Nombre del Profesor: Ingresa el nombre del profesor. 6. En el campo de selección Nivel Académico: Se despliegan todos los niveles. 7. En el campo de selección Modalidad: Se despliegan las modalidades de la
materia. 8. En el campo Fecha: Se agrega la fecha de registro automáticamente 9. En el campo de selección Realizado por: Selecciona el usuario de soporte
encargado del registro de la materia 10. Botón Cargar: Ingresa los datos en la Base de datos. 11. Si los datos son ingresados correctamente el sistema mostrará un mensaje en
pantalla.
1. Pestaña Registrar Materia
86
Febrero de 2012 Elaborado por: Enrique J. Milano C.
Mensaje en pantalla de la opción Registrar Materia
El sistema verifica que los datos sean ingresados en la BD sin ningún problema y envía un mensaje en pantalla que dice: “Se ha registrado correctamente la materia”
1. 1 Mensaje Pestaña Registrar Materia
87
Febrero de 2012 Elaborado por: Enrique J. Milano C.
En ésta opción el sistema permite ver las materias detalladamente según el encabezado de la línea de color gris. Existen dos modalidades de consulta:
1. Nivel Académico + Modalidad 2. Modalidad + Soporte
1.2.Nivel Académico + Modalidad:
El usuario selecciona el nivel académico a consultar y el tipo de modalidad (Todas, presencial, semipresencial, virtual).
1.1.Modalidad + Soporte:
El usuario selecciona el tipo de modalidad y selecciona el usuario de soporte para ver que materias ha registrado dio usuario de soporte.
2. Pestaña Consultar Inventario
88
Febrero de 2012 Elaborado por: Enrique J. Milano C.
El sistema muestra el resultado de la opción de consulta Nivel Académico + Modalidad
Para el ejemplo se hizo una selección del nivel académico Pregrado en modalidad Virtual. Se puede ver claramente los nombres de las materias encontradas en la opción de consulta antes mencionada así como el número de materias registradas en dicha consulta.
2.1 Resultado de la consulta / Pestaña Consultar
89
Febrero de 2012 Elaborado por: Enrique J. Milano C.
El sistema muestra el resultado de la opción de consulta Modalidad + Soporte
Para el ejemplo se hizo una selección de la modalidad Presencial + soporte emilano. En este apartado se quiere saber las materias que ha registrado el usuario de soporte emilano en sus modalidades presencial, semipresencial, virtual o todas las materias Se puede ver claramente el resultado de la consulta seleccionada así como el número de materias registradas por el usuario de soporte emilano.
2.2 Resultado de la consulta / Pestaña Consultar
90
Febrero de 2012 Elaborado por: Enrique J. Milano C.
En esta opción el usuario puede realizar dos tipos de actividades.
1. Opción: Generar documento en formato PDF como resultado de realizar una consulta del nivel académico y modalidad.
El usuario debe seleccionar el nivel académico a consultar y combinarlo con la modalidad, una vez seleccionadas las dos opciones debe dar clic en el botón Generar PDF para que el sistema genere de forma automática el documento portable.
3. Pestaña Otras Consultas
91
Febrero de 2012 Elaborado por: Enrique J. Milano C.
2. Opción: Ver las materias registradas de forma numérica del nivel académico.
En ésta opción el usuario puede saber el total de materias registradas por nivel académico, el sistema muestra el total de las materias registradas y detalla la cantidad registrada en la modalidad presencial, semipresencial y virtual.
4. Pestaña Otras Consultas
92
Febrero de 2012 Elaborado por: Enrique J. Milano C.
Permite al usuario salir del sistema
Una vez realizadas todas las actividades el usuario da clic en la pestaña salir para cerrar la sesión. El sistema mostrara un aviso en pantalla para indicarle al usuario que ha salido correctamente del sistema.
5. Pestaña Salir
93
ANEXO F: CODIFICACIÓN
94
Plantilla con los estilos utilizados en CSS <!-- /******************************************/ /* Desarrollador: Enrique José Milano Camacho */ /* Objetivo: Plantilla del menú principal */ /* Fecha: 15/02/2012 */ /******************************************/ --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link href='..//favicon.ico' rel='icon' type='image/vnd.microsoft.icon'/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Control de Inventario Pl@tUM 2</title> <style type="text/css"> <!-- body { font: 100% Verdana, Arial, Helvetica, sans-serif; background: #666666; margin: 0; padding: 0; text-align: center; color: #000000; background-color: #FFF; background-image: url(); background-repeat:repeat-y; } .oneColElsCtrHdr #container { width: 60em; background: #FFFFFF;
95
margin: auto; border: 1px solid #999999; text-align: center; /* esto anula text-align: center en el elemento body. */ } .oneColElsCtrHdr #header { padding: 0 10px 0 20px; /* este relleno coincide con la alineación izquierda de los elementos de los divs que aparecen bajo él. Si se utiliza una imagen en el #header en lugar de texto, es posible que le interese quitar el relleno. */ background-color: #06F; } .oneColElsCtrHdr #header h1 { margin: 0; /* el ajuste en cero del margen del último elemento del div de #header evita la contracción del margen (un espacio inexplicable entre divs). Si el div tiene un borde alrededor, esto no es necesario, ya que también evita la contracción del margen */ padding: 10px 0; /* el uso de relleno en lugar de margen le permitirá mantener el elemento alejado de los bordes del div */ } .oneColElsCtrHdr #mainContent { padding: 0 20px; /* recuerde que el relleno es el espacio situado dentro del cuadro div y que el margen es el espacio situado fuera del cuadro div */ background: #09F; } .oneColElsCtrHdr #footer { padding: 0 10px; background-color: #0456A0; } .oneColElsCtrHdr #footer p { margin: 0; /* el ajuste en cero de los márgenes del primer elemento del pie evitará que puedan contraerse los márgenes (un espacio entre divs) */ padding: 10px 0; /* el relleno de este elemento creará espacio, de la misma forma que lo haría el margen, sin el problema de la contracción de márgenes */ } body,td,th {
96
font-size: 14px; font-family: Arial, Helvetica, sans-serif; font-style: normal; font-weight: bold; } </style> <style type="text/css"> <!-- a:link { text-decoration: none; } a:visited { text-decoration: none; } a:hover { text-decoration: none; } a:active { text-decoration: none; } --> </style> <link href="../CCS/clases.css" rel="stylesheet" type="text/css" /> <style type="text/css"> <!-- .Estilo7 { font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 15px; font-style: italic; color: #FFFFFF; } .Estilo8 {
97
font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px; font-style: italic; font-weight: bold; color: #FFFFFF; } --> </style> </head> <body class="oneColElsCtrHdr"> <br /> <br /> <div id="container" > <table width="802" border="0" align="center"> <tr> <td width="796" height="53"><div align="right"> <div align="right"> <div align="right"><img src="../imagenes/platumLogoHeader.jpg" alt="logo" width="163" height="29" /></div> </div> </div></td> </tr> </table> <table width="647" border="0" align="center" bordercolor="#FFFFFF" bgcolor="#FFFFFF"> <tr> <td width="98" bordercolor="#0456A0" bgcolor="#003B7B"><div align="center"><span class="Estilo8"><a href="../menu.php" style="text-decoration: none;"><font color="white">Inicio</font></a></span></div></td> <td width="1" bgcolor="#FFFFFF"> </td> <td width="108" bordercolor="#0456A0" bgcolor="#003B7B"><div align="center"><span class="Estilo8"><a href="../formularios/registrarMateria.php" style="text-decoration: none;"><font color="white">Registrar
98
Materia</font></a></span></div></td> <td width="1" bordercolor="#0456A0" bgcolor="#FFFFFF"> </td> <td width="110" bordercolor="#0456A0" bgcolor="#003B7B"><span class="Estilo8"><a href="../consultas/consultarInventario.php" style="text-decoration: none;"><font color="white">Consultar Inventario</font></a></span></td> <td width="1" bordercolor="#0456A0" bgcolor="#FFFFFF"> </td> <td width="98" bordercolor="#0456A0" bgcolor="#003B7B"><div align="center"><span class="Estilo8"><a href="../consultas/consultapdf.php" style="text-decoration: none;"><font color="white">Otras Consultas</font></a></span></div></td> <td width="1" bordercolor="#0456A0" bgcolor="#FFFFFF"> </td> <td width="98" bordercolor="#0456A0" bgcolor="#003B7B"><div align="center"><span class="Estilo8"><a href="../logout.php" style="text-decoration: none;"><font color="white">Salir</font></a></span></div></td> </tr> </table> <p> </p> <!-- TemplateBeginEditable name="Registro" --> <p><br /> </p> <p> </p> <!-- TemplateEndEditable --> <div id="footer" align="center"> <p class="fuente_pie_pagina Estilo7"><strong>Inventario de Materias de Pl@tUM</strong></p> <!-- end #footer --></div> <!-- end #container --></div> </body> </html>
99
Código PHP para ingresar al Sistema – Inicio de sesión <!-- /******************************************/ /* Desarrollador: Enrique José Milano Camacho */ /* Objetivo: Validar Usuario y clave para poder */
/* iniciar sesión e ingresar al sistema */ /* Fecha: 15/02/2012 */ /******************************************/
--> <?php require_once("class/class.php"); if(isset($_POST["grabar"]) and $_POST["grabar"]=="si") { $t= new Trabajo(); $t->logueo(); exit; } ?> <!DOCTYPE html> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script language="javascript" type="text/javascript" src="js/md5.js"> </script> <script language="javascript" type="text/javascript" src="js/funciones.js"> </script> <title>Inicio de Sesión</title> <style type="text/css"> <!-- .Estilo1 { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; } .Estilo2 { font-family: Verdana, Arial, Helvetica, sans-serif;
100
font-weight: normal; font-size: 8%; font-style: italic; } .Estilo4 {color: #FF9900} .Estilo6 { font-family: Arial, Helvetica, sans-serif; font-size: 12px; } .Estilo7 { font-size: 11px; font-weight: bold; } .Estilo8 {font-family: Verdana, Arial, Helvetica, sans-serif} .Estilo11 { font-size: 14px; font-style: italic; font-weight: bold; font-family: Arial, Helvetica, sans-serif; } --> </style> </head> <body onLoad="limpiar_logueo();actualizaReloj()"> <p align="center"> </p> <p align="center"><img src="imagenes/loginHeader.jpg" width="538" height="125" align="texttop"></p> <div align="center"><img src="imagenes/barra.jpg" width="550" height="9"> </div> <table width="200" border="0" align="center"> <tr> <td><form name="form" action="index.php" method="post"> <table width="400" align="center"> <tr>
101
<td valign="top" align="center" colspan="2"> <span class="Estilo11"> Ingrese sus d<span class="Estilo4">@</span>tos</span> <hr align="center" /> </td> </tr> <tr> <td colspan="2" align="rigth" valign="top" bgcolor="#FFFFFF"><div align="center"> <table width="200" border="0"> <tr> <td><div align="center"><span class="Estilo6"><strong>Usuario</strong></span></div></td> </tr> <tr> <td class="Estilo1"><div align="center"> <input name="user" type="text" id="user" size="10" maxlength="10"> </div></td> </tr> <tr> <td class="Estilo7 Estilo8"><div align="center" class="Estilo6">Clave</div></td> </tr> <tr> <td class="Estilo1"><div align="center"> <input name="pass" type="password" id="pass" size="10" maxlength="10"> </div></td> </tr> </table> </div></td> </tr> <tr> <td colspan="2" align="rigth" valign="top" bgcolor="#FFFFFF"><div align="center"> <input type="hidden" name="grabar" value="si"/>
102
<input type="button" name="entrar" id="entrar" value="Entrar" onClick="validar_logueo();"> </div></td> <hr /> </tr> </table> </form> </td> </tr> </table> <p> </p> <table width="310" border="0" align="center" class="Estilo2"> <tr> <td class="Estilo1" id="Fecha_Reloj"><div align="right"></div></td> </tr> </table> <p> </p> <table border=0 cellpadding=0 cellspacing=0> <tr> <td id="Fecha_Reloj"></td> </tr> </table> </body> </html>
103
Código PHP del menú del sistema <!--
/******************************************/ /* Desarrollador: Enrique José Milano Camacho */ /* Objetivo: Mostrar el menú con las distintas */
/* opciones a trabajar */ /* Fecha: 15/02/2012 */ /******************************************/
--> <?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/Plantilla.dwt" codeOutsideHTMLIsLocked="false" --> <head> <link href='favicon.ico' rel='icon' type='image/vnd.microsoft.icon'/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Control de Inventario Pl@tUM 2</title> <style type="text/css"> <link href="CCS/clases.css" rel="stylesheet" type="text/css" /> <style type="text/css"> <!-- .Estilo7 { font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 15px; font-style: italic; color: #FFFFFF; } .Estilo8 { font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px;
104
font-style: italic; font-weight: bold; color: #FFFFFF; } --> </style> </head> <body class="oneColElsCtrHdr"> <br /> <br /> <div id="container" > <table width="802" border="0" align="center"> <tr> <td width="796" height="53"><div align="right"> <div align="right"> <div align="right"><img src="imagenes/platumLogoHeader.jpg" alt="logo" width="163" height="29" /></div> </div> </div></td> </tr> </table> <table width="647" border="0" align="center" bordercolor="#FFFFFF" bgcolor="#FFFFFF"> <tr> <td width="98" bordercolor="#0456A0" bgcolor="#003B7B"><div align="center"><span class="Estilo8"><a href="menu.php" style="text-decoration: none;"><font color="white">Inicio</font></a></span></div></td> <td width="1" bgcolor="#FFFFFF"> </td> <td width="108" bordercolor="#0456A0" bgcolor="#003B7B"><div align="center"><span class="Estilo8"><a href="formularios/registrarMateria.php" style="text-decoration: none;"><font color="white">Registrar Materia</font></a></span></div></td> <td width="1" bordercolor="#0456A0" bgcolor="#FFFFFF"> </td>
105
<td width="110" bordercolor="#0456A0" bgcolor="#003B7B"><span class="Estilo8"><a href="consultas/consultarInventario.php" style="text-decoration: none;"><font color="white">Consultar Inventario</font></a></span></td> <td width="1" bordercolor="#0456A0" bgcolor="#FFFFFF"> </td> <td width="98" bordercolor="#0456A0" bgcolor="#003B7B"><div align="center"><span class="Estilo8"><a href="consultas/consultapdf.php" style="text-decoration: none;"><font color="white">Otras Consultas</font></a></span></div></td> <td width="1" bordercolor="#0456A0" bgcolor="#FFFFFF"> </td> <td width="98" bordercolor="#0456A0" bgcolor="#003B7B"><div align="center"><span class="Estilo8"><a href="logout.php" style="text-decoration: none;"><font color="white">Salir</font></a></span></div></td> </tr> </table> <p> </p> <!-- InstanceBeginEditable name="Registro" --> <p align="center"><span style="font-style: italic; font-weight: bold; font-family: Arial, Helvetica, sans-serif; font-size: 12px">Control de Inventario de Materias registradas por trimestre</span></p> <p align="center" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px"><span style="font-style: italic">Personal de Soporte de la Plataforma</span><span style="font-style: italic; font-weight: bold"> Pl<span style="color: #FF6600">@</span>tUM</span><?php require_once("class/class.php"); if (isset($_SESSION["sesion"])) { $t= new Trabajo(); $nom=$t->saluda_al_usuario($_SESSION["sesion"]); ?></p> <table width="246" border="0" align="center"> <tr> <td width="240" style="font-family: Arial, Helvetica, sans-serif"><p style="font-size: 12px; color: #999999"><span style="font-style: italic; font-weight: bold">
106
<span style="font-style: italic; font-size: 12px; color: #000000">Bienvenid</span><span style="font-size: 12px; color: #FF6600">@:</span> <?php echo "".$nom[0][nombre].""; ?> </span></p></td> </tr> </table> </p> <!-- InstanceEndEditable --> <div id="footer" align="center"> <p class="fuente_pie_pagina Estilo7"><strong>Inventario de Materias de Pl@tUM</strong></p> <!-- end #footer --></div> <!-- end #container --></div> </body> <!-- InstanceEnd --></html> <?php } else { echo " <script language='javascript' type='text/javascript'> alert('Debe loguearse para ver este contenido'); window.location='index.php'; </script> "; } ?>
107
Código PHP de la pantalla que hace el registro de la materia <!--
/************************************************/ /* Desarrollador: Enrique José Milano Camacho */ /* Objetivo: Ingresar los siguientes datos de la materia: */
/* nombre, código, sección, alumnos, modalidad, nivel */ /* Fecha, soporte, profesor */
/* Fecha: 15/02/2012 */ /************************************************/
--> <form id="form1" name="form1" method="post" action="registrarMateria.php"> <?php include("..//conectar_bd.php"); //session_start(); $num= $_POST['num']; $nombremateria= $_POST['nombremateria']; $codmateria= $_POST['codmateria']; $seccion= $_POST['seccion']; $alumnos= $_POST['alumnos']; $modalidad= $_POST['modalidad']; $nivelacademico= $_POST['nivelacademico']; $fecha= $_POST['fecha']; $soporte= $_POST['soporte']; $profesor= $_POST['profesor']; if($nombremateria!="") { $a = array('á', 'é', 'í', 'ó', 'ú', 'ñ'); $b = array('Á', 'É', 'Í', 'Ó', 'Ú', 'Ñ'); $_POST['codmateria']=strtoupper(str_ireplace($a, $b, $_POST['codmateria'])); require_once("../funciones/insertarDB.php"); $sql="SELECT MAX(id_registro) FROM materia"; //recupero el ultimo numero de registro para sumarle 1 if($query=mysql_query($sql)) {
108
while ($row=mysql_fetch_array($query)) { $num=$row[0] + 1; } } $nombre=""; } else { { $sql="SELECT MAX(id_registro) FROM materia"; //recupero el ultimo numero de registro para sumarle 1 if($query=mysql_query($sql)) { while ($row=mysql_fetch_array($query)) { $num=$row[0] + 1; } } } } ?> <table width="323" border="0" align="center"> <tr> <td width="460"><div align="right"> <p align="center"><span style="font-weight: bold; font-style: italic">Registro </span><span style="font-style: italic"><strong> de Materias</strong></span></p> </div></td> </tr> </table> <table width="778" border="0" align="center" bordercolor="#FFFFFF" bgcolor="#FFFFFF"> <tr bordercolor="#FFFFFF" bgcolor="#999999"> <td width="919" bgcolor="#999999"> <div align="center"> <table width="772" border="0" align="center" bgcolor="#0456A0"> <tr> <td width="346" height="36"><div align="right" style="font-size: 12px; font-family: Arial, Helvetica, sans-serif"><span class="Estilo4" style="font-weight: bold; font-style: italic; color: #FFFFFF; font-size: 12px">Nombre de la Materia</span><span style="font-weight: bold; font-style: italic; color: #FFFFFF; font-size: 12px">:</span>
109
<input type="text" name="nombremateria" id="nombremateria" value="<?php echo($nombremateria); ?>" /> </div></td> <td width="346"><div align="right" style="font-size: 12px; font-family: Arial, Helvetica, sans-serif"><span class="Estilo4" style="color: #FFFFFF; font-weight: bold; font-style: italic; font-size: 12px">Cód Materia:</span> <input type="text" name="codmateria" id="codmateria" value="<?php echo($codmateria); ?>"/> </div></td> <td width="66"> </td> </tr> <tr> <td height="39"><div align="right" style="font-size: 12px; font-family: Arial, Helvetica, sans-serif"><span class="Estilo4" style="color: #FFFFFF; font-weight: bold; font-style: italic; font-size: 12px">Sección:</span> <input type="text" name="seccion" id="seccion" value="<?php echo($seccion); ?>"/> </div></td> <td><div align="right" style="color: #FFFFFF; font-weight: bold; font-style: italic; font-size: 12px; font-family: Arial, Helvetica, sans-serif"><span class="Estilo4" style="font-size: 12px">Alumnos:</span> <input type="text" name="alumnos" id="alumnos" value="<?php echo($alumnos); ?>"/> </div></td> <td> </td> </tr> <?php $fecha=date("Y/m/d"); ?> <tr> <td height="39"><div align="right" style="font-size: 12px; font-family: Arial, Helvetica, sans-serif"><span class="Estilo4" style="color: #FFFFFF; font-weight: bold; font-style: italic; font-size: 12px">Nombre del Profesor:</span> <input type="text" name="profesor" id="profesor" value="<?php echo($profesor); ?>"/> </div></td> <td><div align="right" style="color: #FFFFFF; font-weight: bold; font-style: italic; font-size: 12px; font-family: Arial, Helvetica, sans-serif"><span class="Estilo4" style="font-size: 12px">Nivel Académico</span><span style="font-size: 12px">:</span> <select name="nivelacademico" id="nivelacademico"> <option value="0">Seleccione Nivel</option> <?php require_once("../funciones/nivelAcademico.php"); ?> </select>
110
</div></td> <td> </td> </tr> <tr> <td height="39"><div align="right" style="font-weight: bold; font-style: italic; color: #FFFFFF; font-size: 12px; font-family: Arial, Helvetica, sans-serif"><span class="Estilo4" style="font-size: 12px">Modalidad</span><span style="font-size: 12px">: </span> <select name="modalidad" id="modalidad"> <option value="0">Modalidad</option> <?php require_once("../funciones/nombreModalidad.php"); ?> </select> </div></td> <td><div align="right" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #FFFFFF; font-weight: bold; font-style: italic"><span class="Estilo4"><span style="font-size: 12px">Fecha:</span> <input name="fecha" type="text" id="fecha" value="<?php echo($fecha); ?>" size="11" readonly="readonly"/> </span> </div></td> <td> </td> </tr> <tr> <td height="39"><div align="right" style="font-weight: bold; font-style: italic; color: #FFFFFF; font-size: 12px; font-family: Arial, Helvetica, sans-serif"><span class="Estilo4" style="font-size: 12px">Realizado por:</span> <select name="soporte" id="soporte"> <option value="0">Soporte</option> <?php require_once("../funciones/soporte.php"); ?> </select> </div></td> <td><div align="right"><span style="font-size: 12px; font-style: italic; color: #FFFFFF">Próximo registro:</span> <input name="num" type="text" id="num" value="<?php echo($num); ?>" size="1" readonly="readonly" /> </div></td> <td> </td> </tr> </table> <p> <input type="submit" name="cargar" id="cargar" value="Cargar" />
111
</p> </div> <div align="center"></div> </td> </tr> </table> <table width="778" border="0"> <tr> <td><span class="Estilo6" style="color: #333"> <?php if(($insert)==TRUE) { echo '<script type="text/javascript"> alert("Se ha registrado correctamente la materia '. $_POST['nombremateria'].'"); </script>'; //echo "Se ha Registrado correctamente la Materia"," ",$_POST['nombremateria']; echo "<META HTTP-EQUIV='refresh' CONTENT='1; URL=$PHP_SELF'>"; } ?> </span></td> </tr> </table> <p> <?php require_once("../class/class.php"); if (isset($_SESSION["sesion"])) { $t= new Trabajo(); $nom=$t->saluda_al_usuario($_SESSION["sesion"]); ?> </p> <table width="200" border="0" align="center"> <tr> <td> <p style="font-size: 12px; font-family: Arial, Helvetica, sans-serif; color: #999999"><span style="font-style: italic; font-weight: bold"> <?php echo "".$nom[0][nombre].""; ?> </span></p> </td> </tr> </table>
112
</p> </form> <!-- InstanceEndEditable --> <div id="footer" align="center"> <p class="fuente_pie_pagina Estilo7"><strong>Inventario de Materias de Pl@tUM</strong></p> <!-- end #footer --></div> <!-- end #container --></div> </body> <!-- InstanceEnd --></html> <?php } else { echo " <script language='javascript' type='text/javascript'> alert('Debe loguearse para ver este contenido'); window.location='../index.php'; </script> "; } ?>
113
Código PHP del menú Consultar Inventario <!-- /************************************************/ /* Desarrollador: Enrique José Milano Camacho */ /* Objetivo: Consultar el detalle de las materias registradas*/
/* según el nivel académico, modalidad y soporte */ /* Fecha: 15/02/2012 */ /************************************************/ --> <?php session_start();?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <form id="form" name="form" method="post" action="consultarInventario.php"> <?php include("..//conectar_bd.php"); $modalidad= $_POST['modalidad']; $nivelacademico= $_POST['nivelacademico']; $soporte= $_POST['soporte']; ?> <table width="323" border="0" align="center"> <tr> <td width="460"><div align="right"> <p align="center"><span style="font-weight: bold; font-style: italic">Detalle de Materias Registradas</span></p> </div></td> </tr> </table> <table width="808" height="51" border="0" align="center" bordercolor="#72879A" bgcolor="#72879A"> <tr> <td width="752" bordercolor="1" bgcolor="#0456A0" class="Estilo2">
114
<table width="779" border="0" align="left"> <tr> <td width="249" class="" style="font-size: 13px; color: #FFFFFF">Nivel Academico <select name="nivelacademico" id="nivelacademico"> <option value="0">Seleccione Nivel</option> <?php require_once("../funciones/nivelAcademico.php"); ?> </select></td> <td width="250"><span style="font-size: 13px; color: #FFFFFF">Modalidad:<span style="font-weight: bold; font-style: italic; color: #FFFFFF; font-size: 12px; font-family: Arial, Helvetica, sans-serif"> <select name="modalidad" id="modalidad"> <option value="0">Seleccione Modalidad</option> <option value="todas">Todas</option> <?php require_once("../funciones/nombreModalidad.php"); ?> </select> </span></span></td> <td width="175"><span style="font-size: 13px; color: #FFFFFF">Soporte:<span style="font-weight: bold; font-style: italic; color: #FFFFFF; font-size: 12px; font-family: Arial, Helvetica, sans-serif"> <select name="soporte" id="soporte"> <option value="">Soporte</option> <?php require_once("../funciones/nombreSoporte.php"); ?> </select>
115
</span></span></td> <td width="70"><input type="submit" name="consultar" id="consultar" value="Consultar" /></td> </tr> </table></td> </tr> </table> <table width="808" height="19" border="0" align="center" bgcolor="#999999"> <tr> <td width="165"><div align="center" class="Estilo10" style="font-size: 11px">Materia</div></td> <td width="62"><div align="center" class="Estilo10" style="font-size: 11px">Código</div> <td width="52"><div align="center" class="Estilo10" style="font-size: 11px">Sección</span></div></td> <td width="60"><div align="center" class="Estilo10" style="font-size: 11px">Alumnos</div> <td width="138"><div align="center" class="Estilo10" style="font-size: 11px">Profesor</div> <td width="62"><div align="center" class="Estilo10" style="font-size: 11px">Modalidad</span></div></td> <td width="90"><div align="center" class="Estilo10" style="font-size: 11px">Nivel</span></div></td> <td width="60"><div align="center" class="Estilo10" style="font-size: 11px">Soporte</div></td> <td width="80"><div align="center" class="Estilo10" style="font-size: 11px">Fecha</div></td> </tr> </table> <table width="808" height="19" border="0" align="center" > <?php require_once("../funciones/muestraInventario.php"); ?>
116
</table> <p><?php require_once("../class/class.php"); if (isset($_SESSION["sesion"])) { $t= new Trabajo(); $nom=$t->saluda_al_usuario($_SESSION["sesion"]); ?> </p> <table width="808" border="0" align="center"> <tr> <td width="209"> <p align="left" style="font-size: 12px; font-family: Arial, Helvetica, sans-serif; color: #999999">Materias Registradas: <?php echo "".$numero.""; ?> </p> </td> <td width="398"> </td> <td width="174"><span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif; color: #999999"><span style="font-style: italic; font-weight: bold"> <?php echo "".$nom[0][nombre].""; ?> </span></span></td> </tr> </table> </form> <!-- InstanceEndEditable --> <div id="footer" align="center"> <p class="fuente_pie_pagina Estilo7"><strong>Inventario de Materias de Pl@tUM</strong></p> <!-- end #footer --></div> <!-- end #container --></div>
117
</body> <!-- InstanceEnd --></html> <?php } else { echo " <script language='javascript' type='text/javascript'> alert('Debe loguearse para ver este contenido'); window.location='../index.php'; </script> "; } ?>
118
Código PHP del menú Otras Consultas <!-- /************************************************/ /* Desarrollador: Enrique José Milano Camacho */ /* Objetivo: Generar documento en formato PDF y ver el */
/* número de materias registradas según su modalidad. */ /* Fecha: 15/02/2012 */ /************************************************/ --> <?php session_start();?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/Plantilla.dwt" codeOutsideHTMLIsLocked="false" --> <head> <link href='../favicon.ico' rel='icon' type='image/vnd.microsoft.icon'/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Control de Inventario Pl@tUM 2</title> <style type="text/css"> </head> <body class="oneColElsCtrHdr"> <br /> <br /> <div id="container" > <table width="802" border="0" align="center"> <tr> <td width="796" height="53"><div align="right"> <div align="right"> <div align="right"><img src="../imagenes/platumLogoHeader.jpg" alt="logo" width="163" height="29" /></div> </div> </div></td>
119
</tr> </table> <table width="647" border="0" align="center" bordercolor="#FFFFFF" bgcolor="#FFFFFF"> <tr> <td width="98" bordercolor="#0456A0" bgcolor="#003B7B"><div align="center"><span class="Estilo8"><a href="../menu.php" style="text-decoration: none;"><font color="white">Inicio</font></a></span></div></td> <td width="1" bgcolor="#FFFFFF"> </td> <td width="108" bordercolor="#0456A0" bgcolor="#003B7B"><div align="center"><span class="Estilo8"><a href="../formularios/registrarMateria.php" style="text-decoration: none;"><font color="white">Registrar Materia</font></a></span></div></td> <td width="1" bordercolor="#0456A0" bgcolor="#FFFFFF"> </td> <td width="110" bordercolor="#0456A0" bgcolor="#003B7B"><span class="Estilo8"><a href="consultarInventario.php" style="text-decoration: none;"><font color="white">Consultar Inventario</font></a></span></td> <td width="1" bordercolor="#0456A0" bgcolor="#FFFFFF"> </td> <td width="98" bordercolor="#0456A0" bgcolor="#003B7B"><div align="center"><span class="Estilo8"><a href="consultapdf.php" style="text-decoration: none;"><font color="white">Otras Consultas</font></a></span></div></td> <td width="1" bordercolor="#0456A0" bgcolor="#FFFFFF"> </td> <td width="98" bordercolor="#0456A0" bgcolor="#003B7B"><div align="center"><span class="Estilo8"><a href="../logout.php" style="text-decoration: none;"><font color="white">Salir</font></a></span></div></td> </tr> </table> <p> </p> <!-- InstanceBeginEditable name="Registro" --> <form id="form" name="form" method="post" action="consultarInventario.php"> <?php include("..//conectar_bd.php"); $modalidad= $_POST['modalidad'];
120
$nivelacademico= $_POST['nivelacademico']; $soporte= $_POST['soporte']; ?> <table width="323" border="0" align="center"> <tr> <td width="460"><div align="right"> <p align="center"><span style="font-weight: bold; font-style: italic">Detalle de Materias Registradas</span></p> </div></td> </tr> </table> <table width="808" height="51" border="0" align="center" bordercolor="#72879A" bgcolor="#72879A"> <tr> <td width="752" bordercolor="1" bgcolor="#0456A0" class="Estilo2"> <table width="779" border="0" align="left"> <tr> <td width="249" class="" style="font-size: 13px; color: #FFFFFF">Nivel Academico <select name="nivelacademico" id="nivelacademico"> <option value="0">Seleccione Nivel</option> <?php require_once("../funciones/nivelAcademico.php"); ?> </select></td> <td width="250"><span style="font-size: 13px; color: #FFFFFF">Modalidad:<span style="font-weight: bold; font-style: italic; color: #FFFFFF; font-size: 12px; font-family: Arial, Helvetica, sans-serif"> <select name="modalidad" id="modalidad"> <option value="0">Seleccione Modalidad</option> <option value="todas">Todas</option> <?php require_once("../funciones/nombreModalidad.php"); ?> </select>
121
</span></span></td> <td width="175"><span style="font-size: 13px; color: #FFFFFF">Soporte:<span style="font-weight: bold; font-style: italic; color: #FFFFFF; font-size: 12px; font-family: Arial, Helvetica, sans-serif"> <select name="soporte" id="soporte"> <option value="">Soporte</option> <?php require_once("../funciones/nombreSoporte.php"); ?> </select> </span></span></td> <td width="70"><input type="submit" name="consultar" id="consultar" value="Consultar" /></td> </tr> </table></td> </tr> </table> <table width="808" height="19" border="0" align="center" bgcolor="#999999"> <tr> <td width="165"><div align="center" class="Estilo10" style="font-size: 11px">Materia</div></td> <td width="62"><div align="center" class="Estilo10" style="font-size: 11px">Código</div> <td width="52"><div align="center" class="Estilo10" style="font-size: 11px">Sección</span></div></td> <td width="60"><div align="center" class="Estilo10" style="font-size: 11px">Alumnos</div> <td width="138"><div align="center" class="Estilo10" style="font-size: 11px">Profesor</div> <td width="62"><div align="center" class="Estilo10" style="font-size: 11px">Modalidad</span></div></td> <td width="90"><div align="center" class="Estilo10" style="font-size: 11px">Nivel</span></div></td>
122
<td width="60"><div align="center" class="Estilo10" style="font-size: 11px">Soporte</div></td> <td width="80"><div align="center" class="Estilo10" style="font-size: 11px">Fecha</div></td> </tr> </table> <table width="808" height="19" border="0" align="center" > <?php require_once("../funciones/muestraInventario.php"); ?> </table> <p><?php require_once("../class/class.php"); if (isset($_SESSION["sesion"])) { $t= new Trabajo(); $nom=$t->saluda_al_usuario($_SESSION["sesion"]); ?> </p> <table width="808" border="0" align="center"> <tr> <td width="209"> <p align="left" style="font-size: 12px; font-family: Arial, Helvetica, sans-serif; color: #999999">Materias Registradas: <?php echo "".$numero.""; ?> </p> </td> <td width="398"> </td> <td width="174"><span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif; color: #999999"><span style="font-style: italic; font-weight: bold"> <?php echo "".$nom[0][nombre].""; ?> </span></span></td> </tr>
123
</table> </form> <!-- InstanceEndEditable --> <div id="footer" align="center"> <p class="fuente_pie_pagina Estilo7"><strong>Inventario de Materias de Pl@tUM</strong></p> <!-- end #footer --></div> <!-- end #container --></div> </body> <!-- InstanceEnd --></html> <?php } else { echo " <script language='javascript' type='text/javascript'> alert('Debe loguearse para ver este contenido'); window.location='../index.php'; </script> "; } ?>
124
Código PHP para generar el Documento en Formato PDF <!-- /************************************************/ /* Desarrollador: Enrique José Milano Camacho */ /* Objetivo: Permite generar documento en formato PDF */
/* de la consulta realizada. */ /* Fecha: 15/02/2012 */ /************************************************/ --> <?php session_start(); require_once('../class/class.php'); include('../conectar_bd.php'); include('../fpdf/class.ezpdf.php'); $pdf =& new Cezpdf('letter','landscape'); $pdf->selectFont('../fpdf/fonts/Helvetica.afm'); $pdf->ezSetCmMargins(1,1,2,2); $modalidad= $_POST['modalidad']; $nivelacademico= $_POST['nivelacademico']; if($modalidad=="todas") { $queEmp = mysql_query("SELECT nombremateria, codmateria, seccion, alumnos,profesor, id_registro, soporte.soporte, modalidad.nombremodalidad, nivelacademico.nivel, fecha FROM materia, soporte, modalidad, nivelacademico WHERE materia.id_nivel = $nivelacademico AND materia.id_soporte = soporte.id_soporte AND materia.id_modalidad = modalidad.id_modalidad AND materia.id_nivel = nivelacademico.id_nivel ORDER BY id_registro");} else {
125
$queEmp = mysql_query("SELECT nombremateria, codmateria, seccion, alumnos,profesor, id_registro, soporte.soporte, modalidad.nombremodalidad, nivelacademico.nivel, fecha FROM materia, soporte, modalidad, nivelacademico WHERE materia.id_modalidad = $modalidad AND materia.id_nivel = $nivelacademico AND materia.id_soporte = soporte.id_soporte AND materia.id_modalidad = modalidad.id_modalidad AND materia.id_nivel = nivelacademico.id_nivel ORDER BY id_registro"); } while($row92=mysql_fetch_array($queEmp)) { $data[] = array('d1'=>utf8_decode($row92["nombremateria"]), 'd2'=>utf8_decode($row92["codmateria"]), 'd3'=>$row92["seccion"], 'd4'=>($row92["alumnos"]), 'd5'=>utf8_decode($row92["profesor"]),'d6'=>$row92["nombremodalidad"], 'd7'=>$row92["nivel"], 'd8'=>$row92["soporte"], 'd9'=>$row92["fecha"], 'd10'=>$row92["id_registro"]); } $titles = array('d1'=>'<b>Materia</b>', 'd2'=>'<b>Código</b>', 'd3'=>'<b>Sección </b>', 'd4'=>'<b>Alumnos</b>', 'd5'=>'<b>Profesor</b>','d6'=>'<b>Modalidad</b>', 'd7'=>'<b>Nivel</b>', 'd8'=>'<b>Soporte</b>', 'd9'=>'<b>Fecha</b>', 'd10'=>'<b>N° Reg.</b>'); $options = array( 'shadeCol'=>array(0.9,0.9,0.9), 'xOrientation'=>'center', 'width'=>700 ); $pdf->ezText("<b> DIRECCIÓN APRENRED</b>\n", 12, array("justification"=>"center")); //Titulo $pdf->addJpegFromFile("platumLogoHeader.jpg", 600,568,100); //Logo de la dirección $txttit.= "Reporte de Inventario";
126
//$pdf->rectangle(425,728,180,20); //Área del rectangulo del Titulo $pdf->ezText($txttit, 10); $pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"), 10); $pdf->ezText("\n", 10); $pdf->ezTable($data, $titles,'', $options); $pdf->ezText("\n\n\n", 10); if (isset($_SESSION["sesion"])) { $t= new Trabajo(); $nom=$t->saluda_al_usuario($_SESSION["sesion"]); $pdf->addText(100,40,9,"Elaborado por: ".$nom[0][nombre].""); //muestra nombre de usuario } $pdf->ezStream(); ?>
127
Código PHP para validar los datos de acceso del usuario <!-- /************************************************/ /* Desarrollador: Enrique José Milano Camacho */
/* Objetivo: clases que permiten validar los datos del */ /* usuario para poder ingresar en el sistema. */
/* Fecha: 15/02/2012 */ /************************************************/ --> <?php session_start(); class Conectar { private $nombre=array(); //*****************************************// //Función para que que el usuario se loguee// public static function con () { $con = mysql_connect("localhost","root",""); mysql_query("SET NAMES 'utf8'"); mysql_select_db("platum"); return $con; } } class Trabajo { public function logueo() { $user=$_POST["user"]; $pass_js=$_POST["pass"]; $pass_php=md5($_POST["pass"]); $sql="SELECT * FROM usuarios WHERE usuario='$user' and pass_js='$pass_js' and pass_php='$pass_php'";
128
$res=mysql_query($sql,Conectar::con()); if (mysql_num_rows($res)==0) { echo "<script type='text/javascript'> alert('Los datos no existen'); </script>"; } else { if ($reg=mysql_fetch_array($res)) { $_SESSION["sesion"]=$reg["id_soporte"]; header ("Location: menu.php"); } } } //******************************************************************// //*********Función para obtener el nombre del usuario logueado***********// public function saluda_al_usuario($id_soporte) { $sql= "SELECT nombre FROM usuarios WHERE id_soporte=$id_soporte"; $res=mysql_query($sql,Conectar::con()); while($reg=mysql_fetch_assoc($res)) { $this->nombre[]=$reg; } return $this->nombre; } } ?>
129
Código PHP de las funciones JavaScript <!-- /************************************************/ /* Desarrollador: Enrique José Milano Camacho */
/* Objetivo: funciones que permiten validar los datos del */ /* usuario y mostrar la hora en pantalla. */
/* Fecha: 15/02/2012 */ /************************************************/ --> // JavaScript Document function limpiar_logueo() { document.form.reset(); document.form.user.focus(); } function validar_logueo() { var form=document.form; if (form.user.value==0) { alert("Ingrese su login"); form.user.value=""; form.user.focus(); return false; } if (form.pass.value==0) { alert("Ingrese su Password"); form.pass.value="";
130
form.pass.focus(); return false; } form.pass.value=calcMD5(form.pass.value); form.submit(); } function actualizaReloj() { marcacion = new Date() Hora = marcacion.getHours() Minutos = marcacion.getMinutes() Segundos = marcacion.getSeconds() var dn="am" if (Hora>12) { dn="pm" Hora = Hora-12 } if (Hora==0) Hora=12 if (Minutos<=9) Minutos = "0" + Minutos if (Segundos<=9) Segundos = "0" + Segundos var Dia = new Array("Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo"); var Mes = new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"); var Hoy = new Date(); var Anio = Hoy.getFullYear();
131
var Fecha = " " + Dia[Hoy.getDay()] + ", " + Hoy.getDate() + " de " + Mes[Hoy.getMonth()] + " de " + Anio + " "; var Inicio, Script, Final, Total Inicio = "<font face=verdana font size=2 color=black>" Script = Fecha + Hora + ":" + Minutos + ":" + Segundos + " " + dn Final = "</font>" Total = Inicio + Script + Final document.getElementById('Fecha_Reloj').innerHTML = Total setTimeout("actualizaReloj()",1000) }
132
ANEXO G: ARCHIVOS Y DIRECTORIOS DEL PROYECTO
133
Gráfico Anexo G 1: Directorio Raíz del proyecto
Fuente: Autor (2012)
Gráfico Anexo G 2: Directorio class
Fuente: Autor (2012)
134
Gráfico Anexo G 3: Directorio consultas
Fuente: Autor (2012)
Gráfico Anexo G 4: Directorio formularios
Fuente: Autor (2012)
135
Gráfico Anexo G 5: Directorio fpdf
Fuente: Autor (2012)
Gráfico Anexo G 6: Directorio funciones
Fuente: Autor (2012)
136
Gráfico Anexo G 7: Directorio generarPdf
Fuente: Autor (2012)
Gráfico Anexo G 8: Directorio js
Fuente: Autor (2012)
137
Gráfico Anexo G 9: Directorio nbproject
Fuente: Autor (2012)
Gráfico Anexo G 10: Directorio sql
Fuente: Autor (2012)
138
Gráfico Anexo G 11: Directorio Templates
Fuente: Autor (2012)
Top Related