Fundamentos de Ingeniería de Software
ILI-236
Informe Final
Sistema de Administración de Problemas Grupo: Andrea Guzmán V. 2104506-3 Víctor Peña y Lillo Z. 2273001-0 Freddy Muñoz R. 2273060-6
Fecha: 16 de Noviembre de 2004
1
Índice General. 1 Introducción ................................................................................................................................ 3
Del Problema ............................................................................................................................... 4
2 Plan de Trabajo ............................................................................................................................ 4
3 Análisis
3.1 Contexto del Problema ............................................................................................... 5
3.2 Requerimientos
3.2.1 Lista de Funciones del Sistema .................................................................6
3.2.2 Atributos ................................................................................................ 8
3.2.2.1 Lista de Atributos ................................................................ 8
3.2.2.2 Lista de Atributos por Funcionalidad ...................................8
3.3 Actores ...................................................................................................................... 9
3.4 Casos de Uso y Contratos
3.4.1 Diagrama de Casos de Uso ...................................................................... 10
3.4.2 Lista Casos de Uso ................................................................................ 11
3.4.3 Casos de Uso Expandidos y Diagramas ................................................ 12
3.5 Modelo de Dominio
3.5.1 Entidades Reconocidas ...........................................................................53
3.5.2 Modelo de Dominio ......................................................................54
3.5.2.1 Entidades Agrupadas en Paquetes ..............................55
3.5.2.2 Paquetes y Entidades ..................................................55
3.5.3 Matriz de Rastreabilidad ...............................................57
2
4. Validación ......................................................................................................................................57
5. Diseño
5.1 Derivación del Modelo de Software
5.1.1 Casos de Uso Reales .........................................................................................58
5.1.2 Diagrama de Estados .........................................................................................90
5.2 Refinamientos ..................................................................................................................91
5.3 Implantación ....................................................................................................................92
3
1. INTRODUCCIÓN En el presente documento se expone el análisis que se ha llevado a cabo frente a problema “Sistema de Administración de problemas”, denominado SAP V1.0 FAW, y la solución encontrada a dicho problema. En una primera parte de habla del problema a solucionar dando una explicación sencilla y a grandes rasgos, para luego presentar el plan de trabajo en donde se presenta al equipo de trabajo, las herramientas y recursos técnicos disponibles. A continuación se hace un análisis funcional, económico y tecnológico del problema, lo que da a conocer las bondades que el sistema ofrece. Posteriormente se muestran, en forma catalogada: -Las funciones del sistema. -Los atributos del sistema, con sus respectivas descripciones. -Los actores presentes en el sistema. -Los casos de uso que definen al sistema con sus correspondientes modelos (Conceptual, de Secuencia, y Diagramas de Caso de Uso). -Los contratos de las funciones presentes en el sistema. -El Modelo del Dominio. -Entidades Reconocidas. -Matriz de Rastreabilidad. Este informe está dirigido a personas interesadas en un sistema que soporta correctamente el reporte de errores, se espera que el lector de este documento posea conocimientos de nivel medio-avanzado en el modelado UML y metodologías de análisis, para lograr así una cabal comprensión de los contenidos del documento.
4
Del Problema. El problema, a grandes rasgos, trata acerca de una pieza de software llamada SAP (Sistema de Administración de Problemas), cuyo objetivo principal es dar soporte al manejo y administración de reportes de problemas en aplicaciones de software para el área de sistemas de una compañía. Estos reportes deben poder ser discutidos y catalogados por un grupo de usuarios especializados, los cuales eventualmente ofrecerán una solución al problema reportado. Esto, agiliza la optimización de las aplicaciones en uso, lo que a su vez disminuye costos ya que los errores pueden ser detectados antes de que generen una catástrofe y reduce drásticamente el tiempo necesario para refinar las aplicaciones producto de error, pues se tiene una retroalimentación directa de los usuarios involucrados en el uso de las aplicaciones. Para entregar una solución al problema se ha realizado un análisis de este, el cual describe la realidad a la que el sistema se ve enfrentado, y como éste debe reaccionar frente a las diversas situaciones que pudiesen suceder. La solución recomendada para este problema, es la implementación de un sistema apoyado por una base de datos, donde los Reportes serán almacenados y operarán con una arquitectura Cliente-Servidor, en el cual los clientes realizarán, previa autentificación, los reportes de problemas y manipulación de los mismos. El servidor, por su parte, es el encargado de comunicarse con el sistema de mensajería (momentáneamente el sistema de correo electrónico) y distribuir el aviso de un nuevo reporte a la(s) lista(s) de usuarios correspondientes. 2. PLAN DE TRABAJO El Equipo de Trabajo está formado por los estudiantes de Ingeniería Civil Informática Víctor Peña y Lillo, Andrea Guzmán y Freddy Muñoz, los cuales cuentan con conocimientos en modelado UML, diseño e implementación de Bases de Datos Relacionales-Objetuales de tipo operacional, programación en lenguajes Orientados a Objetos, Arquitectura de Redes y Solución de Problemas. El equipo tiene a su disposición los siguientes recursos técnicos: • 5 PC • Herramienta de modelado UML • Conexión a Internet 24/7 • 4 Sistemas corriendo con Windows XP • 2 Sistemas corriendo bajo GNU/Linux
5
3. ANÁLISIS 3.1 Contexto del Problema. El sistema a desarrollar tiene como función principal el almacenar los reportes de problemas que pudieran surgir y comunicar a los usuarios de lista que existe un nuevo reporte en alguna aplicación dentro de la organización. El sistema debe funcionar en una red de computadores y poseer niveles de acceso de usuarios. La implantación de este sistema en alguna organización, le permite a ésta contar con un muy buen soporte del área de sistemas, puesto que mediante retroalimentación, se logra una mayor captación y depuración de errores, y por ende una solución más rápida y eficaz para el cliente. Permite también agilizar los procesos de discusión para encontrar una solución, lo que disminuye a su vez tanto los gastos operacionales como los costos, pues evita que la acumulación de errores genere problemas más grandes y más costosos en reparar. Además de la conformidad que se genera en los clientes por la eficacia y la disminución de costos, el sistema proveerá de estadísticas semanales, lo cual permitirá un seguimiento haciendo posible la predicción de eventuales situaciones futuras. Es necesario destacar que un sistema de tales características motiva la introducción de nuevas TI dentro de la organización y permite una participación activa de los usuarios, los cuales podrían verse muy motivados al observar una respuesta ágil a sus reportes. Como se plantea la idea de generalizar el sistema no sólo a envío de reportes vía mail, se podría pensar en una futura exportación del sistema a otras áreas de la organización, optimizando así, no sólo el área de sistemas de ésta, sino también áreas como la de producción, ventas, etc. En resumen, éste sistema es capaz de crear importantes incidencias económicas y de desarrollo en una organización, y produce un notorio mejoramiento de todas las aplicaciones de la organización.
6
3.2 Requerimientos 3.2.1 Lista de Funciones del Sistema.
Funciones correspondientes al caso de uso Reportar Problema
Ref. # Nombre Características R1.1 Ingresar_RP: Ingresa un nuevo reporte de problema a la
BD Evidente
R1.2 Leer_Lista: Busca todos los registros de Usuario pertenecientes a una lista determinada.
Oculta
R1.3 Enviar_Mensaje: Envía un mensaje a todos los miembros de una lista determinada.
Oculta
Funciones correspondientes al caso de uso Actualizar Reporte y Consultar Reporte
Ref. # Nombre Características R2.1 Listar_Reportes (1) Evidente R2.2 Mostrar_Reporte: Despliega los datos de un reporte
seleccionado y sus opciones. Evidente
R2.3 Actualizar_Campos: Actualiza ciertos campos de un Reporte en la BD.
Evidente
Funciones correspondientes al caso de uso Crear Lista
Ref. # Nombre Características R3.1 Ingresar_Atributos_Lista: Ingresa los datos acerca de una
nueva lista. Evidente
Funciones correspondientes al caso de uso Agregar Usuario Sistema Ref. # Nombre Características R4.1 Ingresar_Datos_USR: Ingresa los datos acerca de un
nuevo usuario. Evidente
R4.2 Verificar_Datos: Verifica la inexistencia de un usuario en la BD para ingresar un nuevo usuario.
Oculta
R4.3 Ingresar_Registro: Ingresa a la BD un nuevo usuario. Oculta
Funciones correspondientes al caso de uso Agregar Usuario Lista
Ref. # Nombre Características R5.1 Buscar_Usuario: Busca en la BD un usuario especifico,
dado un cierto atributo. Evidente
R5.2 Listar_Listas (2) Evidente R5.3 Inscribir_a_Lista *: Agrega un usuario a una lista
existente. Evidente
Funciones correspondientes al caso de uso Eliminar Usuario Lista
Ref. # Nombre Características R6.1 Desinscribir_Usuario: Desatacha un usuario de una lista. Evidente
Funciones correspondientes al caso de uso Eliminar Usuario Sistema
Ref. # Nombre Características R7.1 Eliminar_Usuario: Marca como eliminado a un usuario
en la BD. Evidente
7
Funciones correspondientes al caso de uso Listar Reportes
Ref. # Nombre Características R8.2 Buscar_Reportes (4) Evidente R8.3 Ordenar_Reportes: Hace un ordenamiento de los reportes
dado un atributo. Evidente
Funciones correspondientes al caso de uso Crear Estadística Ref. # Nombre Características R10.1 Leer_registros_Semana: Lee de la BD los registros de las
actividades correspondientes a los reportes de problemas. Oculta
R10.3 Guardar_Estadística: Almacena en la BD los resultados obtenidos luego de aplicar las funciones estadísticas a los datos de la semana.
Oculta
Funciones correspondientes al caso de uso Mostrar Estadística Ref. # Nombre Características R11.1 Buscar Estadística: Busca en la BD un reporte estadístico
de acuerdo a una fecha. Evidente
R11.2 Mostrar Estadística: Despliega un reporte estadístico seleccionado.
Evidente
Funciones anexas
Ref. # Nombre Características R12 Ingresar LOG (6) Superflua-Oculta R13 Login: Autentica a un usuario y lo autoriza a realizar
operaciones con una calidad determinada por su clase. Evidente
(*) El usuario que se agrega a la lista, existe previamente en el sistema, así como la lista a la cual éste es atachado.
(1) Listado de los Reportes de problemas filtrados según alguno de sus atributos. (2) Listar las listas existentes (listas de usuarios) según algún criterio de filtrado (3) Verificar que clase se usuario es aquel que esta utilizando el sistema (administrador., final o
de lista), y que información está autorizado a observar. (4) Busca los reportes que el usuario esta autorizado para observar. (5) Aplicación de funciones estadísticas a los datos de los registros. (6) Guardar un registro de la operación realizada, identificando los autores involucrados y
fecha en la que se realizo la operación.
8
3.2.2 Atributos.
3.2.2.1 Lista de Atributos
Atributo Detalle y Limitaciones Plataforma Red de PC Arquitectura Cliente-Servidor Tolerancia a las fallas En caso de problemas en el sistema, éste es capaz de generar un
reporte sobre sí mismo y reincorporarse. Seguridad (*) Sistema de autenticación de usuarios, y control de acceso a los
reportes. Sistema Operativo MS Windows, *NIX, Linux. (*) La seguridad en el sistema se ve enfocada al ingreso restringido por parte de los usuarios, cada usuario tiene ciertas atribuciones dependiendo de su clase, lo que se extiende al hecho de que no todos los usuarios pueden modificar reportes o ingresar/eliminar usuarios de alguna lista en especial. Además el solo hecho de que el sistema está implementado bajo una plataforma de Red de Computadores impide que usuarios fuera de esa red puedan tener acceso a información restringida. 3.2.2.2 Lista de Atributos por Funcionalidad.
Ref. # Función Categoría Atributo Detalles y Limitaciones Categoría
R13 Login: Autentica a un usuario y lo autoriza a realizar operaciones con una calidad determinada por su clase.
Evidente Seguridad, Plataforma
Sistema de autenticación (en servidor) de usuarios, y control de acceso a los reportes. Red de PC
Requerido
R1.3 Enviar_Mensaje: Envía un mensaje a todos los miembros de una lista determinada.
Oculta Tolerancia a las Fallas
En caso de problemas en el sistema, éste es capaz de generar un reporte sobre sí mismo y reincorporarse.
Requerido
R2.3 Actualizar_Campos: Actualiza ciertos campos de un Reporte en la BD.
Oculta Seguridad Sistema de autenticación de usuarios, y control de acceso a los reportes.
Requerido
R3.1 Ingresar_Atributos_Lista: Ingresa los datos acerca de una nueva lista.
Evidente-Oculta
Seguridad Sistema de autenticación de usuarios, y control de acceso a los reportes.
Requerido
9
Ref. # Función Categoría Atributo Detalles y Limitaciones Categoría
R4.1 Ingresar_Datos_USR: Ingresa los datos acerca de un nuevo usuario.
Evidente-Oculta
Seguridad Sistema de autenticación de usuarios, y control de acceso a los reportes.
Requerido
R4.3 Ingresar_Registro: Ingresa a la BD un nuevo usuario.
Oculta Seguridad Sistema de autenticación de usuarios, y control de acceso a los reportes.
Requerido
R5.3 Inscribir_a_Lista *: Agrega un usuario a una lista existente.
Evidente Seguridad, Tolerancia a
las Fallas
En caso de problemas en el sistema, éste es capaz de generar un reporte sobre sí mismo y reincorporarse.
Requerido
R7.1 Eliminar_Usuario: Marca como eliminado a un usuario en la BD.
Oculta Seguridad Sistema de autenticación de usuarios, y control de acceso a los reportes.
Requerido
3.3 Actores. Administrador del Sistema: Es aquella persona que lleva el control sobre el sistema y sus usuarios, es decir, administra directamente las funciones que operan sobre los usuarios y los reportes de problemas. Usuario Final: Es aquella persona que hace uso de la aplicación acerca de la cual se reporta un problema en su diario quehacer. Además de realizar reportes de problemas, puede consultar su estado. Usuario de Lista (*): Es aquella persona que además de realizar reportes tiene atribuciones sobre éstos. Está inscrito en una lista determinada y es quién está involucrado en el proceso de desarrollo de la aplicación acerca de las cuales se reportan problemas. (*) Estos usuarios pueden pertenecer a más de una lista y son en esencia usuarios del sistema.
10
3.4 Casos de Uso y Contratos. 3.4.1 Diagrama de Casos de Uso.
Usuario Final
id_usuarioNombre
tipoestadoemail
Usuario Lista
id_usuarioNombreestado
tipoemail
Administrador
id_usuarioNombree-mailtipo
Listar RPConsultar RP
Consultar Estadistica
Actualizar RP
Actualizar Lista
Reportar Problema
Agregar Usuario Sistema
Eliminar Usuario Sistema
Agregar Usuario Lista
Usuario Lista, es un usuario que esta inscrito en una lista determinada.Es quien esta involucrado en el proceso de desarrollo de la aplicacion acerca de las cua...
Usuario final es aquel usuario que hace uso de la aplicacion acerca de la cual se reporta un problema en su diario quehacer.
<<usa>>
<<usa>>
<<usa>>
<<usa>>
<<usa>>
Crear Lista
<<usa>>
11
3.4.2 Lista de Casos de Uso.
Nombre Priorización Descripción Reportar Problema Esencial Describe el proceso de reportar un problema encontrado
dentro de una aplicación. Listar RP Importante Describe el proceso de buscar y listar los reportes
requeridos por un usuario. Actualizar RP Importante Describe el proceso de actualizar el estado de un
reporte. Este caso de uso necesita la colaboración del caso de uso Listar RP.
Consultar RP Esencial Describe el proceso de consultar el estado de un reporte. Este caso de uso necesita la colaboración del caso de uso Listar RP.
Consultar Estadística Deseable Describe el proceso de consultar un informe estadístico generado por el sistema.
Crear Estadística Deseable Describe el proceso de generar un informe estadístico dada una fecha específica.
Agregar Usuario Sistema Esencial Describe el proceso de ingresar a un nuevo usuario al sistema.
Eliminar Usuario Sistema
Importante Describe el proceso de marcar como eliminado del sistema a un usuario.
Agregar Usuario Lista Importante Describe el proceso de inscribir a un usuario a una lista determinada.
Eliminar Usuario Lista Importante Describe el proceso de des-inscribir a un usuario de una lista determinada.
Crear Lista Importante Describe el proceso de generar una nueva lista o grupo de usuarios.
Actualizar Lista Deseable Describe el proceso de cambiar la información de una lista ya creada.
12
3.4.3 Casos de Uso Expandidos, Esenciales y Contratos. Nombre: Reportar Problema. Actores: Usuario Final (iniciador) Propósito: Generar un nuevo reporte de problema. Resumen: Un Usuario Final, al encontrar una falla en una aplicación de uso cotidiano, invoca al SAP, se autentica en el sistema e inicia un reporte de problema. Introduce los datos referentes acerca del problema y lo envía. Concluye la operación cuando el reporte ha sido recibido por el sistema. Finalmente el usuario finaliza su sesión en el sistema. Tipo: Primario, Esencial. Referencias Cruzadas: R13, R1.1, R1.2, R1.3. Curso Normal de Eventos :
Actores Sistema 1. Este caso de uso comienza cuando el usuario final encuentra un problema en una aplicación, llama al SAP e in icia su sesión ingresando su username y un password.
2.El sistema autentica al usuario verificando si el username y el password corresponden.
3.El usuario reporta el problema, ingresando la información correspondiente, tal como tipo, descripción y comentarios de éste y lo envía al sistema.
4.El sistema recibe el reporte, le asigna un id y un estado y despacha una notificación a una lista de usuarios específica. Luego ingresa el registro del LOG.
5.El usuario final puede finalizar su sesión. Curso Alternativo de Eventos. Línea 2: El sistema no autentica al usuario, entonces cancela el inicio de la sesión y muestra un mensaje de error. Línea 4: El sistema espera por un tiempo determinado y no recibe el reporte, entonces muestra un mensaje de ale rta. Línea 4: El sistema es incapaz de despachar la notificación, entonces se le envía un mensaje al administrador informando que se ha generado un nuevo reporte en la BD y que éste no ha sido despachado.
13
Modelo Conceptual Caso de Uso: Reportar Problema.
Diagrama de Caso de Uso: Reportar Problema. Diagrama de Secuencia Caso de Uso: Reportar Problema.
: Usuario Final : Sistema
LogIn( )
Ingresar_RP( )
Ingresar_LOG()
leer_lista( )
enviar_mensaje( )
Buscar_Lista( )
Usuario Final
Id_usuarioNombre
tipoestadoemail
Reportar Problema
Reporte de Problema
TipoDescripcionEstado : BooleanId_reportecomentarioId_usuarioNombre
Usuario Final
id_usuarioNombre
tipoestadoemai l
Genera1..n 1..n
Lista de Usuarios
id_listatipoPrivilegios
emplea1..n 1..n
Mensajeid_mensajeid_reporteDescripcionDestino
envia
1..n
1..n
14
Contratos Caso de Uso: Reportar Problema. Nombre: LogIn (username: texto, password: texto) Responsabilidades: Iniciar una sesión, al mismo tiempo que autentica a un usuario y su tipo. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R13
Casos de uso: Reportar problema, Consultar RP, Actualizar RP, Crear lista, Actualizar lista, Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista, Consultar Estadística.
Notas: Utilizar el acceso rápido a la base de datos. Excepciones: Si el usuario no es válido, indicar que se cometió un error de autenticación. Salida: --- Precondiciones: El Usuario existe en el sistema, su password es auténtica. Poscondiciones: - Si se trata de un usuario no instanciado, se creó una instancia de UsuarioFinal
-Si se trata de un usuario no instanciado , se asignó un username a UsuarioFinal.username. -Si se trata de un usuario no instanciado , se asignó id a UsuarioFinal.Id_usuario -Si se trata de un usuario no instanciado , se asignó tipo a UsuarioFinal.tipo -Si se trata de un usuario no instanciado , se asignó email a UsuarioFinal.email -Si se trata de un usuario no instanciado , se asignó Nombre a UsuarioFinal.Nombre.
Nombre: Ingresar_RP (tipo: entero, aplicación: texto, descripción: texto, ID: entero) Responsabilidades: Ingresar un nuevo reporte de problema. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R1.1 Casos de uso: Reportar problema. Notas: --- Salida: --- Precondiciones: --- Excepciones: Si uno de los atributos es nulo, se pide nuevamente los datos. Poscondiciones: -Se creó una nueva instancia de ReportedeProblema -Se asignó tipo de RP a ReportedeProblema.tipo -Se asignó descripción a ReportedeProblema.Descripción -Se asignó FALSO a ReportedeProblema.Estado
-Se asignó comentario(*) a ReportedeProblema.comentario -Se asignó un ID a ReportedeProblema.id_reporte -Se asigno el ID del usuario actual a ReportedeProblema.id_usuario
15
Nombre: Enviar_mensaje () Responsabilidades: Enviar un mensaje a todos los usuarios de la lista informando que se ha
reportado un nuevo problema. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R1.3, R1.1, R1.2 Casos de uso: Reportar problema. Notas: Se hace uso del servicio de mensajes actual. Excepciones: Si el servicio de mensajes está off-line, entonces se cancela la operación. Salida: Una salida hacia el sistema de mensajes. Precondiciones: La lista es válida y existe. El sistema de mensajes es funcional. Poscondiciones: -Se creó una nueva instancia de Mensaje -Se asoció un id a Mensaje.id_mensaje -Se asoció un id a Mensaje.id_reporte -Se asoció una descripción a Mensaje.Descripción -Se asoció un Destino a Mensaje.Destino. Nombre: Leer_Lista() Responsabilidades: Leer los registros de la lista asociada al tipo de reporte y retornar lo
miembros de la lista. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R12, R1.1, R1.3, R5.3, R6.1
Casos de uso: Reportar problema. Notas: --- Excepciones: Si no existen listas en el sistema, entonces se cancela la operación y se
muestra un mensaje de error. Salida: --- Precondiciones: Existen listas de usuario en el sistema. Poscondiciones: -Se asocio cada miembro de la lista, a un elemento Mensaje.Destino. -Se envió el mensaje a los destinatarios correspondientes. Nombre: Ingresar_LOG() Responsabilidades: Ingresar un registro de alguna operación realizada en el sistema. Tipo: Sistema. Referencias cruzadas: Casos de uso: Reportar Problema, Actualizar RP, Crear Lista,
Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista
Notas: --- Excepciones: Si no se pudo ingresar un registro a la base de datos se muestra un mensaje
de error. Salida: --- Precondiciones: El medio de almacenamiento está activo. Poscondiciones: -Se estableció una entrada de Log, en los registros de Log.
16
Nombre: Consultar RP Actores: Usuario Final, Usuario de Lista .(iniciadores) Propósito: Mostrar el estado de un reporte ya generado. Resumen: Un Usuario, ya sea final o de lista, ingresa al SAP, inicia su sesión y pide un listado de reportes de acuerdo a su clase (Final o de Lista) y consulta el estado de uno o más de los reportes listados. Luego puede o no finalizar su sesión. Tipo: Primario, Esencial. Referencias Cruzadas: R2.1, R2.2, R13. Curso Normal de Eventos :
Actores Sistema 1.Este caso de uso comienza cuando un usuario ingresa al SAP e inicia su sesión ingresando username y password.
2.El sistema autentica al usuario verificando si el username y el password son válidos.
3.El usuario pide un listado de los reportes. 4.El sistema, busca(dependiendo del usuario) y
guarda los reportes en una colección. Luego los muestra (ver caso de uso Listar RP).
5.El usuario selecciona el reporte que desea consultar.
6.El sistema busca el reporte y muestra sus atributos y opciones.
7.El usuario lo revisa y puede o no finalizar su sesión.
Curso Alternativo de Eventos. Línea 2: El sistema no autentica al usuario, entonces muestra mensaje de error. Línea 4: El sistema no puede verificar la clase ni buscar los reportes, entonces envía un mensaje de error. Línea 6: El sistema no puede buscar el reporte, entonces envía un mensaje de error.
17
Modelo Conceptual Caso de Uso: Consultar RP. Diagrama de Caso de Uso: Consultar RP. Diagrama de Secuencia Caso de Uso: Consultar RP.
: Usuario Lista : Sistema
Listar_Reportes( )
LogIn( )
Buscar_Reportes( )
Ordenar_Reportes( )
Mostrar_Reporte( )
Usuario Lista
id_userNombre
Consultar RPUsuario Final
id_usuarioNombre
: Usuario Final
: Sistema
Listar_Reportes( )
LogIn( )
Buscar_Reportes( )
Ordenar_Reportes( )
Mostrar_Reporte( )
Usuario Final
id_usuarioNombre
tipoestadoemail
Reporte de ProblemaTipoDescripcionEstado : BooleanId_reportecomentarioId_usuarioNombreUsuario Lista
id_usuarioNombreestado
tipoemail
consulta1..1 1..n
consulta-a1..11..n
18
Contratos Caso de Uso: Consultar RP. Nombre: LogIn (username: texto, password: texto) Responsabilidades: Iniciar una sesión, al mismo tiempo que autentica a un usuario y su tipo. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R13
Casos de uso: Reportar problema, Consultar RP, Actualizar RP, Crear lista, Actualizar lista, Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista, Consultar Estadística.
Notas: Utilizar el acceso rápido a la base de datos. Excepciones: Si el usuario no es válido, indicar que se cometió un error de autenticación. Salida: --- Precondiciones: El Usuario existe en el sistema, su password es auténtica. Poscondiciones: - Si se trata de un usuario no instanciado, se creó una instancia de Usuario
- Si se trata de un usuario no instanciado , se asignó un username a Usuario.username. -Si se trata de un usuario no instanciado , se asignó id a Usuario.Id_usuario. - Si se trata de un usuario no instanciado , se asignó tipo a Usuario.tipo - Si se trata de un usuario no instanciado , se asignó email a Usuario.email -Si se trata de un usuario no instanciado , se asignó Nombre a Usuario.Nombre
Nombre: Listar_reportes () Responsabilidades: Lista los reportes de problema según el tipo de usuario. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R2.1, R5.1 Casos de uso: Consultar RP, Listar RP. Notas: --- Excepciones: Si no hay reportes, entonces se muestra un mensaje. Salida: --- Precondiciones: El usuario existe en el sistema y existen reportes. Poscondiciones: -Se creó un vector de Reportes. -Se creó una nueva instancia de ReportedeProblema por cada Reporte del vector. Nombre: Buscar_reportes () Responsabilidades: Buscar un reporte dentro de un vector de reportes, y dejar en dicha colección sólo los reportes que se necesitan. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R8.2, R2.1
Casos de uso: Consultar RP, Listar RP. Notas: --- Excepciones: Si no existe la colección, mostrar mensaje de error. Salida: --- Precondiciones: La colección está habitada. Poscondiciones: -Se desasociaron las instancias de ReportedeProblema, que no eran buscadas.
19
Nombre: Ordenar _ reportes (Atributp) Responsabilidades: Ordenar los reportes de un vector de reportes según el atributo entregado. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R2.2, R2.1, R8.2, R8.3 Casos de uso: Consultar RP, Listar RP, Actualizar RP. Notas: --- Excepciones: Si no existen reportes que ordenar, se envía un mensaje. Salida: --- Precondiciones: Existen reportes. Poscondiciones: -Se redistribuyeron los elementos del vector. Nombre: Mostrar_reporte () Responsabilidades: Desplegar los datos del reporte y sus opciones. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R2.1, R2.2, R8.2, R8.3 Casos de uso: Consultar RP, Listar RP, Actualizar RP. Notas: --- Excepciones: Si el reporte es nulo, mostrar mensaje de error. Salida: --- Precondiciones: El reporte no es nulo. Poscondiciones: ---
20
Nombre: Listar RP. Actores: Usuario Final, Usuario Lista Propósito: Mostrar una lista con los reportes de problema requeridos. Resumen: El sistema lee los registros de los reportes de problema dado un criterio de clase referente a los usuarios. Los ordena dado un atributo y luego los lista. Tipo: Primario, Esencial. Referencias Cruzadas: R8.2, R8.3. Curso Normal de Eventos :
Actores Sistema 1.Este caso de uso comienza cuando Listar RP es llamado.
2.El sistema verifica la clase del usuario y busca los reportes a los que éste puede acceder. Luego los muestra.
3.El usuario puede ordenar los reportes por algún criterio y acceder a un reporte.
Curso Alternativo de Eventos. Línea 2: Es imposible verificar la clase del usuario, entonces se interrumpe la operación. Se envía un mensaje de error.
21
Modelo Conceptual Caso de Uso: Listar RP. Diagrama de Caso de Uso: Listar RP. Diagrama de Secuencia Caso de Uso: Listar RP.
: Usuario
: Sistema
Buscar_Reportes( )
Ordenar_Reportes( )
Actualizar RP
Consultar RP
Listar RP<<usa>>
<<usa>>
Usuario Final
id_usuarioNombre
tipoestadoemail
Reporte de ProblemaTipoDescripcionEstado : BooleanId_reportecomentarioId_usuarioNombre Usuario Lista
id_usuarioNombreestado
tipoemail
lista1..1 1..n
lista1..11..n
22
Contratos Caso de Uso: Listar RP. Nombre: Buscar_reportes () Responsabilidades: Buscar un reporte dentro de un vector de reportes, y dejar en dicho vector sólo con los reportes buscados. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R8.2, R2.1
Casos de uso: Consultar RP, Listar RP. Notas: --- Excepciones: Si no existe el vector, mostrar mensaje de error. Salida: --- Precondiciones: El vector existe y está habitado. Poscondiciones: -Se desasociaron las instancias de ReportedeProblema, que no eran las buscadas. Nombre: Ordenar _ reportes (Atributo) Responsabilidades: Ordenar los reporte s de un vector de reportes según el atributo entregado. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R2.2, R2.1, R8.2, R8.3 Casos de uso: Consultar RP, Listar RP, Actualizar RP. Notas: --- Excepciones: Si no existen reportes que ordenar, se envía un mensaje. Salida: --- Precondiciones: Existen reportes. Poscondiciones: -Se redistribuyeron los elementos del vector.
23
Nombre: Actualizar RP. Actores: Usuario de Lista (iniciador). Propósito: Modificar los datos de algún reporte. Resumen: El usuario ingresa al SAP, inicia su sesión y pide una lista de reportes, luego actualiza los campos del reporte en cuestión y se ingresa un LOG al sistema. Luego el usuario puede o no finalizar su sesión. Tipo: Primario, Esencial. Referencias Cruzadas: R2.1, R2.2, R2.3, R12. Curso Normal de Eventos :
Actores Sistema 1.Este caso de uso comienza cuando el usuario final ingresa al SAP e inicia sesión ingresando username y password.
2.El sistema autentica al usuario verificando si el username y el password son válidos.
3.El usuario pide una lista de reportes(quizás por algún atributo en especial).
4.El sistema genera una colección de reportes (ver caso de uso Listar RP) y los muestra.
5.El usuario selecciona un reporte para revisarlo.
6.El sistema busca el reporte y lo muestra. 7.El usuario realiza los cambios deseados. 8.El sistema ingresa la actualización y el LOG
correspondiente, luego muestra confirmación. 9.El usuario puede o no finalizar su sesión. Curso Alternativo de Eventos. Línea 2: El sistema no autentica al usuario, entonces muestra mensaje de error. Línea 4: El sistema no puede generar la lista, entonces muestra un mensaje de error. Línea 6: El sistema no puede mostrar el reporte, entonces muestra un mensaje de error. Línea 8: No es posible ingresar la actualización, entonces le envía un mensaje al administrador informando que un registro no pudo ser ingresado a la BD.
24
Modelo Conceptual Caso de Uso: Actualizar RP. Diagrama de Caso de Uso: Actualizar RP. Diagrama de Secuencia Caso de Uso: Actualizar RP.
: Usuario Lista : Sistema
LogIn()
Mostrar_Reportes( )
Ingresar_LOG( )
Listar_Reportes( )
Buscar_Reportes( )
Ordenar_Reportes( )
Actualizar_Campos( )
Listar RPUsuario Lista
id_userNombre
Actualizar RP
<<usa>>
Reporte de ProblemaTipoDescripcionEstado : BooleanId_reportecomentarioId_usuarioNombre
Usuario Lista
id_usuarioNombreestado
tipoemail
Modifica_Estado1..1 1..n
25
Contratos Caso de Uso: Actualizar RP. Nombre: LogIn (username: texto, password: texto) Responsabilidades: Iniciar una sesión, al mismo tiempo que autentica a un usuario y su tipo. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R13
Casos de uso: Reportar problema, Consultar RP, Actualizar RP, Crear lista, Actualizar lista, Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista, Consultar Estadística.
Notas: Utilizar el acceso rápido a la base de datos. Excepciones: Si el usuario no es válido, indicar que se cometió un error de autenticación. Salida: --- Precondiciones: El Usuario existe en el sistema, su password es auténtica. Poscondiciones: - Si se trata de un usuario no instanciado, se creo una instancia de Usuario
- Si se trata de un usuario no instanciado , se asignó un username a Usuario.username. -Si se trata de un usuario no instanciado , se asignó id a Usuario.Id_usuario - Si se trata de un usuario no instanciado , se asignó tipo a Usuario.tipo - Si se trata de un usuario no instanciado , se asignó email a Usuario.email -Si se trata de un usuario no instanciado , se asignó Nombre a Usuario.nombre.
Nombre: Listar_reportes () Responsabilidades: Lista los reportes de problema según el tipo de usuario. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R2.1, R5.1 Casos de uso: Consultar RP, Listar RP. Notas: --- Excepciones: Si no hay reportes, entonces se muestra un mensaje. Salida: --- Precondiciones: El usuario existe en el sistema y existen reportes. Poscondiciones: -Se creó un vector de Reportes de Problema. -Se creó una nueva instancia de ReportedeProblema, por cada Reporte del
vector. Nombre: Buscar_reportes (atributo) Responsabilidades: Buscar un reporte dentro de una colección de reportes, y dejar en dicha colección sólo con los reportes buscados. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R8.2, R2.1 Casos de uso: Consultar RP, Listar RP. Notas: --- Excepciones: Si no existe la colección, mostrar mensaje de error. Salida: --- Precondiciones: La colección está habitada. Poscondiciones: -Se desasociaron las instancias de ReportedeProblema, que no eran las buscadas.
26
Nombre: Ordenar _ reportes () Responsabilidades: Ordenar los reportes de un vector de reportes según el atributo entregado. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R2.2, R2.1, R8.2, R8.3 Casos de uso: Consultar RP, Listar RP, Actualizar RP. Notas: --- Excepciones: Si no existen reportes que ordenar, se envía un mensaje. Salida: --- Precondiciones: Existen reportes. Poscondiciones: -Se redistribuyeron los elementos del vector. Nombre: Mostrar_reporte () Responsabilidades: Desplegar los datos del reporte y sus opciones. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R2.1, R2.2, R8.2, R8.3 Casos de uso: Consultar RP, Listar RP, Actualizar RP. Notas: --- Excepciones: Si el reporte es nulo, mostrar mensaje de error. Salida: --- Precondiciones: El reporte no es nulo. Poscondiciones: --- Nombre: Actualizar (id_RP: entero, tipo: entero, aplicación: texto,
descripción: texto, ID: entero) Responsabilidades: Actualizar los campos de una instancia de reporte. Tipo: Sistema. Referencias cruzadas: Funciones del sistema. R2.1, R2.2, R8.2, R8.3, R2.3 Casos de uso: Actualizar RP. Notas: --- Excepciones: El reporte referenciado no existe. Campos Nulos. Salida: --- Precondiciones: El reporte referenciado existe. Poscondiciones: -Se asignó un Tipo a ReportedeProblema.Tipo. -Se asignó un Estado a ReportedeProblema.Estado. -Se asignó un Id a ReportedePrblema.Id_usuario. -Se asignó una Descripción a ReportedeProblema.Descripción. -Se asignó un Comentario a ReportedeProblema.Comentario. -Se asignó un Nombre a ReportedeProblema.name.
27
Nombre: Ingresar_LOG() Responsabilidades: Ingresar un registro de alguna operación realizada en el sistema. Tipo: Sistema. Referencias cruzadas: Casos de uso: Reportar Problema, Actualizar RP, Crear Lista,
Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista
Notas: --- Excepciones: Si no se pudo ingresar un registro a la base de datos se muestra un mensaje
de error. Salida: --- Precondiciones: El medio de almacenamiento está activo. Poscondiciones: -Se estableció una entrada de Log, en los registros de Log.
28
Nombre: Crear Lista. Actores: Administrador (iniciador). Propósito: Generar una nueva lista de usuarios. Resumen: El administrador ingresa al SAP y se autentica. Luego genera la nueva lista e ingresa los datos de ésta. Finalmente puede o no finalizar su sesión. Tipo: Secundario, Esencial. Referencias Cruzadas: R3.1, R12. Curso Normal de Eventos :
Actores Sistema 1.Este caso de uso comienza cuando el administrador ingresa al SAP e inicia su sesión ingresando username y password.
2.El sistema autentica al administrador verificando la validez del username y el password.
3.El administrador accede a la administración de listas e ingresa los datos de la nueva lista
4.El sistema ingresa los datos, genera la nueva lista e ingresa el LOG correspondiente.
5.El administrador puede o no finalizar su sesión.
Curso Alternativo de Eventos. Línea 2: El sistema no autentica al administrador, entonces muestra mensaje de error. Línea 4: No es posible crear la nueva lista, entonces muestra mensaje de error y advertencia.
29
Modelo Conceptual Caso de Uso: Crear Lista. Diagrama de Caso de Uso: Crear Lista. Diagrama de Secuencia Caso de Uso: Crear Lista.
: Administrador : Sistema
LogIn( )
Ingresar_LOG()
Ingesar_Atributos_Lista( )
Crear ListaActualizar Lista
<<usa>>
Administrador
id_usuarioNombree-mail
tipo
Lista.
Id_ListaDescriptionTipo
crea Nueva1..1 1..n
30
Contratos Caso de Uso: Crear Lista. Nombre: LogIn (username: texto, password: texto) Responsabilidades: Iniciar una sesión, al mismo tiempo que autentica a un usuario y su tipo. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R13
Casos de uso: Reportar problema, Consultar RP, Actualizar RP, Crear lista, Actualizar lista, Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista, Consultar Estadística.
Notas: Utilizar el acceso rápido a la base de datos. Excepciones: Si el usuario no es válido, indicar que se cometió un error de autenticación. Salida: --- Precondiciones: El Usuario existe en el sistema, su password es auténtica. Poscondiciones: - Si se trata de un usuario no instanciado, se creo una instancia de Usuario
- Si se trata de un usuario no instanciado , se asignó un username a Usuario.Nombre. -Si se trata de un usuario no instanciado , se asignó id a Usuario.Id_usuario - Si se trata de un usuario no instanciado , se asignó tipo a Usuario.tipo - Si se trata de un usuario no instanciado , se asignó email a Usuario.email -Si se trata de un usuario no instanciado , se asignó un estado a Usuario.Estado
Nombre: ListasdeUsuarios(tipo_lista:bolean,descripcion,tipo:entero,
(id_lista:entero,privilegios:entero)) Responsabilidades: Crear y Ingresar los atributos de una lista o una lista de usuarios. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R3.1 Casos de uso: Crear lista Notas: --- Excepciones: Si los atributos no son válidos, mostrar mensaje de error. Salida: --- Precondiciones: --- Poscondiciones: -Se creó una instancia de ListadeUsuarios . -Se asignó tipo a ListadeUsuarios.tipo -Se asoció un id a ListadeUsuarios.id_lista
-Se asignó nulo a lista_de_usuarios.usuarios -Se asigno privilegios a ListadeUsuarios.privilegios
31
Nombre: Ingresar_LOG() Responsabilidades: Ingresar un registro de alguna operación realizada en el sistema. Tipo: Sistema. Referencias cruzadas: Casos de uso: Reportar Problema, Actualizar RP, Crear Lista,
Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista
Notas: --- Excepciones: Si no se pudo ingresar un registro a la base de datos se muestra un mensaje
de error. Salida: --- Precondiciones: El medio de almacenamiento está activo. Poscondiciones: -Se estableció una entrada de Log, en los registros de Log.
32
Nombre: Actualizar Lista. Actores: Administrador (iniciador). Propósito: Administrar las funciones del SAP. Resumen: El Administrador ingresa al SAP y se autentica. Luego decide que operación realizar en el sistema. El sistema guarda un LOG de las operaciones realizadas. Finalmente el administrador puede o no finalizar su sesión. Tipo: Primario, Esencial. Referencias Cruzadas: Curso Normal de Eventos :
Actores Sistema 1.Este caso de uso comienza cuando el Administrador ingresa al SAP e inicia su sesión, ingresando username y password.
2.El sistema autentica al administrador, verificando la validez del username y password ingresados.
3.El administrador decide que operación realizar sobre el sistema: -Agregar Usuario al Sistema (ver Caso de Uso Agregar Usuario Sistema). -Eliminar Usuario del Sistema (ver Caso de Uso Eliminar Usuario Sistema). -Agregar Usuario a Lista (ver Caso de Uso Agregar Usuario Lista). -Eliminar Usuario de Lista (ver Caso de Uso Eliminar Usuario Lista).
4.Fin Caso de Uso. Curso Alternativo de Eventos. Línea 2: El sistema no autentica al administrador, entonces muestra mensaje de error.
33
Modelo Conceptual Caso de Uso: Actualizar Lista. Diagrama Caso de Uso: Actualizar Lista. Diagrama de Secuencia Caso de Uso: Actualizar Lista. Este diagrama de secuencias, engloba a los diagramas de secuencia de los Casos de Uso que pertenecen a este Caso. Por lo cual éste no se incluye en el informe. Contratos Caso de Uso: Actualizar Lista. Este Caso de Uso engloba a los Casos de Uso: Agregar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista, Eliminar Usuario Sistema y Crear Lista, para ver los contratos de este caso de uso ver Contratos de los casos de uso ya mencionados.
Administrador
id_userNombre
Actualizar Lista
Agregar Usuario Sistema Agregar Usuario Lista
Eliminar Usuario Lista
Eliminar Usuario Sistema
Crear Lista
<<usa>> <<usa>>
<<usa>>
<<usa>>
<<usa>>
Lista de Usuarios
id_listatipoPrivilegios
Usuario Lista
id_usuarioNombreestado
tipoemail
Sistema
es Inscrito/elimnado
el Agregado/Eliminado
Administrador
id_usuarioNombree-mailtipo
Agrega/elimina a
Lista.Id_ListaDescriptionTipo
crea Nueva1..1 1..n
pertenece a1..n 1..n
34
Nombre: Agregar Usuario Sistema. Actores: Administrador (iniciador). Propósito: Ingresar un nuevo usuario al sistema. Resumen: El administrador ingresa al SAP y se autentica. Luego ingresa los datos del nuevo usuario al sistema, el sistema lo ingresa y crea un nuevo LOG. Finalmente el administrador puede o no finalizar su sesión. Tipo: Primario, Esencial. Referencias Cruzadas: R4.1, R4.2, R4.3, R12. Curso Normal de Eventos :
Actores Sistema 1.Este caso de uso comienza cuando el administrador ingresa al SAP e inicia su sesión, ingresando username y password.
2.El sistema autentica al administrador, verificando la validez del username y password ingresados.
3.El administrador accede a la administración de listas e ingresa los datos del nuevo usuario.
4.El sistema verifica que el nuevo usuario no exista previamente en la BD, ingresa el nuevo registro y crea el nuevo LOG.
5.El administrador puede o no finalizar su sesión.
Curso Alternativo de Eventos. Línea 2: El sistema no autentica al administrador, entonces muestra mensaje de error. Línea 4: No es posible crear verificar la existencia del usuario, entonces muestra mensaje de error y advertencia.
35
Modelo Conceptual Caso de Uso: Agregar Usuario Sistema. No tiene. Diagrama de Caso de Uso: Agregar Usuario Sistema. Diagrama de Secuencia Caso de Uso: Agregar Usuario Sistema.
: Administrador : Sistema
LogIn( )
Ingresar_Datos_Usuario( )
Ingresar_LOG()
Ingresar_Usuario( )
Agregar Usuario SistemaAdministrador
id_userNombre
36
Contratos Caso de Uso: Agregar Usuario Sistema. Nombre: LogIn (username: texto, password: texto) Responsabilidades: Iniciar una sesión, al mismo tiempo que autentica a un usuario y su tipo. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R13
Casos de uso: Reportar problema, Consultar RP, Actualizar RP, Crear lista, Actualizar lista, Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista, Consultar Estadística.
Notas: Utilizar el acceso rápido a la base de datos. Excepciones: Si el usuario no es válido, indicar que se cometió un error de autenticación. Salida: --- Precondiciones: El Usuario existe en el sistema, su password es auténtica. Poscondiciones: - Si se trata de un usuario no instanciado, se creo una instancia de Usuario
- Si se trata de un usuario no instanciado , se asignó un username a Usuario.Nombre. - Si se trata de un usuario no instanciado , se asignó id a Usuario.Id_usuario - Si se trata de un usuario no instanciado , se asignó tipo a Usuario.tipo - Si se trata de un usuario no instanciado , se asignó email a Usuario.email -Si se trata de un usuario no instanciado , se asignó Estado a Usuario.Estado.
Nombre: AgregarUsuarioSistema(usuario) Responsabilidades: Ingresar de manera permanente un usuario al sistema. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R4.1, R4.3 Casos de uso: Agregar usuario sistema. Notas: --- Excepciones: Si la instancia de usuario es nula, indicar error. Salida: --- Precondiciones: La instancia de usuario no debe ser nula. Poscondiciones: -Se agregó un nuevo registro de usuario. -Se creó una instancia de Usuario . -Se asignó nombre a Usuario.nombre -Se asignó email a Usuario.email -Se asignó tipo a Usuario.tipo -Se asoció id a Usuario.id -Se asignó verdadero a Usuario.estado
37
Nombre: Ingresar_LOG() Responsabilidades: Ingresar un registro de alguna operación realizada en el sistema. Tipo: Sistema. Referencias cruzadas: Casos de uso: Reportar Problema, Actualizar RP, Crear Lista,
Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista
Notas: --- Excepciones: Si no se pudo ingresar un registro a la base de datos se muestra un mensaje
de error. Salida: --- Precondiciones: El medio de almacenamiento está activo. Poscondiciones: -Se establecio una entrada de Log, en los registros de Log.
38
Nombre: Eliminar Usuario Sistema. Actores: Administrador (iniciador). Propósito: Marcar como eliminado a un usuario del sistema. Resumen: El administrador ingresa al SAP y se autentica. Luego busca al usuario que desea eliminar del sistema, el sistema lo marca como eliminado y crea un nuevo LOG. Finalmente el administrador puede o no finalizar su sesión. Tipo: Secundario, Esencial. Referencias Cruzadas: R5.1, R7.1, R12. Curso Normal de Eventos :
Actores Sistema 1.Este caso de uso comienza cuando el administrador ingresa al SAP e inicia su sesión, ingresando username y password.
2.El sistema autentica al administrador verificando la validez del username y password ingresados.
3.El administrador accede a la administración de listas e ingresa algún atributo del usuario(s) a eliminar.
4.El sistema busca al o los usuarios dado el atributo especificado, guardándolos en una lista. Luego muestra una lista con los usuarios encontrados
5. El usuario selecciona el o los usuarios a eliminar.
6.El sistema marca como eliminado al o los usuarios que fueron seleccionados
7.El administrador puede o no finalizar su sesión.
Curso Alternativo de Eventos. Línea 2: El sistema no autentica al administrador, entonces muestra mensaje de error. Línea 4: No es posible buscar al usuario, entonces muestra mensaje de error y advertencia.
39
Modelo Conceptual Caso de Uso: Eliminar Usuario Sistema. No tiene Diagrama de Caso de Uso: Eliminar Usuario Sistema. Diagrama de Secuencias Caso de Uso: Eliminar Usuario Sistema.
: Administrador : Sistema
LogIn( )
Buscar_Usuario( )
Eliminar_Usuario( )
Ingresar_LOG( )
Actualizar Lista Eliminar Usuario Sistema
<<usa>>
40
Contratos Caso de Uso: Eliminar Usuario Sistema. Nombre: LogIn (username: texto, password: texto) Responsabilidades: Iniciar una sesión, al mismo tiempo que autentica a un usuario y su tipo. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R13
Casos de uso: Reportar problema, Consultar RP, Actualizar RP, Crear lista, Actualizar lista, Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista, Consultar Estadística.
Notas: Utilizar el acceso rápido a la base de datos. Excepciones: Si el usuario no es válido, indicar que se cometió un error de autenticación. Salida: --- Precondiciones: El Usuario existe en el sistema, su password es auténtica. Poscondiciones: - Si se trata de un usuario no instanciado, se creo una instancia de Usuario
- Si se trata de un usuario no instanciado , se asignó un username a Usuario.Nombre. - Si se trata de un usuario no instanciado , se asignó id a Usuario.Id_usuario - Si se trata de un usuario no instanciado , se asignó tipo a Usuario.tipo - Si se trata de un usuario no instanciado , se asignó email a Usuario.email -Si se trata de un usuario no instanciado , se asignó Estado a Usuario.Estado.
Nombre: Buscar_usuario (atributos) Responsabilidades: Buscar un usuario específico, dado cierto atributo. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R5.1, R7.1 Casos de uso: Eliminar usuario. Notas: --- Excepciones: Si los atributos no son válidos, indicar error. Salida: --- Precondiciones: Usuarios existentes. Poscondiciones: -Se crearon tantas instancias de Usuario como usuarios fueron encontrados. -Se asignaron los atributos de los usuarios y sus instancias. Nombre: Eliminar_usuario (id_usuario) Responsabilidades: Marca como Eliminado a un usuario del sistema. Tipo: Sistema. Refere ncias cruzadas: Funciones del sistema: R5.1, R7.1 Casos de uso: Eliminar usuario sistema. Notas: --- Excepciones: Id inválido. Salida: --- Precondiciones: Existencia de usuarios en el sistema, si estado esta activo. Poscondiciones: -Se asignó falso a la instancia Usuario.estado.
41
Nombre: Ingresar_LOG() Responsabilidades: Ingresar un registro de alguna operación realizada en el sistema. Tipo: Sistema. Referencias cruzadas: Casos de uso: Reportar Problema, Actualizar RP, Crear Lista,
Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista
Notas: --- Excepciones: Si no se pudo ingresar un registro a la base de datos se muestra un mensaje
de error. Salida: --- Precondiciones: El medio de almacenamiento está activo. Poscondiciones: -Se establecio una entrada de Log, en los registros de Log.
42
Nombre: Agregar Usuario Lista. Actores: Administrador (iniciador). Propósito: Inscribir en una lista a algún usuario registrado en el sistema. Resumen: El administrador ingresa al SAP y se autentica. Luego busca al usuario y la lista en la cual desea inscribir, inscribe y el sistema crea un LOG de la acción. Finalmente el administrador puede o no finalizar su sesión. Tipo: Primario, Esencial. Referencias Cruzadas: R5.1, R5.2, R5.3, R12. Curso Normal de Eventos :
Actores Sistema 1.Este caso de uso comienza cuando el administrador ingresa al SAP e inicia su sesión, ingresando username y password.
2.El sistema autentica al administrador verificando la validez del username y password ingresados.
3.El administrador ingresa algún atributos del usuario a inscribir.
4.El sistema busca al usuario en cuestión y muestra las listas existentes en el sistema.
5.El administrador selecciona las listas en las cuales desea inscribir al usuario.
6.El sistema inscribe al usuario y crea un registro LOG.
7.El administrador puede o no finalizar su sesión.
Curso Alternativo de Eventos. Línea 2: El sistema no autentica al administrador, entonces muestra mensaje de error. Línea 4: No es posible buscar al usuario, entonces muestra mensaje de error y de advertencia. Línea 6: No es posible inscribir al usuario, entonces muestra mensaje de error y de advertencia.
43
Modelo Conceptual Caso de Uso: Agregar Usuario Lista. Diagrama de Caso de Uso: Agregar Usuario Lista. Diagrama de Secuencia Caso de Uso: Agregar Usuario Lista.
: Administrador : Sistema
LogIn( )
Buscar_Usuario( )
Ingresar_LOG( )
listar_listas( )
Inscribir_Usuario( )
Actualizar Lista Agregar Usuario Lista
<<usa>>
Lista de Usuariosid_listatipoPrivilegios
Administrador
id_usuarioNombree-mailtipo
Usuario Lista
id_usuarioNombreestado
tipoemail
Inscribe a1..n 1..n
es inscrito1..n 1..n
44
Contratos Caso de Uso: Agregar Usuario Lista. Nombre: LogIn (username: texto, password: texto) Responsabilidades: Iniciar una sesión, al mismo tiempo que autentica a un usuario y su tipo. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R13
Casos de uso: Reportar problema, Consultar RP, Actualizar RP, Crear lista, Actualizar lista, Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista, Consultar Estadística.
Notas: Utilizar el acceso rápido a la base de datos. Excepciones: Si el usuario no es válido, indicar que se cometió un error de autenticación. Salida: --- Precondiciones: El Usuario existe en el sistema, su password es auténtica. Poscondiciones: - Si se trata de un usuario no instanciado, se creo una instancia de Usuario
- Si se trata de un usuario no instanciado , se asignó un username a Usuario.Nombre. - Si se trata de un usuario no instanciado , se asignó id a Usuario.Id_usuario - Si se trata de un usuario no instanciado , se asignó tipo a Usuario.tipo - Si se trata de un usuario no instanciado , se asignó email a Usuario.email -Si se trata de un usuario no instanciado , se asignó Estado a Usuario.Estado.
Nombre: Buscar_usuario (atributos) Responsabilidades: Buscar un usuario específico, dado cierto atributo. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R5.1, R7.1 Casos de uso: Eliminar usuario. Notas: --- Excepciones: Si los atributos no son válidos, indicar error. Salida: --- Precondiciones: Usuarios existentes. Poscondiciones: -Se crearon tantas instancias de Usuario como usuarios fueron encontrados. -Se asignaron los atributos de los usuarios y sus instancias. Nombre: Inscribir_usuario (usuario, ListadeUsuarios) Responsabilidades: Asignar un usuario a una lista. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R5.1, R5.2, R5.3 Casos de uso: Agregar usuario lista. Notas: --- Excepciones: Parámetros inválidos, usuario inexistente, lista inexistente, mostrar mensaje
de error, cancelar la operación. Salida: --- Precondiciones: Existe lista y existe usuario. Poscondiciones: -Se asoció una instancia de usuario a un elemento de
ListadeUsuario.Usuarios.
45
Nombre: Ingresar_LOG() Responsabilidades: Ingresar un registro de alguna operación realizada en el sistema. Tipo: Sistema. Referencias cruzadas: Casos de uso: Reportar Problema, Actualizar RP, Crear Lista,
Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista
Notas: --- Excepciones: Si no se pudo ingresar un registro a la base de datos se muestra un mensaje
de error. Salida: --- Precondiciones: El medio de almacenamiento está activo. Poscondiciones: -Se establecio una entrada de Log, en los registros de Log.
46
Nombre: Eliminar Usuario Lista. Actores: Administrador (iniciador). Propósito: Des-inscribe un usuario de alguna lista específica. Resumen: El administrador ingresa al SAP y se autentica. Luego busca al usuario que desea des-inscribir de alguna lista, lo marca como des-inscrito y crea un nuevo LOG. Finalmente el administrador puede o no finalizar su sesión. Tipo: Secundario, Esencial. Referencias Cruzadas: R5.1, R6.1, R12. Curso Normal de Eventos :
Actores Sistema 1.Este caso de uso comienza cuando el administrador ingresa al SAP e inicia su sesión, ingresando username y password.
2.El sistema autentica al administrador verificando la validez del username y password.
3.El administrador ingresa algún atributo del usuario a des-inscribir.
4.El sistema busca el usuario y muestra las listas en las que está inscrito.
5.El administrador selecciona la(s) listas de las cuales desea des-inscribir al usuario.
6.El sistema marca como des-inscrito al usuario y genera el LOG correspondiente.
7.El administrador puede o no finalizar su sesión.
Curso Alternativo de Eventos. Línea 2: El sistema no autentica al administrador, entonces muestra mensaje de error. Línea 4: No es posible buscar al usuario, entonces muestra mensaje de error y de advertencia. Línea 6: No es posible des-inscribir al usuario, entonces muestra mensaje de error y de advertencia.
47
Modelo Conceptual Caso de Uso: Eliminar Usuario Lista. Diagrama de Caso de Uso: Eliminar Usuario Lista. Diagrama de Secuencia Caso de Uso: Eliminar Usuario Lista.
: Administrador : Sistema
LogIn( )
Buscar_Usuario( )
Desinscribir_Usuario( )
Ingresar_LOG( )
Administrador
id_userNombre
Eliminar Usuario Lista
Administrador
id_usuarioNombree-mail
tipo
Usuario Lista
id_usuarioNombreestado
tipoemail
Lista de Usuarios
id_listatipoPrivilegios
desinscribe es desinscrito
48
Contratos Caso de Uso Eliminar Usuario Lista. Nombre: LogIn (username: texto, password: texto) Responsabilidades: Iniciar una sesión, al mismo tiempo que autentica a un usuario y su tipo. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R13
Casos de uso: Reportar problema, Consultar RP, Actualizar RP, Crear lista, Actualizar lista, Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista, Consultar Estadística.
Notas: Utilizar el acceso rápido a la base de datos. Excepciones: Si el usuario no es válido, indicar que se cometió un error de autenticación. Salida: --- Precondiciones: El Usuario existe en el sistema, su password es auténtica. Poscondiciones: - Si se trata de un usuario no instanciado, se creo una instancia de Usuario
- Si se trata de un usuario no instanciado , se asignó un username a Usuario.Nombre. - Si se trata de un usuario no instanciado , se asignó id a Usuario.Id_usuario - Si se trata de un usuario no instanciado , se asignó tipo a Usuario.tipo - Si se trata de un usuario no instanciado , se asignó email a Usuario.email -Si se trata de un usuario no instanciado , se asignó Estado a Usuario.Estado.
Nombre: Buscar_usuario (atributos) Responsabilidades: Buscar un usuario específico, dado cierto atributo. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R5.1, R7.1 Casos de uso: Eliminar usuario. Notas: --- Excepciones: Si los atributos no son válidos, indicar error. Salida: --- Precondiciones: Usuarios existentes. Poscondiciones: -Se crearon tantas instancias de Usuario como usuarios fueron encontrados. -Se asignaron los atributos de los usuarios y sus instancias. Nombre: Desinscribir_usuario (usuario, ListdeUsuario) Responsabilidades: Desasignar un usuario de una lista. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R5.1, R7.1 Casos de uso: Eliminar usuario lista. Notas: --- Excepciones: Parámetros inválidos, usuario inexistente, lista inexistente, mostrar mensaje
de error, cancelar la operación. Salida: --- Precondiciones: Existe lista y existe usuario. Poscondiciones: -Se desasoció una instancia de Usuario de un elemento
ListadeUsuario.usuarios.
49
Nombre: Ingresar_LOG() Responsabilidades: Ingresar un registro de alguna operación realizada en el sistema. Tipo: Sistema. Referencias cruzadas: Casos de uso: Reportar Problema, Actualizar RP, Crear Lista,
Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista
Notas: --- Excepciones: Si no se pudo ingresar un registro a la base de datos se muestra un mensaje
de error. Salida: --- Precondiciones: El medio de almacenamiento está activo. Poscondiciones: -Se establecio una entrada de Log, en los registros de Log.
50
Nombre: Consultar Estadística. Actores: Administrador, Usuario de Lista. (iniciadores). Propósito: Dar a conocer los resultados del análisis estadístico semanal. Resumen: El usuario ingresa al SAP, se autentica y pide el reporte estadístico. El sistema busca el reporte y lo muestra. Finalmente el usuario puede o no finalizar su sesión. Tipo: Primario, Esencial. Referencias Cruzadas: R11.1, R11.2. Curso Normal de Eventos :
Actores Sistema 1.Este caso de uso comienza cuando el usuario ingresa al SAP e inicia sesión, ingresando username y password.
2.El sistema autentica al usuario, verificando la validez del username y password.
3.El usuario pide el reporte semanal. 4.El sistema busca el reporte correspondiente
a esa semana y lo muestra. 5.El usuario puede o no finalizar su sesión. Curso Alternativo de Eventos. Línea 2: El sistema no autentica al usuario, entonces muestra mensaje de error. Línea 4: No es posible buscar el reporte, entonces muestra mensaje de error y de advertencia.
51
Modelo conceptual Caso de Uso: Consultar Estadística. Diagrama de Caso de Uso: Consultar Estadística. Diagrama de Secuencia Caso de Uso: Consultar Estadística.
: Usuario
: Sistema : Estadistica
LogIn( )
Buscar_Estadistica( )
Mostrar_Estadistica( )
Consultar EstadisticaUsuario Lista
id_userNombre
Administrador
id_userNombre
Administrador
id_usuarioNombree-mail
tipo
Usuario Lista
id_usuarioNombreestado
tipoemail
EstadisticaFechaDetallecontenido
consulta1..1 1..n
consulta1..n1..n
52
Contratos Caso de Uso: Consultar Estadística. Nombre: LogIn (username: texto, password: texto) Responsabilidades: Iniciar una sesión, al mismo tiempo que autentica a un usuario y su tipo. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R13
Casos de uso: Reportar problema, Consultar RP, Actualizar RP, Crear lista, Actualizar lista, Agregar Usuario Sistema, Eliminar Usuario Sistema, Agregar Usuario Lista, Eliminar Usuario Lista, Consultar Estadística.
Notas: Utilizar el acceso rápido a la base de datos. Excepciones: Si el usuario no es válido, indicar que se cometió un error de autenticación. Salida: --- Precondiciones: El Usuario existe en el sistema, su password es auténtica. Poscondiciones: - Si se trata de un usuario no instanciado, se creo una instancia de Usuario
-Si se trata de un usuario no instanciado , se asignó un username a Usuario.Nombre. - Si se trata de un usuario no instanciado , se asignó id a Usuario.Id_usuario - Si se trata de un usuario no instanciado , se asignó tipo a Usuario.tipo - Si se trata de un usuario no instanciado , se asignó email a Usuario.email -Si se trata de un usuario no instanciado , se asignó Estado a
Usuario.Estado. Nombre: Buscar_estadistica (atributo) Responsabilidades: Buscar un reporte estadístico de acuerdo a algún atributo entregado. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R11.1, R11.2 Casos de uso: Consultar estadística. Notas: --- Excepciones: El atributo es no válido o nulo, no existe estadística. Salida: --- Precondiciones: Existen estadísticas. Poscondiciones: -Se creó una instancia Estadística. Nombre: Mostrar_estadística (estadística) Responsabilidades: Desplegar un reporte de estadística entregado. Tipo: Sistema. Referencias cruzadas: Funciones del sistema: R11.1, R11.2 Casos de uso: Consultar estadística. Notas: --- Excepciones: Objeto Estadística nulo. Salida: --- Precondiciones: Existen estadísticas en el sistema. Poscondiciones: ---
53
3.5 Modelo de Dominio. 3.5.1 Entidades reconocidas.
Entidad Descripción Usuario final Es quien usa el sistema (a quien está dirigido). Reporta los
problemas, pues es quien hace uso de las aplicaciones. Usuario de lista Es quien obtiene la información de los reportes de problema para su
solución. Administrador Es quien maneja el sistema y los usuarios , tiene control sobre todas
las operaciones que se realizan en el sistema. Mensaje Texto que se le envía a los usuarios de la lista con la identificación de
un usuario final y una descripción del problema. Estadística Entrega un resumen estadístico de las operaciones que se han
realizado en el sistema. Lista de usuarios En donde están contenidos usuarios de lista, los cuales interactúan en
la solución de los reportes de problema. Reporte de Problema Es una síntesis de un problema que sucedió en alguna aplicación, es
decir, se detalla de manera global como ha sucedido el problema.
54
3.5.2 Modelo de dominio.
Usuario_lista
NombreId_usuarioe-mailtipoestadoUsuario_final
NombreId_usuarioe-mailtipoestado
AdministradorNombreId_usuario = 0e-mailtipo
Lista de UsuariosId_listaPrivilegiostipo
Reporte de Problema
TipoEstadoId_UsuarioDescripcionComentarioname
Estadistica
FechaDetalleContenido
MensajeId_mensajeId_reporteDescripcionDestino
1..n
1..nreporta
1..n
1..n
actualiza
1..n
1..n
se envia
0..n
1..n
se genera
1..n
1..n
es miembro
0..1
1..n
administra
0..1
1..n
administra
1..n 0..1administra
55
3.5.2.1 Entidades agrupadas en paquetes. 3.5.2.2 Paquetes y entidades.
Comunicacion
reportes listas
Usuarios
reportes
Administrador
NombreId_usuario = 0e-mailtipo
(from Usuarios)
Usuario_final
NombreId_usuarioe-mailtipoestado
(from Usuarios)
0..1 1..n
Usuario_lista
NombreId_usuarioe-mailtipoestado
(from Usuarios)
0..1
1..n
listas
ListaId_listaTipoDescripcion
Lista de UsuariosId_listaPrivilegiostipo
1..n 1..n
56
Comunicacion
Usuarios
AdministradorNombreId_usuario = 0e-mailtipo
Usuario_finalNombreId_usuarioe-mailtipoestado
0..1
1..n
Usuario_listaNombreId_usuarioe-mailtipoestado
0..1
1..n
EstadisticaFechaDetalleContenido
MensajeId_mensajeId_reporteDescripcionDestino
57
3.5.3 Matriz de Rastreabilidad.
Clases del dominio
Rep
orta
r pr
oble
ma
List
ar R
P
Act
ualiz
ar R
P
Con
sulta
r RP
Con
sula
r es
tadí
stic
a
Agr
egar
usu
ario
Elim
inar
usu
ario
Agr
egar
usu
ario
a
lista
El
imin
ar u
suar
io
de li
sta
Cre
ar li
sta
Elim
inar
list
a
Usuario final X X X
Usuario lista X X X X
Administrador X X X X X X X X X X
Problema X X X X
Mensaje X
Estadística X
Lista X X X X X X
Lista usuario X X X X X
Aplicación X X X X
Reporte de Problema X X X X
4. VALIDACIÓN El prototipo del caso de Uso Reportar problema, se implementó de la manera mostrada, pues es la sucesión de eventos lógicos, mediante los cuales se desarrolla la operación de reportar un problema. Respecto a la selección del caso de uso, este fue escogido pues es el que más representa la funcionalidad y los objetivos del software.
58
5. DISEÑO 5.1 Derivación del Modelo de Software 5.1.1 Casos de Uso Reales, Diagramas de Clases y Diagramas de Interacción (Secuencia) Nombre: Reportar Problema. Actores: Usuario Final (iniciador) Propósito: Generar un nuevo reporte de problema. Resumen: Un Usuario Final, al encontrar una falla en una aplicación de uso cotidiano, invoca al SAP, se autentica en el sistema e inicia un reporte de problema. Introduce los datos referentes acerca del problema y lo envía. Concluye la operación cuando el reporte ha sido recibido por el sistema. Finalmente el usuario finaliza su sesión en el sistema. Tipo: Primario, Real. Referencias Cruzadas: R13, R1.1, R1.2, R1.3.
Ventana 1.1 Ventana 1.2
Ventana 1.3
59
Curso Normal de Eventos: Actores Sistema 1. Este caso de uso comienza cuando el usuario final encuentra un problema en una aplicación, llama al SAP e inicia su sesión tecleando en la Ventana 1.1 su username en A.1 y su password en A.2. Luego se oprime A.3
2. El sistema autentica al usuario verificando si el username y el password corresponden. Se presenta la Ventana 1.2
3. El usuario oprime el botón B.1 de la Ventana 1.2
4. Presenta la Ventana 1.3 5. Reporta el problema, tecleando el tipo en C.1, nombre de la aplicación en C.2, descripción y comentarios de éste en C.3, y lo envía al sistema, oprimiendo C.4
6. El sistema recibe el reporte, le asigna un id y un estado y despacha una notificación a una lista de usuarios específica. Luego ingresa el registro del LOG y presenta nuevamente la Ventana 1.2.
7. El usuario final puede finalizar su sesión oprimiendo el botón B.3 de la Ventana 1.2.
Curso Alternativo de Eventos.
Ventana 1.4 Línea 2: El sistema no autentica al usuario, entonces cancela el inicio de la sesión y muestra un mensaje de error (Ventana 1.4). Se oprime K.1 para continuar. Línea 6: El sistema espera por un tiempo determinado y no recibe el reporte, entonces muestra un mensaje de alerta. Línea 6: El sistema es incapaz de despachar la notificación, entonces se le envía un mensaje al administrador informando que se ha generado un nuevo reporte en la BD y que éste no ha sido despachado.
60
Diagrama de Clases Caso de Uso: Reportar Problema
ListadeUsuarios
Id_lista : intPrivilegios : inttipo : intUsuarios : Vector
LeerLista()AgregarUsuario()EliminarUsuario()ModificarLista()InscribirUsuarioLista()DesInscribirUsuarioLista()ListadeUsuarios()
(from Listas)
Usuario_lista
ActualizarReporte()ConsultarEstadistica()BuscarEstadistica()
(from Usuarios)
Usuario_final
IngresarReporte()
(from Usuarios)
Mensaje
Id_mensajeId_reporteDescripcionDestino
EnviarMensaje()
(from Comunicacion)
1..n
1
1..n
1lee
1..n 11..n 1
comunica
ReporteDeProblema
Tipo : intEstado : booleanId_Usuario : intDescripcion : StringComentario : Stringname : String
EnviarMensaje()MostrarReporte()Actualizar()BuscarReporte()ListarReportes()ReporteDeProblema()ReporteDeProblema()
(from Reportes)
1..n0..1
1..n0..1
Genera
1..n
1..n
+theMensaje1..n
1..nenvia
<<communicate>>
61
Diagrama de Secuencia de las Clases Caso de Uso: Reportar Problema
: Usuario_final : ReporteDeProblema
: Mensaje : ListadeUsuarios
: IfaceLog
ReporteDeProblema( )
EnviarMensaje( )
LeerLista( )
Ingresar_Log( )
62
Nombre: Consultar RP Actores: Usuario Final, Usuario de Lista .(iniciadores) Propósito: Mostrar el estado de un reporte ya generado. Resumen: Un Usuario, ya sea final o de lista, ingresa al SAP, inicia su sesión y pide un listado de reportes de acuerdo a su clase (Final o de Lista) y consulta el estado de uno o más de los reportes listados. Luego puede o no finalizar su sesión. Tipo: Primario, Real. Referencias Cruzadas: R2.1, R2.2, R13.
Ventana 2.1
Ventana 2.2 Ventana 2.3
Ventana 2.4
63
Curso Normal de Eventos: Actores Sistema 1.Este caso de uso comienza cuando un usuario ingresa al SAP e inicia su sesión tecleando en la Ventana 2.1 su username en A.1 y su password en A.2. Luego se oprime A.3
2.El sistema autentica al usuario verificando si el username y el password son válidos. Si el usuario es un usuario final, presenta la Ventana 2.2, si corresponde a un usuario de lista, presenta la Ventana 2.3
3.El usuario pide un listado de los reportes, oprimiendo B.2 en la Ventana 2.2 si es un usuario final, u oprimiendo E.1 en la Ventana 2.3 si es un usuario de lista.
4.El sistema, busca (dependiendo del usuario) y guarda los reportes en una colección. Luego los muestra (ver caso de uso Listar RP).
5.El usuario selecciona el reporte que desea consultar, oprimiendo D.1 en la Ventana 2.4.
6.El sistema busca el reporte y muestra sus atributos y opciones en D.2
7.El usuario lo revisa y puede o no finalizar su sesión, oprimiendo B.3 en la Ventana 2.2 si es un usuario final, u oprimiendo E.4 en la Ventana 2.3 si es un usuario de lista.
Curso Alternativo de Eventos. Línea 2: El sistema no autentica al usuario, entonces muestra mensaje de error (Ventana 2.5). Se oprime K.1 para continuar.
. Ventana 2.5 Línea 4: El sistema no puede verificar la clase ni buscar los reportes, entonces envía un mensaje de error (Ventana 2.5). Se oprime K.1 para continuar. Línea 6: El sistema no puede buscar el reporte, entonces envía un mensaje de error (Ventana 2.5). Se oprime K.1 para continuar.
64
Nombre: Listar RP. Actores: Usuario Final, Usuario Lista Propósito: Mostrar una lista con los reportes de problema requeridos. Resumen: El sistema lee los registros de los reportes de problema dado un criterio de clase referente a los usuarios. Los ordena dado un atributo y luego los lista. Tipo: Primario, Real. Referencias Cruzadas: R8.2, R8.3.
Ventana 3.1 Ventana 3.2 Curso Normal de Eventos: Actores Sistema 1.Este caso de uso comienza cuando Listar RP es llamado.
2.El sistema verifica la clase del usuario y busca los reportes a los que éste puede acceder. Luego los muestra, presentando la Ventana 3.1
3.El usuario puede ordenar los reportes por algún criterio y acceder a un reporte, oprimiendo D.2.
Curso Alternativo de Eventos. Línea 2: Es imposible verificar la clase del usuario, entonces se interrumpe la operación. Se envía un mensaje de error (Ventana 3.2). Se oprime K.1 para continuar.
65
Diagrama de Clases Caso de Uso: Listar RP.
Usuario_final
IngresarReporte()
(from Usuarios)
ReporteDeProblema
Tipo : intEstado : booleanId_Usuario : intDescripcion : StringComentario : Stringname : String
EnviarMensaje()MostrarReporte()Actualizar()BuscarReporte()ListarReportes()ReporteDeProblema()ReporteDeProblema()
(from Reportes)
1..n
0..1
1..n
0..1
Lista_
Usuario_lista
ActualizarReporte()ConsultarEstadistica()BuscarEstadistica()
(from Usuarios)
1..n
0..1
1..n
0..1
Lista
66
Nombre: Actualizar RP. Actores: Usuario de Lista (iniciador). Propósito: Modificar los datos de algún reporte. Resumen: El usuario ingresa al SAP, inicia su sesión y pide una lista de reportes, luego actualiza los campos del reporte en cuestión y se ingresa un LOG al sistema. Luego el usuario puede o no finalizar su sesión. Tipo: Primario, Real. Referencias Cruzadas: R2.1, R2.2, R2.3, R12.
Ventana 4.1 Ventana 4.2
Ventana 4.3 Ventana 4.4
67
Curso Normal de Eventos: Actores Sistema 1.Este caso de uso comienza cuando el usuario de lista ingresa al SAP e inicia su sesión tecleando en la Ventana 4.1 su username en A.1 y su password en A.2. Luego se oprime A.3.
2.El sistema autentica al usuario verificando si el username y el password son válidos. Presenta la Ventana 4.2.
3.El usuario pide una lista de reportes (quizás por algún atributo en especial).
4.El sistema genera una colección de reportes (ver caso de uso Listar RP) y los muestra, presentando la Ventana 4.3.
5.El usuario selecciona un reporte para revisarlo, oprimiendo el botón F.1
6.El sistema busca el reporte y lo muestra en F.2
7.El usuario realiza los cambios deseados, tecleando en F.5 y/o en F.6.
8.El sistema ingresa la actualización y el LOG correspondiente, luego muestra confirmación.
9.El usuario puede o no finalizar su sesión, oprimiendo el botón E.4 de la Ventana 4.2.
Curso Alternativo de Eventos. Línea 2: El sistema no autentica al usuario, entonces muestra mensaje de error (Ventana 4.4). Se oprime K.1 para continuar. Línea 4: El sistema no puede generar la lista, entonces muestra un mensaje de error (Ventana 4.4). Se oprime K.1 para continuar. Línea 6: El sistema no puede mostrar el reporte, entonces muestra un mensaje de error (Ventana 4.4). Se oprime K.1 para continuar. Línea 8: No es posible ingresar la actualización, entonces le envía un mensaje al administrador informando que un registro no pudo ser ingresado a la BD.
68
Diagrama de Clases Caso de Uso: Actualizar RP.
ReporteDeProblema
Tipo : intEstado : booleanId_Usuario : intDescripcion : StringComentario : Stringname : String
EnviarMensaje()MostrarReporte()Actualizar()BuscarReporte()ListarReportes()ReporteDeProblema()ReporteDeProblema()
(from Reportes)
Usuario_lista
ActualizarReporte()ConsultarEstadistica()BuscarEstadistica()
(from Usuarios)
1..n1..n 1..n1..n
Actualizar Campos
Diagrama de Secuencia de las Clases Caso de Uso: Actualizar RP.
: Usuario_lista : ReporteDeProblema
: IfaceLog
Actualizar( )
Ingresar_Log( )
69
Nombre: Crear Lista. Actores: Administrador (iniciador). Propósito: Generar una nueva lista de usuarios. Resumen: El administrador ingresa al SAP y se autentica. Luego genera la nueva lista e ingresa los datos de ésta. Finalmente puede o no finalizar su sesión. Tipo: Secundario, Real. Referencias Cruzadas: R3.1, R12.
Ventana 5.1 Ventana 5.2 Curso Normal de Eventos: Actores Sistema 1.Este caso de uso comienza cuando el administrador ingresa al SAP e inicia su sesión tecleando en la Ventana 5.1 su username en A.1 y su password en A.2. Luego se oprime A.3.
2.El sistema autentica al administrador verificando la validez del username y el password. Presenta la ventana 5.2.
3.El administrador accede a la administración de listas e ingresa los datos de la nueva lista: la descripción en L.1 y el tipo en L.2, en la Ventana 5.4 y oprime el botón L.3.
4.El sistema ingresa los datos, genera la nueva lista e ingresa el LOG correspondiente.
5.El administrador puede o no finalizar su sesión, oprimiendo el botón G.7 de la Ventana 5.2.
70
Curso Alternativo de Eventos. Línea 2: El sistema no autentica al administrador, entonces muestra mensaje de error (Ventana 5.4), Se oprime K.1 para continuar.
Ventana 5.4 Línea 4: No es posible crear la nueva lista, entonces muestra mensaje de error y advertencia. Diagrama de Clases Caso de Uso: Crear Lista.
ListadeUsuarios
Id_lista : intPrivilegios : inttipo : intUsuarios : Vector
LeerLista()AgregarUsuario()EliminarUsuario()ModificarLista()InscribirUsuarioLista()DesInscribirUsuarioLista()ListadeUsuarios()
(from Listas)Administrador
Nombre : StringId_usuario : in = 0email : Stringtipo : int
AgregarUsuarioSistema()EliminarUsuarioSistema()CrearLista()EliminarLista()BuscarLista()ListarListas()BuscarUsuario()
(from Usuarios)
1..n1 1..n1
Crea
Diagrama de Secuencia de las Clases Caso de Uso: Crear Lista.
: Administrador
: ListadeUsuarios
: IfaceLog
ListadeUsuarios( )
Ingresar_Log( )
71
Nombre: Actualizar Lista. Actores: Administrador (iniciador). Propósito: Administrar las funciones del SAP. Resumen: El Administrador ingresa al SAP y se autentica. Luego decide que operación realizar en el sistema. El sistema guarda un LOG de las operaciones realizadas. Finalmente el administrador puede o no finalizar su sesión. Tipo: Primario, Real. Referencias Cruzadas:
Ventana 6.1 Ventana 6.2 Curso Normal de Eventos: Actores Sistema 1.Este caso de uso comienza cuando el Administrador ingresa al SAP e inicia su sesión tecleando en la Ventana 6.1 su username en A.1 y su password en A.2. Luego se oprime A.3.
2.El sistema autentica al administrador, verificando la validez del username y password ingresados. Presenta la Ventana 6.2.
3.El administrador decide que operación realizar sobre el sistema: - Si desea Agregar Usuario al Sistema (ver Caso de Uso Agregar Usuario Sistema), oprime el botón G.3. - Si desea Eliminar Usuario del Sistema (ver Caso de Uso Eliminar Usuario Sistema), oprime el botón G.4. - Si desea Agregar Usuario a Lista (ver Caso de Uso Agregar Usuario Lista), oprime el botón G.5.
72
- Si desea Eliminar Usuario de Lista (ver Caso de Uso Eliminar Usuario Lista ), oprime el botón G.6. 4.Fin Caso de Uso. Curso Alternativo de Eventos. Línea 2: El sistema no autentica al administrador, entonces muestra mensaje de error (Ventana 6.3), Se oprime K.1 para continuar.
Ventana 6.3
73
Diagrama de Clases Caso de Uso: Actualizar Lista
ListadeUsuarios
Id_lista : intPrivilegios : inttipo : intUsuarios : Vector
LeerLista()AgregarUsuario()EliminarUsuario()ModificarLista()InscribirUsuarioLista()DesInscribirUsuarioLista()ListadeUsuarios()
(from Listas)Administrador
Nombre : StringId_usuario : in = 0email : Stringtipo : int
AgregarUsuarioSistema()EliminarUsuarioSistema()CrearLista()EliminarLista()BuscarLista()ListarListas()BuscarUsuario()
(from Usuarios)
1..n1 1..n1
Actualizar
Diagrama de Secuencia de las Clases Caso de Uso: Actualizar Lista.
: Administrador
: ListadeUsuarios : IfaceLog
InscribirUsuarioLista(int, text, text)
Ingresar_Log( )
74
Nombre: Agregar Usuario Sistema. Actores: Administrador (iniciador). Propósito: Ingresar un nuevo usuario al sistema. Resumen: El administrador ingresa al SAP y se autentica. Luego ingresa los datos del nuevo usuario al sistema, el sistema lo ingresa y crea un nuevo LOG. Finalmente el administrador puede o no finalizar su sesión. Tipo: Primario, Real. Referencias Cruzadas: R4.1, R4.2, R4.3, R12.
Ventana 7.1 Ventana 7.2
Ventana 7.3 Curso Normal de Eventos: Actores Sistema 1.Este caso de uso comienza cuando el administrador ingresa al SAP e inicia su sesión tecleando en la Ventana 7.1 su username en A.1 y su password en A.2. Luego se oprime A.3.
2.El sistema autentica al administrador, verificando la validez del username y password ingresados. Presenta la Ventana 7.2
75
3.El administrador oprime G.3 para acceder a Agregar Usuario.
4. Presenta la Ventana 7.3 5. El administrador teclea los datos del nuevo usuario: el nombre en H.1, el apellido en H.2, el mail en H.3, el RUT en H.4 y oprime el botón H.5
6.El sistema verifica que el nuevo usuario no exista previamente en la BD, ingresa el nuevo registro y crea el nuevo LOG.
7.El administrador puede o no finalizar su sesión, oprimiendo G.7 en la Ventana 7.2.
Curso Alternativo de Eventos. Línea 2: El sistema no autentica al administrador, entonces muestra mensaje de error (Ventana 7.4), Se oprime K.1 para continuar.
Ventana 7.4 Línea 7: No es posible crear verificar la existencia del usuario, entonces muestra mensaje de error y advertencia.
76
Diagrama de Clases Caso de Uso: Agregar Usuario Sistema.
Usuario
Nombre : StringId_usuario : intemail : Stringtipo : intestado : boolean
MostrarAtributos()OrdenarReportes()ModificarEstado()Usuario()
(from Usuarios)
Administrador
Nombre : StringId_usuario : in = 0email : Stringtipo : int
AgregarUsuarioSistema()EliminarUsuarioSistema()CrearLista()EliminarLista()BuscarLista()ListarListas()BuscarUsuario()
(from Usuarios)
11
+Usuario
1
+Administrador
1
Crear
Diagrama de Secuencia de las Clases Caso de Uso: Agregar Usuario Sistema.
: Administrador
: Usuario : IfaceLog
Ingresar_Log( )
AgregarUsuarioSistema( )
77
Nombre: Eliminar Usuario Sistema. Actores: Administrador (iniciador). Propósito: Marcar como eliminado a un usuario del sistema. Resumen: El administrador ingresa al SAP y se autentica. Luego busca al usuario que desea eliminar del sistema, el sistema lo marca como eliminado y crea un nuevo LOG. Finalmente el administrador puede o no finalizar su sesión. Tipo: Secundario, Real. Referencias Cruzadas: R5.1, R7.1, R12.
Ventana 8.1 Ventana 8.2
Ventana 8.3
78
Curso Normal de Eventos: Actores Sistema 1.Este caso de uso comienza cuando el administrador ingresa al SAP e inicia su sesión tecleando en la Ventana 8.1 su username en A.1 y su password en A.2. Luego se oprime A.3.
2.El sistema autentica al administrador verificando la validez del username y password ingresados. Presenta la Ventana 8.2.
3.El administrador accede a Eliminar Usuario oprimiendo G.4 e ingresa algún atributo del usuario(s) a eliminar.
4.El sistema busca al o los usuarios dado el atributo especificado, guardándolos en una lista. Luego muestra una lista con los usuarios encontrados en la Ventana 8.3
5. El usuario selecciona el o los usuarios a eliminar. (I.1) y oprime el botón I.2.
6.El sistema marca como eliminado al o los usuarios que fueron seleccionados
7.El administrador puede o no finalizar su sesión, oprimiendo el botón G.7 de la Ventana 8.2.
Curso Alternativo de Eventos. Línea 2: El sistema no autentica al administrador, entonces muestra mensaje de error (Ventana 8.4), Se oprime K.1 para continuar.
Ventana 8.4 Línea 4: No es posible buscar al usuario, entonces muestra mensaje de error y advertencia.
79
Diagrama de Clases Caso de Uso: Eliminar Usuario Sistema.
Usuario_lista
ActualizarReporte()ConsultarEstadistica()BuscarEstadistica()
(from Usuarios)Usuario_final
IngresarReporte()
(from Usuarios)
Usuario
Nombre : StringId_usuario : intemail : Stringtipo : intestado : boolean
MostrarAtributos()OrdenarReportes()ModificarEstado()Usuario()
(from Usuarios)
Administrador
Nombre : StringId_usuario : in = 0email : Stringtipo : int
AgregarUsuarioSistema()EliminarUsuarioSistema()CrearLista()EliminarLista()BuscarLista()ListarListas()BuscarUsuario()
(from Usuarios)
1..n1 1..n1
Modifica
Diagrama de Secuencia de las Clases Caso de Uso: Eliminar Usuario Sistema.
: Administrador
: Usuario : IfaceLog
ModificarEstado( )
Ingresar_Log( )
80
Nombre: Agregar Usuario Lista. Actores: Administrador (iniciador). Propósito: Inscribir en una lista a algún usuario registrado en el sistema. Resumen: El administrador ingresa al SAP y se autentica. Luego busca al usuario y la lista en la cual desea inscribir, inscribe y el sistema crea un LOG de la acción. Finalmente el administrador puede o no finalizar su sesión. Tipo: Primario, Real. Referencias Cruzadas: R5.1, R5.2, R5.3, R12.
Ventana 9.1 Ventana 9.2
Ventana 9.3
81
Curso Normal de Eventos: Actores Sistema 1.Este caso de uso comienza cuando el administrador ingresa al SAP e inicia su sesión tecleando en la Ventana 9.1 su username en A.1 y su password en A.2. Luego se oprime A.3.
2.El sistema autentica al administrador verificando la validez del username y password ingresados. Presenta la Ventana 9.2.
3. El administrador oprime G.5 4. Presenta la Ventana 9.3. 5.El administrador ingresa algún atributos del usuario a inscribir.
6.El sistema busca al usuario en cuestión y muestra las listas existentes en el sistema en la Ventana 9.3.
7.El administrador selecciona las listas (J.2) en las cuales desea inscribir al usuario (J.1), mediante el botón J.3. Al concluir, oprime el botón J.4 (abajo).
8.El sistema inscribe al usuario y crea un registro LOG.
9.El administrador puede o no finalizar su sesión, oprimiendo el botón G.7 de la Ventana 9.2.
Curso Alternativo de Eventos. Línea 2: El sistema no autentica al administrador, entonces muestra mensaje de error (Ventana 9.4), Se oprime K.1 para continuar.
Ventana 9.4 Línea 6: No es posible buscar al usuario, entonces muestra mensaje de error y de advertencia. Línea 8: No es posible inscribir al usuario, entonces muestra mensaje de error y de advertencia.
82
Diagrama de Clases Caso de Uso: Agregar Usuario Lista.
ListadeUsuarios
Id_lista : intPrivilegios : inttipo : intUsuarios : Vector
LeerLista()AgregarUsuario()EliminarUsuario()ModificarLista()InscribirUsuarioLista()DesInscribirUsuarioLista()ListadeUsuarios()
(from Listas)
Usuario_lista
ActualizarReporte()ConsultarEstadistica()BuscarEstadistica()
(from Usuarios)
Administrador
Nombre : StringId_usuario : in = 0email : Stringtipo : int
AgregarUsuarioSistema()EliminarUsuarioSistema()CrearLista()EliminarLista()BuscarLista()ListarListas()BuscarUsuario()
(from Usuarios)
1..n
1
1..n
1
AgregaALista
1..n1 1..n1
busca
Diagrama de Secuencia de las Clases Caso de Uso: Agregar Usuario Lista.
: Administrador
: Usuario_lista : ListadeUsuarios : IfaceLog
MostrarAtributos( )
AgregarUsuario( )
Ingresar_Log( )
83
Nombre: Eliminar Usuario Lista. Actores: Administrador (iniciador). Propósito: Des-inscribe un usuario de alguna lista específica. Resumen: El administrador ingresa al SAP y se autentica. Luego busca al usuario que desea des-inscribir de alguna lista, lo marca como des-inscrito y crea un nuevo LOG. Finalmente el administrador puede o no finalizar su sesión. Tipo: Secundario, Real. Referencias Cruzadas: R5.1, R6.1, R12.
Ventana 10.1 Ventana 10.2
Ventana 10.3
84
Curso Normal de Eventos: Actores Sistema 1.Este caso de uso comienza cuando el administrador ingresa al SAP e inicia su sesión tecleando en la Ventana 10.1 su username en A.1 y su password en A.2. Luego se oprime A.3.
2.El sistema autentica al administrador verificando la validez del username y password. Presenta la Ventana 10.2.
3.El administrador ingresa algún atributo del usuario a des-inscribir.
4.El sistema busca el usuario y muestra las listas en las que está inscrito en la Ventana 10.3.
5.El administrador selecciona la(s) listas (J.2) de las cuales desea des-inscribir al usuario (J.1) mediante J.4 (arriba). Para concluir oprime el botón J.4 (abajo).
6.El sistema marca como des-inscrito al usuario y genera el LOG correspondiente.
7.El administrador puede o no finalizar su sesión, oprimiendo el botón G.7 de la Ventana 10.2.
Curso Alternativo de Eventos. Línea 2: El sistema no autentica al administrador, entonces muestra mensaje de error (Ventana 10.4), Se oprime K.1 para continuar.
Ventana 10.4 Línea 4: No es posible buscar al usuario, entonces muestra mensaje de error y de advertencia. Línea 6: No es posible des-inscribir al usuario, entonces muestra mensaje de error y de advertencia.
85
Diagrama de Clases Caso de Uso: Eliminar Usuario Lista.
ListadeUsuarios
Id_lista : intPrivilegios : inttipo : intUsuarios : Vector
LeerLista()AgregarUsuario()EliminarUsuario()ModificarLista()InscribirUsuarioLista()DesInscribirUsuarioLista()ListadeUsuarios()
(from Listas)Administrador
Nombre : StringId_usuario : in = 0email : Stringtipo : int
AgregarUsuarioSistema()EliminarUsuarioSistema()CrearLista()EliminarLista()BuscarLista()ListarListas()BuscarUsuario()
(from Usuarios)
1..n1 1..n1
Eliminar_usuario
Diagrama de Secuencia de las Clases Caso de Uso: Eliminar Usuario Lista.
: Administrador
: ListadeUsuarios : IfaceLog
DesInscribirUsuarioLista( )
BuscarUsuario( )
EliminarUsuario( )
Ingresar_Log( )
86
Nombre: Consultar Estadística. Actores: Administrador, Usuario de Lista. (iniciadores). Propósito: Dar a conocer los resultados del análisis estadístico semanal. Resumen: El usuario ingresa al SAP, se autentica y pide el reporte estadístico. El sistema busca el reporte y lo muestra. Finalmente el usuario puede o no finalizar su sesión. Tipo: Primario, Real. Referencias Cruzadas: R11.1, R11.2.
Ventana 11.1 Ventana 11.2 Curso Normal de Eventos: Actores Sistema 1.Este caso de uso comienza cuando el usuario ingresa al SAP e inicia su sesión tecleando en la Ventana 11.1 su username en A.1 y su password en A.2. Luego se oprime A.3.
2.El sistema autentica al usuario, verificando la validez del username y password. Presenta la Ventana 11.2
3.El usuario pide el reporte semanal, oprimiendo el botón E.3 de la Ventana 11.2
4.El sistema busca el reporte correspondiente a esa semana y lo muestra, presentando la Ventana 11.3
5.El usuario puede o no finalizar su sesión, oprimiendo el botón E.4 de la Ventana 11.2.
87
Curso Alternativo de Eventos. Línea 2: El sistema no autentica al usuario, entonces muestra mensaje de error (Ventana 11.4). Se oprime K.1 para continuar.
Ventana 11.4 Línea 4: No es posible buscar el reporte, entonces muestra mensaje de error y de advertencia. Diagrama de Clases Caso de Uso: Consultar Estadística.
Estadistica
FechaDetalleContenido
MostrarEstadistica()HabitarEstadistica()Estadistica()
(from Comunicacion)Usuario_lista
ActualizarReporte()ConsultarEstadistica()BuscarEstadistica()
(from Usuarios)
1..n0..1 1..n0..1
Consulta_.
Diagrama de Secuencia de las Clases Caso de Uso: Consultar Estadística.
: Usuario_lista : Estadistica : IfaceLog
MostrarEstadistica( )
Ingresar_Log( )
88
Diagrama de Clases Caso de Uso: Crear Estadística.
Estadistica
FechaDetalleContenido
MostrarEstadistica()HabitarEstadistica()Estadistica()
(from Comunicacion)scheduler
fecha : int
IniciarEst()scheduler()
(from sistema)
1..n0..1
+theEstadistica
1..n0..1
Generar
Diagrama de Secuencia de las Clases Caso de Uso: Crear Estadística
: scheduler : Estadistica : IfaceLog
HabitarEstadistica( )
IniciarEst( )
Ingresar_Log( )
89
Diagrama de Clases General
Usuario_final
IngresarReporte()
(from Usuarios)
IfaceLog
Ingresar_Log()
ReporteDeProblema
Tipo : intEstado : booleanId_Usuario : intDescripcion : StringComentario : Stringname : String
EnviarMensaje()MostrarReporte()Actualizar()BuscarReporte()ListarReportes()...
(from Reportes)
0..1
1..n
0..1
1..n
Lista_
0..1
1..n
0..1
1..n
Genera
0..1
1..n
0..1
1..nConsulta
Mensaje
Id_mensajeId_reporteDescripcion...
(from Comunicacion)
1..n
1..n
1..n
+theMensaje
1..n
envia<<communicate>>
Usuario
Nombre : StringId_usuario : intemail : Stringtipo : intestado : boolean
MostrarAtributos()OrdenarReportes()...
(from Usuarios)
+theIfaceLog
Registra
Usuario_lista
ActualizarReporte()...
(from Usuarios) 11..n 11..n comunica
0..1
1..n
0..1
1..n
Lista
1..n
1..n
1..n
1..n
Actualizar Campos
0..1
1..n
0..1
1..n
Consulta_
ListadeUsuarios
Id_lista : intPrivilegios : inttipo : intUsuarios : Vector
LeerLista()AgregarUsuario()EliminarUsuario()ModificarLista()InscribirUsuarioLista()...
(from Listas)
1
1..n
1
1..n
lee
Estadistica
FechaDetalleContenido
MostrarEstadistica()...
(from Comunicacion)
0..1
1..n
0..1
1..n
Consulta_.
Autenticador
LogIn()...
(from sistema)
1..n
1
+theUsuario1..n
1
autentica
Administrador
Nombre : StringId_usuario : in = 0email : Stringtipo : int
AgregarUsuarioSistema()EliminarUsuarioSistema()CrearLista()EliminarLista()BuscarLista()...
(from Usuarios)
1
1..n
1
1..nModifica
11..n
obtiene
11
+Administrador
1
+Usuario
1
Crear
1
1..n
1
1..n
busca
1 1..n1 1..nAgregaALista
1 1..n1 1..n
Eliminar_usuario
1 1..n1 1..n
Actualizar
1 1..n1 1..n
Crea
scheduler
fecha : int
...
(from sistema)0..1
1..n
0..1
+theEstadistica
1..n
Generar
SAP
...
(from sistema)
+theAutenticador
crea__
+theAdministrador
crea_
+theScheduler
crea_.
1..n 1
90
5.1.2 Diagramas de Estado
• Reporte
En progreso Solucionado
Solucion
actualizado
Se da una solucion...
Se añade nueva informacion al problema
Reportar
• Usuario
ActivoEliminado
Eliminar
Agregar
El administrador elimina un usuario
91
5.2 Refinamientos
• ¿Quién debe crear las encuestas? Quien debe tener la responsabilidad de crear las encuestas es el sistema , quien tendrá la responsabilidad de crear periódicamente las encuestas. Dado que el sistema no representa una clase, se deriva esta responsabilidad a otra clase que se denominó “Scheduler”, la cual toma la responsabilidad de crear cada cierto periodo de tiempo las encuentas.
• ¿Quién debe autenticar a los usuarios? La autenticación de los usuarios es un tema relevante en el desempeño del software, dado que no se disponía de una clase que autenticara a los usuarios y posteriormente los instanciara, y la responsabilidad de autenticarse, no se puede delegar a la propia clase de los usuarios, pues ésta no está instanciada para el momento de la autenticación, según el patrón creador y el patrón controlador. Se creó una clase llamada “Autenticador”, la cual está a cargo de la labor de autenticar a los usuarios, e instanciarlos en el caso que la autenticación sea satisfactoria.
• ¿Quién es el encargado de generar las instancias de las clases necesarias para el funcionamiento del software?
El sistema debe tener una clase que está encargada, de la creación de las instancias básicas de las clases necesarias para hacer funcionar el SW, para ello se creó la clase “SAP” que es la encargada de crear las instancias, que dan inicio al software. El log de las operaciones que se llevan a cabo en el sistema es una labor de vital importancia para luego poder hacer una auditoría de que está sucediendo en el sistema y cuál es el comportamiento del SW. Cada clase que está involucrada de manera directa en una operación, debe tener los métodos necesarios para desarrollar la labor de dejar un registro de log, para realizar esto se estableció una interfaz llamada “IfaceLog”, la cual define el método que desarrolla esta actividad, delegando así la responsabilidad de su implementación a cada calse que implemente la interfaz.
92
5.3 Implantación Diagrama de Componentes
IfaceLog
Listas
Reportes
sistema
usuario
IfaceLog
Sap
Diagrama de Despliegue
Servidor SAPCliente SAP
Conexion de RED
Srv1
Srv2
Srv3
Comunicacion Srv1
Comunicacion Srv1
Comunicacion Srv1
Conexion del cliente SAP, al servidor Sap, por medio de una RED
Comunicacion interna entre el servidor y los subservidores
93
Dependencias: -Maquina Virtual de Java: El Sistema SAP. Estara construido en Java. Y requiere de la maquina virtual de Java para su correcta Operación. -Bibliotecas de java j2sdk. -Plataforma que tenga soporte para Maquina Virtual de Java. -Soporte de RED TCP/IP: El Sistema SAP. Estara Diseñado con arquitectura cliente-servidor sobre redes TCP/IP.