Академический Документы
Профессиональный Документы
Культура Документы
e
Facultad de Inform tica
a
Proyecto n de carrera
Dise o e implementaci n de una aplicaci n web para la gesti n y control de visitas a centros educativos
n
o
o
o
David Fern ndez Moreno
a
Madrid, Noviembre 2006
Tutores:
Vctor Robles Forcada (vrobles@.upm.es)
Direcci n:
o
Facultad de Inform tica Universidad Polit cnica de Madrid
a
e
Campus de Montegancedo s/n
Boadilla del Monte
28660, Madrid (Espa a)
n
Tel fono:
e
(+34) 91 336 74 50
Correo electr nico:
o
dfernandez@laurel..upm.es
P gina web:
a
http://laurel.datsi..upm.es/dfernandez/
A
La composici n de este documento se ha realizado con LTEX.
o
Dise o de David Fernndez Moreno.
n
Hay varias clases de curiosidad: una, interesada, que nos lleva a desear aprender lo que
nos puede ser util; otra, orgullosa, nacida del
Sin psis
o
Dentro del proceso de promoci n institucional de la Universidad Polit cnica de Madrid (UPM), se
o
e
realizan visitas informativas a distintos centros educativos de la comunidad. El proyecto surge a partir de
la necesidad de gestionar estas visitas.
Para la realizaci n del mismo, se ha desarrollado una aplicaci n web utilizando diferentes tecnoo
o
logas, como han sido Hypertext Preprocessor (PHP), AJAX y Hyper Text Markup Language (HTML).
El desarrollo de esta aplicaci n comprende una parte de dise o y otra de implemetanci n. En la parte
o
n
o
de dise o se ha utilizado una metodologa orientada a objetos.
n
Agradecimientos
..El bien hacer abre cien puertas, y el mal agradecer las cierra...
Y por lo tanto, y desde aqu, quiero agradecer a todas las personas, que de una forma u otra, han
estado conmigo durante todos estos a os, unas veces mas cerca y otras menos.. Compa eros a los que
n
n
no me canso de ver, otros a los que hace mucho tiempo que no veo y algunos otros a los que a lo mejor
nunca volver a ver, pero de los que guardo un maravilloso recuerdo. Gente que ha pasado muy deprisa
e
por mi vida y personas con las que quiero pasar el resto de ella y a quienes voy a estar eternamente
agradecido.
Muchas de estas personas tienen nombres propios y en las siguientes lneas quiero acordarme de
ellas.
Por ello, y en primer lugar, quiero agradecer a mi tutor; Vctor Robles Forcada, por todo lo que
aprend durante el tiempo en el que curs la asignatura de Sistemas Inform ticos y por haber conado en
e
a
mi para llevar a cabo este proyecto.
Quiero acordarme tambi n de todos los compa eros que he tenido durante la carrera; ll mense Pae
n
a
blete, Josete, Gonzalo, Javi, Micky, Luis, Ana, Carlos, Juanpi, Ricky, y un largo etc tera que aunque no
e
nombre son igual de importantes. Compa eros de laboratorio, con lo que por desgracia he pasado poco
n
tiempo y dentro de ellos, uno en especial, Oscar Cubo Medina. Quiero agradecerte, ya no por tantsimas
cosas que he aprendido contigo sino por todos los ratos que hemos pasado, de coraz n, gracias por todo
o
lo que has hecho por mi, porque aunque no te lo creas sin tu ayuda todo esto hubiera sido otro cantar.
Tambi n quiero dejar un hueco, para esos amigos a los que nunca me cansar de ver, amigos del
e
e
pueblo, de toda la vida; Chac n, L pez, Chule, Garca, Le n, Jes s, Edu, Javi, Miguel, Ruben, etc..
o
o
o
u
personas con las que he vivido muchas historias y a los que llevo muy dentro.
III
0. Agradecimientos
Para acabar, quiero agradecer a mi familia, de la cual estoy totalmente orgulloso. Mi madre y mi
hermana, por darme tanto y pedirme tan poco y a las cuales quiero muchsimo y mi padre, porque con el
me tengo que quitar el sombrero. Nunca pens que alguien me ense ara tanto.
e
n
Tan s lo me queda una persona a la que agradecer todo esto. Esa persona eres t , Laura. Gracias de
o
u
todo coraz n por toda la ayuda desinteresada, cari o y aguante que has tenido en estos ultimos meses.
o
n
De repente, has conseguido que todo empiece a tener sentido. Si ntete bien orgullosa de ser como eres
e
porque nunca en mi vida he conocido a una persona con tantas virtudes como t y nunca pierdas esa
u
sonrisa. Gracias, enana, contigo todo es muy f cil.
a
A todos, muchas gracias.
David Fern ndez Moreno
a
Noviembre 2006
IV
Indice
Agradecimientos .
III
Indice
Indice de guras .
XI
Indice de tablas
XV
XVII
XIX
Indice de programas
PARTE I
I NTRODUCCI ON Y OBJETIVOS
1. Introducci n .
o
1.4. Objetivos
1.5. Contenidos .
Indice
PARTE II
E STADO DE LA CUESTI ON
2. Aplicaciones Web
10
12
13
13
. .
14
2.2.3. Javascript .
14
15
2.2.4.1.
16
2.2.4.2.
Plantillas Smarty
2.2. Lenguajes
2.2.5. Seguridad .
17
18
2.2.5.1.
Autenticaci n
o
18
2.2.5.2.
Ataques tpicos .
19
2.2.5.2.1.
Suplantaci n de indentidad .
o
19
2.2.5.2.2.
19
3. Bases de datos
21
22
26
3.1.2. SQlite .
27
28
28
30
31
33
4. Proceso de desarrollo
VI
Indice
4.1. Ciclo de vida
34
35
4.1.1.1.
Secuencial o en cascada
35
4.1.1.2.
Prototipado .
36
4.1.1.3.
Espiral
36
38
38
39
40
41
42
43
PARTE III
47
48
48
48
49
50
51
51
52
5.1.1. Autenticaci n
o
6. Diseno de la Aplicaci n
o
53
54
54
56
VII
Indice
6.1.3. Modelo de Navegaci n del m todo OOWS .
o
e
60
6.1.3.1.
60
6.1.3.2.
61
64
64
Diagrama de m dulos .
o
67
69
71
71
75
75
7. Desarrollo de la aplicaci n
o
7.1. Implementaci n
o
77
77
77
79
79
82
87
87
87
88
PARTE IV
C ONCLUSIONES
8.2. Conocimientos .
89
89
VIII
Indice
PARTE V
A NEXOS
93
97
Bibliografa
.
.
. 101
IX
Indice de guras
10
11
12
13
15
2.6. PHP
15
2.7. Pear
16
17
19
20
3.1. SQLite
28
29
34
34
35
36
37
40
41
XI
Indice de guras
6.1. Visi n general del sistema
o
55
56
59
60
61
62
63
63
64
65
66
66
67
68
68
69
70
72
73
74
76
78
80
83
83
93
94
XII
Indice de guras
A.3. Habilitarlo en la tabla ACL
96
98
XIII
Indice de tablas
.
.
48
58
XV
Indice de programas
78
81
94
95
XVII
ACL
ASP
API
CGI
CSS
COCOMO
DOM
ECMA
ESO
FI
IBM
PEAR
PECL
PHP
PFC
JVM
HTML
HTTP
LDD
LMD
LOCE
LOE
LOGSE
Ley Org nica 1/1990 de 3 de octubre de Ordenaci n General del Sistema Educativo.M s
a
o
a
informaci n en la p gina 4
o
a
OOWS
SEQUEL
SOAP
SQL
SGBD
UML
UPM
W3C
XML
XX
Parte I
Introducci n y objetivos
o
Captulo 1
Introducci n
o
Dentro del proceso de promoci n institucional de la UPM, se realizan visitas informativas a distintos
o
centros educativos. El proyecto surge a partir de la necesidad de gestionar estas visitas realizadas por el
personal de la Universidad Polit cnica de Madrid (UPM).
e
1.1.
ron en los siglos XVIII Y XIX, no es exagerado armar que una gran parte de la
historia de la tecnologa espa ola ha sido desarrollada por sus escuelas, quienes
n
Facultad ha ido asentando su prestigio, del cual se han beneciado los ingenieros formados en el centro
hasta llegar a ser el centro universitario con mayor experiencia y prestigio en la ense anza de la Ingeniera
n
1. Introducci n
o
Las titulaciones que se imparten son las siguientes:
Ingeniero en Inform tica (desde 1996)
a
Doctor en Inform tica
a
1.2.
El actual sistema educativo queda regulado por la Ley Org nica 10/2002 de 23 de diciembre de
a
Calidad de la Educaci n (LOCE), que dene la estructura del sistema educativo en sus diversos niveles
o
y etapas. Esta ley presenta novedades respecto a la legislaci n anterior: Ley Org nica 1/1990 de 3 de
o
a
octubre de Ordenaci n General del Sistema Educativo (LOGSE).
o
Hoy en da, el Ministerio de Educaci n y Ciencia, ha presentado el Anteproyecto de una nueva ley
o
llamada Ley Org nica de Educaci n (LOE).
a
o
El sistema educativo actual denido en la LOCE comprende:
Educaci n preescolar (hasta 3 a os).
o
n
Ense anzas escolares (de los 3 a los 18 a os).
n
n
Ense anza universitaria (a partir de los 18 a os).
n
n
Las ense anzas escolares pueden ser de r gimen general o de r gimen especial. Las Ense anzas
n
e
e
n
escolares de r gimen general, se organizan en los siguientes niveles:
e
Educaci n Infantil (3-6 a os).
o
n
Educaci n Primaria (6 - 12 a os).
o
n
Educaci n Secundaria, que comprende las etapas
o
Ense anza Secundaria Obligatorio. (ESO) (12 - 16 a os)
n
n
Bachillerato (16 - 18 a os)
n
Formaci n Profesional de Grado Medio
o
Formaci n Profesional de Grado Superior.
o
Por su parte, las ense anzas escolares de r gimen especial son:
n
e
4
1.3.
En el a o 2003, la UPM inici una campa a en centros de ense anza secundaria dirigida a informar a
n
o
n
n
los potenciales alumnos, acerca de las posibilidades de formaci n y futuro profesional que les ofrece la
o
universidad.
Una de las acciones de la campa a, fue dise ar un programa de visitas de profesores personalmente a
n
n
los colegios e institutos de la Comunidad de Madrid. Durante las visitas se expone, en aproximadamente
media hora, un resumen de las titulaciones de la UPM, y se responde a las preguntas que los alumnos
deseen hacer. En todos los colegios e institutos se entreg 1 diversa documentaci n.
o
o
Desde su implantaci n, se realizan visitas a unos 150 centros por a o. Tambi n se realizaron visitas
o
n
e
a centros de otras provincias, como Segovia, Guadalajara o Ciudad Real, que as lo solicitaron, llegando
1.4.
Objetivos
El principal objetivo de este trabajo es desarrollar un sistema que facilite la gesti n a las visitas del
o
personal de la UPM a los diferentes centros de la Comunidad de Madrid.
Adicionalmente, se desea conseguir:
Un sistema que sea f cilmente ampliable, es decir, que se puedan a adir f cilmente nuevas funcioa
n
a
nalidades
1 Una
gua de la UPM, documentaci n con los planes de estudio de todas las titulaciones y cuadernillos individualizados con
1. Introducci n
o
La posibilidad de que el sistema sea escalable, que pueda soportar m s usuarios en el futuro,
a
facultades,..
Independiente del gestor de base de datos por si se necesita reemplazarlo
Gesti n r pida y eciente de los recursos.
o a
Realizar un sistema multiplataforma ,siguiendo los est ndares.
a
Interfaz va web amigable para el usuario (user frienly)
Ampliamente documentado
1.5.
Contenidos
Este trabajo est divido en dos grandes bloques, en el primero de ellos se va a dar una visi n de todas
a
o
las herramientas, lenguajes y conceptos que se han utilizado para llevar a cabo este proyecto. El segundo
bloque va a tratar la parte de implementaci n del sistema.
o
En cuanto al primer bloque, se comenzar describiendo la arquitectura empleada y el conjunto de
a
lenguajes que se han utilizado para realizar la aplicaci n. Seguidamente, se estudiar la gesti n de la
o
a
o
base de datos, detallando el sistema gestor utilizado, su seguridad, etc. por ultimo, se da una visi n
o
global del proceso de desarrollo seguido para su obtenci n incidiendo principalmente en los ciclos de
o
vida y metodologas empleadas.
El segundo bloque comenzar analizando los requisitos del sistema y sus restricciones. Despu s, se
a
e
describir con detalle el dise o utilizado para realizar el sistema y, a continuaci n, se detallar n aspectos
a
n
o
a
curiosos de la implementaci n de la aplicaci n.
o
o
Para nalizar, se expondr las conclusiones, valoraciones y experiencia adquirida durante la realizaa
ci n del proyecto.
o
Parte II
Estado de la cuesti n
o
Captulo 2
Aplicaciones Web
Habitualmente, las aplicaciones muestran datos y ejecutan en la misma m quina. Sin embargo, en
a
los ultimos a os, se ha popularizado el desarrollo de aplicaciones con interfaz web, esto es, controladas
n
desde el navegador. Esto facilita el acceso a las mismas desde cualquier lugar con conexi n a la red.
o
Adem s, la mejora de las conexiones facilita su implantaci n.
a
o
2.1.
o
taformas y conguraciones. Como se puede ver, esta caracterstica de portabilidad es un punto deseable
2.1.1.
El paradigma cliente / servidor es uno de los m s extendidos dentro de los servicios a trav s de
a
e
red. Este t rmino, en su m s amplia denici n, se usa para describir una aplicaci n en la cual dos o
e
a
o
o
9
2. Aplicaciones Web
m s procesos separados trabajan juntos para completar una tarea. El proceso cliente solicita al proceso
a
servidor la ejecuci n de alguna acci n en particular. Esta operaci n se conoce como proceso cooperativo,
o
o
o
dado que dos procesos separados cooperan para completar la tarea en particular.
intente integrar todo bajo una interfaz web que es m s amigable para el usuario.
a
Los procesos pueden o no estar en una sola m quina fsica. Tales procesos en una aplicaci n cliente
a
o
/ servidor pueden localizarse en la misma m quina o separados fsicamente. El dise o l gico, y no el
a
n o
fsico, es el que determina en que grado una aplicaci n es cliente / servidor.
2.1.2.
Aplicaciones web
La idea fundamental de los navegadores, browsers, es presentar documentos escritos en HTML que
han obtenido de un servidor web. Estos documentos HTML habitualmente presentan informaci n de forma
o
est tica, sin m s posibilidad de interacci n con ellos.
a
a
o
El modo de crear los documentos HTML ha variado a lo largo de la corta vida de las tecnologas web
pasando desde las primeras p ginas escritas en HTML almacenadas en un chero en el servidor web hasta
a
aquellas que se generan al vuelo como respuesta a una acci n del cliente y cuyo contenido varia seg n
o
u
las circunstancias.
Adem s, el modo de generar p ginas din micas ha evolucionado, desde la utilizaci n del Common
a
a
a
o
Gateway Interface (CGI), hasta los servlets pasando por tecnologas tipo JavaServer Pages (JSP). Todas
10
servidor web.
Con la extensi n de Internet y de la web en concreto, se han abierto innidad de posibilidades en
o
cuanto al acceso a la informaci n desde casi cualquier sitio. Esto representa un desafo a los desarrollao
dores de aplicaciones, ya que los avances en tecnologa demandan cada vez aplicaciones m s r pidas,
a a
ligeras y robustas que permitan utilizar la web.
Servidor
2.- Recepcin de la
solicitud.
3.- Procesar la solicitud
5.- Enviar el resultado
1.- Solicitud de la
informacin
Cliente
nuevas t cnicas que permiten que el acceso a una base de datos desde la web. El unico problema es decidir
e
entre el conjunto de posibilidades la correcta para cada situaci n.
o
El protocolo CGI ha cumplido con el prop sito de a adir interactividad a las p ginas web pero sus deo
n
a
ciencias en el desarrollo de aplicaciones y en la escalabilidad de las mismas ha conducido al desarrollo
de nuevas Application Programming Interface (API) especcas de servidor. Para aprovechar el potencial
de estas tecnologas y ofertar una soluci n de servidor m s extensible y portable, Sun posee la tecnologa
o
a
llamada servlet. Los servlets Java son ecientes, debido al esquema de threads en el que se basan y al
11
2. Aplicaciones Web
uso de una arquitectura est ndar como la Java Virtual Machine (JVM).
a
Otra nueva tecnologa viene a sumarse a las que extienden la funcionalidad de los servidores web,
llamada JSP. Los JSP permiten unir HTML, aplicaciones Java, y componentes JavaBeans creando una
p gina web especial que el servidor web compila din micamente en un servlet la primera vez que es
a
a
llamada.
Aplicacin
CGI
Applets
Javascrip
HTML/ XML
HTTP
Servidor WEB
Otro aspecto que completa el panorama son, las inclusiones del lado del cliente, Client Side, que se
reeren a las posibilidades de que las p ginas lleven incrustado c digo que se ejecuta en el cliente, como
a
o
por ejemplo JavaScript.
El esquema general de la situaci n se puede ver en la Figura 2.3, donde se muestran cada tipo de
o
tecnologa involucrada en la generaci n e interacci n de documentos web.
o
o
2.1.3.
Arquitectura de 3 niveles
12
2.2. Lenguajes
2.2.
Lenguajes
Para la creaci n de aplicaciones web se utilizan m ltiples lenguajes. En este caso, se han utilizado
o
u
diferntes lenguajes de programaci n web como pueden ser HTML, PHP o JavaScript
o
2.2.1.
El Hyper Text Markup Language (HTML) [Specication, 2004], es un lenguaje de marcado, dise ado
n
para estructurar textos y denir su presentaci n en forma de hipertexto, que es el formato est ndar de
o
a
las p ginas web. Gracias a Internet y a los navegadores del tipo Mozilla, Firefox, Netscape o Explorer,
a
el HTML se ha convertido en uno de los formatos m s populares que existen para la construcci n de
a
o
documentos.
Contrariamente a otros lenguajes de programaci n, el HTML utiliza etiquetas o marcas, que consisten
o
en breves instrucciones de comienzo y nal, mediante las cuales se determina la forma con la que deben
aparecer el texto, as como las im genes y los dem s elementos, en la pantalla del ordenador.
a
a
13
2. Aplicaciones Web
2.2.2.
Las hojas CSS son un lenguaje formal usado para denir la presentaci n de un documento estructuo
rado escrito en HTML . El World Wide Web Consortium (W3C) [Consortium, 2004], es el encargado de
formular la especicaci n de las hojas de estilo que servir de est ndar para los navegadores.
o
a
a
La idea que se encuentra detr s del desarrollo de CSS es separar la estructura de un documento de su
a
presentaci n. Por ejemplo, el elemento de HTML H1 indica que un bloque de texto es un encabezamiento
o
y que es m s importante que un bloque etiquetado como H2. Cuando se utiliza CSS, la etiqueta H1 no
a
debera proporcionar informaci n sobre como va a ser visualizado, solamente marca la estructura del
o
documento. La informaci n de presentaci n se proporciona separada en una hoja de estilo con la que
o
o
se especica como se ha de mostrar: color, fuente, alineaci n del texto y tama o, adem s puede ser
o
n
a
adjuntada tanto como un documento separado o en el mismo documento HTML.
Las ventajas de utilizar CSS son:
Control centralizado de la presentaci n de un sitio web completo, con lo que se agiliza de forma
o
considerable la actualizaci n del mismo.
o
Los navegadores permiten a los usuarios especicar su propia hoja de estilo local, que ser aplia
cada a un sitio web remoto, con lo que aumenta considerablemente la accesibilidad. Por ejemplo,
personas con deciencias visuales podran congurar su propia hoja de estilo para aumentar el
a
su tama o.
n
Hay varias versiones: CSS1 y CSS2, con CSS3 en desarrollo por el W3C. Los navegadores modernos
implementan CSS1 de forma completa, aunque existen peque as diferencias de implementaci n depenn
o
diendo del navegador.
2.2.3.
Javascript
JavaScript [Eich, 2001], es un lenguaje interpretado orientado a las p ginas web basado en el paraa
digma prototipo, con una sintaxis semejante a la del lenguaje Java.
El lenguaje Javascript se integra dentro del c digo HTML de las p ginas web y act a en cuanto un
o
a
u
evento (un click en un bot n, por ejemplo) es ejecutado.
o
14
2.2. Lenguajes
El lenguaje que fue inventado por Brendan Eich en la empresa Netscape Communications, apareci por primera vez en el Netscape Navigator 2.0. Tradicionalmente, se vena utilizando en p ginas web
o
a
HTML,
Los autores inicialmente lo llamaron Mocha y, m s tarde, LiveScript, pero fue rebautizado como
a
JavaScript en un anuncio conjunto entre Sun Microsystems y Netscape, en 1995.
En 1997, los autores propusieron JavaScript para que fuera adoptado como est ndar internacional
a
the European Computer Manufacturers Association. (ECMA). En junio de 1997, fue adoptado como un
est ndar ECMA, con el nombre de ECMAScript. Poco despu s tambi n lo fue como un est ndar ISO.
a
e
e
a
Para evitar estas incompatibilidades, el World Wide Web Consortium (W3C) dise o el est ndar Docun
a
ment Object Model (DOM), que incorporan los navegadores actuales.
2.2.4.
PHP [PHP, 2004], es un lenguaje Open Source interpretado de alto nivel, especialmente pensado para
desarrollos web usado para generar p ginas HTML. La mayora de su sintaxis es similar a C, Java y Perl y
a
es f cil de aprender. La meta de este lenguaje es permitir el desarrollo de p ginas web, p ginas din micas
a
a
a
a
de una manera r pida y f cil, aunque su versatilidad hace que pueda emplearse en otro muchos ambitos.
a
a
En el invierno de 1998, poco despu s del lanzamiento ocial de PHP 3.0, Andi Gutmans y Zeev
e
Suraski comenzaron a trabajar en la reescritura del n cleo de PHP. Los objetivos de dise o fueron mejorar
u
n
la ejecuci n de aplicaciones complejas, y la modularidad del c digo.
o
o
El nuevo motor, apodado Motor Zend [Zend, 1999] (comprimido de sus apellidos, Zeev y Andi),
alcanz estos objetivos de dise o satisfactoriamente, y se introdujo por primera vez a mediados de 1999.
o
n
15
2. Aplicaciones Web
PHP 4.0, basado en este motor, fue ocialmente liberado en mayo de 2000. Esta versi n incluye otras
o
caractersticas clave como el soporte para la mayora de los servidores web y sesiones HyperText Transfer
Protocol (HTTP).
Hoy en da, se estima que PHP es usado por cientos de miles de programadores y muchos millones
de sitios informan que lo tienen instalado, sumando m s del 20 % de los dominios en Internet. Adem s
a
a
su equipo de desarrollo incluye docenas de programadores, trabajando en el n cleo o en proyectos relau
cionados con PHP como PEAR y el proyecto de documentaci n.
o
Actualmente tiene soporte para cosas tan dispares como Simple Object Access Protocol (SOAP),
eXtensible Markup Language (XML), Sockets, DB, OpenSSL o llamadas POSIX.
2.2.4.1.
PEAR [PEAR, 2004a], es un repositorio muy completo de clases en PHP, en el cual se puede encontrar
desde clases para manejar ecuaciones matem ticas o para generar gr cos, hasta clases para generar hojas
a
a
de calculo en Excel, de una forma f cil y con funciones pocas veces vista con PHP. PEAR esta dividido en
a
dos partes principales: PEAR y PCL, el primero lo constituyen paquetes escritos completamente en PHP,
el segundo esta compuesto por clases escritas en C o C++.
ocial de PHP para abstracci n de base de datos, es decir, para poder f cilmente cambiar de gestor de
o
a
base de datos cambiando tan solo unas lneas de c digo.
o
16
2.2. Lenguajes
A partir de la versi n 4.3.0, el paquete principal de PEAR junto con los paquetes m s comunes, se
o
a
instalan autom ticamente, cuando se realiza la instalaci n de PHP, en las versiones anteriores hay que
a
o
instalarlo por separado. Cuando ya se tiene el paquete principal instalado, los dem s paquetes se agregan
a
de forma muy sencilla. Hay que tomar en cuenta dependencias entre paquetes, por ello habr que instalar
a
dichos paquetes con anticipaci n.
o
2.2.4.2.
Plantillas Smarty
Smarty [SMARTY, 2004],es un motor de plantillas para PHP, que facilita la separaci n entre la l gica
o
o
de la aplicaci n y el contenido.
o
o
y el dise ador de la plantilla no son la misma persona. Por ejemplo: se crea una p gina web de un
n
a
artculo de un diario. En ella, el encabezado del articulo, el r tulo, el autor y el cuerpo son elementos del
o
contenido, que no contienen informaci n de como van a ser presentados. Estos se pasan por la aplicaci n
o
o
Smarty, donde el dise ador crea la plantilla, y usa una combinaci n de etiquetas HTML y etiquetas de
n
o
plantilla para formatear la presentaci n de estos elementos (HTML, tablas, color de fondo, tama o de
o
n
letras, hojas de estilo, etc.). Si un da el programador necesita cambiar la manera de recuperar el contenido
del articulo, este cambio no afectar al dise ador de la plantilla, ya que el contenido llegara a la plantilla
a
n
exactamente igual. De la misma manera, si el dise ador de la plantilla quiere re-dise arla en su totalidad,
n
n
estos cambios no afectaran a la l gica de la aplicaci n.
o
o
Por lo tanto, el programador puede hacer cambios en la l gica de la aplicaci n sin que sea necesario
o
o
reestructurar la plantilla. Y el dise ador de la plantilla puede hacer cambios sin que afecte a la l gica.
n
o
Smarty lee la plantilla y crea los scripts de PHP. Estos scripts son ejecutados, y por consiguiente no
existe ning n costo por analizar cada archivo de template.
u
Algunas de las caractersticas de Smarty:
R pido y eciente.
a
No analiza gramaticalmente desde arriba el template, s lo lo procesa una vez.
o
S lo recompila los archivos de plantilla que fueron cambiados.
o
17
2. Aplicaciones Web
Puede crear funciones comunes, de modo que el lenguaje de la platilla es altamente extensible.
Sintaxis de etiquetas delimitadoras congurables.
Los constructores if, elseif, else, endif son procesados por el interprete de PHP, as la sintaxis de la
2.2.5.
Seguridad
En los ultimos a os, se han desarrollado multitud de aplicaciones web que acceden a bases de datos,
n
estas aplicaciones, al estar disponibles a trav s de la web, son m s propensas a recibir ataques que
e
a
permitan acceder o modicar la base de datos, es por ello que el tema de seguridad es de especial inter s.
e
2.2.5.1.
Autenticaci n
o
Un sistema de autenticaci n es un m dulo de seguridad para asegurar que el usuario que visita las
o
o
p ginas es quien dice ser. Por supuesto, conociendo a ese usuario, se le podr dar acceso a m s aspectos
a
a
a
de la p gina que si fuese un usuario desconocido o an nimo.
a
o
En la Figura 2.9 se muestra el proceso de autenticaci n, donde se pide un usuario y una contrase a
o
n
para acceder a la aplicaci n de acceso restringido.
o
Una vez que se tienen los datos de autenticaci n (usuario y contrase a escritos en la p gina inicial),
o
n
a
se hace una comprobaci n de los mismos y, se redirecciona al navegador a la p gina de la aplicaci n
o
a
o
restringida, en caso de que sean correctos, o a la p gina del login donde se volver a pedir el usuario y la
a
a
contrase a, en caso de que sean incorrectos.
n
La aplicaci n de acceso restringido, aparte de mostrar las funcionalidades que se quieren proteger
o
con usuario y contrase a, debe de realizar unas comprobaciones de seguridad para saber si se ha pasado
n
con exito el proceso de autenticaci n o si se est intentando acceder de manera no permitida a esa p gina.
o
a
a
18
2.2. Lenguajes
2.2.5.2.
Ataques tpicos
De todos los ataques, existen dos que son especialmente peligrosos: la inyecci n de SQL y la suplano
taci n de identidad.
o
2.2.5.2.2. Inyecci n de c digo SQL La inyecci n SQL consiste en la modicaci n del comportao
o
o
o
miento de las consultas mediante la introducci n de par metros no deseados en los campos a los que
o
a
tiene acceso el usuario.
Este tipo de errores puede permitir a usuarios malintencionados acceder a datos a los que de otro
modo no tendran acceso y, en el peor de los casos, modicar el comportamiento de las aplicaciones.
El acceso restringido se basa en una tabla de usuarios y contrase as y s lo los usuarios que se validen
n
o
contra esa tabla podr n acceder a esos contenidos. Una manera de que los usuarios se validen ser mostrar
a
a
un formulario pidiendo el usuario y la contrase a y una vez que se rellenan esos campos enviar esos datos
n
a la base de datos para comprobar si es v lido.
a
19
2. Aplicaciones Web
http://laurel.datsi.fi.upm.es/~dfernandez/gvc/index.php?
SESSIONID=1234
http://server/login.php?SESSIONID=1234
&username=laura&password=bla
Servidor de
aplicaciones
Cortafuegos de
red
Servidor WEB
vulnerable
VICTIMA
ATACANTE
Usuario autenticado
con token 1234
http://laurel.datsi.fi.upm.es/~dfernandez/gvc/accounts.php?
SESSIONID=1234
puedan pasar caracteres como / o cualquier otro que se nos ocurra que puede causar problemas.
Otro factor importante en cuanto a la seguridad es limitar al m ximo los permisos del usuario que
a
ejecuta estas sentencias para evitar posibles problemas. Por ejemplo utilizando un usuario distinto para
las sentencias SELECT, DELETE, UPDATE y asegur ndonos que cada ejecuci n de una sentencia ejecute
a
o
una sentencia del tipo permitido.
20
Captulo 3
Bases de datos
El t rmino base de datos fue acu ado por primera vez en 1963, en un simposio celebrado en Califore
n
nia. De forma sencilla, una base de datos no es m s que un conjunto de informaci n relacionada que se
a
o
encuentra agrupada de forma estructurada.
El archivo por s mismo, no constituye una base de datos, sino m s bien la forma en que est or
a
a
ganizada la informaci n es la que da origen a la base de datos. Las bases de datos manuales pueden
o
ser difciles de gestionar y modicar. Por ejemplo, en una gua de tel fonos no es posible encontrar el
e
n mero de un individuo si no se sabe su apellido, aunque se conozca su domicilio. Del mismo modo, en
u
un archivo de pacientes en el que la informaci n est ordenada por el nombre, ser una tarea complicao
a
a
da encontrar todos los pacientes que viven en una zona determinada. Todos estos problemas se pueden
resolver mediante el uso de una base de datos informatizada.
Desde el punto de vista inform tico, una base de datos es un sistema formado por un conjunto de
a
datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que
manipulan ese conjunto de datos. Desde el punto de vista m s formal, se puede denir una base de
a
datos como un conjunto de datos estructurados, ables y homog neos, organizados independientemente
e
en m quina, accesibles en tiempo real, y que son compartidos por usuarios concurrentes que tienen
a
necesidades de informaci n diferente y no predecibles en el tiempo.
o
3. Bases de datos
3.1.
Los sistemas gestores de bases de datos son un tipo de software muy especco, dedicado a servir
de interfaz entre la base de datos (almacenamiento fsico en disco) y el usuario, o las aplicaciones que la
o
que se utilizara para especicar las vistas de los usuarios y su correspondencia con el esquema
conceptual.
Lenguaje de manipulaci n de datos . Una vez creados los esquemas de la base de datos, los usuarios
o
necesitan un lenguaje que les permita manipular los datos de la base de datos: realizar consultas,
inserciones, eliminaciones y modicaciones. Este lenguaje es el que se denomina LMD.
Hay dos tipos de Lenguaje de manejo de datos (LMD):
Procedurales
No Procedurales
Con un LMD procedural el usuario (normalmente ser un programador) especica qu datos se
a
e
necesitan y c mo hay que obtenerlos. Esto quiere decir que el usuario debe especicar todas las
o
operaciones de acceso a datos llamando a los procedimientos necesarios para obtener la informaci n requerida. Estos lenguajes acceden a un registro, lo procesan y bas ndose en los resultados
o
a
obtenidos, acceden a otro registro, que tambi n deben procesar. De esta manera, se va accediendo
e
a registros y se van procesando hasta que se obtienen los datos deseados.
22
o
de almacenamiento).
2. Un SGBD debe proporcionar un cat logo en el que se almacenen las descripciones de los datos
a
y que sea accesible por los usuarios. Este cat logo es lo que se denomina diccionario de datos y
a
contiene informaci n que describe los datos de la base de datos (metadatos). Normalmente, un
o
diccionario de datos almacena:
Nombre, tipo y tama o de los datos.
n
Nombre de las relaciones entre los datos.
Restricciones de integridad sobre los datos.
Permisos de acceso a la base de datos.
Esquemas externos, conceptual e interno, y correspondencia entre los esquemas.
Estadsticas de utilizaci n, tales como la frecuencia de las transacciones y el n mero de
o
u
accesos realizados a los objetos de la base de datos.
23
3. Bases de datos
Algunos de los benecios que reporta el diccionario de datos son los siguientes:
La informaci n sobre los datos se puede almacenar de un modo centralizado. Esto ayuda a
o
mantener el control sobre los datos, como un recurso que son.
El signicado de los datos se puede denir, lo que ayudar a los usuarios a entender el
a
prop sito de los mismos.
o
La comunicaci n se simplica ya que se almacena el signicado exacto. El diccionario de
o
datos tambi n puede identicar al usuario o usuarios que poseen los datos o que los acceden.
e
Las redundancias y las inconsistencias se pueden identicar m s f cilmente ya que los datos
a a
est n centralizados.
a
Se puede tener un historial de los cambios realizados sobre la base de datos.
El impacto que puede producir un cambio se puede determinar antes de que sea implementado, ya que el diccionario de datos mantiene informaci n sobre cada tipo de dato, todas sus
o
relaciones y todos sus usuarios.
Se puede establecer polticas de la seguridad.
3. Un SGBD debe proporcionar un mecanismo que garantice que todas las actualizaciones correspondientes a una determinada transacci n se realicen, o que no se realice ninguna. Una transacci n
o
o
es un conjunto de acciones que cambian el contenido de la base de datos. Una transacci n en
o
el sistema inform tico de la empresa inmobiliaria sera dar de alta a un empleado o eliminar un
a
inmueble. Una transacci n un poco m s complicada sera eliminar un empleado y reasignar sus
o
a
inmuebles a otro empleado. En este caso hay que realizar varios cambios sobre la base de datos. Si
la transacci n falla durante su realizaci n (debido, por ejemplo, a un fallo del hardware) la base de
o
o
datos quedar en un estado inconsistente. Algunos de los cambios se habr n hecho y otros no, por
a
a
lo tanto, los cambios realizados deber n ser deshechos para devolver la base de datos a un estado
a
consistente.
4. Un SGBD debe proporcionar un mecanismo que asegure que la base de datos se actualice correctamente cuando varios usuarios la est n actualizando concurrentemente. Uno de los principales
a
objetivos de los SGBD es el permitir que varios usuarios tengan acceso concurrente a los datos
que comparten. El acceso concurrente es relativamente f cil de gestionar si todos los usuarios se
a
dedican a leer datos, ya que no pueden interferir unos con otros. Sin embargo, cuando dos o m s
a
usuarios est n accediendo a la base de datos y al menos uno de ellos est actualizando datos, puea
a
24
a a
se pueden realizar sobre la estructura fsica de la base de datos sin afectar a las vistas. Sin embargo,
25
3. Bases de datos
2. Un SGBD debe proporcionar una serie de herramientas que permitan administrar la base de datos de
modo efectivo. Algunas herramientas trabajan a nivel externo, por lo que habr n sido producidas
a
por el administrador de la base de datos. Las herramientas que trabajan a nivel interno deben ser
proporcionadas por el distribuidor del SGBD. Algunas de ellas son:
Herramientas para importar y exportar datos.
Herramientas para monitorizar el uso y el funcionamiento de la base de datos.
Programas de an lisis estadstico para examinar las prestaciones o las estadsticas de utilizaa
ci n.
o
Herramientas para reorganizaci n de ndices.
o
Herramientas para aprovechar el espacio dejado en el almacenamiento fsico por los registros
borrados y que consoliden el espacio liberado para reutilizarlo cuando sea necesario.
3.1.1.
La historia de SQL [Chamberlin, 1996], empieza en 1974 con la denici n, por parte de Donald
o
Chamberlin y de otras personas que trabajaban en los laboratorios de investigaci n de International
o
Business Machines (IBM), de un lenguaje para la especicaci n de las caractersticas de las bases de
o
taron algunos de sus clientes elegidos. Gracias al exito de este sistema, que no estaba todava comercia
lizado, tambi n otras compa as empezaron a desarrollar sus productos relacionales basados en SQL.
e
n
A partir de 1981, IBM comenz a entregar sus productos relacionales y en 1983 empez a vender DB2.
o
o
En el curso de los a os ochenta, numerosas compa as (por ejemplo Oracle y Sybase) comercializaron
n
n
productos basados en SQL, que se convierte en el est ndar industrial de hecho por lo que respecta a las
a
bases de datos relacionales.
En 1986, el ANSI adopt SQL como est ndar para los lenguajes relacionales y en 1987 se transformo
o
a
en est ndar ISO. Esta versi n del est ndar se denomin SQL/86. En los a os siguientes, este ha sufrido
a
o
a
o
n
diversas revisiones que han conducido, primero, a la versi n SQL/89 y, posteriormente, a la actual SQL/92.
o
26
cialmente el camino a la nter comunicabilidad entre todos los productos que se basan en el. Efectiva
mente, en general cada productor adopta e implementa en la propia base de datos solo el coraz n del
o
lenguaje SQL (el as llamado Entry level o al m ximo el Intermediate level), extendi ndolo de manera
a
e
individual seg n la propia visi n que cada cual tenga del mundo de las bases de datos.
u
o
Actualmente, esta en marcha un proceso de revisi n del lenguaje por parte de los comit s ANSI e ISO,
o
e
que debera terminar en la denici n de lo que en este momento se conoce como SQL3. Las caractersticas
principales de esta nueva versi n de SQL deberan ser su transformaci n en un lenguaje standalone y la
o
o
introducci n de nuevos tipos de datos m s complejos que permitan, por ejemplo, el tratamiento de datos
o
a
multimedia.
3.1.2.
SQlite
SQLite es un sistema de gesti n de bases de datos relacional compatible con ACID, y que est conteo
a
nida en una relativamente peque a librera en C. SQLite es un proyecto de dominio p blico creado por
n
u
D. Richard Hipp.
A diferencia de los sistemas de gesti n de base de datos cliente-servidor, el motor de SQLite no es un
o
proceso independiente con el que el programa principal se comunica. En lugar de eso, la librera SQLite
se enlaza con el programa pasando a ser parte integral del mismo. El programa utiliza la funcionalidad de
SQLite a trav s de llamadas simples a subrutinas y funciones. Esto reduce la latencia en el acceso a la base
e
de datos, debido a que las llamadas a funciones son m s ecientes que la comunicaci n entre procesos.
a
o
El conjunto de la base de datos (deniciones, tablas, ndices, y los propios datos), son guardados como
a
at micas, consistencia de base de datos, aislamiento, y durabilidad (ACID), triggers y la mayor parte de
o
las consultas complejas.
SQLite usa un sistema de tipos inusual. En lugar de asignar un tipo a una columna como en la mayor
parte de los sistemas de bases de datos SQL, los tipos se asignan a los valores individuales. Por ejemplo,
se puede insertar un string en una columna de tipo entero (a pesar de que SQLite tratar en primera
a
instancia de convertir la cadena en un entero). Algunos usuarios consideran esto como una innovaci n
o
que hace que la base de datos se mucho m s util, sobretodo al ser utilizada desde un lenguaje de scripting
a
de tipos din micos. Otros usuarios lo ven como un gran inconveniente, ya que la t cnica no es portable a
a
e
otras bases de datos SQL.
27
3. Bases de datos
3.2.
Modelado de datos
De acuerdo a Ullman [Ullman, 1999], un modelo de datos es un sistema formal y abstracto que permite describir los datos de acuerdo con reglas y convenios predenidos. Es formal pues los objetos del
sistema se manipulan siguiendo reglas perfectamente denidas y utilizando exclusivamente los operadores denidos en el sistema, independientemente de lo que estos objetos y operadores puedan signicar.
Segun Silberschatz [Silberschatz, 1998], un modelo de datos es una combinaci n de tres componeno
tes:
1. Una colecci n de estructuras de datos, los bloques constructores de cualquier base de datos que
o
conforman el modelo.
2. Una colecci n de operadores o reglas de inferencia, los cuales pueden ser aplicados a cualquier
o
instancia de los tipos de datos listados en el punto anterior, que permiten consultar o derivar datos
de cualquier parte de estas estructuras en cualquier combinaci n deseada
o
3. Una colecci n de reglas generales de integridad, las cuales, explcita o implcitamente, denen
o
un conjunto de estados consistentes estas reglas algunas veces son expresadas como reglas de
insertar-actualizar-borrar
3.2.1.
Los diagramas entidad / relaci n [Chen, 1976], a veces denominado por su siglas E-R, son una heo
rramienta para el modelado de datos de un sistema de informaci n. Estos diagramas expresan entidades
o
relevantes para un sistema de informaci n, sus interrelaciones y propiedades.
o
Los diagramas E-R son un lenguaje gr co para describir conceptos. Informalmente, son simples
a
dibujos o gr cos que describen la informaci n que trata un sistema de informaci n y el software que lo
a
o
o
automatiza.
Los elementos de dicho lenguaje (Figura 3.2) se describen a continuaci n, por orden de importancia:
o
28
(a) Entidad
(c) Jerarqua
(b) Relaci n
o
(e) Atributo
(f) Identicador
Entidades: Una entidad es cualquier objeto discreto sobre el que se tiene informaci n. Se represeno
ta mediante un rect ngulo o caja etiquetada en su interior mediante un nombre (Figura 3.2a).
a
Ejemplos de entidades habituales en los sistemas de informaci n son: factura, persona, albar n,
o
a
empleado, etc.
Relaciones: Una relaci n describe cierta interdependencia (de cualquier tipo) entre una o m s entidao
a
des. Se representa mediante un rombo etiquetado en su interior mediante un verbo (Figura 3.2b).
Adem s, dicho rombo debe unirse mediante lneas con las entidades que relaciona. Una relaci n no
a
o
tiene sentido sin las entidades que relaciona. Por ejemplos una persona (entidad) trabaja (relaci n)
o
para un departamento (entidad).
Las relaciones entre dos entidades se denominan binarias, las relaciones entre tres entidades se
denominan ternarias, y las relaciones entre cuatro o m s entidades se denominan m ltiples. Las
a
u
relaciones m ltiples son poco frecuentes, mientras que las relaciones binarias son habituales en
u
29
3. Bases de datos
cualquier problema.
Tambi n son posibles las relaciones reexivas donde una entidad se relaciona consigo misma.
e
Esto signica que una instancia de una entidad se relaciona con otra instancia distinta de la misma
entidad. Por ejemplo: una persona (entidad) contrae matrimonio (relaci n) con otra persona (la
o
misma entidad).
Atributos: Los atributos son propiedades relevantes propias de una entidad. Se representan mediante
un crculo o elipse etiquetado mediante un nombre en su interior (Figura 3.2e). Cuando un atributo
3.2.2.
Paso a tablas
Todo diagrama E-R se representa mediante una colecci n de tablas para su implementaci n en el
o
o
gestor apropiado.
Para cada una de las entidades y relaciones existe una tabla unica a la que se le asigna como nombre
el del conjunto de entidades y de las relaciones respectivamente, cada tabla tiene un n mero de columnas
u
que son denidas por la cantidad de atributos y las cuales tienen el nombre del atributo.
Representaci n tabular de los conjuntos de entidades fuertes. Sea E un conjunto de entidades fuertes
o
con los atributos descriptivos {a1 , a2 , , an }. Esta entidad se representa mediante una tabla llamada E con n columnas distintas, cada una de las cuales corresponde a uno de los atributos de E.
Cada la de la tabla corresponde a una entidad del conjunto de entidades E.
30
Para cada conjunto de entidades de la base de datos y para cada conjunto de relaciones de la base de
datos hay una unica tabla a la que se asigna el nombre del conjunto de entidades o del conjunto de rela
ciones correspondiente. Cada tabla tiene varias columnas, cada una de las cuales tiene un nombre unico.
Las restricciones especicadas en un diagrama E-R, tales como las claves primarias y las restricciones de
cardinalidad, se corresponden con restricciones sobre las tablas generadas a partir del diagrama E-R.
Las restricciones especicadas en un diagrama E-R, tales como las claves primarias y las restricciones
de cardinalidad, se corresponden con restricciones sobre las tablas generadas a partir del diagrama E-R.
3.3.
Las bases de datos normalmente son accedidas por varios usuarios por lo que el SGBD debe proporcionar t cnicas que permitan restringir a algunos usuarios o grupos de usuarios el acceso a determinadas
e
partes de la base de datos. Esto es especialmente importante cuando se trata de organizaciones que cuentan con una gran base de datos que almacena los datos de distintas secciones de la organizaci n. Para
o
ello, los SGBD suelen contar con un subsistema de seguridad y autorizaci n que asegura la seguridad de
o
la base de datos frente accesos no autorizados. Estos mecanismos de seguridad suelen ser de dos tipos:
3. Bases de datos
Mecanismos de seguridad obligatorios. Permiten denir varios niveles de seguridad para los objetos de
la base de datos, de forma que los usuarios pueden utilizar s lo los elementos que est n en su nivel
o
a
de seguridad o inferior.
Otro problema de seguridad es el de evitar que personas no autorizadas tengan acceso al SGBD. El
mecanismo de seguridad de un SGBD debe incluir formas que permitan restringir el acceso al sistema,
esa funci n se denomina control de acceso y est basado en el uso de cuentas de usuario.
o
a
El administrador de la base de datos (DBA) es la persona responsable de la base de datos y entre sus
obligaciones se encuentra la de conceder privilegios a los usuarios que necesitan utilizar el sistema. El
DBA tiene una cuenta de superusuario que ofrece privilegios no disponibles para las cuentas convenciona-
les. Entre estos privilegios se encuentran el de creaci n de cuentas, concesi n y revocaci n de privilegios,
o
o
o
y asignaci n de niveles de seguridad.
o
De esta forma, todas las personas que deseen acceder a la base de datos, tendr n que solicitar al
a
DBA
la creaci n de una cuenta de usuario con un nombre de usuario y una contrase a. El usuario utio
n
lizar estos datos y podr acceder a la base de datos siempre que el SGBD valide dicha conexi n. El
a
a
o
SGBD podr guardar todas las operaciones que se realicen sobre la base de datos, de forma que se puedan
a
detectar anomalas en el acceso o en la modicaci n de los datos. Estas operaciones son guardadas en
o
el registro del sistema (log) y el n mero de entradas correspondientes a operaciones realizadas sobre la
u
base de datos depender del grado de detalle con el que se quieran registrar las operaciones sobre la base
a
de datos.
32
Captulo 4
Proceso de desarrollo
En algunos casos la generaci n de una aplicaci n software consiste en la codicaci n del programa
o
o
o
y, en casos m s avanzados, un peque o documento resumiendo la funcionalidad del c digo. Esta falta de
a
n
o
formalizaci n del proceso produce sistemas poco robustos y difciles de mantener. Seg n se incrementa
o
u
el tama o del programa, al a adir nueva funcionalidad, resulta cada vez m s complicado comprender el
n
n
a
funcionamiento del sistema, debido a las m ltiples interrelaciones existentes entre los distintos compou
nentes que quedan adem s completamente ocultas en el c digo.
a
o
El problema se agrava cuando en el desarrollo del sistema interviene un grupo de personas o es necesario que alguien utilice la funcionalidad implementada. Al no existir documentaci n suciente sobre el
o
proceso de desarrollo del sistema, son necesarias reuniones para aclarar la funcionalidad y la aparici n
o
de continuas inconsistencias que ocasionan grandes p rdidas de tiempo. En estas condiciones es posible
e
que la realizaci n del sistema sea inviable. Para evitar estos problemas es necesario seguir un proceso de
o
desarrollo en el cual se denan los hitos intermedios que deben alcanzarse hasta la obtenci n del sistema
o
total. Seg n se avanza en el proceso se obtiene el sistema y un conjunto de productos auxiliares (habiu
tualmente documentaci n) que permiten denir de forma completa dicho sistema, permitiendo a terceras
o
personas comprender su funcionamiento y, por tanto, facilitar la inclusi n de nuevos componentes en el
o
grupo de desarrollo o que terceros puedan utilizar el software desarrollado.
Asimismo se facilita el establecimiento de puntos de control para vericar la correcci n del sistema
o
en cada hito y tomar las acciones correctoras oportunas lo antes posible.
En la Figura 4.1 se muestra una visi n general del proceso de desarrollo. En primer lugar, est n las
o
a
necesidades, expresadas como requisitos del sistema, es decir, el problema que el sistema debe resolver,
por otro lado, est toda la l gica de la aplicaci n, es decir, todo el mecanismo que se va a llevar a cabo
a
o
o
para realizar el proyecto. En esta parte se utilizar n una serie de tecnologas y lenguajes.
a
33
4. Proceso de desarrollo
Por ultimo ,se tendr el resultado nal que, en este caso, es una aplicaci n va web, la cual estar prea
o
a
parada para su utilizaci n.
o
Requisitos
Sistema
Software
4.1.
Ciclo de vida
El ciclo de vida determina las fases que deben llevarse a cabo para la realizaci n del proyecto desde
o
que se plantea el problema (habitualmente por parte del cliente) hasta que es resuelto por un sistema
inform tico. Los ciclos de vida suelen asociarse al proceso de desarrollo software pero, debido a la
a
evoluci n de los sistemas inform ticos, actualmente tienden a aplicarse a todo el proceso del desarrollo
o
a
inform tico. Existen m ltiples ciclos de vida que abarcan diversos problemas seg n sus caractersticas.
a
u
u
Por ello tambi n existen diversas clasicaciones, siendo una de las posibles la clasicaci n por el grado
e
o
de incertidumbre que admiten.
sis
li
de
sg
Pla
rie
ni
fic
ac
i
n
An
Segundo ciclo
os
Primer ciclo
Esencia
ra
nie
ge
In
Fases
n
ci
ua
al
Ev
Cascada
Espiral
Bsqueda
Grado de incertidumbre
Tamao pequeo
Problema claramente definido.
Requisitos estables
Experiencia del equipo de
desarrollo en las tcnicas
Tamao medio.
Problema mal definido.
Requisitos variables
Experiencia insuficiente del
equipo de desarrollo.
Problema prcticamente
indefinido
Imposible generar requisitos.
No existen referencias similares.
34
4.1.1.
En la Figura 4.2, se plantean los ciclos de vida m s usuales que mejor se adaptan a las caractersticas
a
del sistema a desarrollar. Estos ciclos de vida se estructuran en diversas fases que pueden usarse de
referencia para posteriores desarrollos, aunque es necesario tener un conocimiento suciente de cada
uno de ellos para poder utilizarlos de forma adecuada.
4.1.1.1.
Secuencial o en cascada
Se trata de la primera formalizaci n del proceso de desarrollo software propuesta por Royce [Royce,
o
1970], introduciendo una cierta disciplina en la ingeniera del software que permite corregir algunas
IMPLEMENTACIN Y
PRUEBA
INTEGRACIN Y
PRUEBA
OPERACIN Y
MANTENIMIENTO
Modela el ciclo de vida cl sico (ingeniera del sistema, an lisis, dise o, codicaci n, pruebas y
a
a
n
o
mantenimiento) con un enfoque secuencial en el que cada fase es completamente nalizada antes de
comenzar la siguiente. Esto es posible unicamente si el sistema a desarrollar esta jo desde el inicio, es
decir, los requisitos son estables.
Debido a la evoluci n de las tecnologas y el mayor tama o de los proyectos junto a la aparici n
o
n
o
de requisitos variables, se introduce una re-alimentaci n al nalizar cada fase que palia levemente los
o
problemas del ciclo de vida en estas circunstancias. A pesar de la re-alimentaci n, el ciclo de vida es
o
bastante inexible, siendo muy complicado introducir cambios de forma sencilla en el sistema.
35
4. Proceso de desarrollo
4.1.1.2.
Prototipado
El prototipado [Gomma, 1995], surge como respuesta a los requisitos variables producidos por la
existencia de partes mal denidas o mal comprendidas. Para esas partes se construye un prototipo, que
puede ser en papel o computadora, centrado en la interfaz hombre-sistema, en alguna funcionalidad o
bien puede simular una parte del sistema real para comprobar su adecuaci n para el usuario.
o
Especificaciones
incompletas
Seleccin del
prototipo
Especificaciones
completas
Desarrollo del
prototipo
Evaluacin del
prototipo
4.1.1.3.
Espiral
El ciclo de vida en espiral [Boehm, 1981], se basa en sucesivos ciclos de experimentaci n y aprendio
zaje, a trav s de los cuales se incrementa la funcionalidad, dando lugar a sucesivas versiones del software
e
cada vez m s completas.
a
La primera iteraci n se centra en la parte fundamental del sistema y las sucesivas iteraciones conso
truyen el sistema, sobre la base formada por los ciclos previos, de forma incremental.
36
Evaluacin
Planificacin
Madurez
Tiempo
Aplicacin de
la alternativa
Toma de
decisiones
En cada ciclo se plantean cuatro fases (planicaci n, an lisis de riesgos, ingeniera y evaluaci n) que
o
a
o
recubren e incrementan las tradicionales. Al incluir en cada ciclo el an lisis de riesgos y la evaluaci n
a
o
junto al desarrollo incremental, es posible responder a los distintos riesgos que plantea la existencia de
incertidumbre en los desarrollos tomando las acciones correctoras necesarias.
Bas ndose en este esquema de sucesivas iteraciones surgen dos modelos:
a
Incremental: Debido a las necesidades variables, el problema no se trata como un todo, sino que se
realiza el desarrollo completo de un subconjunto y seguidamente se construye sobre este otro
subconjunto, incrementando as el sistema.
Evolutivo: Al igual que el incremental, se plantea un desarrollo por fases, pero en este caso variando
lo realizado, mientras que crece poco a poco hasta lograr el sistema requerido. Su mayor inconveniente es que se plantea desde un inicio la modicaci n de lo realizado en las primeras fases.
o
El ciclo de vida evolutivo permite un desarrollo m s exible que el incremental, puesto que pera
mite realizar una b squeda de la soluci n retract ndose (modicando) cuando se detecta una gran
u
o
a
desviaci n entre el sistema desarrollado y el requerido.
o
Un enfoque err neo del desarrollo en espiral es considerar que cada ciclo equivale a una cascada.
o
La cascada avanza todo el desarrollo, por lo que es imposible realizar ajustes correctivos puesto que ya
ha sido desarrollada toda la fase para todo el sistema. La espiral por su parte solo realiza una parte del
sistema, que puede incluso no ser ninguna actividad de ingeniera de software como aprender nuevas
t cnicas.
e
37
4. Proceso de desarrollo
4.1.2.
Debido a las caractersticas del sistema, se plantea, por lo tanto, un ciclo de vida con incertidumbre
media y, m s concretamente, el ciclo de vida incremental, con el que se crear el sistema partiendo de
a
a
sus piezas base hasta obtener el sistema completo.
Al plantear el desarrollo de esta manera, es posible admitir cierto grado de incertidumbre, facilitando la absorci n de peque os cambios en el mismo como se ver` m s adelante en la descripci n del
o
n
a a
o
desarrollo.
Los principales riesgos a priori del sistema son:
Desconocimiento de las nuevas t cnicas, lo que conlleva un periodo de aprendizaje y adaptaci n.
e
o
Posibles variaciones en las especicaciones, que repercutir n en el resto del sistema
a
4.2.
actividades que pueden realizarse en cada fase, las cuales deben adaptarse seg n las condiciones del
u
proyecto que se est llevando a cabo. Las fases que se plantean son:
e
3. Instalaci n
o
La notaci n que se usa para los distintos modelos, tal y como se ha dicho anteriormente, es la proporo
cionada por UML, que se ha convertido en el est ndar de facto en cuanto a notaci n orientada a objetos.
a
o
El uso de UML permite integrar con mayor facilidad en el equipo de desarrollo a nuevos miembros y
compartir con otros equipos la documentaci n, pues es de esperar que cualquier desarrollador versado
o
en orientaci n a objetos conozca y use UML (o se est planteando su uso).
o
e
El enfoque que toma es el de un ciclo de vida iterativo incremental, el cual permite una gran exibilidad a la hora de adaptarlo a un proyecto y a un equipo de desarrollo especcos. El ciclo de vida
est dirigido a la interfaz hombre - m quina. As no se pierde de vista la motivaci n principal que debera
a
a
estar en cualquier proceso de construcci n de software: el resolver una necesidad del usuario/cliente.
o
4.2.1.
El proceso a seguir para realizar desarrollo orientado a objetos es complejo. Este proceso est formaa
do por una serie de actividades y sub-actividades, cuya realizaci n se va repitiendo en el tiempo aplicadas
o
a distintos elementos.
En este apartado se va a presentar una visi n general para poder tener una idea del proceso a alto
o
nivel. Las tres fases al nivel m s alto son las siguientes:
a
4. Proceso de desarrollo
Alcances y
objetivos
Fases:
Inicio
Versin
beta
Arquitectura
Elaboracin
Iteraciones:
Construccin
Iteracin
Iteracin
Iteracin
Versin
final
Transicin
Iteracin
Requerimientos
Entregas
internas
Anlisis y diseo
Codificacin
Disciplinas:
Prueba
Admin. proyecto
Gestin configuracin
y cambio
De ellas, la fase de construcci n es la que va a consumir la mayor parte del esfuerzo y del tiempo
o
en un proyecto de desarrollo. Para llevarla a cabo se va adoptar un enfoque iterativo, tomando en cada
iteraci n un subconjunto de los requisitos (agrupados seg n casos de uso) y llev ndolo a trav s del dise o
o
u
a
e
n
de alto y bajo nivel hasta la implementaci n y pruebas, tal y como se muestra en la Figura 4.6.
o
El sistema va creciendo incrementalmente en cada ciclo. Con esta aproximaci n se consigue dismio
nuir el grado de complejidad que se trata en cada ciclo, y se tiene pronto en el proceso una parte del
sistema funcionando que se puede contrastar con el usuario/cliente.
4.2.2.
UML
tema software orientado a objetos ([Ferr Grau, 2003]). Se ha convertido en el est ndar de facto de la
e
a
industria, debido a que ha sido impulsado por los autores de los tres m todos m s usados de orientae
a
ci n a objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh. Estos autores fueron contratados por la
o
empresa Rational Software Co, para crear una notaci n unicada en la que basar la construcci n de sus
o
o
herramientas CASE. En el proceso de creaci n de UML han participado, no obstante, otras empresas de
o
40
gran peso en la industria como Microsoft, Hewlett-Packard, Oracle o IBM, as como grupos de analistas
y desarrolladores.
Esta notaci n ha sido ampliamente aceptada debido al prestigio de sus creadores y debido a que
o
incorpora las principales ventajas de cada uno de los m todos particulares en los que se basa (principale
mente Booch,OMT y OOSE). UML ha puesto n a las llamadas guerras de m todos que se han mantenido
e
a lo largo de la d cada de los 90, en las que los principales m todos sacaban nuevas versiones que ine
e
corporaban las t cnicas de los dem s. Con UML se fusiona la notaci n de estas t cnicas para formar
e
a
o
e
una herramienta compartida entre todos los ingenieros software que trabajan en el desarrollo orientado a
objetos.
Diagramas de
secuencias
Diagramas de
Casos de uso
Diagramas de
clases
Datos
Modelo
Diagramas de
colaboracin
Diagramas de
estados
Diagramas de
actividad
Diagramas de
objetos
Diagramas de
componentes
secuencias
Diagramas de
distribucin
4.2.3.
Hoy en da, con la r pida expansi n de Internet y los avances en el area de las tecnologas web,
a
o
han surgido un nuevo tipo de aplicaciones en estos entornos, cada vez m s complejas y din micas,
a
a
com nmente conocidas como aplicaciones web. Adem s, debido al acelerado crecimiento y la alta comu
a
41
4. Proceso de desarrollo
petitividad de las actividades comerciales en la Red, estos sistemas son construidos en periodos de tiempo
muy cortos, sin el apoyo de herramientas de trabajo adecuadas y utilizando soluciones ad-hoc, lo que
est llevando a construir sistemas software de baja calidad y de difcil mantenimiento y evoluci n.
a
En los ultimos a os han surgido gran cantidad de aproximaciones metodol gicas (OOHDM, WebML,
n
o
UWE, WSDM, AutoWeb, etc.) que intentan ayudar en la sistematizaci n de la construcci n de soluciones en
o
o
+ media, es decir, navegaci n + multimedia) y funcionales, dando soporte a la gesti n de usuarios (dio
o
ferentes tipos, adaptaci n, personalizaci n, etc.). Adem s, se est n intentando denir marcos de trabajo
o
o
a
a
integrados que proporcionen herramientas adecuadas para dar soporte a la construcci n de estos sistemas
o
en todas sus fases. Como resultado de estos trabajos, surge lo que tambi n hoy en da est acu ado como
e
a
n
Ingeniera web.
La intenci n es denir un m todo de desarrollo que permita especicar sistemas software para amo
e
bientes web que capture las necesidades de estos sistemas web, mediante especicaciones conceptuales
y permita obtener prototipos operacionales a partir de estas especicaciones de manera autom tica.
a
Para conseguirlo, se ha extendido un m todo orietnado a objetos existente, OO-Method, que permite
e
capturar las propiedades funcionales del sistema que se consideran relevantes para construir una especicaci n textual OO y formal de manera autom tica. En este contexto se han concentrado muchos esfuerzos
o
a
hacia el desarrollo de nuevos modelos para enriquecer este m todo de producci n de software orientado
e
o
a objetos con la expresividad necesaria para especicar caractersticas navegacionales y de presentaci n
o
de informaci n orientadas a las aplicaciones web.
o
Estas especicaciones formales constituyen un repositorio de informaci n de alto nivel del sistema
o
que ser utilizado como entrada a un compilador de modelos conceptuales, que utilizando una estrategia
a
de traducci n basada en patrones (de la especicaci n a la implementaci n), hacen posible la conso
o
o
trucci n de una implementaci n operacional, generando un prototipo del sistema completo (incluyendo
o
o
caractersticas est ticas y din micas) en la plataforma destino del sistema. Esta extensi n del m todo
a
a
o
e
OO-Method con capacidades navegacionales y de presentaci n es lo que llamamos OOWS.
o
4.2.4.
Modelo de Navegaci n
o
En este punto, se deben captar los requisitos de navegaci n de la aplicaci n. Para ello, se introduce
o
o
el modelo de navegaci n que permite dar una vista navegacional (mapa navegacional) sobre el diagrama
o
de clases de OO-Method para cada tipo de usuario que pueda interactuar con el sistema.
Esta vista proporcionar una estructura de accesibilidad (deniendo el conjunto posible de caminos
a
42
de navegaci n) en funci n del tipo de usuario. As la sem ntica navegacional de las aplicaciones web se
o
o
a
captura en funci n de cada agente del sistema identicado, permitiendo una personalizaci n a nivel de
o
o
modelado conceptual del acceso en funci n de las necesidades de cada tipo de usuario. Para construir
o
este modelo, se realizan 2 tareas:
1. Clasicaci n e Identicaci n de usuarios. Se realiza un estudio de los diferentes potenciales tipos
o
o
de usuario que pueden interactuar con el sistema y sus interrelaciones.
2. Construcci n de los mapas navegacionales. Para cada usuario detectado, se construye su vista
o
navegacional del sistema (basado en el modelo del dominio denido previamente).
4.2.5.
Modelo de Presentaci n
o
Una vez denido el modelo de navegaci n es necesario especicar las caractersticas de presentaci n
o
o
del sistema. Para este prop sito se introduce el modelo de presentaci n, que complementa la informaci n
o
o
o
capturada en el modelo de navegaci n. Este modelo utiliza los nodos o contextos navegacionales como
o
entidades b sicas para denir las propiedades de presentaci n de informaci n.
a
o
o
43
Parte III
Captulo 5
o
el tiempo y coste estimados. Para determinar las tareas que deben de ser llevadas a cabo es necesario
seguir un proceso de desarrollo software, adapt ndolo seg n se estime conveniente al proyecto en el cual
a
u
se aplique.
Una de estas tareas es la documentaci n. La documentaci n asociada al proyecto debe permitir coo
o
nocer en todo momento el estado en el que se encuentra el sistema pero su generaci n no debe ser una
o
sobrecarga innecesaria durante el desarrollo.
El primero de los documentos a desarrollar es la especicaci n de requisitos software. Este documeno
to tiene como objetivo denir, de forma clara y no ambigua, las caractersticas y cualidades del sistema
software a desarrollar, siendo el punto de partida del proyecto y el contrato con el cliente. El documento
redactado para tal prop sito sigue una normativa est ndar [IEEE 830.1998].
o
a
Como se indic en la Secci n 4.1, se ha empleado un ciclo en espiral realizando varias iteraciones.
o
o
En alguna de ellas los requisitos fueron alterados por lo que se expone el conjunto nal de requisitos tras
todas las iteraciones realizadas.
Los requisitos se han dividido en bloques sem nticos: Funcionalidad, requisitos tecnol gicos y resa
o
tricciones del sistema. Cada requisito es numerado para facilitar la trazabilidad.
47
5.1.
Funcionalidades
5.1.1.
Autenticaci n
o
Requisito 5.1.1
Autenticar (log in)
El sistema deber pedir autenticaci n. Se validar el acceso mediante el usuario y la contrase a. En
a
o
a
n
el caso de que un usuario sea completamente nuevo para el sistema debe registrarse antes de acceder a
las funcionalidades del mismo.
Si un usuario se autentica correctamente, abre una sesi n con el sistema. Una vez autenticado apareo
cer una pantalla con todas las operaciones disponibles. Dependiendo de los roles que tenga la persona
a
asignados se mostrar n unas operaciones u otras.
a
5.1.2.
Gesti n de usuarios
o
Requisito 5.1.2
Tipos de Usuarios
En el sistema, van a ver tres tipos de usuarios: el coordinador, el conductor y el profesor. Cada uno
de ellos tendr una serie de funcionalidades que se pueden ver en la Tabla 5.1.
a
Funcionalidades
Coordinador
Profesor
Conductor
Alta usuario
Si
No
No
Baja usuario
Si
No
No
Ver usuarios
Si
No
No
Alta colegio
Si
No
No
Alta visita
Si
No
No
Si
No
No
Listar colegios
Si
No
No
Alta visita
Si
No
No
Buscar visita
Si
Si
Si
5.1. Funcionalidades
Requisito 5.1.4
Modicar usuarios existentes
Los coordinadores del sistemas podr n cambiar cualquier perl de los usuarios registrados. Un usuaa
rio ordinario solo podr cambiar su contrase a.
a
n
Requisito 5.1.5
Eliminar usuarios existentes
Los coordinadores pueden eliminar los perles de sus usuarios. Realmente, eliminar el usuario es
inhabilitar su acceso al sistema, puesto que la informaci n no se eliminar realmente. El coordinador
o
a
podr rehabilitar a un usuario.
a
Los usuarios no podr n borrar su propio perl.
a
Requisito 5.1.6
Listar usuarios
El sistema deber ser capaz de listar a todos los usuarios de cada facultad. En esa lista se mostrar n
a
a
tanto los usuarios activos y inactivos.
Requisito 5.1.7
Dar de alta a personas de contacto
Los coordinadores del sistema deben poder dar de alta a personas de contacto para los colegios, cada
colegio puede tener mas de una persona de contacto. Una persona de contacto solamente estar asociada
a
a un unico colegio.
Requisito 5.1.8
Modicar personas de contacto
Los coordinadores del sistemas podr n modicar los perles de las personas asociadas a los colegios.
a
Requisito 5.1.9
Eliminar personas de contacto
Los coordinadores del sistema podr n dar de baja a personas de contacto de un colegio. Al igual que
a
con los usuarios, no se borra su perl sino que se desactiva.
5.1.3.
Gesti n de grupos
o
Requisito 5.1.10
Dar de alta grupos
Los coordinadores del sistema deben poder dar de alta a grupos de usuarios. Cada grupo que se cree
en el sistema solamente podr estar asociado a una sola facultad.
a
49
5.1.4.
Gesti n de colegios
o
Requisito 5.1.14
Dar de alta colegios
Los coordinadores del sistema deben poder dar de alta a colegios dentro del sistema.
Requisito 5.1.15
Asignar facultades a colegios
Los coordinadores del sistema podr n asignar facultades a colegios, cambiar la facultad asociada al
a
colegios y eliminar la facultad asignada a los colegios 1 . Un colegio solamente estar asociado a una
a
unica facultad.
Requisito 5.1.16
Modicar colegios
Los coordinadores del sistema podr n modicar los perles que tienes los colegios en el sistema.
a
Requisito 5.1.17
Eliminar colegios
Los coordinadores del sistema podr n eliminar colegios en el sistema.
a
Requisito 5.1.18
Buscar colegios
1 Este
requisito no se encuentra totalmente implementado. Actualmente el sistema asigna facultades a colegios, quedando
50
5.1.5.
Gesti n de visitas
o
Requisito 5.1.20
Dar de alta visitas
Los coordinadores del sistema deben poder dar de visitas a colegios dentro del sistema.
Requisito 5.1.21
Modicar una visita
Los coordinadores del sistema podr n modicar los datos de una visita creada en el sistema
a
Requisito 5.1.22
Eliminar visitas
Los coordinadores del sistema podr n eliminar una visita en el sistema.
a
Requisito 5.1.23
Buscar visitas
Los usuarios del sistema podr n buscar las visitas.
a
5.2.
Requisito 5.2.1
Control de Usuarios
El sistema deber llevar un control de usuarios mediante el mecanismo de ACL.
a
Requisito 5.2.2
Independencia de la base de datos
No debe haber dependencia de ning n SGBD.
u
Requisito 5.2.3
Generaci n de informes
o
51
5.3.
Requisito 5.3.1
Sistema modulable y extensible
El sistema deber ser modular y f cilmente extensible. La inclusi n de nuevas funcionalidades dea
a
o
ber ser sencilla.
a
Requisito 5.3.2
Rapidez
El sistema deber ser sucientemente r pido y ecaz.
a
a
Requisito 5.3.3
Acceso al sistema
El sistema no permitir el acceso a las personas de contactos de los distintos colegios.
a
2 Este
requisito no se encuentra totalmente implementado. Actualmente el sistema permite rellenar informes y almacenarlos
en la base de datos, pero no tiene implementado ning n mecanismo para generarlo, por ejemplo, a PDF.
u
52
Captulo 6
Diseno de la Aplicaci n
o
El prop sito del dise o es de crear una arquitectura para la naciente implementaci n, [...]
o
n
o
el dise o arquitectural s lo puede comenzar una vez que el equipo tenga un entendimiento
n
o
razonable de los requerimientos del sistema. [...] El dise o, como el an lisis, nunca termina
n
a
realmente hasta que el sistema nal es entregado. Durante esta fase, se alcanza un cierto
grado de culminaci n al poner en su lugar la mayora de las decisiones estrat gicas de dise o
o
e
n
y al establecer polticas para diversos problemas t cticos. [...] El dise o se enfoca en la
a
n
estructura, est tica y din mica, su prop sito principal es de crear el esqueleto concreto del
a
a
o
sistema sobre del cual todo el resto de la implementaci n se basa. [Grady Booch, 1999]
o
Estas palabras denen claramente qu es el dise o. La creaci n de la estructura b sica del sistema es la
e
n
o
a
tarea clave, aunque tambi n se buscan otras cosas, en particular patrones que simpliquen el dise o y
e
n
posibilidades de reuso entre otras.
La parte dise o se ha dividido en dos bloques generales, por un lado est el dise o software y por otro
n
a
n
el dise o de datos. En el dise o software se va a comenzar describiendo los casos de uso cuya funci n
n
n
o
es cubrir toda la funcionalidad del sistema y su interacci n, para continuar con el modelo del dominio
o
que reeja la identicaci n de las distintas entidades necesarias, y por ultimo se describir el modelo
o
a
conceptual de la aplicaci n web.
o
En la parte de dise o de datos, se representa el modelo entidad/relaci n de la aplicaci n y su paso a
n
o
o
tablas para la base de datos.
53
6. Dise o de la Aplicaci n
n
o
6.1.
Diseno Software
La exposici n del dise o incluye una visi n general del sistema para posteriormente detallar los
o
n
o
puntos fundamentales del mismo. Como en el caso de lo requisitos, se muestra el dise o alcanzado tras
n
todas las iteraciones realizadas.
En la Figura 6.1 se muestra una visi n general por capas de la aplicaci n. En la parte superior se
o
o
encuentra la capa de presentaci n, es decir, la interfaz. Esta capa se subdivide a su vez en dos capas m s
o
a
especcas; el HTML y las plantillas Smarty. Mediante estas capas, se generan las distintas p ginas web.
a
Una capa por debajo se encuentra la l gica de la aplicaci n. En esta capa se incluye toda la funcioo
o
nalidad de todas las operaciones que soportar el sistema.
a
Por ultimo se encuentra la capa de abstracci n de almacenamiento, que proporciona acceso a la base
o
de datos. Esta capa a su vez tiene subcapas, la primera de ellas; SGBD, es la encargada de denir el lenguaje con el que se van a realizar las consultas a la base de datos, en el caso el SQL, y m s concretamente
a
SQLite. Seguidamente, hay una subcapa de abstracci n de la bases de datos donde se encuentra el PEAR,
o
y que como se puede ver en la gura esta formado por el m dulo DB TABLE, el PEAR DB y el MDB2.
o
La idea es tener una capa entre sistema y la base de datos que oculte la complejidad de la misma y
toda dependencia con ella. Si se programara usando directamente las sentencias (o funciones) que provee
el propio lenguaje, se estara fuertemente vinculado al gestor de la base de datos.
6.1.1.
Casos de uso
Un caso de uso describe a los actores utilizando un sistema para satisfacer un objetivo. Es una historia
o una forma particular de usar un sistema. Los casos de uso se corresponden con requisitos, en particular
requisitos funcionales.
N tese que UML no dene un formato para describir un caso de uso. Tan solo dene la representaci n
o
o
gr ca entre actores y funcionalidad en un diagrama: el diagrama de casos de uso. Sin embargo, junto a la
a
representaci n gr ca del caso de uso, cada uno de ellos dispone de una descripci n textual explicativa.
o
a
o
En el diagrama de casos de uso (Figura 6.2) se distinguen los actores (usuarios del sistema):
Coordinador: con privilegios para controlar todas las operaciones del sistema. Esta persona tiene permisos para realizar cualquier operaci n.
o
Profesor: encargado de realizar visitas a los distintos centros educativos.
Conductor: encargado de llevar al conductor a las visitas que tenga.
54
HTML
INTERFAZ
SMARTY
LGICA
APLICACIN
DB_TABLE
PEAR_DB
MDB2
BBDD
SGBD
BBDD
En cuanto a las funcionalidades que ofrece el sistema se dividen en grupos sem nticos:
a
Gesti n de usuarios: Incluye el alta, baja, consulta y modicaci n de usuarios y grupos. Tambi n ino
o
e
cluye la asignaci n de operaciones del sistema a los grupos.
o
Gesti n de colegios: Se gestiona todas las operaciones relacionadas con los colegios y de las personas
o
de contacto asociadas a ellos. Tambi n incluye la asignaci n de facultades a colegios 1 .
e
o
Gesti n de visitas: Incluye la parte de alta visita y consultar/buscar visita. Es posible consultar el coleo
gio donde se va a realizar la misma, la persona de contacto, el conductor y los informes oportunos.
1 No
55
6. Dise o de la Aplicaci n
n
o
SGV
Alta Usuario
Alta Grupo
Gestion Visitas
Ver Usuarios
Profesor
Autenticarse
Coordinador
Usuario
Conductor
Rellenar Informe
Buscar Visita
Gestionar Visitas
Alta Visita
Gestionar Colegios
Alta Colegio
Alta Persona
Contacto
Listar Colegios
6.1.2.
Modelo Conceptual
Una parte de la investigaci n sobre el dominio del problema consiste en identicar los conceptos
o
que lo conforman. Para representar estos conceptos se usa el diagrama de estructura est tica de UML,
a
que se denomina modelo conceptual. En este modelo se representan conceptos del mundo real, no de
componentes software.
El objetivo de la creaci n de un modelo conceptual es mejorar la comprensi n del problema. Por
o
o
tanto, a la hora de incluir conceptos en el modelo, es mejor incluir el mayor n mero posible para cubrir
u
el mayor espectro del conocimiento del problema.
La creaci n del modelo conceptual involucra los siguientes pasos:
o
56
vantes seg n la nalidad del mapa (por ejemplo, datos de poblaci n en un mapa de carreteu
o
ras), un modelo conceptual puede excluir conceptos en el dominio que no son pertinentes.
No a adir cosas inexistentes. Si algo no pertenece al dominio del problema no se a ade al
n
n
modelo.
A adir las asociaciones. Una asociaci n es una relaci n entre conceptos que indica una conexi n con
n
o
o
o
sentido y que es de inter s. Se incluyen en el modelo las asociaciones siguientes:
e
Asociaciones para las que el conocimiento de la relaci n necesita mantenerse por un cierto
o
perodo de tiempo (asociaciones necesita-conocer).
Una vez identicadas las asociaciones se representan en el modelo conceptual con la cardinalidad
adecuada.
A adir los atributos. Es necesario incorporar al modelo conceptual los atributos necesarios para satisn
facer las necesidades de informaci n. Los atributos deben tomar valor en tipos simples (n mero,
o
u
texto, etc.), pues los tipos complejos deberan ser modelados como conceptos y ser relacionados
mediante asociaciones.
Incluso cuando un valor es de un tipo simple es m s conveniente representarlo como concepto en
a
las siguientes ocasiones:
Se compone de distintas secciones. Por ejemplo: un n mero de tel fono, el nombre de una
u
e
persona, etc.
Tiene operaciones asociadas, tales como validaci n. Ejemplo: NIF.
o
Tiene otros atributos. Por ejemplo un precio de oferta puede tener fecha de n.
Es una cantidad con una unidad. Ejemplo: El precio, que puede estar en pesetas o en euros.
Representarlos en un diagrama.
57
6. Dise o de la Aplicaci n
n
o
Categora
Ejemplos
Ala - Avi n
o
ArtculoVenta - Venta
Artculo - Estantera
Pasajero Avi n
o
A es una descripci n de B
o
TrabajoReparaci n - RegistroReparaciones
o
A es registrado/archivado/capturado en B
Venta - TerminalCaja
A es un miembro de B
Cajero - Supermercado
Piloto - Compa a Aerea
n
Secci n - Supermercado
o
Mantenimiento - Compa a Aerea
n
A usa o gestiona B
Cajero - TerminalCaja
Piloto Avi n
o
A comunica con B
Cliente - Cajero
EmpleadoAgenciaViajes - Pasajero
A est junto a B
a
Ciudad - Ciudad
A posee B
Supermercado - TerminalCaja
Compa a A rea - Avi n
n
e
o
Tabla 6.1: Lista asociaciones tpicas
58
-coordinador
Coordinador
-nombre
-descripcion
-activo
+Guardar()
+Borrar()
+Editar()
Grupos
Conductor
-conductor
Usuarios
-grupos
-profesor
-nombre
-telefono
-fax
-correo
-direccion
-numero
-codigo_postal
+Guardar()
+Borrar()
+Editar()
Facultad
Profesor
-nombre
-apellidos
-cargo
-tipo_cargo
-fax
-correo
-login
-password
+Guardar()
+Borrar()
+Editar()
+Listar()
+CambiarContrasea()
+ActivarUsuario()
-colegios
+AsignarColegio()
Colegios
-nombre
-tipo_centro
-enseanza
-codigo_cam
-telefono
-fax
-correo
-web
-direccion
-numero
-tipo_via
-codigo_postal
-municipio
-distrito_municipal
-generico
-zona
+Editar()
+Guardar()
+Borrar()
+InsertarContacto()
+AsignarFacultad()
+AtaVisita()
-contacto
Persona Contacto
-visitas
Visitas
-tipo_charla
-proyector
-pantalla
-confimada
-ruta
-fecha
-hora
-alumnos_confirmados
-duraccion
-observaciones
+Guardar()
+Editar()
+Borrar()
+MostrarColegio()
+MostrarPersona()
+RellenarInforme()
+MostrarInforme()
59
6. Dise o de la Aplicaci n
n
o
6.1.3.
Como se coment en la Subsecci n 4.2.4, para contruir el modelo de navegaci n se van a realizar
o
o
o
dos tareas; la clasicaci n e identicaci n de los usuarios y la contrucci n de los mapas navegacionales.
o
o
o
6.1.3.1.
especicaciones navegacionales. Finalmente, cada tipo de agente puede ser de dos clases distintas:
Agentes instanciables. Los agentes de este tipo constituir n los usuarios que la aplicaci n web
a
o
reconocer . Pueden ser de dos tipos: (1) aquellos que necesitan identicarse en el sistema (rea
presentados con el smbolo y (2) aquellos que pueden conectarse al sistema sin identicarse
(smbolo ?). Para este sistema todos los usuarios necesitar n conectarse con el sistema.
a
Agentes abstractos. Este tipo de agente representa a agentes sin instancias directas. Es utilizado
para llevar a cabo los mecanismos de especializaci n.
o
o
y profesores. Todos estos usuarios precisan autenticaci n para entrar en el sistema y compartir n todos
o
a
ellos los mismos privilegios como personal de facultad. Sin embargo, cada uno de ellos tendr propiedaa
des de navegaci n diferentes al denir su mapa de navegaci n propio.
o
o
6.1.3.2.
La siguiente fase consiste en construir los mapas navegacionales, uno por cada agente (usuario). Estos
mapas se denen mediante un grafo dirigido en el que los nodos representan unidades de interacci n
o
con el usuario (gr camente representado usando la misma notaci n que los paquete UML) y los arcos
a
o
representan los caminos navegacionales v lidos entre nodos (representados mediante echas).
a
Coordinador
subsistema
COLEGIOS
subsistema
VISITAS
context
DATOS
E
context
CAMBIAR
PASSWORD
subsistema
USUARIO
context
GVC HOME
E
subsistema
VISITAS
E
context
DATOS
Conductor
context
CAMBIAR
PASSWORD
context
GVC HOME
E
subsistema
VISITAS
E
context
DATOS
context
CAMBIAR
PASSWORD
context
GVC HOME
6. Dise o de la Aplicaci n
n
o
denida en el diagrama de clases. Pueden ser de dos tipos:
Exploraci n (etiquetados con una E). Representan nodos alcanzables desde cualquier otro nodo.
o
Este tipo de contexto dene unos enlaces de navegaci n implcitos (lneas discontinuas) que surgen
o
del agente hasta el contexto. Uno de estos enlaces pueden marcarse como default o home (con
la etiqueta H), indicando que este contexto ser alcanzado directamente cuando el usuario se
a
conecte al sistema (contexto GVC home).
Secuencia (etiquetados con una S). Aquellos que s lo pueden alcanzarse a trav s de un detero
e
minado camino de navegaci n.
o
En el dise o de aplicaciones web complejas surge la necesidad de poder organizar o estructurar los
n
distintos contextos navegacionales que se hayan denido. Para ello se introduce una nueva primitiva,
el subsistema de navegaci n. Los subsistemas de navegaci n (estereotipados con la palabra reservada
o
o
( subsystem) )
(
)
de navegaci n que est n estrechamente relacionados entre s y que comparten propiedades navegacioo
a
nales (ver Figura 6.5a, subsistemas colegio, usuario, visita). De la misma manera que los contextos
navegacionales, los subsistemas de navegaci n pueden ser de dos tipos, de exploraci n o de secuencia,
o
o
seg n su alcanzabilidad.
u
Los enlaces navegacionales (arcos del grafo) representan la alcanzabilidad entre nodos navegacionales, indicando los caminos navegacionales v lidos por el sistema para un determinado usuario. Para
a
acceder al sisitema, el usuario deber identicarse como coordinador, conductor o profesor.
a
context
ALTA
COLEGIO
context
ALTA
VISITA
E
context
ALTA
PERSONA
CONTACTO
E
context
LISTAR
COLEGIOS
de alta una persona de contacto y por ultimo listar todos los colegios del sisitema.
6. Dise o de la Aplicaci n
n
o
E
Grupo
-nombre
-descripcion
-activo
+Guardar()
+Borrar()
+Editar()
Profesor
Profesor
Usuarios
Usuarios
*
Faculta
-grupos
-nombre
-telefono
-fax
-correo
-direccion
-numero
-codigo_postal
+Guardar()
+Borrar()
+Editar()
-nombre
-apellidos
-cargo
-tipo_cargo
-fax
-correo
-login
-password
+Guardar()
+Borrar()
+Editar()
+Listar()
+CambiarContrasea()
+ActivarUsuario()
-profesor
Conductor
Coordinador
* 1
Facultad
Grupos
-nombre
-descripcion
-conductor
-activo
+Guardar()
+Borrar()
*
+Editar()
1
-coordinador
-grupos
-nombre
-telefono
-fax
-correo
-direccion
-numero
-codigo_postal
+Guardar()
+Borrar()
+Editar()
-nombre
-apellidos
-cargo
-tipo_cargo
-fax
-correo
-login
-password
+Guardar()
+Borrar()
+Editar()
+Listar()
+CambiarContrasea()
+ActivarUsuario()
Conductor
Coordinador
Un contexto navegacional est compuesto por un conjunto de clases navegacionales, que hacen rea
ferencia a clases identicadas en el diagrama de clases. Con ellas se puede denir la visibilidad (vista)
ofertada al agente en este nodo, tanto de los atributos de la clase como de los servicios que puede activar.
En un contexto navegacional debe aparecer al menos una clase navegacional principal, llamada clase
directora grupo en el contexto GRUPO del subsistema USUARIO y opcionalmente otras que complementan
la informaci n de esta clase, llamadas clases complementarias (). Las clases navegacionales est n unidas
o
a
entre s por relaciones binarias unidireccionales que pueden ser denidas sobre una relaci n existente
o
entre las dos clases en el diagrama de clases.
Por ejemplo, en el subsistema USUARIO, se puede ver el contexto ALTA USUARIO que muestra informaci n relativa a los usuarios del sistema as como de los grupos.
o
6.1.4.
Modelo de Presentaci n
o
Como se coment en la Subsecci n 4.2.5, una vez denido el modelo de navegaci n se especican
o
o
o
las caractersticas de presentaci n del sistema. Este modelo utiliza los nodos o contextos navegacionales
o
como entidades b sicas para denir las propiedades de presentaci n de informaci n.
a
o
o
Facultad
-nombre
-telefono
-fax
-correo
-direccion
-numero
-codigo_postal
+Guardar()
+Borrar()
+Editar()
-colegios
Visitas
Colegios
Colegios
-nombre
-tipo_centro
-enseanza
-codigo_cam
-telefono
-fax
-correo
-web
-direccion
-numero
-tipo_via
-codigo_postal
-municipio
-distrito_municipal
-generico
-zona
+Editar()
+Guardar()
+Borrar()
+InsertarContacto()
+AsignarFacultad()
+AtaVisita()
-nombre
-tipo_centro
-enseanza
-codigo_cam
-telefono
-fax
-correo
-web
-direccion
-numero
-tipo_via
-codigo_postal
-municipio
-distrito_municipal
-generico
-zona
+Editar()
+Guardar()
+Borrar()
+InsertarContacto()
+AsignarFacultad()
+AtaVisita()
1
*
-visitas
-tipo_charla
-proyector
-pantalla
-confimada
-ruta
-fecha
-hora
-alumnos_confirmados
-duraccion
-observaciones
+Guardar()
+Editar()
+Borrar()
+MostrarColegio()
+MostrarPersona()
+RellenarInforme()
+MostrarInforme()
E
E
Persona Contacto
+AsignarColegio()
-contacto
-nombre
-tipo_centro
-enseanza
-codigo_cam
-telefono
-fax
-correo
-web
-direccion
-numero
-tipo_via
-codigo_postal
-municipio
-distrito_municipal
-generico
-zona
+Editar()
+Guardar()
+Borrar()
+InsertarContacto()
+AsignarFacultad()
+AtaVisita()
Colegios
Facultad
-nombre
-telefono
-fax
-correo
-direccion
-numero
-codigo_postal
+Guardar()
+Borrar()
+Editar()
-colegios
-nombre
-tipo_centro
-enseanza
-codigo_cam
-telefono
-fax
-correo
-web
-direccion
-numero
-tipo_via
-codigo_postal
-municipio
-distrito_municipal
-generico
-zona
+Editar()
+Guardar()
+Borrar()
+InsertarContacto()
+AsignarFacultad()
+AtaVisita()
Capa de presentaci n. Incluye la interfaz gr ca de usuario (en este caso, p ginas web) para interaco
a
a
tuar con el usuario (visualizando informaci n, proporcionando acceso a servicios y facilitando la
o
navegaci n).
o
Capa de aplicaci n. Esta capa implementa la l gica de negocio y la funcionalidad de consulta.
o
o
Capa de datos. Esta capa implementa el acceso a datos ocultando a las capas superiores detalles de los
repositorios de informaci n.
o
Partiendo del modelo de navegaci n, es posible obtener de forma sistem tica un esqueleto de una
o
a
aplicaci n web formado por un conjunto de p ginas web interconectadas entre s. Este conjunto de p gio
a
a
nas web dene la interfaz de usuario de la aplicaci n web para la navegaci n, la visualizaci n y el acceso
o
o
o
a su funcionalidad e informaci n.
o
A adiendo a esta informaci n la especicaci n construida en el modelo de presentaci n podr den
o
o
o
a
nirse un modo de visualizaci n de esta informaci n. Para construir este conjunto de p ginas, se ha
o
o
a
optado por utilizar HTML/CSS. El motivo principal de utilizar esta tecnologa ha sido la exibilidad que
nos aportan las hojas de estilo CSS para cambiar caractersticas est ticas de las p ginas web una vez
e
a
construidas.
65
6. Dise o de la Aplicaci n
n
o
E
Colegios
Facultad
-nombre
-telefono
-fax
-correo
-direccion
-numero
-codigo_postal
+Guardar()
+Borrar()
+Editar()
-colegios
1
*
-nombre
-tipo_centro
-enseanza
-codigo_cam
-telefono
-fax
-correo
-web
-direccion
-numero
-tipo_via
-codigo_postal
-municipio
-distrito_municipal
-generico
-zona
+Editar()
+Guardar()
+Borrar()
+InsertarContacto()
+AsignarFacultad()
+AtaVisita()
Visitas
Colegios
Visitas
-visitas
*
1
-tipo_charla
-proyector
-pantalla
-confimada
-ruta
-fecha
-hora
-alumnos_confirmados
-duraccion
-observaciones
+Guardar()
+Editar()
+Borrar()
+MostrarColegio()
+MostrarPersona()
+RellenarInforme()
+MostrarInforme()
-nombre
-tipo_centro
-enseanza
-codigo_cam
-telefono
-fax
-correo
-web
-direccion
-numero
-tipo_via
-codigo_postal
-municipio
-distrito_municipal
-generico
-zona
+Editar()
+Guardar()
+Borrar()
+InsertarContacto()
+AsignarFacultad()
+AtaVisita()
1
*
-visitas
-tipo_charla
-proyector
-pantalla
-confimada
-ruta
-fecha
-hora
-alumnos_confirmados
-duraccion
-observaciones
+Guardar()
+Editar()
+Borrar()
+MostrarColegio()
+MostrarPersona()
+RellenarInforme()
+MostrarInforme()
Los subsistemas unicamente modelan una agrupaci n l gica de contextos. Por tanto, las p ginas
o o
a
generadas a partir de ellos contendr n unicamente la implementaci n de un men a partir del cual poder
a
o
u
acceder a cada uno de los contextos de exploraci n contenidos en el subsistema.
o
En las siguientes guras, Figura 6.14 y Figura 6.15, se muestra las p ginas que se implementan a para
tir de los contextos navegacionales contenidos en los subsistema denidos en la Subsubsecci n 6.1.3.2.
o
66
6.1.5.
La interfaz de usuario es la forma en que los usuarios pueden comunicarse con una computadora, y
comprende todos los puntos de contacto entre el usuario y el equipo.
El dise o de la interfaz es uno de los elementos clave en la realizaci n del programa. Esta importancia
n
o
toma un relieve especial en las aplicaciones web. La interfaz de usuario puede denirse como:
Conjunto de trabajos y pasos que seguir el usuario, durante todo el tiempo que se relacione
a
con el programa , detallando lo que ver y escuchar en cada momento, y las acciones que
a
a
realizar , as como las respuestas que el sistema le dar [Perea, 1996].
a
a
Sus principales funciones son:
Manipulaci n de archivos y directorios
o
Herramientas de desarrollo de aplicaciones
Comunicaci n con otros sistemas
o
Informaci n de estado
o
Conguraci n de la propia interfaz y entorno
o
67
6. Dise o de la Aplicaci n
n
o
Coordinador
COLEGIOS
CAMBIAR
CONTRASEA
DATOS
USUARIOS
VISITAS
el men lateral, donde se encuentran las diferentes opciones con las que el usuario puede interaccionar
u
con el sistema.
Conductor / Profesor
VISITAS
DATOS
CAMBIAR
CONTRASEA
Cabecera
Cuerpo
Principal
Barra lateral
Contenido
Contenido
Nombre usuario
Facultades
Columna 1
Columna 2
Contenido
Contenido
Contenido
Menu
Contenido
Menu ppal
Submenu
Pie
6.1.5.1.
Diagrama de m dulos
o
Un diagrama de m dulos muestra la localizaci n de objetos y clases en m dulos del dise o fsico
o
o
o
n
de un sistema.Un diagrama de m dulos representa parte o la totalidad de la arquitectura de m dulos del
o
o
sistema.
Como se puede ver en la Figura 6.17, el m dulo principal de la aplicaci n es gvc.class.php, que
o
o
se encargar de inicializar todo el sistema. El resto son operaciones del sistema o bibliotecas ( PEAR,
a
Smarty).
En el dise o fsico se tiene por un lado los m dulos lib/*tablas.php, que contienen la informaci n
n
o
o
de las tablas del sistema, el m dulo lib/session.php, que contiene informaci n de la sesi n que se
o
o
o
esta llevando a cabo en la aplicaci n, el m dulo script.php, para la generaci n del c digo JavaScript
o
o
o
o
y AJAX y el m dulo index.php que se encarga de implementar el punto de entrada de la l gica de la
o
o
aplicaci n.
o
69
6. Dise o de la Aplicaci n
n
o
MDB.PHP
SMARTY.CLASS.PHP
DB/TABLE.PHP
SESSION.PHP
HTML/QUICKFORM.PHP
GVC.CLASS.PHP
INDEX.PHP
LIB/OPS/*.PHP
LIB/IMPARTEN.CLASS.PHP
LIB/SESSION.PHP
70
INDEX.TPL
SCRIPT.PHP
6.1.6.
Jerarqua de cheros
Otro punto interesante va a ser la estructura de cheros y directorios que se puede ver en la Figura 6.18:
Carpeta gvc. Esta es la carpeta principal o raz de la aplicaci n.
o
Carpeta cfg. Almacena informaci n de conguraci n.
o
o
Carpeta css. Es la carpeta donde se encuentran los cheros que denen el estilo de la aplicaci n.
o
Carpeta images. En esta carpeta se encuentran todas las im genes que se han utilizado en la aplicaa
ci n.
o
Fichero login. Este es el chero de la pantalla inicial, donde el usuario deber autenticarse para entrar
a
en el sistema.
Fichero index. Punto de acceso cuando el usuario est autenticado.
a
Fichero script. Generaci n del c digo JavaScript / AJAX necesario.
o
o
Carpeta lib . Contiene los cheros de bibliografa que implementan la l gica de aplicaci n y acceso
o
o
a datos.
Carpeta lng. Almacena deniciones del lenguaje para soporte multilenguaje.
Carpeta ops. Es una carpeta donde se encuentran todas las operaciones que se pueden hacer en
el sistema.
Carpeta tpl. En esta carpeta est n los esqueletos de presentaci n de cada una de las operacioa
o
nes. Por ejemplo, tendremos un chero UsuarioDetalles.tpl que va a denir la estructura o
forma que tendr el chero UsuarioDetalles.php.
a
Carpeta smarty. Esta carpeta contiene la informaci n de conguraci n para poder utilizar las
o
o
plantillas Smarty.
Carpeta Pear. Al igual que la carpeta anterior, esta carpeta contendr todos los m dulos PEAR
a
o
necesarios en nuestra aplicaci n.
o
6.2.
Diseno de datos
En este apartado, se analizar tanto el diagrama entidad / relaci n como su paso a tablas.
a
o
71
6. Dise o de la Aplicaci n
n
o
.WEB
GVC
lib
cfg
login
css
lng
index
Gvc.class
images
ops
Script
Session
XML_parser
colegios
script
screens
tpl
Tablas
script
ensenanzas
smarty
Pear
72
imparte
(0,N)
ENSEANZA
(0,N)
(1,1)
pertenece
(0,N)
COLEGIO
(1,1)
representa
VISITA
(0,N)
realiza
(1,N)
(1,N)
(1,N)
PERSONAL
PERSONA
CONTACTO
TIPO
USUARIO
(0,N)
(1,1)
INFORME VISITA
(0,N)
asociado a
pertenece
(1,1)
(0,N)
ESCUELA
(1,1)
asignado a
(0,N)
GRUPO
(0,N)
es
GRUPO GLOBAL
(1,1)
(0,N)
contiene
(0,N)
(1,1)
OPERACION
GLOBAL
es
(0,N)
OPERACIN
(ACL)
73
6. Dise o de la Aplicaci n
n
o
74
6.2.1.
En este caso, los datos se han modelado seg n el diagrama E/R mostrado en la Figura 6.19. Este
u
diagrma se compone de cuatro bloques b sicos:
a
Gesti n de los usuarios del sistema, la cual esta formada por la jerarqua USUARIO (Figura 6.20a).
o
Gesti n de los grupos que se crean en el sistema, junto con las operaciones que se asignan a cada
o
grupo (Figura 6.20b).
Gesti n de colegios, la cual engloba las ense anzas de cada colegio y la pertenencia con las escueo
n
las o facultades (Figura 6.20c).
Gesti n de las visitas (Figura 6.20d).
o
6.2.2.
Paso a tablas
Al igual que en el dise o E-R de la gura Figura 6.19, en el paso a tablas (Figura 6.21) se mantiene
n
los cuatro bloques principales.
75
76
id_opglobal
id_escuela
id_grupo
id_op
ejecucion
admon
id_global
PK,FK2
PK,FK1
PK,FK1
PK,FK2
FK1
acl
nombre
descripcion
PK
id_escuela
escuelas
nombre
descripcion
grupoactivo
id_grupo
id_escuela
id_global
grupos
PK
PK,FK2
PK,FK1
operaciones
id_op
id_opglobal
nombre
id_global
gruposglobales
PK
nombre
id_opglobal
opglobales
PK
PK,FK1
PK
PK
id_global
colegios
PK,FK1
PK,FK2
id_colegio
id_ensenanza
imparten
nombre
tipo_centro
tipo_centro_id
ensenanza
codigo_cam
telefono
fax
correo
web
direccion
tipo_via
numero
codigo_postal
municipio
distrito_municipal
generico_id
generico
zona_id
zona
bachillerato_ciencias
bachillerato_humanidades
id_escuela
id_colegio
FK1
id_escuela
id_grupo
id_usuario
usuariosgrupos
PK,FK1
PK,FK1
PK,FK2
PK
modalidad_id
modalidad
nivel_id
nivel
familia_id
familia
ensenanza_id
ensenanza
id_ensenanza
ensenanzas
cargo
id_usuario
id_colegio
id_visita
percolvis
PK
visitas
kilometros
valoracion
observaciones
id_informe
id_visita
id_usuario
informes
tipo_charla
proyector
pantalla
confirmada
ruta
fecha
hora
alumnos_confirmados
duracion
observaciones
id_visita
PK
PK,FK2
PK,FK1
id_usuario
personal
PK,FK1
nombre
apellidos
cargo
tipo_cargo
fax
correo
tipo
login
password
activo
id_usuario
usuarios
id_usuario
id_colegio
PK,FK3
PK,FK1
PK,FK2
PK,FK1
PK,FK2
per_contacto
I1
PK
6. Dise o de la Aplicaci n
n
o
Captulo 7
Desarrollo de la aplicaci n
o
7.1.
Implementaci n
o
La implementaci n de esta aplicaci n web se ha realizado en PHP generando c digo HTML, CSS y
o
o
o
Javascript que es interpretado por el navegador de usuario. Durante el desarrollo han surgido algunas
dicultades cuyas soluciones pueden ser de inter s en el futuro.
e
7.1.1.
El poder de PHP reside en su simplicidad y velocidad. Una de las aplicaciones m s comunes que se
a
utilizan en este lenguaje son los formularios PHP, por su parte PHP no ofrece ninguna funci n para el
o
desarrollo de los formularios.
77
7. Desarrollo de la aplicaci n
o
HTML QuickForm [PEAR, 2004c], es un modulo PEAR que simplica el trabajo con formularios
HTML
de manera mas sencilla. En vez de mostrar los elementos uno por uno, el m todo dene un contee
nedor de un formulario al que se a aden los distintos controles con una sintaxis muy sencilla.
n
A partir de este contenedor es posible mostrar el formulario y validar la respuesta del usuario, mostrar
los mensajes de error, generar c digo JavaScript para validar en el cliente, simplica la subida de cheros
o
en el formulario...
Este m dulo PEAR se integra con otros m dulos (por ejemplo, el m dulo usado para la gesti n de
o
o
o
o
la base de datos, o las plantillas Smarty usadas en la presentaci n) para generar formularios de forma
o
extremadamente sencilla y con una cantidad de c digo mnima. En la Figura 7.1 se muestra el formulario
o
para el registro de usuarios en el sistema y su c digo PHP, utilizando HTML QuickForm, correspondiente
o
(Programa 7.1).
<? php
require HTML/QuickForm.php;
78
7.1. Implementaci n
o
4
5
6
7
10
11
12
13
14
15
16
?>
Cuando el formulario es enviado se valida el campo usuario, en caso de que el formulario sea enviado
sin haber escrito un valor en la caja de texto, se mostrar el formulario con un mensaje de que ese campo
a
es requerido. Cuando se enva el formulario con datos en la caja de texto, se procesan los datos en la
funci n validar( ) para posteriormente mostrar los datos introducidos como una salida del programa de
o
manera satisfactoria.
7.1.2.
Tabla ACL
La ACL es una tabla en la que se recopilan los derechos de acceso que cada usuario posee para un
objeto determinado, como directorios, cheros, puertos, etc. En este caso, se ha utilizado para tener un
control sobre las operaciones que pueden realizar los distintos usuarios seg n el grupo al que pertenezcan.
u
En la Figura 7.2, se diferencian dos partes, en la parte de arriba, se tiene informaci n del grupo, como
o
es el nombre, la escuela a la que pertenece, el grupo global y una descripci n. En la parte de abajo esta
o
la tabla ACL, donde por un lado est n todas las operaciones del sistema y por cada una de ellas hay un
a
tick que indica si sobre esa operaci n el grupo tiene permisos de ejecuci n y/o administraci n.
o
o
o
7.1.3.
Autenticaci n de usuarios
o
El mecanismo b sico de seguridad es la autenticaci n del usuario a partir de la cual se le asignan los
a
o
privilegios. La autenticaci n est basada en la asociaci n de un login (usuario) y una palabra clave, por
o
a
o
lo que la protecci n de esta palabra es vital.
o
79
7. Desarrollo de la aplicaci n
o
Todos los n meros resumen generados con un mismo m todo tienen el mismo tama o sea cual sea
u
e
n
el texto utilizado como base.
Dado un texto base, es f cil y r pido calcular su numero resumen
a
a
Es imposible reconstruir el texto base a partir del numero resumen
Es casi imposible que dos textos base diferentes tengan el mismo numero resumen
Hay muchos algoritmos de este tipo. Los m s conocidos son MD5 y SHA, que se utilizan habituala
mente para rmas digitales.
80
7.1. Implementaci n
o
Programa 7.2: C digo para autenticarse en el sistema
o
1
2
3
4
5
7
8
10
11
return false;
12
13
14
15
16
17
18
$filter = "usuarios.id_usuario=$id";
19
20
21
22
23
24
$filter = "usuarios.id_usuario=$id";
25
26
27
return true;
28
29
30
31
32
33
global $gvc ;
34
35
36
37
38
39
81
7. Desarrollo de la aplicaci n
o
if ( count( $user ) >0 ) {
40
41
42
} // if
43
44
45
46
47
48
$cols_vals = array(
49
id_usuario=> $id ,
50
nombre
51
52
53
fax
54
correo
55
login
56
password
57
activo
);
58
59
60
61
Utilizar funciones de resumen en PHP es tan sencillo como invocar a la funci n de biblioteca md5(string
o
cad), que calcula el hash MD5 de una cadena. Para validar un usuario, el m dulo de autenticaci n recibe
o
o
la contrase a introducido por el usuario, a continuaci n, se le aplica la funci n md5 y se comprueba si
n
o
o
existe en la base de datos alg n usuario con ese login y ese md5 almacenado en el atributo del password.
u
Con esto se evita que cualquier persona que tenga acceso a la base de datos pueda obtener la contra
se a de los usuarios. Adem s, es util para que en el caso de que la comunicaci n entre servidor web y
n
a
o
servidor de bases de datos este siendo espiada, el atacante no obtenga la contrase a del atacado de forma
n
clara, sino que lo que capturar ser una clave cifrada que no servir para entrar al sistema.
a a
a
7.2.
o
aproximadamente (de junio a octubre de 2006).
Cdigo TPL
18%
Cdigo PHP
82%
Pantalla
26%
Operaciones
29%
Biblioteca
45%
o
o
de la aplicaci n, y las lneas de los cheros de Smarty, que denen el dise o de la misma. En la gura
o
n
podemos ver como el n mero de lneas de c digo PHP es bastante mayor que el de las plantillas Smarty,
u
o
lo que indica que el uso de smarty permite reducir al mnimo el esfuerzo dedicado a la interfaz de usuario
con un resultado equivalente. Sin embargo, falta destacar el proceso de dise o de interfaz, por lo que el
n
tiempo nal dedicado a la presentaci n es algo superior.
o
83
7. Desarrollo de la aplicaci n
o
Dentro del c digo PHP, la Figura 7.4 muestra las lneas dedicadas a la generaci n de interfaz (pano
o
talla); gesti n de tablas de la BBDD, cheros de conguraci n y puntos de entrada (biblioteca) y, por
o
o
o
o
lneas de pantalla y de operaciones.
El COnstructive COst MOdel (COCOMO) es un modelo que permite realizar estimaciones y planicaciones de proyectos de sistemas de informaci n. Si aplic ramos el modelo COCOMO al trabajo realizado
o
a
haran falta 32 personas-mes, con un coste total de 210.000 euros.
84
Parte IV
Conclusiones
Captulo 8
Tras nalizar este trabajo, se dispone de una aplicaci n va web que permite gestionar las visitas a
o
colegios de una unica facultad. Junto a esta aplicaci n, se dispone de una documentaci n y dise o de la
o
o
n
base de datos y del c digo desarrollado.
o
Al nalizar todo el proceso es necesario realizar un an lisis del desarrollo para lograr su m ximo
a
a
aprovechamiento. Fruto de este an lisis se sintetizan los puntos clave, las dicultades, conocimientos
a
adquiridos y la valoraci n de la experiencia.
o
Al comienzo de este trabajo se plantearon una serie de objetivos, como por ejemplo, que el sistema
fuera f cilmente ampliable, de los cuales, la gran mayora se han satisfecho, dejando algunas lneas
a
8.1.
Conclusiones personales
Durante estos ultimos 5 meses, que ha sido mas o menos lo que me ha llevado de tiempo este proyecto, s lo veo cosas positivas. En primer lugar decir, que me ha resultado una experiencia muy graticante
o
de la que he aprendido muchsimo. Muchas cosas que desconoca por completo y que despu s de todo
e
este tiempo han despertado en mi mucha curiosidad, como son las tecnologas web y su problem tica.
a
Hoy en da, las aplicaciones web tiene una importancia especial y es por ello por lo que pienso que
me puede ayudar mucho durante mi vida profesional. Sin m s, decir que han sido unos meses bastantes
a
aprovechados y de los que estoy muy contento por todo los conocimientos que he adquirido.
8.1.1.
Dicultades en el desarrollo
Elecci n del lenguaje de programaci n. Debido a mi desconocimiento de los numerosos lenguajes exiso
o
tentes para programar aplicaciones web, esta a sido una de las principales dicultades encontradas.
Al nal, el lenguaje utilizado para programar la aplicaci n fue PHP. Los motivos principales de eso
ta elecci n fueron que ya haba programado otras aplicaciones anteriormente y que PHP de daba
o
o
DB TABLE,
que abstrae la base de datos que haya instalada en la m quina donde se ejecute la
a
aplicaci n.
o
Informaci n de los centros educativos. Desde el inicio era necesario obtener la informaci n de los ceno
o
tros educativos de la comunidad. Tras una b squeda inicial se localiz el sitio web donde, la propia
u
o
comunidad, proporciona esa informaci n. Tras plantear diversas formas de extraer esa informaci n
o
o
se opt por descargar el CD de informaci n y analizar los cheros XML que contenan los datos de
o
o
la aplicaci n web.
o
El resultado nal es una peque a utilidad, escrita en PHP, que es capaz de analizar el formato XML
n
usado en ese CD y almacenarlos en la BBDD de la aplicaci n.
o
La soluci n optada para pasar toda esta informaci n a la base de datos fue mediante un parser, es
o
o
decir, un chero el cual leyera todos esos archivos XML, vericara que su formato fuera correcto y
mediante otro m dulo PEAR, fuera pasando la informaci n a las tablas de la base de datos.
o
o
8.1.2.
Problemas de depuraci n
o
Los programas inform ticos son a menudo imperfectos y, por lo tanto, el c digo puede contener
a
o
diversos tipos de errores. La unica forma de detectar los errores l gicos es probar el programa, ya sea
o
manual o autom ticamente, y comprobar que el resultado es el esperado. Las pruebas deben ser una parte
a
integrante del proceso de desarrollo del software.
Desgraciadamente, aunque las pruebas pueden indicar que el resultado de un programa es incorrecto,
normalmente no proporcionar n ninguna pista acerca de que parte del c digo ha causado realmente el
a
o
problema. Es aqu donde cobra sentido el proceso de depuraci n.
o
Normalmente, aunque no siempre, la depuraci n implicar el uso de un depurador, una ecaz heo
a
rramienta que permite observar el comportamiento del programa en tiempo de ejecuci n y determinar
o
la ubicaci n de los errores sem nticos. Tambi n es posible utilizar ciertas funciones de depuraci n inteo
a
e
o
gradas en el lenguaje y sus bibliotecas asociadas. Muchos programadores tienen su primer contacto con
88
8.2. Conocimientos
la depuraci n cuando intentan aislar un problema agregando al c digo llamadas a funciones de salida,
o
o
como printf. Esta t cnica de depuraci n es perfectamente v lida, pero hace que una vez encontrado y
e
o
a
resuelto el problema sea necesario revisar el c digo para eliminar las llamadas a funciones adicionales.
o
Ocasionalmente, puede encontrarse una situaci n en la que, al agregar c digo nuevo (incluso una simple
o
o
llamada a printf ), el comportamiento del c digo que se intenta depurar cambie.
o
El desarrollo de aplicaciones web tradicionalmente ha sido complejo de depurar ya que lenguajes
como PHP tienen un soporte limitado para esta tarea. Es por esto que cobra especial importancia el
dise ar un mecanismo que permita realizar esta ardua pero importante labor.
n
8.2.
Conocimientos
Evidentemente en una carrera como Ingeniera Inform tica, no es posible infundir todas las ense an
a
n
zas que podra necesitar el alumno en su carrera profesional principalmente por falta de tiempo y de
Hoy en da, el tema de las aplicaciones web, tecnol gias web, aplicaciones cliente / servidor, etc..
o
est n siendo muy usadas por mucha gente a la hora de realizar programas.
a
Durante la realizaci n de este proyecto me encontrado con numerosos problemas, muchos de los cuao
les nunca los haba estudiado durante los a os de docencia. Por ejemplo, el c mo dise ar una aplicaci n
n
o
n
o
va web para facilitar el uso de la misma, o el conocimiento de lenguajes que se utilizan para desarrollar
una aplicaci n web, como pueden ser, PHP, Active Server Pages (ASP), JavaScript o HTML.
o
Actualmente, las aplicaciones y tecnologas web son un area en auge debido al impulso que est n
a
sufriendo desde el boom de la web 2.0, con la aparici n de servicios sociales on-line. Sin embargo,
o
existe un vaco de asignaturas durante la carrera que traten el desarrollo y problem tica de este tipo de
a
aplicaciones.
8.3.
Lneas Futuras
Al nalizar este trabajo quedan abiertas varias lneas de desarrollo entre las que se pueden destacar
las siguientes:
Como se coment en la Captulo 5, se deber implementar la gesti n de asignar facultades a coleo
a
o
gios o viceversa.
Tener un acceso a sistemas de mapas y/o rutas como Google Maps o Maporama, para situar los
centros educativos de la comunidad.
89
Generar estadsticas y gr cas sobre visitas o sobre profesores que dan visita.
a
Envo de recordatorios de visitas de forma autom tica mediante correos, SMS... antes de la visita y
a
al da siguiente a los participantes de la misma.
Gesti n de Pagos.
o
Incluir la posibilidad de que las personas de contacto de los centros puedan acceder al sistema para
consultar las visitas programas, solicitar visitas de ciertos centros...
Vericar su funcionamiento sobre m s gestores de BBDD.
a
Gestionar el material que es necesario en cada visita (si se dispone de proyector, ordenador...)
Gestionar el n mero de asistentes a cada visita
u
Generar informes de las visitas previas al centro para planicar mejor una nueva visita.
90
Parte V
Anexos
Anexo A
Un objetivo fundamental era hacer que el sistema fuera f cilmente ampliable, es decir, que se pudiea
ran a adir f cilmente nuevas funcionalidades. El sistema diferencia dos tipos de funcionalidades:
n
a
Los pasos para incluir cada una de las funcionalidades dieren. A continuaci n, se pasar a describir
o
a
los pasos necesarios para a adir una nueva operaci n global en el sistema.
n
o
1. Insertar en la base de datos. El primer paso a seguir, es a adir en la base de datos esa nueva
n
operaci n, por ejemplo, si la operaci n se llamara Gesti n de facultades, se debera hacer una
o
o
o
93
2. Crear chero de implementaci n. Se crea un nuevo chero dentro de la carpeta ops, donde est n
o
a
incluidas tas las operaciones del sistema. Un detalle importante es el nombre que se le pondr al
a
chero ya que ese mismo nombre se utilizar para crear el objeto.
a
En el chero gvc.class.php hay una parte donde se hace un bucle que se recorre el directorio ops,
y va generando objetos de cada uno de los cheros que hay en el mismo pero a adi ndoles delante
n e
la palabra Op. En nuestro ejemplo, si el chero se llamara GestionarFacultades.php el objeto que
se crear en el sistema ser OpGestionarFacultades. A partir de este momento se podr utilizar
a
a
a
este objeto a trav s de sus m todos.
e
e
Programa A.1: C digo para crear el objeto
o
1
2
require_once ( $file );
94
7
8
?>
boton1
=>
array(nombre
imagen=>images/facultad,
Href
=>Gestionar Facultades,
),
?>
3. Habilitarlo en la tabla ACL. En este paso ya esta creada la nueva operaci n en el sistema, pero hay
o
habilitarla para que la pueden utilizar los usuarios del sistema. Como se comento, existe una tabla
ACL,
que contiene los permisos de los grupos creados. Este ultimo paso consiste en asignar esa
nueva operaci n a los grupos crados o a los nuevos grupos para que pueden utilizarla.
o
Los pasos para a adir una acci n son ex ctamente los mismos pero omitiendo la inclusi n de la
n
o
a
o
operaci n en la base de datos.
o
95
96
Anexo B
de Madrid, la cual es una publicaci n de divulgaci n y consulta que trata de facilitar al ciudadano ino
o
formaci n sobre los servicios educativos de car cter no universitario que se prestan en la Comunidad de
o
a
Madrid.
La ultima versi n
o
vez que ofrece informaci n detallada y precisa sobre centros y servicios educativos de la comunidad.
o
Asimismo, incorpora un sistema de localizaci n y representaci n geogr ca, desarrollado por el Instituto
o
o
a
de Estadstica de la Consejera de Economa e Innovaci n Tecnol gica, que complementa los recursos
o
o
para conseguir una mejor y m s util informaci n de los centros y servicios dependientes de la consejera
a
o
de educaci n.
o
La gua se distribuye en formato electr nico en CD. Este CD contiene:
XML.
GENU DG DAT.XML. Contiene informaci n de los centros por las diferentes zonas en la
o
que divide a la comunidad. Estas zonas son: Norte / Sur / Este / Oeste y Centro.
GENU CE V ZONASE.XML.
GENU CE V TURNOS ENS.XML. Contiene la informaci n si los centros imparten ense ano
n
zas presenciales o no.
GENU CE V NIVEL ENS.XML. Contiene informaci n a cerca de las ense anzas que imparo
n
te cada centro.
1 la
cual se encuentra en CD y que incorpora una serie de nuevas funcionalidades respecto a la versi n 2005
o
97
GENU CE V AMBITO GEO.XML. Contiene informaci n de los centros por ambito geogr o
a
co, es decir, Villarejo contendr todos los centros de Brea, Estremera y Valdaracete.
a
GENU CE TRAMO EDUCATIVO.XML. Contiene informaci n sobre centros de primaria,
o
secundaria y educaci n infantil.
o
GENU DG V GENERICO.XML. Contiene las abreviatura de los centros, por ejemplo, IES;
Instituto de ense anza secundaria.
n
IMAGES. Contiene las im genes y documentaci n de los centros y servicios educativos, en formato
a
o
PDF.
99
Bibliografa
[Citado en p g. 36.]
a
Donald Chamberlin. Using the New DB2: IBMs Object-Related Database System. 1996.
[Citado en p g. 26.]
a
[Citado en p g. 28.]
a
[Citado en p g. 14.]
a
[Citado en p g. 14.]
a
Mara Isabel Ferr Grau, Xavier y S nchez Segura. Desarrollo Orientado a Objetos con UML. 2003.
e
a
[Citado en p g. 40.]
a
H. Gomma. A software design method for real-time systems. Communications of the ACM, volumen 17,
1995.
[Citado en p g. 36.]
a
James Rumbaugh Grady Booch, Ivar Jacobson. The unied modelling language. 1999.
[Citado en p g. 53.]
a
[Citado en p g. 38.]
a
[Citado en p g. 16.]
a
[Citado en p g. 78.]
a
101
Bibliografa
[Citado en p g. 15.]
a
Fernando Alonso Amo; Loc Martnez Normand; Francisco Javier Segovia P rez. Modelos de desarrollo
e
de programas. 2002.
W.W Royce. Managing the development of large software systems: concepts and techniques. 1970.
[Citado en p g. 35.]
a
[Citado en p g. 28.]
a
[Citado en p g. 17.]
a
[Citado en p g. 13.]
a
Jennifer Ullman, Jeffrey y Widom. Introducci n a los Sistemas de Bases de Datos. 1999.
o
[Citado en p g. 28.]
a
102
[Citado en p g. 15.]
a