19 de junio de 2010

Diagrama de Clases

Historias de Usuario

Numero: 1 Usuario: Administrador
Nombre historia: información del grupo IDIS
Prioridad en negocio: Media
Puntos Estimados: 4 Iteraciónasignada: 1
Programados responsable: Todos los miembros del grupo
Descripción:
1. Un usuario sin necesidad de estar registrado en el sistema, accede a través de un navegador web a la dirección seleccionada para el GroupWare, donde se le muestran todos los links a los cuales puede acceder en los cuales están: inicio, acerca del grupo, noticias, miembros, proyectos y contáctenos.
2. El usuario selecciona el link de inicio en donde se encuentra información de lo que permite hacer la página y sus funcionalidades.
3. El usuario puede acceder al link de acerca del grupo en donde encuentra información referente al grupo IDIS, como su misión, visión etc.
4. El usuario puede acceder al link de noticias en donde encuentra las noticias más importantes que el grupo quiera mostrar.
5. El usuario puede acceder al link demiembros donde encuentra especificación de los miembros que pertenecen al grupo, con correos para poderlos contactar cuando se desee.
6. El usuario puede acceder al link de proyectos donde encuentra especificación de los proyectos que se han realizado dentro del grupo y los que están en desarrollo.
7. El usuario puede acceder al link decontáctenos donde encuentra información que permita dar sugerencias, recomendaciones o enviar algún mensaje al grupo.
7.1 Para enviar un mensaje la persona debe llenar los campos de nombre, e-mail, población, provincia, y llenar el campo de texto donde va a diligenciar ya sea una queja, un reclamo o solicitar algo al grupo.
7.2 Procede a enviar lo que escrito.
Observaciones:
• Cualquier persona puede acceder a estas opciones sin necesidad de estar logeado en el sistema.
• Para enviar un mensaje debe tener en cuenta los campos que son obligatorios.



Numero: 2 Usuario: Administrador
Nombre historia: Administración de los usuarios
Prioridad en negocio: Alta
Puntos Estimados: 4 Iteraciónasignada: 1
Programados responsable: Todos los miembros del grupo
Descripción:
1. El administrador debe acceder primero que todo a la administración de los permisos, en este caso se crearan dos permisos admin, y miembroIDIS. El cual solicita al crearse el nombre del permiso, una descripción y los usuarios que tendrán este permiso. Luego se procede a Guardas y adicionar en la tabla correspondiente.
2. En esta opción de permisos el administrador puede listarlos, de forma que tenga la opción de editar los campos que desee, ordenarlos o de eliminar lo creado. Puede además buscar según el criterio deseado.
3. Luego puede acceder a administrar usuarios, el cual permitirá que adicione un nuevo usuario donde solicitara el nombre del usuario, la contraseña, la verificación de esta, y escoger el permiso que tendrá ya sea admin o miembro del IDIS, se procede a guardar y adicionar en la tabla.
4. Permite también listar los usuarios de manera que pueda eliminar el deseado o modificar el campo deseado. Puede buscar un usuario según el criterio solicitado.
Observaciones:
• Esta opción solo la puede acceder un usuario administrador, el cual podrá administrar todo los usuarios de la aplicación, teniendo en cuenta que solo podrán ser miembros del grupo de investigación IDIS.






Numero: 3 Usuario: Administrador
Nombre historia: Registrarse
Prioridad en negocio: Alta
Puntos Estimados: 4 Iteraciónasignada: 2
Programados responsable: Todos los miembros del grupo
Descripción:
1. El usuario que tenga una cuenta creada ya por el administrador, puede acceder a la aplicación por medio de una opción que se encuentra en la parte superior derecha, donde el usuario debe digitar su nombre de usuario y su contraseña. Puede elegir la opción de que sea recordada, para una próxima vez que se registre.
2. Según los permisos que tenga accede a las funciones que la aplicación le proporcione.
Observaciones:
• La cuenta debe ser creada con anterioridad por el administrador quien da los permios y brinda el nombre de usuario y su contraseña.
• El usuario que ha sido registrado puede cerrar su sesión en cualquier momento y desde cualquier lugar por medio de un botón en la parte superior derecha que indica que lo puede hacer.





Numero: 4 Usuario: Administrador
Nombre historia: Registrarse
Prioridad en negocio: Alta
Puntos Estimados: 4 Iteraciónasignada: 2
Programados responsable: Todos los miembros del grupo
Descripción:
1. Tanto el administrador como el miembro del IDIS puede listar los usuarios de la aplicación que están registrados.
2. Al seleccionar esta opción puede listarlos, o buscar según el criterio deseado para que aparezcan organizados según como se desee.
Observaciones:
• Solo es posible listar o buscar a través de esta opción.




Numero: 5 Usuario: Administrador
Nombre historia: Libreta de direcciones
Prioridad en negocio: Alta
Puntos Estimados: 4 Iteraciónasignada: 3
Programados responsable: Todos los miembros del grupo
Descripción:
1. Se accede a la opción de la libreta de direcciones, en donde puede agregar un nuevo contacto donde se le solicita que se ingrese el nombre, apellido, tipo de contacto, teléfono de la casa, de la oficina, celular, dirección, correo electrónico. Se procede a guardar dicho contacto.
2. Puede listar los contactos que el usuario tenga en su libreta, de manera que tiene las opciones de modificar el campo que desee, eliminar un contacto seleccionado.
3. Puede además listar los contactos, con opciones de ordenarlos como lo desee, y de buscar por un criterio seleccionado.
Observaciones:
• Cada uno de los usuarios de la aplicación tendrá su propia libreta de direcciones, la cual es privada para cada uno.
• Esta opción la pueden seleccionar tanto el administrador como un miembro del grupo IDIS.





Numero: 6 Usuario: Administrador
Nombre historia: Calendario
Prioridad en negocio: Alta
Puntos Estimados: 4 Iteraciónasignada: 4
Programados responsable: Todos los miembros del grupo
Descripción:
1. Se accede al calendario y este permite agregar una nueva actividad ya sea privada o púbica, de manera que si es pública seleccione a las personas que desea que tengan acceso a dicha actividad, solicita el nombre, el lugar de realización, el tiempo que esta llevara.
2. Permite tener una visita diaria, semanal y mensual para que sea más fácil el desplazamiento dentro del calendario.
3. Los eventos agregados en una fecha determinada se puede modificar, eliminar y listar según como sea necesario por el usuario.
Observaciones:
• Cada uno de los usuarios de la aplicación tendrá su propiocalendario, el cual es privado para cada uno, teniendo también las actividades a las cuales fueron invitados por otros usuarios del sistema, de forma que estas actividades se puedan diferenciar de las propias por medio de un color diferente y de una figura que tendrá en la parte superior de la actividad.
• Esta opción la pueden seleccionar tanto el administrador como un miembro del grupo IDIS.







Numero: 7 Usuario: Administrador
Nombre historia: Chat
Prioridad en negocio: Alta
Puntos Estimados: 4 Iteraciónasignada: 4
Programados responsable: Todos los miembros del grupo
Descripción:
1. Se accede a esta opción y la aplicación permite establecer una conversación con todos los usuarios de la aplicación que desee hacerlo, de manera que envié mensajes y quienes estén en esta opción lo podrán ver y contestar si es deseado.
Observaciones:
• Existe una espacio para que la persona escriba su mensaje y por medio de un botón se envíe el mensaje a todos los destinatarios.
• Se podrá ver el mensaje que se envió, la hora de envío y el autor de dicho mensaje para que todos los usuarios sepan lo que se envió y por quien.

Requisitos especificos





Restricciones

La aplicación se desarrollará empleando el framework Symfony el cual es uno de los frameworks PHP más populares entre los usuarios y las empresas, ya que permite que los programadores sean mucho más productivos a la vez que crean códigos de más calidad y más fáciles de mantener. Symfony es maduro, estable, profesional y muy bien documentado. Teniendo en cuenta que los frameworks simplifican el desarrollo de las aplicaciones mediante la automatización de muchas de las tareas comunes. Además, un framework proporciona estructura al código fuente, forzando al programador a crear código más legible y más fácil de mantener. Los requerimientos de hardware mínimos para tal fin son:

La instalación es mucho más sencilla de hacer en el Sistema Operativo Ubuntu.

La versión mínima es PHP 5.2

Servidor HTTP (Apache 2.2)

Una base de datos compatible con PDO (php data object) como por ejemplo MySQL.

PHP acelarator.

XSL Module.

PHP – XML module.

Descargar la versión de Symfony que se desee

18 de junio de 2010

1. Principales artefactos generados por el Proceso de Desarrollo (RUP o XP), por ejemplo: Especificación de los requerimientos, diagrama de casos de u




Para poder desarrollar un proyecto informático donde se debe cumplir ciertas solicitudes planteadas por el cliente, es muy importante la recolección de requisitos ya que en esta tarea se debe especificar el alcance de la aplicación, lo que esta permitirá hacer y lo que no. La ingeniería de Requisitos comprende todas las tareas relacionadas con la determinación de las necesidades o de las condiciones a satisfacer para un software nuevo o modificado, tomando en cuenta los diversos requisitos de los inversores, que pueden entrar en conflicto entre ellos.

Primero que todo se definirá los tipos de usuarios que pueden acceder a la aplicación:



21 de mayo de 2010

LECCIONES APRENDIDAS





Framework es una palabra inglesa que define, en término generales, un conjunto de conceptos, prácticas y criterios para enfocar un tipo de problemática particular, en este caso crear un sistema Groupware para el grupo de investigación IDIS de la Universidad del Cauca. Nuestro equipo de trabajo al conocer lo que es un Framework y las ventajas que proporciona a la hora de desarrollar productos software como lo son desarrollo rápido de aplicaciones, reutilización de componentes software, el uso y programación de componentes que siguen una política de diseño uniforme, además de brindar portabilidad de aplicaciones de una arquitectura a otra, pensamos en usar un framework que se acomodara a las necesidades del grupo de investigación y que permitiera al equipo de trabajo desarrollar una aplicación en corto tiempo y que contara además de todo con herramientas, componentes y posibilidades para cumplir con todos los requerimientos solicitados por los clientes de la aplicación.

Al ver todo lo que se necesitaba pensamos en escoger Symfony, un frameworkcompleto, diseñado para el desarrollo de aplicaciones web. Separando la lógica del negocio, la lógica de servidor y la presentación de la aplicación web. Proporciona además varias herramientas y clases encaminadas a reducir el tiempo de desarrollo de una aplicación web compleja. Automatiza las tareas más comunes, para que el desarrollador se dedique en gran medida a los aspectos específicos de la aplicación, de forma que no reinvente la rueda cada vez que se cree una nueva aplicación web.

Al no tener absoluto conocimiento del framework que se había escogido en el grupo lo primero que hicimos fue tomar como base una guía especificada por días brindada por la página de Symfony, ubicada en http://www.symfony-project.org/jobeet/1_4/Propel/es/, desde la cual se siguió la forma de instalación, configuración de lo necesario para la utilización del framework y realización un proyecto con todas las funcionalidades que este ofrece.

A partir de esta guía hicimos la respectiva instalación, teniendo en cuenta que se debía contar con ciertos programas instalados con anterioridad en la maquina sobre la cual se instalaría (La versión mínima es PHP 5.2, Servidor HTTP (Apache 2.2 ), Una base de datos compatible con PDO (php data object) como por ejemplo MySQL, PHP acelarator, XSL Module, PHP – XML module), además de que se utilizó Ubuntu ya que después de encontrar ciertas dificultades con la instalación en Windows, se procedió a una más fácil instalación en Ubuntu.

Se instaló la versión 1.4, realizando las configuraciones pertinentes y las instalaciones de dependencias necesarias. Posteriormente se creó el proyecto, dándonos cuenta que la mayor parte de la generación de código que da Symfony se da por consola de comandos, brindando así la posibilidad de obtener funcionalidades ya implementadas y su posterior uso según lo que se necesite.

Al acceder desde un navegador web a: http://127.0.0.1:8080/index.php/, podemos darnos cuenta que el proyecto se creó con éxito.





Luego de esto se procedió a crear la aplicación, y luego cada uno de los módulos que se pretendía crear para el sistema: Modulo para los visitantes los cuales tienen la posibilidad de acceder a información del IDIS, sus miembros, proyectos, noticias, la posibilidad de contactar al grupo, y además de ello registrarse si lo desea en la aplicación para tener mayores funcionalidades. Modulo para el administrador quien administra usuarios (CRUD), acceder a funcionalidades del miembro IDIS como listar usuarios, buscar usuarios, acceso a las funcionalidades de la libreta de contactos personal, acceso a las funcionalidades de calendario compartido y acceso al chat entre los usuarios de la aplicación.Además tiene la posibilidad de acceder a información del IDIS, sus miembros, proyectos, noticias, y la posibilidad de contactar al grupo. Modulo para miembros IDIS quienes tienen la posibilidad de registrarse como usuario en la aplicación determinando sus datos personales, puede entre otras cosas listar usuarios, buscar usuarios, acceso a las funcionalidades de la libreta de contactos personal, acceso a las funcionalidades de calendario compartido y acceso al chat entre los usuarios de la aplicación.

Para el manejo del inicio de sesión se hizo uso de un plugin llamado SfGuardAuth ofrecido por Symfony el cual administra los usuarios de la aplicación, los permisos y privilegios sobre esta.




Además se hizo uso de una funcionalidad que ofrece el Framework que es la generación de un CRUD sobre una tabla de una base de datos, en nuestro caso se usó el http://localhost/phpmyadmin/, a partir de la creación de un frontend sobre la tabla que se quiere hacer el CRUD.




De forma que con esta funcionalidad se podía listar, paginar, además de hacer el CRUD de toda la información contenida en la tabla, lo cual fue utilizado en la aplicación para la administración de los usuarios y para la libreta de direcciones de contactos propios de cada uno de los miembros, teniendo presente que cada persona tendría una libreta con los contactos deseados.


A partir de todo lo realizado con el framework las lecciones aprendidas además del manejo del framework, de su instalación, del manejo de bases de datos, y todo lo concerniente al inicio de sesión en una aplicación realizada con Symfony se aprendió a hacer aplicaciones centradas en el usuario, ceñidas a aspectos de usabilidad en cuanto a acceso a información contenida en Bases de datos, en tiempo de respuesta, y disposición del contenido en esta.
Lo anterior se ha ido logrando a partir de una planeación desde el inicio del desarrollo, prototipando y haciendo evaluación de lo que se diseñaba para de esta manera saber si el usuario estaba de acuerdo con lo que se estaba planteando en el equipo de trabajo.

Del trabajo realizado hasta el momento con el framework se han tenido muchas experiencias buenas y malas, ya que es un framework muy grande, diseñado especialmente para aplicaciones grandes, por lo cual es difícil aprender y saber manejar un framework tan grande en tan poco tiempo, y partir de ceros en el desarrollo, teniendo como base únicamente guías que en su totalidad son muy extensas y con muchos detalles que tal vez no son necesarios para nuestro sistema. Pero también se han tenido cosas muy buenas como por ejemplo funcionalidades que con pocas líneas de código automatizan tareas comunes que anteriormente eran muy complicadas de realizar. Es un framework muy potente, escalable, tiene mucho soporte, es libre, seguro y documentado lo que ha permitido que se haga una aplicación usable y que cumpla con los requerimientos solicitados.