Está en la página 1de 85

IG31 Proyectos Informticos de Gestin

INGENIERA TCNICA EN INFORMTICA DE GESTIN

PROYECTO: APLICACIN WEB PARA LA GESTIN DE UNA INMOBILIARIA

NOMBRE: Sergio Garcia Blanco

ndice
Pag.

1. Introduccin...............................................................................................1 2. Problema inicial.........................................................................................2 3. Objetivos...................................................................................................3 4. Planificacin del proyecto acadmico.......................................................4 5. Revisin e investigacin............................................................................6 6. Propuesta tcnica.......................................................................................7 6.1. Introduccin.........................................................................................7 6.2. Objetivos del sistema...........................................................................8 6.3. Alcance del sistema.............................................................................9 6.3.1. Diagrama de contexto.......................................................10 6.3.2. Requisitos de datos...........................................................11 6.3.3.Requisitos funcionales......................................................14 6.4. Tecnologa a emplear para desarrollar el sistema.............................23 6.4.1. Arquitectura final del sistema...........................................24 6.5. Planificacin temporal del proyecto..................................................25 6.6. Presupuesto del proyecto...................................................................28 7. Desarrollo del sistema.............................................................................29 7.1. Anlisis del sistema...........................................................................29 7.1.1. Introduccin.......................................................................29 7.1.2. Anlisis del sistema: DFD.................................................30 7.1.2.1. DFD de nivel 1.....................................................30 7.1.2.2. DFD de nivel 2.....................................................32 7.1.3. Anlisis del sistema: MCD................................................36 7.2. Diseo del sistema.............................................................................45

7.2.1. Base de datos: inmobiliaria................................................45 7.2.1.1. Diseo lgico........................................................45 7.2.1.2. Diseo Fsico. Tablas...........................................47 7.2.2. Interfaces de usuario..........................................................50 7.2.2.1. Funcionamiento global.........................................50 7.2.2.2. Diagrama de jerarqua de pantallas......................51 7.2.2.3. Capturas de pantalla y especificacin de las mismas..............................................................................................53 7.3. Programacin. Diseo estructurado de la aplicacin........................73 7.3.1. Interaccin entre los mdulos............................................73 7.3.2. Realizacin de los casos de prueba...................................79 8. Conclusiones y trabajo futuro..................................................................81 9. Bibliografa..............................................................................................82

1-. Introduccin.
Este documento forma parte del trabajo realizado en la asignatura de Proyectos Informticos de Gestin, correspondiente al ltimo curso de la titulacin universitaria de Ingeniera Tcnica en Informtica de Gestin cursada en la Universidad Jaime I de Castelln. Junto a esta memoria, tambin se entrega una demo que se presenta como el resultado final de todo el estudio efectuado, reflejado en estas pginas, y el esfuerzo dedicado a la realizacin del proyecto. Por esto, en este escrito se reflejan todas las actividades realizadas para llevar a cabo la construccin de la aplicacin web: desde la propuesta tcnica inicial hasta la implementacin final, con los resultados de las pruebas includas. Estas actividades constituyen el proceso de desarrollo de cualquier sistema informtico y se agrupan en cuatro fases: - Definicin de requisitos: En esta fase, se identificarn cada una de las necesidades de las personas que harn uso de nuestro sistema una vez se implante y se encuentre en funcionamiento. - Anlisis del sistema: La tarea principal de esta fase es transformar la definicin de requisitos en una especificacin del sistema, teniendo en cuenta adems, factores como la poltica de la empresa y las restricciones y necesidades particulares del entorno. - Diseo del sistema informtico: En esta tercera fase, se definirn los datos de entrada, la informacin de salida, los procesos que se han de llevar a cabo para satisfacer los requisitos y las restricciones que se tienen que tener en cuenta. - Implementacin: La ltima fase tiene como objetivo escribir el cdigo de todos los procesos, construir las bases de datos y la realizacin de pruebas. Pero adems de estos cuatro apartados, en esta memoria tambin se incluyen varios captulos ms, tales como los objetivos que se pretenden alcanzar con la realizacin del proyecto, la planificacin del mismo, revisin e investigacin, conclusiones y trabajo futuro y una bibliografa. A medida que se presenten estas secciones, se especificar su contenido. Por ltimo aadir que, para escribir este documento, no solo se han puesto en prctica todos los conocimientos adquiridos en las diferentes asignaturas cursadas durante el periodo universitario, si no que tambin se ha utilizado la informacin recogida de diversos manuales, en los cuales se explicaba, de forma sencilla, todos los conceptos que se necesitaban para abordar con garantias el problema inicialmente planteado.

2-. Problema inicial.


Especificacin del Proyecto IG31: Inmobiliaria.
Se desea implementar una aplicacin web para la gestin de una inmobiliaria. Esta web tendr una parte pblica, en la que se podrn realizar consultas sobre los inmuebles registrados en la BD a travs de la definicin de criterios como, un rango de precios, un mnimo de metros cuadrados, una zona especfica, un mnimo de habitaciones o baos, una antigedad mxima, etc. Los inmuebles encontrados se mostrarn en un formato compacto y resumido incluyendo alguna foto, y con un enlace que d acceso a una ficha completa que contenga todos los datos y fotos del inmueble. Esta zona pblica debe incluir algunas secciones estticas en las que se describa la empresa, sus objetivos, sus datos de contacto, etc. La aplicacin web tendr adems una parte privada que permitir la gestin de la empresa, a la que se acceder mediante login y password. En esta zona restringida, la aplicacin debe permitir gestionar altas, bajas, y modificaciones de: - Inmuebles, descritos en funcin de un nmero de atributos textuales y una cantidad indeterminada de fotos. Entre los atributos podemos considerar datos de direccin (calle, nmero, cdigo postal, ...), tamao (en m2), altura, antigedad, precio, nmero de habitaciones, nmero de baos, tipo (chalet, piso, tico, duplex, local comercial, etc.), si tiene terrazas, ascensor, balcones, etc. - Clientes, descritos a travs de sus datos personales y clasificados en propietarios y/o posibles compradores. En el caso de los propietarios, debe almacenarse la relacin entre stos y el o los inmuebles de los que es propietario. Considera que un mismo cliente puede ser a la vez propietario (del inmueble que vende) y posible comprador de una futura vivienda. - Empleados, descritos a travs de sus datos personales, y de su login y password para acceder al sistema. - Visitas, descritas en funcin de qu cliente quiere visitar qu inmueble, en qu da y hora, y bajo la atencin de qu empleado; debe incluir un campo para especificar el estado de la visita (pendiente, cancelada, realizada), y otro para comentar los resultados de la visita. El proceso de alta de una visita incluye la comprobacin de que el empleado o inmueble relacionado no tiene ya planificada otra visita en esa fecha y en un rango horario de ms-menos 1 hora con respecto a la hora de la nueva visita. Deben incluirse interfaces para definir criterios de seleccin de consultas sobre los inmuebles, clientes, y visitas, considerando al menos 5 atributos para inmuebles, y 3 para clientes y visitas. Cuando un/una empleado/a acceda al sistema, debe mostrarse una pantalla con un men de opciones de acceso a la gestin de las entidades arriba comentadas, y un listado automticamente generado con la relacin de visitas programadas para ese da de la que l/ella es responsable. 5

3-. Objetivos.
En este captulo se pretende ofrecer al lector los objetivos marcados inicialmente. Cabe distinguir entre dos tipos de objetivos, los objetivos personales y los objetivos del sistema; en este apartado nos centraremos en los primeros, ya que, ms adelante, en la seccin donde se detalla la propuesta tcnica ( captulo 5 ), nos referiremos a los segundos. Ante la realizacin de un proyecto son muchos los objetivos que se marcan inicialmente, sin embargo no todos son igual de importantes. El objetivo principal ( aparte de aprobar la asignatura ) es el demostrarse a uno mismo el hecho de ser capaz de resolver un problema de dificultad media con todas las herramientas y conocimientos que se han ido adquiriendo con el paso de las asignaturas, y si no, tener la habilidad necesaria para buscar y encontrar manuales que nos ayuden a conseguirlo. Por este motivo, nuestro fin ser encontrar la solucin al problema planteado inicialmente. Tras este objetivo principal, podemos deducir varios objetivos secundarios. A continuacin se enumeran algunos. Uno de estos objetivos secundarios es la consolidacin de los conocimientos, aplicndolos globalmente ante una situacin real en la que se nos pide el desarrollo de un proyecto. Esto se debe al hecho de tener que repasar todo lo estudiado para utilizarlo correctamente. Con la realizacin de este trabajo, tambin se pretende aprender nuevos conceptos necesarios para llevar a cabo el desarrollo del mismo. Esto nos introduce en la realidad, ya que en la mayora de proyectos en los que se participe, se tendrn que aplicar conocimientos que no se tienen, por lo que tener la capacidad para bscar la informacin que se necesita, es bsico. Otro de estos objetivos es descubrir nuevas herramientas. A lo largo de la carrera, se han visto numerosas herramientas que ayudan al informtico a llevar a cabo con xito cualquier proyecto, sin embargo, es ahora cuando se tiene la oportunidad de valorar por uno mismo si verdaderamente, esas herramientas son tiles y satisfacen nuestras necesidades. Si esto no es as, nos veremos obligados a buscar otras aplicaciones que se adapten mejor a nuestros intereses. Y por ltimo, apoyar el uso del software libre, ya que resultar muy beneficioso el hecho de disminuir costes al no tener que pagar licencias y favorecer el desarrollo de ms herramientas libres. Por estos dos motivos se fomentar el uso de este tipo de software.

4-. Planificacin acadmico.

del

proyecto

En este captulo se trata la previsin del coste temporal del proyecto que se realiza. sto ayuda a estimar los recursos y el tiempo que se utilizar para desarrollar la aplicacin, as como los costes. Ms adelante, en el captulo 5, se sita una lista, con su respectivo diagrama de Gantt, en la que se detalla con precisin la estimacin del tiempo dedicado a cada actividad. En este punto solo se ofrece una visin global de las tareas realizadas a lo largo del curso. En esta planificacin, destacan cinco fechas en las cuales se efecta la entrega del trabajo que se va realizando. As pues, el desarrollo completo del proyecto, se dividir en cuatro partes centrales que coinciden con las cuatro fases comentadas en la Introduccin y que constituyen el proceso de desarrollo de cualquier sistema informtico, ms otras dos que especificamos a continuacin: 1-. Estudio inicial del problema. En esta parte se asentaron las bases del proyecto, ya que las tareas realizadas aportaron la informacin necesaria para entender el problema planteado inicialmente. 2-. Propuesta tcnica. Este fue el primer entregable que se realiz y tuvo lugar en la primera semana de Noviembre. Las actividades que se llevaron a cabo permitieron detallar, entre otros aspectos, los requisitos del sistema. Los puntos tratados son: - Objetivos del sistema. - Alcance del sistema. - Tecnologa a emplear para desarrollar el sistema. - Planificacin temporal del proyecto. - Presupuesto del proyecto 3-. Anlisis del sistema. Este fue el segundo entregable que se realiz y tuvo lugar el 10 de Enero. Las activiades que se llevaron a cabo permitieron obtener una especificacin del sistema. Los puntos tatados son: - Anlisis del sistema: DFD - Anlisis del sistema: MCD 4-. Diseo del sistema. Este fue el tercer entregable que se realiz y tuvo lugar el 21 de Marzo. Los puntos tratados son: - Especificacin de la base de datos - Interfaces de usuario

5-. Implementacin. Este fue el cuarto y ltimo entregable que se realiz y tuvo lugar el 13 de Mayo. Las actividades que se llevaron a cabo fueron la codificacin de las funciones php, la creacin de las pginas web y la realizacin de las pruebas. Los puntos tratados son: - Diagrama de estructuras. - Especificacin de los mdulos. - Especificacin de los casos de prueba. 6-. Realizacin de la memoria. ltima parte en la que se recopila y se revisa la informacin descrita en los apartados anteriores con la finalidad de elaborar la memoria final que se entrega el 8 de Julio.

5-. Revisin e investigacin.


En este captulo se hablar sobre las actividades de documentacin y estudio realizadas con el fin de poder afrontar con total garantas el reto que se propona inicialmente y as dar con la solucin final. Inmediatamente despus de conocer el enunciado del problema de la inmobiliaria, me surgieron muchas dudas sobre mi capacidad a la hora de realizar el proyecto, ya que se peda una aplicacin web y yo nunca haba trabajado ni en HTML ni en PHP. Por esta razn, mi investigacin para desarrollar esta asignatura, comenzaba con la idea de hacerme con un buen manual de HTML y de PHP. Tras conseguirlos, el segundo paso fue comenzar a leerlos y tranquilamente practicar y hacer pruebas, con el objetivo de ser capaz cuanto antes de manejar un poquito estos dos lenguajes. Pero para empezar a hacer estas prcticas, necesitaba tener un servidor web a mano. As que como no tengo Internet, tena que instalarme el Apache. Esta fue otra actividad que realic dentro de la revisin e investigacin puesto que no tena ni idea de cmo se haca todo esto. Sin embargo, para otras actividades relacionadas con la definicin de requisitos o el anlisis del sistema, no necesit investigar nada, ya que simplemente con revisar lo estudiado en Ingenieria del Software I, tena bastante claro que hacer y como hacerlo (otra cosa es que est bien). Por ltimo, aadir que adems de investigar las herramientas tcnicas con las cuales llevar a cabo el proyecto, tambin tuve que indagar en las pginas webs de algunas inmobiliarias de la realidad para hacerme una idea a la hora de disear mi web. En este aspecto, me ayud bastante el hecho de que casi todas seguan un patrn similar, de tal forma que todas guardaban un parecido asombroso tanto en su funcionalidad como en su diseo.

6-. Propuesta tcnica.


6.1-. Introduccin.
En este captulo viene reflejada una propuesta tcnica obtenida tras el estudio de las necesidades que deber de cubrir en un futuro el nuevo sistema informtico que tenemos que desarrollar. La propuesta tcnica va destinada a los usuarios del sistema informtico a desarrollar y su finalidad es la de ofrecer una visin general del sistema y un anlisis de requisitos de muy alto nivel. Adems, tambin se pretende definir los objetivos y establecer el alcance del sistema de informacin para que ms tarde no hayan malentendidos entre el desarrollador y el cliente. Por ltimo, la propuesta tcnica tambin ofrece la posibilidad de describir las herramientas utilizadas por el desarrollador, tanto en las fases de planificacin del proyecto como en las fases del desarrollo fsico del mismo; permite el establecimiento de una planificacin temporal, necesaria para estimar el coste de tiempo del proyecto y presenta un presupuesto econmico teniendo en cuenta todos los componentes que participan en el mismo. En las prximas pginas se proceder a la presentacin de los objetivos y del alcance del sistema a desarrollar, la descripcin del software utilizado y una estimacin del coste, tanto temporal como econmico, del proyecto.

10

6.2-. Objetivos del sistema.


En un captulo anterior, se trat el tema de los objetivos personales que se pretendan alcanzar con la realizacin del proyecto. En este apartado, se habla sobre los objetivos del sistema. Llamamos objetivos del sistema a la finalidad que tiene el propio sistema informtico. Es importante que stos queden definidos en la fase inicial del desarrollo de cualquier sistema informtico para que ms adelante no hayan confusiones entre el desarrollador y los clientes. En nuestro caso ( la inmobiliaria ) podemos afirmar que los objetivos que se deben de cumplir una vez realizado el proyecto son: Gestionar la inmobiliaria: El objetivo principal del proyecto informtico es realizar el anlisis, diseo e implementacin de una aplicacin web para la gestin de una inmobiliaria. Esta aplicacin permitir, por una parte, que los clientes consulten la informacin sobre los inmuebles que ellos deseen y por otra, que la empresa gestione altas, bajas y modificaciones de los propios inmuebles, de los clientes registrados, de los empleados y de las visitas que se realizan. Facilitar a los clientes las consultas sobre los inmuebles: Al ser una aplicacin web ( a travs de Internet ), este objetivo es ms fcil de conseguir. Con sto, conseguiremos que los clientes puedan consultar de una forma ms cmoda y rpida toda la informacin relativa a los inmuebles que deseen, ahorrando tiempo, tanto a los mismos clientes como a los empleados de la inmobiliaria.

A todo esto, hay que aadir que lo que se pretende es hacer un software de calidad, por lo que hay que tener en cuenta lo siguiente: El software debe de ser fiable, seguro y robusto: Debemos de tener la seguridad de que la aplicacin no va a fallar en ningn momento y que no existirn perdidas de datos; para ello realizaremos todas las pruebas oportunas. El software debe de ser eficiente: Se tienen que cumplir las funciones requeridas sin malgastar los recursos de los ordenadores en los que va a funcionar nuestra aplicacin. El software no debe de ser difcil de mantener: la aplicacin deber de estar documentada y realizada de forma que los posibles cambios puedan realizarse con los mnimos costes posibles. El software ha de proporcionar una interfaz sencilla y fcil de usar: Es importante que facilite al mximo la comunicacin del usuario con la aplicacin.

11

6.3-. Alcance del sistema.


Podemos considerar al alcance del sistema como las necesidades que cubrir el nuevo sistema informtico. En nuestro caso, se desea desarrollar una aplicacin web para la gestin de una inmobiliaria. Dicha web tendr una parte pblica y otra privada, a la cual se podr acceder mediante un login y un password. En la parte pblica, se podrn realizar consultas sobre los inmuebles registrados en la BD de la inmobiliaria a travs de una definicin de criterios. Las viviendas encontradas se mostraran en un formato compacto y resumido incluyendo fotografas del mismo y con un enlace que permitir el acceso a una zona en la que se ubicar una ficha tcnica mucho ms detallada del inmueble en cuestin. Esta zona tambin contendr informacin relacionada con la empresa, descripcin de la misma, objetivos, datos de contacto . . . En la parte privada, la empresa podr tratar ( aadir, borrar, modificar ) toda la informacin que posea relativa a los inmuebles, clientes, empleados y a las visitas que los clientes hagan a los pisos. El sistema informtico tambin incluir interfaces para definir criterios de seleccin de consultas sobre los inmuebles, clientes, y visitas, considerando al menos cinco atributos para inmuebles y tres para clientes y visitas. Por ltimo, el sistema mostrar, cuando un empleado acceda al mismo, un men de opciones de acceso a la gestin de los inmuebles, clientes y visitas, y a un listado generado automticamente con la relacin de citas que tiene con lo clientes para ir a visitar un piso para ese da.

12

6.3.1-. Diagrama de contexto.

Datos-Inmuebles Datos-Clientes

Empleado

Datos-Visitas

DatosEmpleados
0

Login-Password Informe-Visitas Informacion-clientes Informacion-empleados Informacion-inmuebles Informacion-visitas

Informacion-Inmuebles

Gestion de la inmobiliaria
InformacionEmpresa

Consulta-Inmuebles

Cliente

Como bien indica el ttulo, en este grfico se pretende mostrar el DFD de contexto. En l, se observan dos entidades ( los cuadrados con los nombres de Empleado y Cliente ) que interactan entre s mediante un proceso (el crculo con el nombre de Gestin de la inmobiliaria ). Este crculo representa lo que ms adelante ser la aplicacin web que se desea construir, y si bien ahora no muestra ningn detalle, a medida que se realice el proyecto, se desarrollar. El esquema muestra que los empleados introducen en el sistema informtico los datos de los inmuebles, de los clientes, de las visitas y de los propios empleados. Para poder meter estos datos fcilmente, el sistema proporciona unos formularios que deben de ser rellenados por los empleados. Tambin se observa que los propios empleados introducen un login y un password mediante otro formulario y que reciben un informe sobre las visitas a las que tienen que acudir cada da. Por otra parte, se muestra que los clientes reciben la informacin de la empresa y de los inmuebles de la base de datos, y que realizan consultas sobre los propios inmuebles. sto lo hacen mediante la pgina web de la empresa.

13

6.3.2-. Requisitos de datos.


En este apartado se explican los requisitos de datos identificados: Inmuebles Clientes Empleados Visitas

1) Inmuebles. IRQ-<A01> Versin Autores Descripcin Datos especficos Informacin de inmuebles 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema tendr que almacenar la informacin correspondiente a los inmuebles de la empresa: - Cdigo - Calle - Nmero - Cdigo postal - Poblacin - Provincia - Tamao (m2) - Altura - Antigedad - Precio - N Habitaciones - N Baos - Tipo - Terraza (s/n) - Balcn (s/n) - Ascensor (s/n) Medio Mximo Indefinido Indefinido Medio Mximo

Tiempo de vida Ocurrencias Simultaneas Importancia Estabilidad

5000
Imprescindible Alta

10000

14

2) Clientes. IRQ-<A02> Versin Autores Descripcin Datos especficos Informacin de clientes 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema tendr que almacenar la informacin correspondiente a los clientes de la inmobiliaria: - Nombre - Apellidos - Calle - Nmero - Cdigo postal - Localidad - Provincia - DNI - Fecha nacimiento - Telfono - Tipo (propietario o comprador) Si es propietario: - Cdigo del inmueble Medio Mximo Indefinido Indefinido Medio 5000 Imprescindible Alta Mximo 10000

Tiempo de vida Ocurrencias Simultaneas Importancia Estabilidad 3) Empleados. IRQ-<A03> Versin Autores Descripcin

Informacin de empleados 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema tendr que almacenar la informacin correspondiente a los distintos empleados de la empresa:

15

Datos especficos

Tiempo de vida Ocurrencias Simultaneas Importancia Estabilidad 4) Visitas. IRQ-<A04> Versin Autores Descripcin

- Nombre - Apellidos - Calle - Nmero - Cdigo postal - Localidad - Provincia - DNI - Fecha nacimiento - Localidad de nacimiento - Provincia de nacimiento - Telfono - Login - Password Medio Mximo Indefinido Indefinido Medio 10 Imprescindible Alta Mximo 50

Datos especficos

Tiempo de vida Ocurrencias Simultaneas Importancia Estabilidad

Informacin de las visitas 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema tendr que almacenar la informacin correspondiente a las visitas que los clientes harn a los pisos acompaados de los empleados de la inmobiliaria: - DNI del cliente - Inmueble a visitar - Fecha - Hora - DNI del empleado - Estado de la visita ( pendiente, cancelada, realizada ) - Observaciones de la visita Medio Mximo Indefinido Indefinido Medio 100000 Imprescindible Alta Mximo 1000000

16

6.3.3-. Requisitos funcionales.


A continuacin se mostrarn los requisitos funcionales de nuestro sistema que bsicamente son, de una forma muy resumida, los servicios que se espera que ste ofrecer: 1) Inmuebles. FRQ-<A01> Versin Autores Objetivos Requisitos asociados Descripcin Alta de los inmuebles 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de permitir la insercin de nuevos inmuebles IRQ-<A01> Informacin inmuebles En este proceso se dar de alta un nuevo inmueble. Cuando el piso ya est registrado, daremos de alta a un nuevo cliente de tipo propietario, lo cual indica que tras el proceso de alta de inmuebles iremos al proceso de alta de clientes Para la insercin de un inmueble hemos de comprobar anteriormente que ese piso no se encuentra registrado. P1-> Comprobar que el inmueble no se encuentra registrado P2-> Introducir los datos del inmueble Una vez se hayan introducido los datos del piso, se introducirn los datos del propietario del inmueble Que el inmueble ya est registrado 10 veces/da Imprescindible Alta

Precondicin Secuencia normal Postcondicin Excepciones Frecuencia esperada Importancia Estabilidad

FRQ-<A02> Versin Autores Objetivos Requisitos asociados Descripcin

Precondicin

Baja de los inmuebles 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de permitir el borrado de inmuebles que tengamos registrados. IRQ-<A01> Informacin inmuebles En este proceso se dar de baja un inmueble. Cuando el piso ya est borrado, daremos de baja al cliente propietario del mismo, lo cual indica que tras el proceso de baja de inmuebles, se ejecuta automticamente el proceso de baja de clientes Para el borrado de un inmueble hemos de comprobar anteriormente que ese piso se encuentra registrado.

17

Secuencia normal

Postcondicin Excepciones Frecuencia esperada Importancia Estabilidad

P1-> Comprobar que el inmueble se encuentra registrado P2-> Borrar los datos del inmueble P3-> Borrar las visitas Pendientes a ese inmueble Una vez se hayan borrado los datos del piso, se borrarn los datos del propietario del inmueble Que el inmueble no est registrado 3 veces/da Imprescindible Alta

FRQ-<A03> Versin Autores Objetivos Requisitos asociados Descripcin Precondicin Secuencia normal Postcondicin Excepciones Frecuencia esperada Importancia Estabilidad

Modificacin de los inmuebles 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de permitir modificar inmuebles que tengamos registrados. IRQ-<A01> Informacin inmuebles En este proceso se modificar un inmueble. Cuando el piso ya est registrado y se produce en l cualquier tipo de cambio, hay que registrar esa modificacin Para modificar un inmueble hemos de comprobar anteriormente que ese piso se encuentra registrado. P1-> Comprobar que el inmueble se encuentra registrado P2-> Introducir los nuevos datos del inmueble Que el inmueble no se encuentre registrado con lo que no hay nada que modificar 2 veces/da Imprescindible Alta

FRQ-<A04> Versin Autores Objetivos Requisitos asociados Descripcin Precondicin Secuencia normal Postcondicin Excepciones

Consulta de los inmuebles 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de permitir consultar los datos de todos los inmuebles disponibles IRQ-<A01> Informacin inmuebles En este proceso se mostrarn los inmuebles que tenga la empresa registrados en la base de datos ordenados por su cdigo. Antes de mostrar todos los inmuebles, hemos de comprobar que la base de datos no est vaca P1-> Comprobar que hay inmuebles registrados P2-> Mostrar todos los inmuebles registrados Que la base de datos no est vaca

18

Frecuencia esperada Importancia Estabilidad 2) Clientes. FRQ-<B01> Versin Autores Objetivos Requisitos asociados Descripcin Precondicin

100 veces/da Imprescindible Alta

Secuencia normal Postcondicin Excepciones Frecuencia esperada Importancia Estabilidad

Alta de los clientes 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de permitir la insercin de nuevos clientes, tanto propietarios como posibles compradores IRQ-<A02> Informacin clientes En este proceso se dar de alta un nuevo cliente. Para la insercin de un nuevo cliente hemos de comprobar anteriormente que no se encuentra registrado ( se tiene en cuenta que si tenemos a un cliente como propietario, se puede volver a insertar pero solo como posible comprador ) P1-> Comprobar que el cliente no se encuentra registrado P2-> Introducir los datos del cliente Que un cliente ya est registrado 20 veces/da Imprescindible Alta

FRQ-<B02> Versin Autores Objetivos Requisitos asociados Descripcin Precondicin Secuencia normal Postcondicin Excepciones Frecuencia esperada Importancia Estabilidad FRQ-<B03>

Baja de los clientes 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de permitir el borrado de clientes que tengamos registrados. IRQ-<A01> Informacin inmuebles (Opcional) IRQ-<A02> Informacin clientes En este proceso se dar de baja un cliente. Tras esto, automticamente se borrar los inmuebles que posea. Para el borrado de un cliente hemos de comprobar anteriormente que se encuentra registrado P1-> Comprobar que el cliente se encuentra registrado P2-> Borrar los datos del cliente Que el cliente no est registrado 3 veces/da Imprescindible Alta Modificacin de los clientes

19

Versin Autores Objetivos Requisitos asociados Descripcin Precondicin Secuencia normal Postcondicin Excepciones Frecuencia esperada Importancia Estabilidad FRQ-<B04> Versin Autores Objetivos Requisitos asociados Descripcin Precondicin Secuencia normal Postcondicin Excepciones Frecuencia esperada Importancia Estabilidad

1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de permitir modificar los clientes que tengamos registrados. IRQ-<A02> Informacin clientes En este proceso se modificar un cliente. Cuando el cliente ya est registrado y se produce en l cualquier tipo de cambio, hay que registrar esa modificacin Para modificar un cliente hemos de comprobar anteriormente que se encuentra registrado. P1-> Comprobar que el cliente se encuentra registrado P2-> Introducir los nuevos datos del cliente Que el cliente no se encuentre registrado 5 veces/da Imprescindible Alta Consulta de los clientes 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de permitir consultar los datos de todos los clientes IRQ-<A02> Informacin clientes En este proceso se mostrarn los clientes que tenga la empresa registrados en la base de datos ordenados por su DNI. Antes de mostrar todos los clientes, hemos de comprobar que la base de datos no est vaca P1-> Comprobar que hay clientes registrados P2-> Mostrar todos los clientes registrados Que la base de datos no est vaca 100 veces/da Imprescindible Alta

3) Empleados. En este punto hay que aclarar que existe un usuario especial, que normalmente ser el Jefe, que es el nico que puede dar de alta y de baja a los empleados. Adems, un empleado solo puede modificar sus propios datos. FRQ-<C01> Versin Autores Objetivos Alta de los empleados 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de permitir la insercin de nuevos empleados cuando stos son contratados

20

Requisitos asociados Descripcin Precondicin Secuencia normal Postcondicin Excepciones Frecuencia esperada Importancia Estabilidad

IRQ-<A03> Informacin empleados En este proceso se dar de alta un nuevo empleado. De esta forma, la empresa tendr en su poder informacin relacionada con sus trabajadores. Para la insercin de un empleado hemos de comprobar anteriormente que no se encuentra registrado, ya que por error se podra insertar dos veces o ms. P1-> Comprobar que el empleado no se encuentra registrado P2-> Introducir los datos del empleado Que el empleado ya est registrado 1 vez/mes Imprescindible Alta

FRQ-<C02> Versin Autores Objetivos Requisitos asociados Descripcin

Precondicin Secuencia normal

Postcondicin Excepciones Frecuencia esperada Importancia Estabilidad

Baja de los empleados 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de permitir el borrado de empleados que tengamos registrados. IRQ-<A03> Informacin empleados En este proceso se dar de baja un empleado. sto permitir que la inmobiliaria se deshaga de la informacin que pertenece a las personas que dejan de trabajar ah. Cuando se borre un empleado, habr que modificar sus visitas pendientes. Para el borrado de un empleado hemos de comprobar anteriormente que se encuentra registrado. P1-> Comprobar que el empleado se encuentra registrado P2-> Borrar los datos del empleado P3-> Borrar las visitas que le queden Pendientes de realizar. Es responsabilidad del Jefe reasignar otro empleado a esas visitas pendientes Una vez se hayan borrado los datos del empleado se activar automticamente el proceso de borrado de visitas cuyo estado es el de Pendiente Que el empleado no est registrado 1 vez/mes Imprescindible Alta

FRQ-<C03> Versin Autores

Modificacin de los empleados 1 (2 / 11 / 04) Sergio Garcia Blanco

21

Objetivos Requisitos asociados Descripcin

Precondicin Secuencia normal Postcondicin Excepciones Frecuencia esperada Importancia Estabilidad FRQ-<C04> Versin Autores Objetivos Requisitos asociados Descripcin Precondicin Secuencia normal Postcondicin Excepciones Frecuencia esperada Importancia Estabilidad 4) Visitas. FRQ-<D01> Versin Autores Objetivos

El sistema deber de permitir modificar empleados que tengamos registrados. IRQ-<A03> Informacin empleados En este proceso se modificar un empleado. Cuando el empleado ya est registrado y se produce cualquier tipo de cambio en sus datos, hay que registrar esa modificacin Para modificar un empleado hemos de comprobar anteriormente que se encuentra registrado. P1-> Comprobar que el empleado se encuentra registrado P2-> Introducir los nuevos datos del empleado Que el empleado no se encuentre registrado 2 veces/mes Imprescindible Alta Consulta de los empleados 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de permitir consultar los datos de todos los empleados IRQ-<A04> Informacin empleados En este proceso se mostrarn los empleados que tenga la empresa registrados en la base de datos ordenados por su DNI. Antes de mostrar todos los empleados, hemos de comprobar que la base de datos no est vaca P1-> Comprobar que hay empleados registrados P2-> Mostrar todos los empleados registrados Que la base de datos no est vaca 100 veces/da Imprescindible Alta

Alta de las visitas 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de permitir la insercin de nuevas visitas cuando stas quedan concertadas

22

Requisitos asociados

Descripcin Precondicin

Secuencia normal

IRQ-<A01> Informacin inmuebles IRQ-<A02> Informacin clientes IRQ-<A03> Informacin empleados IRQ-<A04> Informacin visitas En este proceso se dar de alta una nueva visita. De esta forma, los empleados sabrn cuando han quedado con los clientes para ir a ver los pisos. Para la insercin de una visita hemos de comprobar: - Que existe el inmueble, el cliente y el empleado - Que el empleado o inmueble relacionado con ella, no tiene ya planificada otra visita en esa fecha y en un rango horario de ms-menos 1 hora con respecto a la hora de la nueva visita. P1-> Comprobar que existe el inmueble, el cliente y el empleado. P2-> Comprobar que el empleado relacionado con la visita no tiene ya planificada otra visita en esa fecha y en un rango horario de ms-menos 1 hora con respecto a la hora de la nueva. P3-> Comprobar que el inmueble no tiene ya planificada otra visita en esa fecha y en un rango horario de ms-menos 1 hora con respecto a la hora de la nueva visita P4-> Introducir los datos de la visita Que existe el inmueble, el cliente y el empleado y que el piso y el empleado estn disponibles. 10 veces/da Imprescindible Alta

Postcondicin Excepciones Frecuencia esperada Importancia Estabilidad

FRQ-<D02> Versin Autores Objetivos Requisitos asociados

Descripcin Precondicin Secuencia normal Postcondicin Excepciones Frecuencia esperada Importancia

Baja de las visitas 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de permitir el borrado de las visitas que tengamos registradas. IRQ-<A01> Informacin inmuebles IRQ-<A02> Informacin clientes IRQ-<A03> Informacin empleados IRQ-<A04> Informacin visitas En este proceso se dar de baja una visita. Para el borrado de una visita hemos de comprobar anteriormente que efectivamente esa visita existe. P1-> Comprobar que la visita se encuentra registrada P2-> Borrar los datos de la visita Que la visita no est concertada. Por lo que no existe. 1 vez/da Imprescindible 23

Estabilidad

Alta

FRQ-<D03> Versin Autores Objetivos Requisitos asociados

Descripcin Precondicin Secuencia normal

Modificacin de las visitas 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de permitir modificar visitas que tengamos registradas. IRQ-<A01> Informacin inmuebles IRQ-<A02> Informacin clientes IRQ-<A03> Informacin empleados IRQ-<A04> Informacin visitas En este proceso se modificar una visita. Para modificar una visita hemos de comprobar anteriormente que se encuentra registrada. P1-> Comprobar que la visita est concertada P2-> Si se cambia el empleado, comprobar que ese empleado est disponible P3-> Si se cambia la hora, comprobar que el empleado y el inmueble se encuentran disponibles P4-> Introducir los datos nuevos de la visita Que la visita no se encuentre registrada 2 veces/da Imprescindible Alta Consulta de las visitas 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de permitir consultar los datos de todas las visitas IRQ-<A01> Informacin inmuebles IRQ-<A02> Informacin clientes IRQ-<A03> Informacin empleados IRQ-<A04> Informacin visitas En este proceso se mostrarn las visitas ordenadas por fecha y hora Antes de mostrar todas las visitas, hemos de comprobar que la base de datos no est vaca P1-> Comprobar que hay visitas registradas P2-> Mostrar todas las visitas registradas Que la base de datos no est vaca 100 veces/da Imprescindible Alta

Postcondicin Excepciones Frecuencia esperada Importancia Estabilidad FRQ-<D04> Versin Autores Objetivos Requisitos asociados

Descripcin Precondicin Secuencia normal Postcondicin Excepciones Frecuencia esperada Importancia Estabilidad

24

FRQ-<E01> Versin Autores Objetivos Requisitos asociados

Descripcin Precondicin Secuencia normal Postcondicin Excepciones Frecuencia esperada Importancia Estabilidad

Generar informe 1 (2 / 11 / 04) Sergio Garcia Blanco El sistema deber de realizar un informe en el que muestre a cada empleado las visitas a las que tiene que acudir cada da IRQ-<A01> Informacin inmuebles IRQ-<A02> Informacin clientes IRQ-<A03> Informacin empleados IRQ-<A04> Informacin visitas En este proceso se generar un informe para avisar al empleado de las citas que tiene con los clientes para ir a ver los pisos. Para que este informe se genere, se ha de comprobar si ese empleado tiene visitas P1-> Comprobar que existen visitas P2-> Mostrar por pantalla las visitas a las que tiene que acudir. Que no se tenga visitas 10 veces/da Imprescindible Alta

25

6.4-.Tecnologa a emplear para desarrollar el sistema


Para llevar a cabo un proyecto informtico, es indispensable el uso de herramientas que faciliten su desarrollo. Hoy en da existen muchas aplicaciones cuya finalidad es la de ayudar en todas las actividades que se realizan durante la creacin de un trabajo, por esta razn se van a utilizar. Para la planificacin temporal del proyecto, se ha decidido la utilizacin del Microsoft Project. Esta aplicacin permite, de manera intuitiva y sencilla, una planificacin exacta, en la cual podemos determinar la duracin de nuestro trabajo. En las tareas de anlisis del sistema, la herramienta CASE que vamos a utilizar es el Visible Analyst. Esta aplicacin nos permite hacer los Diagramas de Flujos de Datos ( DFD ), tanto el de contexto como las explosiones y el Modelo Conceptual de Datos ( MCD ). Adems, su facilidad de uso y su sencillez hace que nos decantemos por este software. Para la implementacin de la base de datos utilizaremos PostgreSQL, que es un sistema gestor de bases de datos objeto-relacionales y que soporta el modelo relacional. Son varios los motivos por los que escogemos esta herramienta: es muy potente, es gratuito, lo que implica el ahorro en licencias, y adems, es rpido, seguro, y fcil de usar. Para la realizacin de las pginas webs, emplearemos HTML ( HyperText Markup Language ). El HTML es un lenguaje de etiquetas muy sencillo que describe texto de forma estructurada. Esta descripcin se basa en especificar en el texto la estructura lgica del contenido ( ttulos, enumeraciones.. ) y los efectos que se quieren dar ( cursiva, negrita... ), y dejar que la presentacin final la realice un navegador ( Konqueror, Explorer... ). Como navegador, utilizaremos el Konqueror, que entre otras cosas es software libre. A la hora de realizar los programas, elegimos usar PHP. PHP es un lenguaje de programacin interpretado de alto nivel. Puede ser introducido en pginas HTML con lo que se obtienen documentos HTML en los que se pueden ejecutar cdigo PHP. La ejecucin de este cdigo se lleva a cabo en el servidor. Adems, para la edicin de todo el cdigo HTML y PHP, escogeremos como editor de texto el Quanta Plus. Un editor potentsimo que facilita y ahorra trabajo, a la vez de ser muy fcil de usar. Y por ltimo, como servidor web utilizaremos el Apache (tambin gratuito), que se utiliza en la mayora de los casos ya que permite el alojamiento de pginas web en una mquina especfica.

26

6.4.1-. Arquitectura final del sistema.


Al acabar el proyecto nos encontraremos con lo siguiente: - Una base de datos relacional realizada en PostgreSQL en la que se almacenar toda la informacin de la empresa referente a los inmuebles, clientes, empleados y visitas de los clientes a los pisos de la propia empresa. Se estima que el tamao de esta base de datos ser medio. - Pginas web mediante las que los clientes y los empleados puedan usar la nueva aplicacin. Algunas de estas pginas, contienen formularios que ayudan al usuario a introducir los datos con rapidez y sencillez. Estos formularios ( al igual que las pginas webs ) son organizados e intuitivos de tal forma que los empleados no tengan ningn problema a la hora de meter la informacin en el sistema. - Programas realizados en el lenguaje de programacin PHP. Estos programas manejarn los datos de la inmobiliaria. Para ordenar todo esto, necesitaremos un servidor, de tal forma que la aplicacin se pueda poner a disposicin de la inmobiliaria y de sus clientes. Por ltimo aclarar que el acceso a nuestro sistema se puede realizar simplemente desde cualquier ordenador que posea conexin a Internet. Servidor web en el que se instala el Apache y PostsgreSQL. Tambin Internet contiene los ficheros php y html junto a la base de datos.

Resto de ordenadores de la inmobiliaria

27

6.5-. Planificacin temporal del proyecto.


La planificacin temporal, se ha tratado anteriormente pero de una manera global, ofreciendo al lector una visin ms general, y desde el punto de vista de cundo haba que ir entregando los hitos a lo largo del curso. En esta seccin, se trata el tema de la planificacin con respecto al proyecto y las tareas que lo componen. El primer paso en la planificacin, consiste en identificar las tareas necesarias para la realizacin del proyecto, as como las subtareas en las que stas se dividen. Podemos decir que identificar las tareas es descomponer el problema general del proyecto en sus objetivos principales y que identificar las subtareas consiste en la sucesiva divisin de los objetivos, hasta llegar a identificar el trabajo de desarrollo que se necesita llevar a cabo. El segundo paso en los que se divide la planificacin de un proyecto es la estimacin de la duracin de las subtareas que lo componen. Esto hace que se logra estimar el tiempo necesario para la realizacin de cada una de las tareas en que se divide el proyecto y compone el plan de trabajo propuesto inicialmente. Aparte de las tareas, tambin existen los hitos. Los hitos son puntos de referencia que marcan un evento importante en un proyecto y se utilizan para controlar el progreso del proyecto, por eso no se les asigna ninguna duracin. Una vez identificadas las actividades y llegados a este punto, es importante establecer una relacin entre las tareas. sto se hace porque hay actividades que se pueden realizar en paralelo, es decir, a la vez, o que para empezar una no es necesario haber acabado, ni siquiera haber empezado, otra que se supone anterior. Por este motivo, una tarea puede ser predecesora de otra cuando se implanta un requisito que indica que para el comienzo de una segunda actividad debe haber terminado la primera. A continuacin se muestra la lista de tareas, subtareas e hitos con sus respectivas duraciones:

28

A continuacin se muestra el diagrama de Gantt:

29

30

6.6-. Presupuesto del proyecto.


A continuacin se presenta el presupuesto de la aplicacin. Para empezar calcularemos el coste del software que vamos a utilizar. El hecho de que ya dispongamos de todos los programas que vamos a usar, hace que no tengamos que desembolsar ninguna cantidad de dinero: Programa Visible Analyst Microsoft Project Gestor de bases de datos PostgreSQL Lenguaje de programacin PHP HTML Quanta Plus Apache Respecto al coste de los recursos tenemos: Concepto Recursos humanos Recursos hardware Precio total: Cantidad 0 0 Precio 0 0 0 Dinero desembolsado 0 0 0 0 0 0 0

En cuanto a los costes unitarios y totales de las distintas tareas de anlisis y construccin del sistema, tenemos lo siguiente: - En el proyecto solo participa una persona dedicada unas 3 horas de media al da. Esta persona cobra 10 la hora.

TAREA
Estudio inicial del problema Definicin de requisitos Anlisis del sistema Implementacin Redaccin de la memoria

DURACIN (das)
4 3 7 18 16

El coste total es: 12 + 9 + 21 + 54 + 48 = 144 horas x 10 /hora = 1440 4 das x 3 horas/da = 12 horas 3 das x 3 horas/da = 9 horas 7 das x 3 horas/da = 21 horas 18 das x 3 horas/da = 54 horas 16 das x 3 horas/da = 48 horas

31

7-. Desarrollo del sistema.


En este apartado se proceder a la explicacin del desarrollo del sistema. Para ello, se tratarn los tres puntos que se especifican a continuacin: - Anlisis del sistema. - Diseo del sistema. - Programacin. Diseo estructurado de la aplicacin.

7.1-. Anlisis del sistema. 7.1.1-. Introduccin.


Esta seccin 7.1 tiene como finalidad el desarrollo de la fase de anlisis del sistema del proyecto de la inmobiliaria. La fase de anlisis es la segunda actividad dentro del desarrollo de un proyecto y parte de los resultados obtenidos en la fase de definicin de requisitos ( 1 fase ). Este anlisis se llevar a cabo mediante dos modelos grficos: el DFD (Diagrama de Flujo de Datos) y el MCD ( Modelo Conceptual de Datos ). El DFD es una tcnica que representa los flujos de informacin y las transformaciones que se aplican a los datos al moverse desde la entrada hasta la salida del sistema. El MCD es una tcnica que permite representar la informacin lgica de un sistema, su estructura y las reglas necesarias, que servirn de informacin de entrada para el diseo de la base de datos. A continuacin se muestran los DFDs ( 1 y 2 nivel ), con una breve explicacin y el MCD, tambin con su correspondiente explicacin.

32

7.1.2-. Anlisis del sistema: DFD.


En las pginas siguientes, se muestra el anlisis del sistema utilizando el Diagrama de Flujo de Datos. Se presenta el 1 y 2 nivel.

7.1.2.1-. DFD de nivel 1.


inf.-visitas Datos-visitas

Datos-inmuebles

inf.-inmuebles Datos-inmuebles

EMPLEADO

inf.-inmuebles
1

CLIENTE

inf.empleados Datosempleado
2

Gestin inmuebles
Datos-cliente inf.-clientes

inf.-nuevosinmuebles inf.inmuebles

inmuebles Gestin empleados


5 4

Datosloginpassword

inf.inmuebles

Gestin visitas
inf.empleados inf.nuevosempleados

Gestin clientes

empleados

inf.clientes

inf.nuevosclientes

inf.visitas

inf.nuevasvisitas

Datosempleado

visitas clientes
inf.-clientes inf.-empleados

Gestin loginpassword

33

Como indica el ttulo, el grfico anterior muestra el Diagrama de Flujo de Datos de nivel 1. En l se distinguen dos entidades ( EMPLEADO y CLIENTE ), cinco procesos ( gestin login-password, gestin clientes, gestin inmuebles, gestin empleados y gestin visitas ), cuatro almacenes ( clientes, empleados, inmuebles y visitas ) y numerosos flujos de datos. Para entenderlo, basta con comprender la funcin de cada proceso: Gestin login-password => Este proceso recibe el login y el password de los empleados. Una vez recibidos, los coteja con los que estn en el almacn de empleados ( all se guardan los datos personales y el login y password de cada trabajador ) y, si estn, el sistema deja acceder a la zona privada de la web; si por el contrario no estn, se denega el acceso. Gestin empleados => Este proceso trata la informacin relacionada con los empleados. Entre otras cosas recibe los datos de los nuevos trabajadores y los guarda en un almacn de empleados o saca los datos del almacn y los muestra. Gestin clientes => Este proceso manipula la informacin relacionada con los clientes. Se puede decir que su comportamiento es el mismo que el proceso Gestin empleados. Gestin inmuebles => Este proceso se encarga de los datos de los inmuebles. Aunque su comportamiento sea similar a Gestin empleados y Gestin clientes en cuanto a aadir, borrar, modificar y consultar inmuebles, Gestin inmuebles incorpora una novedad, y es que un cliente puede introducir unos requisitos ( a los que llamaremos datos de bsqueda ) para que el propio proceso muestre todos los pisos que tenga almacenados en el almacn de inmuebles que cumplan los requisitos solicitados por el propio cliente. Este proceso es el nico que interacciona con el cliente. Gestin visitas => Este proceso trata los datos de las visitas y tambin permite aadirlas, borrarlas, modificarlas y consultarlas. Los datos se sacan de los almacenes de empleados, clientes e inmuebles y tambin los introduce el empleado ( por ejemplo la hora y la fecha ).

34

7.1.2.2-. DFD de nivel 2.


Gestin empleados:

Datos-empleado

EMPLEADO
inf.-empleados

Borrar empleado

Datosempleado

Datos-empleado-consulta Datosempleado
3

Consultar empleado

Aadir empleado

Modificar empleado

inf.-empleados inf.-empleado-borrado

inf.empleadoactualizada

inf.anterior

empleados
inf.-nuevos-empleados

En el grfico anterior se muestra la explosin de Gestin empleados. Cada proceso hace lo siguiente: Aadir empleado => Recibe los datos del empleado, comprueba que ese empleado no est insertado y los guarda en el almacn de empleados. Modificar empleado => Recibe los datos nuevos, los compara con los antiguos y guarda en el almacn de empleados las actualizaciones. Consultar empleado => Recibe los datos de bsqueda y toda la informacin almacenada en el almacn de empleados y muestra los trabajadores que cumplen los requisitos especificados. Borrar empleado => Recibe los datos del empleado, comprueba que ese empleado existe y lo borra del almacn de empleados.

35

Gestin clientes:

Datos-cliente

EMPLEADO
inf.-cliente

Borrar cliente

Datoscliente

Datoscliente

Datos-cliente-consulta

Consultar cliente

Aadir cliente

Modificar cliente

inf.-cliente inf.clienteactualizada inf.anterior inf.-cliente-borrado

clientes
inf.-nuevos-cliente

En el grfico anterior se muestra la explosin de Gestin clientes. Cada proceso hace lo siguiente: Aadir cliente => Recibe los datos del cliente, comprueba que no est ya insertado y los guarda en el almacn de clientes. Modificar cliente => Recibe los datos nuevos, los compara con los antiguos y guarda en el almacn de clientes las actualizaciones. Consultar cliente => Recibe los datos de bsqueda y toda la informacin almacenada en el almacn de clientes y muestra los que cumplen los requisitos especificados. Borrar cliente => Recibe los datos del cliente, comprueba que ese cliente existe y lo borra del almacn de clientes.

36

Gestin inmuebles:

Datos-inmueble

EMPLEADO Borrar inmueble


inf.-inmueble Datosinmueble Datosinmueble Datos-inmuebleconsulta Datos-inmueble-consulta

CLIENTE

inf.-inmueble
4

Consultar inmueble

Aadir inmueble

Modificar inmueble

inf.inmuebleactualizada

inf.-inmueble inf.anterior

inf.-inmueble-borrado

inmuebles
inf.-nuevosinmuebles

En el grfico anterior se muestra la explosin de Gestin inmuebles. Cada proceso hace lo siguiente: Aadir inmueble => Recibe los datos del inmueble y los guarda en el almacn de inmuebles. Modificar inmueble => Recibe los datos nuevos, los compara con los antiguos y guarda en el almacn de inmuebles las actualizaciones. Consultar inmueble => Recibe los datos de bsqueda y toda la informacin almacenada en el almacn de inmuebles y muestra los que cumplen los requisitos especificados. La novedad de este proceso es que el cliente tambin hace consultas de los inmuebles. Borrar inmueble => Recibe los datos del inmueble, comprueba que exite y lo borra del almacn de inmuebles.

37

Gestin visitas:

EMPLEADO

Datos-visita

Datosvisita

Datosvisitaconsulta

inf.visitas

Datos-visita

Aadir visitas

Modificar visitas

Consultar visitas

Borrar visitas

inf.-nuevasvisitas

inf.visitaactualizada

inf.-visitas inf.anterior inf.-visita-borrada

visitas

inf.-empleados

inf.clientes

inf.-inmuebles

empleados

clientes

inmuebles

En el grfico anterior se muestra la explosin de Gestin visitas. Cada proceso hace lo siguiente: Aadir visitas => Recibe los datos de la visita ( del empleado ( hora y fecha ) y de los almacenes de empleados, clientes e inmuebles ) y los guarda en el almacn de visitas. Modificar visita => Recibe los datos nuevos, los compara con los antiguos ( del empleado ( hora y dia ) y de los almacenes de empleados, clientes e inmuebles ) y si esa modificacin es vlida se guardan las actualizaciones ( el empleado y el inmueble deben de estar libres a la hora que se actualice ) Consultar visitas => Recibe los datos de bsqueda y toda la informacin almacenada en el almacn de visitas y muestra los que cumplen los requisitos especificados. Borrar visitas => Recibe los datos de la visita, comprueba que existe y la borra del almacn de visitas.

38

7.1.3.-. Anlisis del sistema: MCD


En este punto se pretende mostrar el anlisis del sistema utilizando el Modelo Conceptual de Datos.

39

En el esquema anterior es necesario distinguir la diferencia que existe entre lo que es una entidad y lo que es una relacin: una entidad es una representacin abstracta de la realidad mientras que una relacin es la interaccin entre dos o ms entidades. Entidades: Seguidamente se presenta una breve descripcin de cada entidad. Cliente_vendedor: hace referencia al cliente que quiere vender su inmueble. Es un subtipo de Cliente. Cliente_comprador: representa al cliente que est interesado en adquirir un inmueble. Es un subtipo de Cliente. Cliente: hace referencia a la que persona que acude a nuestra inmobiliaria sin importar el hecho de que quiera vender o comprar un inmueble. Empleado: representa a la persona que trabaja en la inmobiliaria. Inmueble: hace referencia al piso, local... que se quiere vender. Visita: representa al hecho de que un cliente quede con un empleado para ir a ver un inmueble. Atributos: A continuacin se especifican los datos que asociaremos a cada entidad. - Para la entidad Cliente: DNI: Descripcin: Documento Nacional de dentidad nico para cada persona Tipo de dato: Texto Nulos: NO Nombre: Descripcin: Nombre de una persona Tipo de dato: Texto Nulos: NO Apellidos: Descripcin: Apellidos de una persona Tipo de dato: Texto Nulos: NO Calle: Descripcin: Se refiere a la calle en la que vive Tipo de dato: Texto Nulos: NO

40

Nmero: Descripcin: Representa el nmero de portal de su domicilio Tipo de dato: Nmero Nulos: NO Codpos: Descripcin: Cdigo postal, nico para cada zona de cada ciudad Tipo de dato: Texto Nulos: NO Localidad: Descripcin: Pueblo o ciudad en la que vive el cliente Tipo de dato: Texto Nulos: NO Provincia: Descripcin: Provincia en la que se sita el pueblo o ciudad anterior Tipo de dato: Texto Nulos: NO Fechanac: Descripcin: Identifica la fecha de nacimiento del cliente Tipo de dato: Fecha Nulos: NO Telefono: Descripcin: Telefono personal para tener localizado al cliente en cualquier momento. Tipo de dato: Texto Nulos: NO - Para la entidad Cliente_vendedor: Al ser un subtipo de cliente solo guardaremos su identificador ( el DNI ) y el cdigo del inmueble del cual es propietario. DNI: Descripcin: Documento Nacional de dentidad nico para cada persona Tipo de dato: Texto Nulos: NO Codin: Descripcin: Cdigo del inmueble que posee y quiere vender. Es nico Tipo de dato: Autonumrico Nulos: NO 41

- Para la entidad Cliente_comprador: Al igual que la entidad anterior, al ser un subtipo de cliente solo guardaremos su identificador ( el DNI ). DNI: Descripcin: Documento Nacional de dentidad nico para cada persona Tipo de dato: Texto Nulos: NO - Para la entidad Empleado: DNI: Descripcin: Documento Nacional de dentidad nico para cada persona Tipo de dato: Texto Nulos: NO Nombre: Descripcin: Nombre de una persona Tipo de dato: Texto Nulos: NO Apellidos: Descripcin: Apellidos de una persona Tipo de dato: Texto Nulos: NO Calle: Descripcin: Se refiere a la calle en la que vive Tipo de dato: Texto Nulos: NO Nmero: Descripcin: Representa el nmero de portal de su domicilio Tipo de dato: Nmero Nulos: NO Codpos: Descripcin: Cdigo postal, nico para cada zona de cada ciudad Tipo de dato: Texto Nulos: NO Localidad: Descripcin: Pueblo o ciudad en la que vive el empleado 42

Tipo de dato: Texto Nulos: NO Provincia: Descripcin: Provincia en la que se sita el pueblo o ciudad anterior Tipo de dato: Texto Nulos: NO Fechanac: Descripcin: Identifica la fecha de nacimiento del empleado Tipo de dato: Fecha Nulos: NO Localidadnac: Descripcin: Pueblo o ciudad en la que naci el empleado Tipo de dato: Texto Nulos: NO Provincianac: Descripcin: Provincia en la que se sita el pueblo o ciudad anterior Tipo de dato: Texto Nulos: NO Telefono: Descripcin: Telefono personal para tener localizado al empleados en cualquier momento. Tipo de dato: Texto Nulos: NO Login: Descripcin: Representa al nombre de usuario con el que entra en el sistema. Este nombre es nico Tipo de dato: Texto Nulos: NO Password: Password: Hace referencia a la contrasea que debe introducir el empleado para entrar en el sistema. Por motivos de seguridad, permanecer encriptada Tipo de dato: Texto Nulos: NO

43

- Para la entidad Inmueble: Codin: Descripcin: Cdigo nico que identifica a cada inmueble Tipo de dato: Autonumrico Nulos: NO Precio: Descripcin: Precio del inmueble Tipo de dato: Nmero Nulos: NO Calle: Descripcin: Se refiere a la calle en la que se ubica el inmueble Tipo de dato: Texto Nulos: NO Nmero: Descripcin: Representa el nmero de portal Tipo de dato: Nmero Nulos: NO Codpos: Descripcin: Cdigo postal, nico para cada zona de cada ciudad Tipo de dato: Texto Nulos: NO Poblacin: Descripcin: Pueblo o ciudad en la que se encuentra el inmueble Tipo de dato: Texto Nulos: NO Provincia: Descripcin: Provincia en la que se sita el pueblo o ciudad anterior Tipo de dato: Texto Nulos: NO

Tamanyo_m2: Descripcin: Representa el nmero de metros cuadrados desl inmueble. Tipo de dato: Nmero 44

Nulos: NO Altura: Descripcin:Planta en la que se encuentra el inmueble. Tipo de dato: Nmero Nulos: NO Anyo_constr: Descripcin: Antigedad del inmueble. Tipo de dato: Nmero Nulos: NO Num_habit: Descripcin: Nmero de habitaciones. Tipo de dato: Nmero Nulos: NO Num_banyos: Descripcin: Nmero de baos. Tipo de dato: Nmero Nulos: NO Tipo: Descripcin: Define de que clase de inmueble se trata. Solo puede ser: piso, tico, duplex, chalet o local. Tipo de dato: Texto Nulos: NO Terraza: Descripcin: Si tiene terraza o no. Solo puede ser: si o no. Tipo de dato: Texto Nulos: NO Balcn: Descripcin: Si tiene balcn o no. Solo puede ser: si o no. Tipo de dato: Texto Nulos: NO Ascensor: Descripcin: Si tiene ascensor o no. Solo puede ser: si o no. Tipo de dato: Texto Nulos: NO

45

- Para la entidad Visita: Codin: Descripcin: Cdigo nico que identifica al inmueble que se visita Tipo de dato: Autonumrico Nulos: NO DNIcli: Descripcin: DNI del cliente que realiza la visita Tipo de dato: Texto Nulos: NO Fecha: Descripcin: Identifica la fecha para la cual est programada la visita. Tipo de dato: Fecha Nulos: NO DNIemp: Descripcin: DNI del empleado que gua la visita Tipo de dato: Texto Nulos: NO Hora: Descripcin: Identifica la hora para la cual est programada la visita. Tipo de dato: Hora Nulos: NO Estado: Descripcin: Define en que estado se encuentra la visita.. Solo puede ser: pendiente, suspendida o realizada. Tipo de dato: Texto Nulos: NO Observaciones: Descripcin: Hace referencia a las sensaciones que tiene el empleado tras la visita o a las posibles incidencias.. Tipo de dato: Texto Nulos: NO

46

Relaciones: Y por ltimo se detallan las relaciones entre las entidades. - Cliente / Cliente_vendedor: En este caso, existe una relacin de herencia, en la cual el Cliente_vendedor es un subtipo de Cliente. Por esta razn los datos se meten en Cliente, y en Cliente_vendedor se pone una clave ajena a su supertipo. - Cliente / Cliente_comprador: Esta relacin es exactamente igual a la anterior, existe una relacin de herencia, en la cual el Cliente_comprador es un subtipo de Cliente. Por esta razn los datos se meten en Cliente, y en Cliente_comprador se pone una clave ajena a su supertipo. - Cliente_vendedor / Inmueble: Relacin ( 1 , n ) en la que un cliente_vendedor puede querer vender varios pisos. Por sto, se pone una clave ajena en cliente_vendedor referenciando a inmuebles. - Cliente / Visita: En este caso, existe tambin una relacin ( 1 , n ), en la cual un cliente puede realizar mauchas visitas. Por este motivo, visitas tiene una clave ajena a clientes. - Inmueble / Visita: Esta relacin es igual a la anterior, relacin ( 1 , n ), en la que a un inmueble se le realizan muchas visitas.Aqu tambin es visitas quien tiene una clave ajena a inmuebles. - Empleado / Visitas: ltima relacin de nuestro MCD, es ( 1 , n ) ya que un empleado puede guiar muchas visitar. Por esto, visitas contendr una clave ajena a empleados.

47

7.2-. Diseo del sistema.


En este captulo nos centraremos en la fase de diseo, tanto de la base de datos como de las interfaces de usuario. Para ello se tratan los siguientes temas: - Base de datos: Se presenta el diseo lgico y el fsico, con las restricciones de integridad y las reglas de borrado. - Interfaces de usuarios ( pginas web ): Se ofrece una especificacin de pantallas y de informes. Adems se explica la jerarqua de pantallas y como los futuros usuarios interaccionan con ellas.

7.2.1-. Base de datos: inmobiliaria.


En las siguientes pginas, se describe la Base de Datos que se desarrollar para que nuestra aplicacin web funcione correctamente. Como ya se inform en una captulo anterior, la implementacin fsica de sta se llevar a cabo con PostgreSQL.

7.2.1.1-. Diseo lgico.


Inmuebles ( codin ,pecio, calle, numero, codpost, poblacion, provincia, tamanyo_m2, altura, anyoconstr, num_habit, num_banyos, tipo, terraza, balcon, ascensor ) Visitas ( codin, dnicli, fecha , dniemp, hora, estado, observaciones ) NULOS codin Visitas----------->Inmuebles No DELETE Propagar

Clientes ( dnicli, nombre, apellidos, calle, numero, codpost, localidad, provincia, fechanac, telefono ) Visitas ( codin, dnicli, fecha , dniemp, hora, estado, observaciones ) NULOS dnicli Visitas----------->Clientes No DELETE Propagar

48

Empleados ( dniemp, nombre, apellidos, calle, numero, codpost, localidad, provincia, fechanac, localidadnac, provincianac, telefono, login, password ) Visitas ( codin, dnicli, fecha , dniemp, hora, estado, observaciones ) NULOS dniemp Visitas----------->Empleados DELETE No Propagar

Clientes ( dnicli, nombre, apellidos, calle, numero, codpost, localidad, provincia, fechanac, telefono ) Vendedores ( dniven , codin ) NULOS dniven Vendedores----------->Clientes codin Vendedores----------->Inmuebles No No DELETE Propagar Propagar

Clientes ( dnicli, nombre, apellidos, calle, numero, codpost, localidad, provincia, fechanac, telefono ) Compradores ( dnicom ) NULOS dnicom Compradores----------->Clientes Vendedores ( dniven , codin ) Inmuebles ( codin ,pecio, calle, numero, codpost, poblacion, provincia, tamanyo_m2, altura, anyoconstr, num_habit, num_banyos, tipo, terraza, balcon, ascensor ) NULOS DELETE codin Vendedores----------->Inmuebles No Propagar No DELETE Propagar

49

7.2.1.2-. Diseo Fsico. Tablas.


A continuacin se procede a detallar la transformacin del diseo lgico al diseo fsico con todo el cdigo de las tabals que componen la base de datos de la inmobiliaria en PostgresSQL.

CREATE TABLE Empleados( dniemp CHAR(9) NOT NULL, nombre VARCHAR(20) NOT NULL, apellidos VARCHAR(50) NOT NULL, calle VARCHAR(50) NOT NULL, numero INTEGER NOT NULL, codpost CHAR(5) NOT NULL, localidad VARCHAR(50) NOT NULL, provincia VARCHAR(20) NOT NULL, fechanac DATE NOT NULL, localidadnac VARCHAR(50) NOT NULL, provincianac VARCHAR(20) NOT NULL, telefono VARCHAR(10) NOT NULL, login VARCHAR(20) UNIQUE NOT NULL, password VARCHAR(255) NOT NULL, CONSTRAINT cp_Empleados PRIMARY KEY (dniemp) ); CREATE TABLE Inmuebles( codin SERIAL NOT NULL, precio INTEGER NOT NULL, calle VARCHAR(100) NOT NULL, numero INTEGER NOT NULL, codpost CHAR(5) NOT NULL, poblacion VARCHAR(50) NOT NULL, provincia VARCHAR(20) NOT NULL, tamanyo_m2 INTEGER NOT NULL, altura INTEGER NOT NULL, anyoconstr INTEGER NOT NULL, num_habit INTEGER NOT NULL, num_banyos INTEGER NOT NULL, tipo VARCHAR(20) NOT NULL, terraza CHAR(2) NOT NULL, balcon CHAR(2) NOT NULL, ascensor CHAR(2) NOT NULL, CONSTRAINT cp_Inmuebles PRIMARY KEY (codin), CONSTRAINT ri_Inmuebles_tipo CHECK (tipo IN ( ' Piso ', ' Chalet ', ' Duplex ', 'Atico ', ' Local ' ) ), CONSTRAINT ri_Inmuebles_terraza CHECK (terraza IN ('Si','No')), CONSTRAINT ri_Inmuebles_balcon CHECK (balcon IN ('Si','No')), 50

CONSTRAINT ri_Inmuebles_ascensor CHECK (ascensor IN ('Si','No')) ); CREATE TABLE Visitas( codin INTEGER NOT NULL, dnicli CHAR(9) NOT NULL, Fecha DATE NOT NULL, dniemp CHAR(9) NOT NULL, hora TIME NOT NULL, estado VARCHAR(10) NOT NULL, observaciones VARCHAR(255) NOT NULL, CONSTRAINT cp_Visitas PRIMARY KEY (codin,dnicli,fecha), CONSTRAINT ca_Visitas_codin FOREIGN KEY (codin) REFERENCES Inmuebles ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT ca_Visitas_DNIcli FOREIGN KEY (dnicli) REFERENCES Clientes ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT ca_Visitas_DNIemp FOREIGN KEY (dniemp) REFERENCES Empleados ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT ri_Visitas_estado CHECK (estado IN ( ' Pendiente ' , ' Suspendida ', 'Realizada' ) ) ); CREATE TABLE Clientes( dnicli CHAR(9) NOT NULL, nombre VARCHAR(20) NOT NULL, apellidos VARCHAR(50) NOT NULL, calle VARCHAR(50) NOT NULL, numero INTEGER NOT NULL, codpost CHAR(5) NOT NULL, localidad VARCHAR(50) NOT NULL, provincia VARCHAR(20) NOT NULL, fechanac DATE NOT NULL, telefono VARCHAR(10) NOT NULL, CONSTRAINT cp_Clientes PRIMARY KEY (dnicli) ); CREATE TABLE Compradores( dnicom CHAR(9) NOT NULL, CONSTRAINT cp_Compradores PRIMARY KEY (dnicom), CONSTRAINT ca_Compradores_DNIcom FOREIGN KEY (dnicom) REFERENCES Clientes ON DELETE CASCADE ON UPDATE CASCADE );

51

CREATE TABLE Vendedores( DNIven CHAR(9) NOT NULL, codin INTEGER NOT NULL, CONSTRAINT cp_Vendedores PRIMARY KEY (dniven,codin), CONSTRAINT ca_Vendedores_DNIven FOREIGN KEY (dniven) REFERENCES Clientes ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT ca_Vendedores_cod FOREIGN KEY (codin) REFERENCES Inmuebles ON DELETE CASCADE ON UPDATE CASCADE );

52

7.2.2-. Interfaces de usuario.


Como ltimo punto de esta seccin 7.2, se tratarn las intefaces mediante las cuales los usuarios podrn interactuar con la aplicacin web a travs de Internet. Se comenzar explicando de una forma muy general el funcionamiento global de la aplicacin; tras esto, se mostrar un diagrama en el que se describe la jerarqua de pantallas y en el orden que aparecen y, por ltimo, se insertan capturas de pantalla intercaladas con especificaciones de sus campos, quien accede a ellas, etc...

7.2.2.1-. Funcionamiento global.


Cuando un usuario cualquiera escriba la direccin de nuestra web en el navegador, llegar a la pgina principal. sta mostrar en la parte superior el nombre de la inmobiliaria y el logotipo de la empresa. En el centro de la pantalla existir una zona en la que se informa al usuario de las ltimas noticias relacionadas con el mundo inmobiliario. En la parte de la izquierda se mostrar un pequeo men en el que se ofrecer diversos enlaces. Estos enlaces son: - Historia: Al pinchar en este botn aparecer una pantalla en la que se explica con todo lujo de detalle toda la historia de la inmobiliaria, como se form, quien la form, sus logros ms importantes, etc. - Objetivos: En esta rea, se muestra al usuario una pequea explicacin que describe los objetivos de la empresa. - Contacta con nosotros: Esta seccin aporta a los usuarios la informacin necesaria, tales como el telfono, direccin y e-mail, para que los clientes puedan ponerse fcilmente en contacto con la empresa. - Galera: En esta seccin se ofrece un listado de todos los inmuebles de los que se dispone en la inmobiliaria, ordenados por su tipo y por la direccin en la que se encuentran. Si se hace click en alguno de ellos, se accede a una ficha completa que contiene todos los datos y fotos del inmueble en cuestin. - Ofertas: Aqu se propondr una lista con los inmuebles ms asequibles economicamente o los que se consideren que son muy baratos. - Bsqueda: Al pinchar aqu, se accede a una interfaz en el que el usuario tiene a su alcance la posibilidad de concretar una serie de criterios en la parte superior, tales como un rango de precios, mnimo de metros cuadrados, mnimo de habitaciones, mnimo de baos y antiguedad mxima. Los inmuebles seleccionados aparecern en la parte central en un resumen compacto y con una foto pequea. Debajo de estos botones, se situar un espacio para introducir el login y password de los empleados mediante los cuales se acceder a la zona privada de la web.

53

Tras introducirlos, se llegar a otra pantalla en la que en la parte central se mostrar un informe con la visitas de ese empleado el da que entra y en la que en la parte superior habr un men con los siguientes enlaces: - Clientes: Habilitar una pantalla en la que se podr dar de alta, dar de baja, modificar y consultar los datos de un cliente. - Inmuebles: Habilitar una pantalla en la que se podr dar de alta, dar de baja, modificar y consultar los datos de un inmueble. - Empleados: Habilitar una pantalla en la que solo un usuario especial podr dar de alta y dar de baja empleados, todos los usuarios podrn modificar solo sus datos personales y todos los usuarios podrn consultar los datos de los empleados. - Visitas: Habilitar una pantalla en la que se podr insertar, actualizar, borrar o consultar una visita.

7.2.2.2-. Diagrama de jerarqua de pantallas.


Para que este diagrama no se haga muy extenso, lo dividiremos en dos, en la primera parte se mostrarn las pantallas de la zona pblica y en la segunda las de la zona privada. Se puede observar que todos los ficheros son php, esto se debe a que en cada pantalla se muestra la fecha y para esto se ha utilizado una funcin php, esto obliga a tener que poner como extensin php. Zona pblica: index.php

historia.php

objetivos.php contacta.php galeria.php ofertas.php busqueda.php encontrados.php

ref1.php ref2.php ref3.php ref4.php ref5.php ref6.php ref7.php ref8.php ref 9.php ref10.php

*de ofertas.php solo se puede acceder a los inmuebles que estn de oferta.

54

Por otra parte, si dentro de la pantalla de index.php, introducimos correctamente el login y el password, se accede a una segunda zona, la zona privada. Zona privada: privada.php

gestion_ clientes.php

gestion_ inmuebles.php

gestion_ empleados.php

gestion_ visitas.php

aadir_clientes.php aadir_inmuebles.php aadir_empleados.php aadir_visitas.php modif_clientes.php modif_inmuebles.php modif_empleados.php modif_visitas.php borrar_clientes.php borrar_inmuebles.php borrar_empleados.php borrar_visitas.php

buscar_clientes.php buscar_inmuebles.php buscar_empleados.php buscar_visitas.php

exito.php

faltan_datos.php

error.php

55

7.2.2.3-. Capturas de pantalla y especificacin de las mismas.


Para que todo quede expuesto con total claridad, se ha decidido ir insertando las capturas de pantalla en orden similar en el que se encuentran ubicada en el esquema jerrquico anterior. A continuacin, se muestran todas: index.php:

En la imagen superior, se muestra la pantalla index.php. En ella se observa que en la zona superior se encuentra el logotipo y el nombre de la empresa. Un poco ms abajo, aparece el da de la semana, el da del mes y el mes. Ms abajo todava, se ubica un men mediante el cual se accede a las diferentes partes pblicas de la empresa. Tras l, est el rea de login y contrasea que permite el acceso a la zona donde se gestiona la inmobiliaria. Por ltimo, destacar que en la zona central se sita la noticia ms importante de la semana ocurrida en el mundo inmobiliario.

56

historia.php:

En la imagen superior, se muestra la pantalla historia.php. En ella se explica en un breve fragmento, el pasado de la inmobiliaria y los galardones que le han otorgado. A la izquierda se sita un link que nos lleva a la pgina de inicio. objetivos.php:

En la imagen superior, se muestra la pantalla objetivos.php. sta contiene una pequea descripcin de los objetivos que pretende alcanzar la empresa. A la izquierda se sita un link que nos lleva a la pgina de inicio. 57

contacta.php:

En la imagen superior, se muestra la pantalla contacta.php. En ella se muestran las diferentes vas de contacto que tienen los usuarios para relacionarse con la inmobiliaria. Adems se ofrece un mapa en el que se puede observar la situacin exacta de la inmobiliaria. A la izquierda se sita un link que nos lleva a la pgina de inicio.

58

galera.php:

En la imagen superior, se muestra la pantalla galeria.php. En ella se muestran todos los inmuebles de los que dispone la empresa. Si se pincha en cualquiera de las fotografas, se accede a la ficha del inmueble. A la izquierda se sita un link que nos lleva a la pgina de inicio. refx.php:

En la imagen de arriba se observa cualquier fichero rex.php. Se muestra la ficha completa de un inmueble en la que se ofrece todas las caractersticas disponibles del mismo junto a varias fotografas. A la izquierda se sita un link que nos lleva a la pgina de bsqueda. 59

ofertas.php: Esta pantalla es igual a la de la galeria, por eso no ponemos su captura; solo que en vez de poner todos los inmuebles, solo se muestran los que estn de oferta. busqueda.php:

En la imagen superior, se muestra la pantalla busqueda.php. En ella se ofrecen varios criterios de bsqueda ( precio, tipo, poblacin, provincia, m2, altura, antigedad, n habitaciones, n baos y si deben de tener o no balcn, terraza y ascensor ). Una vez introducidos los criterios de bsqueda deseados, se envan apretando en el botn de abajo del todo y cuyo nombre es buscar inmuebles. El resultado de la bsqueda se nos muestra en la pantalla de encontrados.php . encontrados.php:

60

En la imagen superior, se muestra la pantalla encontrados.php y muestra el resultado de la bsquda efectuada. Su estructura es la misma que la de galeria.php u ofertas.php. A la izquierda se sita un link que nos lleva a la pgina de bsqueda. Todas las capturas anteriores, pertenecen a la zona pblica de la web, po lo que cualquier usuario puede acceder a ellas. Sin embargo, si introducimos el login y password, entramos en la zona privada. error.php:

En la imagen superior, se muestra la pantalla error.php. Esta pantalla aparecer cuando se intente acceder a la zona privada y se introduzca el login o password incorrectamente. A la izquierda se sita un link que nos lleva a la pgina de inicio

61

Hasta ahora no se ha comentado nada, pero si en cualquier momento se realiza tanto una accin invlida como una accin exitosa, se muestran sus respectivos mensajes.

62

Una vez se ha accedido a la zona privada, es posible que se nos muestre alguna de estas dos pantallas, dependiendo si el empleado tiene concertadas o no, visitas para ese da: privada.php:

En ambas imgenes se observa que en la izquierda hay un men que permite la gestin de los clientes, inmuebles, visitas y empleados.

63

Comencemos por los empleados. Para dar de alta o de baja a un empleado, hace falta ser el usuario especial, que normalmente ser el jefe. Si no, aparece lo siguiente:

Aparte de esto, las interfaces que se muestran para realizar la gestin de los empleados son : gestion_empleados.php:

Esta imagen se puede considerar la pgina de inicio para gestionar los empleados. Depende de lo que se desee realizar, se escoje una opcin u otra.

64

aadir_empleado.php:

En la imagen se observa todos los campos que hay que rellenar: nombre, apellidos, dni, calle, numero, telf, localidad, provincia, cdigo postal, localidad de nacimiento, provincia de nacimiento, fecha de nacimiento, usuario y contrasea. Una vez completado el formulario, se pueden enviar los datos ( aadir empleado ) o borrarlos ( borrar los datos ). modificar_empleado.php:

Un empleado solo puede modificar sus propios datos. Cuando se accede a esta opcin, ya salen por defecto los datos personales del empleado que se ha autenticado en

65

el sistema, as que lo nico que tiene que hacer es modificar lo que ha cambiado y enviarlo ( Modificar empleado ). borrar_empleado.php:

A la hora de borrar un empleado, solo hay que introducir el DNI y apretar al botn de Borrar empleado. buscar_empleado.php:

66

Si se desea buscar a un empleado, basta con meter el nombre y apellidos ( de esta forma se muestra el empleado en cuestin ) o con no poner nada ( se muestran todos los empleados. Tras una consulta, podramos tener lo siguiente:

Para gestionar los clientes, las pantallas que nos apareceran seran las que vienen a continuacin:

Esta pantalla es la pgina principal para gestionar los clientes. Depende de lo que se desee realizar, se escoje una opcin u otra.

67

aadir_clientes.php:

En la imagen se observa todos los campos que hay que rellenar: dni, nombre, apellidos, calle, numero, cdigo postal, localidad, provincia, telf y fecha de nacimiento. Adems se debe de especificar si el cliente es comprador o vendedor, teniendo que rellenar el ltimo campo si la opcin escogida es la segunda. Una vez completado el formulario, se pueden enviar los datos ( aadir empleado ) o borrarlos ( borrar los datos). modificar_clientes.php:

68

Para modificar los datos de un cliente, se tiene que rellenar el campo del DNI ms todos los dems que se quieran modificar. borrar_clientes.php:

Como se puede ver en la imagen superior, solo se necesita poner el DNI del cliente a borrar y apretar al botn de Borrar cliente. buscar_clientes.php:

A la hora de buscar un cliente, se tienen cuatro opciones:

69

Rellenar el DNI para que se muestre esa persona. Rellenar el propietario del inmueble introduciendo el cdigo correspondiente para que se muestre esa persona. Rellenar el tipo para que se muestren todos los clientes compradores o vendedores. O no rellenar nada para que se muestren todos los clientes, tal que as:

Las pantallas relacionadas con la gestin de inmuebles, se ofrecen a continuacin:

Esta interfaz es la principal para gestionar los inmuebles. Depende de lo que se desee realizar, se escoje una opcin u otra.

70

aadir_inmuebles.php:

Para aadir un inmueble nuevo, se puede apreciar en la imagen de arriba, cuales son los campos que se deben de rellenar: precio, tipo, calle, nmero, cdigo postal, poblacin, altura, antigedad, n habitaciones, n baos, balcn, terraza y ascensor. Despus de rellenarlos, y aunque no se ve en la imagen, los datos se pueden aadir pulsando el botn de Aadir inmueble o borrar en Borrar datos. modificar_inmuebles.php:

Para modificar los datos de un inmueble, se tiene que rellenar el campo del cdigo ms todos los dems que se quieran modificar. 71

borrar_inmuebles.php:

En la imagen superior se puede observar que para borrar un inmueble, solo es necesario introducir su cdigo. Tras esto, hace falta apretar en Borrar inmueble buscar_inmuebles.php:

Como se muestra en la interfaz de arriba, para iniciar la bsqueda de un inmueble se ofrecen varios criterios de bsqueda ( cdigo, precio, tipo, poblacin, provincia, m2, altura, antigedad, n habitaciones, n baos y si deben de tener o no balcn, terraza y ascensor ). Una vez introducidos los criterios de bsqueda deseados, se envan apretando en el botn de abajo del todo y cuyo nombre es buscar inmuebles. El

72

resultado de la bsqueda se nos muestra en la pantalla de encontrados.php, de la cual ya se ha hablado. Y por ltimo, se presentan las interfaces relacionadas con la gestin de visitas:

Esta imagen de arriba, es la pgina de inicio para gestionar las visitas. Depende de lo que se desee realizar, se escoje una opcin u otra. aadir_visitas.php:

Para insertar una nueva visita, es necesario rellenar los campos que se pueden observar en la captura superior ( cdigo del inmueble, DNI del cliente, fecha, DNI del empleado, hora, estado y observaciones ) y presionar el botn de Aadir visita. 73

modificar_visitas.php:

Para modificar una visita, es obligatorio rellenar el cdigo del inmueble, el DNI del cliente y la fecha, y luego introducir los datos que se quieren cambiar. borrar_visitas.php:

Como se puede apreciar en la imagen superior, para borrar una visita se tiene que meter el cdigo del inmueble, el DNI del cliente y la fecha.

74

buscar_visitas.php:

A la hora de buscar una visita, se tienen cuatro opciones: Rellenar el DNI para que se muestren las visitas de esa persona. Rellenar el cdigo del inmueble para que se muestren todas las visitias que se han realizado a un inmueble. Rellenar la fecha para que se muestren todas visitas concertadas para ese da. O no rellenar nada para que se muestren todas las visitas.

75

7.3-. Programacin. Diseo estructurado de la aplicacin.


En esta seccin se va a dejar de lado todo lo que es la implementacin en s, ya que los ficheros php se entregan y nos centraremos ms en como se relacionan los mdulos, y su especificacin. Tras esto, describiremos un conjunto de casos de prueba ( ocho en total ) y una vez realizadas, se comentarn los resultados obtenidos.

7.3.1-. Interaccin entre los mdulos.


A continuacin, se ofrece el diagrama completo ( antes se realiz un diagrama solo con las pantallas ) y despus se especifican los mdulos php que no son interfaces ( recordemos que todos los ficheros son php porque se utiliza una funcin para que aparezca el da y el mes. Al usar esta funcin, obligatoriamente, la extensin del fichero tiene que ser php ). Como se hizo anteriormente, para aadir claridad al diagrama, se dividir en dos, la parte privada y la pblica y es posible que se repita el nombre de algn fichero. Zona pblica: index.php

historia.php objetivos.php contacta.php galeria.php *ofertas.php encontrados.php

autenticacion.php busqueda.php

ref1.php ref2.php ref3.php ref4.php ref5.php ref6.php ref7.php ref8.php ref 9.php ref10.php

76

Zona privada: autenticacion.php acceso_denegado.php sesion.php sesion_admin.php

index.php

privada.php

aadir_cliente.php modificar_cliente.php gestion_clientes borrar_cliente.php buscar_clientes.php aadir_inmueble.php modif_inmueble.php gestion_inmuebles borrar_ inmueble.php buscar_ inmueble.php aadir_empleado.php modif_empleado.php gestion_empleados borrar_ empleado .php buscar_ empleado.php aadir_visita.php modificar_ visita.php gestion_visitas borrar_ visita.php buscar_ visita.php

fun_aadir_cliente.php fun_modificar_cliente.php fun_borrar_cliente.php fun_buscar_clientes.php fun_aadir_ inmueble.php fun_modificar_ inmueble.php fun_borrar_ inmueble.php fun_buscar_ inmueble.php fun_aadir_empleado.php fun_modificar_ empleado.php fun_borrar_ empleado.php fun_buscar_ empleado.php fun_aadir_visita.php fun_modificar_ visita.php fun_borrar_visita.php fun_buscar_ visita.php exito.php

desconexion.php faltan_datos.php

77

Especificacin de los mdulos php que no son pantallas: autenticacin.php: Descripcin: Este fichero se encarga de verificar que el login y password introducido son correctos. Entrada: Login y password. Salida: Se crea una Cookie.

sesion.php: Descripcin: Permite el acceso a la zona privada de la web si la Cookie que se le pasa no est vaca. Entrada: Una Cookie Salida:

sesion_admin.php: Descripcin: Permite el acceso a la zona privada de la web si la Cookie que se le pasa no est vaca y contiene el login del administrador. Se utiliza para saber si a la persona que inicia la sesin, se le debe permitir o no la insercin y borrado de empleados. Entrada: Una Cookie Salida:

privada.php: Descripcin: Adems de ser una pantalla, se encarga de mostrar al empleado que se autentica las visitas que tiene ese da. Entrada: Login. Salida: Muestra las visitas de ese da que tiene el empleado.

conexion.php: Descripcin: Este mdulo se encarga de la conexin con la base de datos. Entrada: Salida: Variable que contiene la conexin.

desconexion.php: Descripcin: Este fichero, pone la duracin de la galleta a un valor negativo, con lo que la galleta desaparece. Entrada: Una Cookie vlida. Salida: Una Cookie invlida.

78

fun_aadir_empleado.php: Descripcin: Da de alta un empleado. Entrada: Obligatoriamente el nombre, apellidos, dni, calle, numero, telf, localidad, provincia, cdigo postal, localidad de nacimiento, provincia de nacimiento, fecha de nacimiento, usuario y contrasea. Salida:

fun_modificar_empleado.php: Descripcin: Modifica los datos de un empleado que ya est insertado. Entrada: Obligatoriamente el DNI y es opcional que entren tambin todos estos: nombre, apellidos, calle, numero, telf, localidad, provincia, cdigo postal o contrasea. Salida:

fun_borrar_empleado.php: Descripcin: Se encarga de dar de baja a un empleado. Entrada: DNI. Salida:

fun_consultar_empleado.php: Descripcin: Muestra los empleados que cumplan con los criterios de bsqueda. Entrada: Es opcional que entren el nombre y los apellidos. Salida: Todos los empleados que cumplan las condiciones de los usuarios.

fun_aadir_cliente.php: Descripcin: Da de alta un cliente. Entrada: Obligatoriamente el DNI, nombre, apellidos, calle, numero, cdigo postal, localidad, provincia, telf, fecha de nacimiento y tipo y opcionalmente el cdigo del inmueble. Salida:

fun_modificar_cliente.php: Descripcin: Modifica los datos de un cliente que ya est insertado. Entrada: Obligatoriamente el DNI y es opcional que entren tambin todos estos: nombre, apellidos, calle, numero, telf, localidad, provincia y cdigo postal. Salida:

fun_borrar_cliente.php: Descripcin: Se encarga de dar de baja a un cliente. Entrada: DNI. Salida:

79

fun_consultar_cliente.php: Descripcin: Muestra los clientes que cumplan con los criterios de bsqueda. Entrada: Es opcional que entren el DNI, cdigo del inmueble que posee o el tipo. Salida: Todos los clientes que cumplan las condiciones seleccionadas por los usuarios.

fun_aadir_inmueble.php: Descripcin: Da de alta un inmueble. Entrada: Obligatoriamente el precio, tipo, calle, nmero, cdigo postal, poblacin, altura, antigedad, n habitaciones, n baos, balcn, terraza y ascensor. Salida:

fun_modificar_inmueble.php: Descripcin: Modifica los datos de un inmueble que ya est insertado. Entrada: Obligatoriamente el cdigo del inmueble y opcionalmente el precio, tipo, calle, nmero, cdigo postal, poblacin, altura, antigedad, n habitaciones, n baos, balcn, terraza o ascensor. Salida:

fun_borrar_inmueble.php: Descripcin: Se encarga de dar de baja a un inmueble. Entrada: Cdigo del inmueble. Salida:

fun_consultar_inmueble.php: Descripcin: Muestra los inmuebles que cumplan con los criterios de bsqueda. Entrada: Opcionalmente el cdigo, precio, tipo, poblacin, provincia, m2, altura, antigedad, n habitaciones, n baos, balcn, terraza o ascensor. Salida: Todos los inmuebles que cumplan las condiciones seleccionadas por los usuarios.

fun_aadir_visita.php: Descripcin: Da de alta una visita. Entrada: Obligatoriamente el cdigo del inmueble, DNI del cliente, fecha, DNI del empleado, hora, estado y observaciones. Salida:

fun_modificar_visita.php: Descripcin: Modifica los datos de una visita que ya est insertada. Entrada: Obligatoriamente el cdigo del inmueble, el DNI del cliente y la fecha y opcionalmente el DNI del empleado, hora, estado u observaciones. Salida: 80

fun_borrar_visita.php: Descripcin: Se encarga de dar de baja a una visita. Entrada: Cdigo del inmueble, DNI del cliente y la fecha. Salida:

fun_consultar_visita.php: Descripcin: Muestra las visitas que cumplan con los criterios de bsqueda. Entrada: Opcionalmente el DNI del cliente, el cdigo del inmueble o la fecha. Salida: Todas las visitas que cumplan las condiciones seleccionadas por los usuarios.

81

7.3.2-. Realizacin de los casos de prueba.


En este apartado se describen ocho casos de prueba para comprobar que nuestro sistema funciona correctamente. Estos casos son los siguientes: CASO DE PRUEBA 1 Ttulo: Insertar un empleado introduciendo todos los datos correctamente. Veces que se realiza: 2 Resultado: 1 vez: El empleado no se inserta porque la comprobacin para saber si ya est insertado, no se realiza correctamente. 2 vez: xito.

CASO DE PRUEBA 2 Ttulo: Insertar un empleado dejando campos en blanco. Veces que se realiza: 1 Resultado: 1 vez: xito. El programa recorre un bucle mediante el cual comprueba si todos los campos se han rellenado correctamente. Cuando encuentra el primer campo en blanco, muestra el mensaje de error oportuno: Faltan datos !.

CASO DE PRUEBA 3 Ttulo: Modificar un inmueble introduciendo los datos correctamente. Veces que se realiza: 3 Resultado: 1 vez: Cuando se accede a la base de datos para comprobar que el cdigo del inmueble es correcto, aparece un mensaje de error que dice que la conexin no existe. El problema es que no se ha incluido el fichero conexin.php. 2 vez: Falta un parntesi y unas comillas en la sentencia update. 3 vez: xito.

CASO DE PRUEBA 4 Ttulo: Modificar un inmueble introduciendo un cdigo de inmueble que no existe. Veces que se realiza: 1 Resultado: 1 vez: xito. Mediante una consulta, el programa comprueba sin ningn problema la existencia de algn inmueble con el cdigo introducido.

82

CASO DE PRUEBA 5 Ttulo: Borrar un cliente introduciendo un DNI vlido. Veces que se realiza: 1 Resultado: 1 vez: xito. El programa borra mediante una sentencia sql al cliente.

CASO DE PRUEBA 6 Ttulo: Borrar un cliente sin introducir nada. Veces que se realiza: 2 Resultado: 1 vez: Error. El programa no realiza la comprobacin de la validez del DNI que recibe, de tal forma que falla tanto si no se introduce nada como si el DNI no existe. 2 vez: xito. Esto se ha solucionado con una condicin.

CASO DE PRUEBA 7 Ttulo: Buscar visitas introduciendo los datos correctos. Veces que se realiza: 2 Resultado: 1 vez: Error. Comparacin de las fechas errnea. 2 vez: xito. Es necesario especificar en la consulta SQL el formato en el que se presenta la fecha.

CASO DE PRUEBA 8 Ttulo: Buscar visitas introduciendo datos inexistentes. Veces que se realiza: 1 Resultado: 1 vez: xito. El programa comprueba todos los datos que recibe antes de consultar nada.

83

8.- Conclusiones y trabajo futuro.


Tras finalizar todo el trabajo, y comprobar que funciona perfectamente, me quedo contento y satisfecho puesto que al principio del curso no saba ni HTML ni PHP y al final del mismo he sido capaz de implementar una aplicacin web. Por esto, creo que verdaderamente, tiene razn la gente cuando dice eso de que en la nica asignatura que se aprende algo es en el desarrollo del proyecto final. Y al principio no pensaba as, ya que crea que para llevar a cabo toda la aplicacin solo era cuestin de poner en prctica todos los conocimientos adquiridos a lo largo de la titulacin. Estaba equivocado. Y estaba equivocado porque realizando el proyecto, me he encontrado en situaciones que no haba visto en toda la carrera, como ejemplo pongo el hecho que antes he mencionado, enfrentarme a dos lenguajes de los cuales solo haba oido hablar. Otro aspecto que tambin me ha impactado es la importancia de realizar un buen anlisis antes de ponerse a escribir cdigo como loco. Es importantsimo. Simplemente, con realizar un anlisis medianamente correcto, cualquier informtico se puede ahorrar un montn de tiempo y esfuerzo invertido en cdigo que luego tiene que borrar. Sinceramente yo era de los que pensaba que esto del anlis era aburrido, que las asignaturas que trataban este tema no servan para nada y que el anlisis ni siquiera era informtica. Tambin estaba equivocado. En cuanto a las bases de datos, he comprobado la necesidad de encontrar un buen diseo que facilite el almacenamiento de todos los datos y que garantice la no prdida de los mismos. Para finalizar, y en relacin con el trabajo futuro, quedaran cosas por hacer y desde luego mejorar. Entre esas tareas, principalmente se me ocurren dos: - Mejorar todo el cdigo implementado. Como coment anteriormente, antes de comenzar el proyecto no saba ninguno de los dos lenguajes, con lo cual, es imposible que la implementacin que he desarrollado sea la correcta, aunque la aplicacin funcione. - El otro punto que se puede tratar en un futuro, es la preparacin del sistema para que pueda interactuar con otras aplicaciones web, ya que uno de los objetivos de esta empresa era crear ms sedes por toda la Pennsula.

84

9.- Bibliografa.
- http://www.php.net ( manual de php ) ( manual de html )

- http://sestud.uv.es/manual.esp - Apuntes: Ingeniera del Software I Bases de datos Bases de datos avanzadas

Diseo y gestin de bases de datos - Ideas para el diseo de la web y fotografas: http://www.lainmobiliaria.org http://www.inmobiliaria.com

85

También podría gustarte