Vous êtes sur la page 1sur 3

Ingeniería del Software I Universidad de Castilla – La Mancha

2º Curso – Grado en Ingeniería Informática Escuela Superior de Informática de Ciudad Real


Prácticas de ISO I Curso 2016/2017

PRÁCTICA 1 – ACCESO A BASES DE DATOS


ENUNCIADO DEL PROBLEMA

INTRODUCCIÓN AL PROBLEMA

El proyecto que se entrega representa la lógica necesaria para implementa el acceso a cualquier
sistema. Se basa en una sencilla ventana de autenticación que solicita al usuario el login y el
password para verificar que tiene permiso para acceder a la aplicación. La comprobación se realiza
consultando que efectivamente existe ese usuario en dicha base de datos.

Sin embargo, el JFrame (o ventana) que se muestra no implementa la lógica de acceso a la base de
datos, ya que este proyecto sigue la arquitectura multicapa (ver las "consideraciones" al final del
documento). El proyecto se encuentra dividido en las siguientes capas:

- Presentación: Paquete que contiene las ventanas que implementan la interfaz de usuario del
sistema.
- Dominio: Paquete que contiene las ventanas que implementan la lógica del sistema.
- Persistencia: Contiene la clase Agente, que es la única que implementa la lógica para la
gestión de la base de datos, centralizando así su acceso a la misma.

Tal y como se detalla en la sección de “Tareas a completar”, es necesario completar ciertos métodos
en distintas clases de este proyecto, de forma que toda la funcionalidad que ofrece se encuentre
operativa.

Las funcionalidades que ofrece este sistema son dos:


- Realizar la tarea de autenticación de usuarios para el acceso al sistema.
- Poder insertar nuevos usuarios en la base de datos del sistema (para esta funcionalidad existe
un formulario al cual se accede desde la pantalla de login).

Se recomienda encarecidamente repasar el código del sistema completo para comprender su


funcionamiento. Tal y como se explica en la sección de "consideraciones", no es necesario
profundizar en el código de las clases de interfaz, salvo por los métodos que hay que completar para
comunicar estas clases con la lógica de la capa de dominio.

El proyecto suministrado incluye una sencilla base de datos con una única tabla. Dicha tabla se
denomina "usuario" y tiene dos campos: "login" y "password". Esta base de datos contiene registros
o usuarios de ejemplo almacenados. Tal y como detallamos en clase, se dispone de una máquina
virtual Windows con todo lo necesario para realizar la práctica:
 Software de bases de datos MySQL con la base de datos que utilizaremos en la práctica con la
base de datos y los registros ya incluidos (lista para utilizar).
 Distribución de Eclipse instalada (en el escritorio) con el proyecto de esta práctica ya
importado y listo para utilizar. Además, este Eclipse dispone de un proyecto “de prueba” que
se puede ejecutar y comprobar que efectivamente se realiza una conexión con la base de
datos, y se recuperan los registros de ejemplo antes mencionados.

TAREAS A COMPLETAR

A continuación se detallan los ítem que hay que completar en la práctica para conseguir que ésta
funcione correctamente:

1
Ingeniería del Software I Universidad de Castilla – La Mancha
2º Curso – Grado en Ingeniería Informática Escuela Superior de Informática de Ciudad Real
Prácticas de ISO I Curso 2016/2017

1. En la clase JFrameLogin (capa de presentación): Implemente la lógica de los eventos


correspondientes a los botones "Aceptar", y "Limpiar". Los manejadores de los eventos
(métodos cuya signatura es "public void actionPerformed(ActionEvent arg0)") ya están
creados, pero hay que completarlos. Se han incluido comentarios en los métodos a modo de
ayuda.

2. En la clase Usuario (capa de dominio), implemente el método "insert", que permite insertar
un nuevo usuario en la base de datos. Tome como ejemplo el método select, aunque este
último es más complejo. Es importante mirar primero el método "nuevoUsuario" de la clase
GestorUsuario, ya que da una idea de cómo funciona el método "insert" cuya lógica hay que
completar.

3. En la clase JFrameNuevoUsuario (capa de presentación) se incluirá en el manejador del


botón de nuevo usuario (public void actionPerformed(ActionEvent arg0)) la lógica necesario
para tomar la información que se introduce por pantalla para insertar un nuevo usuario en la
base de datos.

4. En la clase Agente (capa de persistencia) se desarrollará la lógica para implementar el


método "select". Este método recibe una consulta SQL (string que recibe como argumento
en su invocación) y realiza una consulta para devolver el resultado de la misma. Para evitar
que el método "select" devuelva un objeto ResultSet, el método "select" devolverá un vector
de vectores. Cada uno de los vectores contenidos en el vector principal contendrá uno de los
registros contenidos por el ResultSet. Dado que resulta complejo realizar una
implementación para un "select" genérico, se recomienda realizar una implementación ad-
hoc teniendo en cuenta que los registros que se pueden obtener en el contexto de este
problema son de dos campos (login y password).

CONSIDERACIONES

 El proyecto suministrado está desarrollado en la plataforma de desarrollo Eclipse, sin


embargo, las clases incluidas pueden cargarse en cualquier otro entorno (como NetBeans,
Oracle JDeveloper, etc.) para realizar la práctica.

 La aplicación sigue una arquitectura multicapa. La idea básica de la arquitectura multicapa


es que cada clase estará en una capa en función de su rol (por ejemplo, las clases que
implementan aspectos de interfaz de usuario estarán en la capa de presentación; las que
implementan la lógica, los procesos del problema y los objetos de negocio estarán en la capa
de presentación; y las clases como el agente, que implementan aspectos relacionados con la
gestión de la BD estarán en la capa de persistencia).

 Es importante observar que cada clase tiene unas responsabilidades muy bien definidas. Una
clase de presentación no implementa lógica del negocio ni realiza accesos a la base de datos.
Cada clase deberá contener las responsabilidades concernientes a su rol y a la entidad a la
que representa.

 Prácticamente todo el código (salvo lo que se solicita que se implemente) correspondiente a


las clases de la capa de presentación se corresponde con código de configuración de los
componentes de la interfaz de usuario (botones, áreas de texto, paneles, etc.) por lo que no
2
Ingeniería del Software I Universidad de Castilla – La Mancha
2º Curso – Grado en Ingeniería Informática Escuela Superior de Informática de Ciudad Real
Prácticas de ISO I Curso 2016/2017

es imprescindible profundizar en él en este momento.

 No se puede modificar nada de la interfaz de las clases que componen el proyecto, debe
completarse la lógica indicada sin modificar, eliminar o añadir los métodos existentes.

 Los alumnos que deseen realizar una implementación más avanzada del método “select”,
pueden consultar a los profesores de prácticas para obtener información adicional.

 La propia clase Agente ya dispone de la información necesaria para realizar la conexión con
la base de datos MySQL.

 Cuando se despliegue la máquina virtual, es recomendable dejarle al menos 4Gb de


memoria RAM para su correcto funcionamiento.

Vous aimerez peut-être aussi