Sie sind auf Seite 1von 5

Condiciones generales

v El trabajo debe realizarse y entregarse en equipos de dos personas como mximo.


No se calificarn trabajos ms integrantes. Si ms de dos personas entregan el
mismo proyecto no se calificar a ninguno.
v Pueden un servidor MySQL o los drivers UCanAccess para almacenar los datos a
manejar por su aplicacin.

Introduccin
Se desea programar un sistema de gestin de incidencias para empresas. Este sistema
se compondr de los siguientes subsistemas:
Una base de datos, que almacena los datos de incidencias y usuarios sobre los
cuales trabaja la aplicacin.
Un cliente grfico programado con Swing, que permite la gestin de incidencias
por parte de los tcnicos de la empresa.
En esta prctica se crear la base de datos y se programar el cliente Swing

Modelo de datos
En este apartado se describe el modelo de datos de la aplicacin, y se proporciona el
cdigo SQL que permite crear las tablas para almacenar dichos datos. La aplicacin
debe respetar estrictamente este modelo de datos.
Un tcnico es un miembro de la empresa con la capacidad de procesar incidencias. Se
representa a un tcnico con los siguientes atributos:

Identificador de tcnico: identificador nico, de uso interno a la aplicacin.


Nombre del tcnico: nombre y apellidos.
Alias del tcnico: nombre de usuario del tcnico en la aplicacin.
Clave del tcnico: contrasea del tcnico en la aplicacin.
Telfono del tcnico: nmero de telfono de contacto del tcnico.

Un usuario o cliente representa a una persona con la capacidad de abrir incidencias en


el sistema para pedir que los tcnicos le resuelvan algn problema. Sus atributos son
parecidos a los de los tcnicos:

Identificador de usuario: identificador nico, de uso interno a la


aplicacin.
Nombre del usuario: nombre y apellidos.
Alias del usuario: nombre de usuario en la aplicacin.
Clave del usuario: contrasea del usuario en la aplicacin.
Telfono del usuario: nmero de telfono de contacto del usuario.
Direccin de correo electrnico del usuario: direccin de correo de
contacto.

Las incidencias se agrupan en categoras. Dependiendo del tipo de sistema que se est
gestionando, las categoras pueden cambiar. Por ello, se almacenan en una tabla de
categoras:

Identificador de categora: identificador nico, de uso interno.


Nombre de categora: nombre descriptivo de la categora.
Tcnico responsable: identificador del tcnico responsable de la categora.

Una incidencia se representa mediante los siguientes atributos:

Identificador de incidencia: identificador nico para uso interno de la


aplicacin. A pesar de ello, puede mostrarse en la interfaz de usuario, pero en
ningn caso ser editable.
Ttulo: ttulo breve de la incidencia, asignado por el creador de la misma.
Fecha de apertura: fecha y hora de apertura de la incidencia.
Fecha de la ltima modificacin: fecha y hora de la ltima modificacin de
la incidencia. Por modificacin se entiende un cambio de estado, cambio de
tcnico responsable o la creacin de un detalle nuevo.
Asignacin: identificador del tcnico al cual haya sido asignada. Inicialmente,
se asigna automticamente al tcnico responsable de la categora.
Creador: identificador del cliente creador de la incidencia.
Estado: estado de la incidencia. Puede ser uno de los siguientes:
o Inexistente: la incidencia no ha sido creada.
o Nueva: la incidencia ha sido creada, pero an no ha comenzado a
procesarla ningn tcnico.
o Proceso: la incidencia est siendo procesada.
o Cerrada: la incidencia ha sido resuelta y cerrada.
Categora: identificador de la categora a la cual pertenece la incidencia.

A medida que se procesa una categora se genera informacin adicional acerca de la


misma. En cada evento (creacin, cambio de estado, reasignacin, etc.) se puede
aadir informacin adicional, a la que se llamar detalle de incidencia:
Identificador de detalle: identificador nico de uso interno.
Identificador de incidencia: identificador de la incidencia a la cual se refiere el
detalle.
Fecha: fecha y hora de creacin del detalle.
Descripcin: texto, arbitrariamente largo, descriptivo del cambio producido en la
incidencia.
Privado: valor cierto (distinto de cero) si el detalle debe ser visible slo a los
tcnicos, o falso (igual a cero) si el detalle es visible tambin a los usuarios.
Estado anterior: estado anterior de la incidencia.
Estado nuevo: nuevo estado de la incidencia, como consecuencia de la accin
descrita en este detalle.
Cuando se crea una incidencia, se crea un primer detalle con estado anterior
inexistente y estado nuevo nueva. La descripcin contiene la descripcin original del
usuario. Posteriormente, cada vez que un tcnico cambie el estado de la incidencia o
la reasigne, se aade un nuevo detalle. A iniciativa de un tcnico, tambin es posible
crear un detalle simplemente para aadir nueva informacin relativa a la incidencia,

aunque no se realice un cambio de estado ni reasignacin.

Tablas en SQL
Script para crear las tablas. Si se va utilizar Access eliminar la clausula
auto_incrment y TYPE = INNODB. ENUM
CREATE TABLE Tecnico (
idTecnico INT(3) NOT NULL auto_increment,
nombreTecnico VARCHAR(50) NOT NULL,
aliasTecnico VARCHAR(10) NOT NULL,
claveTecnico VARCHAR(10) NOT NULL,
telefonoTecnico CHAR(10),
PRIMARY KEY (idTecnico)
) TYPE = INNODB;
CREATE TABLE Usuario (
idUsuario INT(5) NOT NULL auto_increment,
nombreUsuario VARCHAR(50) NOT NULL,
aliasUsuario VARCHAR(10) NOT NULL,
claveUsuario VARCHAR(10) NOT NULL,
telefonoTecnico CHAR(10),
correo VARCHAR(20),
PRIMARY KEY (idUsuario)
) TYPE = INNODB;
CREATE TABLE Categoria (
idCategoria INT(2) NOT NULL auto_increment,
nombreCategoria VARCHAR(20) NOT NULL,
responsable INT(3) NOT NULL, PRIMARY KEY (idCategoria),
INDEX(responsable),
FOREIGN KEY (responsable) REFERENCES Tecnico(idTecnico)
) TYPE = INNODB;
CREATE TABLE Incidencia (
idIncidencia INT(5) NOT NULL auto_increment,
titulo VARCHAR(50) NOT NULL default '',
fechaApertura DATETIME NOT NULL,
fechaUltimaMod DATETIME NOT NULL,
asignada INT(3) NOT NULL,
creador INT(5) NOT NULL,
estado ENUM('Inexistente', 'Nueva', 'Proceso', 'Cerrada') NOT
NULL default 'Nueva',
categoria INT(2) NOT NULL,
PRIMARY KEY (idIncidencia),
INDEX(asignada),
FOREIGN KEY(asignada) REFERENCES Tecnico(idTecnico),
INDEX (creador),
FOREIGN KEY (creador) REFERENCES Usuario (idUsuario),
INDEX (categoria),
FOREIGN KEY (categoria) REFERENCES Categoria (idCategoria)
) TYPE = INNODB;
CREATE TABLE DetalleIncidencia (
idDetalleInc INT(5) NOT NULL auto_increment,
idIncidencia INT(5) NOT NULL,
fecha DATETIME NOT NULL,

descripcion TEXT NOT NULL,


privado BOOL NOT NULL,
estadoAnterior ENUM('Inexistente', 'Nueva', 'Proceso',
'Cerrada') NOT NULL default 'Nueva',
estadoNuevo ENUM('Inexistente', 'Nueva', 'Proceso', 'Cerrada')
NOT NULL default 'Proceso',
PRIMARY KEY (idDetalleInc),
INDEX (idIncidencia),
FOREIGN KEY (idIncidencia) REFERENCES Incidencia
(idIncidencia) ON DELETE CASCADE ON UPDATE CASCADE
) TYPE = INNODB;

Funcionalidad mnima
El objetivo de esta prctica es el desarrollo de una aplicacin grfica que permita la
gestin de incidencias por parte de los tcnicos de la empresa. El sistema debe
proporcionar, como mnimo, la siguiente funcionalidad:

Control de acceso: para poder realizar cualquier operacin, ser necesario


que el usuario se identifique previamente con su nombre de usuario y
contrasea. La aplicacin debe comprobar que sean correctos. Slo los
usuarios tcnicos pueden acceder a esta aplicacin. Un tcnico slo puede
visualizar o manipular datos de incidencias asignadas a l mismo.
Vista de incidencias asignadas: esta debe ser la vista principal de la
aplicacin. Debe mostrar en forma de tabla todas las incidencias que no estn
cerradas y hayan sido asignadas al tcnico que est utilizando la aplicacin.
Vista de datos de incidencia: si el tcnico selecciona una incidencia en la
vista anterior, la vista de datos de incidencia debe mostrar todos los datos de
dicha incidencia (incluidos todos los detalles asociados a la incidencia). Es
suficiente mostrar todos los comentarios aadidos a una incidencia en un
componente JTextArea sin formato. Esta vista puede ser implementada, por
ejemplo, como un dilogo emergente. Desde esta vista, adems de visualizar
los datos, el tcnico podr realizar las siguientes operaciones:
o Cambiar el estado de la incidencia, acompaando un texto descriptivo.
o Asignar la incidencia a otro tcnico, acompaando un texto
descriptivo.
o Aadir un texto descriptivo a la incidencia, sin realizar cambio de
estado ni reasignacin.
o Cerrar la vista.
Vista de creacin de incidencias: los tcnicos de atencin telefnica deben
introducir incidencias nuevas mediante la aplicacin. Para ello, deben disponer
de una vista que les permita introducir los datos iniciales de la misma. Las
incidencias se asignan automticamente al tcnico responsable de su categora.

Requisitos
La aplicacin desarrollada, adems de proporcionar la funcionalidad mnima que se
pide, debe cumplir los siguientes requisitos:

1. La aplicacin debe tener, en su ventana principal, una barra de men con, al


menos, entradas que permitan iniciar una sesin (introduciendo nombre de
usuario y contrasea), cerrar la sesin activa, e introducir una nueva
incidencia. Puede contener cualquier otra opcin que se estime oportuna.
2. Gestin de la tabla de incidencias mediante el modelo vista-controlador:
gestin de la tabla de la vista de incidencias asignadas mediante modelos, tal y
como se mostro en clase con los ejemplos de uso de JTable.
3. Agregar, modificar, y eliminar registros en cada una de las tablas.

Das könnte Ihnen auch gefallen