Académique Documents
Professionnel Documents
Culture Documents
INDICE
1. Objetivos del proyecto........................................................................................................5
2. Anlisis del proyecto..........................................................................................................6
2.1 Descripcin del sistema deseado..........................................................................6
2.2 Propsito, alcance y objetivos..............................................................................6
3. Herramientas utilizadas......................................................................................................6
3.1 Lenguajes de programacin..................................................................................7
3.1.1 PHP........................................................................................................7
3.1.2 JavaScript...............................................................................................7
3.1.3 HTML....................................................................................................8
3.2 Tipos de bases de datos.........................................................................................8
3.2.1 Oracle.....................................................................................................8
3.2.2 Microsoft SQL Server............................................................................9
3.2.3 MySQL..................................................................................................9
3.2.4 HeidiSQL...............................................................................................9
3.3 Sistemas operativos............................................................................................10
3.3.1 Microsoft Windows.............................................................................10
3.3.2 Linux....................................................................................................10
3.4 Servidores...........................................................................................................10
3.4.1 Apache.................................................................................................11
3.5 Dreamweaver......................................................................................................11
3.6 Eleccin y justificacin de las soluciones adoptadas.........................................11
4. Patrones de diseo............................................................................................................12
4.1 Abstract Factory..................................................................................................12
4.2 Adapter................................................................................................................12
4.3 Bridge (Handle/Body)........................................................................................13
4.4 Bulider (Constructor)..........................................................................................13
4.5 Chain of Responsibility......................................................................................13
4.6 Command (Peticin de operacin).....................................................................14
4.7 Composite...........................................................................................................14
4.8 Decorator............................................................................................................14
4.9 Facade.................................................................................................................15
4.10 Factory Method................................................................................................15
4.11 Flyweight..........................................................................................................15
4.12 Interpreter.........................................................................................................16
4.13 Iterator..............................................................................................................16
4.14 Mediator............................................................................................................16
4.15 Memento...........................................................................................................17
4.16 Observer............................................................................................................17
4.17 Prototype...........................................................................................................17
4.18 Proxy.................................................................................................................17
4.19 Singleton...........................................................................................................18
4.20 State..................................................................................................................18
4.21 Strategy.............................................................................................................18
4.22 Template Method..............................................................................................19
4.23 Visitor................................................................................................................19
4.24 Modelo vista controlador..................................................................................20
4.24.1 Definicin..........................................................................................20
2
9.12 Stock.................................................................................................................86
9.13 Pedidos.............................................................................................................86
10. Bibliografa.....................................................................................................................89
11. Conclusiones...................................................................................................................89
en
Ingeniera
carrito , cuya funcin ser almacenar esos productos hasta que finalice la compra.
5. El usuario registrado debe de ser capaz de eliminar productos del carrito en
cualquier momento antes de finalizar al compra.
6. El usuario registrado tiene que poder elegir a donde quiere que se le enve su
pedido.
7. Habr una pgina de confirmacin donde se muestre la factura y la direccin de
envo antes de que se haga efectiva
8. Se enviar un email alcomprador con la factura y la direccin de envo en el
momento en que se haga la compra.
9. Acceso restringido a varias pginas por rango (no se podr acceder a ciertas partes
si no se tienen permisos para ello)
10. La pgina web de la tienda deber poderse ver desde cualquier sistema con un
navegador.
Herramientas Utilizadas
Para la aplicacin vamos a establecer una arquitectura que es la forma de
seleccionar e interconectar componentes hardware y software segn los requerimientos de
la aplicacin y de los creadores de esta.
Inconvenientes:
Como es un lenguaje que se interpreta en la ejecucin, para determinados usos
puede ser un inconveniente que el cdigo fuente no pueda estar ocultado.
3.1.2 JavaScript
Se trata de un lenguaje de programacin interpretado. Es un lenguaje orientado a objetos,
dbilmente tipado y dinmico.
Caractersticas de JavaScript:
Es simple, no hace falta tener conocimientos de programacin para poder hacer un
programa en JavaScript.
Maneja objetos dentro de nuestra pgina web y sobre ese objeto podemos definir
eventos.
Es dinmico, responde a eventos en tiempo real.
3.1.3 HTML
Se trata de un lenguaje creado para la elaboracin de pginas web. Se usa para
definir la estructura y el contenido (en forma de texto) y para complementar el texto con
objetos, como pueden ser imgenes, formularios, botones...
Caractersticas del HTML:
Es reconocido en todo el mundo.
Es utilizado nicamente para dar estructura a una pgina web.
Las ltimas versiones estn certificadas para poder trabajar con Linux.
Soporta funciones orientadas a objetos.
Es uno de los gestores ms completos.
Tiene un elevado precio en el mercado, incluso para algunas empresas.
Es ms complejo para usar que otros gestores.
Su seguridad no es de las mejores.
3.4 Servidores
Un servidor es una aplicacin que realiza unas tareas en beneficio de los clientes.
Son servicios habituales los servicios de archivos, los cuales permiten a los usuarios
almacenar y acceder a los archivos de un ordenador. Un ordenador puede realizar a la vez
las funciones de cliente y de servidor.
10
3.4.1 Apache
Apache es un servidor web de HTTP de cdigo abierto. Se utiliza en plataformas
Unix, Microsoft Windows y Macintosh.
Ventajas:
Modular
Cdigo abierto
Multi-plataforma
Extensible
Popular (fcil de conseguir ayuda / soporte)
3.5 Dreamweaver
Dreamweaver es un programa en forma de estudio que est enfocado en la construccin y
edicin de sitios y aplicaciones web. Es el programa ms utilizado para la creacin de
aplicaciones y sitios web.
Patrones de Diseo
Los patrones de diseo son la base para la bsqueda de soluciones a problemas comunes en
el desarrollo de software y otros mbitos referentes al diseo de interaccin o interfaces.
Un patrn de diseo es una solucin a un problema de diseo. Para que una
solucin sea considerada un patrn debe poseer ciertas caractersticas:
Proporcionar catlogos de elementos reusables en el diseo de sistemas software.
Evita la reiteracin en la bsqueda de soluciones a problemas ya conocidos y
solucionados anteriormente.
Formalizar un vocabulario comn entre diseadores.
Estandarizar el modo en que se realiza el diseo.
Facilitar el aprendizaje de las nuevas generaciones de diseadores condensando
conocimiento ya existente.
Hay muchos tipos de patrones de diseo utilizados en la creacin de pginas web. A
continuacin ofrezco un listado con estos patrones, sus caractersticas y ventajas e
inconvenientes.
4.2 Adapter
El patrn adapter convierte la interfaz de una clase en otra interfaz que el cliente
espera. Adapter permite a las clases trabajar juntas, lo que de otra manera no podra hacerlo
debido a sus interfaces incompatibles.
Ventajas:
Permite que un nico Adapter trabaje con muchos Adaptees.
El Adapter tambin puede agregar funcionalidad a todos los Adaptees de una sola
vez.
Incrementa el rehuso de de clases por del desacomplamineto de la interfaz desde la
implementacin.
Inconvenientes:
12
Una clase adaptadora no funcionar cuando se desea adaptar una clase y todas sus
subclases
Hace difcil sobrescribir el comportamiento de Adaptee.
Inflexibilidad, puesto que un slo adaptador no puede trabajar con una clase y sus
hijos a la vez.
Inconvenientes:
No se garantiza la recepcin y satisfaccin de una peticin.
4.7 Composite
Combina objetos en estructuras de rbol para representar jerarquas de parte-todo.
Permite que los clientes traten de manera uniforme a los objetos individuales y a los
compuestos.
Ventajas:
Se crea una jerarqua de objetos bsicos y de composiciones de estos
Simplifica el cliente al tratar todos de igual forma.
Facilita agregar nuevas clases insertndolas en un contenedor compatible.
Generaliza el diseo.
Inconvenientes:
La necesidad de protege a clientes e saber si un objeto es un todo o una parte.
4.8 Decorator
Aade dinmicamente nuevas responsabilidades a un objeto, proporcionando una
alternativa flexible a la herencia para extender la funcionalidad.
Ventajas:
Aporta una mayor flexibilidad que la herencia esttica, permitiendo aadir una
funcionalidad dos o ms veces.
Evita concentrar en lo alto de la jerarqua clases guiadas por las
responsabilidades.
Las nuevas funcionalidades se componen de piezas simples que se crean y se
combinan con facilidad, independientemente de los objetos cuyo comportamiento
14
extienden.
Inconvenientes:
La transparencia tiene el inconveniente de que un decorador y un componente son
indistinguibles, por lo que no se puede confiar en la identidad de los objetos.
Gran fragmentacin, el sistema se llena de gran cantidad de objetos pequeos y se
dificulta el aprendizaje de su funcionamiento aunque el que lo domine puede
adaptarlo fcilmente.
4.9 Facade
Proporciona una interfaz unificad para un conjunto de interfaces de un subsistema.
Define una interfaz de alto nivel que hace que el subsistema sea ms fcil de usar.
Ventajas:
Puede reducir las dependencias de compilacin.
Permite a los clientes de varias habilidades para acceder a la capa adecuada del
sistema
Promueve la estratificacin de los sistemas, proporciona bajo acoplamiento entre
los clientes y los subsistemas.
Inconvenientes:
Necesidad de subsistemas de capas
Necesidad de proporcionar abstraccin entre el subsistema y el cliente.
4.11 Flyweight
Usa el compartimiento para permitir un gran nmero de objetos de grano fino de
forma eficiente
Ventajas:
Mejora en la eficiencia, sobretodo en relacin con el ahorro en el almacenamiento,
que aumenta paralelamente con la comparticin de objetos.
Inconvenientes:
Se introducen costes en tiempo de ejecucin asociados a las transferencias,
bsquedas y/o computacin del estado y su almacenamiento.
15
4.12 Interpreter
Dado un lenguaje, define una representacin de su gramtica junto con un
intrprete que usa dicha representacin para interpretar las sentencias del lenguaje.
Ventajas:
Facilidad para cambiar o extender la gramtica, mediante herencia.
Facilidad para interpretar la gramtica, dado que las implementaciones de las clases
nodo del rbol sintctico son similares, pudiendo usarse para ello generadores
automticos de cdigo.
Facilidad para introducir nuevas formas de interpretar las expresiones en la
gramtica.
Inconvenientes:
Limitacin en el tipo de gramticas para los que sirve esta aproximacin:
simples y sin grandes necesidades de eficiencia.
4.13 Iterator
Proporciona un modo de acceder secuencialmente a los elementos de un objeto
agregado sin exponer su representacin interna.
Ventajas:
Se incrementa la flexibilidad, dado que para permitir nuevas formas de recorre una
estructura basta con modificar el iterador en uso, cambiarlo por otro o definir uno
nuevo.
Se facilitan el paralelismo y la concurrencia, puesto que, como cada iterador tiene
consciencia de su estado en cada momento, es posible que dos o ms iteradores
recorran na misma estructura simultnea solapadamente
Inconvenientes:
La necesidad de proteger a los clientes de saber si un objeto es un todo o una parte.
4.14 Mediator
Define un objeto que encapsula como interactan un conjunto de objetos. Promueve
bajo acoplamiento al evitar que los objetos se refieran unos a otros explcitamente, y
permite variar la interaccin entre ellos de forma independiente.
Ventajas:
Se limita el uso de la herencia.
Al reducir el acoplamiento entre los objetos que interactan es ms fcil variar o
reutilizar dichos objetos y el mediador, independientemente.
Se simplifican los protocolo de comunicacin entre los objetos, a sustituir las
relaciones muchos a mucho por relaciones uno a muchos, que son ms
sencillas de entender, mantener y extender.
Inconvenientes:
Se cambia complejidad en la interaccin por complejidad en el mediador, que se
puede convertir en el elemento ms complejo del conjunto de objetos.
16
4.15 Memento
Representa y externaliza el estado interno de un objeto sin violar la encapsulacin,
de forma que ste puede volver a dicho estado ms tarde.
Ventajas:
Se salvaguarda el encapsulamiento.
Inconvenientes:
Puede resultar problemtico en ciertos
interfaces distintas.
4.16 Observer
Define una dependencia de uno a muchos entre objetos, de forma que cuando un
objeto camba de estado se notifica y actualizan automticamente todos los objetos.
Ventajas:
Dado que el Asunto no conoce la clase de Observadores que tiene, el
acoplamiento que existe es mnimo y abstracto. Por ello, tanto unos como otros
pueden variar y evolucionar en diferentes niveles de detalle de forma
independiente.
Se facilita y simplifica el radiado de las notificaciones.
Gran libertad a la hora de dar de alta o baja a los Observadores.
Inconvenientes:
Dado el desconocimiento que unos Observadores tienen de los otros, cualquier
operacin aparentemente inofensiva puede originar una cascada de costosas
actualizaciones. Adems, sin un protocolo preciso, en el que se especifique lo que
cambia, el esfuerzo se multiplica.
4.17 Prototype
Especifica los tipos e objeto a crear por medio e una instancia prototpica, y crear
nuevos objeto copiando este prototipo.
Ventajas:
Asla clases concretas hace familias de producto de cambio permisos fciles que
aaden y productos de quitar en permisos de tiempo de ejecucin.
Inconvenientes:
Necesita una familia de objetos de producto relacionados de ser usado juntos.
4.18 Proxy
Proporciona un sustituto o representante de otro objeto para controlar el acceso a
ste.
Ventajas:
Mantenimiento mayor y la extensibilidad del sistema.
Puede reducir las dependencias de compilacin.
Promueve la estratificacin de los sistemas.
Proporciona acoplamiento dbil entre los clientes y los subsistemas
17
4.19 Singleton
Garantiza que un clase slo tenga una instancia, y proporciona un puno de acceso
global a ella.
Ventajas:
Proporciona el control para singularizar o en mltiples casos reducen el espacio de
nombres global
El acceso a la Instancianica est ms controlado
Se reduce el espacio de nombres.
Permite refinamientos en las operaciones y en la representacin, mediante la
especializacin por herencia de Solitario.
Es fcilmente modificable para permitir ms de una instancia y, en general, para
controlar el nmero de las mismas.
Inconvenientes:
Debe controlar el nmero de los casos de una clase
En la versin esttica una vez que el/los objetos estn instanciados, no se eliminan
nunca de memoria. La garbage colector no podr alcanzarlos ya que estn
referenciados por la clase y esta no los desreferenciar nunca hasta que el sistema
se resetee.
Si bien el patrn permite la herencia de los objetos singleton, la utilizacin de la
misma debe ser controlada y planificada.
La versin registro obliga a tener un objeto ms en memoria.
En programas multi-threads su utilizacin puede ser delicada, si al mismo tiempo
dos hilos intentan instanciar un objeto a la vez, solo uno de ellos podra hacerlo.
4.20 State
Permite que un objeto modifique su comportamiento cada vez que cambia su estado
interno. Parecer que cambia la clase el objeto.
Ventajas:
Dado que el comportamiento especfico de cada estado est autocontenido en cada
estado concreto, existe una gran flexibilidad para aadir nuevos estados y
transiciones, mediante la definicin de nuevas subclases
Se hacen ms explcitas las transiciones entre estados que s todo estuviera
concentrado en una sola clase
Inconvenientes:
necesidad de romper muchos de los comportamientos con varias condiciones, la
necesidad de modificar las conductas objeto de forma dinmica sin afectar a los
objetos existentes
4.21 Strategy
Define una familia de algoritmos, encapsula uno de ellos y los hace intercambiables
permite que un algoritmo vare independientemente de los clientes que lo usan.
18
Ventajas:
La herencia puede ayudar a sacar factor comn a la funcionalidad de los
algoritmos.
Las familias jerrquicas de estrategias definen algoritmos y comportamientos que
enfatizan la reutilizacin.
Se eliminan las costosas definiciones de comportamiento multicondicionales
Se posibilita ofrecer diferentes implementaciones del mismo comportamiento, en
funcin de restricciones como el espacio en memoria o el tiempo de respuesta.
Inconvenientes:
Los clientes deben tener un cierto conocimiento de cada estrategia, para as poder
elegir en cada situacin cual es la ms apropiada.
Dado que todas las estrategias comportan una interfaz comn, si las diferencias
entre ellas es grande, es probable que mucha de la informacin que se les pasa no
sea de utilidad ms que a las ms complejas
Puede producirse una gran explosin en el nmero de objetos del sistema.
4.23 Visitor
Representa una operacin que debe ser llevada a cabo sobre los elementos de la
estructura de un objeto. Permite definir una nueva operacin sin cambiar las clases de los
elementos con los que opera.
Ventajas:
Es fcil aadir nuevas operaciones a la Estructura De Objetos.
Se juntan las operaciones relacionadas entre s, separndose las que nada tienen que
ver.
Se pueden recorrer jerarquas formadas por objetos de distintos tipos (distinta clase
padre),mientras que un Iterador no puede hacer esto.
Se puede ir acumulando el estado a medida que se recorre la estructura, en vez de
tener que pasarlo como parmetro o guardarlo en variables globales.
Inconvenientes
Aadir un nuevo tipo de elemento a la estructura de objetos crea problemas, pues
hay que tocar toda la estructura jerrquica de Visitantes, lo cual es muy costoso.
19
20
Buscar productos
Descripcin: el actor podr buscar productos de la tienda que contengan una cadena
de caracteres predefinida.
Actores: invitado, usuario y administrador.
Precondicin: ninguna.
Postcondicin: el sistema mostrar los productos que coincidan con el nombre
buscado.
Flujo de eventos:
1. Flujo bsico: el actor deber introducir un nombre y pulsar el botn 'buscar'.
a) Flujo alternativo: si no se introduce ningn nombre en el campo,
aparecern todos los productos registrados.
Donde estamos:
Descripcin: el actor podr ver la ubicacin de la tienda.
Actores: invitado, usuario y administrador.
Precondicin: ninguna.
Postcondicin: el sistema mostrar un mapa con la ubicacin y la direccin de las
tienda.
Flujo de eventos:
1. Flujo bsico: el actor deber hacer click en 'donde estamos'.
Enlaces:
Descripcin: el actor podr ver un listado con enlaces a otras pginas.
Actores: invitado, usuario y administrador.
Precondicin: ninguna.
Postcondicin: el sistema mostrar un listado con los enlaces que tenemos en
nuestra tienda.
Flujo de eventos:
1. Flujo bsico: el usuario deber hacer click en 'enlaces'
a) Flujo alternativo: cuando el actor linka sobre un enlace, este enlace se
abrir en una nueva pestaa.
Aadir al carrito
Descripcin: el actor podr ir aadiendo productos a su carrito de la compra con el
fin de realizar la compra en cualquier momento.
Actores: usuario y administrador
Postcondicin: estar logueado.
Precondicin: se agregar al men del carrito el producto sealado.
24
Flujo de eventos:
1. Flujo bsico: el actor deber introducir una cantidad y darle al botn 'aadir
al carrito'.
Registrarse
Descripcin: el actor podr acceder a los listados de los productos, a loguearse o
registrarse.
Actores: usuario y administrador.
Precondicin: debe rellenar los campos correctamente y si el email ya est
registrado se dar un aviso de que no est disponible.
Postcondicin: nada mas registrarse se loguerar automticamente.
Flujo de eventos:
1. Flujo bsico: el usuario rellenar los campos y se registrar en la base de
datos.
a) Punto abierto: si el usuario rellena el campo email con un nombre ya
utilizado, aparecer un aviso que indicar que no te puedes registrar con
esa nueva cuenta de correo.
Login:
Descripcin: el actor podr loguearse en la tienda y acceder a todas las funciones a
las que da permiso.
Actores: usuario y administrador.
Precondicin: el actor ya se ha registrado previamente.
Postcondicin: el actor habr accedido a los productos de la tienda.
Flujo de eventos:
1. Flujo bsico: el actor rellenar los campos con el email y la contrasea con
la que se registr, y acceder al sistema.
a) Primer punto abierto: si el actor rellenase los campos con datos
incorrectos aparecer un aviso informando que los datos son errneos.
Datos personales:
Descripcin: el actor podr cambiar su propia contrasea.
Actores: usuario y administrador.
Precondicin: El actor debe de estar logueado.
Postcondicin: El sistema cambiar la contrasea del actor.
Flujo de eventos:
1. el actor deber introducir su antigua contrasea y la nueva contrasea dos
veces.
a) Primer punto abierto: si el actor introduce datos incorrectos aparecer un
aviso informando que los datos son errneos.
Salir:
Descripcin: el actor podr cerrar la sesin del usuario para finalizar la sesin.
Actores: usuario y administrador.
Precondicin: debe haberse logueado anteriormente.
Poscondicin: el sistema sacar al actor de la tienda virtual.
Flujo bsico de eventos:
25
26
el
el
el
el
Modificar productos:
Descripcin: insertar productos a una categora.
Actores: administrador.
Precondicin: el actor debe haberse logueado y ser administrador.
Postcondicin: el sistema mostrar la misma pgina con la informacin actualizada.
Flujo de eventos:
1. Flujo bsico: El actor podr seleccionar la categora a la que pertenece el
producto que se desee ingresar. Tambin podr eliminar productos de una
lista.
a) Primer flujo alternativo: se selecciona una categora de una lista y se
insertan los datos del producto y su fotografa, si se desea, se aprieta el
botn para insertar.
b) Segundo flujo alternativo: se selecciona un elemento de la lista y se
pulsa el botn de eliminar.
28
Novedades:
29
Enlaces:
30
Registrarse:
31
Datos personales:
32
Contacto:
33
34
Modificar catlogo:
35
Bases de Datos
6.1 Diagrama de Chen
36
4. Cliente: En esta tabla tenemos todos los campos necesarios para guardar al informacin
de un cliente. Podemos ver que todos los campos son obligatorios excepto los datos
correspondientes a la direccin de facturacin y la fecha de nacimiento.
37
5. Formas de pago: en esta tabla guardamos los campos correspondientes a los tipos de las
formas de pago. He aadido un campo comisin en el que indicamos la comisin que
dependiendo de la forma de pago se incrementa en el importe total.
38
7. Producto: en esta tabla tenemos todos los campos necesarios para guardar un productos.
Estos campos son la categora a la que pertenece, en nombre, la direccin URL donde se
encuentra la imagen, la descripcin, el precio y el stock.
8. Sesin: es esta tabla tenemos todos los campos correspondientes para guardar la sesin
de un cliente. Estos campos son el identificador del usuario, el identificador de la sesin, la
fecha de alta y la fecha de baja.
9. Transporte: En esta tabla tenemos todos los campos correspondientes para guardar los
diferentes tipos de transporte. Estos campos son el nombre, el precio que tiene cada tipo de
transporte y los das de envo que tardan.
39
2. Donde estamos: en esta tabla tenemos todos los campos necesarios para guardar la
informacin que aparece por pantalla en el apartado Donde estamos. Esta informacin es
la direccin, el cdigo postal, la provincia, la localidad y un mapa de localizacin.
3. Artculos: Esta tabla guarda los campos necesarios para que se muestre por pantalla un
artculo con su ttulo y su texto.
40
4. Ofertas: En esta tabla guardamos los campos necesarios para crear una oferta. En
ofertas, hago una referencia al artculo que he creado (mediante el identificador id_reg)
para que muestre la oferta por pantalla. Esta oferta tiene titular y contenido y una direccin
URL por si se tuviera que mostrar algn producto.
5. Enlaces: En esta tabla tenemos todos los campos necesarios para guardar los enlaces
que tendremos en nuestra tienda. De estos enlaces guardamos el ttulo que queremos que
tengan y el enlace al cual nos van a llevar mediante una nueva pestaa.
6. Facebook: En esta tabla guardamos los campos necesarios para que nos aparezca un
icono del facebook en un lateral de nuestra tienda, que sea un link que nos lleve hasta la
pgina de facebook de la empresa.
7. Men administracin: En esta tabla guardamos todos los campos necesarios para poder
crear el men de la parte de administracin. Ttulo hace referencia al ttulo que nos saldr
en cada opcin del men, opcin hace referencia a la carpeta que queremos acceder, vista a
la vista que queremos mostrar y orden al orden que queremos en que aparezca en el men.
41
8. Men cliente : En esta tabla guardamos todos los campos necesarios para poder crear el
men del cliente. Ttulo hace referencia al ttulo que nos saldr en cada opcin del men,
opcin hace referencia a la carpeta que queremos acceder, vista a la vista que queremos
mostrar y orden al orden que queremos en que aparezca en el men.
13. Men general: En esta tabla guardamos todos los campos necesarios para poder crear el
men general de la parte pblica. Ttulo hace referencia al ttulo que nos saldr en cada
opcin del men, opcin hace referencia a la carpeta que queremos acceder, vista a la vista
que queremos mostrar y orden al orden que queremos en que aparezca en el men.
18. Datos empresa: En esta tabla guardamos los campos necesarios para obtener los datos
de la empresa. Estos datos son la razn social, el cif, la direccin, el cdigo postal, la
localidad y la provincia, y los utilizaremos al generar la factura en pdf para que salgan
reflejados en ella.
42
Planificacin
7.1. Introduccin
Por definicin la planificacin es la predeterminacin de un curso de accin para
alcanzar los objetivos impuestos. La planificacin involucra la especificacin de objetivos
y metas para un proyecto y las estrategias, polticas, planes y procedimientos para
alcanzarlos.
Todo proyecto de ingeniera de software debe partir con un buen plan. La
planificacin es necesaria por la existencia de incertezas sobre el ambiente del proyecto
software y sobre fuentes externas. La planificacin enfoca su atencin en las metas del
proyecto, riesgos potenciales y problemas que puedan interferir con el cumplimiento de
esas metas.
Los principales problemas en la planificacin de un proyecto de software incluyen
los siguientes:
1. Requerimientos incorrectos e incompletos.
2. Muchas especificaciones de requerimientos son inestables y sujetas a cambios
errneas.
3. La planificacin no se lleva a cabo por la creencia errnea de que es una perdida de
tiempo y los planes cambiaran de todos modos.
4. La planificacin de costos y plazos no es actualizada y se basa en necesidades de
mercadeo y no de los requerimientos del sistema.
5. Es difcil estimar el tamao y complejidad del proyecto de software de modo de
realizar una estimacin de costos y plazos realista.
6. Los costos y plazos no son re estimados cuando los requerimientos del sistema o el
ambiente de desarrollo cambia.
7. No se manejan factores de riesgo.
Actividades que se derivan de la planificacin:
1. Fijar los objetivos y metas.
2. Desarrollar estrategias.
3. Desarrollar polticas.
43
Aprendizaje
Se exponen los pasos que se van a seguir en la fase de Aprendizaje.
Adquisicin de libros y/o manuales dedicados al tema.
Consultas a pginas web especializadas en la materia.
Instalacin y puesta a punto de los equipos para las nuevas tecnologas estudiadas.
Realizar pequeas pruebas sobre implementaciones sencillas.
Evaluar el nivel de conocimientos adquiridos.
Aprendizaje completado.
Diseo
Implementacin
Se exponen los pasos que se seguir en la fase de implementacin.
Revisar el diseo y comprender perfectamente el diseo.
Asignar el personal de desarrollo.
Desarrollar la primera versin del producto.
Desarrollo completado.
Pruebas
Se exponen los pasos que se van a seguir en la fase de Pruebas.
Desarrollar planes de prueba de unidad usando las especificaciones del producto.
Desarrollar planes de prueba de integracin usando las especificaciones del
producto.
Pruebas de unidad:
o Revisin de la modularidad del cdigo.
o Revisin de la calidad del cdigo.
o Probar si los mdulos se ajustan a las especificaciones y a los escenarios.
o Identificar anmalas y anotarlas en las especificaciones del producto.
o Modificar el cdigo.
o Repeticin de las pruebas con el cdigo modificado. Si es correcto
seguiremos adelante; si no lo es, repetiremos la revisin.
o Pruebas de integracin completadas.
Documentacin
Manual del usuario.
Se exponen los pasos que se van a seguir en esta fase.
Desarrollar las especificaciones del manual de usuario.
Desarrollar el manual de usuario.
Revisar la documentacin para el usuario, si es correcta continuar, en caso contrario
46
Rendimiento.
47
Coste.
Mantenibilidad.
Planificacin.
7.5 Esfuerzo
Mtodo de estimacion mediante UUCP sin ajuste: los casos de uso son dar una
explicacin de lo que se quiere hacer con el sistema (desde el punto de vista del usuario).
Son casos concretos del funcionamiento de la aplicacin. Los clasificamos en:
Tipo
Descripcin
Simple
Menor o igual a 3 transiciones
Medio
De 4 a 7 transiciones
Compuesto Mayor de 7 transiciones
Calculamos el UUCP (puntos de casos de uso sin ajustar):
Tipo
Factor
Simple
5
Medio
10
Complejo 15
Nmero Caso de uso
Complejidad
registrarse
complejo
login
medio
catlogo
simple
novedades
simple
Donde estamos
simple
enlaces
simple
Buscar productos
medio
Modificar catlogo
medio
Modificar productos
complejo
10
contacto
medio
11
Datos personales
medio
12
complejo
13
Mostrar pedidos
medio
14
Aadir al carrito
complejo
15
Cesta (paso 1)
complejo
16
Cesta (paso 2)
complejo
17
Cesta (paso 3)
complejo
18
Cesta (paso 4)
complejo
48
19
Cesta (paso 5)
complejo
20
salir
simple
Sistema distribuido
Rendimiento
Cdigo reusable
Fcil de instalar
Fcil de usar
0,5
Portable
0,5
Fcil de modificar
10
Concurrente
11
Caractersticas especiales
12
13
Fase Inicio
Tarea
Descripcin
Duracin
T1
Anlisis de negocio
2 das
49
T2
Especializacin de requisitos
3 das
T3
2 das
T4
2 das
T5
0 das
TOTAL 9 das.
Fase Elaboracin: aqu incluiremos tanto el aprendizaje como el diseo.
Tarea
Descripcin
Duracin
T6
5 das
T7
10 das
T8
1 da
T9
5 das
T10
3 das
T11
Aprendizaje completado
0 das
T12
25 das
T13
2 das
T14
25 das
T15
7 das
T16
2 das
T17
Diseo completado
TOTAL 63 das.
0 das
1 da
T19
0 das
T20
40 das
T21
Prueba alfa
15 das
T22
Diseo completado
0 das
T23
4 das
T24
Diagrama de PERT
Total 61 das
Fase Transicin
Tarea
Descripcin
T25
1 da
Duracin
T26
Desarrollar
usuario
el
manual
de 4 das
T27
T28
T29
T30
Total 11das.
Documentacin completada
0 das
51
Manual de Usuario
8.1 Requisitos Hardware y Software
8.1.1 Hardware
Servidor: Requisitos mnimos y recomendados.
Procesador 233 MHz (recomendado de 2 GHz o superior) Intel Pentium/Celeron o
AMD K6/Athlon/Duron o compatible.
128 MB de RAM (recomendado 1GB).
52
Linux
Requisitos del sistema mnimos:
Procesador a 233 Mhz
64 MB de RAM
50 MB de espacio libre en disco
Requisitos recomendados:
Procesador a 500 Mhz
256 MB de RAM
100 MB de espacio libre en disco
53
8.1.2 Software
Filezilla
HeidiSQL
Windows XP SP2
Para poder acceder a todos los mens debers estar registrado. Para registrarse
tenemos como un cliente nuevo hay que pulsar en cliente nuevo. Si ya estas registrado,
simplemente tienes que introducir tu usuario y tu contrasea y pulsar en enviar.
Una vez pulsas cliente nuevo, aparece un formulario que tienes que rellenar con los
datos pedidos. Hay una serie de datos que son obligatorios y otros que son opcionales.
55
Como podemos apreciar en la fotografa los datos opcionales son los campos de la
direccin de facturacin.
Una vez estamos dentro de la tienda virtual como usuario identificado, ya podemos
acceder a todas las funcionalidades que posee la tienda.
56
En esta pgina nos pedir el usuario y la contrasea para poder acceder. El usuario
es admin y la contrasea es 1234.
Una vez accedemos como administrador del sistema podemos ver un men con
todas las opciones que tenemos:
Artculos: nos permite crear un artculo nuevo, o modificar los ya existentes.
Categoras: Aqu podemos ir agregando o eliminando categoras.
Contacto: podemos aadir, eliminar o modificar los datos de contacto.
Enlaces: podemos aadir, eliminar o modificar enlaces.
Formas de pago: podemos aadir, eliminar o modificar las formas de pago.
Men administracin: podemos aadir, eliminar o modificar los datos que se nos
muestran en el men de la parte de administracin.
57
Men general: podemos aadir, eliminar o modificar los datos que se nos muestran
en el men de la parte pblica (parte que ve el usuario).
Men cliente: podemos aadir, eliminar o modificar los datos que se nos muestran
en el men del cliente (men que aparece con las funcionalidades nuevas que puede
ver un cliente cuando est registrado).
Ofertas: podemos aadir, eliminar o modificar las ofertas.
Pedidos: podemos aadir, eliminar o modificar los pedidos.
Productos: podemos aadir, eliminar o modificar los productos.
Transporte: podemos aadir, eliminar o modificar el tipo de transporte.
Juegos de Pruebas
En este apartado voy a enumerar los llamados juegos de pruebas que he realizado
para comprobar que toda nuestra aplicacin funciona correctamente. Estos juegos de
pruebas los he realizado en la parte de administrador.
Podemos apreciar que por defecto ya nos vienen los campos de usuario y de
contrasea debidametne rellenados. Si modificamos los campos de usuario y/o contrasea
introduciendo datos incorrectos, podremos observar que cuando pulsamos el botn entrar
no nos lleva a ninguna pgina. En cambio si introducimos los datos correctos y pulsamos el
botn de entrar, accederemos a todo el men de administracin que es el que nos permite
hacer todas las modificaciones de nuestra tienda virtual.
58
Una vez estemos dentro de categoras nos aparecer un listado con todas las
categoras que tenemos. El identificador de cada categora, el nombre y la descripcin.
Lo primero que vamos a hacer va a ser crear una nueva categora. Posteriormente,
comprobaremos que esta categora se muestra, la modificaremos y la eliminaremos.
Creamos una nueva categora:
59
Figura 54: Listado de categoras en la parte de administracin con la categora nueva creada
Vemos que ahora en la lista nos aparece una nueva categora llamada categora de
prueba con el identificador n 13. Esta es la categora que acabamos de crear. Ahora vamos
a la parte pblica y comprobamos que la categora se ha aadido correctamente.
60
Como podemos apreciar, ya no nos sale la categora que queramos eliminar, por lo
tanto podemos afirmar que la gestin de categoras funciona correctamente.
9.3 Contacto
En este juego de pruebas vamos a comprobar que funciona el contacto. Si entramos
en la parte de administracin y clickamos sobre contacto podremos ver que est vaco, eso
significa que ningun cliente o usuario se ha puesto en contacto con nosotros.
62
63
64
Podemos apreciar, que ahora nos sale una tabla vaca y en la parte inferior nos
aparece un mensaje diciendo que no hay contactos para mostrar. As pues, de esta manera
queda probado que el entorno de contacto funciona correctamente.
9.4 Enlaces
En este juego de pruebas voy a comprobar el correcto funcionamiento de los
enlaces. Los enlaces los administraremos desde la parte de administracin, y cuando
queramos abrir uno en la parte pblica se nos abrirn en una nueva pestaa. As pues, ahora
voy a ir enumerando los pasos que he realizado para comprobar el correcto funcionamiento
de los enlaces.
Como en todos los casos empezar por el men de administracin. Primero me
coloco en el menu de administracin general.
65
Una vez pulsamos sobre enlace podemos registrar un enlace nuevo o ver el listado.
Primero voy a mostrar el listado para que se puedan ver los enlaces que tengo, y as,
comprobar luego mediante el listado otra vez, que se ha aadido el enlace nuevo. As pues,
pulso sobre listado.
Figura 68: listado con los enlaces que tenemos en la parte de administracin
Se puede apreciar que tenemos dos enlaces en nuestra pgina. Ahora vamos a
aadir otro enlace con el botn nuevo.
66
Ahora para comprobar que los enlaces funcionan bien, voy a ir a la parte pblica.
Alli clickar sobre enlaces y me tiene que aparecer el enlace que acabo de crear.
67
Como podemos apreciar, ahora el usuario ya puede ver el enlace en la parte pblica.
Ahora pulsaremos sobre el enlace y si todo funciona correctamente, se nos abrir la pgina
asociada al enlace en una nueva pestaa.
Figura 72: Pgina de uno de los enlaces, para comprobar que funciona correctamente
68
Aqu podemos ver que cada elemento tiene un identificador, una opcin, una vista y
un orden. En el caso de que queramos mostrar ms cosas en nuestro men de
administracin tendramos que aadir un nuevo elemento, con su ttulo correspondiente, su
opcin y con la vista queremos que se muestre. Es decir, si queremos que nos muestre un
listado, normalmente la vista a mostrar ser listado, pero si en cambio queremos aadir un
elemento nuevo (como es el caso de enlaces) la vista ser nuevo.
69
Como podemos apreciar en la imagen, todos los campos que se listan en la parte de
administracin aparecen en la parte pblica.
El men general funciona correctamente ya que si pulsas sobre cualquiera de los
campos (inicio, cliente nuevo, donde estamos, enlaces, contacto y articulos) cumplen con
la funcin por la que han sido diseados.
70
71
Nos muestra los datos del cliente que tenemos en estos momentos con la sesin
iniciada (en este caso son nuestros datos). Por lo tanto podemos afirmar que funciona
correctamente.
72
Como podemos apreciar en la imagen nos aparece un listado con todas las formas
de pago que hay en la tienda. En este caso solo est el pago mediante transferencia
bancaria. Ahora vamos a aadir una nueva forma de pago, que ser el pago contrarembolso. As pues pulsamos el botn nuevo y rellenamos los campos.
73
Una vez hemos cambiado los campos que queremos modificar, pulsamos el botn
de guardar y nos tiene que aparecer otra vez el listado pero con los datos de la forma de
pago modificada nuevos.
74
As pues, se puede apreciar que he aadido una nueva forma de pago que se llama
forma de pago de prueba, con su correspondiente descripcin y comisin. Ahora voy a
eliminar esta forma de pago y as comprobar que la accin de borrar funciona
correctamente. El primer paso a realizar es pulsar el botn de edicin que tenemos al lado
de la comisin.
75
Una vez hemos pulsado el botn del que os he hablado anteriormente, pulsamos el
botn de eliminar. Nos saldr una ventana con un mensaje de si queremos eliminar la
forma de pago. Clickamos en aceptar y nos saldr otra vez una pantalla con el listado de
todas las formas de pago que tenemos.
76
Como podemos apreciar en la imagen nos aparece un listado con todas las formas
de transporte que hay en la tienda. En este caso solo est el transporte mediante DHL.
Ahora vamos a aadir una nueva forma de transporte, que ser el envo por correos. As
pues pulsamos el botn nuevo y rellenamos los campos.
77
He insertado una nueva forma de transporte llamada prueba. Ahora la voy a modificar para
y as comprobaremos que la forma nueva de transporte se modifica y sus datos se guardan.
78
79
9.10 Productos
En este juego de pruebas, vamos a comprobar que la gestin de productos funciona
correctamente. Este juego de pruebas va a consistir en la secuencia de varios pasos a
realizar. Lo primero que tenemos que hacer, es irnos a la parte de administrador, y clickar
sobre productos.
Figura 95: listado de los productos que tenemos en la tienda en la parte de administracin
Como podemos apreciar, si pulsamos en productos nos aparecer una lista ocn
todos los productos que tenemos guardados. Tambin podemos apreciar, que hay una serie
de id_categoria. Este identificador de categora se lo asignamos dependiendo de la
categora a la que queramos que pertenezca el producto. Actualmente, tenemos las
siguientes categoras:
id_categoria 8: diademas
id_categoria 9: diademas infantiles
id_categoria 10: prendidos infantiles
id_categoria 11: pasadores
id_categoria 12: tocados
A continuacin, vamos a crear un producto nuevo, y lo aadiremos a la categora de
tocados. As pues, vamos a pulsar el botn de nuevo y rellenamos los campos necesarios.
80
Aqu podemos apreciar que aparece el tocado paradise. Ahora vamos a pulsar sobre
este tocado, y nos aparecern los datos y la foto en grande.
81
82
Pulsamos aadir al carrito y esta pgina nos redirecciona a la pgina del carrito de
la compra. En esta pgina tendremos tres opciones: vaciar carrito, seguir comprando o
confirmar carrito.
83
Como podemos ver hasta aqu funciona correctamente. Ahora vamos a pulsar
siguiente y nos aparecen los diferentes tipos de transporte.
84
De la misma manera, tambin se puede apreciar que las formas de pago en la parte
pblica funcionan correctamente. Seleccionamos la opcin de contra-rembolso y pulsamos
siguiente.
85
9.12 Stock
En este juego de pruebas vamos a comprobar que se decrementa correctamente el
stock de un producto al realizarse una compra. En el juego de pruebas anterior, hemos
realizado la compra de una diadema infantil. Concretamente hemos realizado la compra de
la diadema Candy. Si vemos la figura del detalle de la diadema en el juego de pruebas
anterior, podremos observar que el stock de esa diadema era 2. Ahora, como hemos
comprado una diadema, si el juego de pruebas funciona correctamente podremos observar
que el stock de esa diadema se ha decrementado. As pues, ahora el stock de la diadema
tendr que ser 1.
9.13 PEDIDOS
En este juego de pruebas vamos a comprobar que se guarda correctamente el
historial de pedidos de cada usuario y de la misma manera los productos de cada pedido.
Como tenemos la sesin iniciada de Sandra, pulsaremos sobre los la opcin pedidos.
86
En este caso, este usuario slo ha realizado un pedido, por lo que nos tendra que
aparecer nica y exclusivamente el pedido realizado.
Como podemos apreciar nos aparece el pedido que hemos realizado, con la fecha y
la direccin de envo. Tambin nos aparece un campo estado vaco. Este campo estado lo
tenemos que cambiar desde la parte de administracin, y es el que indicar al cliente el
estado del pedido (pendiente, en proceso, enviado, recibido..). As pues vamos a irnos a la
parte de administracin a introducir ese campo.
Dentro del men de administracin pulsaremos la opcin de pedido. Nos aparecer
un listado con todos los pedidos que tenemos.
87
Como podemos ver, nos muestra el producto del pedido correctamente, por lo que
el proceso de los pedidos podemos afirmar que funciona correctamente.
88
BIBLIOGRAFA
La bibliografa que he utilizado para realizar este proyecto ha sido muy diversa. Me
resultara imposible nombrar todas las pginas y manuales online consultados, pero s que
puedo enumerar los manuales que ms he utilizado:
Manual de PHP: http://php.net/manual/es/index.php
Manual de SQL: http://www.desarrolloweb.com/manuales/9/
Manual de JavaScript: http://www.manualdejavascript.com/
Manual de HTML: http://www.uv.es/jac/guia/
Tambin me result muy til esta pgina para comprender el patrn del modelo
vista controlador: http://craftyman.net/mvc-en-php/
CONCLUSIONES
Este proyecto ha sido un gran reto para mi, ya que anteriormente no haba trabajado
con herramientas de tipo Web pero era una cosa que me despertaba un gran interes. Tengo
la impresin de que una sola persona puede hacer grandes cosas en el tema web y durante
el proceso de creacin se me han ido ocurriendo ideas para poder modificar y mejorar la
pgina web, que antes de empezar ni siquiera se me haban ocurrido. Tambin he
descubierto el patrn modelo-vista-controlador, que antes de comenzar con este proyecto ni
siquiera saba que exista. Me parece muy interesante el hecho de que puedas cambiar toda
la apariencia de una aplicacin sin tocar nada interno, es decir, modificando solo las vistas.
TRABAJO PENDIENTE
Sin embargo, este proyecto no lo he podido finalizar como a mi me hubiera gustado
debido a la falta de experiencia en este campo y al tiempo.
Me hubiera gustado mucho haber realizado la tienda virtual de manera
internacional, haber aadido varios idiomas y conversores de monedas.
Tambin me hubiera gustado poder aadir el pago mediante tarjeta de crdito y
poder desarrollar la pasarela de pago virtual (TPV). Esto ltimo lo voy a realizar una vez
finalizada la carrera para poder acabar la tienda virtual en condiciones y sentirme realizada
conmigo misma.
Tambin me hubiera gustado poder realizar la parte de la administracin con una
interfaz ms elaborada pero no he podido por falta de tiempo. Asimismo, prefera que todo
funcionara correctamente antes de hacer una interficie ms elaborada y que algunas de las
funcionalidades no hagan la accin esperada.
89