Download Sistema de Inventario - Universidad de Magallanes

Document related concepts
no text concepts found
Transcript
UNIVERSIDAD DE MAGALLANES
FACULTAD DE INGENIERIA
DEPARTAMENTO DE COMPUTACIÓN
DESARROLLO DE SOFTWARE PARA
CONTROL DE INVENTARIO
CHRISTIAN TURINA PÉREZ
2006
El presente informe ha sido aprobado con la siguiente calificación:
Christian Turina P.
Informe
:
Defensa
:
Nota Final
:
Sra. Patricia Maldonado
Directora Departamento de
Computación e Informática
13 de Marzo de 2006
UNIVERSIDAD DE MAGALLANES
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA
EN COMPUTACIÓN
“Proyecto de Aplicación presentado en
conformidad a los requisitos para obtener
el título Técnico en Computación e Informática.”
“Profesor Guía: Sr. Carlos Arias M.”
CHRISTIAN TURINA PÉREZ
2006
ÍNDICE
•
Índice
i
•
Resumen
ii
•
Capítulo I
o Introducción
•
Capítulo II
o Planteamiento Del Problema
•
5
Capítulo V
o Presentación De La Interfaz
•
3
Capítulo IV
o Diseño De La Base De Datos
•
2
Capítulo III
o Desarrollo De La Información
•
1
10
Capítulo VI
o Conclusiones
19
•
Anexos
20
•
Bibliografía
25
RESUMEN
El siguiente proyecto consiste en el desarrollo de un Software orientado a manejar el
Control de Inventario tanto del hardware como de los accesorios conformantes de los
computadores pertenecientes al Laboratorio de Computadores del Departamento de Ingeniería en
Computación.
El objetivo de este proyecto es diseñar e implementar una herramienta gratuita capaz de
mantener el inventario de los componentes básicos de hardware y accesorios de cualquier
computador. Si bien, esta herramienta ha sido desarrollada en Microsoft Windows, esta debe
ejecutarse en cualquier sistema operativo, ya que en el laboratorio de computadores del
departamento no sólo se utiliza dicho sistema, sino que también la distribución de Linux Fedora
Core.
Las Herramientas que se utilizaron son Java j2sdk1.4.2_02 junto con JDBC e iText (dos
API diseñados para este lenguaje), además de MySQL 5.0 y NetBeans 4.1.
CAPÍTULO I
INTRODUCCIÓN
INTRODUCCIÓN
El presente trabajo, fue elaborado pensando en la necesidad de tener una herramienta
capaz de mantener el inventario de las partes y piezas de los computadores pertenecientes al
Departamento de Ingeniería en Computación de la Universidad de Magallanes, ya que éste, no
contaba con ninguno.
Lo que se desea es diseñar e implementar un sistema que sea capaz de realizar un
inventario abarcando las características básicas de un computador y que a la vez, pueda ser
ejecutado en cualquier sistema operativo, por lo tanto fue perentorio la utilización de un lenguaje
capaz de correr en ambos sistemas, lo que llevó a la elección de Java, el cual apoyado de JDBC
(Java Database Connectivity), es capaz de crear aplicaciones robustas y de gran calidad.
Otro aspecto importante, fue que este sistema debería ser capaz de generar reportes
específicos y en un formato portable, como lo es actualmente PDF, siendo estos de gran ayuda
para la toma de decisiones al momento de realizar actualizaciones o mantención a un equipo.
La metodología para el desarrollo de este trabajo se estructura de la siguiente forma:
•
Planteamiento del problema
•
Desarrollo del sistema de información
•
Diseño de la base de datos
•
Presentación de la interfaz
CAPÍTULO II
PLANTEAMIENTO DEL PROBLEMA
PLANTEAMIENTO DEL PROBLEMA
Se requiere desarrollar una aplicación que sea capaz de generar los informes semestrales
que deben ser realizados por los ayudantes del laboratorio de computadores del Departamento de
Ingeniería en Computación, ya que esté actualmente posee un sistema que utiliza una plantilla en
formato Microsoft Exel o OpenOffice, la cual debe ser llenada manualmente por cada integrante.
Estos informes, contemplan la información del estado y características más importantes
tanto de hardware (placa madre, procesador, disco duro etc.) como de los accesorios (Gabinete,
Mouse, teclado etc.) de los computadores que le son asignados a cada uno.
Finalmente, la idea del sistema es una herramienta que sea capaz de facilitar el manejo de
esta información y de generar reportes de esta misma.
CAPÍTULO III
DESARROLLO DEL SISTEMA DE INFORMACIÓN
DESARROLLO DEL SISTEMA DE INFORMACIÓN
Como ya se mencionó anteriormente, entre los aspectos importantes para el desarrollo de
la aplicación y para la generación de reportes, fue la utilización de un lenguaje de programación
que fuera compatible con cualquier sistema operativo, esto conllevó a la elección de Java para la
programación y de PDF para los reportes, ya que ambos poseen cierto grado de portabilidad con
respecto a otros lenguajes como lo es por ejemplo Visual Basic y Cristal Report. El mismo
problema también se hizo presente al momento de elegir un motor de base de datos, ya que
tendrían que descartarse entre Microsoft Acces y Microsoft MySQL Server, por esto, se eligió
MySQL 5.0.
Todo esto llevó a la interrogante de encontrar una forma para combinar todas las
tecnologías mencionadas, lo que finalmente concluyó en el uso de JDBC, un API de Java que
presta servicios para la conexión a distintos motores de Bases de Datos. El API JDBC consiste de
un conjunto de clases e interfaces que permiten a cualquier programa Java acceder a sistemas de
bases de datos de forma homogénea. En otras palabras, con el API JDBC no es necesario escribir
un programa para accesar a Sybase, otro programa para accesar a Oracle, y otro programa para
accesar a MySQL; con esta API, se puede crear un sólo programa en Java que sea capaz de enviar
sentencias SQL a la base de datos apropiada.
A continuación se ejemplifica con un fragmento de código el funcionamiento de JDBC,
este código sólo comprueba que exista conexión con una base de datos, no obstante es la base
para el funcionamiento de cualquier sentencia SQL:
import java.sql.*;
public class TestConnection
{
static String bd = "agendita";
static String login = "bingo";
static String password = "holahola";
static String url = "jdbc:mysql://localhost/"+bd;
public static void main(String[] args) throws Exception
{
Connection conn = null;
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url,login,password);
if (conn != null)
{
System.out.println("Conexión a base de datos "+url+" ... Ok");
conn.close();
}
}
catch(SQLException ex)
{
System.out.println(ex);
}
catch(ClassNotFoundException ex)
{
System.out.println(ex);
}
CAPÍTULO IV
DISEÑO DE LA BASE DE DATOS
DISEÑO DE LA BASE DE DATOS
Para el proceso de implementación de la Base de Datos, se utilizó la planilla Microsoft
Exel u OpenOffice mencionada anteriormente, ya que en esta están todos los componentes
referentes a Hardware y Accesorios que el Laboratorio de Computadores del Departamento de
Ingeniería en Computación ha considerado importantes.
Si bien la base de Datos no es muy compleja ni extensa, esta es capaz de almacenar toda
la información referente al problema.
A continuación se presentan y describen cada una de las tablas:
•
Tabla pc:
La tabla PC es la encargada de almacenar la información referente a la identificación un
computador, algunos de los datos que se almacenan en ella los son por ejemplo: código del
PC, nombre del PC, ayudante encargado (en el caso que existiese).
A continuación se presentan y explican cada uno de los campos de la tabla.
Field
Type
Null
Key
Extra
Codpc
Int(11)
No
Pri
Auto_increment
Nompc
Varchar(20)
No
Null
Estado
Int(1)
No
Null
Ayudante
Varchar(10)
Yes
Null
1. Campo codpc: corresponde a un identificador único para cada pc, este es declarado como
auto_increment para evitar su duplicación, además es de carácter numérico
y está
definido como clave principal.
2. Campo nompc: corresponde al nombre por el cual es identificado cada pc del laboratorio,
esta declarado como varchar para evitar el mal uso de espacio en el caso de que el nombre
fuera menor que 20 caracteres.
3. Campo Estado: este campo describe el estado de ingreso de cada pc, es decir, tiene dos
valores únicos, estos pueden ser 1 o 0. En este caso el 0 indica que no se han ingresado
datos para un equipo y el 1, que el equipo ya tiene datos ingresados.
4. Campo ayudante: Este campo no es de carácter obligatorio, ya que no todos los
computadores tienen un ayudante asignado, sin embargo, en caso que este lo tuviera, acá
se ingresa el login del encargado de su mantención.
•
Tabla hardware:
La tabla hardware es la encargada de almacenar todo lo referente al Hardware perteneciente a
un computador, en ella, se encuentran las marcas y descripciones de cada una de estas partes.
A continuación se presentan y explican cada uno de los campos de la tabla.
Field
Type
Null
Key
Codpc
Int(11)
No
Pri
Codhw
Int(11)
No
Pri
Marca
Varchar(100)
No
Descripción
Varchar(100)
No
Extra
1. Campo codpc: corresponde al código del computador al cual corresponde la información
de los campos restantes, es de carácter numérico.
2. Campo codhw: corresponde a un código numérico encargado de diferenciar el hardware.
3. Campo marca: corresponde a la marca del Hardware al cual se le están ingresando datos.
Ej.: marca Asus.
4. Campo descripción: corresponde a la descripción del hardware.
•
Tabla accesorios:
La tabla accesorios es la encargada de almacenar todo lo referente a los componentes de un
computador que no son hardware, como por ejemplo, Mouse, teclado, cables de red, etc.,
En ella se encuentran las marcas y estados de cada una de estas partes.
A continuación se presentan y explican profundamente cada uno de los campos de la
tabla.
Field
Type
Null
Key
Codpc
Int(11)
No
Pri
Codac
Int(11)
No
Pri
Marca
Varchar(100)
No
Estado
Varchar(8)
No
Extra
1. Campo codpc: corresponde al código del computador al cual corresponde la información
de los campos restantes, es de carácter numérico.
2. Campo codac: corresponde a un código numérico encargado de diferenciar el accesorio.
3. Campo marca: corresponde a la marca del Accesorio al cual se le están ingresando datos.
Ej.: marca: Genius.
4. Campo estado: describe el estado físico del accesorio, este puede tener tres valores:
Óptimo, Regular o Malo.
Finalmente, para dar por concluido este capítulo, se presenta el diagrama entidad relación
correspondiente a la base de datos presentada.
Fig. 4.1
Como se ve en la fig.4.1, el campo pc de la tabla pc, se relaciona con los campos pc de las tablas
restantes y el campo codac de accesorios, se relaciona con codhw de hardware.
CAPÍTULO V
PRESENTACIÓN DE LA INTERFAZ
PRESENTACIÓN DE LA INTERFAZ
La interfaz esta diseñada para ser ejecutada bajo una resolución de 800 x 600. Esta consiste
en un menú principal desde el cual se llaman las distintas secciones de la aplicación. Las
opciones disponibles para el usuario son:
1. Ingresar Datos
2. Modificar Datos
3. Generar / Ver Informes
4. Crear, Modificar Eliminar PC
5. Salir
Fig. 5.1
i)
Ingresar Datos: Este formulario es el encargado de ingresar la información a la
base de datos. Acá existe un selector en la parte superior donde se debe
seleccionar el PC al cual se le van a ingresar sus características. Es preciso
destacar que en dicho selector, sólo estarán disponibles aquellos computadores
a los cuales aún no se les han ingresado datos. En el caso de que no existan
PC’s carentes de datos, se visualizará el mensaje: “No existen registros nuevos”
Una vez ingresada toda la información, está disponible el botón ingresar, el
cual, al ser presionado, transferirá los datos respectivos datos a la base de
datos.
Fig. 5.2
Además, están disponibles las funciones limpiar, la cual limpia el formulario y salir, que cierra el
formulario
ii)
Modificar Datos: Este formulario cumple con las mismas características que el
formulario anterior. Para poder modificar datos, se debe seleccionar un
computador y luego presionar el botón cargar datos, a continuación, se
modifica libremente y se presiona modificar.
Fig. 5.3
Además, están disponibles las funciones limpiar, la cual limpia el formulario y salir, que cierra el
formulario
iii)
Generar / Ver Reportes: en esta opción, el usuario puede acceder a la
información ingresada previamente a la base de datos, para esto se debe
seleccionar un pc en la parte superior y a continuación presionar el botón ver
informe. En caso que el usuario desee generar un reporte en formato pdf,
puede presionar el botón generar informe.
Fig. 5.4
Además, están disponibles las funciones limpiar, la cual limpia el formulario y salir, que cierra el
formulario
iv)
Crear, Modificar Eliminar PC: Este menú permite la creación, modificación y
eliminación de computadores del sistema de inventario.
El formulario esta dividido en tres secciones:
•
Crear Nuevo PC: Esta opción permite agregar nuevos computadores al
sistema, para llevar a cabo esta opción, es necesario especificar un nuevo
nombre de PC y opcionalmente un ayudante encargado para este.
•
Modificar PC: permite modificar el nombre y el ayudante de un
computador. Para utilizar esta opción, es preciso cargar los datos del PC
que se desee modificar seleccionando un computador en el selector
nombre y presionando el botón cargar anterior. Una vez cargados los
datos se modifica libremente, al finalizar se debe presionar modificar.
•
Eliminar PC: elimina permanentemente un computador del sistema. Esta
sección trabaja de la misma forma que las secciones anteriores.
Fig. 5.5
v)
Los Mensajes: La aplicación cuenta con mensajes de error o aprobación que le
indican al usuario si han cometido un error o bien, si los datos han sido
ingresados correctamente al sistema. A continuación se presentan algunos de
estos mensajes.
En el menú Crear, Modifica PC:
Si el usuario desea eliminar un computador del sistema, este visualizará el siguiente
dialogo de confirmación con el fin de dar oportunidad a cancelar la eliminación:
Fig. 5.6
En el caso de que la eliminación fuese aprobada, entonces el mensaje que visualizara
será el siguiente:
Fig. 5.7
En el caso contrario. El usuario no recibirá ningún mensaje.
En el caso que al crear un nuevo PC, el usuario no ingrese el nuevo nombre para este
computador, se visualizará el siguiente mensaje de error indicando el problema
ocurrido.
Fig. 5.8
Si el usuario ha completado todos los datos correctamente, el mensaje de aprobación
será el siguiente:
Fig. 5.9
Menú Ver Generar Reportes:
En esta sección del sistema, el usuario no se verá invadido de muchos mensajes de
advertencia, ya que las opciones a las que este tiene acceso está extremadamente
limitadas, no obstante, el usuario podrá visualizar algunos de los siguientes diálogos.
Al generar un reporte correctamente:
Fig. 5.10
Menú Modificar Datos:
En esta sección entre los mensajes que se podrán visualizar está el siguiente:
Fig. 5.11
CAPÍTULO VI
CONCLUSIONES
CONCLUSIONES:
Al desarrollarse la aplicación se pudo descubrir y utilizar las múltiples ventajas que tiene
JAVA, con respecto a otros lenguajes, ya que éste cuenta con extensas posibilidades para
desarrollar distintas cosas, como lo fueron en este caso, la generación de PDF utilizando el API
de iText o JDBC para conectarse a la base de datos, todas las cuales ya están desarrolladas, lo que
conlleva a que el usuario que desee utilizarlas solo debe buscarlas y leer sus especificaciones.
Otro punto destacable, es que al combinar JAVA con distintos API, lo convierte en una
herramienta capas de generar aplicaciones robustas y confiables y a la vez, de gran versatilidad.
En el proceso de desarrollo es importante destacar la utilización de NetBeans, un herramienta
IDE que permite la utilización de un API llamado null Layout, el cual permite al usuario “dibujar”
libremente su aplicación, evitándose pérdidas de tiempo en indicar coordenadas como pasa al
utilizar otros layout.
Al programarse esta aplicación se utilizó un diseño en capas, lo que llevó a descubrir las
mejorías que tiene esta forma de programación con respecto a otras. Un ejemplo de ventaja de
este tipo de diseño podría ser la necesidad de cambiar el motor de la Base de Datos, ya que en el
caso del sistema creado sólo hay que cambiar una de las clases y no toda la aplicación.
Finalmente, para concluir el presente informe, se deja abierta la posibilidad a futuros
programadores la implementación de servlets para sistema desarrollado, ya que de esta forma se
podría ejecutar la aplicación en un servidor en vez de localmente. Recordando que gracias al
diseño en capas, se utilizarían las mismas clases ya creadas.
ANEXOS
A continuación se presenta el resultado final correspondiente a la generación de documento en
PDF.
A continuación se presentan algunos ejemplos de códigos, definiciones y de material utilizado
para el desarrollo del sistema, con el fin de prestar ayuda al que desee desarrollar algún tema
similar.
•
JDBC:
Qué es JDBC?
JDBC es usado para enviar comandos SQL hacia una base de datos relacional, que puede ser
MySQL, Oracle, Infomix, SyBase, etc.
Qué hace JDBC?
1. Establece una conexión con una BD
2. Envía sentencias SQL
3. Procesa los resultados
Connection con = DriverManager.getConnection ( "jdbc:odbc:wombat", "login",
"password");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) { int x = rs.getInt("a"); String s = rs.getString("b");
float f = rs.getFloat("c"); }
JDBC es una integración de SQL hacia Java, es decir que las sentencias SQL se puedan
mezclar con Java, por ejemplo, que una variable de Java pueda ser usada en una sentencia
SQL para recibir o dar valores.
Un mapeo directo de las tablas de la Base de Datos hacia las clases de Java, donde cada fila
de la tabla se convierte en una instancia de la clase, y donde cada columna se corresponde a
un atributo de esa instancia.
•
Generación de PDF con iText
iText es una librería gratuita que permite a desarrolladores extender las capacidades de sus
aplicaciones java a la creación de documentos PDF en forma dinámica. Para su utilización en
el presente proyecto, se creó una clase PDF que recibe parámetros para utilizarlos en la
creación de un documento. A continuación se muestra un fragmento de este código.
/**
* Clase que, haciendo uso de la biblioteca de clases iText 1.3, genera un
archivo PDF con los datos proporcionados
*/
public class GenerarPDF {
/**
* Constructor por defecto de la clase GenerarPFD
*/
public GenerarPDF() {
public void crearPDF(String tituloInforme, Vector hardware, Vector
accesorios, String nombrePDF) {
Document document = new Document();
HW hw;
AC ac;
try {
nombrePDF="c:\\ "+nombrePDF;
PdfWriter.getInstance(document, new FileOutputStream(nombrePDF));
document.open();
Table cabecera = new Table(1);
cabecera.setWidth(100f);
cabecera.setBorderWidth(0);
cabecera.setPadding(8);
Font fontCabecera = new Font(bfArial,16);
fontCabecera.setColor(new Color(255, 255, 255));
Cell cell = new Cell();
cell.add(new Paragraph(tituloInforme, fontCabecera));
cell.setHeader(true);
. . .
Codigo
. . .
BIBLIOGRAFIA
•
Sergio Alejandro Dos Santos, JAVA La guia total del programador,MP Ediciones, 2005,
Buenos Aires Argentina.
•
Abraham Otero, JAVA 2, javaHispano, 2003.
•
Abraham Otero, El ABC del JDBC, javaHispano, 2003.
•
DECSAI, Construcción de Interfaces gráficos de usuario, Noviembre 2005
•
www.javahispano.com
•
www.mysql.conclase.net
•
www.itext.com
•
www.sun.java.com