Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Facultad # 3 Informática
La Habana, Cuba
2019
“La tecnología ha avanzado más en los últimos treinta años que en los últimos doscientos. El
avance exponencial sólo continuará.”
Niels Bohr.
Declaración de la auditoría
Declaro que soy el único autor del “Sistema informático para la gestión de servicios de telefonía
fija del Departamento de Telecomunicaciones en la Dirección de Tecnologías y Sistemas” y
autorizo al Minint para que haga el uso que estime pertinente de la investigación desarrollada.
Para que así conste firmo la presente a los 23 días del mes de junio del 2019.
_______________________ ______________________
Tutora: Cap. Ing. Suahil Pérez Autor: Tte. Omar Montero Alfaro
________________________
Agradezco de todo corazón a las personas que me brindaron apoyo y ayuda incondicional para
mi investigación, a mi familia que confió plenamente en mí, en especial a mi madre por
exigirme cada día metas mayores.
A mis tutoras y oponente por su tiempo y dedicación, en especial a mi tutora Suahil Pérez
Cabrera por haberme brindado la oportunidad de recurrir a su capacidad y conocimiento
científico, así como también haber tenido toda la paciencia del mundo para guiarme durante
todo el desarrollo de la tesis.
A mi pareja Maricelys Palacio López por apoyarme y creer en mí en todos los momentos de la
realización de este trabajo de diploma.
A mi jefa Martha Piñera Delgado por darme animo cuando más lo necesitaba y por su
preocupación.
A Mónica María Cuellar Céspedes por ayudarme a la hora de la confección de este documento.
A todos los que compartieron mi vida estudiantil en la universidad, a mis compañeros de aula
que nunca olvidaré ya que cada uno forma parte de mí.
A los profesores que dedicaron horas y días de atención. Gracias por su tiempo y
conocimiento.
Por lo pronto, por medio de esta página y temiendo que se me quede alguien, extiendo a todos
mi más sincera gratitud.
1
Dedicatoria
Resumen:
Abstract:
Currently the Ministry of the Interior (MININT), has the need to acquire and provide
various services related to fixed telephony. These services guarantee communications
between military and non-military entities. The implementation, support and
maintenance of these services falls on the Department of Technologies and Systems
(DTS), which delegates this function to the Telecommunications Department (DTEL) as
rector of this activity.
At present the requests for these services arrive, in dissimilar formats, to a single
specialist of fixed telephony, then the authorization of the head of the DTEL is required;
Once approved, the specialist processes it and directs it to the executing units for its
solution. Bosses constantly demand statistical data regarding recorded information
about applications, to facilitate future decision making. Given the increase in the
request for services and a group of problems that will be exposed later in this
document, it is necessary to have a computer system that facilitates the management of
requests for these services in the DTEL. For this we will use the PHP language and
databases in MySQL.
Índice General
1 8
2 8
3.1 Introducción 8
3.1 Introducción 21
3.3 Diseño 23
Conclusiones Generales 33
Referencias bibliográficas 34
Bibliografía 35
Anexo 1 37
Anexo 2 46
INTRODUCCIÓN 1
1.1 Introducción 6
1.8.1 SCRUM 12
1.10.1 PHP 17
1.10.3 ASP 18
1.10.4 ASP.NET 18
1.11.1 CakePHP 20
1.11.2 Codeigniter 20
1.11.3 Yii 20
1.11.4 Symfony 21
1.12.1 MySQL 22
1.12.2 Oracle 22
7
1.12.3 PostgreSQL 22
1.13.1 Apache 23
2.1 Introducción 27
3.1 Introducción 43
3.3 Diseño 45
Referencias bibliográficas 53
Bibliografía 54
Anexo 1 55
Anexo 2 62
Índice de Tablas
Índice de Ilustraciones
10
INTRODUCCIÓN
Métodos teóricos:
Métodos empíricos:
Introducción
El jefe de la DTS o las fuerzas designadas en el resto de los órganos y provincias del
Minint, pueden solicitar un nuevo servicio al DTEL. Esta solicitud es recibida por el
especialista de Telefonía fija en la sección de Planeamiento de Servicios mediante
correo electrónico, mensajería, llamada telefónica, o por decisión del propio jefe de la
DTS. Los solicitantes pueden escoger dos tipos de nuevos servicios: permanentes o
eventuales, pudiéndose en este último, pedir prórroga una vez finalizado su tiempo de
uso estipulado. Una vez recibida la solicitud, el especialista contacta con la Dirección
de Atención a Gobierno número 6 (DAG-6) para analizar niveles de disponibilidad de
servicio que permitan darle solución a la misma.
Como resultado del estudio realizado, pudimos constatar que todos los procesos que
se llevan a cabo en el DTEL, con relación a las solicitudes de telefonía fija, presenta un
conjunto de deficiencias, tales como:
Validación de solicitudes
Aprobación de solicitudes
Ejecución de solicitudes
Sistemas Internacionales
A través de un único banco de datos central que almacena todas las informaciones y
documentos, el SoftExpert Solicitud automatiza el ciclo de vida del pedido con base en
todas las demandas de servicio por diferentes departamentos de la empresa. De esta
forma, las tareas diarias concluidas por la organización son registradas y pueden ser
monitoreadas, además tiene como desventaja que posee licencia.[3]
Sistemas Nacionales
Etecsa utiliza un sistema para la gestión de solicitudes referente a la telefonía fija pero
el mismo es privado y confidencial.
Metodologías de Desarrollo
Al ser un trabajo que debe ser diseñado e implementado por una sola persona en
un tiempo corto es necesario desarrollarlo mediante una metodología ágil.
SCRUM
Los equipos de Scrum normalmente trabajan en iteraciones (llamadas sprints) con una
duración de 2 semanas a un mes, no permiten cambios en sus sprints. Una vez que el
sprint planning meeting ha concluido y se llegó a una acuerdo para elegir los product
backlog items, estos no pueden recibir cambios, por lo menos hasta el final del sprint,
el product owner de Scrum prioriza los product backlog pero el equipo determina el
orden en el que serán desarrollados.[8]
El objetivo primario del lenguaje estándar BPMN fue proveer una notación que sea
legible y entendible para todos los usuarios de negocios, desde los analistas que
realizan el diseño inicial de los procesos a los responsables de desarrollar la tecnología
que ejecutará estos procesos. BPMN es una colección de elementos gráficos
especializados para representar un proceso y cómo es ejecutado. Los principales
elementos son: actividades (activities), eventos (event), puertas de enlace (gateway) y
flujo de secuencia (secuence flow).[11]
Visual Parading
Visual Parading es una de las herramientas UML CASE del mercado, considerada
como muy completa y fácil de usar, con soporte multiplataforma y que proporciona
facilidades de interoperabilidad con otras aplicaciones.
Fue creada para el ciclo vital del desarrollo de software que lo automatiza y acelera,
permitiendo la captura de requisitos, análisis, diseño e implementación. Tiene la
capacidad de crear el esquema de clases a partir de una base de datos y crear la
definición de base de datos a partir del esquema de las clases.
Características
Producto de calidad
Varios idiomas.
Eclipse/IBM WebSphere.
Jbuilder.
NetBeans IDE.
Oracle Jdeveloper.
BEA Weblogic.
Ventajas
Desventajas
26
Rational Rose
Características principales:
Funciones:
Soporte a modelos de análisis, ANSI C++, RoseJ y Visual C++ según el documento
"Design Patterns: Elemts of Reusable Object – Oriented Software".
Generación de código en lenguaje Ada, ANSI C++, C++, CORBA, Java y Visual Basic,
con funciones configurables de sincronización entre los modelos y el código.
Modelado en UML para diseñar bases de datos, que integra los requisitos de datos y
aplicaciones mediante diseños lógicos y analíticos.
Integración con cualquier sistema de control de versiones compatibles con SSC, como
IBM Rational ClearCase.
Se decidió utilizar Visual Parading por ser un producto de calidad que soporta
aplicaciones Web, fácil de instalar y actualizar, compatibilidad entre ediciones, genera
documentos en formatos HTML y PDF, posee generación de código e ingeniería
inversa: brinda la posibilidad de generar código a partir de los diagramas para las
plataformas como .Net, Java y PHP, así como obtener los diagramas a partir del código
y la posibilidad de documentar todo el trabajo sin necesidad de utilizar herramientas
externas.
Un lenguaje de programación es aquella estructura que, con una cierta base sintáctica
y semántica, imparte distintas instrucciones a un programa de computadora.[14]
PHP
28
Lenguaje Python
Algo curioso en este lenguaje es que permite a los programadores elegir un estilo de
programación concreto (objetos, estructurado, funcional), debido a que es un lenguaje
de programación multiplataforma.
Lenguaje Java
Java es un lenguaje de programación que fue diseñado para ser de propósito general,
corre del lado del servidor aunque también se puede utilizar para aplicaciones de
escritorio y móviles.
29
Es por ello que los creadores decidieron hacer Java un lenguaje compilado, pero a la
vez interpretado, es decir que Java es compilado a una lenguaje intermedio llamado
bytecode, que después es interpretado por el JRE(Java Runtime Environment), el cual
se encarga de interpretarlo.
Una de las características más importantes es que con Java, al ser de propósito
general, puedes crear aplicaciones tanto para web como de escritorio, y además es el
lenguaje preferido en cuanto a desarrollo móvil se trata, siendo el utilizado en la
plataforma Android.
CakePHP
Una de las principales ventajas de Cake PHP es que proporciona plantillas listas para
usar, esto hace que el proceso de desarrollo de aplicaciones web sea ágil, es fácil de
administrar e incluso un desarrollador menos experimentado puede trabajar con
facilidad, proporciona características de prueba personalizadas que hacen que la tarea
de prueba sea rápida y simple para los desarrolladores.[18]
Codeigniter
Yii
Symfony
Se decidió utilizar el framework CakePHP ya que proporciona plantillas listas para usar,
esto hace que el proceso de desarrollo de aplicaciones web sea muy ágil. La ubicación
y la configuración del sitio son todas hechas por el framework automáticamente,
proporciona características de prueba personalizadas que hacen que la tarea de
prueba sea rápida y simple para los desarrolladores, las validaciones se hacen de
forma interactiva y todo esto permite flexibilidad/agilidad a la hora de hacer proyectos.
Cualquier operación que el usuario hace contra la base de datos está controlada por el
gestor. El gestor almacena una descripción de datos en lo que llamamos diccionario de
datos, así como los usuarios permitidos y los permisos. Tiene que haber un usuario
administrador encargado de centralizar todas estas tareas.[20]
MySQL
Oracle
33
Es un sistema de base de datos relacional que fue desarrollado por Oracle corporation,
se considera como uno de los sistemas de base de datos más completos. Hace
algunos años su dominio en el mercado era casi total, en la actualidad debido a la gran
competitividad que existe ya no lo es tanto. Surge a finales de los 70. Las últimas
versiones de Oracle han sido certificadas para poder trabajar bajo GNL/Linux, es el
más usado a nivel mundial, multiplataforma, permite el uso de particiones, fácil de usar,
tiene un elevado precio, las versiones más recientes contienen muchos errores.[21]
PostgreSQL
PostgreSQL es gratuito, hace más sencillo el análisis de datos, tiene mejor soporte que
los proveedores comerciales, diseñado para ambientes de alto volumen, herramientas
gráficas de diseño y administración de base de datos, tiene una mayor seguridad, es
multiplataforma, la velocidad de repuesta es relativamente lenta y no es muy utilizada.
[21]
Los servidores web están alojados en un ordenador que cuenta con conexión de red.
El servidor web, se encuentra a la espera de que algún navegador le haga alguna
petición, como, por ejemplo, acceder a una página web y responde a la petición,
enviando código HTML mediante una transferencia de datos en red.
Apache
Apache es una popular y eficiente alternativa que ofrece servicios web. Este web
server es uno de los logros más grandes del software libre y la punta de lanza del
mundo de las páginas web.
Desde el año 1996, es el servidor web más popular del mundo, debido a su estabilidad
y seguridad. Apache sigue siendo desarrollado por la comunidad de usuarios
desarrolladores que trabaja bajo la tutela de Apache Software Foundation. Posee
soporte de seguridad SSL y TLS, puede realizar autentificación de datos utilizando un
sistema de gestor de base de datos (SGDB), puede dar soporte a diferentes lenguajes,
como Perl, PHP, Python entre otros.
IIS viene integrado con Windows NT 4.0. Dado que el IIS está tan íntimamente
integrado con el sistema operativo, es relativamente fácil de administrar. Sin embargo,
actualmente el IIS está disponible sólo para el uso en la plataforma Windows NT,
mientras que los servidores Web de Netscape corren en la mayoría de las plataformas,
incluyendo Windows NT, OS/2 y UNIX.
Una de las características más importantes es la presencia del protocolo HTTP que
ofrece sensibles mejoras de las prestaciones, disminuyendo los tiempos de respuesta
en la transmisión.
Las noveDefaults del protocolo HTTP residen en algunos de los elementos que lo
componen, tales como el Pipeling, las conexiones persistentes, las transferencias por
bloques chunked y el soporte para el proxy[23]. Su licencia no es gratuita, no es
multiplataforma y el código fuente es propietario.[24]
Conclusiones Parciales
2
3.1 Introducción
2.5.1
39
Rendimiento:
De seguridad:
RNF19: Se debe garantizar que los datos contenidos en la base de datos no deberán
ser redundantes o falsos.
RNF21: Se tratan los errores para que el sistema evitando que el sistema quede
deshabilitado en caso de que ocurra alguno
Requisitos de portabilidad:
RNF25: El sistema debe correr eficientemente como mínimo en una configuración con
un procesador Dual Core a 2.6GHz con 1GB RAM.
Legales:
Las Historias de Usuarios (HU), se utilizan para estimar el tiempo que puede
demorarse el desarrollo de la parte del sistema que en ella se describe. Estas son
elaboradas por el cliente donde él mismo describe brevemente lo que desea obtener
del producto. Cada HU corresponde a cada característica principal del sistema por lo
que se emplean en la fase de pruebas para verificar si el programa cumple con lo que
especifica la HU.
Historia de usuario
Número: HU01 Usuario: Administrador
Referencia: RF1
Historia de usuario
Número: HU02 Usuario: Cliente, Especialista.
Referencia: RF8
Historia de usuario
Número: HU03 Usuario: Especialista
Referencia: RF6
servicio para que el cliente al crear una solicitud pueda darle una prioridad en cuanto a
tiempo de ejecución por parte del Ejecutor.
Historia de usuario
Número: HU04 Usuario: Especialista
Referencia: RF7
Una vez confeccionadas las historias de usuario, se procedió a realizar una estimación
del esfuerzo asociado a la implementación de cada una de dichas historias de usuarios
que se definieron para un correcto desarrollo de la aplicación propuesta, a
continuación, se muestran los resultados de la estimación:
Tabla 6: Estimación de esfuerzo por historias de usuarios
Se presenta el plan de entrega, elaborado con las fechas en que serán liberadas las
historias de usuario.
Gestionar clientes
2 Gestionar usuarios
Cuenta de usuario 7/11/2018
Asociar clientes a usuarios
Gestionar roles
Gestionar permisos
Gestionar permisos por roles
Autenticar usuario
3 Cambiar contraseña 24/11/2018
Mostrar trazas
4 Salva y restauración del sistema. 22/12/2018
5 Reportes 06/02/2019
Se confeccionaron las historias de usuario para definir el tiempo y el riesgo que implica
la implementación de las funcionalidades que estas describen, los requisitos
funcionales y no funcionales; las estimaciones de esfuerzo por historias de usuarios,
plan de iteración, de duración y entrega de las mismas, modelo de despliegue y el
correspondiente diseño dela base de datos para definir la estructura que tendrá la
información manejada por la aplicación.
50
3.13 Introducción
En este capítulo se realizará la codificación de las HU que se definieron en el plan de
entrega con sus respectivas tareas de ingeniería TI, que serán definidas en el
transcurso de este capítulo, para que una vez terminada la implementación de las
funcionalidades del sistema, se pueda pasar a realizar las pruebas de aceptación
pertinente del producto utilizando los tipos, niveles y métodos de pruebas conocidos
para poder evaluar el producto, dando así por concluido el objetivo general.
La vista hace una presentación de los datos del modelo estando separada de los
objetos del modelo. Es responsable del uso de la información de la cual dispone para
producir cualquier interfaz de presentación de cualquier petición que se presente.
Por ejemplo, como la capa de modelo devuelve un conjunto de datos, la vista los
usaría para hacer una página HTML que los contenga, o un resultado con formato XML
para que otras aplicaciones puedan consumir.
La capa de la Vista no se limita únicamente a HTML o texto que represente los datos,
sino que puede ser utilizada para ofrecer una amplia variedad de formatos en función
de sus necesidades tales como videos, música, documentos y cualquier otro formato.
Los controladores pueden ser vistos como administradores cuidando de que todos los
recursos necesarios para completar una tarea se deleguen a los trabajadores más
adecuados. Espera peticiones de los clientes, comprueba su validez de acuerdo a las
normas de autenticación o autorización, delega la búsqueda de datos al modelo y
selecciona el tipo de respuesta más adecuado según las preferencias del cliente.
Finalmente delega este proceso de presentación a la capa de la Vista.
El ciclo de una petición típica en CakePHP comienza cuando un usuario solicita una
página o un recurso de la aplicación. Esta solicitud es procesada por un despachador
que selecciona el controlador correcto para manejarlo. Una vez que la solicitud llega al
controlador, éste se comunicará con la capa del Modelo para cualquier proceso de
captación de datos o el guardado de los mismos según se requiera. Una vez finalizada
esta comunicación el controlador procederá a delegar en el objeto de vista correcto la
tarea de generar una presentación resultante de los datos proporcionada por el
modelo. Finalmente, cuando esta presentación se genera, se envía de inmediato al
usuario.[26]
52
3.15 Diseño
Un patrón de diseño es una abstracción de una solución en un nivel alto. Los patrones
solucionan problemas que existen en muchos niveles de abstracción. Hay patrones
que abarcan las distintas etapas del desarrollo.
Estas tarjetas describen las clases utilizadas en la programación de una historia, estas
se dividen en tres secciones que contienen la información del nombre de las clases,
sus responsabilidades y sus colaboraciones. Una clase es cualquier persona, evento,
54
concepto, pantalla o reporte y sus responsabilidades son los métodos relacionados con
esta clase y sus atributos. Las colaboraciones de una clase son las demás clases con
las que trabaja en conjunto para llevar a cabo sus responsabilidades.
La utilización de estas tarjetas reduce al mínimo la complejidad del diseño. Esto logra
que el programador se centre en el diseño de las bases fundamentales de la clase y le
impide entrar en detalles de su funcionamiento interno que en un momento pueden
llegar a ser contraproducentes. A continuación, se describen dos de ellas; en el Anexo
2 se muestran el resto de las tarjetas CRC por cada HU del módulo.
Tarjeta CRC
Clase: SolicitudesController
Responsabilidades: Colaboraciones:
view() Solicitude
add()
edit()
create_by_cliente()
create_step_one()
ejecutar()
index()
index_by_rols()
standartoolbar()
standartoolbar_by_rol()
55
Tarjeta CRC
Clase: ClientesController
Responsabilidades: Colaboraciones:
view() Cliente
add()
edit()
index()
cantera()
show_cuentas_by_ou()
standartoolbar()
Tarjeta CRC
Clase: CuentabancariasController
Responsabilidades: Colaboraciones:
view() Cuentabancaria
add()
edit()
delete()
index()
show_clientes_by_ou()
standartoolbar()
56
Las (TI) son tarjetas que se elaboran para ayudar y simplificar la programación de una
(HU). Por cada una de las (HU) se definen una serie de tareas que se llevaron a cabo
para elaborar la funcionalidad que describe dicha historia. Las tareas pueden ser de
desarrollo, de corrección o de mejora. En la descripción de cada tarea se especifica la
fecha de inicio y fin de la misma, el programador responsable de cumplirla y una breve
descripción de lo que hace la tarea. Teniendo en cuenta las iteraciones determinadas
para la implementación del sistema se exponen en la siguiente tabla las tareas
correspondientes a cada (HU).
en caso de fallas.
5 HU19: Reportes TI19: Todos los usuarios del
sistema pueden generar reportes
de las solicitudes realizadas.
Conclusiones Generales
A partir del análisis del estado del arte se constató la necesidad de desarrollar un
sistema para la gestión de solicitudes de telefonía fija para lo cual se definió las
metodologías, herramientas y lenguajes de desarrollo, seleccionándose las más
adecuadas para el cumplimiento del objetivo general propuesto. El análisis y diseño del
sistema, posibilitó determinar los requerimientos necesarios del mismo para su correcto
funcionamiento, desarrollándose el sistema informático para la gestión de solicitudes,
que permite centralizar información, realizar búsqueda oportuna y unificar los formatos
de envíos de la solicitud.
62
Referencias bibliográficas
[1] InvGate, «InvGate Service Desk – Mucho más que gestión de solicitudes». [En
línea]. Disponible en: https://www.invgate.com/es/service-desk/other-capabilities/.
[Accedido: 18-feb-2019].
[2] «Software para Gestión de Solicitudes de Servicios | SoftExpert Solicitud»,
SoftExpert. .
[3] O. Tinoco Gómez, P. P. Rosales López, y J. Salas Bacalla, «Criterios de selección
de metodologías de desarrollo de software», Industrial Data, vol. 13, n.o 2, 2010.
[4] S. D. Amaro Calderón y J. C. Valverde Rebaza, «Metodologías ágiles», Escuela de
Informática. Trujillo: Universidad Nacional de Trujillo, 2007.
[5] A. N. Cadavid, J. D. F. Martínez, y J. M. Vélez, «Revisión de metodologías ágiles
para el desarrollo de software», Prospectiva, vol. 11, n.o 2, pp. 30-39, 2013.
[6] A. N. Cadavid, J. D. F. Martínez, y J. M. Vélez, «Revisión de metodologías ágiles
para el desarrollo de software», Prospectiva, vol. 11, n.o 2, pp. 30-39, 2013.
[7] R. S. Pressman y J. M. Troya, «Ingeniería del software», 1988.
63
Bibliografía
[1] «Manual de Funcionamiento interno de la Dirección de Comunicaciones». .
[2] InvGate, «InvGate Service Desk – Mucho más que gestión de solicitudes». [En
línea]. Disponible en: https://www.invgate.com/es/service-desk/other-capabilities/.
[Accedido: 18-feb-2019].
[3] «Software para Gestión de Solicitudes de Servicios | SoftExpert Solicitud»,
SoftExpert. .
[4] O. Tinoco Gómez, P. P. Rosales López, y J. Salas Bacalla, «Criterios de selección
de metodologías de desarrollo de software», Industrial Data, vol. 13, n.o 2, 2010.
[5] S. D. Amaro Calderón y J. C. Valverde Rebaza, «Metodologías ágiles», Escuela de
Informática. Trujillo: Universidad Nacional de Trujillo, 2007.
[6] «Manifiesto por el Desarrollo Ágil de Software». [En línea]. Disponible en:
http://agilemanifesto.org/iso/es/manifesto.html. [Accedido: 12-jun-2019].
[7] A. N. Cadavid, J. D. F. Martínez, y J. M. Vélez, «Revisión de metodologías ágiles
para el desarrollo de software», Prospectiva, vol. 11, n.o 2, pp. 30-39, 2013.
[8] A. N. Cadavid, J. D. F. Martínez, y J. M. Vélez, «Revisión de metodologías ágiles
para el desarrollo de software», Prospectiva, vol. 11, n.o 2, pp. 30-39, 2013.
[9] «¿Qué es el lenguaje unificado de modelado (UML)? | Lucidchart». [En línea].
Disponible en: https://www.lucidchart.com/pages/es/que-es-el-lenguaje-unificado-
de-modelado-uml. [Accedido: 22-may-2019].
[10] R. S. Pressman y J. M. Troya, «Ingeniería del software», 1988.
[11] R. Giandini, G. Pérez, y C. Pons, «Un lenguaje de Transformación específico
para Modelos de Proceso del Negocio», en XXXVI Conferencia Latinoamericana de
Informática (CLEI 2010), 2010, vol. 18.
[12] «CASE - EcuRed». [En línea]. Disponible en: https://www.ecured.cu/CASE.
[Accedido: 13-feb-2019].
[13] «Rational Rose Enterprise Edition - EcuRed». [En línea]. Disponible en:
https://www.ecured.cu/Rational_Rose_Enterprise_Edition. [Accedido: 13-feb-2019].
[14] «Definición de lenguaje de programación — Definicion.de», Definición.de. [En
línea]. Disponible en: https://definicion.de/lenguaje-de-programacion/. [Accedido:
14-feb-2019].
[15] piensa, «Principales lenguajes de programación para el desarrollo web», Blog
Piensa Solutions, 19-oct-2017. .
[16] Sabrina, «PHP vs Java: ¿Cuál debo elegir? ¿En qué se diferencian?», Guiadev,
04-feb-2019. [En línea]. Disponible en: https://guiadev.com/php-vs-java/. [Accedido:
12-jun-2019].
[17] J. Lafosse, Struts 2: El framework de desarrollo de aplicaciones Java EE.
Ediciones Eni, 2010.
[18] I. B y G, «¿ Por qué CakePHP ? Comparando Frameworks», Blog de Informatica
B&G, 05-sep-2018. .
[19] J. Eguiluz, «Desarrollo web ágil con Symfony2», Recuperado de http://symfony.
es/libro, 2013.
[20] DesarrolloWeb.com, «Sistemas gestores de bases de datos»,
DesarrolloWeb.com. [En línea]. Disponible en:
http://www.desarrolloweb.com/articulos/sistemas-gestores-bases-datos.html.
[Accedido: 14-feb-2019].
65
[21] «Diferencia Entre PostgreSQL MySQL Oracle», Scribd. [En línea]. Disponible en:
https://es.scribd.com/doc/36570454/Diferencia-Entre-PostgreSQL-MySQL-Oracle.
[Accedido: 14-feb-2019].
[22] «¿Qué es Apache?», Culturación, 09-feb-2011. .
[23] «IIS Vs Apache ¿que servidor utilizo?», Miguel Angel López WEB, 20-ene-
2015. .
[24] «IIS (Internet Information Server)», WiWi Weblog, 07-oct-2008. .
[25] ingeniods, «Patrones Arquitectónicos», Ingenio DS, 16-sep-2013. .
[26] «Entendiendo el Modelo - Vista - Controlador - 2.x». [En línea]. Disponible en:
https://book.cakephp.org/2.0/es/cakephp-overview/understanding-model-view-
controller.html. [Accedido: 08-mar-2019].
[27] G. L. G. Gómez, J. F. Acevedo, y D. A. Moreno, «Una ontología para la
representación de conceptos de diseño de software», Avances en Sistemas e
Informática, vol. 8, n.o 3, pp. 103-110, 2011.
66
Anexo 1
Historia de usuario
Número: HU05 Usuario: Especialista
Referencia: RF5
Descripción: Esta funcionalidad permitirá gestionar los servicios que pueden ser
solicitados por el Cliente.
Tabla 18: HU Gestionar cuenta bancaria
Historia de usuario
Número: HU06 Usuario: Administrador
Referencia: RF4
Descripción: Esta funcionalidad permitirá gestionar los datos referentes a las cuentas
bancarias que son utilizadas en las solicitudes para el pago de la misma.
67
Historia de usuario
Número: HU07 Usuario: Administrador
Referencia: RF9
Historia de usuario
Número: HU08 Usuario: Administrador
Referencia: RF2
Descripción: Esta funcionalidad permitirá gestionar los clientes que podrán realizar
solicitudes.
68
Historia de usuario
Número: HU09 Usuario: Especialista
Referencia: RF11
Descripción: Esta funcionalidad permitirá gestionar los usuarios que tendrán acceso al
sistema clasificados por roles.
Tabla 22: HU Cuenta de usuario
Historia de usuario
Número: HU10 Usuario: Administrador, Cliente, Especialista, Jefe DTEL,
Ejecutor
Nombre de H_U: Cuenta de usuario
Referencia: RF13
Historia de usuario
Número: HU11 Usuario: Especialista
Referencia: RF3
Descripción: Esta funcionalidad permitirá que a partir de un cliente se cree un usuario del
sistema.
Tabla 24: HU Gestionar roles
Historia de usuario
Número: HU12 Usuario: Administrador
Referencia: RF15
Descripción: Esta funcionalidad permitirá gestionar roles que serán asignados a los
usuarios.
70
Historia de usuario
Número: HU13 Usuario: Administrador
Referencia: RF16
Descripción: Esta funcionalidad permite gestionar permisos que serán asignados a los
usuarios.
Tabla 26: HU Gestionar permisos por roles
Historia de usuario
Número: HU14 Usuario: Administrador
Referencia: RF17
Descripción: Esta funcionalidad permitirá asignarle a los roles, los permisos para que los
71
usuarios solo puedan acceder a los recursos del sistema que tengan permitido.
Historia de usuario
Número: HU15 Usuario: Administrador, Cliente, Especialista, Jefe DTEL,
Ejecutor.
Nombre de H_U: Autenticar usuario
Referencia: RF14
Descripción: Esta funcionalidad permitirá que para entrar al sistema el usuario tenga que
poner usuario y contraseña para verificar su identidad.
Tabla 28: HU Cambiar contraseña
Historia de usuario
Número: HU16 Usuario: Administrador, Cliente, Especialista, Jefe DTEL,
Ejecutor.
Nombre de H_U: Cambiar contraseña
Referencia: RF12
Descripción: Esta funcionalidad permitirá que los usuarios del sistema puedan cambiar
sus credenciales.
Historia de usuario
Número: HU17 Usuario: Administrador
Referencia: RF18
Descripción: Esta funcionalidad permitirá mostrar las trazas por eventos, de las acciones
que realicen los usuarios.
Tabla 30: HU Salva y restauración del sistema
Historia de usuario
Número: HU18 Usuario: Administrador
Referencia: RF19
Descripción: Esta funcionalidad permitirá hacer salvas periódicas del sistema y su base
de datos.
Historia de usuario
Número: HU19 Usuario: Administrador, Cliente, Especialista, Jefe DTEL,
Ejecutor.
Nombre de H_U: Reportes
Referencia: RF9
Anexo 2
Tarjeta CRC
Clase: DashboardsController
Responsabilidades: Colaboraciones:
view() Dashboard
index()
rpt_solicitudes()
standartoolbar()
Tarjeta CRC
Clase: InmediateserviciosController
Responsabilidades: Colaboraciones:
view() Inmediateservicio
add()
edit()
index()
75
show_cuentas_by_ou()
standartoolbar()
Tarjeta CRC
Clase: PagesController
Responsabilidades: Colaboraciones:
home ()
home_cliente ()
home_ejecutor ()
home_especialista ()
home_jefe ()
Tabla 35: Tarjeta CRC SecurityAppController
Tarjeta CRC
Clase: SecurityAppController
Responsabilidades: Colaboraciones:
76
SecurityApp
Tarjeta CRC
Clase: ServiciosController
Responsabilidades: Colaboraciones:
view() Servicio
add()
edit()
index()
add_sup()
cantera()
standartoolbar()
Tarjeta CRC
Clase: ServiciosSolicitudesController
Responsabilidades: Colaboraciones:
view() ServiciosSolicitude
add()
edit()
index()
77
standartoolbar()
Tabla 38: Tarjeta CRC ServiciosuplementariosController
Tarjeta CRC
Clase: ServiciosuplementariosController
Responsabilidades: Colaboraciones:
view() Serviciosuplementario
add()
edit()
index()
standartoolbar()
show_cuentas_by_ou()
show_suplementario_by_servicio()
cantera()
Tarjeta CRC
78
Clase: ServiciosuplementariosSolicitudesController
Responsabilidades: Colaboraciones:
view() ServiciosuplementariosSolicitude
add()
edit()
index()
Tabla 40: Tarjeta CRC UosController
Tarjeta CRC
Clase: UosController
Responsabilidades: Colaboraciones:
view() Uo
add()
edit()
index()
standartoolbar()
cantera()