Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información Ingeniería de Software I CI-3715 Sección 3 Asignación 3 Sartenejas, Noviembre de 2012 1
Índice 2. Introducción 3 3. Diagramas de Actividades. 4 4. Diagrama de Clases de Diseño 31 5. Diagramas de Interacción (Secuencia y Comunicación) 33 5.1. Diagramas de Secuencia de Caja Negra 33 5.2. Diagramas de Secuencia 52 6. Diagramas de Estado 70 7. Diseño de la Base de Datos 72 8. Conclusiones 77 9. Referencias 78 2
2. Introducción Actualmente, debido a la facilidad para acceder a la información y a la velocidad con la que se puede mantener comunicación, es sumamente factible la conformación de equipos de trabajo que no necesariamente deben encontrarse en el mismo espacio geográfico. El principal problema que manejan quienes conforman dichos equipos es la planificación y el seguimiento de las actividades puntuales a realizar por cada miembro. Es por ello que se propone la implantación de un sistema donde se refleje, organice y manipule las actividades de todos los participantes del proyecto. El siguiente documento tiene como finalidad iniciar el proceso de desarrollo de software para el proyecto mencionado. El presente informe plantea un enfoque teórico en la resolución del problema. Se realiza la modelación y diagramación de las clases de diseño, que serán usadas para entender las diferentes funciones y métodos que usarán los objetos en el sistema; se mostrarán los diagramas de actividades, que contienen los eventos de tiempo y el flujo del sistema; diagramas de estados, permite visualizar de una forma secuencial la ejecución de cada uno de los procesos; diagramas de secuencia y comunicación, muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo y se modela para cada caso de uso; y finalmente el diseño completo de la base de datos a implementar, incluyendo el modelo entidad-relación, el modelo lógico relacional, las restricciones adecuadas para restringir el dominio, y un diccionario de datos explicando cada una de las entidades y atributos usados. 3
3. Diagramas de Actividades Actor: Usuario 1. Iniciar Sesión. Visitante 2. Cerrar Sesión. Colaborador 4
3. Crear Pizarra. Colaborador 4. Visualizar Pizarras Completadas. Colaborador 5
5. Eliminar Pizarra. Colaborador 6. Registrar. Visitante 6
7. Solicitar Ayuda (Tutorial). Colaborador 7
8. Organizar Pizarras. Colaborador 8
9. Consultar Información Pizarra. Colaborador 10. Crear Actividad. Colaborador 9
11. Asignar Actividad. Colaborador 10
12. Editar Información Actividad. Colaborador 13. Consultar Actividad. Colaborador 11
14. Eliminar Actividad. Colaborador 12
15. Visualizar Pizarra. Colaborador 13
16. Visualizar Actividades en Orden Jerárquico. Colaborador 14
17. Visualizar Actividades en Orden Cronológico. Colaborador 15
18. Recuperar Contraseña. 16
19. Crear Comentario en una Actividad. Colaborador 17
20. Eliminar Comentario de una Actividad. Colaborador 21. Cambiar Idioma. Colaborador 18
22. Visualizar Actividad por Usuario. Colaborador 19
23. Visualizar Actividad por Avance. Colaborador 20
24. Visualizar Actividad por Estado. Colaborador 25. Visualizar Pared. Colaborador 21
26. Consultar Registro de Avance de una Pizarra. Colaborador 22
27. Listar Participantes de una Pizarra. Colaborador 23
28. Ver Perfil de Usuario. Colaborador 24
29. Modificar Perfil de Usuario (propio). Colaborador 25
30. Editar Información de Pizarra. Colaborador 26
Actor: Administrador 1. Registrar Colaborador. Administrador Seleccionar opción registrar usuario. 2. Eliminar Colaborador. 27
3. Ver log. 4. Descartar Pizarra. 28
5. Descartar Actividad. 29
Actor: Sistema 1. Generar Alertas. 2. Cambiar Estado de una Actividad. 30
4. Diagrama de Clases de Diseño Diagrama de Dominio 31
Diagrama de Clases 32
5.Diagramas de Interacción (Secuencia y Comunicación) 5.1 Diagramas de Caja Negra Actor: Usuario 1. Iniciar Sesión. 2. Cerrar Sesión. 33
3. Crear Pizarra. 4. Visualizar Pizarras Completadas. 34
5. Eliminar Pizarra. 6. Registrar. 35
7. Solicitar Ayuda (Tutorial). 8. Organizar Pizarras. 36
9. Consultar Información Pizarra. 10. Crear Actividad. 37
11. Asignar Actividad. 12. Editar Información Actividad. 38
13. Consultar Actividad. 14. Eliminar Actividad. 39
15. Visualizar Pizarra. 16. Visualizar Actividades en Orden Jerárquico. 17. Visualizar Actividades en Orden Cronológico. 40
18. Recuperar Contraseña. 19. Crear Comentario en una Actividad. 41
20. Eliminar Comentario de una Actividad. 21. Cambiar Idioma. 42
22. Visualizar Actividad por Usuario. 23. Visualizar Actividad por Avance. 43
24. Visualizar Actividad por Estado. 25. Visualizar Pared. 26. Consultar Registro de Avance de una Pizarra. 44
27. Listar Participantes de una Pizarra. 28. Ver Perfil de Usuario. 45
29. Modificar Perfil de Usuario (propio). 46
30. Editar Información de Pizarra. 47
Actor: Administrador 1. Registrar Colaborador. 2. Eliminar Colaborador. 48
3. Ver log. 4. Descartar Pizarra. 49
5. Descartar Actividad. Actor: Sistema 1. Generar Alertas. 50
2. Cambiar Estado de una Actividad. 51
5.2 Diagramas de Secuencias Actor: Usuario 1. Iniciar sesión. 2. Cerrar sesión. 52
3. Crear pizarra. 4. Visualizar pizarras completadas. 53
5. Eliminar pizarra. 6. Registrar. 54
7. Solicitar ayuda (tutorial). 8. Organizar pizarras. 55
9. Consultar información pizarra. 10. Crear Actividad. 56
11. Asignar actividad. 12. Editar información actividad. 57
13. Consultar Actividad. 14. Eliminar Actividad. 15. Visualizar pizarra. 58
16. Visualizar Actividades en orden jerárquico. 17. Visualizar Actividades en orden cronológico. 18. Recuperar contraseña. 59
19. Crear comentario en una Actividad. 20. Eliminar comentario de una Actividad. 60
21. Cambiar Idioma. 22. Visualizar Actividad por usuario. 23. Visualizar Actividad por avance. 61
24. Visualizar Actividad por estado. 25. Visualizar pared. 26. Consultar registro de avance de una pizarra. 62
27. Listar participantes de una pizarra. 28. Ver perfil de usuario (propio y de los participantes de un Pizarra común). 63
29. Modificar perfil de usuario (propio). 64
30. Editar información de pizarra (si eres el creador). 65
Actor: Administrador 1. Registrar Colaborador. 2. Eliminar Colaborador. 66
3. Ver log. 4. Descartar Pizarra. 67
5. Descartar Actividad. Actor: Sistema 1. Generar alertas. 68
2. Cambiar estado. 69
6. Diagrama de Estado 1. Diagrama de las Actividades 2. Diagrama de Comentarios 70
3. Diagrama de Pizarra 4. Diagrama de Colaborador/Administrador 71
7. Diseño de la Base de Datos 72
Traducción del Esquema Lógico al Modelo Relacional USUARIO( login, nombre, apellido, email, teléfono, contrasena, rol ) PIZARRA( idpiz, nombrepiz, descripcion, fechacreacion, fechafinal ) PIZARRA ACTIVIDAD( idact, idpizactividad, fechainicial, fechaentrega, descripcionact, USUARIO USUARIO USUARIO estado, avance, nombreact, logincreador, loginjefe, loginasignado) COMENTARIO( idcomentario, horacomentario, fechacomentario, contenido, ACTIVIDAD idpizcomentario, idactcomentario ) ---Relaciones USUARIO PIZARRA Crea( logindueno, idpizdueno ) Accion( idaccion, tipo contenidoaccion, fechaaccion, horaaccion ) ACTIVIDAD ACTIVIDAD sedivide( idapiz, idactividad, idactividadhija ) Diccionario de Datos: Para cada atributo se establece un código XYZW que corresponde a la siguiente información: X Y Z W S = atributo simple. C = atributo compuesto. S = atributo que puede tomar un sólo valor. M = atributo multivaluado, es decir, que puede tomar varios valores. P = atributo primario D = atributo derivado, es decir, que es calculado con otros valores dentro de la base de datos. F = atributo fijo, es decir, que no puede tomar valores nulos. O = atributo opcional. 73
Lista de entidades con su semántica y atributos Usuario: Persona que está registrada como administrador o colaborador en el sistema. Atributos: login (SSPF) : varchar (15) nombre (SSPF) : varchar (20) apellido (SSPF) : varchar(20) correo (SSPF) : varchar (50) teléfono (SSPF) : varchar (15) contraseña (SSPF) : varchar (15) rol (SSPF) : boolean Pizarra: contiene las actividades que son creadas en el sistema. Atributos: idpiz (SSPF) : numeric () nombrepiz (SSPF) : varchar (50) descripcionpiz (SSPO) : varchar (100) fechacreación (SSPF) : date fechacinal (SSPF) : date Actividad: son las generadas por los usuarios y que son publicados en las pizarras. Es una entidad débil de pizarra. Atributos: idact (SSPF) : numeric () fechainicial (SSPF) : date fechaentraga (SSPF) : date descripcionact (SSPO) : varchar (100) estado (SSPF) : varchar (15) avance (SSPF) : numeric () nombreact (SSPF) : varchar (50) Comentario: son las anotaciones que pueden hacer los usuarios sobre cualquier actividad dentro de una pizarra. Es una entidad débil de actividad. Atributos: idcomentario (SSPF) : numeric () horacomentario (SSPF) : time fechacomentario (SSPF) : date contenido (SSPF) : varchar (200) Accion: son las acciones realizadas por el usuario dentro del sistema con cualquiera de las otras entidades. Atributos: idaccion (SSPF) : numeric() tipo (SSPF) : varchar (20) contenidoaccion (SSPF) : varchar (200) fechaaccion (SSPF) : date horaaccion (SSPF): date 74
Lista de relaciones con su semántica y atributos ñ hace: relación entre los usuarios y las acciones que estos realizan. ñ agrega: relaciona a los usuarios con las actividades que este puede agregar dentro del sistema. ñ crea: relación entre los usuarios y las pizarras que estos han creado ñ se_asigna: relación ternaria entre los usuarios y las actividades que asignan o les son asignadas. ñ compuesta: relación entre las actividades y la pizarra a la que pertenecen. ñ se_divide: relación entre actividades. Una actividad puede subdividirse en subactividades. ñ realiza: relación entre los usuarios y los comentarios que estos crean en alguna actividad. ñ tiene: relación que existe entre las actividades y los comentarios que poseen. Restricciones de Dominio ñ Para todo usuario, el rol puede ser true o false (true = administrador, false= colaborador) ñ Para toda actividad, el estado puede ser completado, retrasado, postergado, en ejecución o sin asignar. ñ Para toda acción, el tipo puede ser crearpizarra o modificarpizarra o eliminarpizarra o conectar o desconectar o comentar o descomentar o crearactividad o modificaractividad o eliminaractividad o error o warning. Restricciones Explícitas ñ Para toda pizarra la fecha de creación debe ser menor o igual a la fecha final ( p Pizarra(p) : p.fechacreacion getdate() getdate() p.fechafinal) ñ Para toda actividad la fecha inicial debe ser menor a la fecha actual y a la fecha de entrega. ( a Actividad(a) : a.fechainicial getdate() getdate() p.fechaentrega a.fechainicial a.fechaantrega ) 75
ñ Para toda actividad, el avance va del 0 al 100. ( a Actividad(a) : 0 a.avance 100) ñ La fecha de una acción debe ser menor o igual a la fecha actual. ( a Accion(a) : a.fechaaccion getdate()) ñ La fecha de un comentario es menor o igual a la fecha actual. ( c Comentario(c) : c.fechacomentario getdate() ) ñ Para todo comentario, la fecha de comentario esta entre la fecha inicial de la actividad y la fecha de entrega de la misma. ( c,a Comentario(c) Actividad(a) c.idact = a.idact : a.fechainicial c.fechacomentario a.fechaentrega) ñ La longitud de la contraseña debe ser mayor o igual a 6 caracteres. ( u Usuario(u) : 6 u.contrasena) ñ El login del usuario debe estar conformado por letras, números y los caracteres punto (.), guion (-) y guion bajo (_). Debe cumplir con la siguiente expresion regular. '^[A-Za-z0-9]+[A-Za-z0-9.-_]$ ñ El email tiene que cumplir con la siguiente expresión regular: '^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+[.][A-za-z]+$' 76
8. Conclusiones Un proyecto representa un conjunto de actividades desarrolladas por una o varias personas, con el fin de establecer un objetivo. La planificación de un proyecto necesita organización, coordinación, herramientas y técnicas para satisfacer una serie de requisitos. En el campo de la computación, podemos encontrar numerosas ramas que llevan a cabo proyectos interesantes; una de estas ramas es el desarrollo web.. UML es un lenguaje estándar unificado de modelado, que busca ser accesible dentro del proceso de desarrollo web. El proyecto planteado en este documento, cumple con los aspectos funcionales y el uso de las técnicas de UML. En este trabajo se quiere explicar y definir las bases de sistema a desarrollar, desde el punto de vista funcional(casos de uso),diseño y manejo de datos. Servirá de soporte en la estructura e implementación de la aplicación, ya que se describe de manera detallada, toda la información que maneja el mismo. 77
9. Referencias 1. Aprendiendo UML en 24 horas. Joseph Smuller. Pretince Hall 78