1 \chapter{Análisis, diseño en implementación de las aplicaciones}
5 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.
7 \subsection{Análisis de requisitos}
9 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.
11 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.
13 Se hará una división entre requisitos software y requisitos de restricción y se usará un formato tabular para la formulación de dichos requisitos. Los campos de los que se compondrán las tablas serán los siguientes:
16 \item \textbf{Título de la tabla}: nombre con el cual se identifica el requisito.
17 \item \textbf{Código}: identificador único del requisito.
18 \item \textbf{Tipo}: los tipos funcionales, no funcionales y de usabilidad serán descritos en la siguiente sección.
19 \item \textbf{Descripción}: como su nombre indica es la descripción breve y detallada del requisito en sí mismo.
20 \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.
23 \subsection{Requisitos software}
25 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.
27 Identificaremos tres tipos de requisitos:
30 \item Requisitos funcionales: suponen una funcionalidad propia del sistema software que se debe desarrollar.
31 \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.
32 \item Requisitos de usabilidad: relacionados con cómo el usuario interactúa con las aplicaciones.
35 \subsection{Requisitos software, aplicación Web}
40 \begin{tabularx}{\textwidth}{|l|X|}
42 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Roles de usuario}} \\
44 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-01}} \\
46 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
48 \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.} \\
50 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
53 \caption{\emph{Tabla Requisito Software 1.}}
54 \label{tab:requisitoSW1}
60 \begin{tabularx}{\textwidth}{|l|X|}
62 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Registro nuevos usuarios}} \\
64 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-02}} \\
66 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
68 \normalsize\textbf{Descripción} & \normalsize{Se deben poder registrar nuevos usuarios de cualquier rol de los definidos en el RSW-01.} \\
70 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
73 \caption{\emph{Tabla Requisito Software 2.}}
74 \label{tab:requisitoSW2}
80 \begin{tabularx}{\textwidth}{|l|X|}
82 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Debe existir una sección donde se puedan listar los anuncios.}} \\
84 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-03}} \\
86 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
88 \normalsize\textbf{Descripción} & \normalsize{El sistema debe poder listar todos los anuncios creados o asignados a un determinado usuario con rol empresarial.} \\
90 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
93 \caption{\emph{Tabla Requisito Software 3.}}
94 \label{tab:requisitoSW3}
100 \begin{tabularx}{\textwidth}{|l|X|}
102 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Edición de anuncios}} \\
104 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-04}} \\
106 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
108 \normalsize\textbf{Descripción} & \normalsize{Se deberá poder editar anuncios ya existentes en el sistema.} \\
110 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
113 \caption{\emph{Tabla Requisito Software 4.}}
114 \label{tab:requisitoSW4}
120 \begin{tabularx}{\textwidth}{|l|X|}
122 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Añadir nuevos anuncios}} \\
124 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-05}} \\
126 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
128 \normalsize\textbf{Descripción} & \normalsize{El sistema debe permitir añadir nuevos anuncios.} \\
130 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
133 \caption{\emph{Tabla Requisito Software 5.}}
134 \label{tab:requisitoSW5}
140 \begin{tabularx}{\textwidth}{|l|X|}
142 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Asociar anuncios con categorías definidas por una empresa determinada}} \\
144 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-06}} \\
146 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
148 \normalsize\textbf{Descripción} & \normalsize{Los anuncios deben poder asociarse con categorías previamente descritas por el propio usuario con rol empresarial.} \\
150 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
153 \caption{\emph{Tabla Requisito Software 6.}}
154 \label{tab:requisitoSW6}
160 \begin{tabularx}{\textwidth}{|l|X|}
162 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Anuncios con textos descriptivos en múltiples idiomas}} \\
164 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-07}} \\
166 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
168 \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.} \\
170 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
173 \caption{\emph{Tabla Requisito Software 7.}}
174 \label{tab:requisitoSW7}
180 \begin{tabularx}{\textwidth}{|l|X|}
182 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Geo localizar anuncios}} \\
184 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-08}} \\
186 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
188 \normalsize\textbf{Descripción} & \normalsize{Los anuncios deben poder ser localizados geográficamente mediante coordenadas GPS.} \\
190 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Baja}} \\
193 \caption{\emph{Tabla Requisito Software 8.}}
194 \label{tab:requisitoSW8}
200 \begin{tabularx}{\textwidth}{|l|X|}
202 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Ver y editar datos personales}} \\
204 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-09}} \\
206 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
208 \normalsize\textbf{Descripción} & \normalsize{El sistema debe permitir que cualquier usuario con cualquier rol pueda ver y editar sus datos personales.} \\
210 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Baja}} \\
213 \caption{\emph{Tabla Requisito Software 9.}}
214 \label{tab:requisitoSW9}
220 \begin{tabularx}{\textwidth}{|l|X|}
222 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Añadir nuevas oficinas o sucursales}} \\
224 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-10}} \\
226 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
228 \normalsize\textbf{Descripción} & \normalsize{Se debe permitir que el usuario con rol empresarial añada nuevas oficinas o sucursales de una determinada empresa.} \\
230 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
233 \caption{\emph{Tabla Requisito Software 10.}}
234 \label{tab:requisitoSW10}
240 \begin{tabularx}{\textwidth}{|l|X|}
242 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Edición de los datos de las oficinas y sucursales}} \\
244 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-11}} \\
246 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
248 \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.} \\
250 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
253 \caption{\emph{Tabla Requisito Software 11.}}
254 \label{tab:requisitoSW11}
260 \begin{tabularx}{\textwidth}{|l|X|}
262 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Asociar oficinas y sucursales con anuncios}} \\
264 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-12}} \\
266 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
268 \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.} \\
270 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
273 \caption{\emph{Tabla Requisito Software 12.}}
274 \label{tab:requisitoSW12}
280 \begin{tabularx}{\textwidth}{|l|X|}
282 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Las oficinas y sucursales deben estar localizadas geográficamente}} \\
284 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-13}} \\
286 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
288 \normalsize\textbf{Descripción} & \normalsize{Se debe poder localizar geográficamente las oficinas y sucursales.} \\
290 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
293 \caption{\emph{Tabla Requisito Software 13.}}
294 \label{tab:requisitoSW13}
300 \begin{tabularx}{\textwidth}{|l|X|}
302 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Añadir nuevas categorías de empresa}} \\
304 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-14}} \\
306 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
308 \normalsize\textbf{Descripción} & \normalsize{El sistema debe permitir añadir nuevas categorías de empresa por parte del usuario con rol empresarial.} \\
310 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
313 \caption{\emph{Tabla Requisito Software 14.}}
314 \label{tab:requisitoSW14}
320 \begin{tabularx}{\textwidth}{|l|X|}
322 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Editar categorías de empresa}} \\
324 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-15}} \\
326 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
328 \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.} \\
330 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
333 \caption{\emph{Tabla Requisito Software 15.}}
334 \label{tab:requisitoSW15}
340 \begin{tabularx}{\textwidth}{|l|X|}
342 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Sección para el listado de oficinas y sucursales de una empresa}} \\
344 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-16}} \\
346 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
348 \normalsize\textbf{Descripción} & \normalsize{El sistema debe permitir el listado de las oficinas y sucursales creadas previamente por el usuario con rol empresarial.} \\
350 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
353 \caption{\emph{Tabla Requisito Software 16.}}
354 \label{tab:requisitoSW16}
360 \begin{tabularx}{\textwidth}{|l|X|}
362 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Sección para el listado de las categorías de una empresa}} \\
364 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-17}} \\
366 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
368 \normalsize\textbf{Descripción} & \normalsize{Se debe permitir el listado de todas las categorías creadas previamente por el usuario con rol empresarial.} \\
370 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
373 \caption{\emph{Tabla Requisito Software 17.}}
374 \label{tab:requisitoSW17}
380 \begin{tabularx}{\textwidth}{|l|X|}
382 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Las categorías de las empresas deben tener un orden jerárquico}} \\
384 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-18}} \\
386 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
388 \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.} \\
390 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
393 \caption{\emph{Tabla Requisito Software 18.}}
394 \label{tab:requisitoSW18}
400 \begin{tabularx}{\textwidth}{|l|X|}
402 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Las categorías de las empresas deben asociarse a categorías genéricas}} \\
404 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-19}} \\
406 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
408 \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.} \\
410 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
413 \caption{\emph{Tabla Requisito Software 19.}}
414 \label{tab:requisitoSW19}
420 \begin{tabularx}{\textwidth}{|l|X|}
422 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Usuario rol ``normal'' asociado a categorías generales}} \\
424 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-20}} \\
426 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
428 \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.} \\
430 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Baja}} \\
433 \caption{\emph{Tabla Requisito Software 20.}}
434 \label{tab:requisitoSW20}
438 \subsection{Requisitos software, aplicación Android}
443 \begin{tabularx}{\textwidth}{|l|X|}
445 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{El usuario debe hacer login}} \\
447 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-21}} \\
449 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
451 \normalsize\textbf{Descripción} & \normalsize{Para poder empezar a utilizar la aplicación el usuario debe hacer login en el sistema remoto.} \\
453 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
456 \caption{\emph{Tabla Requisito Software 21.}}
457 \label{tab:requisitoSW21}
463 \begin{tabularx}{\textwidth}{|l|X|}
465 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Administrar notificaciones/anuncios sin login}} \\
467 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-22}} \\
469 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
471 \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 la aplicación Web.} \\
473 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
476 \caption{\emph{Tabla Requisito Software 22.}}
477 \label{tab:requisitoSW22}
483 \begin{tabularx}{\textwidth}{|l|X|}
485 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Recepción de notificaciones en segundo plano}} \\
487 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-23}} \\
489 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
491 \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.} \\
493 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
496 \caption{\emph{Tabla Requisito Software 23.}}
497 \label{tab:requisitoSW23}
503 \begin{tabularx}{\textwidth}{|l|X|}
505 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Habilitar/deshabilitar la recepción de notificaciones}} \\
507 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-24}} \\
509 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
511 \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.} \\
513 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Baja}} \\
516 \caption{\emph{Tabla Requisito Software 24.}}
517 \label{tab:requisitoSW24}
523 \begin{tabularx}{\textwidth}{|l|X|}
525 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Visionado rápido de notificaciones no leídas}} \\
527 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-25}} \\
529 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
531 \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.} \\
533 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
536 \caption{\emph{Tabla Requisito Software 25.}}
537 \label{tab:requisitoSW25}
543 \begin{tabularx}{\textwidth}{|l|X|}
545 \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Administración de notificaciones y anuncios}} \\
547 \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-26}} \\
549 \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
551 \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.} \\
553 \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
556 \caption{\emph{Tabla Requisito Software 26.}}
557 \label{tab:requisitoSW26}
563 \subsection{Modelando los requisitos, diagrama de casos de uso}
565 En la Figura~\ref{fig:MobiAdsUseCaseWeb}) se puede observar el diagrama de casos de uso de la aplicación Web desarrollada. Se puede observar el diagrama de casos de uso de la aplicación Web desarrollada.
568 \includegraphics[width=\textwidth]{fig/MobiAdsUseCaseWeb}
569 \caption{\emph{Diagrama de casos de uso de la aplicación Web}}
570 \label{fig:MobiAdsUseCaseWeb}
573 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.
575 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''.
577 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.
579 A continuación se describirán textualmente cada uno de los casos de uso indicados en la Figura~\ref{fig:MobiAdsUseCaseWeb}) Para ello, se ha creado un formato de tabla común para todos los casos, 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}.
582 \subsection{Descripción de los casos de uso}
587 \begin{tabularx}{\textwidth}{|X|X|}
589 \normalsize\textbf{Nombre} & \\
591 \normalsize\textbf{Requisito} & \\
593 \normalsize\textbf{Actores} & \\
595 \normalsize\textbf{Objetivo} & \\
597 \normalsize\textbf{Precondiciones} & \\
599 \normalsize\textbf{Postcondiciones} & \\
601 \normalsize\textbf{Escenario de éxito principal} & \\
604 \caption{\emph{Tabla de casos de uso 1.}}
605 \label{tab:tabladecasosdeuso1}