No time for comments
[PFCLatex/.git] / capitulo4 / capitulo4.tex
1 \chapter{Análisis, diseño e implementación de las aplicaciones}
2
3 \section{Análisis}
4
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.
6
7 \subsection{Análisis de requisitos}
8
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.
10
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.
12
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:
14
15 \begin{itemize}
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. 
21 \end{itemize}
22
23 \subsection{Requisitos software}
24
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.
26
27 Identificaremos tres tipos de requisitos:
28
29 \begin{itemize}
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.
33 \end{itemize}
34
35 \subsection{Requisitos software, aplicación Web}
36
37 \begin{table}[H]
38 \centering
39 \scriptsize
40     \begin{tabularx}{\textwidth}{|l|X|}
41         \hline
42         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Roles de usuario}} \\
43         \hline
44         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-01}} \\
45         \hline
46         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
47         \hline
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.} \\
49         \hline
50         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
51         \hline
52     \end{tabularx}
53     \caption{\emph{Tabla Requisito Software 1.}}
54     \label{tab:requisitoSW1}
55 \end{table}
56
57 \begin{table}[H]
58 \centering
59 \scriptsize
60     \begin{tabularx}{\textwidth}{|l|X|}
61         \hline
62         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Registro nuevos usuarios}} \\
63         \hline
64         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-02}} \\
65         \hline
66         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
67         \hline
68         \normalsize\textbf{Descripción} & \normalsize{Se deben poder registrar nuevos usuarios de cualquier rol de los definidos en el RSW-01.} \\
69         \hline
70         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
71         \hline
72     \end{tabularx}
73     \caption{\emph{Tabla Requisito Software 2.}}
74     \label{tab:requisitoSW2}
75 \end{table}
76
77 \begin{table}[H]
78 \centering
79 \scriptsize
80     \begin{tabularx}{\textwidth}{|l|X|}
81         \hline
82         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Debe existir una sección donde se puedan listar los anuncios.}} \\
83         \hline
84         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-03}} \\
85         \hline
86         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
87         \hline
88         \normalsize\textbf{Descripción} & \normalsize{El sistema debe poder listar todos los anuncios creados o asignados a un determinado usuario con rol empresarial.} \\
89         \hline
90         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
91         \hline
92     \end{tabularx}
93     \caption{\emph{Tabla Requisito Software 3.}}
94     \label{tab:requisitoSW3}
95 \end{table}
96
97 \begin{table}[H]
98 \centering
99 \scriptsize
100     \begin{tabularx}{\textwidth}{|l|X|}
101         \hline
102         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Edición de anuncios}} \\
103         \hline
104         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-04}} \\
105         \hline
106         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
107         \hline
108         \normalsize\textbf{Descripción} & \normalsize{Se deberá poder editar anuncios ya existentes en el sistema.} \\
109         \hline
110         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
111         \hline
112     \end{tabularx}
113     \caption{\emph{Tabla Requisito Software 4.}}
114     \label{tab:requisitoSW4}
115 \end{table}
116
117 \begin{table}[H]
118 \centering
119 \scriptsize
120     \begin{tabularx}{\textwidth}{|l|X|}
121         \hline
122         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Añadir nuevos anuncios}} \\
123         \hline
124         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-05}} \\
125         \hline
126         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
127         \hline
128         \normalsize\textbf{Descripción} & \normalsize{El sistema debe permitir añadir nuevos anuncios.} \\
129         \hline
130         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
131         \hline
132     \end{tabularx}
133     \caption{\emph{Tabla Requisito Software 5.}}
134     \label{tab:requisitoSW5}
135 \end{table}
136
137 \begin{table}[H]
138 \centering
139 \scriptsize
140     \begin{tabularx}{\textwidth}{|l|X|}
141         \hline
142         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Asociar anuncios con categorías definidas por una empresa determinada}} \\
143         \hline
144         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-06}} \\
145         \hline
146         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
147         \hline
148         \normalsize\textbf{Descripción} & \normalsize{Los anuncios deben poder asociarse con categorías previamente descritas por el propio usuario con rol empresarial.} \\
149         \hline
150         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
151         \hline
152     \end{tabularx}
153     \caption{\emph{Tabla Requisito Software 6.}}
154     \label{tab:requisitoSW6}
155 \end{table}
156
157 \begin{table}[H]
158 \centering
159 \scriptsize
160     \begin{tabularx}{\textwidth}{|l|X|}
161         \hline
162         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Anuncios con textos descriptivos en múltiples idiomas}} \\
163         \hline
164         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-07}} \\
165         \hline
166         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
167         \hline
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.} \\
169         \hline
170         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
171         \hline
172     \end{tabularx}
173     \caption{\emph{Tabla Requisito Software 7.}}
174     \label{tab:requisitoSW7}
175 \end{table}
176
177 \begin{table}[H]
178 \centering
179 \scriptsize
180     \begin{tabularx}{\textwidth}{|l|X|}
181         \hline
182         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Geo localizar anuncios}} \\
183         \hline
184         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-08}} \\
185         \hline
186         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
187         \hline
188         \normalsize\textbf{Descripción} & \normalsize{Los anuncios deben poder ser localizados geográficamente mediante coordenadas GPS.} \\
189         \hline
190         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Baja}} \\
191         \hline
192     \end{tabularx}
193     \caption{\emph{Tabla Requisito Software 8.}}
194     \label{tab:requisitoSW8}
195 \end{table}
196
197 \begin{table}[H]
198 \centering
199 \scriptsize
200     \begin{tabularx}{\textwidth}{|l|X|}
201         \hline
202         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Ver y editar datos personales}} \\
203         \hline
204         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-09}} \\
205         \hline
206         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
207         \hline
208         \normalsize\textbf{Descripción} & \normalsize{El sistema debe permitir que cualquier usuario con cualquier rol pueda ver y editar sus datos personales.} \\
209         \hline
210         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Baja}} \\
211         \hline
212     \end{tabularx}
213     \caption{\emph{Tabla Requisito Software 9.}}
214     \label{tab:requisitoSW9}
215 \end{table}
216
217 \begin{table}[H]
218 \centering
219 \scriptsize
220     \begin{tabularx}{\textwidth}{|l|X|}
221         \hline
222         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Añadir nuevas oficinas o sucursales}} \\
223         \hline
224         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-10}} \\
225         \hline
226         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
227         \hline
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.} \\
229         \hline
230         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
231         \hline
232     \end{tabularx}
233     \caption{\emph{Tabla Requisito Software 10.}}
234     \label{tab:requisitoSW10}
235 \end{table}
236
237 \begin{table}[H]
238 \centering
239 \scriptsize
240     \begin{tabularx}{\textwidth}{|l|X|}
241         \hline
242         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Edición de los datos de las oficinas y sucursales}} \\
243         \hline
244         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-11}} \\
245         \hline
246         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
247         \hline
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.} \\
249         \hline
250         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
251         \hline
252     \end{tabularx}
253     \caption{\emph{Tabla Requisito Software 11.}}
254     \label{tab:requisitoSW11}
255 \end{table}
256
257 \begin{table}[H]
258 \centering
259 \scriptsize
260     \begin{tabularx}{\textwidth}{|l|X|}
261         \hline
262         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Asociar oficinas y sucursales con anuncios}} \\
263         \hline
264         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-12}} \\
265         \hline
266         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
267         \hline
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.} \\
269         \hline
270         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
271         \hline
272     \end{tabularx}
273     \caption{\emph{Tabla Requisito Software 12.}}
274     \label{tab:requisitoSW12}
275 \end{table}
276
277 \begin{table}[H]
278 \centering
279 \scriptsize
280     \begin{tabularx}{\textwidth}{|l|X|}
281         \hline
282         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Las oficinas y sucursales deben estar localizadas geográficamente}} \\
283         \hline
284         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-13}} \\
285         \hline
286         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
287         \hline
288         \normalsize\textbf{Descripción} & \normalsize{Se debe poder localizar geográficamente las oficinas y sucursales.} \\
289         \hline
290         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
291         \hline
292     \end{tabularx}
293     \caption{\emph{Tabla Requisito Software 13.}}
294     \label{tab:requisitoSW13}
295 \end{table}
296
297 \begin{table}[H]
298 \centering
299 \scriptsize
300     \begin{tabularx}{\textwidth}{|l|X|}
301         \hline
302         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Añadir nuevas categorías de empresa}} \\
303         \hline
304         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-14}} \\
305         \hline
306         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
307         \hline
308         \normalsize\textbf{Descripción} & \normalsize{El sistema debe permitir añadir nuevas categorías de empresa por parte del usuario con rol empresarial.} \\
309         \hline
310         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
311         \hline
312     \end{tabularx}
313     \caption{\emph{Tabla Requisito Software 14.}}
314     \label{tab:requisitoSW14}
315 \end{table}
316
317 \begin{table}[H]
318 \centering
319 \scriptsize
320     \begin{tabularx}{\textwidth}{|l|X|}
321         \hline
322         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Editar categorías de empresa}} \\
323         \hline
324         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-15}} \\
325         \hline
326         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
327         \hline
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.} \\
329         \hline
330         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
331         \hline
332     \end{tabularx}
333     \caption{\emph{Tabla Requisito Software 15.}}
334     \label{tab:requisitoSW15}
335 \end{table}
336
337 \begin{table}[H]
338 \centering
339 \scriptsize
340     \begin{tabularx}{\textwidth}{|l|X|}
341         \hline
342         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Sección para el listado de oficinas y sucursales de una empresa}} \\
343         \hline
344         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-16}} \\
345         \hline
346         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
347         \hline
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.} \\
349         \hline
350         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
351         \hline
352     \end{tabularx}
353     \caption{\emph{Tabla Requisito Software 16.}}
354     \label{tab:requisitoSW16}
355 \end{table}
356
357 \begin{table}[H]
358 \centering
359 \scriptsize
360     \begin{tabularx}{\textwidth}{|l|X|}
361         \hline
362         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Sección para el listado de las categorías de una empresa}} \\
363         \hline
364         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-17}} \\
365         \hline
366         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
367         \hline
368         \normalsize\textbf{Descripción} & \normalsize{Se debe permitir el listado de todas las categorías creadas previamente por el usuario con rol empresarial.} \\
369         \hline
370         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
371         \hline
372     \end{tabularx}
373     \caption{\emph{Tabla Requisito Software 17.}}
374     \label{tab:requisitoSW17}
375 \end{table}
376
377 \begin{table}[H]
378 \centering
379 \scriptsize
380     \begin{tabularx}{\textwidth}{|l|X|}
381         \hline
382         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Las categorías de las empresas deben tener un orden jerárquico}} \\
383         \hline
384         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-18}} \\
385         \hline
386         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
387         \hline
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.} \\
389         \hline
390         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
391         \hline
392     \end{tabularx}
393     \caption{\emph{Tabla Requisito Software 18.}}
394     \label{tab:requisitoSW18}
395 \end{table}
396
397 \begin{table}[H]
398 \centering
399 \scriptsize
400     \begin{tabularx}{\textwidth}{|l|X|}
401         \hline
402         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Las categorías de las empresas deben asociarse a categorías genéricas}} \\
403         \hline
404         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-19}} \\
405         \hline
406         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
407         \hline
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.} \\
409         \hline
410         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
411         \hline
412     \end{tabularx}
413     \caption{\emph{Tabla Requisito Software 19.}}
414     \label{tab:requisitoSW19}
415 \end{table}
416
417 \begin{table}[H]
418 \centering
419 \scriptsize
420     \begin{tabularx}{\textwidth}{|l|X|}
421         \hline
422         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Usuario rol ``normal'' asociado a categorías generales}} \\
423         \hline
424         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-20}} \\
425         \hline
426         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
427         \hline
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.} \\
429         \hline
430         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Baja}} \\
431         \hline
432     \end{tabularx}
433     \caption{\emph{Tabla Requisito Software 20.}}
434     \label{tab:requisitoSW20}
435 \end{table}
436
437
438 \subsection{Requisitos software, aplicación Android}
439
440 \begin{table}[H]
441 \centering
442 \scriptsize
443     \begin{tabularx}{\textwidth}{|l|X|}
444         \hline
445         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{El usuario debe hacer login para recibir notificaciones}} \\
446         \hline
447         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-21}} \\
448         \hline
449         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
450         \hline
451         \normalsize\textbf{Descripción} & \normalsize{Para poder empezar a recibir nuevas notificaciones o anuncios el usuario debe hacer login en el sistema remoto.} \\
452         \hline
453         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
454         \hline
455     \end{tabularx}
456     \caption{\emph{Tabla Requisito Software 21.}}
457     \label{tab:requisitoSW21}
458 \end{table}
459
460 \begin{table}[H]
461 \centering
462 \scriptsize
463     \begin{tabularx}{\textwidth}{|l|X|}
464         \hline
465         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Administrar notificaciones/anuncios sin login}} \\
466         \hline
467         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-22}} \\
468         \hline
469         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
470         \hline
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 con la aplicación Web.} \\
472         \hline
473         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
474         \hline
475     \end{tabularx}
476     \caption{\emph{Tabla Requisito Software 22.}}
477     \label{tab:requisitoSW22}
478 \end{table}
479
480 \begin{table}[H]
481 \centering
482 \scriptsize
483     \begin{tabularx}{\textwidth}{|l|X|}
484         \hline
485         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Recepción de notificaciones en segundo plano}} \\
486         \hline
487         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-23}} \\
488         \hline
489         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
490         \hline
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.} \\
492         \hline
493         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
494         \hline
495     \end{tabularx}
496     \caption{\emph{Tabla Requisito Software 23.}}
497     \label{tab:requisitoSW23}
498 \end{table}
499
500 \begin{table}[H]
501 \centering
502 \scriptsize
503     \begin{tabularx}{\textwidth}{|l|X|}
504         \hline
505         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Habilitar/deshabilitar la recepción de notificaciones}} \\
506         \hline
507         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-24}} \\
508         \hline
509         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
510         \hline
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.} \\
512         \hline
513         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Baja}} \\
514         \hline
515     \end{tabularx}
516     \caption{\emph{Tabla Requisito Software 24.}}
517     \label{tab:requisitoSW24}
518 \end{table}
519
520 \begin{table}[H]
521 \centering
522 \scriptsize
523     \begin{tabularx}{\textwidth}{|l|X|}
524         \hline
525         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Visionado rápido de notificaciones no leídas}} \\
526         \hline
527         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-25}} \\
528         \hline
529         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
530         \hline
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.} \\
532         \hline
533         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Media}} \\
534         \hline
535     \end{tabularx}
536     \caption{\emph{Tabla Requisito Software 25.}}
537     \label{tab:requisitoSW25}
538 \end{table}
539
540 \begin{table}[H]
541 \centering
542 \scriptsize
543     \begin{tabularx}{\textwidth}{|l|X|}
544         \hline
545         \multicolumn{2}{|c|}{\cellcolor[gray]{0.8}\normalsize\textbf{Administración de notificaciones y anuncios}} \\
546         \hline
547         \normalsize\textbf{Código identificador} & \multicolumn{1}{c|}{\cellcolor[gray]{0.8}\normalsize\textbf{RSW-26}} \\
548         \hline
549         \normalsize\textbf{Tipo} & \multicolumn{1}{c|}{\normalsize{Funcional}} \\
550         \hline
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.} \\
552         \hline
553         \normalsize\textbf{Prioridad} & \multicolumn{1}{c|}{\normalsize{Alta}} \\
554         \hline
555     \end{tabularx}
556     \caption{\emph{Tabla Requisito Software 26.}}
557     \label{tab:requisitoSW26}
558 \end{table}
559
560
561
562
563 \subsection{Modelando los requisitos, diagrama de casos de uso}
564
565 En la Figura~\ref{fig:MobiAdsUseCaseWeb}) se puede observar el diagrama de casos de uso de la aplicación Web desarrollada.
566 \begin{figure}[H]
567     \centering
568         \includegraphics[width=\textwidth]{fig/MobiAdsUseCaseWeb}
569     \caption{\emph{Diagrama de casos de uso de la aplicación Web}}
570     \label{fig:MobiAdsUseCaseWeb}
571 \end{figure}
572
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.
574
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''.
576
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.
578
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}.
580
581
582 \subsection{Descripción de los casos de uso}
583
584 \begin{table}[H]
585 \centering
586 \scriptsize
587     \begin{tabularx}{\textwidth}{|X|X|}
588         \hline
589         \normalsize\textbf{Nombre} & \\
590         \hline
591         \normalsize\textbf{Requisito} & \\
592         \hline
593         \normalsize\textbf{Actores} & \\
594         \hline
595         \normalsize\textbf{Objetivo} & \\
596         \hline
597         \normalsize\textbf{Precondiciones} & \\
598         \hline
599         \normalsize\textbf{Postcondiciones} & \\
600         \hline
601         \normalsize\textbf{Escenario de éxito principal} & \\
602         \hline
603     \end{tabularx}
604     \caption{\emph{Tabla de casos de uso 1.}}
605     \label{tab:tabladecasosdeuso1}
606 \end{table}