Está en la página 1de 97

Diseo y desarrollo de base de datos en

MySQL y aplicacin Web en PHP con


servidor central APACHE
Memoria del Proyecto Final de Carrera

Titulacin: Ingeniera Superior de Informtica


Fecha: 1 de Julio de 2011
Autor: Adrin Castillo Snchez
Director: Sergio Sez Barona
Codirector: Javier Vicente Jimnez Belenguer

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
1

INTRODUCCIN................................................................................................................................................ 4

ESPECIFICACIN DE REQUISITOS ...................................................................................................................... 6


2.1.
INTRODUCCIN ................................................................................................................................................... 6
2.1.1. PROPSITO...................................................................................................................................................... 6
2.1.2. MBITO ........................................................................................................................................................... 6
2.1.3. DEFINICIONES, ACRNIMOS Y ABREVIATURAS ............................................................................................... 7
2.1.4. REFERENCIAS................................................................................................................................................... 7
2.1.5. VISIN GENERAL ............................................................................................................................................. 8
2.2.
DESCRIPCIN GENERAL ....................................................................................................................................... 8
2.2.1. PERSPECTIVAS DEL PRODUCTO ....................................................................................................................... 8
2.2.2. FUNCIONES DEL PRODUCTO ........................................................................................................................... 9
2.2.3. CARACTERSTICAS DEL USUARIO ................................................................................................................... 10
2.2.4. RESTRICCIONES GENERALES.......................................................................................................................... 10
2.2.5. SUPUESTOS Y DEPENCIAS ............................................................................................................................. 11
2.2.6. REQUISITOS PENDIENTES .............................................................................................................................. 11
2.3.
REQUISITOS ESPECFICOS .................................................................................................................................. 11
2.3.1. REQUISITOS FUNCIONALES ........................................................................................................................... 12
2.3.1.1.
2.3.1.2.
2.3.1.3.
2.3.1.4.
2.3.1.5.

2.3.2.

REQUISITOS DE INTERFACES EXTERNOS ....................................................................................................... 14

2.3.2.1.
2.3.2.2.
2.3.2.3.
2.3.2.4.

2.3.3.
2.3.4.

BASE DE DATOS ...................................................................................................................................................... 17

ANLISIS .........................................................................................................................................................18
3.1
3.2
3.3
3.4

SEGURIDAD ............................................................................................................................................................ 16
MANTENIMIENTO .................................................................................................................................................. 16

OTROS REQUISITOS ....................................................................................................................................... 17

2.3.6.1.

ESTNDARES .......................................................................................................................................................... 15
LIMITACIONES HARDWARE .................................................................................................................................... 16

ATRIBUTOS .................................................................................................................................................... 16

2.3.5.1.
2.3.5.2.

2.3.6.

INTERFAZ DE USUARIO........................................................................................................................................... 14
INTERFACES HARDWARE ....................................................................................................................................... 14
INTERFACES SOFTWARE ......................................................................................................................................... 15
INTERFACES DE COMUNICACIONES ....................................................................................................................... 15

REQUISITOS DE EFICIENCIA ........................................................................................................................... 15


OBLIGACIONES DE DISEO............................................................................................................................ 15

2.3.4.1.
2.3.4.2.

2.3.5.

USUARIO ................................................................................................................................................................ 12
USUARIO CON PERMISOS DE ALMACN ................................................................................................................ 12
USUARIO CON PERMISOS DE COMPRAS ................................................................................................................ 13
USUARIO CON PERMISOS DE INGENIERA ............................................................................................................. 13
USUARIO ADMINISTRADOR ................................................................................................................................... 14

CASOS DE USO ................................................................................................................................................... 18


DIAGRAMAS DE SECUENCIA .............................................................................................................................. 46
DIAGRAMA UML ................................................................................................................................................ 49
DISEO ENTIDAD-RELACIN ............................................................................................................................. 51
DISEO ...........................................................................................................................................................52

4.1
NIVEL DE INTERFAZ ............................................................................................................................................ 53
4.1.1 DIAGRAMAS DE NAVEGABILIDAD ................................................................................................................. 57
4.1.1.1
4.1.1.2
4.1.1.3
4.1.1.4

USUARIO ................................................................................................................................................................ 57
USUARIO CON PERMISO DE ADMINISTRACIN EN RDENES DE TRABAJO........................................................... 58
USUARIO CON PERMISO ALMACN ....................................................................................................................... 59
USUARIO CON PERMISO DE INGENIERA ............................................................................................................... 60

Pgina 2 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
4.1.1.5
4.1.1.6

USUARIO CON PERMISO DE COMPRAS .................................................................................................................. 61


USUARIO ADMINISTRADOR ................................................................................................................................... 62

4.2
NIVEL LGICO .................................................................................................................................................... 63
4.3
NIVEL DE PERSISTENCIA ..................................................................................................................................... 63
4.3.1 ESQUEMA DE LA BASE DE DATOS ................................................................................................................. 64
5

IMPLEMENTACIN E INTEGRACIN ................................................................................................................66


5.1
TECNOLOGAS.................................................................................................................................................... 66
5.2
HERRAMIENTAS ................................................................................................................................................. 67
5.3
DETALLES DE LA IMPLEMENTACIN .................................................................................................................. 68
5.3.1 PERFILES DE USUARIO ................................................................................................................................... 68
5.3.2 AUTENTIFICACIN DE USUARIOS .................................................................................................................. 69
5.3.3 ASPECTOS GENERALES .................................................................................................................................. 69
5.4
INTEGRACIN .................................................................................................................................................... 70

EVALUACIN Y PRUEBAS ................................................................................................................................72


6.1
EVALUACIN ..................................................................................................................................................... 72
6.2
PRUEBAS ............................................................................................................................................................ 72
6.2.1 PRUEBA SOLICITUD DE ALTA DE UN NUEVO COMPONENTE ........................................................................ 72
6.2.2 PRUEBA CONSULTA SOBRE INFORMACIN DE CUALQUIER COMPONENTE ................................................. 74
6.2.3 PRUEBA CONSULTA SOBRE INFORMACIN DE CUALQUIER RDEN DE FABRICACIN ................................ 76
6.2.4 PRUEBA EXTRAER O QUITAR STOCK DE UN COMPONENTE EN UNA UBICACIN DETERMINADA ............... 79
6.2.5 PRUEBA HACER UN KITTING ......................................................................................................................... 81
6.2.6 PRUEBA SOLICITUD DE COMPRA .................................................................................................................. 83

CONCLUSIONES ...............................................................................................................................................86

BIBLIOGRAFA ..............................................................................................................................................................87
ANEXO A. DESCRIPCIN DE TECNOLOGAS ..................................................................................................................88
A.1.
HTTP .................................................................................................................................................................. 88
A.2.
PHP .................................................................................................................................................................... 89
Ventajas ..................................................................................................................................................................... 90
Inconvenientes ........................................................................................................................................................... 91
A.3.
CSS ..................................................................................................................................................................... 91
LOS TRES TIPOS DE ESTILOS .................................................................................................................................................... 91
VENTAJAS DE USAR LAS HOJAS DE ESTILO .................................................................................................................................. 92
A.4.
LINUX ................................................................................................................................................................. 92
A.5.
HTML ................................................................................................................................................................. 93
NOCIONES BSICAS DE HTML ............................................................................................................................................... 94
ACCESIBILIDAD WEB ............................................................................................................................................................. 95
A.6.
SERVIDOR HTTP APACHE ................................................................................................................................... 95
VENTAJAS .......................................................................................................................................................................... 96
USO.................................................................................................................................................................................. 96
A.7.
MYSQL ............................................................................................................................................................... 97
APLICACIONES .................................................................................................................................................................... 97

Pgina 3 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

1 INTRODUCCIN
La aplicacin en PHP supone la creacin de una herramienta, orientada al Web, para la administracin de
un inventariado de componentes comerciales como de diseo propio, codificacin automtica de los
mismos, consultora de informacin sobre fabricantes, proveedores, ofertas, stock y en que estructuras de
productos se estn utilizando, gestin global de solicitudes de compra y posteriores pedidos, organizacin
del almacn (adicin y extraccin de stock), realizacin de kitting para obtener las diferentes cantidades de
los componentes que forman una estructura de un producto, gestin de las rdenes de trabajo dentro de la
empresa.
Otros requisitos ms bsicos son de tipo administrativo que conllevan el alta de un nuevo usuario en el
sistema, eliminacin y modificacin de informacin de los diferentes componentes dentro del sistema,
consultora de la base de datos mediante el lenguaje SQL.
Nuestra aplicacin tendr como finalidad llegar a ser una E.R.P para la empresa que se ir expandiendo
con diferentes mdulos como la posible recepcin de los pedidos, solicitudes de compra automticas,
gestiones financieras segn la orden de trabajo o la verificacin de los pedidos comprobando los diferentes
estados por los que tiene que pasar (IPC, cantidades correctas, precios, etc..)

Las motivaciones:

Las motivaciones que me han llevado a emprender la realizacin de este Proyecto Final de Carrera
podramos definirlas en los siguientes puntos, tcnicos y humanos, los cuales me han servido como ensayo
general antes de la inminente salida de la Universidad hacia la prspera vida laboral.
Mis aspiraciones tcnicas fueron el hecho de afrontar un reto importante como la programacin de una
aplicacin de esta ndole dentro de un mbito empresarial y la adaptacin a unas herramientas ya impuestas
dentro de la empresa, como la programacin en PHP, uso de las bases de datos en MYSQL y la creacin de
plantillas CSS y pginas en HTML.
Uno de los factores ms importante que hizo que el proyecto fuera motivador para m fue el hecho de la
usabilidad de las Bases de Datos durante toda mi carrera y en cuyo reto sta parte era muy importante. El
hecho de que durante todo este tiempo haya estado cumpliendo por parte de la empresa y por mi parte
objetivo tras objetivo me ha ido generando una satisfaccin personal muy gratificante y provocando que
dentro del proyecto inicial propusiese diversas funcionalidades futuras para mejorar procedimientos y que
se estudiarn por parte de la empresa.
Mis aspiraciones humanas fueron enfocadas a la preparacin a la hora de mantener reuniones con
entidades importantes para acordar objetivos sobre el proyecto, mejorar o modificar cosas sobre el mismo,
innovar o intentar hacer realidad diversas ideas para mejorar en lo posible el funcionamiento de diversos
procedimientos dentro de la empresa.
A nivel personal me ha servido para mejorar en diversos aspectos como la organizacin del cdigo,
pensar en la futura administracin del mismo, facilidad a la hora de modificar ciertos aspectos del proyecto,

Pgina 4 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
tener iniciativa propia aunque se escape del objetivo principal por la posibilidad de incorporarse dentro de la
aplicacin y a cumplir plazos de entrega.

Planteamiento tcnico:

El objetivo del planteamiento tcnico ha sido dotar a la aplicacin de varios puntos:


1.
2.
3.
4.

Interfaz de usuario amigable y eficiente


Portabilidad y capaz en un futuro de adaptarse a nuevas tecnologas.
Desarrollo sobre tecnologa Linux, Apache, PHP y MySQL.
Interfaz Web que pueda tener acceso desde cualquier navegador web.

Se ha desarrollado sobre estos puntos una aplicacin que simplificase la interaccin entre el usuario y la
mquina al mismo tiempo que resultase llamativa, elegante, entendible y eficaz. Para ello he tenido en
cuenta un entorno grfico muy detallado, potente, intuitivo y de rpido aprendizaje por parte del usuario.
Diversos estudios hechos anteriormente por Internet demuestran que existen aplicaciones potentes pero el
motivo de la complejidad de las mismas hace que sean rechazadas por lo que en nuestro caso hemos evitado
al mximo todo ello.
De esta manera he llegado a la compatibilidad y portabilidad entre navegadores web, haciendo ms
exacta la representacin web cuanto ms exacto sea el navegador. Los mejores resultados se obtienen con
los navegadores Mozilla sin dejar de representarse correctamente con otros navegadores de versiones
Internet Explorer de Microsoft o Opera.
Quiero destacar de las tecnologas utilizadas lo denominado como futurabilidad y la portabilidad,
entendiendo por la misma la capacidad para ser multiplataforma y de alternarlas sin perder funcionalidad, y
por futurabilidad la capacidad del portal para sostenerse en el futuro al basarse en tecnologas estndares
y lenguajes de amplia difusin y establecidos.
El desarrollo sobre las tecnologas Linux + Apache + PHP + MySQL permite instalar la aplicacin bajo un
mnimo presupuesto: coste mnimo del hardware para el funcionamiento del servidor: todo ordenador
podra solucionar las necesidades que, en caso de ser mayores, se podra recurrir a hospedaje compartido o
servidor profesional dedicado a ello. Ambas opciones estn ampliamente respaldadas por la prctica
totalidad de servidores de pago o contrato con soporte PHP y MySQL, siendo las mudanzas sencillas y claras
para cualquier usuario. En nuestro caso nos encontramos con un servidor profesional dedicado a ello que
incluso en la actualidad se est pensando cambiar con lo que no conllevar grandes cambios por lo
mencionado anteriormente.
Por otro lado, los gastos del cliente son nulos ya que para utilizar la aplicacin slo se necesitara un
navegador web de los disponibles en mercado, ahorrndonos la instalacin de cualquier aplicacin que
acte de cliente, siendo incluso necesario para la gestin administrativa de la misma.
Debido a su amplia funcionalidad desde el navegador web, se puede acceder
ordenador conectado a Internet haciendo que el potencial de usuarios sea casi global.

desde cualquier

Pgina 5 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

2 ESPECIFICACIN DE REQUISITOS
2.1. INTRODUCCIN
En este punto se har una descripcin completa del comportamiento del sistema que se va a desarrollar a
lo largo de todo el documento. Aspectos tan importantes como el mbito donde se va a desenvolver la
aplicacin, el propsito u objetivo por el cual se ha desarrollado, perspectivas del producto, requisitos
funcionales y de usuario as como posibles mejoras.
2.1.1. PROPSITO
El propsito del siguiente apartado consiste en la especificacin de requisitos software que ser til para
establecer unos prerrequisitos y el principio de todo el trabajo realizado y servir como fuente de
informacin para que cualquiera pueda conocer de una forma mejor y ms detallada todo el proyecto.
2.1.2. MBITO
La aplicacin que se accede mediante Web en la intranet propia de la empresa y consistir en una
interfaz dinmica que facilitar la consulta, compras, pedidos, rdenes de fabricacin y gestin de stock
dentro del almacn. Dependiendo del tipo de usuario se dispondr de diferentes operaciones segn el nivel
de privilegios o permisos que se tenga.
Las operaciones bsicas de usuario ser la consulta de tipo informativo sobre cualquier componente
insertado en la base de datos (fabricantes, proveedores, ofertas, donde est utilizado, ubicaciones y stock).
Ofrecer tambin un servicio de altas de componentes para su posterior codificacin dentro del sistema e
insercin en la base de datos despus de una supervisin del administrador de sta rea. Tendr tambin un
acceso a sus datos personales, mdulo de consultas mediante consultas SQL y consultora sobre todas las
rdenes de fabricacin con sus respectivos datos como proyecto al que pertenece, fechas de realizacin,
responsable, componentes afectados, facturacin y pedidos relacionados.
El usuario administrador tendr a parte de todas las funcionalidades anteriores se encargar de la
modificacin de diversos datos importantes de cualquier componente como puede ser la insercin de un
nuevo fabricante o modificacin de alguno existente, modificacin o eliminacin de algn componente,
insertar, eliminar o modificar alguna oferta, insertar, modificar o eliminar alguna ubicacin, supervisar el alta
de componentes nuevos o de rdenes de fabricacin nuevas y dar de alta masivamente componentes
respetando el formato acordado para hacerlo.
Segn el nivel de permisos que se obtenga se puede ser un usuario intermedio a los dos casos extremos
anteriores. Si el usuario tiene un perfil financiero se podr tener acceso al mdulo de compras donde se
tienen funcionalidades como solicitudes de compra y obtener informacin de cmo progresa cada uno de
ellas sobre los distintos niveles que tienen. El administrador en este tipo de perfil tendr acceso a la firma y
aceptacin de las solicitudes convirtindose en pedidos y a toda la informacin adicional que se pueda
introducir.

Pgina 6 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Otro perfil es el de usuario de almacn donde tendr accesos a la adicin o extraccin de stock para su
consumo. Se podr crear nuevas ubicaciones para componentes nuevos ayudados de una aplicacin de
creacin de ubicaciones basada en el mapa de la empresa. Otra funcionalidad que tiene es la posibilidad de
hacer un kitting que es como un carrito de la compra de varios componentes para su posterior extraccin,
pudindose hacer parcialmente y posteriormente recuperarlo para finalizarlo.
La funcionalidad principal de todo lo descrito es la posibilidad de administrar o trabajar de forma remota
sobre los recursos sin ser necesario el acceso fsico para realizar las operaciones aunque es recomendable no
por motivo informtico si no organizativo en el mdulo de almacn hacer sus operaciones posteriores a las
informticas de manera fsica.

2.1.3. DEFINICIONES, ACRNIMOS Y ABREVIATURAS


HTML: Acrnimo ingls de Hyper Text Markup Language es un lenguaje informtico diseado para
estructurar textos y presentarlos en forma de hipertexto, que es el formato estndar de las pginas web.
CSS: Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguaje formal de ordenador
usado para definir la presentacin de un documento estructurado escrito en HTML o XML.
HTTP: es el protocolo de la Web (WWW), usado en cada transaccin. Las letras significan Hyper Text
Transfer Protocol, es decir, protocolo de transferencia de hipertexto.
PHP: Acrnimo de "PHP: Hypertext Preprocessor". Es un lenguaje de programacin de scripts y se
utiliza principalmente para la programacin de CGIs para pginas web, destaca por su capacidad de ser
embebido en el cdigo HTML.
Web: Es un sistema de hipertexto que funciona sobre Internet. Para ver la informacin se utiliza una
aplicacin llamada navegador web para extraer elementos de informacin de los servidores web y
mostrarlos en la pantalla del usuario.
Web dinmica: existen dos tipos de pginas web, de contenido esttico (HTML) y de contenido
dinmico que se generan a partir de lo que un usuario introduce en un web o formulario y que utiliza el
servidor para construir una web personalizada que enva al cliente.
Apache: Es un servidor HTTP de cdigo abierto para plataformas Unix (BSD,GNU/Linux, etc), Windows y
otras, implementa el protocolo HTTP/1.1 (RFC2616) y la nocin de sitio virtual.
MYSQL: MySQL es el servidor de bases de datos relacionales ms popular, desarrollado y
proporcionado por MySQL AB.
API: (del ingls Application Programming Interface - Interface de Programacin de Aplicaciones, interfaz
de programacin de la aplicacin) es un conjunto de especificaciones de comunicacin entre componentes
software.
Usuario: Se llamar usuario a cualquier persona que acceda a la aplicacin. Se diferenciarn entre ellos
por los permisos que puedan tener.
Kitting: Se referenciar a este trmino a la accin de extraccin de unidades de cualquier componente
identificado en un listado dentro de la seccin correspondiente en la aplicacin.
2.1.4. REFERENCIAS
La realizacin del siguiente documento se ha basado en las siguientes fuentes:
[1] Wikipedia en espaol: http://es.wikipedia.org
[2] Manual de PHP: http://www.php.net
[3] Especificaciones de HTML 1.0: http://www.w3schools.com/html/default.asp
Pgina 7 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
[4] Documentacin de Apache: http://httpd.apache.org
2.1.5. VISIN GENERAL
En el resto del documento se tratar todos los objetivos que se han conseguido as como se detallar y se
desarrollar toda la informacin sobre las operaciones que se pueden hacer segn qu tipo de usuario.

2.2. DESCRIPCIN GENERAL


En esta seccin se describen todos aquellos factores que afectan al producto y a sus requisitos. No se
describen los requisitos, sino su contexto. Esto permitir definir con detalle los requisitos en la seccin 3,
haciendo que sean ms fciles de entender. Esta seccin consta de los siguientes puntos: Perspectiva del
producto, funciones del producto, caractersticas de los usuarios, restricciones, factores que se asumen y
futuros requisitos.

2.2.1. PERSPECTIVAS DEL PRODUCTO


En el momento de nuestra llegada ya estaba implantado un Servidor Web y la base de datos MySQL
dentro de una mquina Linux por lo que opt por desarrollar la aplicacin en HTML con programacin en
PHP para generar el contenido dinmico producido por los usuarios con la introduccin de datos.
Posteriormente se accedera a la base de datos MySQL para comprobar, obtener o eliminar los datos
necesarios para generar las pginas correspondientes. Por todo ello comuniqu la forma de proceder con
este diseo de sistema por el soporte que proporcionaba al lenguaje PHP, MySQL y Servidor Web.
Se busc la compatibilidad entre navegadores (Microsoft Internet Explorer versin 5.5 o superiores,
Mozilla Firefox, Safari, Opera) para hacer ms potente la aplicacin.
Otro punto importante fue la forma de presentar la aplicacin. Conllev hacer una pequea consulta a las
directrices de la empresa sobre formatos, estndares y pantones para poder desarrollar tipos de letra,
colores, formas de botones, tablas. La resolucin a la que se opt fue la de 800x600 aunque lo ms
recomendable era 1024x768 para que todos los elementos representados cupieran sin problema alguno
para cualquier mquina. Se trat de que fuese lo ms intuitivo y amigable para el usuario ofreciendo una
interfaz llamativa a la vista y separando los privilegios que tuviese cada uno.
Fue importante saber que para alojar la aplicacin, tanto el servidor Apache como MySQL han de trabajar
sobre un sistema cualquiera de Linux. Gran parte de las distribuciones Linux funcionan sobre mquinas 386,
a excepcin, en el caso de utilizar un PC Pentium II o mayor, porque hubiera que, usar un servidor que debe
ejecutar PHP junto con base de datos MySQL. Se puede implantar los servidores con arquitectura diferente
a Intel x86 (Sparc, Alpha,..). El software utilizado est formado por: distribucin Linux, servidor web Apache
con mdulo PHP, servidor de base de datos MySQL y navegadores tales como Internet Explorer o Mozilla
Firefox. Cualquier comunicacin entre cliente y aplicacin se gestiona a travs del navegador web y el
servidor de la misma a travs de TCP/IP sobre el protocolo HTTP. Hay un lmite de pginas para utilizar

Pgina 8 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
simultneamente para controlar el consumo de memoria que est relacionado con el hardware del PC, el
ancho banda de la conexin y la velocidad del procesador.

2.2.2. FUNCIONES DEL PRODUCTO


Las funciones que realizar la aplicacin web sern las siguientes:
I.
Inicio de sesin como usuario autentificado. Se comprobar as los permisos que tiene cada uno de
los usuarios a la hora de interaccionar con la aplicacin
II.
Bsquedas sencillas sobre un dato o ms avanzadas sobre varios especificndolos de forma
estricta o parcial. Esto dotar a la aplicacin de un potente motor de bsqueda. Dichas bsquedas servirn
para encontrar componentes, ofertas, fabricantes, proveedores, stocks u rdenes de fabricacin.
III.

Consultas de archivos adjuntos de los componentes dados de alta.

IV.
Dar de alta diversos componentes con sus datos ms relevantes, incluso archivo adjunto, as como
sus fabricantes, proveedores, ofertas y ubicaciones y la posibilidad de tener un seguimiento del mismo as
como de posibles modificaciones.
V.
Dar de alta diversas rdenes de fabricacin para un mejor desarrollo de trabajo en la empresa. Se
agregarn a la base de datos con la informacin ms importante como el responsable, que componentes son
afectados, fechas de trabajo, cantidades, facturacin, horas y proyecto relacionado.
VI.
Bsquedas sencillas o avanzadas sobre datos de las rdenes de fabricacin. Se podr consultar
cualquier informacin como por ejemplo los pedidos que existen con esa orden de fabricacin, responsable,
componentesPara potenciar la bsqueda se podr filtrar la misma por diferentes campos o por alguno de
ellos.
VII.
Se podr operar sobre el almacn. Las operaciones que se podrn hacer es la adicin o extraccin
de stock, listados en formato Excel sobre alguna ubicacin o ubicaciones buscadas o hacer kittings de
manera parcial o completa.
VIII.

Acceder a los datos personales para cambiarlos.

IX.
SQL.

Posibilidad de sacar informes o bsquedas con el formato Excel de forma personal bajo consultas

X.
Operaciones sobre compras. Se podr hace solicitudes de compra sobre componentes o cualquier
otro equipo. La posibilidad de un seguimiento de firmas para su posterior pedido.
XI.
A nivel administrativo de cualquier mdulo o aplicacin. Segn los permisos que se obtengan se
podr alguna o varias de las siguientes operaciones. Se tendr acceso a la modificacin, eliminacin e
insercin de cualquier componente, orden de fabricacin, divisas, proveedores o de cualquier dato de una
tabla (componente, fabricante del componente, oferta y ubicaciones). Se podr dar de alta o baja a un
usuario o dar permisos nuevos o quitarlos. A nivel de compras se podrn firmar las solicitudes de los
usuarios. A nivel almacn se podr dar de alta nuevas ubicaciones para diversos componentes.
Pgina 9 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
2.2.3. CARACTERSTICAS DEL USUARIO
Existen diversos tipos de usuario segn los permisos que obtengan o se le atribuyan en cada momento. A
continuacin se relatarn diversos tipos de usuarios:
Uno de ellos ser el usuario bsico el cual podr consultar cualquier informacin sobre cualquier
componente de la base de datos. Obtendr informacin sobre fabricantes, proveedores, ofertas,
ubicaciones, estructuras donde se est utilizando, stock. Otra funcionalidad ser el solicitar dar de alta un
componente nuevo y mirar en qu estado se encuentra su peticin de alta. Tambin podr modificar datos
personales y hacer cualquier tipo de consulta sobre cualquier orden de trabajo dada de alta (responsable,
componentes, pedidos, fechas de orden, proyecto, horas dedicadas y dinero dedicado).
Otro usuario sera el que obtiene permisos de almacn que teniendo todas las acciones del usuario bsico
adems tiene funcionalidades como la adicin y extraccin de stock de cualquier componente, la creacin de
nuevas ubicaciones para componentes ayudado de una aplicacin de codificacin de ubicaciones sobre un
mapa de la empresa, modificacin y eliminacin de ubicaciones y la posibilidad de hacer kitting completos o
parciales (parecido a un carrito de la compra).
Otro tipo de usuario es el que obtiene los permisos de compras con los que podr hacer solicitudes de
compra y verificar el estado en el que se encuentran y donde cabe destacar otro usuario del tipo
administrador que se encargar de firmar esas solicitudes para que posteriormente se conviertan en
pedidos. Este ltimo usuario aparte de tener las funcionalidades del usuario de compras bsico tambin se
encarga de la actualizacin del valor de las divisas.
Otro tipo de usuario es el encargado de la administracin de las rdenes de fabricacin las cuales podr
dar de alta en cualquier momento sin supervisores por el medio. Tendr permisos de modificacin de datos
sensibles de la orden as como de la eliminacin de la misma. Este tipo de usuario podr obtener
informacin de todos los pedidos que tenga una orden de fabricacin a diferencia del usuario bsico que
solo podr ver los pedidos hechos por l en cada una de ellas.
Por ltimo existe un usuario administrador del sistema que se encargar de todo lo anterior y aparte
tendr acceso a la parte de administracin de permisos para cada uno de los usuarios as como el dar de alta
a un usuario nuevo dentro del sistema. Este usuario tambin se responsabilizar de dar de alta una lista de
componentes mediante altas masivas si el fichero que las contiene est correctamente creado bajo la
estructura acordada.

2.2.4. RESTRICCIONES GENERALES


El usuario administrador podr utilizar la base de datos de forma bsica (modificar, eliminar, aadir,..)
pero no modificar la estructura de la base datos al ser fija. Una modificacin en la estructura de base de
datos se efectuar a nivel de gestin de base de la propia Base de Datos utilizando una actualizacin del
software y slo podr ser ejecutada por el administrador de base de datos.
Supongamos que se realiza una actividad frecuente sobre la aplicacin, esto puede resultar en un acceso
inadecuado a la misma por la propia saturacin del servidor. Esta saturacin puede deberse a los accesos a la
Pgina 10 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
base de datos como a la ejecucin del cdigo PHP en el servidor web. Se difieren varias soluciones: la ms
simple sera aumentar la potencia del servidor con nuevo hardware o ms compleja: pasar el servidor de
MySQL a otro PC en la red local, introducir un proxy inverso en la entrada de la aplicacin para que acte
como acelerador HTTP o construir un clster de servidores web.
Tenemos que tener en cuenta el ancho de banda disponible del servidor para servir pginas ya que se
puede convertir en el principal cuello de botella de la aplicacin sino elegimos el adecuado, basndonos en
la media de accesos producidos tanto al da como en horas punta.
Tiene que existir una poltica de seguridad adecuada en el servidor para evitar intrusiones al sistema,
cabe destacar la configuracin del servidor Apache. De la misma manera actuaramos con el servidor MySQL
y PHP. El sistema operativo debe disponer de un sistema de seguridad estricto para evitar intrusiones tales
como cortafuegos, permisos, detectores de intrusiones, Realizaremos de forma peridica copias de
seguridad de: base de datos, pginas del servidor y configuraciones del servidor MySQL Y Apache, como
medida bsica de seguridad.

2.2.5. SUPUESTOS Y DEPENCIAS


En un futuro podra establecerse un sistema ms seguro y probado de autentificacin de cualquier
persona de la empresa mediante algn certificado digital firmado (por ejemplo, un certificado de la FNMT
(CERES)) que probara la identidad de la persona para poder firmar por ejemplo las solicitudes de compra o
cualquier operacin sensible en el sistema.

2.2.6. REQUISITOS PENDIENTES


Se deja como requisitos pendientes todo lo relacionado con la recepcin de pedidos y los diferentes
controles por los que pasan. Otro aspecto a mejorar seran las solicitudes de compra automticas
correspondientes a necesidades de stock a la hora de extraccin o kitting pendientes. Otro aspecto
importante para el futuro estar relacionado con la contabilidad que supone todos estos movimientos
dentro del sistema e intentar relacionar todas las operaciones del mismo con la contabilidad de la empresa.

2.3. REQUISITOS ESPECFICOS


En este apartado se presentan los requisitos funcionales que deberan ser satisfechos por el sistema.
Todos los requisitos aqu expuestos son esenciales, ya que, no sera aceptable un sistema que no satisfaga
alguno de los requisitos presentados. Contiene los requisitos a un nivel de detalle suficiente como para
permitir a los diseadores poder disear un sistema que satisfaga estos requisitos, y que permita al equipo
de pruebas planificar y realizar las pruebas que demuestren si el sistema satisface, o no, los requisitos. Todo
requisito aqu especificado describir comportamientos externos del sistema, perceptibles por parte de los
usuarios, operadores y otros sistemas.

Pgina 11 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
2.3.1. REQUISITOS FUNCIONALES
Esta seccin se especificar todas aquellas acciones y funciones que deber llevar a cabo el software.
2.3.1.1. USUARIO

Bsquedas sobre uno o varios campos de cualquier dato disponible en el sistema

Este tipo de acciones dota a la aplicacin de una potente herramienta a la hora de encontrar informacin
deseada o la posibilidad de hacer informes. El usuario introducir los datos a buscar en los correspondientes
campos de texto y en ese instante se producir una consulta SQL a la base de datos, devolviendo en un
formulario el resultado de la bsqueda.

Solicitud de alta de componentes

Esta accin hace que el usuario rellene un formulario con los datos importantes del sistema para su
posible alta en el mismo. Despus de cumplimentar debidamente se introducir en la base de datos de
forma provisional hasta que un administrador la revise. En esta funcionalidad se podr modificar por parte
del usuario cualquier dato errneo y reenviar la solicitud de nuevo con un mensaje explicativo. Todo lo
ocurrido estar notificado por correo.

Modificacin de la informacin personal

El usuario podr modificar toda la informacin relevante para el sistema a su agrado.

Informes o consultas mediante SQL

Esta funcionalidad hace que el usuario pueda hacer sus propias consultas para hacer cualquier tipo de
informe sobre datos del sistema. Est restringido a cierta informacin confidencial.

2.3.1.2. USUARIO CON PERMISOS DE ALMACN


Tendr las mismas funcionalidades que el usuario estndar y adems:

Extraccin o agregacin de stock para cualquier componente

Est accin est restringida a usuarios con permisos de almacn donde se podr, mediante una bsqueda
previa, seleccionar un componente al que se desea extraerle o agregarle unidades recibidas en su stock.
Est misma operacin se podr hacer mediante una bsqueda por ubicaciones y en el cual se podr hacer un
informe por ubicacin de los stocks de los componentes ubicados en la misma. El usuario se podr apoyar en
una pequea aplicacin de ubicaciones donde se mostrarn las diferentes zonas en un mapa correctamente
codificadas.

Hacer kitting de un listado de componentes o de una estructura

El usuario podr extraer de forma masiva unidades de un listado previamente introducido en el


formulario correspondiente indicando adems una serie de datos importantes para el sistema. Est misma
Pgina 12 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
accin se podr hacer introduciendo el componente raz de una estructura, el cual formara el principal
componente dentro de un producto.
2.3.1.3. USUARIO CON PERMISOS DE COMPRAS
Tendr las mismas funcionalidades que el usuario estndar y adems:

Solicitud de compra

Esta accin hace que el usuario rellene un formulario con los datos importantes para el sistema como
pueden ser el proveedor, proyecto, orden de fabricacin etc..y un desglose de todos los componentes
referentes a ese proveedor eligiendo previamente para cada uno de ellos la oferta anteriormente
introducida en el sistema. El sistema avisar de cualquier anomala en unidades mnimas de pedido, tiempo
mnimo de entrega y cambios de precio. El usuario podr hacer un pdf con toda la informacin e incluso se
podrn hacer solicitudes de compra parciales antes de ser definitivas para su posterior firma por parte del
administrador.

Anlisis de solicitudes de compra o pedidos

Est funcionalidad potencia la aplicacin en el sentido que el usuario tendr noticia en todo momento de
cmo se encuentran sus solicitudes o pedidos (firmados, recibidos, inspeccionados, etc..).

Dar de alta un proveedor

El usuario con estos permisos podr dar de alta un proveedor con los respectivos datos relevantes para el
sistema.

Dar de alta una oferta

El usuario con estos permisos podr dar de alta una oferta sobre algn componente buscado
anteriormente y eligiendo sobre que fabricante es. Esto permite tambin un control sobre componentes
defectuosos en alguna compra ya que estar fuertemente relacionado el fabricante con la oferta y la
ubicacin que se le d a la hora de recibirlos.

Consulta de proveedores

Est funcionalidad potencia la aplicacin en el sentido que el usuario tendr noticia en todo momento de
cmo se encuentran sus solicitudes o pedidos (firmados, recibidos, inspeccionados, etc..).

2.3.1.4. USUARIO CON PERMISOS DE INGENIERA


Tendr las mismas funcionalidades que el usuario estndar y adems:

Modificacin o insercin de huellas

Pgina 13 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Est accin est restringida a usuarios con permisos de ingeniera donde se podr, mediante una
bsqueda previa, seleccionar un componente al que se desea modificar o insertar su huella y con
posterioridad utilizar para su produccin.

Insertar nuevo fabricante

Est accin est restringida a usuarios con permisos de ingeniera donde se podr, mediante una
bsqueda previa, seleccionar un componente al que se desea insertar un nuevo fabricante.
2.3.1.5. USUARIO ADMINISTRADOR
Este tipo de usuario no tiene unas funcionalidades concretas si no que son usuarios privilegiados para
hacer todo lo posible para el buen funcionamiento del sistema. Su labor puede ser desde modificar, insertar
o eliminar registros de cualquier tabla, firmar solicitudes de compra, dar de alta componentes, dar de alta
rdenes de fabricacin, tener permisos de almacn, tener permisos de compras, tener permisos de
ingeniera hasta obtener informacin de cualquier dato del sistema.

2.3.2. REQUISITOS DE INTERFACES EXTERNOS


Se describiran los requisitos que afecten a la interfaz de usuario, interfaz con otros sistemas (hardware y
software) e interfaces de comunicaciones.
2.3.2.1. INTERFAZ DE USUARIO
El acceso a la aplicacin se realiza a travs de la web mediante la intranet de la propia empresa. Por lo
que para su utilizacin es necesario un navegador que permita conectarse al servidor y mostrar la interfaz de
la aplicacin sin problema alguno en los diferentes navegadores ya que el cdigo se cie a los estndares.
Dependiendo del nivel de privilegios o permisos que tenga el usuario la aplicacin le mostrar todas las
acciones que puede hacer pero cabe destacar que dicha aplicacin est preparada para interactuar con ella
solamente a travs del navegador por ello la importancia de tener uno.

2.3.2.2.INTERFACES HARDWARE
Para acceder a la aplicacin los usuarios debern disponer de un ordenador con algunos requisitos
importantes como un procesador potente para ejecutar cualquier navegador web, una tarjeta grfica, de
video y un monitor que pueda soportar una resolucin de 800x600. Adems tiene que tener una conexin
de red ya sea Ethernet, ADSL, Wifi, mdem debido a que la aplicacin es va Web.

Pgina 14 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
2.3.2.3. INTERFACES SOFTWARE
Los usuarios podrn visualizar la aplicacin en cualquier navegador actual sin la necesidad de usar un
sistema operativo concreto. El servidor de la misma se basa en Apache con PHP y MySQL, disponibles para
los sistemas Windows, BSD y Linux, ste ltimo ser el que usaremos.

2.3.2.4. INTERFACES DE COMUNICACIONES


Estas comunicaciones entre la aplicacin y los clientes las realizaremos a travs de la red interna de la
empresa. Los usuarios actuarn trabajando desde la propia empresa a travs de la red local. El mecanismo
de comunicacin se realiza a travs de conexiones TCP/IP y el protocolo HTTP para comunicarse con el
servidor de la aplicacin.

2.3.3. REQUISITOS DE EFICIENCIA


La aplicacin se ha realizado para el acceso simultneo de varios usuarios a los servicios ofrecidos.
Primero, el servidor web Apache donde encontramos la aplicacin, proporciona acceso a un considerable n
de clientes, de fcil configuracin desde el propio Apache y que permite visualizar el lmite mximo de
conexiones a la vez y del rendimiento que genera.
En cualquier caso, la aplicacin asegura un acceso beneficioso en condiciones de carga del servidor
normales. No es as en situacin adversa, donde la aplicacin podra errar y provocar problemas para
navegar y por la cantidad de usuarios que accedan en corto espacio, vindose el servidor saturado.

2.3.4. OBLIGACIONES DE DISEO


En esta seccin se informar de todo aquello que restrinja las decisiones relativas al diseo de la
aplicacin: Restricciones de otros estndares, limitaciones del hardware, etc.
2.3.4.1. ESTNDARES
El diseo de la aplicacin se ha realizado siguiendo los estndares fijados por el W3C. En este caso la
aplicacin se desarrolla mediante XHTML y CSS. He basado la eleccin del HTML en base a:
Compatibilidad media con navegadores antiguos, es decir, visualizamos la informacin pero sin
formato.
Facilidad para editar directamente del cdigo y mantenimiento.
Utilizacin de formato abierto y compatible con los nuevos estndares desarrollados en W3C para
futuros agentes y navegadores.
Con respecto al CSS se pretende separar la estructura de un documento de su presentacin. He elegido el
CSS por:
Pgina 15 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Control centralizado de la presentacin de un sitio web agilizando la actualizacin del mismo.
En concreto, diversos navegadores permiten que los usuarios especifiquen su propia hoja de estilo
aplicndolos a un sitio web de manera que, aumenta la accesibilidad.
En una misma pgina se puede disponer de varias hojas de estilo segn el dispositivo o la eleccin del
usuario.
El documento HTML reduce su tamao y es de mejor comprensin.

2.3.4.2. LIMITACIONES HARDWARE


El sistema no requiere de un hardware especial extra, a excepcin de un elemento para la conexin de
red junto con la conexin a Internet. Los sistemas de los clientes deben permitir la ejecucin de un
navegador grfico para acceder a la aplicacin y la conexin a red, por lo dems pueden ser variables.
Como he comentado con anterioridad, podemos instalar un sistema basado en Linux con Apache, PHP y
MySQL en sistemas 386, 486, Pentium, Aplicado en un entorno real habra que ir mejorndolo cunto
mayores fuesen las necesidades del sistema.

2.3.5. ATRIBUTOS
2.3.5.1. SEGURIDAD
Llegamos a un punto bsico para la aplicacin. Ofrece diferentes funcionalidades supeditadas el usuario
que acceda a la misma. Para identificar al cliente de forma fiable requerimos una cuenta con nombre de
usuario y contrasea que asegura la validez del usuario en la aplicacin. Dependiendo del usuario
facilitaremos unas herramientas u otras.
La informacin acerca de las cuentas se guarda en la base de datos, con las contraseas cifradas en MD5.
En un futuro, la autentificacin del usuario ir cifrada mediante el protocolo HTTPS, que conlleva el uso
seguro de la aplicacin durante su sesin.

2.3.5.2. MANTENIMIENTO
El mantenimiento de la aplicacin se lleva a cabo por parte de los administradores de la misma, al igual
que los cambios introducidos o modificaciones requeridas de la base de datos o funcionalidad, que se
gestionarn por parte del administrador del sistema.

Pgina 16 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
2.3.6. OTROS REQUISITOS
2.3.6.1. BASE DE DATOS
La aplicacin utiliza una base de datos en MySQL, donde se almacenar toda la informacin referida a
componentes, ofertas, solicitudes de compra, pedidos, stock, kittings, etc..Para poder consultarla se har
mediante el servidor web con PHP y la API de acceso de MySQL.

Pgina 17 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

3 ANLISIS
En la fse de anlisis se especificar qu tiene que hacer el programa que se va a desarrollar, tanto en lo
que se refiere al comportamiento interno (gestin de los datos) como al externo (interaccin con el usuario y
con otras aplicaciones). Por eso est seccin se tratar con casos de uso que describen requisitos del
sistema y cmo estos interactan con el usuario, as como, los diagramas de secuencia, que muestra la
interaccin de un conjunto de objetos en una aplicacin a travs del tiempo modelando cada caso de uso.
Mientras que el caso de uso permite el modelado de una vista negocio del escenario, el diagrama de
secuencia contiene detalles de implementacin del escenario, incluyendo los objetos y clases que se usan
para implementar el escenario, y mensajes intercambiados entre los objetos. Por ltimo se utilizar el
diagrama UML para construir, documentar, visualizar y especificar el sistema de software de una forma
grfica.

3.1 CASOS DE USO


Explicar con ms detalle cada una de las funciones ms importante dentro de la aplicacin. Adjunto un
grfico intuitivo (Figura 3.1) para una mejor comprensin y posteriormente los casos de uso con un nivel de
detalle ms minucioso.
uc Casos de uso principales
Lmite del sistema
Consulta listado
maestro

Solicitud Alta
rdenes de trabaj o

SQL

Consulta
fabricantes

Ingeniera ORCAD

Usuario

Usuario con
permisos
Informacin
Personal

Ingeniera Insertar
AVL

Solicitud Alta

Consulta
rdenes de
trabaj o

Consulta stock

Consulta
prov eedores

Gestionar Pedidos

Firmar
Solicitudes de
compra

Gestionar
solicitudes de
compra

Almacn Quitar o
Sacar Stock
Almacn Kitting

Administracin
Alta

Hacer solicitud de
compra

Figura 3.1 Casos de Uso


Pgina 18 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso
Descripcin

Actor iniciador
Actores secundarios

Bsqueda de informacin de un componente


Bsqueda de informacin sobre fabricantes, proveedores, datasheet,
ubicaciones, stocks, ofertas, costes de planificacin y donde se est usando
Usuario
--

Resumen

Un usuario accede a la aplicacin para buscar informacin sobre un


componente. Introduce la(s) palabra(s) a buscar en un formulario y ordena la
bsqueda. El sistema debe buscar coincidencias de componentes con las
palabras que el usuario ha introducido y devolverle el listado

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men


INVENTARIADO y submen LISTADO MAESTRO
--

Postcondiciones
Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. El usuario introduce los


2. El navegador enva el contenido
trminos de la bsqueda en la caja del formulario al servidor, para que
de texto del formulario y pulsa el este realice una bsqueda en la base
botn de Buscar.
de datos.
3. El servidor web se conecta con
la base de datos y realiza una
consulta basndose en los datos
proporcionados por el usuario.
4. Con la respuesta de la base de
datos, el servidor web construye una
pgina con un listado de los
componentes que coincidieron y la
enva al navegador.
5. El navegador recibe la pgina
con los resultados de la bsqueda y
se la muestra al usuario.
Extensiones sncronas

Extensiones asncronas

Si en 3. La base de datos no devuelve ningn resultado se enva un


mensaje informativo comunicando de la inexistencia de coincidencias y el
usuario podr intentarlo de nuevo.
--

Pgina 19 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso
Descripcin

Actor iniciador
Actores secundarios

Bsqueda de fabricantes de un componente


Bsqueda de informacin sobre componentes a partir de fabricantes. Se
obtendr informacin sobre proveedores, datasheet, ubicaciones, stocks,
ofertas, costes de planificacin y donde se est usando
Usuario
--

Resumen

Un usuario accede a la aplicacin para buscar informacin sobre un


componente a partir de fabricantes. Introduce la(s) palabra(s) a buscar en un
formulario y ordena la bsqueda. El sistema debe buscar coincidencias de
componentes con las palabras que el usuario ha introducido y devolverle el
listado

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men


INVENTARIADO y submen CONSULTA FABRICANTES
--

Postcondiciones
Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. El usuario introduce los


2. El navegador enva el contenido
trminos de la bsqueda en la caja del formulario al servidor, para que
de texto del formulario y pulsa el este realice una bsqueda en la base
botn de Buscar.
de datos.
3. El servidor web se conecta con
la base de datos y realiza una
consulta basndose en los datos
proporcionados por el usuario.
4. Con la respuesta de la base de
datos, el servidor web construye una
pgina con un listado de los
componentes que coincidieron y la
enva al navegador.
5. El navegador recibe la pgina
con los resultados de la bsqueda y
se la muestra al usuario.
Extensiones sncronas

Extensiones asncronas

Si en 3. La base de datos no devuelve ningn resultado se enva un


mensaje informativo comunicando de la inexistencia de coincidencias y el
usuario podr intentarlo de nuevo.
-Pgina 20 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso
Descripcin

Actor iniciador
Actores secundarios

Bsqueda de proveedores de un componente


Bsqueda de informacin sobre componentes a partir de proveedores. Se
obtendr informacin sobre fabricantes, datasheet, ubicaciones, stocks,
ofertas, costes de planificacin y donde se est usando
Usuario
--

Resumen

Un usuario accede a la aplicacin para buscar informacin sobre un


componente a partir de proveedores. Introduce la(s) palabra(s) a buscar en
un formulario y ordena la bsqueda. El sistema debe buscar coincidencias de
componentes con las palabras que el usuario ha introducido y devolverle el
listado

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men


INVENTARIADO y submen CONSULTA PROVEEDORES
--

Postcondiciones
Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. El usuario introduce los


2. El navegador enva el contenido
trminos de la bsqueda en la caja del formulario al servidor, para que
de texto del formulario y pulsa el este realice una bsqueda en la base
botn de Buscar.
de datos.
3. El servidor web se conecta con
la base de datos y realiza una
consulta basndose en los datos
proporcionados por el usuario.
4. Con la respuesta de la base de
datos, el servidor web construye una
pgina con un listado de los
componentes que coincidieron y la
enva al navegador.
5. El navegador recibe la pgina
con los resultados de la bsqueda y
se la muestra al usuario.
Extensiones sncronas

Extensiones asncronas

Si en 3. La base de datos no devuelve ningn resultado se enva un


mensaje informativo comunicando de la inexistencia de coincidencias y el
usuario podr intentarlo de nuevo.
-Pgina 21 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso
Descripcin

Actor iniciador
Actores secundarios

Bsqueda de informacin sobre stock de un componente


Bsqueda de informacin sobre el stock de los componentes a partir de
una lista de componentes y stock que quiere saber.
Usuario
--

Resumen

Un usuario accede a la aplicacin para buscar informacin sobre el stock


de varios componentes a partir de una lista. Introduce un listado de
componentes y stock de los cuales se quiere obtener informacin y ordena la
bsqueda. El sistema debe buscar coincidencias de componentes con el
listado que el usuario ha introducido y devolvrselo cumplimentado.

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men


INVENTARIADO y submen CONSULTA STOCK
--

Postcondiciones
Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. El usuario introduce los


2. El navegador enva el contenido
trminos de la bsqueda en la lista del formulario al servidor, para que
de texto del formulario y pulsa el este realice una bsqueda en la base
botn de Buscar.
de datos.
3. El servidor web se conecta con
la base de datos y realiza una
consulta basndose en los datos
proporcionados por el usuario.
4. Con la respuesta de la base de
datos, el servidor web construye una
pgina con un listado de los
componentes
y
stock
que
coincidieron y la enva al navegador.
5. El navegador recibe la pgina
con los resultados de la bsqueda y
se la muestra al usuario.
Extensiones sncronas

Extensiones asncronas

Si en 3. La base de datos no devuelve ningn resultado se enva un


mensaje informativo comunicando de la inexistencia de coincidencias y el
usuario podr intentarlo de nuevo.
--

Pgina 22 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso
Descripcin

Actor iniciador
Actores secundarios

Agregar componentes mediante un fichero


Agregar componentes desde un fichero en formato .csv y con los campos
obligatorios.
Usuario administrador
--

Resumen

Un usuario administrador accede a la aplicacin para insertar desde un


fichero todos los componentes que tengan bien cumplimentados los datos
obligatorios. El sistema debe buscar coincidencias de componentes con el
listado que el usuario administrador ha introducido y no agregar
componentes repetidos ni con los datos errneos

Precondiciones

El usuario administrador ha accedido a la aplicacin, ha entrado en el


men INVENTARIADO y submen ALTAS MASIVAS y tiene permisos de
administrador.

Postcondiciones
Flujos de eventos

Los nuevos componentes quedan registrados en el sistema


Interacciones del usuario

Obligaciones del sistema

1. El usuario introduce el fichero


2. El navegador enva el contenido
con los componentes en campo del del formulario al servidor, para que
formulario y pulsa el botn de este realice una bsqueda en la base
Insertar.
de datos.
3. El servidor web se conecta con
la base de datos y realiza una
insercin de cada uno de los
componentes
basndose en los
datos proporcionados por el usuario
y que no sean repetidos o errneos.
Cada uno de ellos tendrn un ID
propio.
4. El navegador recibe el mensaje
de informacin errnea o no.
Extensiones sncronas

Extensiones asncronas

Si en 4. En la base de datos existe registros repetidos o errneos se enva


un mensaje informativo comunicando de las lneas que han producido el fallo
o los errores que tiene el fichero al navegador y el usuario podr intentarlo
de nuevo.
--

Pgina 23 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso
Descripcin

Actor iniciador
Actores secundarios
Resumen

Hacer informes con consultas SQL


Se hacen todo tipo de informes mediante consultas SQL y ser posible la
exportacin de los mismos en Excel
Usuario
-Un usuario accede a la aplicacin para hacer sus propios informes a partir
de consultas SQL para posteriormente exportarlos en EXCEL. El sistema debe
buscar coincidencias con el tipo de consulta que se introdujo y devolver la
informacin en un listado.

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men SQL

Postcondiciones

--

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. El usuario introduce la consulta


2. El navegador enva el contenido
para buscar la informacin deseada y del formulario al servidor, para que
este realice una bsqueda en la base
pulsa el botn de SQL.
de datos.
3. El servidor web se conecta con
la base de datos y realiza una
consulta basndose en la consulta
proporcionada por el usuario.
4. Con la respuesta de la base de
datos, el servidor web construye una
pgina con un listado y la enva al
navegador.
5. El navegador recibe la pgina
con los resultados de la bsqueda y
se la muestra al usuario.
6. Si el usuario quisiera exportarlo
7. Con la respuesta el servidor
en formato EXCEL le dara al botn web construye un archivo EXCEL y la
EXCEL.
enva al navegador.

Extensiones sncronas

9. Con la respuesta el servidor


web permite el acceso al fichero.
Si en 8. El usuario cancelase su descarga no ocurrira el punto 9.

Extensiones asncronas

--

8. El usuario acepta el archivo.

Pgina 24 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso
Descripcin

Actor iniciador
Actores secundarios

Modificar o mostrar la informacin personal.


Modificar u obtener informacin sobre los datos personales dentro de la
aplicacin.
Usuario
--

Resumen

El usuario podr obtener y modificar informacin personal til para la


aplicacin.

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men


INFORMACIN PERSONAL.

Postcondiciones

Los cambios de informacin quedan registrados en el sistema

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema


1. El servidor web se conecta con
la base de datos y realiza una
consulta basndose en el usuario que
ha accedido.
2. Con la respuesta de la base de
datos, el servidor web construye una
pgina con los datos y la enva al
navegador.

3. El usuario comprueba los datos


y
modifica
lo
que
desea.
Posteriormente pulsa el botn
Modificar
4. El sistema comprueba que no
existen repeticiones ni datos
errneos y registra los cambios en la
base de datos. Posteriormente enva
la informacin al navegador.
5. El navegador recibe la pgina
con los resultados de la modificacin
y se la muestra al usuario.
Extensiones sncronas

En 3 el usuario puede salir sin modificar ningn dato.

Extensiones asncronas

--

Pgina 25 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso

Mostrar o modificar la informacin sobre una huella de un componente

Descripcin

Modificar u obtener informacin sobre los datos de una huella de un


componente.

Actor iniciador
Actores secundarios

Usuario administrador con permiso de Ingeniera


--

Resumen

El usuario podr obtener y modificar informacin sobre los datos de una


huella de un componente

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men INGENIERA


y submen ORCAD. Tendr que tener el permiso de Ingeniera

Postcondiciones

Los cambios de informacin quedan registrados en el sistema

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2. El sistema recoge los datos de
selecciona un componente que la base de datos y genera un
quiere modificar o mostrar mediante formulario con la informacin.
una bsqueda relativa introduciendo
para ello informacin de bsqueda.
3. El usuario modifica los datos y
4. El sistema comprueba que no
existen repeticiones ni datos
presiona el botn Modificar.
errneos y registra los cambios en la
base de datos. Posteriormente enva
la informacin al navegador.
5. El navegador recibe la pgina
con los resultados de la modificacin
y se la muestra al usuario.
Extensiones sncronas

En 3 el usuario puede salir sin modificar ningn dato.

Extensiones asncronas

--

Pgina 26 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso

Agregar una huella nueva de un componente

Descripcin

Agregar una huella nueva de un componente.

Actor iniciador
Actores secundarios
Resumen
Precondiciones

Postcondiciones

Usuario administrador con permiso de Ingeniera


-El usuario podr agregar una nueva huella a un componente
El usuario ha accedido a la aplicacin y ha entrado en el men INGENIERA
y submen ORCAD. Tendr que tener el permiso de Ingeniera
Los cambios de informacin quedan registrados en el sistema

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2. El sistema recoge los datos de
selecciona un componente al que la base de datos y genera un
quiere agregar una nueva huella formulario con la informacin.
mediante una bsqueda relativa
introduciendo para ello informacin
de bsqueda.
3. El usuario introduce los datos y
4. El sistema comprueba que no
existen repeticiones ni datos
presiona el botn Introducir.
errneos y agrega el registro en la
base de datos con un ID propio.
Posteriormente enva la informacin
al navegador.
5. El navegador recibe la pgina
con la nueva alta y se la muestra al
usuario.
Extensiones sncronas

Extensiones asncronas

En 3 el usuario puede salir sin introducir ninguna huella a ese


componente.
--

Pgina 27 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso

Mostrar o modificar la informacin sobre un fabricante de un


componente

Descripcin

Modificar u obtener informacin sobre los datos de un fabricante de un


componente.

Actor iniciador
Actores secundarios

Usuario administrador con permiso de Ingeniera


--

Resumen

El usuario podr obtener y modificar informacin sobre los datos un


fabricante de un componente

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men INGENIERA


y submen AVL. Tendr que tener el permiso de Ingeniera

Postcondiciones

Los cambios de informacin quedan registrados en el sistema

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2. El sistema recoge los datos de
selecciona un componente que la base de datos y genera un
quiere modificar o mostrar mediante formulario con la informacin.
una bsqueda relativa introduciendo
para ello informacin de bsqueda.
3. El usuario modifica los datos y
4. El sistema comprueba que no
existen repeticiones ni datos
presiona el botn Modificar.
errneos y registra los cambios en la
base de datos. Posteriormente enva
la informacin al navegador.
5. El navegador recibe la pgina
con los resultados de la modificacin
y se la muestra al usuario.
Extensiones sncronas

En 3 el usuario puede salir sin modificar ningn dato.

Extensiones asncronas

--

Pgina 28 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso

Agregar un fabricante nuevo a un componente

Descripcin

Agregar un fabricante nuevo a un componente

Actor iniciador
Actores secundarios
Resumen
Precondiciones

Postcondiciones

Usuario administrador con permiso de Ingeniera


-El usuario podr agregar un nuevo fabricante a un componente
El usuario ha accedido a la aplicacin y ha entrado en el men INGENIERA
y submen AVL. Tendr que tener el permiso de Ingeniera
Los cambios de informacin quedan registrados en el sistema

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2. El sistema recoge los datos de
selecciona un componente al que la base de datos y genera un
quiere agregar un nuevo fabricante formulario con la informacin.
mediante una bsqueda relativa
introduciendo para ello informacin
de bsqueda.
3. El usuario introduce los datos y
4. El sistema comprueba que no
existen repeticiones ni datos
presiona el botn Introducir.
errneos y agrega el registro en la
base de datos con un ID propio.
Posteriormente enva la informacin
al navegador.
5. El navegador recibe la pgina
con la nueva alta y se la muestra al
usuario.
Extensiones sncronas

En 3 el usuario puede salir sin introducir ningn fabricante.

Extensiones asncronas

--

Pgina 29 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso
Descripcin

Actor iniciador
Actores secundarios

Bsqueda de informacin sobre una orden de trabajo


Bsqueda de informacin sobre una orden de trabajo. Se obtendr
informacin sobre los detalles de la misma y pedidos.
Usuario
--

Resumen

Un usuario accede a la aplicacin para buscar informacin sobre una


orden de trabajo. El sistema debe buscar la informacin con sus
correspondientes pedidos y detalles para informar al usuario.

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men


PRODUCCIN y submen RDENES DE TRABAJO.
--

Postcondiciones
Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. El usuario pulsa el botn


2. El navegador enva el contenido
al servidor, para que este realice una
RDENES DE TRABAJO
bsqueda en la base de datos.
3. El servidor web se conecta con
la base de datos y realiza una
consulta.
4. Con la respuesta de la base de
datos, el servidor web construye una
pgina con un listado de los
componentes que coincidieron y la
enva al navegador.
5. El navegador recibe la pgina
con los resultados de la bsqueda y
se la muestra al usuario. En ella
tendr la opcin volviendo a repetir
los pasos de encontrar los detalles o
los pedidos de la orden de trabajo
que desee.
Extensiones sncronas

Extensiones asncronas

Si en 1. La base de datos no devuelve ningn resultado se enva un


mensaje informativo comunicando de la inexistencia de coincidencias y el
usuario podr intentarlo de nuevo.
--

Pgina 30 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso

Modificar la informacin sobre una orden de trabajo

Descripcin

Modificar informacin sobre los datos de una orden de trabajo

Actor iniciador
Actores secundarios

Usuario administrador con permiso de Produccin


--

Resumen

El usuario podr modificar informacin sobre los datos de una orden de


trabajo

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men


PRODUCCIN y submen RDENES DE TRABAJO. Tendr que tener el
permiso de Produccin

Postcondiciones

Los cambios de informacin quedan registrados en el sistema

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2. El sistema recoge los datos de
selecciona una orden de trabajo que la base de datos y genera un
quiere modificar.
formulario con la informacin.
3. El usuario modifica los datos y
4. El sistema comprueba que no
existen repeticiones ni datos
presiona el botn Modificar.
errneos y registra los cambios en la
base de datos. Posteriormente enva
la informacin al navegador.
5. El navegador recibe la pgina
con los resultados de la modificacin
y se la muestra al usuario.
Extensiones sncronas

En 3 el usuario puede salir sin modificar ningn dato.

Extensiones asncronas

--

Pgina 31 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso

Agregar una nueva orden de fabricacin

Descripcin

Agregar una nueva orden de fabricacin

Actor iniciador
Actores secundarios
Resumen
Precondiciones

Postcondiciones

Usuario administrador con permiso de Produccin


-El usuario podr agregar una nueva orden de fabricacin
El usuario ha accedido a la aplicacin y ha entrado en el men
PRODUCCIN y submen SOLICITUD ALTA. Tendr que tener el permiso de
Produccin
La informacin queda registrada en el sistema

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2. El sistema recoge los datos
presiona el botn SOLICITUD ALTA. mediante un formulario.
3. El usuario introduce los datos y
4. El sistema comprueba que no
existen repeticiones ni datos
presiona el botn Introducir.
errneos y agrega el registro en la
base de datos con un ID propio.
Posteriormente enva la informacin
al navegador.
5. El navegador recibe la pgina
con la nueva alta y se la muestra al
usuario.
Extensiones sncronas

En 3 no se rellena los campos obligatorios o no tienen el formato correcto,


el sistema informa del error y vuelve a solicitarlos.
En 3 puede cancelar el alta.

Extensiones asncronas

--

Pgina 32 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso
Descripcin

Actor iniciador
Actores secundarios

Agregar un nuevo componente al sistema.


Agregar un nuevo componente al sistema a expensas de que un
administrador lo confirme para darlo de alta definitivamente.
Usuario
--

Resumen

El usuario podr agregar un nuevo componente en el sistema de forma


parcial hasta que un administrador corrobore los datos y se ingrese en el
sistema de manera definitiva

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men


INVENTARIADO y submen SOLICITUD ALTA.

Postcondiciones

La informacin queda registrada en el sistema.

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2. El sistema recoge los datos
presiona el botn SOLICITUD ALTA. mediante un formulario.
3. El usuario introduce los datos y
4. El sistema comprueba que no
existen repeticiones ni datos
presiona el botn Introducir.
errneos y agrega el registro en la
base de datos con un ID propio.
Posteriormente enva la informacin
al navegador y enva un mensaje de
correo para el administrador.
5. El navegador recibe la pgina
con la nueva alta y se la muestra al
usuario.
Extensiones sncronas

En 3 no se rellena los campos obligatorios o no tienen el formato correcto,


el sistema informa del error y vuelve a solicitarlos.
En 3 puede cancelar el alta.

Extensiones asncronas

--

Pgina 33 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso

Modificar la informacin sobre una alta parcial de un componente

Descripcin

Modificar la informacin sobre una alta parcial de un componente

Actor iniciador
Actores secundarios

Usuario
--

Resumen

El usuario podr modificar informacin sobre un alta parcial de un


componente.

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men


INVENTARIADO y submen ALTAS PROVISIONALES.

Postcondiciones

Los cambios de informacin quedan registrados en el sistema

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2. El sistema recoge los datos de
selecciona un componente que la base de datos y genera un
quiere modificar de los que haba formulario con la informacin.
dado de alta parcialmente.
3. El usuario modifica los datos y
4. El sistema comprueba que no
existen repeticiones ni datos
presiona el botn Modificar.
errneos y registra los cambios en la
base de datos. Posteriormente enva
la informacin al navegador.
5. El navegador recibe la pgina
con los resultados de la modificacin
y se la muestra al usuario.
Extensiones sncronas

En 3 el usuario puede salir sin modificar ningn dato.


En 5 el usuario puede reenviar el componente parcial de nuevo para ser
evaluado de nuevo por los administradores. En este caso ira acompaado de
un mensaje de reenvo.

Extensiones asncronas

--

Pgina 34 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso

Eliminar la informacin sobre una alta parcial de un componente

Descripcin

Eliminar la informacin sobre una alta parcial de un componente

Actor iniciador
Actores secundarios

Usuario
--

Resumen

El usuario podr Eliminar informacin sobre un alta parcial de un


componente.

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men


INVENTARIADO y submen ALTAS PROVISIONALES.

Postcondiciones

Los cambios de informacin quedan registrados en el sistema

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2. El sistema recoge los datos de
selecciona un componente que la base de datos y genera un
quiere eliminar de los que haba formulario con la informacin.
dado de alta parcialmente.
3. El usuario selecciona el
4. El sistema lo elimina y registra
componente y presiona el botn los cambios en la base de datos.
Posteriormente enva la informacin
Eliminar.
al navegador.
5. El navegador recibe la pgina
con los resultados de la eliminacin y
se la muestra al usuario.
Extensiones sncronas

En 3 el usuario puede salir sin eliminar ningn dato.

Extensiones asncronas

--

Pgina 35 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso
Descripcin

Actor iniciador
Actores secundarios

Agregar un nuevo componente al sistema.


Agregar un nuevo componente al sistema revisando algn componente
dado de alta provisional.
Usuario administrador
--

Resumen

El usuario podr agregar un nuevo componente en el sistema cuando


compruebe que todos los datos parciales son correctos

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men


HERRAMIENTAS DW y submen ALTAS ADMINISTRADOR.

Postcondiciones

La informacin queda registrada en el sistema.

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2. El sistema recoge los datos
presiona
el
botn
ALTAS mediante un formulario.
ADMINISTRADOR.
3. El usuario comprueba los datos
4. El sistema comprueba que no
introducidos anteriormente por el existen repeticiones ni datos
usuario que solicit el alta y presiona errneos y agrega el registro en la
base de datos con un ID propio.
el botn Introducir.
Posteriormente enva la informacin
al navegador y enva un mensaje de
correo para el solicitante para que
sepa que ha sido correcta y otro
correo informativo para los dems
usuarios con el ID definitivo.
5. El navegador recibe la pgina
con la nueva alta y se la muestra al
usuario.
Extensiones sncronas

En 3 no se rellena los campos obligatorios o no tienen el formato correcto,


el sistema informa del error y vuelve a solicitarlos.
En 3 puede cancelar o rechazar el alta. En este ltimo caso se enva un
correo al solicitante para que sepa el motivo y pueda subsanarlo.

Extensiones asncronas

--

Pgina 36 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso
Descripcin

Actor iniciador
Actores secundarios
Resumen
Precondiciones

Postcondiciones

Agregar o quitar stock a un componente del sistema.


Agregar o quitar stock a un componente del sistema. Esta accin se puede
hacer introduciendo previamente el ID del componente o por la ubicacin
donde se encuentre.
Usuario con permisos de ALMACN
-El usuario podr agregar o quitar stock de un componente
El usuario ha accedido a la aplicacin y ha entrado en el men ALMACN
y submen OPERACIONES POR PART NUMBER.
La informacin queda registrada en el sistema.

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2 El sistema recoge los datos de la
presiona el botn OPERACIONES base de datos y genera un formulario
POR PART NUMBER. Selecciona un con la informacin
componente al que quiere agregar o
quitar stock mediante una bsqueda
relativa introduciendo para ello
informacin de bsqueda.
3. El usuario agrega o extrae las
4. El sistema comprueba que no
unidades del componente que quiera existen datos errneos y cambia el
y presiona el botn correspondiente. registro en la base de datos.
Posteriormente enva la informacin
al navegador.
Extensiones sncronas

En 3 no se rellena los campos obligatorios o no tienen el formato correcto,


el sistema informa del error y vuelve a solicitarlos.
En 3 puede cancelar la accin.

Extensiones asncronas

--

Pgina 37 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso

Agregar o quitar stock a uno o varios componentes del sistema mediante


un kitting.

Descripcin

Agregar o quitar stock a uno o varios componentes del sistema. El usuario


lo podr hacer mediante un listado donde podr elegir desde que
ubicaciones se extraen las unidades. sta accin se podr hacer de forma
parcial o completa. sta accin se podr tambin hacer con un listado de
componentes o un ID de un componente del cual cuelga una estructura
entera de componentes que forman un producto.

Actor iniciador
Actores secundarios

Usuario con permisos de ALMACN


--

Resumen

Agregar o quitar stock a uno o varios componentes del sistema mediante


un kitting.

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men ALMACN


y submen KITTING NUEVO.

Postcondiciones

La informacin queda registrada en el sistema.

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2 El sistema recoge los datos de la
rellena el formulario donde deposita base de datos y genera un formulario
la lista de componentes y las con la informacin.
unidades que quiere extraer.
Seguidamente presiona el botn
KITTING
3. El usuario extrae las unidades
de las ubicaciones que desee de cada
uno de los componentes que
introdujo en la lista y presiona el
botn EJECUTAR KITTING.
Extensiones sncronas

4. El sistema comprueba que no


existen datos errneos y cambia el
registro en la base de datos.
Posteriormente enva la informacin
al navegador.

En 3 no se rellena los campos obligatorios o no tienen el formato correcto,


el sistema informa del error y vuelve a solicitarlos.
En 3 puede cancelar la accin.

Extensiones asncronas

--

Pgina 38 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso
Descripcin

Actor iniciador
Actores secundarios

Agregar una solicitud de compra.


El usuario podr solicitar la compra de diferentes componentes eligiendo
entre diversas referencias y proveedores.
Usuario con permisos de COMPRAS
--

Resumen

El usuario podr solicitar la compra de diferentes componentes eligiendo


entre diversas referencias y proveedores.

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men COMPRAS


y submen SOLICITUD DE COMPRA.

Postcondiciones

La informacin queda registrada en el sistema.

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2 El sistema recoge los datos de la
rellena el formulario donde primero base de datos y genera un formulario
rellena los datos de la solicitud y con la informacin.
luego
deposita
la
lista
de
componentes y la eleccin de las
referencias. Seguidamente presiona
el botn SOLICITUD COMPRA.
3. El usuario acepta el archivo que
4. El sistema comprueba que no
se construye con la informacin existen datos errneos y cambia el
registro en la base de datos.
introducida por el usuario.
Posteriormente enva la informacin
al navegador y la muestra en pantalla
en formato pdf.
Extensiones sncronas

En 1 no se rellena los campos obligatorios o no tienen el formato correcto,


el sistema informa del error y vuelve a solicitarlos.
En 3 puede cancelar la accin.

Extensiones asncronas

--

Pgina 39 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso

Mostrar o modificar la informacin sobre las solicitudes de compra.

Descripcin

Modificar u obtener informacin sobre las solicitudes de compra.

Actor iniciador
Actores secundarios

Usuario con permisos de COMPRAS


--

Resumen

El usuario podr obtener y modificar informacin sobre las solicitudes de


compra.

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men COMPRAS y


submen SEGUIMIENTO SOLICITUDES. Tendr que tener el permiso de
Compras

Postcondiciones

Los cambios de informacin quedan registrados en el sistema

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2. El sistema recoge los datos de
selecciona una solicitud de compra la base de datos y genera un
que quiere modificar o mostrar formulario con la informacin.
mediante una bsqueda relativa
introduciendo para ello informacin
de bsqueda.
3. El usuario modifica los datos y
4. El sistema comprueba que no
existen repeticiones ni datos
presiona el botn Modificar.
errneos y registra los cambios en la
base de datos. Posteriormente enva
la informacin al navegador y la
muestra en pantalla en formato pdf.
Extensiones sncronas

En 3 el usuario puede salir sin firmar ninguna solicitud.

Extensiones asncronas

--

Pgina 40 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso
Descripcin

Actor iniciador
Actores secundarios

Firmar las solicitudes de compra.


Firmar las solicitudes de compra. Accin requerida para su posterior
pedido.
Usuario administrador con permisos de COMPRAS
--

Resumen

El usuario despus de revisar la correcta solicitud de compra podr


firmarla para crear el pedido y as gestionarlo.

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men COMPRAS y


submen FIRMAS SOLICITUDES. Tendr que tener el permiso de Compras

Postcondiciones

Los cambios de informacin quedan registrados en el sistema

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2. El sistema recoge los datos de
selecciona una solicitud de compra la base de datos y genera un
que quiere firmar mediante una formulario con la informacin.
bsqueda relativa introduciendo
para ello informacin de bsqueda.
3. El usuario pone la fecha de
4. El sistema comprueba que no
existen repeticiones ni datos
firma.
errneos y registra los cambios en la
base de datos. Posteriormente enva
la informacin al navegador y la
muestra en pantalla en formato pdf.
En ese instante el sistema hace que
la solicitud de compra se convierta
en pedido cambindole el estado.
5. El navegador recibe la pgina
con la solicitud de compra convertida
en pedido y se muestra al usuario.
Extensiones sncronas

En 3 el usuario puede salir sin modificar ningn dato.

Extensiones asncronas

--

Pgina 41 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso

Mostrar la informacin sobre los pedidos.

Descripcin

Obtener informacin sobre los pedidos.

Actor iniciador
Actores secundarios
Resumen
Precondiciones

Postcondiciones
Flujos de eventos

Usuario con permisos de COMPRAS


-El usuario podr obtener informacin sobre los pedidos.
El usuario ha accedido a la aplicacin y ha entrado en el men COMPRAS y
submen SEGUIMIENTO PEDIDOS. Tendr que tener el permiso de Compras
-Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


selecciona un pedido que quiere
2. El navegador enva el contenido
mostrar mediante una bsqueda del formulario al servidor, para que
relativa introduciendo para ello este realice una bsqueda en la base
informacin de bsqueda.
de datos.
3. El servidor web se conecta con
la base de datos y realiza una
consulta basndose en los datos
proporcionados por el usuario.
4. Con la respuesta de la base de
datos, el servidor web construye una
pgina con un listado de los pedidos
que coincidieron y la enva al
navegador.
5. El navegador recibe la pgina
con los resultados de la bsqueda y
se la muestra al usuario.
Extensiones sncronas

Si en 3. La base de datos no devuelve ningn resultado se enva un


mensaje informativo comunicando de la inexistencia de coincidencias y el
usuario podr intentarlo de nuevo.

Extensiones asncronas

Pgina 42 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso

Mostrar la informacin sobre proveedores.

Descripcin

Obtener informacin sobre proveedores.

Actor iniciador
Actores secundarios
Resumen
Precondiciones

Postcondiciones
Flujos de eventos

Usuario con permisos de COMPRAS


-El usuario podr obtener informacin sobre los pedidos.
El usuario ha accedido a la aplicacin y ha entrado en el men COMPRAS y
submen CONSULTA PROVEEDORES. Tendr que tener el permiso de
Compras
-Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


selecciona proveedores que quiere
2. El navegador enva el contenido
mostrar mediante una bsqueda del formulario al servidor, para que
relativa introduciendo para ello este realice una bsqueda en la base
informacin de bsqueda.
de datos.
3. El servidor web se conecta con
la base de datos y realiza una
consulta basndose en los datos
proporcionados por el usuario.
4. Con la respuesta de la base de
datos, el servidor web construye una
pgina con un listado de proveedores
que coincidieron y la enva al
navegador.
5. El navegador recibe la pgina
con los resultados de la bsqueda y
se la muestra al usuario.
Extensiones sncronas

Si en 3. La base de datos no devuelve ningn resultado se enva un


mensaje informativo comunicando de la inexistencia de coincidencias y el
usuario podr intentarlo de nuevo.

Extensiones asncronas

Pgina 43 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso

Agregar un nuevo proveedor.

Descripcin

Agregar un nuevo proveedor.

Actor iniciador
Actores secundarios

Usuario administrador con permisos de COMPRAS


--

Resumen

El usuario podr agregar un nuevo proveedor en el sistema cuando


compruebe que todos los datos son correctos

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men COMPRAS


y submen ALTA PROVEEDOR.

Postcondiciones

La informacin queda registrada en el sistema.

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2. El sistema recoge los datos
presiona
el
botn
ALTA mediante un formulario.
PROVEEDOR.
3. El usuario introduce todos los
4. El sistema comprueba que no
datos obligatorios y presiona el existen repeticiones ni datos
errneos y agrega el registro en la
botn Introducir.
base de datos con un ID propio.
Posteriormente enva la informacin
al navegador.
5. El navegador recibe la pgina
con la nueva alta y se la muestra al
usuario.
Extensiones sncronas

Extensiones asncronas

En 3 no se rellena los campos obligatorios o no tienen el formato correcto,


el sistema informa del error y vuelve a solicitarlos.
--

Pgina 44 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Caso de uso

Agregar una nueva oferta.

Descripcin

Agregar una nueva oferta.

Actor iniciador
Actores secundarios

Usuario administrador con permisos de COMPRAS


--

Resumen

El usuario podr agregar una nueva oferta en el sistema cuando


compruebe que todos los datos son correctos

Precondiciones

El usuario ha accedido a la aplicacin y ha entrado en el men COMPRAS


y submen ALTA OFERTA.

Postcondiciones

La informacin queda registrada en el sistema.

Flujos de eventos

Interacciones del usuario

Obligaciones del sistema

1. Se inicia cuando el usuario


2. El sistema recoge los datos
presiona el botn ALTA OFERTA.
mediante un formulario.
3. El usuario introduce todos los
4. El sistema comprueba que no
datos obligatorios y presiona el existen repeticiones ni datos
errneos y agrega el registro en la
botn Introducir.
base de datos con un ID propio.
Posteriormente enva la informacin
al navegador.
5. El navegador recibe la pgina
con la nueva alta y se la muestra al
usuario.
Extensiones sncronas

Extensiones asncronas

En 3 no se rellena los campos obligatorios o no tienen el formato correcto,


el sistema informa del error y vuelve a solicitarlos.
--

Pgina 45 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

3.2 DIAGRAMAS DE SECUENCIA


En este apartado informar con diversos diagramas de secuencia como acta la aplicacin y qu pasos
ejecuta para ciertas interacciones del usuario.
En general se va a tratar en este apartado los diagramas ms frecuentes dentro del sistema como son las
consultas para que un usuario obtenga la informacin deseada de cualquier dato del sistema segn sus
privilegios dentro de la aplicacin y las inserciones para agregar nuevos registros al sistema.
En este caso he elegido una bsqueda de las mltiples que se pueden hacer en el sistema como es la
bsqueda de un componente y una insercin de datos como es el alta de un usuario.
Como se observa en la Figura 3.2 para cualquier bsqueda dentro del sistema se establece una conexin
hacia la base de datos para comprobar que los datos insertados por el usuario en la interfaz grfica, en este
caso el formulario pertinente, son correctos y poder as, ofrecer al usuario el resultado de la misma forma
que introdujo los datos. Bsicamente todas las consultas que se quieran hacer por parte de cualquier
usuario en el sistema se harn de la forma indicada anteriormente. El sistema, por su parte, las resolvers
siguiendo unas directrices como son la conexin a la base de datos, comprobacin de errores y por ltimo
bsqueda de la informacin solicitada.
En la figura 3.3 observamos la insercin de un nuevo usuario dentro del sistema pero se puede ampliar a
cualquier insercin dentro del sistema. En este caso, en el formulario correspondiente, el usuario pertinente
segn sus privilegios seleccionar la opcin dar de alta un usuario nuevo. Posteriormente introducir los
datos necesarios y el sistema se encargar de conectar con la base de datos para la verificacin de los
mismos. En caso errneo el sistema le mostrar los fallos ocurridos y la posible solucin para subsanarlos y,
en caso contrario, mostrar un mensaje confirmando la operacin realizada y los nuevos registros
introducidos. En general el usuario actuar de forma similar en todas las posibles inserciones que se quieran
realizar dentro del sistema teniendo en cuenta las posibles restricciones. El sistema, en este caso, resolver
de la misma forma que se ha resuelto el caso que se muestra en la figura 3.3, primero pedir los datos
necesarios para la insercin, luego comprobar que son correctos y posteriormente informar al usuario si
ha sido posible la insercin y en caso contrario intentar ofrecerle una solucin va mensaje.

Pgina 46 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE


Bsqueda de un componente dentro del sistema

Figura 3.2 Bsqueda de un componente dentro del sistema

Pgina 47 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE


Insertar un nuevo usuario dentro del sistema por parte de un administrador

Figura 3.3 Insertar un nuevo usuario dentro del sistema

Pgina 48 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

3.3 DIAGRAMA UML


El diagrama UML de la Figura 3.4 ayuda a entender de una forma ms fcil las diferentes funciones que
se pueden realizar, que tipo de usuario las puede hacer, como se pueden hacer y qu tipos de elementos
estn relacionados entre s y con qu restricciones lo estn.
Principalmente, hay una clase de elementos fundamentales alrededor de los cuales se realizan las
principales funciones de la aplicacin. stos son itemmaster, ubica, avl, ofertas, usuarios, rdenes de
fabricacin y proveedores. Sern los encargados de interactuar con todos los dems elementos de la
aplicacin.
Ahora explicar cada uno de los elementos de la aplicacin con sus posibles acciones sobre ellos y
relaciones con los dems elementos.
Usuarios identifica a cada uno de los miembros que podrn utilizar la aplicacin. Segn los permisos que
tenga pertenecientes a cada uno de los campos establecidos en la tabla podr hacer operaciones como dar
de alta componentes como rdenes de trabajo, administrar tablas, modificar o eliminar elementos u
rdenes de trabajo, administrar los proveedores, quitar o extraer stock, hacer kitting o hacer solicitudes de
compra.
Itemmaster, AVL, Ubica identifica cada uno de las diferentes informaciones que se necesitan sobre un
componente dentro del sistema. Todos estos elementos estn relacionados entre s por una clave primaria
denominada Part Number.
Ofertas, proveedores identifica la oferta con un proveedor mediante una relacin la cual est asociada a
un fabricante de la tabla AVL. Slo se podrn dar de alta si el usuario tiene el permiso pertinente.
rdenes de fabricacin identifica la informacin que se necesita para cada una de las tareas de
fabricacin. Est relacionado con la tabla de solicitudes que segn su campo estado pasaran a ser pedidos y
los cuales tendrn una referencia a su orden de fabricacin. Segn los privilegios del usuario se podrn
cambiar el estado de la orden, dar de alta o administrar la tabla.
Huellas identifica la informacin necesaria para produccin y estar relacionada con la tabla itemmaster
ya que tiene que existir el componente para poder tener huella. Segn los permisos del usuario podr dar de
alta o administrar la tabla que las contiene.
Kitting y lneas de kitting contendrn toda la informacin necesaria sobre el kitting y los componentes a
los cuales se les extraern unidades del stock. La relacin de ests dos tablas estar compuesta por el
identificador del kitting y el identificador del componente.
Solicitud compra y lneas solicitud compras contendrn toda la informacin necesaria sobre la solicitud
de compra y los componentes. La relacin de ests dos tablas estar compuesta por el identificador de la
solicitud de compra y el identificador de cada uno de los componentes.

Pgina 49 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
class Modelo de clases
Solicitud compra

Prov eedores

Lineas solicitud compra

column
*PK solicitud

column
*PK Proveedor

tiene

PK
+
PK_datos solicitud compra()

PK
+
PK_Proveedores()
tiene

column
*PK solicitud
*PK part number
PK
+
PK_Lineas solicitud compra(, )

Hacer solicitud compra


Hacer solicitud compras

Administracin

tiene
pedidos

Ofertas

rdenes de fabricacin

column
*PK Part Number
*PK Proveedor
*PK LineaAVL

Usuarios
Dar de alta

oferta-AVL PK
+
PK_Ofertas(, , )

AVL
column
*PK Part Number
*PK LineaAVL
PK
+
PK_AVL(, )

column
*PK Identidad
PK
+
PK_Usuarios()

Administracin

Adminisrtacin

Hacer kitting

Huellas
Administracin

Administracin

column
*PK Part Number

T iene

PK
+
PK_kitting()
tiene
Hacer kitting

PK
+
PK_Huellas()
Itemmaster
column
*PK Part Number
Descripcion
Norma o valor
+

marca()

tiene

Lineas kitting
Ubica

tiene

PK
+
PK_rdenes de fabricacin()

column
*PK kitting

Administracin

tiene

kitting

column
*PK orden de fabricacion
solicitud

column
*PK Part Number
*PK LineaUbica

column
*PK kitting
*PK part number
PK
+
PK_Lineas kitting(, )

PK
+
PK_Ubica(, )

PK
+
PK_Itemmaster()

Figura 3.4 Diagrama UML

Pgina 50 de 97

id_familia

des cripcion

descripcion

Tipo

ID_tipo

(1,1)

Part_number

(1,n)

Contiene
tipo_Grupo

Part
number

(0,n)

kitting

(1,n)

cantidad

lineaubi

Ubicaciones

(1,1)

cantidad

precio

proyecto

Compras

dni

id_com pra

forma de
pago

email

direccion

alias

lineaofertas

lineaavl

precio

fecha alta

usuario
alta

nom bre

Proveedores

(1,1)

id_proveedor

Part
num ber

Ofertas

leadtime

(1,n)

(1,n)

m dq

Part-number

Lineas
pedido

(1,n)

s olicitud
compra

contiene
avl-oferta

package

(1,1)

Fabricante

responsable

id_com pra

obervaciones

proveedor

fecha
entrega

AVL

Referencia

(1,n)

Lineaavl

lineaubi part_number

Kitting

ubicacion

Contiene
item-Avl

cantidadpendiente

Contiene
Grupo-Familia

(1,n)

(1,1)

(1,n)

Grupo

id_grupo

Familias

(0,n)

s tock
contienen
item-ubi

(1,1)

Contiene
familias-itemmas ter

Encapsulado

(1,1)
(1,1)

Itemmas ter

Solicitante

des cripcion

Usuario
m odificar

Fecha alta

Des cripcion

Fecha
modificar

Usuario
Usuario
eliminar
alta
Valor o
norma
Part
Fecha
Number
baja

Memoria del Proyecto Final de Carrera

Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

3.4 DISEO ENTIDAD-RELACIN

Figura 3.5 Diagrama entidad-relacin

Pgina 51 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

4 DISEO
El diseo de la aplicacin web se ha basado en una arquitectura multicapa de tres capas lgicas como son
(Figura 4.1):
1)

Nivel de interfaz de usuario o presentacin.

2)

Nivel de aplicacin o lgico.

3)

Nivel de persistencia de los datos.

Figura 4.1 Diseo de aplicacin


El nivel de interfaz de usuario o presentacin est basado en todos los documentos que se enva al
servidor por parte de la aplicacin mediante el usuario y que el servidor, de manera recproca, le
proporciona a ste toda la informacin que solicit a travs de formularios y/o enlaces.
El nivel de aplicacin o lgico est constituido por todas las libreras que contienen clases para facilitar la
operacional de la aplicacin. En nuestro caso podemos mencionar la utilizacin de Jquery, fpdf y calendario.
El nivel de persistencia de los datos est formado por la base de datos y el sistema de gestin de la
misma. Este nivel es el encargado de almacenar toda la informacin y controlar el acceso a la aplicacin.

Figura 4.2 Arquitectura multicapa


Pgina 52 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

4.1 NIVEL DE INTERFAZ


Se ha diseado una interfaz de usuario lo ms amigable posible basndome en aspectos fundamentales
como la facilidad de navegacin por toda la aplicacin, un manejo nada complejo y un aprendizaje sobre la
misma rpido y conciso. Se hizo un pequeo patrn de diseo sobre la interfaz que cumpla con la imagen
corporativa de la empresa. Dicha estructura puede resumirse en:
 Una cabecera con el logo de la empresa, nombre del men donde se encuentra y nombre del
usuario que est utilizando la aplicacin.
 El cuerpo central segn donde se encuentre el usuario puede ser un men de enlaces haca otros
submens, formularios basados en la informacin introducida por el usuario o informacin proporcionada
por la aplicacin. En el caso de las bsquedas se presenta la informacin con un ttulo donde comunica al
usuario el tipo de bsqueda que es, logo de la empresa , nmero de resultados encontrados y la tabla con
los mismos donde en el margen derecho estn las posibles acciones que se puedan realizar con esa
bsqueda.
Como existe gran diversidad de pginas dentro de la aplicacin a continuacin detallar los cambios
existentes entre ellas para diferenciarlas y no exista ningn tipo de duda por parte del usuario.


Login

En la pgina de login (Figura 4.3) se puede apreciar en el cuerpo los dos campos que se necesitan para
empezar a utilizar la aplicacin. Como se observa la cabecera es la misma que la mencionada anteriormente
con su logo de empresa, nombre de men donde se encuentra y el nombre de usuario con la palabra
usuario, ya que en este punto no se sabe quien se loguea.

Figura 4.3 Login


Pgina 53 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE


Pgina principal

La pgina principal (Figura 4.4) tiene una cabecera con el logo de la empresa, nombre de la aplicacin,
nombre del usuario y nombre del men principal. En la parte del cuerpo se encuentran todos los mens por
los cuales se puede navegar. Este cuerpo puede ser diferente al que muestro en este documento debido a
los diferentes permisos y privilegios que tenga el usuario (es posible que no tengan acceso a los mens de
compras, almacn, administracin e ingeniera). En la parte inferior se encuentra el cierre de sesin de la
aplicacin al salir de la misma y volver al men de login.

Figura 4.4 Pgina Principal




Enlaces

Cualquiera de los mens de la pgina principal llevar al usuario a otros submens como el que se
muestra a continuacin (Figura 4.5). En ellos se muestra, en el cuerpo, los diferentes enlaces que tiene
acceso el usuario. Puede variar cada submen segn los permisos y privilegios que tenga. En la cabecera se
aprecia el logo de la empresa, nombre del men y nombre del usuario.

Pgina 54 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

Figura 4.5 Enlaces




Formularios

El aspecto de los formularios es como el mostrado en la Figura 4.6. Tiene la misma cabecera que
cualquier pgina de la aplicacin, con su logo de la empresa, nombre del men donde se encuentra y el
nombre del usuario. En el cuerpo se encontrar, como cualquier de los formularios que compone la
aplicacin, los diversos datos y campos que se tendrn que rellenar para obtener o introducir la informacin
en la base de datos.

Pgina 55 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

Figura 4.6 Formularios




Bsquedas con tablas

En los formularios de bsqueda los resultados de la misma sern representados como se muestran en la
Figura 4.7. Se compone de una cabecera donde se encuentra la ruta de enlaces a los que se ha accedido, el
logo de la empresa y nmero de resultados encontrados. En la parte lateral derecha estar las posibles
acciones que se podrn hacer con la bsqueda y en la parte inferior se situar el men de botones para
proceder a acciones de enlaces.

Figura 4.7 Bsqueda con tablas


Pgina 56 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
4.1.1

DIAGRAMAS DE NAVEGABILIDAD

En el siguiente punto se muestra todas las rutas de acceso y la navegabilidad por la aplicacin indicando
desde que pginas se acceden e indicando sus nombres.
4.1.1.1

USUARIO

Figura 4.8 Usuario


Pgina 57 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
4.1.1.2

USUARIO CON PERMISO DE ADMINISTRACIN EN RDENES DE TRABAJO

Figura 4.9 Usuario con permisos de administracin en rdenes de trabajo

Pgina 58 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
4.1.1.3

USUARIO CON PERMISO ALMACN

Figura 4.10 Usuario con permisos de almacn

Pgina 59 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
4.1.1.4

USUARIO CON PERMISO DE INGENIERA

Figura 4.11 Usuario con permisos de ingeniera

Pgina 60 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
4.1.1.5

USUARIO CON PERMISO DE COMPRAS

Figura 4.12 Usuario con permiso compras

Pgina 61 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
4.1.1.6

USUARIO ADMINISTRADOR

Figura 4.13 Usuario administrador

Pgina 62 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

4.2 NIVEL LGICO


El nivel lgico de la aplicacin se forma por un conjunto de libreras creadas que incluyen las clases
necesarias para el funcionamiento de la misma. Estas libreras ejecutan diferentes funciones relacionadas
con operaciones de clculo, transformacin y validacin de datos,
As mismo, este nivel permite diferenciar entre el nivel de interfaz y el nivel de persistencia, pudiendo as
realizar cambios en dicho nivel, cambiar el SGBD o sustituir la base de datos por otro sistema de
almacenamiento, sin afectar al nivel de interfaz y slo ejecutando cambios en el nivel lgico para adaptarlo
al nivel inferior.
En este nivel se intenta seguir las pautas de la programacin orientada a objetos, en el que
funcionalidades relacionadas se engloban dentro de clases, y con relaciones de herencia entre ellas. Por ello,
en el nivel de interfaz, se aplicarn las clases para crear los objetos necesarios para realizar las operaciones.
Las libreras relacionadas con operaciones sobre base de datos estn formadas por diversos
componentes, los cuales tiene relacin de herencia con una clase padre proporcionndoles las herramientas
de conexin a base de datos, y as el resto slo debe ocuparse de gestionar operaciones sobre la misma.
Existen otros componentes que realizan otras tareas:
-

Generacin de fragmentos de pgina a toda la aplicacin para el nivel de interfaz.


Conexiones a otras pginas para gestionar bsquedas externas.
Funciones varias de mbito general usadas en el nivel de interfaz y sin relacin entre s.

4.3 NIVEL DE PERSISTENCIA


La aplicacin utiliza una base de datos relacional para el nivel de persistencia, donde almacenar la
informacin referida a elementos del catlogo, usuarios, noticias,
En base al propsito de la aplicacin, es bsico, que la base de datos est correctamente estructurada y
diseada con diversas entidades y sus correspondientes atributos relacionados entre s, de forma coherente
y eficiente.
Se disearon las diferentes entidades necesarias para la base de datos. Posteriormente fueron necesarias
otras para poder relacionar entre s varias entidades haciendo que stas nuevas fuesen dbiles donde a
parte de su clave primaria necesitbamos de la clave primaria de la que dependan.
Respecto a los atributos de las entidades, todas disponan de una clave primaria pero ciertas entidades
necesitaron de ms atributos para componerla, debido a que al pasar a la tercera forma normal algunas
relaciones desaparecan, dieron lugar a este tipo de modificaciones. Posteriormente, la tercera forma normal
fue la versin definitiva de la base de datos siendo la que dotase de orden estructurado y comportamiento
y/o almacenamiento de los datos dentro de la misma.

Pgina 63 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
4.3.1 ESQUEMA DE LA BASE DE DATOS

Itemmaster (Part Number:char(8), Descripcion:char(64), Valor o norma:char(64), Encapsulado:char(64),


Solicitante:char(64), Fecha alta:date(), Fecha baja:date(), Fecha modificar:date(), Usuario alta:char(64),
Usuario eliminar: char(64), Usuario modificar:char(64))
AVL (Part number:char(8), Lineaavl:int(100), Referencia: char(64), Fabricante:char(64), package: char(64))
Contiene item-Avl (Part Number, Part number, Lineaavl)
Claves ajenas:
- Part Number referencia a Itemmaster.
Ubicaciones (Part_number:char(8), lineaubi: int(100), stock:int(1000), ubicacion:int(8))
Ofertas (Part number:char(8), lineaofertas: int(100), precio: int(1000), mdq: int(100), leadtime, usuario
alta:char(64), fecha alta:date(), lineaavl: int(100))
Kitting (Part_number:char(8), lineaubi: int(100), cantidad: int(100), cantidadpendiente: int(100))
Compras
(id_compra:int(10),
proyecto:char(8),
proveedor:int(5), obervaciones:char(8))

responsable:char(8),

fecha

entrega:date(),

Familias (id_familia: int(10), descripcin:char(8), id_grupo: int(100))


Claves ajenas:
- id_grupo referencia a Grupo.
Grupo (id_grupo: int(10), descripcin:char(8))
Tipo (id_tipo: int(10), descripcin:char(8))
Contiene tipo_Grupo (id_tipo, id_grupo)
Claves ajenas:
- Id_tipo referencia a Tipo.
- id_grupo referencia a Grupo.
Contiene familias-itemmaster (id_familia, Part Number)
Claves ajenas:
- id_familia referencia a Familias.
- Part Number referencia a Itemmaster.
Contiene avl-oferta (Part number, Lineaavl, Part number_Ofertas, lineaofertas, lineaavl)
Claves ajenas:
Pgina 64 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
- Part number referencia a AVL.
- Lineaavl referencia a AVL.
- Part number_Ofertas referencia a Ofertas.
- lineaofertas referencia a Ofertas.
- lineaavl referencia a Ofertas.
Solicitud compra (id_compra:int(8), Part number:char(8), lineaofertas:int(100), lineaavl:int(100),
id_proveedor:int(5), id_compra_Lineas pedido:int(100))
Claves ajenas:
- id_compra referencia a Compras.
- Part number referencia a Ofertas.
- lineaofertas referencia a Ofertas.
- lineaavl referencia a Ofertas.
- id_proveedor referencia a Proveedores.
- id_compra_Lineas pedido referencia a Lineas pedido.
- Part-number referencia a Lineas pedido.
Proveedores (id_proveedor:int(5),
email:var(64), forma de pago:var(64))

dni:int(8),

nombre:var(64),

alias:var(64),

direccin:var(64),

Lineas pedido (id_compra:int(5), Part-number:var(8), cantidad:int(100), precio:int(100))


Contienen item-ubi (Part Number, part_number, lineaubi)
Claves ajenas:
- #Part Number referencia a Itemmaster.
- #part_number referencia a Ubicaciones.
- #lineaubi referencia a Ubicaciones.
kitting (part_number, lineaubi, Part_number, lineaubi_Kitting)
Claves ajenas:
- part_number referencia a Ubicaciones.
- lineaubi referencia a Ubicaciones.
- Part_number referencia a Kitting.
- lineaubi_Kitting referencia a Kitting.
Pgina 65 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

5 IMPLEMENTACIN E INTEGRACIN
En este apartado se tratarn temas como las tecnologas que se han decidido utilizar para la
implementacin de la aplicacin as como de cules son los aspectos ms importantes en la evolucin de la
misma dentro de su integracin. Es un punto importante dentro de toda la documentacin para validar y
aceptar el software, obtener informacin de la integracin de cada una de las partes aqu mencionadas
dentro del software y posteriormente cumplir con las fases de testeo en el punto 6.

5.1 TECNOLOGAS
La aplicacin se ha desarrollado como una solucin LAMP, creando una aplicacin Web mediante esta
combinacin de tecnologas:
. Linux, sistema operativo
. Apache, servidor Web
. MySQL, servidor de base de datos
. PHP, lenguaje de programacin
He optado por estas tecnologas ya que renen unas caractersticas bsicas:
La gran cantidad y calidad de documentacin existente que permite un aprendizaje rpido y
profundo de la materia.
Buena interaccin de estas tecnologas entre s.
Son tecnologas libres y gratuitas mantenidas por la comunidad de software libre.
Se utilizan a nivel profesional y demuestran alta calidad y productividad.
Las tecnologas Linux, Apache y MySQL son componentes externos a la aplicacin, explicado al detalle en
el punto de integracin.
PHP
Es un lenguaje para programar scripts del lado del servidor incluido dentro del cdigo HTML, siendo
gratuito y multiplataforma.
El uso de PHP es fundamental en la aplicacin. Las pginas se generan de forma dinmica en el servidor
mediante los scripts en PHP procesados. He desarrollado un conjunto de libreras en PHP situados en el nivel
de acceso a datos y que permiten independencia de la aplicacin. Las pginas dinmicas permiten:
Listados de todo el inventariado y sus bsquedas. Estas pginas cambian cuando se va actualizando
el inventariado y las bsquedas permiten realizar listados personalizados.

Pgina 66 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Modificaciones sobre todo el inventariado (fabricantes, proveedores, ofertas, ubicaciones, etc.)
reflejados de inmediato en los listados y bsquedas mencionadas.
Control de acceso a las diferentes secciones de la aplicacin
Validacin de entrada de datos por los usuarios en formularios
Verificar las diversas restricciones que se pueden realizar en cuanto a las operaciones.
Redirecciones de forma dinmica a pginas distintas segn condiciones del usuario.
Envo, segn la identificacin del navegador cliente, de distintos elementos
Acceso a la base de datos donde estn los datos de la aplicacin y sus modificaciones
Realizacin de tareas automatizadas.
Realizacin de estadsticas en base a las ofertas realizadas.
En la ejecucin del proyecto he usado la versin PHP 4.3. de forma limitada, que ofrece una
programacin orientada a objetos, implementando parte de las libreras con relacin de herencia entre ellas.
CSS
Las hojas de estilo son un lenguaje formal que se utiliza para definir la presentacin de un documento
estructurado escrito en HTML, XML o XHTML. stas pueden insertarse directas en el cdigo HTML en un
archivo separado de hoja de estilos enlazando al documento principal. Este mtodo, en el cual los cambios
se limitan a un nico archivo y adems el tamao de los documentos XHTML se reduce al no contener ya
informacin referente al estilo, va ganando en eficiencia. Otra ventaja radica en que un cambio en la hoja de
estilos derive en un cambio de estilo general para la aplicacin, de otra manera habra que revisar uno a uno
todos los documentos aplicndoles los estilos correspondientes
Las hojas de estilo en la aplicacin se han utilizado para presentar las pginas web generadas por el
servidor de manera estructurada, aplicando diseo a la aplicacin para que los navegadores muestren al
usuario de forma ms agradable.

5.2 HERRAMIENTAS
Anteriormente hemos visto la aplicacin como una presentacin Web formada por una base de datos
relacional en MySQL y por un portal Web en PHP, conectadas entre s y ubicadas en una misma mquina con
sistema operativo Linux y un servidor Web( Apache).
Los documentos HTML y scripts en PHP se han realizado usando DreamWeaver, especializado en los
lenguajes HTML, XHTML y CSS. Tambin permite trabajar con PHP.
Cabe destacar que DreamWeaver permite utilizar dentro de la propia interfaz, completos manuales de
referencia de HTML y CSS, y el administrador de archivos incorporado deja trabajar con varios documentos a
la vez.
Para facilitar el trabajo con la base de datos he utilizado phpMyAdmin que es un administrador Web de
bases de datos MySQL y permite realizar las tareas de administracin necesarias (gestionar tablas, eliminar
campos,)

Pgina 67 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Otra herramienta es la aplicacin de retoque fotogrfico The Gimp para la creacin o modificacin del
logotipo, los iconos, toda la aplicacin de ubicaciones y dems grficos utilizados en la aplicacin, siguiendo
un criterio general que clarifica, simplifica el uso de la aplicacin. Adems de HTML y PHP, en algn caso he
utilizado el lenguaje de scripting JavaScript.

5.3 DETALLES DE LA IMPLEMENTACIN


5.3.1 PERFILES DE USUARIO
Existen diversos tipos de usuario segn los permisos que obtengan o se le atribuyan en cada momento. La
aplicacin dependiendo del tipo de usuario que la est utilizando, adapta automticamente la interfaz con la
funcionalidad adecuada al nivel de permisos de dicho usuario. Por lo tanto a cualquier usuario no
identificado que acceda a la aplicacin se le redirigir a la pgina principal. A continuacin se relatarn
diversos tipos de usuarios:
Uno de ellos ser el usuario bsico el cual podr consultar cualquier informacin sobre cualquier
componente de la base de datos. Obtendr informacin sobre fabricantes, proveedores, ofertas,
ubicaciones, estructuras donde se est utilizando, stock. Otra funcionalidad ser el solicitar dar de alta un
componente nuevo y mirar en qu estado se encuentra su peticin de alta. Tambin podr modificar datos
personales y hacer cualquier tipo de consulta sobre cualquier orden de trabajo dada de alta (responsable,
componentes, pedidos, fechas de orden, proyecto, horas dedicadas y dinero dedicado).
Otro usuario sera el que obtiene permisos de almacn que teniendo todas las acciones del usuario bsico
adems tiene funcionalidades como la adicin y extraccin de stock de cualquier componente, la creacin de
nuevas ubicaciones para componentes ayudado de una aplicacin de codificacin de ubicaciones sobre un
mapa de la empresa, modificacin y eliminacin de ubicaciones y la posibilidad de hacer kitting completos o
parciales (parecido a un carrito de la compra).
Otro tipo de usuario es el que obtiene los permisos de compras con los que podr hacer solicitudes de
compra y verificar el estado en el que se encuentran y donde cabe destacar otro usuario del tipo
administrador que se encargar de firmar esas solicitudes para que posteriormente se conviertan en
pedidos. Este ltimo usuario aparte de tener las funcionalidades del usuario de compras bsico tambin se
encarga de la actualizacin del valor de las divisas.
Otro tipo de usuario es el encargado de la administracin de las rdenes de fabricacin las cuales podr
dar de alta en cualquier momento sin supervisores por el medio. Tendr permisos de modificacin de datos
sensibles de la orden as como de la eliminacin de la misma. Este tipo de usuario podr obtener
informacin de todos los pedidos que tenga una orden de fabricacin a diferencia del usuario bsico que
solo podr ver los pedidos hechos por l en cada una de ellas.
Por ltimo existe un usuario administrador del sistema que se encargar de todo lo anterior y aparte
tendr acceso a la parte de administracin de permisos para cada uno de los usuarios as como el dar de alta
a un usuario nuevo dentro del sistema. Este usuario tambin se responsabilizar de dar de alta una lista de
componentes mediante altas masivas si el fichero que las contiene est correctamente creado bajo la
estructura acordada.
Pgina 68 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
5.3.2 AUTENTIFICACIN DE USUARIOS
La aplicacin utiliza un mecanismo de autenticacin basado en el seguimiento de sesiones que posee PHP
y consultas a la base de datos almacenando los identificadores de usuario y su contrasea cifrada en md5.
Al acceder el usuario a la pgina de identificacin, introduce su identificador y contrasea. En un futuro el
envo de esta informacin se producir mediante el protocolo HTTP seguro o HTTPS, de esta forma ambos
viajarn cifrados por la red. En este momento el sistema comprueba si los datos introducidos son vlidos y si
el usuario existe a travs de la tabla accesos de la base de datos. Si todo es vlido establecemos las variables
de sesin indicando los permisos del usuario y se cargar la pgina de inicio personalizada para dicho
usuario.
La sesin permanecer abierta hasta que el usuario finalice mediante la opcin cerrar sesin o cerrando
el navegador Web.
Las pginas restringidas a usuarios identificados comprueban el tipo de usuario que es y si dicho usuario
tiene permiso necesario para visualizar dicha pgina. Si no tiene acceso, se expulsar de la aplicacin y se
enviar a la pgina de autentificacin y as controlaremos el acceso a la funcionalidad de la aplicacin.
5.3.3 ASPECTOS GENERALES
La informacin mostrada por la aplicacin est formateada en HTML y generada mediante el cdigo en
PHP, el cual, dota de funcionalidad a la aplicacin.
Por ello, la aplicacin es un conjunto de pginas HTML con scripts en PHP que ejecuta el servidor.
Las diversas clases utilizadas en los scripts que componen la aplicacin se clasifican en tres tipos:
. Relacionadas con la interfaz de usuario, que muestran y obtienen informacin de los mismos
. Realizan la lgica de la aplicacin
. Encargados del nivel de persistencia (recuperar y salvar informacin de base de datos)
En base a esta estructuracin por capas se consigue cierta independencia entre las diferentes partes de la
aplicacin; podemos refinar el funcionamiento de las funciones de acceso a datos o cambiar el SGBD
utilizado sin preocuparnos en el nivel de presentacin o la lgica del programa. He incluido una serie de
libreras en PHP encargadas del nivel de persistencia o de acceso a los datos, de forma que el nivel lgico de
la aplicacin accede a stas y no a la propia base de datos.
La informacin introducida por los usuarios al sistema se recoge a travs de formularios HTML.
Los campos de los formularios se envan entre pginas mediante el mtodo POST codificando los datos a
enviar en HTML.
Resaltaremos el empleo de campos ocultos en los formularios HTML, para que la aplicacin traspase
informacin propia de una pgina a otra.

Pgina 69 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
La funcionalidad de la aplicacin se basa en consultas al sistema de gestin de bases de datos MySQL.
sta interpreta los resultados obtenidos y acta en consecuencia..
Referente al diseo, la aplicacin Web se crea siguiendo las especificaciones de HTML y de estilos CSS, de
forma que se visualice correctamente en cada navegador sin perder ninguna de sus funcionalidades.

5.4 INTEGRACIN
Los componentes de origen externo utilizados en la aplicacin son el servidor Web y el Gestor de Bases
de Datos.
El servidor Web que he elegido es Apache, instalado sobre el S.O. GNU/Linux. Se ha utilizado con sus
correspondientes mdulos de PHP, para que sea capaz de interpretar scripts en el lado del servidor.
El mdulo de PHP debe estar compilado con las siguientes directivas adicionales:
--enable-trans-sid, con el que las URIs relativas se modifican de forma que contienen el session id
automticamente (por ejemplo en los enlaces o formularios), con lo que se consigue mantener la sesin
incluso sin el uso de cookies.
El SGBD elegido ha sido MySQL con el que he implementado el nivel de consistencia de la aplicacin, por
las evidentes ventajas de almacenar la informacin utilizando una base de datos frente a ficheros.
Cabe destacar que PHP se combina a la perfeccin con MySQL, por lo que incorporarlo en el sistema no
ha sido una tarea costosa.
Sin embargo, de cara a futuras funcionalidades autnomas (como puede ser pedidos automticos, emails
de pedidos, alarmas de stock por debajo de su nivel mnimo), he encontrado problemas de implementacin.
Debido a que MySQL es una base de datos sin integridad referencial y sin soporte para disparadores, su
velocidad es mucho mayor frente a otras soluciones, mucho ms completas como el PostgreSQL, MS SQL
Server, Oracle, etc. Por ello se decidi debido a su mayor expansin en internet y principalmente por su
rendimiento, pero pueden llegar a producir situaciones no deseadas.
Debido a, la complejidad alta y al coste operacional, lo haca inviable por las operaciones intiles que se
llevaran a cabo.
Se decidi para este tipo de funcionalidades futuras delegar esta tarea en un programa externo: el
programador estndar de tareas de UNIX: crontab, que se encargar diariamente de stas acciones.
Generalmente, crontab utiliza un demonio, crond, que se ejecuta continuamente en segundo plano y
comprueba cada minuto si alguna de las tareas programadas necesita ser ejecutada. De ser as, las ejecuta.
Evidentemente esta es una solucin alternativa, quiz lo ms correcto sera la utilizacin de un SGBD que
contemplase los disparadores como puede ser PostgreSQL, que provee soporte para lenguajes
SQL92/SQL99, transacciones, integridad referencial, procedimientos almacenados y extensibilidad de tipos,
con lo que se evitara el uso de una solucin dependiente del S.O. como es el uso del programador de tareas.

Pgina 70 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Dada la arquitectura que se ha desarrollado en la aplicacin, el SGBD podra fcilmente ser intercambiado
por otro. Los cambios a realizar entonces seran en la capa de aplicacin, ya que se encuentra por encima del
nivel de persistencia donde se encuentra el SGBD y es la que se comunica con ste. Estos cambios adems se
realizaran nicamente en las llamadas a funciones dependientes del SGBD utilizado, ya que el resto de
funciones son generacin de consultas en SQL u otras no relacionadas con el nivel de persistencia, sino con
el de presentacin.

Pgina 71 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

6 EVALUACIN Y PRUEBAS
6.1 EVALUACIN
He realizado una serie de pruebas y anlisis de la usabilidad. La usabilidad se centra en las necesidades
del usuario:
Pensar en qu modo el usuario deseara encontrar la informacin.
Definir un rbol de navegacin intuitivo como referencia de navegabilidad sin excesivos enlaces, y
mostrndolos a medida que el usuario se interesa por ellos.
Definir un diseo visual que transmita justo lo que se quiere sin que ste produzca confusin.
Tener en cuenta las limitaciones de los recursos del usuario a nivel de ancho de banda, capacidad de
procesamiento y resolucin.
En las fases de diseo e implementacin, con el diseo de la interfaz, el anlisis etc. se ha tenido en
cuenta este aspecto importante. Por lo tanto la usabilidad se ha ido incorporando de un modo interactivo a
la vez que se diseaba e implementaba la aplicacin, intentando en todo momento que esta fuese lo ms
fcil, cmoda e intuitiva posible para el usuario final.

6.2 PRUEBAS
En este apartado se ha forzado la aplicacin a situaciones extremas en diversas funcionalidades y en el
caso de que no cumpliesen con los requisitos establecidos se ha tenido que tomar decisiones importantes
como rediseo, reprogramacin y reimplementacin. Tambin se ha sometido a pruebas del tipo formatos,
resoluciones y tiempo de cmputo a la hora de hacer bsquedas dentro del sistema. Se ha finalizado con una
aplicacin estable y compacta con el xito de todos los objetivos planteados y preparada para futuras
mejoras o ampliacin de funcionalidades.
Seguidamente se mostrarn diversos casos de uso que se han ido mencionando durante el documento.
6.2.1 PRUEBA SOLICITUD DE ALTA DE UN NUEVO COMPONENTE
1. Se rellena el formulario.

Pgina 72 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

Figura 6.2.1.1 Formulario


2. Se agrega si se quisiese un archivo en formato pdf que ir adjunto al componente con la codificacin
interna que se le asign al componente.

Figura 6.2.1.2 Adjuntar archivo


Pgina 73 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
3. El componente est dado de alta parcialmente hasta que un administrador lo compruebe y lo
agregue al sistema.
4. El usuario puede modificar el alta mientras no est dada de alta definitiva. Tambin puede reenviar
la solicitud en cuanto corrija los errores que pueden haber surgido.
6.2.2 PRUEBA CONSULTA SOBRE INFORMACIN DE CUALQUIER COMPONENTE
1. Se rellena el formulario con los datos que se quieran hacer coincidir con la bsqueda.

Figura 6.2.2.1 Consulta PART NUMBERS


2. Se muestra una tabla con todas las coincidencias, En su parte derecha existe las diferentes opciones
que tiene el usuario para poder buscar la informacin deseada.

Figura 6.2.2.2 Resultado bsqueda


Pgina 74 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
3. Se podr ver sus fabricantes.

Figura 6.2.2.3 Informacin AVL


4. Se podr ver sus ofertas.

Figura 6.2.2.4 Informacin OFERTAS


5. Se podr ver sus ubicaciones.

Figura 6.2.2.5 Informacin ALMACEN o DISPONIBILIDAD

Pgina 75 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
6. Se podr ver su pdf asociado.

Figura 6.2.2.6 Informacin DATASHEET


7. Se podr ver en donde puede estar usado y la cantidad que se necesita. Est parte es muy til para
saber por parte del usuario cuantas unidades necesita de ese componente dentro una estructura
que conforman un producto.

Figura 6.2.2.7 Informacin WI

6.2.3 PRUEBA CONSULTA SOBRE INFORMACIN DE CUALQUIER RDEN DE FABRICACIN

1. Se presiona el botn de rdenes de fabricacin

Pgina 76 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

Figura 6.2.3.1 Presionar botn RDENES DE FABRICACIN


2. Se muestra una tabla con todas las rdenes de fabricacin existentes y que coincidan con los filtros
que se encuentran en la parte superior de la misma.

Figura 6.2.3.2 rdenes de fabricacin


3. Se podr ver detalles de cualquier orden de fabricacin.

Pgina 77 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

Figura 6.2.3.3 Ver detalles


4. Se podr ver pedidos de cualquier rden de fabricacin.

Figura 6.2.3.4 Ver pedidos


5. En caso de ser administrador puede modificar y cambiar datos relevantes como pudieran ser los
datos econmicos.

Pgina 78 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
6.2.4 PRUEBA EXTRAER O QUITAR STOCK DE UN COMPONENTE EN UNA UBICACIN
DETERMINADA

1. En el formulario existe una pequea aplicacin de ubicaciones por si el usuario no supiese la


ubicacin exacta de la misma.

Figura 6.2.4.1 Operaciones por ubicaciones

Figura 6.2.4.2 Aplicacin para codificar ubicacin


2. Una vez introducida se muestra una tabla con todos los componentes de esa ubicacin.

Pgina 79 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

Figura 6.2.4.3 Ubicacin


3. Se podr extraer o quitar stock pinchando en el elegido.

Figura 6.2.4.4 Componentes de dicha ubicacin


4. Se tendr que introducir la cantidad deseada a extraer o quitar.

Pgina 80 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

Figura 6.2.4.5 Extraer o agregar stock

6.2.5 PRUEBA HACER UN KITTING

1. En el formulario se introducir la lista de componentes que se desea extraer con sus respectivas
cantidades.

Figura 6.2.5.1 Nuevo kitting


2. Se mostrar una tabla con todas las ubicaciones posibles de todos los componentes introducidos en
la lista para seleccionar entre ellas de cual se quiere extraer. Existirn componentes inicialmente que
no se podrn extraer y otros que a eleccin del usuario puede dejarlos en pendiente por cualquier
motivo.

Pgina 81 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

Figura 6.2.5.2 Seleccin de ubicaciones


3. Se podrn hacer kittings parciales y volver a retomarlos en la siguiente pantalla.

Figura 6.2.5.3 Kittings pendientes


4. Seleccionamos el kitting correspondiente y actuamos de la misma forma que en el punto 2.

Figura 6.2.5.4 Kitting por finalizar


Pgina 82 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
6.2.6 PRUEBA SOLICITUD DE COMPRA

1. Rellenamos la cabecera de nuestra solicitud. Pudiendo agregar cargos adicionales a la misma que
consisten en componentes o cualquier cargo no contemplado ni codificado en la base de datos del
sistema.

Figura 6.2.6.1 Cabecera de la solicitud


2. Posteriormente se introduce la codificacin del componente y se selecciona que oferta se desea.

Pgina 83 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

Figura 6.2.6.2 Introduccin del componente

3. Se pincha la oferta deseada y el sistema cargar los datos en la solicitud de compra. Si en algn caso
los datos de la oferta no son los deseados se le avisar al usuario en el campo observaciones y ste
podr tomar la decisin de continuar o de modificar esos datos.

Figura 6.2.6.3 Oferta seleccionada

Figura 6.2.6.4 Fin de solicitud de compra


Pgina 84 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
4. Al finalizar el sistema har un pdf con todos los datos introducidos y el usuario seleccionar en hacer
la solcitud definitiva o parcial. Si es parcial podr modificarla o reenviarla de nuevo para que sea
definitiva y as poder firmarla o si es definitiva slo faltars las consiguientes firmas para poder ser
un pedido estable y, en ese momento, por parte del sistema crear el pedido.

Figura 6.2.6.5 Archivo pdf

Pgina 85 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

7 CONCLUSIONES
Para concluir puedo decir que dicho proyecto me ha ayudado mucho para tener ms experiencia en
aspectos importantes a la hora de afrontar un trabajo de este nivel de desarrollo. Tareas como la
planificacin, diseo, codificacin, integracin, pruebas y aspectos intuitivos y llamativos para garantizar el
xito de la aplicacin. Ha sido un avance sobre la vida laboral despus de la culminacin de una carrera por
la universidad con el colofn de este proyecto.
Otros aspectos ms informticos que he aprendido han sido a la organizacin de cdigo y a una
programacin limpia para una mejor administracin del cdigo. Esto provoc una mejor y fcil resolucin de
problemas en la aplicacin o adaptar de forma ms rpida alguna mejora.
Dicha aplicacin tiene un gran futuro a nivel empresarial puesto que durante todo el tiempo que ha
transcurrido se ha ido haciendo cada vez ms potente. Por ello como ya he indicado existen diversos puntos
futuros que pueden hacer la aplicacin an si cabe ms exitosa. Pienso tambin que la eleccin del diseo y
las herramientas utilizadas han sido las correctas y las ms concretas dentro del marco en el que se quera
hacer este tipo de trabajo.
El resultado final como se puede apreciar me ha producido una satisfaccin plena debido a que tiene un
gran futuro de desarrollo y porque viendo la evolucin de la aplicacin en el tiempo se ha ido alejando un
poco de los primeros conceptos establecidos para convertirse en una proyecto de mayor impacto dentro de
la empresa donde he podido hacer el proyecto.
He aprendido a desenvolverme en un mbito laboral, a tomar decisiones importantes con las personas
responsables sobre mi trabajo y a tomar iniciativas propias con ideas nuevas. Agradezco a la empresa DAS
PHOTONICS S.L por la oportunidad que me ha brindado y al grupo humano que trabaja en ella. Espero que se
siga trabajando sobre un proyecto que se apost fuerte y que no sea esto un punto final sino un punto y
seguido.

Pgina 86 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

BIBLIOGRAFA
ERS:

[1] Wikipedia en espaol: http://es.wikipedia.org


[2] Manual de PHP: http://www.php.net
[3] Especificaciones de HTML 1.0: http://www.w3schools.com/html/default.asp
[4] Documentacin de Apache: http://httpd.apache.org
HTML:

[1] Tutorial W3 Schools: www.w3schools.com/html/


[2] Manual HTML: www.webestilo.com/html/
[3] Especificaciones de HTML 1.0: http://www.w3schools.com/html/default.asp
CSS:

[1] Gua breve de CSS: www.w3c.es/divulgacion/guiasbreves/hojasestilo


[2] Tutorial CSS: www.w3schools.com/css/
PHP:

[1] Manual de PHP: http://www.php.net/


[2] PHP a fondo: http://www.desarrolloweb.com/php/
MySQL:

[1] Documentacin oficial de MySQL: www.mysql.com


[2] Manual de MySQL: www.webestilo.com/mysql/
Apache:

[1] Documentacin de Apache: http://httpd.apache.org.

Pgina 87 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE

ANEXO A. DESCRIPCIN DE TECNOLOGAS


A.1. HTTP
Es el protocolo usado en cada transaccin de la World Wide Web. HTTP fue desarrollado por el World
Wide Web Consortium y la Internet Engineering Task Force, colaboracin que culmin en 1999 con la
publicacin de una serie de RFC, el ms importante de ellos es el RFC 2616 que especifica la versin 1.1.
HTTP define la sintaxis y la semntica que utilizan los elementos de software de la arquitectura web
(clientes, servidores, proxies) para comunicarse. Es un protocolo orientado a transacciones y sigue el
esquema peticin-respuesta entre un cliente y un servidor. Al cliente que efecta la peticin (un navegador
web o un spider) se lo conoce como "user agent" (agente del usuario). A la informacin transmitida se la
llama recurso y se la identifica mediante un localizador uniforme de recursos(URL). Los recursos pueden ser
archivos, el resultado de la ejecucin de un programa, una consulta a una base de datos, la traduccin
automtica de un documento, etc.
HTTP es un protocolo sin estado, es decir, que no guarda ninguna informacin sobre conexiones
anteriores. El desarrollo de aplicaciones web necesita frecuentemente mantener estado. Para esto se usan
las cookies, que es informacin que un servidor puede almacenar en el sistema cliente. Esto le permite a las
aplicaciones web instituir la nocin de "sesin", y tambin permite rastrear usuarios ya que las cookies
pueden guardarse en el cliente por tiempo indeterminado.
Una transaccin HTTP est formada por un encabezado seguido, opcionalmente, por una lnea en blanco
y algn dato. El encabezado especificar cosas como la accin requerida del servidor, o el tipo de dato
retornado, o el cdigo de estado.
El uso de campos de encabezados enviados en las transacciones HTTP le da gran flexibilidad al protocolo.
Estos campos permiten que se enve informacin descriptiva en la transaccin, permitiendo as la
autenticacin, cifrado e identificacin de usuario.
Un encabezado es un bloque de datos que precede a la informacin propiamente dicha, por lo que
muchas veces se hace referencia a l como metadato porque tiene datos sobre los datos.
Si se reciben lneas de encabezado del cliente, el servidor las coloca en las variables de ambiente
de CGI con el prefijo HTTP_ seguido del nombre del encabezado. Cualquier carcter guin ( - ) del nombre
del encabezado se convierte a caracteres "_".
El servidor puede excluir cualquier encabezado que ya est procesado, como Authorization, Contenttype y Content-length. El servidor puede elegir excluir alguno o todos los encabezados si incluirlos exceden
algn lmite del ambiente de sistema. Ejemplos de esto son las variables HTP_ACPT y HTP_R_AEN.
HT_AEP'. Los tipos MIME que el cliente aceptar, dado los encabezados HTTP. Otros protocolos
quizs necesiten obtener esta informacin de otro lugar. Los elementos de esta lista deben estar separados
por una coma, como lo dice la especificacin HTTP: tipo, tipo.


HTT_USR_AET. El navegador que utiliza el cliente para realizar la peticin. El formato general para
esta variable es: software/versin biblioteca/versin.


Pgina 88 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
HTTP ha pasado por mltiples versiones del protocolo, muchas de las cuales son compatibles con las
anteriores. El RFC 2145 describe el uso de los nmeros de versin de HTTP. El cliente le dice al servidor al
principio de la peticin la versin que usa, y el servidor usa la misma o una anterior en su respuesta.
HTTP/0.9 Obsoleta. Soporta slo un comando, GET, y adems no especifica el nmero de versin HTTP.
No soporta cabeceras. Como esta versin no soporta POST, el cliente no puede enviarle mucha informacin
al servidor.
HTTP/1.0 (mayo de 1996) Esta es la primera revisin del protocolo que especifica su versin en las
comunicaciones, y todava se usa ampliamente, sobre todo en servidores proxy.
HTTP/1.1 (junio de 1999) Versin actual; las conexiones persistentes estn activadas por defecto y
funcionan bien con los proxies. Tambin permite al cliente enviar mltiples peticiones a la vez (pipelining) lo
que hace posible eliminar el tiempo de Round-Trip delay por cada peticin.
HTTP/1.2 Los primeros borradores de 1995 del documento PEP an Extension Mechanism for HTTP (el
cul propone el Protocolo de Extensin de Protocolo, abreviado PEP) los hizo el World Wide Web
Consortium y se envi al Internet Engineering Task Force. El PEP inicialmente estaba destinado a convertirse
en un rango distintivo de HTTP/1.2. En borradores posteriores, sin embargo, se elimin la referencia a
HTTP/1.2. El RFC 2774 (experimental), HTTP Extension Framework, incluye en gran medida a PEP.

A.2. PHP
PHP es un lenguaje de programacin interpretado, diseado originalmente para la creacin de pginas
web dinmicas. Es usado principalmente para la interpretacin del lado del servidor (server-side scripting)
pero actualmente puede ser utilizado desde una interfaz de lnea de comandos o en la creacin de otros
tipos de programas incluyendo aplicaciones con interfaz grfica usando las bibliotecas Qt o GTK+.
Fue creado originalmente por Rasmus Lerdorf en 1994; sin embargo la implementacin principal de PHP
es producida ahora por The PHP Group y sirve como el estndar de facto para PHP al no haber una
especificacin formal. Publicado bajo la PHP License, la Free Software Foundation considera esta licencia
como software libre.
Puede ser desplegado en la mayora de los servidores web y en casi todos los sistemas operativos y
plataformas sin costo alguno. El lenguaje PHP se encuentra instalado en ms de 20 millones de sitios web y
en un milln de servidores, el nmero de sitios en PHP ha compartido algo de su preponderante sitio con
otros nuevos lenguajes no tan poderosos desde agosto de 2005. Es tambin el mdulo Apache ms popular,
el cliente hace una peticin al servidor para que le enve una pgina web, el servidor ejecuta el intrprete de
PHP. ste procesa el script solicitado que generar el contenido de manera dinmica (por ejemplo
obteniendo informacin de una base de datos). El resultado es enviado por el intrprete al servidor, quien a
su vez se lo enva al cliente. Mediante extensiones es tambin posible la generacin de archivos PDF, Flash,
as como imgenes en diferentes formatos.

Pgina 89 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Permite la conexin a diferentes tipos de servidores de bases de datos tales como MySQL, PostgreSQL,
Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite.
XAMPP es un servidor independiente de plataforma, software libre, que consiste principalmente en la
base de datos MySQL, el servidor Web Apache y los intrpretes para lenguajes de script: PHP y Perl. El
nombre proviene del acrnimo de X (para cualquiera de los diferentes sistemas operativos), Apache, MySQL,
PHP, Perl. El programa est liberado bajo la licencia GNU y acta como un servidor Web libre, fcil de usar y
capaz de interpretar pginas dinmicas. Actualmente XAMPP est disponible para Microsoft Windows,
GNU/Linux, Solaris, y MacOS X.
PHP tambin tiene la capacidad de ser ejecutado en la mayora de los sistemas operativos, tales como
Unix (y de ese tipo, como Linux o Mac OS X) y Microsoft Windows, y puede interactuar con los servidores de
web ms populares ya que existe en versin CGI, mdulo para Apache, e ISAPI.
PHP es una alternativa a las tecnologas de Microsoft ASP y ASP.NET (que utiliza C# y Visual Basic .NET
como lenguajes), a ColdFusion de la empresa Adobe, a JSP/Java y a CGI/Perl. Aunque su creacin y desarrollo
se da en el mbito de los sistemas libres, bajo la licencia GNU, existe adems un entorno de desarrollo
integrado comercial llamado Zend Studio. Recientemente, CodeGear (la divisin de lenguajes de
programacin de Borland) ha sacado al mercado un entorno de desarrollo integrado para PHP, denominado
'Delphi for PHP. Tambin existen al menos un par de mdulos para Eclipse, uno de los entornos ms
populares.
PHP es un acrnimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP Tools, o,
Personal Home Page Tools). Fue creado originalmente por Rasmus Lerdorf en 1994; sin embargo la
implementacin principal de PHP es producida ahora por The PHP Group y sirve como el estndar de facto
para PHP al no haber una especificacin formal. Publicado bajo la PHP License, la Free Software Foundation
considera esta licencia como software libre.
El gran parecido que posee PHP con los lenguajes ms comunes de programacin estructurada, como C y
Perl, permiten a la mayora de los programadores crear aplicaciones complejas con una curva de aprendizaje
muy corta. Tambin les permite involucrarse con aplicaciones de contenido dinmico sin tener que aprender
todo un nuevo grupo de funciones.
Aunque todo en su diseo est orientado a facilitar la creacin de sitios webs, es posible crear
aplicaciones con una interfaz grfica para el usuario, utilizando la extensin PHP-Qt o PHP-GTK. Tambin
puede ser usado desde la lnea de rdenes, de la misma manera como Perl o Python pueden hacerlo; a esta
versin de PHP se la llama PHP-CLI (Command Line Interface).
Permite la conexin a diferentes tipos de servidores de bases de datos tales como MySQL, PostgreSQL,
Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite.
Ventajas

Es un lenguaje multiplataforma.

Pgina 90 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Orientado al desarrollo de aplicaciones web dinmicas con acceso a informacin almacenada en una
base de datos.

El cdigo fuente escrito en PHP es invisible al navegador web y al cliente ya que es el servidor el que
se encarga de ejecutar el cdigo y enviar su resultado HTML al navegador. Esto hace que la programacin en
PHP sea segura y confiable.

Capacidad de conexin con la mayora de los motores de base de datos que se utilizan en la
actualidad, destaca su conectividad con MySQL y PostgreSQL.

Capacidad de expandir su potencial utilizando mdulos (llamados ext's o extensiones).

Posee una amplia documentacin en su sitio web oficial, entre la cual se destaca que todas las
funciones del sistema estn explicadas y ejemplificadas en un nico archivo de ayuda.

Es libre, por lo que se presenta como una alternativa de fcil acceso para todos.

Permite aplicar tcnicas de programacin orientada a objetos.

Biblioteca nativa de funciones sumamente amplia e incluida.

No requiere definicin de tipos de variables aunque sus variables se pueden evaluar tambin por el
tipo que estn manejando en tiempo de ejecucin.

Tiene manejo de excepciones (desde PHP5).

Si bien PHP no obliga a quien lo usa a seguir una determinada metodologa a la hora de programar
(muchos otros lenguajes tampoco lo hacen), aun hacindolo, el programador puede aplicar en su trabajo
cualquier tcnica de programacin o de desarrollo que le permita escribir cdigo ordenado, estructurado y
manejable. Un ejemplo de esto son los desarrollos que en PHP se han hecho del patrn de diseo Modelo
Vista Controlador (MVC), que permiten separar el tratamiento y acceso a los datos, la lgica de control y la
interfaz de usuario en tres componentes independientes.

Inconvenientes

Como es un lenguaje que se interpreta en ejecucin, para ciertos usos puede resultar un
inconveniente que el cdigo fuente no pueda ser ocultado. La ofuscacin es una tcnica que puede dificultar
la lectura del cdigo pero no la impide y, en ciertos casos, representa un costo en tiempos de ejecucin.

A.3. CSS
El nombre hojas de estilo en cascada viene del ingls Cascading Style Sheets, del que toma sus siglas. CSS
es un lenguaje usado para definir la presentacin de un documento estructurado escrito en HTML o XML (y
por extensin en XHTML). El W3C (World Wide Web Consortium) es el encargado de formular la
especificacin de las hojas de estilo que servirn de estndar para los agentes de usuario o navegadores.
La idea que se encuentra detrs del desarrollo de CSS es separar la estructura de un documento de su
presentacin
Los tres tipos de estilos
CSS proporciona tres caminos diferentes para aplicar las reglas de estilo a una pgina Web:

Pgina 91 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
1. Una hoja de estilo externa, es una hoja de estilo que est almacenada en un archivo diferente al
archivo donde se almacena el cdigo HTML de la pgina Web. Esta es la manera de programar ms potente,
porque separa completamente las reglas de formateo para la pgina HTML de la estructura bsica de la
pgina:
2. Una hoja de estilo interna, que es una hoja de estilo que est incrustada dentro de un documento
HTML. (Va a la derecha dentro del elemento <head>.) De esta manera se obtiene el beneficio de separar la
informacin del estilo del cdigo HTML propiamente dicho. Se puede optar por copiar la hoja de estilo
incrustada de una pgina a otra (esta posibilidad es difcil de ejecutar si se desea para guardar las copias
sincronizadas). En general, la nica vez que se usa una hoja de estilo interna, es cuando se quiere
proporcionar alguna caracterstica a una pgina Web en un simple fichero, por ejemplo, si se est enviando
algo a la pgina Web.
3. Un estilo en lnea (inline) es un mtodo para insertar el lenguaje de estilo de pgina directamente
dentro de una etiqueta HTML. Esta manera de proceder no es totalmente adecuada. El incrustar la
descripcin del formateo dentro del documento de la pgina Web, a nivel de cdigo, se convierte en una
manera larga, tediosa y poco elegante de resolver el problema de la programacin de la pgina. Este modo
de trabajo se podra usar de manera ocasional si se pretende aplicar un formateo con prisa, al vuelo. No es
todo lo claro o estructurado que debera ser, pero funciona. ste es el mtodo recomendado para maquetar
correos electrnicos en HTML.
Ventajas de usar las hojas de estilo
Las ventajas de utilizar CSS (u otro lenguaje de estilo) son:
Control centralizado de la presentacin de un sitio web completo con lo que se agiliza de forma
considerable la actualizacin del mismo.

Los navegadores permiten a los usuarios especificar su propia hoja de estilo local, que ser aplicada
a un sitio web, con lo que aumenta considerablemente la accesibilidad. Por ejemplo, personas con
deficiencias visuales pueden configurar su propia hoja de estilo para aumentar el tamao del texto o
remarcar ms los enlaces.

Una pgina puede disponer de diferentes hojas de estilo segn el dispositivo que la muestre o,
incluso, a eleccin del usuario. Por ejemplo, para ser impresa, mostrada en un dispositivo mvil o ser "leda"
por un sintetizador de voz.

El documento HTML en s mismo es ms claro de entender y se consigue reducir considerablemente


su tamao (siempre y cuando no se utilice estilo en lnea).

A.4. LINUX
GNU/Linux es uno de los trminos empleados para referirse a la combinacin del ncleo o kernel libre
similar a Unix denominado Linux, que es usado con herramientas de sistema GNU. Su desarrollo es uno de
los ejemplos ms prominentes de software libre; todo su cdigo fuente puede ser utilizado, modificado y
redistribuido libremente por cualquiera bajo los trminos de la GPL.
La coleccin de utilidades para la programacin de GNU es con diferencia la familia de compiladores ms
utilizada en este sistema operativo. Tiene capacidad para compilar C, C++, Java, Ada, entre otros muchos
Pgina 92 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
lenguajes. Adems soporta diversas arquitecturas mediante la compilacin cruzada, lo que hace que sea un
entorno adecuado para desarrollos heterogneos.
Hay varios entornos de desarrollo integrados disponibles para GNU/Linux incluyendo, Anjuta, KDevelop,
Ultimate++, Code::Blocks, NetBeans IDE y Eclipse. Tambin existen editores extensibles como Emacs o Vim.
GNU/Linux tambin dispone de capacidades para lenguajes de guin (script), aparte de los clsicos lenguajes
de programacin de shell, o el de procesado de textos por patrones y expresiones regulares llamado awk, la
mayora de las distribuciones tienen instalado Python, Perl, PHP y Ruby.
Las aplicaciones para Linux se distribuyen principalmente en los formatos.deb y.rpm, los cuales fueron
creados por los desarrolladores de Debian y Red Hat respectivamente. Tambin existe la posibilidad de
instalar aplicaciones a partir de cdigo fuente en todas las distribuciones.
Durante la etapa temprana haba pocas aplicaciones de cdigo cerrado para GNU/Linux. Con el tiempo se
fueron portando programas no libres al sistema GNU/Linux, entre ellos Adobe Reader, Adobe Flash, Google
Picasa, Opera, entre otros.
La creciente popularidad de GNU/Linux se debe, entre otras razones, a su estabilidad, al acceso al cdigo
fuente (lo que permite personalizar el funcionamiento y auditar la seguridad y privacidad de los datos
tratados), a la independencia de proveedor, a la seguridad, a la rapidez con que incorpora los nuevos
adelantos tecnolgicos (IPv6, microprocesadores de 64 bits), a la escalabilidad (se pueden crear clusters de
cientos de computadoras), a la activa comunidad de desarrollo que hay a su alrededor, a su
interoperatibilidad y a la abundancia de documentacin relativa a los procedimientos.IBM Roadrunner, la
supercomputadora ms potente de 2008, funciona bajo una distribucin GNU/Linux
Hay varias empresas que comercializan soluciones basadas en GNU/Linux: IBM, Novell (SuSE), Red Hat
(RHEL), Mandriva (Mandriva Linux), Rxart, Canonical Ltd. (Ubuntu), as como miles de PYMES que ofrecen
productos o servicios basados en esta tecnologa.

A.5. HTML
El HTML, Hyper Text Markup Language (Lenguaje de marcacin de Hipertexto) es el lenguaje de marcas
de texto utilizado normalmente en la www (World Wide Web). Fue creado en 1986 por el fsico nuclear Tim
Berners-Lee; el cual tomo dos herramientas preexistentes: El concepto de Hipertexto (Conocido tambin
como link o ancla) el cual permite conectar dos elementos entre si y el SGML (Lenguaje Estndar de
Marcacin General) el cual sirve para colocar etiquetas o marcas en un texto que indique como debe verse.
HTML no es propiamente un lenguaje de programacin como C++,Visual Basic, etc., sino un sistema de
etiquetas. HTML no presenta ningn compilador, por lo tanto algn error de sintaxis que se presente ste no
lo detectar y se visualizara en la forma como ste lo entienda.

El entorno para trabajar HTML es simplemente un procesador de texto, como el que ofrecen
los sistemas operativos Windows (Bloc de notas), UNIX(el editor vi o ed) o el que ofrece MS Office (Word). El
conjunto de etiquetas que se creen, se deben guardar con la extensin .htm o .html.

Pgina 93 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Los elementos son la estructura bsica de HTML. Los elementos tienen dos propiedades bsicas: atributos
y contenido. Cada atributo y contenido tiene ciertas restricciones para que se considere vlido al documento
HTML. Un elemento generalmente tiene una etiqueta de inicio (p.ej. <nombre-de-elemento>) y una etiqueta
de cierre (p.ej. </nombre-de-elemento>).
Los atributos del elemento estn contenidos en la etiqueta de inicio y el contenido est ubicado entre las
dos etiquetas (p.ej. <nombre-de-elemento atributo="valor">Contenido</nombre-de-elemento>). Algunos
elementos, tales como <br>, no tienen contenido ni llevan una etiqueta de cierre. Debajo se listan varios
tipos de elementos de marcado usados en HTML.
El marcado estructural describe el propsito del texto. El marcado estructural no define cmo se ver el
elemento, pero la mayora de los navegadores web han estandarizado el formato de los elementos. Un
formato especfico puede ser aplicado al texto por medio de hojas de estilo en cascada.
El marcado presentacional describe la apariencia del texto, sin importar su funcin La mayora del
marcado presentacional ha sido desechada con HTML 4.0, en favor de hojas de estilo en cascada.
El marcado hipertextual se utiliza para enlazar partes del documento con otros documentos o con otras
partes del mismo documento. Para crear un enlace es necesario utilizar la etiqueta de ancla <a> junto con el
atributo href, que establecer la direccin URL a la que apunta el enlace.
Atributos
La mayora de los atributos de un elemento son pares nombre-valor, separados por un signo de igual =
y escritos en la etiqueta de comienzo de un elemento, despus del nombre de ste. El valor puede estar
rodeado por comillas dobles o simples, aunque ciertos tipos de valores pueden estar sin comillas en HTML
Nociones bsicas de HTML
El lenguaje HTML puede ser creado y editado con cualquier editor de textos bsico, como puede
ser Gedit en Linux, el Bloc de notas de Windows, o cualquier otro editor que admita texto sin formato
como GNU Emacs, Microsoft Wordpad, TextPad, Vim, Notepad++, entre otros.
Existen adems, otros editores para la realizacin de sitios web con caractersticas WYSIWYG (What You
See Is What You Get, o en espaol: lo que ves es lo que obtienes). Estos editores permiten ver el resultado
de lo que se est editando en tiempo real, a medida que se va desarrollando el documento. Ahora bien, esto
no significa una manera distinta de realizar sitios web, sino que una forma un tanto ms simple ya que estos
programas, adems de tener la opcin de trabajar con la vista preliminar, tiene su propia seccin HTML la
cual va generando todo el cdigo a medida que se va trabajando. Algunos ejemplos de editores WYSIWYG
son KompoZer, Microsoft FrontPage, o Macromedia Dreamweaver.
Combinar estos dos mtodos resulta muy interesante, ya que de alguna manera se ayudan entre s. Por
ejemplo; si se edita todo en HTML y de pronto se olvida algn cdigo o etiqueta, simplemente me dirijo al
editor visual o WYSIWYG y se contina ah la edicin, o viceversa, ya que hay casos en que sale ms rpido y
fcil escribir directamente el cdigo de alguna caracterstica que queramos adherirle al sitio, que buscar la
opcin en el programa mismo.
Pgina 94 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Existe otro tipo de editores HTML llamados WYSIWYM que dan ms importancia al contenido y al
significado que a la apariencia visual. Entre los objetivos que tienen estos editores es la separacin del
contenido y la presentacin, fundamental en el diseo web.
HTML utiliza etiquetas o marcas, que consisten en breves instrucciones de comienzo y final, mediante las
cuales determinan la forma en la que debe aparecer en su navegador el texto, as como tambin las
imgenes y los dems elementos, en la pantalla del ordenador.
Accesibilidad web
El diseo en HTML aparte de cumplir con las especificaciones propias del lenguaje debe respetar unos
criterios de accesibilidad web, siguiendo unas pautas, o las normativas y leyes vigentes en los pases donde
se regule dicho concepto. Se encuentra disponible y desarrollado por el W3C a travs de las Pautas de
Accesibilidad al Contenido Web 1.0 WCAG
Sin HTML no existira el Internet que hoy conocemos, si no se hubiera inventado, seguiramos con el
aburrido FTP (Protocolo de Transferencia de Ficheros) mandndonos o bajando archivos que a veces ni
sabamos lo que eran, sin tener la posibilidad de visualizarlo antes. Ahora por medio de una pgina llena de
colores y botones por la cual se puede navegar, se puede tener acceso a bastante informacin y archivos.
El lenguaje de HTML abri una puerta al mundo permitindoles a las personas expresar sus ideas por medio
de pginas y mostrrselas a todas las personas de todos los pases.
Con el HTML se logr un gran movimiento econmico ya que muchsimas empresas publican, venden, y
ofrecen sus productos, sus servicios y sus ofertas atrayendo a mayor cantidad de personas. Tambin gracias
al HTML nacieron muchas empresas que ofrecen diversos servicios como Yahoo, Altavista, HotMail, Terra,
Yupi, Mercadolibre, De Remate, etc.

Infinitas son las posibilidades que te brindan las pginas WEB ya que no solo te dan la posibilidad de
pasar el tiempo navegando, sino que tambin hasta se puede comprar un auto por Internet, solo basta con
llenar un formulario con los datos personales y el nmero de tarjeta de crdito y en ocho das lo tenemos en
nuestra casa.

Todo el universo de Internet se lo debemos al HTML, ya que todas las pginas con las que se compone
la World Wide Web estn hechas con el lenguaje de programacin HTML.

A.6.

SERVIDOR HTTP APACHE

El servidor HTTP Apache es un servidor web HTTP de cdigo abierto para plataformas Unix (BSD,
GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la nocin
de sitio virtual. Cuando comenz su desarrollo en 1995 se bas inicialmente en cdigo del popular NCSA
HTTPd 1.3, pero ms tarde fue reescrito por completo. Su nombre se debe a que Behelendorf quera que
tuviese la connotacin de algo que es firme y enrgico pero no agresivo, y la tribu Apache fue la ltima en
rendirse al que pronto se convertira en gobierno de EEUU, y en esos momentos la preocupacin de su grupo
Pgina 95 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
era que llegasen las empresas y "civilizasen" el paisaje que haban creado los primeros ingenieros de
internet. Adems Apache consista solamente en un conjunto de parches a aplicar al servidor de NCSA. Era,
en ingls, a patchy server (un servidor "parcheado").
El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software
Foundation.
Apache presenta entre otras caractersticas altamente configurables, bases de datos de autenticacin y
negociado de contenido, pero fue criticado por la falta de una interfaz grfica que ayude en su configuracin.
Apache tiene amplia aceptacin en la red: desde 1996, Apache, es el servidor HTTP ms usado. Alcanz su
mxima cuota de mercado en 2005 siendo el servidor empleado en el 70% de los sitios web en el mundo, sin
embargo ha sufrido un descenso en su cuota de mercado en los ltimos aos. (Estadsticas histricas y de
uso diario proporcionadas por Netcraft3 ).
La mayora de las vulnerabilidades de la seguridad descubiertas y resueltas tan slo pueden ser
aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas se pueden accionar
remotamente en ciertas situaciones, o explotar por los usuarios locales malvolos en las disposiciones de
recibimiento compartidas que utilizan PHP como mdulo de Apache.
Ventajas

Modular
Cdigo abierto
Multi-plataforma
Extensible
Popular (fcil conseguir ayuda/soporte)

Uso
Apache es usado principalmente para enviar pginas web estticas y dinmicas en la World Wide Web.
Muchas aplicaciones web estn diseadas asumiendo como ambiente de implantacin a Apache, o que
utilizarn caractersticas propias de este servidor web.
Apache es el componente de servidor web en la popular plataforma de aplicaciones LAMP, junto a
MySQL y los lenguajes de programacin PHP/Perl/Python (y ahora tambin Ruby).
Este servidor web es redistribuido como parte de varios paquetes propietarios de software, incluyendo la
base de datos Oracle y el IBM WebSphere application server. Mac OS X integra apache como parte de su
propio servidor web y como soporte de su servidor de aplicaciones WebObjects. Es soportado de alguna
manera por Borland en las herramientas de desarrollo Kylix y Delphi. Apache es incluido con Novell NetWare
6.5, donde es el servidor web por defecto, y en muchas distribuciones Linux.

Pgina 96 de 97

Memoria del Proyecto Final de Carrera


Diseo y desarrollo de base de datos en MySQL y aplicacin Web en PHP con servidor central APACHE
Apache es usado para muchas otras tareas donde el contenido necesita ser puesto a disposicin en una
forma segura y confiable. Un ejemplo es al momento de compartir archivos desde una computadora
personal hacia Internet.
Los programadores de aplicaciones web a veces utilizan una versin local de Apache con el fin de
previsualizar y probar cdigo mientras ste es desarrollado.
Microsoft Internet Information Services (IIS) es el principal competidor de Apache, as como Sun Java
System Web Server de Sun Microsystems y un anfitrin de otras aplicaciones como Zeus Web Server.
Algunos de los ms grandes sitios web del mundo estn ejecutndose sobre Apache. La capa frontal (front
end) del motor de bsqueda.

A.7. MYSQL
MySQL es un sistema de gestin de bases de datos relacional, multihilo y multiusuario con ms de seis
millones de instalaciones. MySQL AB desde enero de 2008 una subsidiaria de Sun Microsystems y sta a su
vez de Oracle Corporation desde abril de 2009 desarrolla MySQL como software libre en un esquema de
licenciamiento dual.
Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas
empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia
especfica que les permita este uso. Est desarrollado en su mayor parte en ANSI C.
Al contrario de proyectos como Apache, donde el software es desarrollado por una comunidad pblica y
los derechos de autor del cdigo estn en poder del autor individual, MySQL es patrocinado por una
empresa privada, que posee el copyright de la mayor parte del cdigo.
Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Adems de la venta
de licencias privativas, la compaa ofrece soporte y servicios
Aplicaciones
MySQL es muy utilizado en aplicaciones web, como Drupal o phpBB, en plataformas (Linux/WindowsApache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su
popularidad como aplicacin web est muy ligada a PHP, que a menudo aparece en combinacin con
MySQL. MySQL es una base de datos muy rpida en la lectura cuando utiliza el motor no transaccional
MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificacin.
En aplicaciones web hay baja concurrencia en la modificacin de datos y en cambio el entorno es intensivo
en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones. Sea cual sea el entorno en el
que va a utilizar MySQL, es importante adelantar monitoreos sobre el desempeo para detectar y corregir
errores tanto de SQL como de programacin.

Pgina 97 de 97

También podría gustarte