\chapter{Análisis, diseño e implementación de las aplicaciones}

\section{Análisis}

A lo largo de esta primera sección se intentará explicar de forma detallada todos los requisitos y los casos de uso de las dos aplicaciones de las que se compone este proyecto fin de carrera: la aplicación web y la aplicación basada en Android.

\subsection{Análisis de requisitos}

Todo desarrollo software comienza con la toma de requisitos y el análisis de la aplicación por parte de los \emph{analistas de software}. A lo largo del desarrollo, la especificación de los requisitos suele variar bien porque el usuario o cliente final cambia de idea o bien por motivos técnicos relacionados con la implementación de la funcionalidad inicialmente solicitada.

En este apartado se especificarán los principales requisitos de la aplicación Web y la basada en Android. Para la extracción de requisitos existen diversas técnicas, en el caso de este proyecto el cliente y desarrollador son la misma persona por tanto no es necesario emplear ninguna técnica en particular.

Se se usará un formato tabular para la formulación de los requisitos software. Los campos de los que se compondrán las tablas serán los siguientes:

\begin{itemize}
    \item \textbf{Título de la tabla}: nombre con el cual se identifica el requisito.
    \item \textbf{Código}: identificador único del requisito.
    \item \textbf{Tipo}: los tipos funcionales, no funcionales y de usabilidad serán descritos en la siguiente sección.
    \item \textbf{Descripción}: como su nombre indica es la descripción breve y detallada del requisito en sí mismo.
    \item \textbf{Prioridad}: puede ser alta, media o baja y define la prioridad con la cual un requisito en particular debe ser cumplido durante el desarrollo del software. 
\end{itemize}

\subsection{Requisitos software}

La fase de especificación de requisitos software (SRS por sus siglas en Inglés) está diseñada para documentar y describir el comportamiento de un sistema que se desea desarrollar. Supone un acuerdo entre el usuario y el desarrollador respecto a la especificación del producto software solicitado~\cite{C4:Specifications}. El principal propósito de la especificación de requisitos software consiste en proporcionar una completa y clara descripción de los requisitos solicitados por el usuario~\cite{C4:Specifications}, dicha descripción puede ser usada como referencia en etapas posteriores del desarrollo del software solicitado.

Identificaremos tres tipos de requisitos:

\begin{itemize}
    \item Requisitos funcionales: suponen una funcionalidad propia del sistema software que se debe desarrollar.
    \item Requisitos no funcionales: suelen estar relacionados con funcionalidades del software a implementar. No son una funcionalidad en sí mismos. Por ejemplo, requisitos relacionados con el rendimiento o con algún tipo de restricción.
    \item Requisitos de usabilidad: relacionados con cómo el usuario interactúa con las aplicaciones.
\end{itemize}

\subsection{Requisitos software, aplicación Web}

\subsubsection{Funcionales}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Roles de usuario}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-01}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Se deben definir dos roles para el acceso a la aplicación: por un lado los usuarios tipo empresa pueden generar nuevo contenido y por el otro los usuarios ``normales'' accederán y recibirán en sus teléfonos dicho contenido. Estos últimos solo pueden asociarse a categorías de las cuales recibirán notificaciones en sus dispositivos móviles.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 1.}}
    \label{tab:requisitoSW1}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Registro nuevos usuarios}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-02}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Se deben poder registrar nuevos usuarios de cualquier rol de los definidos en el RSW-01.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 2.}}
    \label{tab:requisitoSW2}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Debe existir una sección donde se puedan listar los anuncios.}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-03}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{El sistema debe poder listar todos los anuncios creados o asignados a un determinado usuario con rol empresarial.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 3.}}
    \label{tab:requisitoSW3}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Edición de anuncios}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-04}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Se deberá poder editar anuncios ya existentes en el sistema.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 4.}}
    \label{tab:requisitoSW4}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Añadir nuevos anuncios}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-05}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{El sistema debe permitir añadir nuevos anuncios.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 5.}}
    \label{tab:requisitoSW5}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Asociar anuncios con categorías definidas por una empresa determinada}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-06}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Los anuncios deben poder asociarse con categorías previamente descritas por el propio usuario con rol empresarial.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 6.}}
    \label{tab:requisitoSW6}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Anuncios con textos descriptivos en múltiples idiomas}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-07}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Los anuncios deben estar ``internacionalizados''. Es decir, el sistema debe admitir más de un tipo de idioma para describir un anuncio. El usuario con rol ``normal'' recibirá el anuncio en el idioma que él o ella elijan.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 7.}}
    \label{tab:requisitoSW7}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Geo localizar anuncios}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-08}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Los anuncios deben poder ser localizados geográficamente mediante coordenadas GPS.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Baja}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 8.}}
    \label{tab:requisitoSW8}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Ver y editar datos personales}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-09}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{El sistema debe permitir que cualquier usuario con cualquier rol pueda ver y editar sus datos personales.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Baja}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 9.}}
    \label{tab:requisitoSW9}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Añadir nuevas oficinas o sucursales}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-10}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Se debe permitir que el usuario con rol empresarial añada nuevas oficinas o sucursales de una determinada empresa.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 10.}}
    \label{tab:requisitoSW10}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Edición de los datos de las oficinas y sucursales}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-11}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Se deberá permitir la edición de los datos de las oficinas o sucursales existentes en el sistema y pertenecientes a un determinado usuario con rol empresarial.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 11.}}
    \label{tab:requisitoSW11}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Asociar oficinas y sucursales con anuncios}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-12}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{El sistema debe permitir que las oficinas y sucursales pertenecientes a un determinado usuario con rol empresarial se asocien con anuncios pertenecientes a ese mismo usuario y por tanto a la empresa a la que pertenecen esas oficinas o sucursales.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 12.}}
    \label{tab:requisitoSW12}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Las oficinas y sucursales deben estar localizadas geográficamente}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-13}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Se debe poder localizar geográficamente las oficinas y sucursales.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 13.}}
    \label{tab:requisitoSW13}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Añadir nuevas categorías de empresa}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-14}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{El sistema debe permitir añadir nuevas categorías de empresa por parte del usuario con rol empresarial.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 14.}}
    \label{tab:requisitoSW14}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Editar categorías de empresa}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-15}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Se debe permitir la edición de las categorías de empresa que el usuario con rol empresarial haya creado previamente.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 15.}}
    \label{tab:requisitoSW15}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Sección para el listado de oficinas y sucursales de una empresa}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-16}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{El sistema debe permitir el listado de las oficinas y sucursales creadas previamente por el usuario con rol empresarial.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 16.}}
    \label{tab:requisitoSW16}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Sección para el listado de las categorías de una empresa}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-17}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Se debe permitir el listado de todas las categorías creadas previamente por el usuario con rol empresarial.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 17.}}
    \label{tab:requisitoSW17}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Las categorías de las empresas deben tener un orden jerárquico}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-18}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Las categorías de las empresas deben ordenarse de forma jerárquica. Por ejemplo, de una categoría llamada ``Calzado'' podrán depender jerárquicamente otras como por ejemplo pueden ser ``Sandalias'', ``Mocasines'', etc. Las relaciones jerárquicas serán creadas por el usuario con rol empresarial y el sistema debe facilitar la creación de nuevas jerarquías y debe mostrar correctamente las relaciones entre categorías creadas por este usuario.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 18.}}
    \label{tab:requisitoSW18}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Las categorías de las empresas deben asociarse a categorías genéricas}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-19}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Toda categoría de empresa debe estar asociada con una categoría de tipo general que es la que el usuario final (el usuario con rol ``normal'') finalmente verá y a la que se asociará para recibir notificaciones de nuevos anuncios de su interés. Estas categorías generales pueden ser creadas directamente por un súper usuario con permisos de administración de la aplicación Web.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 19.}}
    \label{tab:requisitoSW19}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Usuario rol ``normal'' asociado a categorías generales}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-20}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Los usuarios que no tienen rol empresarial únicamente pueden asociarse a categorías de tipo general. El sistema debe permitir que el usuario se asocie de forma fácil e intuitiva con las categorías generales que se hallen en la Web. El usuario acabará recibiendo anuncios relacionados con esas categorías generales.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Baja}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 20.}}
    \label{tab:requisitoSW20}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Al entrar en la aplicación se mostrarán los datos del usuario.}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-21}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Al hacer login por primera vez, el sistema mostrará los datos del usuario. En caso de ser el usuario con rol empresarial se mostrarán los datos de la empresa creada por dicho usuario.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Baja}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 21.}}
    \label{tab:requisitoSW21}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Framework Symfony PHP.}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-23}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{No funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Se usará para el desarrollo web el framework PHP Symfony.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Baja}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 23.}}
    \label{tab:requisitoSW22}
\end{table}

\subsubsection{No funcionales}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Código abierto.}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-24}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{No funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Las herramientas empleadas deben ser de código abierto.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 24.}}
    \label{tab:requisitoSW22}
\end{table}

\subsubsection{Usabilidad}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{El nombre del usuario debe ser siempre visible.}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-22}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Usabilidad}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{El nombre del usuario debe mostrarse en la esquina superior derecha de la aplicación.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Baja}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Web 22.}}
    \label{tab:requisitoSW22}
\end{table}


\subsection{Requisitos software, aplicación Android}

\subsubsection{Funcionales}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{El usuario debe hacer login para recibir notificaciones}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSA-01}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Para poder empezar a recibir nuevas notificaciones o anuncios el usuario debe hacer login en el sistema remoto.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Android 1.}}
    \label{tab:requisitoSA1}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Administrar notificaciones/anuncios sin login}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSA-02}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{El usuario debe poder administrar los anuncios recibidos incluso cuando no tiene conexión con el sistema remoto, es decir, cuando no tiene conexión con la aplicación Web.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Android 2.}}
    \label{tab:requisitoSA2}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Recepción de notificaciones en segundo plano}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSA-03}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Se debe permitir que el usuario pueda recibir notificaciones en segundo plano acerca de la recepción de nuevos anuncios. La aplicación no tiene por qué estar ejecutándose en primer plano para recibir notificaciones de anuncios de interés.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Android 3.}}
    \label{tab:requisitoSA3}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Habilitar/deshabilitar la recepción de notificaciones}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSA-04}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Debe existir una opción por la cual el usuario de la aplicación Android pueda habilitar y deshabilitar la recepción de nuevas notificaciones o anuncios.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Baja}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Android 4.}}
    \label{tab:requisitoSA4}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Visionado rápido de notificaciones no leídas}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSA-05}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{A través de una ventana emergente y en cualquier momento (incluso cuando la aplicación está ejecutándose en segundo plano) el usuario debe poder tener acceso a las notificaciones o anuncios que haya recibido y que todavía no ha leído.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Android 5.}}
    \label{tab:requisitoSA5}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Administración de notificaciones y anuncios}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSA-06}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{El sistema debe facilitar la administración de los anuncios y notificaciones recibidas. Para ello el usuario debe poder eliminar o borrar los anuncios y notificaciones que haya recibido y que ya no desea continuar teniendo en su dispositivo móvil.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Android 6.}}
    \label{tab:requisitoSA6}
\end{table}

\subsubsection{Usabilidad}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Configuración de pantalla}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSA-07}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Usabilidad}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{Solo es necesario que la aplicación Android se muestre correctamente en modo vertical.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Android 7.}}
    \label{tab:requisitoSA7}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Lenguaje sencillo}} \\
        \hline
        \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSA-08}} \\
        \hline
        \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Usabilidad}} \\
        \hline
        \normalsize\textbf{Descripción} & \normalsize{El sistema debe ser fácilmente entendible por cualquier usuario.} \\
        \hline
        \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla Requisito Aplicación Android 8.}}
    \label{tab:requisitoSA7}
\end{table}


\subsection{Modelando los requisitos, casos de uso}

Los casos de uso son técnicas para la captura de los requerimientos funcionales de un sistema. Los casos de uso describen las interacciones típicas entre los usuarios de un sistema y el sistema en sí mismo, proporcionando una descripción narrativa de cómo un sistema es usado. En lugar de empezar describiendo casos de uso, en muchas ocasiones es mucho más fácil describir escenarios. Un \textbf{escenario} es una secuencia de pasos describiendo una interacción entre un usuario y un sistema. Un caso de uso puede ser descrito como un conjunto de escenarios unidos por una meta de usuario común; por ejemplo, comprar un producto. La meta por tanto es la clave de los casos de uso~\cite{C4:UMLDistilled}.

En la terminología del lenguaje de modelado UML los usuarios son llamados actores. Un \textbf{actor} es un rol que un usuario juega dentro de un sistema. Los actores pueden ser clientes, gestores de ventas, analistas, directores de marketing, etc. Un único actor puede realizar muchos casos de uso; de igual forma, un caso de uso puede tener varios actores asociados~\cite{C4:UMLDistilled}.

En realidad el término \emph{actor} no es el adecuado, rol define mejor lo que un actor en terminología UML representa.

\subsection{Diagrama casos de uso aplicación Web}

En la Figura~\ref{fig:MobiAdsUseCaseWeb}) se puede observar el diagrama de casos de uso de la aplicación Web desarrollada.

\begin{figure}[H]
    \centering
        \includegraphics[width=\textwidth]{fig/MobiAdsUseCaseWeb}
    \caption{\emph{Diagrama de casos de uso de la aplicación Web}}
    \label{fig:MobiAdsUseCaseWeb}
\end{figure}

Se puede observar como los principales casos están relacionados con el listado de la información con la que el usuario debe trabajar. También se comprueba que todos los casos de uso pueden ser extendidos o ampliados para la edición de los datos.

Por otra parte, se muestra la existencia de usuarios sin registrar y de usuarios registrados. El usuario no registrado lo único que puede hacer es autenticarse en la aplicación o registrarse como nuevo usuario. Además se muestra claramente la existencia de dos tipos de usuarios: el usuario ``empresa'' y el usuario ``normal''.

Los usuarios de tipo empresa son los encargados de introducir los datos en el sistema, siendo estos datos los anuncios que posteriormente recibirán los usuarios en sus teléfonos móviles.

\subsection{Descripción textual de los casos de uso de la aplicación Web}

No existe un estándar para la escritura de los casos de uso de las aplicaciones, y diferentes formatos funcionan bien en diferentes casos~\cite{C4:UMLDistilled}. Para este proyecto se ha creado un formato de tabla común para todos los casos de uso indicados en la Figura~\ref{fig:MobiAdsUseCaseWeb}), con los campos recomendados por el lenguaje de modelado gráfico UML (Unified Modeling Language) y algunos más que si bien no están completamente estandarizados por el lenguaje UML sí se recomienda hacer uso de ellos~\cite{C4:UMLDistilled}.

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Listar Anuncios}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-01}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{Generar un listado con todos los anuncios pertenecientes a un usuario.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{Usuario empresarial} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{Login en el sistema.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{El usuario visualizará los anuncios asignados a su empresa. Desde este listado se podrá editar, añadir o borrar anuncios.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item En la aplicación el usuario selecciona Listar Anuncios.
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web 1.}}
    \label{tab:casodeusoW1}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Ver Detalles Anuncio}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-02}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{Mostrar los datos relacionados con un anuncio.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{Usuario empresarial} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{Haber hecho login en el sistema y haber obtenido el listado de anuncios.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{El sistema mostrará los detalles del anuncio y permitirá su edición.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item En la aplicación el usuario obtiene un listado de todos los anuncios. CUW-01.
                \item Desde el listado de los anuncios el usuario puede seleccionar la opción de ver los detalles de un anuncio en concreto.
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web 2.}}
    \label{tab:casodeusoW2}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Crear Anuncio}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-03}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{Formulario para la creación de nuevos anuncios.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{Usuario empresarial} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{Debe haberse hecho login en la aplicación.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{Una vez creado y grabado el anuncio la aplicación permitirá al usuario volver a editar sus datos (le lleva a la ventana de edición del anuncio que acaba de ser creado).} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item En la aplicación el usuario puede elegir crear un nuevo anuncio desde un botón presente en el sistema.
                \item El usuario introduce los datos del anuncio: posición geográfica, textos, identificador, etc.
                \item La aplicación permite que el usuario guarde los datos y una vez grabados le dirige a otra ventana donde puede volver a editarlos si lo desea.
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web 3.}}
    \label{tab:casodeusoW3}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Borrar Anuncio}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-04}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{Icono o botón que permite borrar un anuncio de los listados por la aplicación.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{Usuario empresarial} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{Login previo en el sistema y encontrarse en la ventana donde la aplicación lista los anuncios.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{Se actualiza automáticamente la ventana que lista los anuncios.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item El usuario se encuentra en la ventana que muestra los anuncios en forma de lista.
                \item Existe un icono o botón que permite borrar un anuncio en concreto.
                \item El sistema pregunta al usuario si realmente desea borrar el anuncio.
                \item Si el usuario acepta el anuncio es finalmente borrado, en caso contrario no se hace nada.
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web 4.}}
    \label{tab:casodeusoW4}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Editar Datos Anuncio}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-05}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{Icono o botón que permite borrar un anuncio de los listados por la aplicación.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{Usuario empresarial} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{Login previo en el sistema y encontrarse en la ventana donde la aplicación lista los anuncios.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{Se permite la grabación de los nuevos datos y si lo desea el usuario puede volver a modificarlos pues el sistema no saca al usuario de la ventana de edición.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item El usuario se encuentra en la ventana que muestra los anuncios en forma de lista.
                \item Existe un icono o botón que permite editar un anuncio en concreto.
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web 5.}}
    \label{tab:casodeusoW5}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Listar Sucursales}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-06}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{Generar un listado con todas las oficinas o sucursales que ha creado o que pertenecen a un determinado usuario.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{Usuario empresarial} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{Login en la aplicación Web.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{El usuario obtiene una lista con todas las sucursales u oficinas que su empresa tiene en el sistema.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item En la aplicación Web el usuario puede seleccionar la opción de Listar Sucursales.
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web 6.}}
    \label{tab:casodeusoW6}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Asociar Sucursal con Anuncios}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-07}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{Se debe poder asignar a una determinada oficina o sucursal anuncios relacionados con productos que dichas oficinas o sucursales de una determinada empresa ofrecen.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{Usuario empresarial} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{El usuario debe haber hecho previamente login en la aplicación web y deben existir anuncios que pertenecen a la empresa que administra el usuario.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{La aplicación debe permitir asociar o desasociar tantos anuncios como el usuario quiera.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item El usuario se encuentra en la ventana donde se listan las sucursales que su empresa tiene en el sistema.
                \item Existe un botón o icono que permite selección una sucursal u oficina del listado.
                \item El anterior botón o icono lleva al usuario a una nueva ventana donde se pueden asociar anuncios con la oficina seleccionada.
                \item Se sale de esta ventana cuando el usuario pulsa en algún botón que le lleve a otro lugar del sistema.
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web 7.}}
    \label{tab:casodeusoW7}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Ver Detalles Sucursal}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-08}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{Botón o icono en el listado de las sucursales que permite ver los datos asignados a una oficina o sucursal en particular.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{Usuario empresarial} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{El usuario debe haber hecho login previamente en el sistema.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{La aplicación debe permitir la posterior edición de los datos.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item Desde el listado de las sucursales el usuario puede seleccionar una en particular.
                \item Se mostrará una nueva ventana de la aplicación que permite ver los datos de la oficina o sucursal.
                \item En esta ventana, si el usuario lo desea, podrá accederse a la edición de los datos mostrados.
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web 8.}}
    \label{tab:casodeusoW8}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Añadir Sucursal}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-09}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{El sistema debe permitir añadir nuevas sucursales u oficinas.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{Usuario empresarial} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{Se debe haber hecho login en la aplicación web.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{Después de añadir una sucursal el usuario debe poder tener la opción de editar los datos que acaban de ser grabados en el sistema.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item Login en el sistema Web.
                \item Desde cualquier punto de la aplicación debe poderse añadir una nueva sucursal.
                \item Tras añadir la nueva sucursal u oficina el usuario debe poder editar los datos que acaban de ser grabados.
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web 9.}}
    \label{tab:casodeusoW9}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Borrar Sucursal}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-10}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{Icono o botón que permita borrar una sucursal listada por el sistema.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{Usuario empresarial} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{Login en la aplicación y que existan sucursales pertenecientes a la empresa que administra el usuario.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{Se actualizará el listado de las oficinas o sucursales en la ventana sobre la que se encuentra el usuario.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item El usuario se encuentra en la ventana donde se listan todas las oficinas o sucursales pertenecientes a la empresa que administra.
                \item Existe un botón o icono por cada sucursal u oficina que permite su borrado del sistema.
                \item La aplicación Web avisa al usuario acerca del borrado de los datos y se permite que éste finalmente elija si borrarlos o no.
                \item El listado se actualiza sin la sucursal u oficina borrada.
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web 10.}}
    \label{tab:casodeusoW10}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Editar Datos Sucursal}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-11}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{Icono que permite editar una sucursal listada por el sistema.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{Usuario empresarial} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{Login en la aplicación y encontrarse en la ventana que lista las sucursales que pertenecen a una empresa.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{El usuario permanece en la ventana de edición incluso después de grabar los nuevos datos.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item El usuario se encuentra en la ventana que lista todas las oficinas o sucursales.
                \item Existe un icono o botón por cada oficina o sucursal que lleva al usuario a la ventana de edición.
                \item Incluso después de grabar los datos el usuario permanece en la ventana de edición hasta que navega hacia otra ubicación del sistema.
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web 11.}}
    \label{tab:casodeusoW11}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Listar Categorías Empresa}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-12}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{Ventana que presente un listado con todas las categorías que una empresa tiene.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{Usuario empresarial} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{Login previo en el sistema.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{Desde este listado se podrá añadir, editar o borrar categorías seleccionadas.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item El usuario navega hasta el listado de categorías de empresa.
                \item La lista se presenta de un modo jerárquico.
                \item Por cada categoría debe existir la posibilidad de editar sus datos o borrarla.
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web 12.}}
    \label{tab:casodeusoW12}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Ver Detalles Categoría}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-13}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{Icono o botón por cada categoría listada en la ventana definida en el CUW-12.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{Usuario empresarial} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{Login en el sistema y una categoría de empresa válida.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{Se muestran los detalles de la categoría y se permite su edición.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item El usuario se encuentra en la ventana sobre la cual se listas las categorías de la empresa que administra en el sistema.
                \item Debe permitirse por cada categoría el visionado de sus datos.
                \item Desde la ventana que muestra los datos de una categoría se debe poder editar y grabar dichos datos.
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web 13.}}
    \label{tab:casodeusoW13}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Crear Categoría}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-14}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{La aplicación debe permitir el añadir nuevas categorías de empresa.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{Usuario empresarial} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{Debe haberse hecho login previamente.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{Tras la creación de la categoría el usuario debe poder editar los datos recién guardados.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item El usuario ha hecho login en la aplicación.
                \item Desde cualquier punto del sistema el usuario si lo desea debe poder añadir una nueva categoría de empresa.
                \item Tras grabar los datos en el sistema el usuario debe poder editarlos si lo desea.
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web 14.}}
    \label{tab:casodeusoW14}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Borrar Categoría}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-15}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{Eliminación de una categoría de empresa del sistema.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{Usuario empresarial} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{Debe haber categorías de empresa creadas previamente por el usuario.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{Se actualiza el listado jerárquico con las categorías de empresas que todavía permanezcan en el sistema.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item Desde la ventana que lista las categorías de un modo jerárquico.
                \item Por cada categoría debe existir un botón o icono que permita el borrado de dicha categoría.
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web 15.}}
    \label{tab:casodeusoW15}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{Ver Datos Usuario Empresa}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-16}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web .}}
    \label{tab:casodeusoW}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web .}}
    \label{tab:casodeusoW}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web .}}
    \label{tab:casodeusoW}
\end{table}

\begin{table}[H]
\centering
\scriptsize
    \begin{tabularx}{\textwidth}{|l|X|}
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Nombre}} & \multicolumn{1}{c|}{\normalsize{}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Identificador}} & \multicolumn{1}{c|}{\normalsize{CUW-}} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Objetivo}} & \normalsize{.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Actores}} & \normalsize{} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Precondiciones}} & \normalsize{.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Postcondiciones}} & \normalsize{.} \\
        \hline
        \multicolumn{1}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Escenario de éxito}} & 
        \normalsize{
            \begin{enumerate}
                \setlength{\itemsep}{0pt}
                \setlength{\parskip}{0pt}
                \setlength{\parsep}{0pt}
                \item
            \end{enumerate}
        } \\
        \hline
    \end{tabularx}
    \caption{\emph{Tabla de caso de uso Web .}}
    \label{tab:casodeusoW}
\end{table}


