2. Especificación de requisitos
Organizaremos esta especificación siguiendo la estructura estándar IEEE 830/985. La especificación de requisitos es una descripción detallada del comportamiento del proyecto que se va a llevar a cabo, en la que describiremos el propósito, su ámbito, definiciones, acrónimos y abreviaturas utilizadas, las referencias de la especificación y la visión global del trabajo.
En este capítulo se pretenden reunir los requisitos y requerimientos previos al desarrollo de la tienda electrónica de manera que ésta se adapte a las necesidades del cliente.
Esta especificación de requisitos va dirigida al cliente, al desarrollador de la tienda y a aquellas personas interesadas en conocer la funcionalidad de esta tienda.
El proyecto consistirá en la creación de una tienda electrónica para la venta de manualidades online, dado que el cliente carece de tienda física. Estará dirigida a todo tipo de usuarios de cualquier rango de edad.
Recibirá el nombre de Mis cosas a mano, por estar todos sus productos de venta hechos a mano por el cliente.
En esta página se podrá navegar dentro del catálogo, el cual estará dividido según la categoría a la que pertenezca el producto, sin necesidad de que el cliente esté registrado. Pero no podrá realizarse ninguna compra si no se crea una cuenta o se está identificado a la hora de efectuar el pago. Otras secciones disponibles en la tienda serán una sección “Sobre nosotros” en la que se explicará información sobre la tienda, un blog en el que se publicarán noticias, trucos y consejos sobre los productos y un formulario de contacto.
Todos los productos tendrán una descripción de sus características, distintas fotografías de las cuales una será la portada, el precio del producto con IVA., opción de añadirlo al carrito o a la lista de deseos y diversos botones con las redes sociales para compartir el producto.
El administrador de la tienda, por su parte, tendrá el panel de administración propio de Prestashop en el cual podrá crear nuevas categorías de productos, agregar nuevos productos y crear nuevas entradas en el blog.
Apache. Servidor web de código abierto para plataformas Unix, Windows y Mac, que implementa el protocolo HTTP/1.1 y la noción de sitio virtual. Sirve, entre otras cosas, para previsualizar y probar código mientras éste está en desarrollo.
BDA. Acrónimo de Base de Datos. Banco de información que contiene datos pertenecientes a un mismo contexto y se encuentran almacenados para un posterior uso. Para la realización de consultas se utiliza el lenguaje de consultas SQL.
Carrito de la compra. Hace referencia al apartado donde se almacenan aquellos productos que están seleccionados para una posterior compra. Al utilizar la misma funcionalidad que los carros de la compra convencionales, recibe el mismo nombre.
CMS. Acrónimo inglés de las palabras “Content Management System”. Traducido al español como Sistema de gestión de contenido. Programa informático que ofrece la posibilidad de crear una estructura de soporte para el desarrollo de contenidos, principalmente páginas web.
CSS. Acrónimo inglés de las palabras “Cascading Style Sheets”. Lenguaje de programación utilizado para diseñar la presentación de las páginas web creadas en HTML.
ECommerce. Hace referencia al comercio electrónico, o lo que es lo mismo, aquel comercio que se lleva a cabo a través de Internet.
HTML. Acrónimo inglés de la palabra “Hyper Text Markup Language”, traducido al castellano como lenguaje de marcación de hipertexto. Lenguaje de programación diseñado para la elaboración de páginas web, el cual define una estructura básica y un código para la definición de contenido de éstas.
IEEE. Acrónimo inglés de las palabras “Institute of Electrical and Electronics Engineers”. Asociación técnico-profesional mundial dedicada a la creación de estándares.
Magento. CMS de código abierto utilizado para llevar a cabo el desarrollo de tiendas online mediante la modificación de páginas dinámicas y el uso de componentes.
Módulo. Complemento programado que añade funcionalidad a la plataforma Prestashop, como puede ser un nuevo tipo de pago o una manera diferente de visualizar las imágenes.
MySQL. Sistema de gestión de bases de datos relacional de software libre.
Navegador web. Aplicación software que permite al usuario recuperar y visualizer la información ofrecida por una página web. Estos recursos pueden estar disponibles en el ordenador del usuario o en un servidor remoto.
Open Source. Traducido como código abierto. Es el conjunto de aplicaciones que permiten la visualización y modificación del código de éstas por los usuarios que las utilizan.
Paypal. Empresa que ofrece un servicio de pago virtual a través de una cuenta creada con tus datos bancarios, presenta una gran seguridad a la hora de efectuar compras por Internet.
PHP. Acrónimo inglés de las palabras “Hypertext Processor”. Lenguaje de programación de scripts y funciones que facilitan la creación de páginas, puede usarse junto al código HTML para la programación de éstas.
Prestashop. CMS de código abierto dedicado al desarrollo de tiendas de comercio electrónico. Facilita la creación de éstas y proporciona un panel de administración desde el cual personalizarlas y manejarlas.
Responsive. Adaptación automática de la visualización de una página web independientemente del dispositivo utilizado.
Tienda electrónica. También llamada tienda virtual. Aplicación informática que permite acceder a servicios similares a los de una tienda física, entre los que encontramos acceder a visitar el catálogo de productos o efectuar una compra y pagarla para posteriormente recibir el pedido en el lugar solicitado.
Tpv. Acrónimo de Terminal punto de venta. Aplicación utilizada por los bancos y cajas para la realización de transacciones en Internet de una forma segura.
UML. Acrónimo inglés de “Unified Modeling Language”. Lenguaje gráfico utilizado para la construcción, documentación, visualización y especificación de un sistema software.
Usuario anónimo. Todo aquel usuario que entre a la tienda virtual sin registrarse con una cuenta.
Usuario registrado. Todo aquel usuario de la tienda virtual que navegue por ella habiéndose creado una cuenta previamente con sus datos y accedido a ella.
WordPress. CMS orientado a la gestión de páginas web, el cual ha alcanzado gran relevancia gracias a su utilización en el uso de creación de blogs.
XAMPP. Servidor web libre independiente de plataforma que consiste principalmente en la gestión de bases de datos MySQL, servidor Apache y los intérpretes para lenguajes de script PHP y Perl.
La especificación de requisitos estará centrada en la descripción del desarrollo de la aplicación, sus características, restricciones, funciones, supuestos y dependencias.
Una vez terminada la descripción general de la misma, se pasará a una descripción más detallada de los requisitos específicos de la aplicación.
www.miscosasamano.es será una web de comercio electrónico dedicada a la venta y distribución de productos hechos a mano por el propietario de la tienda.
El propósito de esta tienda electrónica será el de facilitar la distribución de los productos a sus clientes y la posibilidad de aumentar el rango de venta más allá de la distribución local.
Otro aspecto importante es la creación de un blog para presentar un acercamiento con los clientes proporcionándoles noticias, consejos y la posibilidad de consultar dudas de una manera más cercana.
La aplicación está desarrollada mediante software libre y será accesible para cualquier usuario que disponga de un dispositivo con conexión a Internet y un navegador web.
Los futuros usuarios verán la aplicación como una página web en la que visitar el catálogo y sus respectivos productos para posteriormente poder realizar una compra de los mismos o añadirlos a la lista de deseos. También encontrarán información acerca del creador de los productos y dueño del sitio web, noticias sobre nuevos productos, información importante o consejos para el mantenimiento de los productos a través de entradas en el blog de la tienda y un apartado de contacto a través del cual presentar dudas, preguntas o solicitudes especiales.
La implementación de la tienda electrónica se realizará de manera local para más tarde migrarla al servidor ofrecido por el hosting contratado en el que se alojará la página. Para llevar a cabo esta implementación se hará uso de XAMPP para la creación de un servidor localhost en el que instalar Prestashop y MySQL para la creación de la base de datos utilizada para almacenar los datos de la tienda.
Los requisitos necesarios para acceder a los servicios ofrecidos por la aplicación son los siguientes:
Navegador web indistinto.
Sistema operativo Linux, Windows o Mac
Conexión a Internet.
Clasificaremos las funciones de nuestra aplicación en diversos bloques.
Funciones de búsqueda. Cualquier usuario que acceda a la tienda, será capaz de visualizar los productos, su precio y una descripción además de listarlos en función de sus características. Podrá realizar búsquedas en el catálogo o mediante la barra de búsqueda situada en la parte superior de la tienda. Será capaz de ver las distintas entradas del blog de la tienda y de contactar con la tienda a través de un formulario de contacto.
Funciones de compra. En caso de querer finalizar el proceso de compra y usar un método de pago, el usuario deberá registrarse o acceder a su cuenta.
Funciones de gestión. Por parte del cliente se podrán modificar los datos pertenecientes a su cuenta y añadir o modificar su dirección. El resto de éstas solo podrán ser llevadas a cabo por el administrador de la tienda, el cual estará encargado de realizar las altas, bajas y modificaciones de productos, así como de las categorías a los que pertenecen. También podrá eliminar o modificar datos de los usuarios, consultar pedidos y modificar su estado. En cuanto al blog de la tienda, podrá realizar nuevas entradas, borrar y modificar las anteriores o programar alguna para una fecha futura.
Encontramos tres tipos de perfiles distinguidos, el administrador y los usuarios entre los que distinguimos entre registrados y anónimos.
El administrador es el dueño de la tienda y por tanto es el encargado de gestionar y organizar el catálogo, las categorías y los productos que se encuentran en ellas añadiéndoles la descripción, el precio y fotografías que muestren cómo son. Entre otra de las cosas que puede hacer encontramos toda la gestión de los clientes, esto es, modificar el estado de sus pedidos, cambiar datos de sus cuentas o borrarlas según sea necesario. Es el encargado de llevar a cabo el funcionamiento del blog creando entradas nuevas sobre noticias o consejos a cerca de los productos ofertados. Además, al ser el administrador de la tienda, puede personalizarla mediante módulos de Prestashop, agregar funcionalidades o cambiar el tema.
Los usuarios anónimos son aquellos que han entrado por primera vez a la tienda o que aún no han iniciado sesión. Son usuarios normales que pueden navegar por la tienda y realizar búsquedas o listar las categorías existentes en la página para ver los productos ofertados. A pesar de que podrá añadir estos productos al carrito, no podrá realizar la compra a no ser que cree una cuenta o se registre en la suya dado que es necesario tener un conocimiento previo de los datos del cliente para llevar a cabo este paso. En caso de que sea necesario realizar alguna consulta o se quiera proponer algún tipo de producto, este usuario puede ponerse en contacto con el administrador de la tienda mediante el formulario de contacto encontrado en la misma. También, en caso de querer conocer más información acerca de la tienda y sus productos, el usuario puede visitar el blog asociado a la misma y leer sobre noticias o consejos de los productos.
Finalmente, los usuarios registrados son aquellos que han iniciado sesión con su cuenta y se dispone de datos sobre ellos. Pueden hacer lo mismo que los anónimos pero, en este caso, por disponer de una cuenta registrada con sus datos, sí se les permite finalizar el pedido de compra y acceder al estado de sus pedidos.
Al utilizar para la creación de la tienda la herramienta Prestashop, la utilización de lenguajes estará limitada a HTML, XML, JavaScript, PHP y AJAX, puesto que son los incorporados por esta plataforma y el uso de cualquier otro lenguaje podría llegar a presentar algún error en la herramienta.
La administración visual de la misma se realizará principalmente mediante la distribución de módulos, algunos de los cuales vienen ofrecidos en la misma página de la plataforma. Al ser una herramienta de código abierto, permite la creación y modificación de estos módulos, lo cual puede conllevar riesgos y añadir o restar funcionalidad a la plantilla o incluso llegar a producir algún error.
En cuanto a las restricciones de resolución, la aplicación se realizará con un diseño responsive, de esta manera se tendrá la seguridad de que se llevará a cabo una correcta visualización de la misma independientemente del dispositivo utilizado para navegar por ella.
Se deberá realizar una copia de seguridad de la página web con una periodicidad adecuada, como puede ser una vez al mes.
No existe restricción alguna en cuanto al sistema operativo utilizado por el cliente, dado que la herramienta utilizada funciona a nivel Web y depende del navegador instalado para su correcta visualización.
Será posible acceder a la página web teniendo una conexión a Internet y un navegador web compatible con el protocolo HTTP.
Como factor a tener en cuenta encontramos la posibilidad de que exista una gran afluencia de usuarios en la tienda virtual al mismo tiempo. Este problema podría causar una saturación del servidor y, por tanto, lentitud en el funcionamiento de la página. La solución de estos problemas podría llevarse a cabo contratando un hosting que permita una mayor afluencia de visitas.
En este apartado se presentarán aquellos requisitos funcionales, de interfaz, atributos y requisitos específicos que deberán ser satisfechos por el sistema.
Función de visualización de productos
Introducción: Accediendo al producto en sí y dándole encima con el ratón, el usuario puede visualizar los datos relacionados con el producto como son su descripción, precio, fotografías del mismo, reseñas de otros clientes y una opción de personalización.
Entradas: Click con el ratón sobre el producto.
Proceso: Visualización del producto en cuestión.
Salida: Una nueva página en la que se muestra la información del producto y las diferentes características que tiene.
Función de listado de productos por categoría
Introducción: El usuario puede acceder a un listado de los productos de la página a través del botón tienda situado en la parte superior de la página. Tras seleccionar el tipo de producto se listarán miniaturas del tipo de producto y una breve descripción de los productos.
Entradas: Click con el ratón sobre el botón de la tienda.
Proceso: Listado de todos los productos almacenados bajo el mismo tipo de categoría.
Salida: Una nueva página en la que se visualiza un listado de las miniaturas y breve descripción de los productos bajo esa categoría seleccionada.
Función de búsquedas en el catálogo
Introducción: A través de la barra de búsquedas situada en la parte superior derecha de la página de la tienda, el usuario puede realizar búsquedas dependiendo del producto que busque.
Entradas: Términos de búsqueda, palabra o conjunto de palabras clave asociados a productos de la página.
Proceso: Búsqueda de coincidencias en la base de datos de la tienda con los términos facilitados.
Salida: Todo el contenido de la página que tenga relación con los términos buscados.
Función de visualización de entradas del blog
Introducción: A través del apartado de blog situado en la cabecera de la página web, el usuario puede acceder a las distintas entradas publicadas por el blog de la tienda.
Entradas: Click en el botón blog de la cabecera de la página.
Proceso: Recuperación de las entradas del blog asociadas a la tienda.
Salida: Las últimas entradas publicadas en el blog de la tienda.
Función de contacto con el administrador de la tienda
Introducción: Un usuario puede ponerse en contacto con el administrador de la tienda para realizar alguna pregunta, sugerencia o pedido personalizado mediante el formulario de contacto encontrado en el botón de la cabecera.
Entradas: Click en el botón contacto de la cabecera de la página e introducción de los datos requeridos y el texto deseado para contactar.
Proceso: Validación de los datos requeridos y envío de la información al email asociado al administrador.
Salida: Un mensaje de texto que valida el envío del contacto.
Función de añadir al carro
Introducción: Al acceder a un producto, al lado de su imagen de portada y bajo la descripción corta del mismo se muestra un botón para “agregar al carrito”, esto agrega un producto al carrito para más tarde poder efectuar la compra.
Entradas: Producto que se va a comprar.
Proceso: Se añaden al carrito los productos seleccionados.
Salida: En la vista general del carrito se muestran aquellos productos añadidos y un desglose de los precios, además de la cantidad y el comentario sobre personalización asociado al mismo en caso de que lo haya.
Función de actualizar el carro
Introducción: Una vez haya algún producto añadido en el carrito, éste se podrá borrar o cambiar su cantidad.
Entradas: En caso de querer borrar el producto, será necesario darle al botón de la papelera. En caso de querer aumentar o disminuir la cantidad de productos en el carro del mismo tipo, tendrá que ponerse el número concreto o utilizar los botones asociados.
Proceso: El producto será eliminado del carrito o se modificará la cantidad.
Salida: En la vista general del carrito se verán los cambios, desaparecerá el producto borrado o se modificará la cantidad de productos y por ende el precio total del carrito.
Función de finalización del proceso de compra
Introducción: El cliente puede terminar la compra de los productos añadidos previamente al carrito. Solo puede finalizarse en caso de estar registrado.
Entradas: Creación o inicio de cuenta, en caso de que se cree la cuenta nueva se introducirá una dirección asociada a ésta. Tras esto se elegirá el método de pago por Paypal o transferencia bancaria.
Proceso: Validación de los datos introducidos.
Salida: El cliente recibirá en su correo un email con toda la información acerca del
pedido. Esta información también podrá ser accedida a través del panel de cuenta en la tienda.
Función de modificación de los datos de su cuenta
Introducción: En cualquier momento el usuario puede acceder al panel de su cuenta y modificar los datos asociados a ella como puede ser la dirección de envío y la de facturación.
Entradas: Introducción de los nuevos datos asociados a la cuenta.
Proceso: Validación de los datos e introducción de los cambios en la base de datos correspondiente.
Salida: Mensaje de estado sobre el éxito o fallo de la operación realizada.
Función de añadir nueva categoría
Introducción: A través del formulario proporcionado por la plataforma, el administrador introducirá todos los datos necesarios para la creación de una nueva categoría y elegirá si tiene alguna categoría padre de la que dependa.
Entradas: Descripción de la categoría y selección de la categoría padre.
Proceso: Una nueva entrada en la base de datos correspondiente con la nueva categoría.
Salida: Una nueva línea con la categoría creada en el panel de administración.
Función de borrar categoría
Introducción: El administrador puede borrar una categoría aunque esta tenga productos asociados a ella. En este caso los productos pasarán a ser parte de la categoría padre.
Entradas: Selección de las categorías a borrar y click sobre el icono de la papelera.
Proceso: El sistema borrará la línea asociada a la categoría borrada y cambiará la categoría de los productos que pertenecían a ella.
Salida: Desaparición de la línea asociada a la categoría borrada.
Función de modificar categoría
Introducción: El administrador puede acceder desde el panel de administración a cualquier categoría existente y modificar la información asociada a ella.
Entradas: Rellenar el formulario proporcionado por la plataforma para modificar los datos deseados.
Proceso: Se cambiará en la base de datos aquellos cambios que hayan sido modificados.
Salida: Se mostrará un mensaje de éxito y se observará la línea asociada a la categoría con los cargos pertinentes.
Función de añadir nuevo producto
Introducción: En el panel de administración, dentro del catálogo podrá encontrarse un apartado dedicado a los productos desde el cual se podrá crear uno nuevo rellenando los datos del formulario distribuido por pestañas.
Entradas: Rellenado de los datos asociados al producto como son la descripción asociada, la fotografía, el precio y meta-datos.
Proceso: Introducción de una nueva línea en la base de datos con la información creada para el producto en cuestión.
Salida: Aparición de una nueva línea en el panel asociada al producto creado.
Función de borrar producto
Introducción: Igual que en la función anterior, en el panel de administración, en la parte dedicada al catálogo, se encontrará un apartado dedicado a los productos desde el cual se podrá seleccionar y borrar cualquier producto que se quiera.
Entradas: Click en el botón de la papelera sobre la línea del producto que se quiera eliminar.
Proceso: Eliminación de la línea en la base de datos asociada a ese producto.
Salida: Mensaje de éxito y desaparición de la línea asociada al producto.
Función de modificar producto
Introducción: El administrador entra en el producto seleccionado y modifica los datos requeridos de éste mediante el formulario proporcionado por la aplicación.
Entradas: Aquellos datos que se desean modificar.
Proceso: Modificación en la base de datos de los campos cambiados en el proceso.
Salida: Mensaje de éxito y la línea asociada al producto con los datos modificados.
Función de eliminar cuenta de cliente
Introducción: En caso de que haya algún problema con alguna cuenta o simplemente el administrador quiera eliminar una cuenta de cliente de su base de clientes. Podrá acceder mediante el panel de administración al apartado clientes y borrar aquel que seleccione.
Entradas: Selección del cliente y click sobre el icono de borrado.
Proceso: Eliminación de la línea asociada al cliente en la base de datos.
Salida: Desaparición de la cuenta asociada al cliente borrado.
Función de modificar datos de la cuenta de cliente
Introducción: El administrador puede acceder a los datos del cliente y cambiar aquellos asociados a la dirección o añadir alguna nota que no será visualizada por el mismo.
Entradas: Cambio de los datos asociados a la cuenta del cliente.
Proceso: Modificación de la línea en la que se encuentren los datos asociados a esa cuenta de cliente.
Salida: Mensaje de éxito y visualización de la información modificada.
Función de consultar pedidos
Introducción: El administrador puede visualizar los pedidos realizados mediante el panel de administración en el apartado asociado a pedidos.
Entradas: Click en el apartado de pedidos.
Proceso: Recuperación de la base de datos de la información de los pedidos realizados en la tienda.
Salida: Listado de los productos realizados en la tienda.
Función de modificar el estado de pedidos
Introducción: En algunos casos como puede ser la realización de pago mediante transferencia bancaria, el administrador será el encargado de cambiar el estado del pedido en el momento de la recepción del pago y su validación. Para ello deberá acceder al panel de control y modificar los datos del pedido.
Entradas: Cambio del estado de pendiente al estado pertinente.
Proceso: Modificación en la base de datos de la línea correspondiente al estado de ese pedido.
Salida: Mensaje de éxito y visualización del estado cambiado.
Función de crear entrada de blog
Introducción: Para la creación de una nueva entrada en el blog se ha de acceder al panel de administración de WordPress dado que esta es la plataforma utilizada para el blog, que ha sido integrada en la tienda creada por Prestashop. Desde ese panel accederá a las entradas y realizará una nueva que será publicada en el blog de la tienda.
Entradas: Creación de la entrada escribiendo el título, la información de la entrada y alguna fotografía si se requiere. Añadido de etiquetas asociadas a la entrada.
Proceso: WordPress crea la entrada que se visualizará dentro de la página de la tienda.
Salida: Visualización de la entrada en el blog.
Función de borrar entrada de blog
Introducción: El administrador, a través del panel de administración de WordPress asociado al blog, podrá borrar cualquier entrada creada para el mismo.
Entradas: Selección de la entrada y click en el botón “mandar a la papelera”
Proceso: WordPress envía la entrada a la papelera y quita su visualización en el blog.
Salida: Desaparición de la entrada en el blog.
Función de modificar entrada de blog
Introducción: En caso de ser necesario realizar alguna modificación sobre una entrada realizada en el blog, el administrador podrá acceder al panel de control de WordPress para llevar a cabo estos cambios.
Entradas: Introducción de la nueva información o modificación de la antigua existente.
Proceso: WordPress modifica la información de la entrada y la actualiza.
Salida: Visualización de los cambios realizados en la entrada del blog.
Cabe distinguir entre la parte visible de la aplicación, accesible por cualquier usuario que acceda a la tienda, y la parte de administración, accesible solo por el administrador.
Al acceder a la página web de la tienda, se visualizará la página de inicio de la misma. En la parte superior del inicio, encontraremos el logo de la tienda, una barra de búsqueda, el carrito y un panel de acceso a la cuenta.
Tras esta primera parte encontramos el menú de navegación de toda la aplicación. En este menú encontraremos las secciones de la web, siendo éstas el inicio, un apartado de explicación “Sobre nosotros”, el acceso a la tienda, el blog y un apartado de contacto. Se seguirá esta distribución puesto que es simple, concisa y entendible.
Debajo del menú de navegación se mostrarán una serie de sliders6 con imágenes sobre la tienda o productos de la misma. Seguido de esta presentación encontraremos una barra lateral en la que se listarán las categorías e información sobre la tienda como puede ser el aviso legal y una disposición de los productos y sus características.
En el pie de página encontraremos las distintas categorías de la tienda, el apartado asociado a la cuenta del cliente e información acerca de la tienda, además de las redes sociales en las que se tendrá una cuenta activa.
Esta será la estructura general de la página web con la posibilidad de alguna modificación dependiendo de la sección en la que nos encontremos.
El administrador, por otro lado, accederá al panel de administración ofrecido por la plataforma Prestashop mediante una extensión en la dirección de la tienda. Desde aquí se le pedirán las credenciales para acceder al mismo como suelen ser usuario y contraseña.
Tras haberse identificado encontrará un panel intuitivo distribuido por secciones en una barra lateral desde el cual podrá acceder al catálogo, los clientes y los módulos utilizados para la creación de la tienda.
Dado que el sistema será alojado en un hosting7 contratado, el cual debe proporcionar los servicios requeridos permitiendo un acceso fluido a la aplicación.
Seguridad
Los datos personales de la cuenta de un cliente solo serán accesibles, tras el proceso de autenticación, para el propio cliente y el administrador.
Existe la posibilidad de realizar el proceso de compra bajo una conexión segura https, para ello se incluirá el servicio de Paypal. Este servicio de pago se realiza mediante una conexión segura en la propia página del servicio.
Será conveniente la utilización del panel de administración asociado al hosting contratado para llevar a cabo una realización de copias de seguridad con cierta periodicidad.