• No se han encontrado resultados

Capítulo 4. Metodología

Ciclo de Vida del Software

En cuanto al ciclo de vida del software, hemos decidido tomar el modelo iterativo en el cual el desarrollo del software siempre continúa.

Según Grady Booch, el modelo de desarrollo iterativo e incremental, Es u

proceso que involucra la continua integración de la arquitectura del sistema, para poder generar los ejecutables, do de ada u o de ellos i luye u a ejo a so e los ot os .

Modelo de Desarrollo Iterativo.

Dado que el proyecto de software que pretendemos realizar es largo, lo vamos a trabajar como multiproyectos, con lo cual con cada iteración obtendremos una versión del software. En la figura 8 se muestra un esquema del ciclo de vida del software.

Figura 8. Ciclo de vida del software

En cada una de las iteraciones, hemos de definir los objetivos que debe de cumplir la aplicación. Se crea un análisis (diagramas de uso de UML) y posteriormente se diseñan los diagramas de clases. Hecho esto se empieza el proceso de codificación e implementación, para al último hacer las pruebas correspondientes y completar un ciclo.

| Capítulo 4. Metodología 26 Las principales ventajas que nos proporciona este modelo son:

En caso de que alguna iteración falle, con la ayuda de las iteraciones controladas, sólo se pierde el esfuerzo de esa iteración y no del proyecto completo.

Acelera la velocidad de desarrollo de los programadores, dado que es más eficiente trabajar con objetivos a corto plazo.

Optar por este modelo asegura mejores soluciones a necesidades muy cambiantes, ya que es fácilmente adaptable a cambios del entorno.

Definición de Objetivos.

Se definieron los objetivos en cada vuelta del ciclo. Se realizaron 8 ciclos, los cuales generaron 8 versiones que hemos nombrado con lo correspondiente a las fases de desarrollo, definidas en la ingeniería de software.

Versiones Alfa

Estas versiones son las primeras que el equipo de desarrollo entrega, y por tanto sólo contemplan algunas de las funcionalidades del producto final, con muchos errores y poca estabilidad.

Versiones Beta

Estas versiones proporcionan las funcionalidades más importantes del proyecto. Las versiones beta son generalmente usadas para dar a conocer un producto y que pueda ser probado.

Versión RC

RC proviene del inglés Release Candidate que traduciendo sería como candidata para lanzamiento. Estas son versiones donde no se modifica drásticamente la arquitectura de la aplicación, y en algunas veces se congela el código (Conocido en Ingeniería del Software como Freeze), lo cual es muy conveniente para encontrar errores o bugs.

| Capítulo 4. Metodología 27 A continuación veremos los objetivos más importantes de cada ciclo o iteración.

Alfa 1

Desarrollar la Interfaz Ajax. Crear Imágenes y Logos.

Definir la distribución de Archivos y Carpetas.

Alfa 2

Agregar soporte de pestañas a la interfaz Ajax. Crear el Módulo de Mapa Curricular.

Crear la ventana de Horarios.

Alfa 3

Creación del sistema de gestión de profesores. Creación del sistema de gestión del Administrador. Creación del módulo Sitio Personal.

Sesiones de los Profesores y el Administrador.

Beta 1

Creación del módulo Proyectos de Tesis. Sesión de Alumnos.

Creación del módulo Evaluación de profesores. Creación del módulo Manejador de Banners.

Beta 2

Agregar Soporte para proyectos en formato PDF. Creación del módulo Perfil del Profesor.

Creación del módulo Sistema de Avisos. Creación del módulo Materias tipo Wiki.

Beta 3

Creación del sistema de Registro de Profesores y Alumnos. Creación del módulo Videos Académicos.

Optimizar la velocidad de carga del Portal.

RC

Creación del módulo Correo Electrónico Masivo. Agregar Enlace Permanente al módulo Sitio Personal.

Proporcionar Compatibilidad con los Navegadores: Internet Explorer, Firefox, Safari, Opera y Google Chrome.

| Capítulo 4. Metodología 28 Entornos de Trabajo

Un entorno de trabajo está definido por la ingeniería de software, como todas las herramientas necesarias para desarrollar, producir y probar una aplicación.

Existen tres entornos de trabajo: Entorno de Desarrollo, Entorno de Producción, Entorno de Pruebas.

Entorno de Desarrollo

El entorno de desarrollo es el conjunto de las aplicaciones que utilizamos para desarrollar el Portal Web. Entiéndase por desarrollar como diseñar, modelar y programar.

Eclipse PDT (PHP Development Tools)

Es un proyecto de software libre basado en el IDE Eclipse, que nos proporcionó todos los componentes necesarios, para desarrollar en el lenguaje de programación PHP fácilmente y rápidamente.

Aptana Studio

Es un plugin para Eclipse, el cual proporciona editores avanzados para los siguientes lenguajes: HTML, XHtml, JavaScript, Css y XML.

Umbrello

Es una herramienta de software libre que nos permite crear diagramas UML. Este nos permite la mayoría de los diagramas soportados por UML versión 2:

Diagrama de casos de uso. Diagrama de componentes. Diagrama de despliegue. Diagrama de modelo entidad- relación. Diagrama de clases. Diagrama de secuencia. Diagrama de estados. Diagrama de actividades. Diagrama de colaboración.

| Capítulo 4. Metodología 29

PhpMyAdmin

Es una herramienta de software libre escrita en PHP, que nos permite manejar las Base de Datos en Mysql. Actualmente puede crear y eliminar Bases de Datos, crear, eliminar y alterar tablas, borrar, editar y añadir campos, ejecutar cualquier sentencia SQL, administrar privilegios, exportar datos en varios formatos, etc.

MySql Workbench OSS

Es una herramienta de software libre, que nos permite diseñar de forma visual, generar y gestionar Bases de Datos MySQL. Se pueden crear complejos modelos E/R, gestión de versiones del esquema de una Base de Datos, generación automática de documentación de una Base de Datos, ingeniería inversa, etc.

Entorno de Producción

El entorno de producción es el conjunto de software, que nos permite tener el Portal Web de la Academia de Computación en un servidor Web y que sea accesible mediante Internet.

El entorno de producción puede ser multiplataforma pero en nuestro caso hemos decidido especificar el que más se acerque a la filosofía del software libre.

Sistema operativo GNU/Linux

Es el sistema operativo más utilizado con licencia libre, ofrece una gran seguridad y trabaja perfectamente en servidores en Internet.

Apache

Apache es un servidor de software libre, más utilizado en todo Internet gracias a su gran estabilidad y seguridad.

| Capítulo 4. Metodología 30

PHP

Es un lenguaje de programación, tanto estructurado como orientado a objetos que se utiliza para complementar el HTML logrando hacer una Web más interactiva y funcional. Gracias a este lenguaje se pueden desarrollar cualquier tipo de servicios, a través de su sitio Web.

Mysql

Es un servidor de Bases de Datos relacionales, en la comunidad de software libre es el más popular y está desarrollado por Sun MicroSystems. Cabe destacar su gran potencial unido a la programación PHP.

PHP-GD

GD es una biblioteca de código abierto para la creación dinámica de imágenes, mediante programación. GD puede crear Imágenes PNG, JPEG, GIF y otros formatos. Es generalmente usada para generar gráficas, tablas, imágenes miniaturas.

| Capítulo 5. Diseño 31

Capítulo 5. Diseño

Usuarios y Permisos

En el Portal Web manejamos cuentas de usuarios, por lo cual es necesario separar los permisos a distintos niveles del sitio. Es por eso que se definen cuatro tipos de cuentas: Administrador, Profesor, Alumno e Invitado.

Invitado.- Posee el mínimo de permisos, lo cual implica navegación solamente por la página principal.

Alumno.- Incluye los permisos de un Invitado pero además permite ingresar a sitios restringidos como al módulo Evalua ió de P ofeso es .

Profesor.- Este tipo de usuario cuenta con permisos especiales, como lo son: manejo de su sitio personal, modificación de su perfil y otros que se definirán más adelante.

Administrador.- Posee permisos de un profesor pero se aumentan permisos que manejan información importante del sitio. Como lo son Manejador de Claves de Acceso, Manejador de Anuncios Publicitarios, entre otras.

| Capítulo 5. Diseño 32 Separación del Portal en Niveles

Siguiendo una de las frases ele es de Julio Césa , Divide y Ve e ás , hemos distribuido el Portal Web en tres niveles: Nivel Principal, Nivel de Acceso de Profesores, Nivel de Acceso del Administrador, como se muestra en la siguiente figura:

Figura 9. Niveles de Acceso en el Portal Nivel Principal

Es el sitio donde cualquier persona puede ingresar y consultar la información que contiene. En la siguiente figura se muestra el diagrama a bloques de este nivel principal.

Figura 10. Diagrama a bloques del Sitio Principal

Portal Web de la

Academia de

Computación

Nivel Principal

Nivel de Acceso

a Profesores

Nivel de Acceso

al Administrador

Sitio Principal

Mapa Curricular Información de los Profesores Horarios Avisos a la Comunidad Académica Proyectos de Titulación Evaluación de Profesores Sitios Personales de Profesores Videos Sitios de Materias de Computación Enlaces

| Capítulo 5. Diseño 33 Nivel de Acceso de Profesores

Con ayuda de este sitio, los profesores pueden fácilmente publicar su sitio personal, los sitios de las diferentes materias de computación, modificar sus datos personales y subir algún video académico. En la siguiente figura se muestra el diagrama a bloques de este nivel de acceso a profesores.

Figura 11. Diagrama a bloques del Sitio de nivel de acceso de profesores Nivel de Acceso del Administrador

Este sitio permite al administrador modificar borrar y actualizar la información importante de la Academia de Computación. En la siguiente figura se muestra el diagrama a bloques de este nivel de acceso al administrador.

Figura 12. Diagrama a bloques del sitio de nivel de acceso del administrador

Nivel de Acceso de Profesores

Sitio Personal MateriasSitios de

Información Personal Videos Resultados de Evaluación Profesores Nivel de Acceso del Administrador Manejo de Banners Manejo de Avisos Manejo de Claves de Acceso Proyectos de Titulación Correo Electrónico

| Capítulo 5. Diseño 34 Modelado de la Base de Datos

El modelado de la Base de Datos comprende la estructura de la Base de Datos, así como las relaciones que existen entre cada una de las tablas. Este modelo se muestra en la figura 13. El Código Fuente esta descrito en los archivos Database.sql, database- config.php y fixtures.sql del Apéndice.

| Capítulo 5. Diseño 35 Tablas de la Base de Datos

profesoresCompuICE

Esta es la tabla más importante de la Base de Datos, donde se concentran las cuentas de los profesores, es decir los nombres de usuarios y sus contraseñas. A demás el campo user_id que es el identificador de usuario que sirve para relacionar con las otras tablas.

materiasProfesores

Esta tabla contiene la relación entre materias y profesores, dicho de otro modo contiene las materias que imparte cada profesor.

Materias

Esta tabla almacena las materias de la Academia de Computación y su respectivo identificador.

Wiki

Esta tabla almacena todos los sitios de las materias impartidas por la Academia de Computación. Los campos materia_id y profesor_id, son índices que permiten relacionarse con las tablas materias y profesoresCompuICE respectivamente.

Sugerencias

Esta tabla almacena las sugerencias realizadas por los alumnos, hacia sus profesores en el módulo de evaluación de profesores.

EvaluaciónProfesores

Aquí se almacenan los resultados del proceso de evaluación de los profesores. Esta tabla es crucial para generar las gráficas de resultados.

infoProfesores

Esta tabla contiene la información personal de cada uno de los profesores. Hay campos que almacenan el nombre, los apellidos, teléfono, celular, extensión, cubículo, horario, email, y foto.

| Capítulo 5. Diseño 36

Permalink

Esta tabla contiene los enlaces permanentes de cada profesor que lo configure, obteniendo así acceso directo a su sitio personal vía la siguiente dirección: http://148.204.x.x/academia/sitio/nombre_del_enlace

sitesWeb

Esta tabla almacena todos los sitios personales de los profesores. Contiene campos como el título, texto, y la fecha de creación, así como el campo profesor_id que sirve para relacionar con la tabla de los profesores.

Videos

En esta tabla se almacenan todos los videos que los profesores suben al servidor. Esta tabla contiene campos como la dirección del video, el título, la duración. Estos campos son de suma importancia para el módulo de Videos Académicos.

Alumnos

Esta tabla agrupa todos los datos personales para las cuentas de los estudiantes, como son: nombre y apellidos, boleta, grupo, semestre, su cuenta de usuario y password.

proyectosCompuICE

Aquí se almacenan los proyectos de titulación curricular que los profesores les ofrecen a sus alumnos.

Claves

Contiene las claves que permiten a los profesores registrarse en el Portal Web.

Banners

Esta tabla contiene información sobre los anuncios publicitarios, culturales, académicos y deportivos que aparecen el sitio principal.

Avisos

Almacenan cada uno de los mensajes que se transmiten a toda la comunidad estudiantil y docente.

| Capítulo 5. Diseño 37 Diagrama de Clases

Los diagramas de clases son los más utilizados para el diseño de sistemas de software. Son parte fundamental en la ingeniería de software y quedan definidos en UML. Muestran un conjunto de clases, interfaces, y sus relaciones entre ellas.

Diagrama de Clases para el manejo de Sesión de los usuarios.

Este diagrama se compone de cuatro clases, que se relacionan a través de la herencia que existe con la clase Session. La clase Session provee de atributos y métodos comunes a sus clases hijas. Cada Clase hija posee sus propios atributos y métodos, con los cuales se pretende tener el control sobre los usuarios que ingresan en el Portal. Como se muestra a continuación en el siguiente diagrama. El Código Fuente esta descrito en el archivo sesión-class.php del Apéndice.

| Capítulo 5. Diseño 38 Diagrama de Clases para la Interfaz Ajax

Este diagrama de clases muestra las relaciones que existen entre las diferentes clases que componen a la interfaz Ajax. La interfaz Ajax es la encargada de procesar todas las peticiones XHR (XML HTTP Request), y presentarlas en el sitio principal a través de Pestañas o Ventanas; como se muestra a continuación. El Código Fuente esta descrito en los archivos index.php, index.js, index.css y functions.js del Apéndice.

| 39 Diagrama de Clases para la Base de Datos

El manejo de Bases de Datos es muy complejo, es por eso que se creó una clase que encapsule el comportamiento de la misma. A esta clase la hemos llamado CRUD. CRUD es el acrónimo de Crear, Obtener, Actualizar y Borrar (Create, Retrieve, Update y Delete en inglés). Es usado para referirse a las funciones básicas en Bases de Datos, o la capa de persistencia en un sistema de software; como se ve en la siguiente figura. El Código Fuente esta descrito en el archivo crud-class.php del Apéndice.

| 40 Distribución de Archivos y Carpetas

Para la mejor organización de nuestra aplicación, se debe de tener una distribución de carpetas, en la cual se puedan agrupar archivos relacionados, y no tener en desorden todos los archivos. A continuación en la siguiente figura se muestran la distribución de las carpetas del Portal de la Academia de Computación.

Figura 17. Distribución de carpetas

| 41 En la siguiente figura se pueden ver los archivos más importantes, para el

desarrollo del Portal Web de la Academia de Computación.

| 42 A continuación, se muestran los archivos más importantes que están debajo del directorio admin:

| 43 Figura 20. Distribución de archivos III

Documento similar