Professional Documents
Culture Documents
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
MATÍAS FUENTES
RICARDO ÁLVAREZ
SEBASTIÁN PINTO-AGÜERO
PABLO CANCINO
DIEGO SUÁREZ
MARÍA JESÚS CAMPOS
BASTIÁN SANTANA ROBLES
SEBASTIÁN REINOSO
Profesor:Vı́ctor Parada
Ayudante: Fabián Gómez
Santiago - Chile
15 de septiembre de 2017
TABLA DE CONTENIDOS
ÍNDICE DE FIGURAS................................................................................................. vi
iii
iv
5.4.3 MongoDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.5 ELECCIÓN DE TECNOLOGı́AS . . . . . . . . . . . . . . . . . . . . . 51
CAPÍTULO 7. IMPLEMENTACIÓN...................................................................... 67
7.1 DIAGRAMAS DE SECUENCIA . . . . . . . . . . . . . . . . . . . . . 67
7.2 DIAGRAMA DE COMPONENTES . . . . . . . . . . . . . . . . . . . 69
7.3 MODELO ENTIDAD-RELACIÓN . . . . . . . . . . . . . . . . . . . . 70
vi
vii
ÍNDICE DE TABLAS
1.1 CONTEXTO
A lo largo de los años, las encuestas se fueron transformando en una herramienta de gran
importancia en la sociedad, ya que de esta se desprende un recurso de gran valor: la infor-
mación.
Se debe tener en cuenta que la información obtenida de una encuesta no es totalmente con-
fiable, ya que, considerando el publico objetivo y el tiempo aplicado en la realización de
la encuesta, no siempre es posible su realización en la totalidad de la población escogida.
Por ello y por variadas razones, puede existir un margen de error en su realización, pero
obteniendo una cantidad de respuestas representativas de la población, y reduciendo la
posibilidad de errores con preguntas simples u otras formas, es posible obtener resultados
válidos, los que representan el pensamiento colectivo del público objetivo.
De las respuestas obtenidas se pueden realizar estudios y predicciones, de esta forma rea-
lizar planificaciones, estrategias y tomar decisiones que pueden ser a nivel de empresarial,
nacional o internacional, e ahı́ la gran importancia de las encuestas.
Las encuestas se pueden clasificar en dos tipos: presenciales o virtuales. Para las encues-
tas presenciales es necesario lugar fı́sico para su realización, lo que dificulta en muchas
situaciones la recolección de información, esto debido al tiempo y a las distancias que
pueden existir, al contrario de las encuestas virtuales, en las que solamente se hace nece-
saria la capacidad de ingresar al software en donde se encuentra la encuesta, lo que reduce
considerablemente los impedimentos para que una persona interesada pueda expresar su
opinión, ası́ se hace posible recolectar más información y de un publico mas variado.
2 CAPÍTULO 1: INTRODUCCIÓN
1.2.1 Misión
Nuestra misión como empresa es ofrecer el servicio de encuestas con una mirada diferen-
te, utilizando las ventajas que ofrecen las tecnologı́as actuales. Ofrecemos una experiencia
personalizada y cercana con el cliente, donde el software ofrecido se ajusta a las necesida-
des del cliente.
1.2.2 Visión
Nuestra visión es proveer una alternativa confiable a los sistemas de votación en lı́nea,
producir software de calidad y seguro, que genere confianza hacia los usuarios y asegurar
la integridad, privacidad y disponibilidad de la información de tal forma que pueda ser
consultada en cualquier momento.
1.3 MOTIVACIÓN
Debido al bajo numero de participantes en las votaciones para la toma de decisiones y el
interés en la aplicación de encuestas en la Universidad de Santiago de Chile (USACH),
nuestro cliente, Sergio Llanos nos solicita la creación de una plataforma web para la rea-
lización encuestas y votaciones, en la que pueda realizarse este tipo de recopilaciones de
información sobre la comunidad universitaria, tanto de su totalidad, como de un grupo en
especifico, todo esto, manteniendo una completa seguridad en la información recopilada.
1.4 OBJETIVOS
A continuación, se presentan los objetivos generales y especı́ficos del proyecto para di-
mensionar las capacidades y limitaciones que este posee.
1.4.1 Objetivos Principales
El objetivo principal es la creación e implementación de una plataforma web para la
Universidad de Santiago de Chile que permita la realización de votaciones y encuestas
dirigidas a la comunidad universitaria.
CAPÍTULO 1: INTRODUCCIÓN 3
3. Creación de una sistema que asegure los datos recopilados, para que no exista la
posibilidad de intrusiones, o problemas de cualquier ı́ndole.
10. Aplicación web: Corresponde los programas informáticos que son ejecutados en-
torno a un navegador [ALE17].
17. Prototipo: Maqueta del producto en fase de desarrollo, con propósitos de demostrar
funcionalidades o visualización aproximada del producto final [Esp17d].
20. Alcance: Alcance o scope, corresponde a los objetivos fijados y los servicios que se
espera brindar al cliente según los requerimientos de este.
Es apropiado para proyectos estables, es decir, que no sufran cambios en sus requi-
sitos en sus diferentes etapas de desarrollo.
Rara vez en la vida real se logra captar el camino correcto para el desarrollo de
soluciones, entonces, un proyecto se ve vulnerable a cambios constantemente y per-
judica la linealidad del modelo cascada.
No existen entregas del producto hasta que éste se encuentra ya finalizado, por lo
que el cliente no puede ver los avances.
Dueño del producto: Es quien vela por los intereses del producto. Participa de for-
ma activa en la elaboración del software, cumpliendo el rol de consultor y evaluador
de calidad en cada sprint. El dueño del producto no necesariamente es quién financia
el proyecto, pero si es el intermediario entre el equipo de trabajo, los interesados y
el dueño del negocio.
Usuarios: Son los usuarios finales del producto. Toda persona que vaya a utilizar
este producto y que no haya estado involucrada en el desarrollo del software es
considerada un usuario.
Para el desarrollo del Scrum, se hacen uso de diversas herramientas que facilitan la
metodologı́a y le aportan dinamismo.
16 CAPÍTULO 4: ANÁLISIS DEL PROYECTO
Iteración: Se utiliza el término Iteración o Sprint para definir un ciclo iterativo con-
sistente en la planificación, desarrollo, análisis, pruebas y entrega de un producto
mı́nimo viable que representa un porcentaje del producto total a desarrollar. Se espe-
ra que a medida que las Iteraciones avanzan, el producto progrese en su terminación
hasta culminar en el producto completo.
Historias de usuario: Las historias de usuario resumen los diversos tipos de interac-
ciones que tienen los diferentes usuarios con el sistema. Estas historias de usuario,
que son propias de la metodologı́a programación extrema, son también adoptadas
por Scrum debido a su simpleza y a que se relacionan directamente con los requeri-
mientos y casos de uso.
que representan el grado de dificultad que los miembros estiman que tiene la tarea
en juego. Adicionalmente, existen cartas de interrogación (signo ¿”) que representa
incertidumbre, y una cartas con una taza de café, las cuales invitan a un descanso.
Reuniones diarias: Estas reuniones tienen como objetivo evaluar el estado del
sprint en asuntos de coordinación y dificultades presentadas en el dı́a. Se estable-
cen medidas operativas para lidiar con las dificultades emergentes en el sprint.
Online encuestas Online encuestas es una opción gratuita y sin restricciones para
registrarse en el sitio. Se puede crear la encuesta en lı́nea directamente después
de su registro gratuito. Se puede escoger entre una variedad de tipos de preguntas
diferentes, redactar preguntas propias, añadir texto explicativo y añadir imágenes.
Siempre es posible ver una vista previa exacta de las preguntas individuales al igual
que el cuestionario completo. Además, puede modificar el tema de su cuestionario
usando propios colores y logotipos.[enc]
CAPÍTULO 4: ANÁLISIS DEL PROYECTO 19
Ferendum Esta plataforma sirve para crear una votación o encuesta para que luego
sea respondida por medio de un enlace o por medio de la página principal. Cual-
quier persona puede responder, ya que son creadas con privacidad pública. Es una
plataforma gratuita, sin necesidad de registrarse, especializada en prestar servicios
por medio de redes sociales como Twitter oFacebook. Ferendum enfatiza en que
ofrecen un servicio sencillo, seguro y confiable, el cual se ofrece diferentes idiomas
(incluyendo inglés y español). El sito web de Ferendum posee una sección de pre-
guntas frecuentes (FAQ), las cuales ayudan a los usuarios más inexpertos a utilizar
la plataforma.[Fer]
Estas cuatro herramientas son similares en cumplir su rol de creación de encuestas vı́a
web, en comparación con nuestro producto, lo que no incluyen es la capacidad de realizar
votaciones (esto se refiere al hecho o acto de brindarle apoyo a algo o alguien en particular)
se forma segura, confiable y anónima (según corresponda), a su vez el producto de forma
inicial es creado para una muestra especifica de personas (relacionados con la Universidad
de Santiago de Chile), lo cual facilita el almacenamiento de datos y los ingresos debido a
que se maneja previamente la población.
en el proyecto.
Pocas ganancias: Las ganancias obtenidas no igualan o superan los costos totales
calculados, es decir, el proyecto incurre en más gastos de los que se puedan manejar,
por lo que no se podrı́a considerar como proyecto exitoso. En este caso, se debe
replantear el presupuesto y hacer correcciones para generar mayores ganancias.
En las siguientes tablas se encuentran los riesgos de mayor importancia detectados con
su descripción correspondiente.
CAPÍTULO 4: ANÁLISIS DEL PROYECTO 23
También se plantea una estrategia para enfrentar estos riesgos como se aprecia en la
siguiente tabla.
4.5.1 Oferta
La oferta en el mercado corresponde a todos los sistemas de encuesta y votación en
lı́nea, es decir la competencia directa que tiene nuestro proyecto. Dentro de los principales
competidores se encuentran:
Formularios de Google
Monkey Survey
Ferendum
Strawpoll
Nicequest
Encuestas de Facebook
4.5.2 Demanda
Los sistemas de votación en lı́nea cada vez tienen más usuarios y se han hecho populares
recientemente gracias a su existencia en redes sociales y a lo fácil que es crear y difundir
encuestas mediante formularios de Google, ası́ como algunos sistemas que ofrecen recom-
pensas por contestar encuestas atraen a un gran número de usuarios. Lamentablemente,
estos sistemas no son confiables para la toma de decisiones dentro de una organización
ya que depender de un sistema de terceros no permite tener un control sobre la informa-
ción. El uso de un sistema de votación y encuesta privado permite tener control sobre la
información y asegurarse que los todos los miembros de una organización contesten la
encuesta.
Una vez obtenidos los resultados de la encuesta, se procede a tabularlos con el fin de
observar mejor las respuestas.
Se puede observar que Formularios de Google es la opción más popular. Una de las
respuestas que más destaca es que la gente cree que las votaciones en lı́nea pueden ser ma-
nipuladas y también la preocupación que existe respecto a estos sistemas. Destaca también
la falta de confianza en ellos, pero que aun ası́, más de la mitad de los encuestados prefiere
un sistema de votación WEB. Esto indica que para el proyecto es importante la seguridad
CAPÍTULO 4: ANÁLISIS DEL PROYECTO 35
de la información y elaborar un sistema confiable para los usuarios, ya que existe interés
y entusiasmo por los sistemas de votación en lı́nea.
4.7 COSTOS
Se procede a realizar una estimación de los costos asociados al desarrollo del proyecto
considerando un adicional de un 15 % en caso de imprevistos [Cec].
5.1 FRAMEWORK
Un framework o entorno de trabajo, en el ámbito de desarrollo de software, es una es-
tructura o un esquema para el desarrollo y para la implementación de una aplicación que
puede incluir soporte de programas, bibliotecas y múltiples herramientas. Los entornos
de trabajo hacen que el desarrollo del software sea mucho más simple en comparación al
desarrollo framework.
Como se puede observar en la figura sobre los entornos de trabajos orientados al desa-
rrollo de aplicaciones web basados en PHP más utilizados, el primer lugar lo ocupa Lara-
vel, siendo una gran preferencia por los desarrolladores y equipos de trabajo. Laravel es
seguido por CodeIgniter y Symfony.
38 CAPÍTULO 5: TECNOLOGÍAS PARA DAR SOLUCIÓN AL PROBLEMA
5.1.1 Laravel
Laravel es un framework de código abierto para el desarrollo de aplicaciones web en PHP,
creado en 2011 por Taylor Otwell, inspirándose en Ruby on Rails y Symfony, de los cuales
ha adoptado sus principales ventajas.
Laravel se ha encargado de facilitar el desarrollo de tareas comunes en el proceso
de desarrollo de paginas web, tales como la autenticación de usuario, el enrutamiento de
páginas y la gestión de sesiones de usuario. Algunas de las caracterı́sticas y ventajas de
Laravel son[Pal]:
Cuenta con amplia documentación, en caso de dudas y consultas que pudieran surgir
al momento de desarrollar.
Uso de sistema de plantillas llamado Blade, lo que hace uso de la cache para darle
mayor velocidad, además, Blade facilita la creación de vistas mediante el uso de
layouts, herencia y secciones.
Como es el framework de PHP más usado, cuenta con una comunidad muy activa.
CAPÍTULO 5: TECNOLOGÍAS PARA DAR SOLUCIÓN AL PROBLEMA 39
5.1.1.2 Migraciones
Son un sistema de control de versiones para bases de datos, que permiten realizar mo-
dificaciones en ellas manteniendo un registro de los cambios realizados y su estado actual
[Otw].
La forma en que las migraciones funcionan es mediante la creación de un archivo con códi-
go en PHP que describe el nombre y atributos de la tabla a crear y posteriormente, en caso
de querer modificar dicha tabla, agregar una nueva migración (un nuevo archivo PHP) con
las modificaciones deseadas. Artisan incluye comandos para la creación de migraciones,
ejecución de estas o para hacer volver a un estado anterior de la base de datos.
5.1.1.3 Blade
Es un motor de plantillas que permite la creación de páginas web dinámicas y las
conecta con su respectivo controlador, los cuales permiten realizar operaciones con los
datos ingresados por el usuario y entregar la información solicitada. Permite incorporar
elementos dinámicos, plantillas base y manipulación de variables en la misma página, lo
cual facilita la visualización de múltiples datos[Sán17].
5.1.2 CodeIgniter
CodeIgniter es el segundo framework de PHP más usado hoy en dı́a y al igual que cual-
quier otro framework, contiene una serie de librerı́as que ayudan al desarrollo de aplica-
ciones web, también proveen una manera de desarrollo que debemos seguir para sacar
provecho del framework. CodeIgniter implementa la arquitectura MVC (Modelo, Vis-
ta, Controlador), la cual es muy utilizada en la programación de aplicaciones de todo
tipo[Alv09].
Diseñado para proporcionar un uso simple desde la primera vez que se comienza a usar-
lo y de contar con un fácil método de instalación en cualquier servidor, nos ofrece las
siguientes caracterı́sticas[Fon12]:
Define una arquitectura de desarrollo que hará que la programación sea más ordena-
da y que contiene diversas herramientas que ayudan con la versatilidad y seguridad
de las aplicaciones.
40 CAPÍTULO 5: TECNOLOGÍAS PARA DAR SOLUCIÓN AL PROBLEMA
Menos rı́gido que otros framework, CodeIgniter establece una manera de trabajar al
programador, pero en muchos casos no es necesario seguirla. Lo mismo ocurre con
sus reglas de codificación, que muchas veces se pueden saltar para trabajar más a
gusto.
Cuenta con documentación escrita a modo de tutorial, por lo que resulta fácil de
seguir al iniciarse en CodeIgniter.
No trabaja con módulos, por lo que separar la aplicación en estos requiere comple-
mentos adicionales, modificación de la estructura básica, o en su defecto, ser muy
ordenados con el código.
5.1.3 Symfony
Symfony es un framework diseñado para optimizar el desarrollo de las aplicaciones web,
basado en el patrón de arquitectura MVC. Proporciona múltiples herramientas y clases
dedicadas a reducir considerablemente el tiempo de desarrollo de una aplicación web
compleja y además, automatiza tareas más comunes, permitiendo mayor dedicación en
asuntos especı́ficos de cada aplicación[Fab]. Ha sido probado en numerosos proyectos
reales y actualmente es utilizado en sitios web de comercio electrónico de primer nivel.
Este framework es compatible con la mayorı́a de los gestores de bases de datos, como
MySQL, PostgreSQL, Oracle y SQL Server. Algunas de sus caracterı́sticas son[Fer16]:
debe a que está enfocado en el desarrollo de aplicaciones web cuyo contenido se adapta al
tamaño de la ventana, lo que permite una visualización correcta del sitio web en dispositi-
vos móviles y equipos de escritorio. Algunas de las principales ventajas de este framework
son[Jos15]:
Cuenta con plantillas predefinidas, las cuales tiene un diseño elegante orientado a
entregar una buena usabilidad y pueden ser modificados por el diseñador.
Cuenta con una gran cantidad de componentes con diferentes funcionalidades y va-
riedad de diseño.
Cuenta con un sistema de bloques para el contenido de la página, el cual define una
estructura de maquetado en columnas, que esta orientado al diseño adaptativo.
Sin embargo debido a la gran cantidad de elementos que contiene, este también cuenta con
algunas desventajas:
Puede ser de difı́cil adaptación y aprendizaje en un principio, ya que cuenta con una
gran cantidad de elementos.
Puede resultar más pesado que otros framework debido a la gran cantidad de ele-
mentos que contiene, en relación a otras tecnologı́as más ligeras.
5.3.2 Foundation
Al igual que el framework anterior, Foundation tiene caracterı́sticas de diseño adaptativo
a la pantalla del dispositivo, basada principalmente en HTML, CSS con acceso a dife-
rentes componentes en textitJava Script. Este framework es creado por la compañı́a Zurb
y también es bastante popular, siendo la mayor competencia de Bootstrap. Por otro lado
este framework también es de código abierto, teniendo una gran cantidad de seguidores en
GitHub. Algunas de las principales ventajas de este framework son[Gar14]:
44 CAPÍTULO 5: TECNOLOGÍAS PARA DAR SOLUCIÓN AL PROBLEMA
Al igual que Bootstrap, está orientado al diseño adaptativo a la pantalla del disposi-
tivo.
Está orientado para trabajar con la filosofı́a mobile first, que plantea que el di-
seño inicial de la plataforma web se piensa desde un comienzo para dispositivos
pequeños. Ası́ se prioriza que el diseño tenga los elementos justos y necesarios.
Cuenta con un control modular de componentes Java Script, esto con el objetivo de
controlar el tamaño de la página web y solo usar los elementos necesarios.
Al igual que el framework anterior, Foundation cuenta con una estructura de bloques
orientada al maquetado de la página web.
Este framework se caracteriza principalmente por ser eficiente, debido a que es po-
sible elegir los elementos con que se desea trabajar, teniendo un entorno de trabajo
más liviano.
Como se puede ver este framework tiene caracterı́sticas similares a las de Bootstrap,
sin embargo también cuenta con sus propias desventajas, las cuales se muestran a conti-
nuación [CSS]:
Es bastante sencillo y simple de usar, pues solo contiene los elementos básicos para
desarrollar una plataforma.
Los proyectos diseñados con este framework son fáciles de mantener y extender.
Por otro lado también posee algunas desventajas caracterı́sticas, lo que viene asociado
con su simplicidad, a continuación se enumeran los siguientes:
No posee elementos Java Script, por lo que la forma que las plataformas diseñadas
son poco dinámicas visualmente.
Posee pocas herramientas gráficas respecto a los otros framework, de tal forma que
no es eficiente para proyectos grandes.
46 CAPÍTULO 5: TECNOLOGÍAS PARA DAR SOLUCIÓN AL PROBLEMA
5.4.1 PostgreSQL
PostgreSQL es un sistema de gestión de base de datos relacional orientada a objetos libre
y de código abierto, desarrollado por un grupo liderado por Michael Stonebraker, quien
ayudó a la creación de Ingres Database, del que intentarı́a solucionar las fallas que este
poseı́a en su sucesor. [Pos]. Enfocado en la expansibilidad y en la estandarización, como
base de datos es capaz de almacenar y entregar información a diversas aplicaciones que
realicen peticiones de forma segura, sin importar el tamaño de la aplicación (desde una
aplicación de un solo computador hasta grandes aplicaciones utilizando usuarios concu-
rrentes). Al ser un sistema de gestión de base de datos relacional orientado a objetos, la
forma de almacenamiento de información es similar a la forma convencional, que es la
relacional, pero con una gran diferencia ya que además trabaja bajo el concepto de obje-
tos (forma de representar la información de la misma), unido con el concepto de base de
datos relacional, en donde básicamente la información se guarda en una o más tablas de
filas y columnas en donde cada fila posee una llave que sirve como identificador[dat]. Las
caracterı́sticas más importantes de PostgreSQL son:
Posee diversas interfaces de programación nativas para C/C++, Java, .Net, Perl, Pyt-
hon, Ruby, Tcl, ODBC junto a una documentación muy completa.
Indexado de árbol de búsqueda generalizada, sistema avanzado que provee una gran
cantidad de algoritmos de ordenamiento y búsqueda. Además, permite la creación
CAPÍTULO 5: TECNOLOGÍAS PARA DAR SOLUCIÓN AL PROBLEMA 47
Las tablas pueden heredar sus caracterı́sticas de una tabla padre, lo que le da una
forma de crear bases de datos a partir de Modelos de Entidad Relación.
Cumple con el criterio ACID, es decir cumple al 100 % los conceptos de Atomici-
dad (una operación realiza todas las instrucciones o ninguna), Consistencia (ejecuta
todas las instrucciones que no generen problemas en la base de datos), Aislamiento
(una operación no puede afectar a otra) y Durabilidad (el resultado de una operación
es preservado de forma permanente).
5.4.2 MySQL
MySQL es un sistema de gestión de base de datos relacional de código abierto con ver-
siones gratuitas y de pago, desarrollado por la compañı́a sueca MySQL AB en 1994 consi-
derando como base el sistema de gestión de base de datos SQL. En 2008 la empresa Sun
Microsystems compra MySQL, para que en 2010 esta fuese adquirida por su actual dueño,
Oracle Corporation, quien le integró nuevas tecnologı́as como lo fue InnoDB[MySa]. Co-
mo indica Oracle Corporation, MySQL es una de las bases de datos más populares del
48 CAPÍTULO 5: TECNOLOGÍAS PARA DAR SOLUCIÓN AL PROBLEMA
mundo para aplicaciones basadas en la web, de fácil uso, lo que permite crear bases de
datos sin muchas complicaciones y de alto rendimiento, lo que permite su uso en aplica-
ciones de gran tamaño. Su funcionamiento se basa en un modelo relacional, en donde toda
la información es almacenada en forma de tuplas agrupadas en una relación. La forma
más fácil de visualizar este concepto es con tablas, en donde una relación es una tabla
compuesta por filas (tuplas) y columnas (elementos de la tupla). De esta forma, se pueden
almacenar toda la información contenga las mismas caracterı́sticas en una sola tabla, para
después consultar por esta a través de una llave, que es el parámetro que identifica a cada
fila de las demás[MySb].
Algunas caracterı́sticas de este sistema de gestión de bases de datos son:
Existen una gran cantidad de aplicaciones con interfaz gráfica de usuario que inte-
gran MySQL y permiten al usuario trabajar con la base de datos de forma visual.
Por ser tan popular, existe una gran cantidad de documentación y tutoriales sobre
MySQL.
5.4.3 MongoDB
MongoDB es un sistema de gestión de base de datos no relacional bajo el concepto de
código abierto y gratis. La compañı́a 10gen inicia su desarrollo en 2007 como una plata-
forma de servicio, pero luego en 2009 esta fue modificada a su forma actual de modelo
de desarrollo, ofreciendo soporte comercial a sus usuarios. Finalmente, en 2013, la com-
pañı́a 10gen cambió su nombre por MongoDB Inc[Mona]. Centrándose en la escalabilidad
y flexibilidad, MongoDB ofrece un estilo de almacenamiento de información distinto a la
forma convencional que utilizan las base de datos relacionales. MongoDB es una base de
datos orientada a documentos, lo que significa que la forma de almacenar la información
es a través de archivos de texto. Este concepto puede parecer similar a un diseño orientado
a objetos, ya que ambos almacenan la información en algo, sin embargo la información
almacenada en un documento puede tener un formato distinto a otro aunque pertenezcan
al mismo tipo, situación no permitida en los objetos. Las principales caracterı́sticas que
nos ofrece MongoDB son:
Una alta velocidad de acceso y modificación de la base de datos, logrando que sea
extremadamente útil en aplicaciones donde el usuario realiza muchas operaciones
con la base de datos.
Las estructuras de la base de datos no poseen un esquema definido, por lo que per-
mite una mayor libertad al programador al momento de crearlas y utilizarlas.
Posee un sistema de seguridad normal, lo que permite que cualquier usuario tenga
acceso completo a la base de datos
Al no tener una estructura definida por ser una base de datos no relacional, no exis-
te un estándar de formato para la información, provocando que cada programador
diseñe la base de datos como el quiera, dificultando ası́ el uso de esta misma por
personas externas.
No cumple completamente con el criterio ACID, por lo que pueden existir errores
en el uso de estas bases.
CAPÍTULO 5: TECNOLOGÍAS PARA DAR SOLUCIÓN AL PROBLEMA 51
Polling Rate
Rapid Poll
Encuesta Chile
Encuestas Autoadministrables
Tu Opinión Importa
Sublime Poll
El cliente puede crear preguntas con distintos campos, ya sea selección única o
selección múltiple.
El cliente puede filtrar las encuestas según estándares definidos por él.
El sistema debe informar a los usuarios cuando tienen una encuesta disponible por
correo electrónico.
Los resultados de las encuestas no deben ser visibles para los usuarios finales.
Encuestado: Usuario del sistema que tiene acceso a encuestas habilitadas para él.
Solamente puede responder encuestas y enviar comentarios o sugerencias.
Administrador: Usuario con privilegios de uso del sistema web. Puede crear encues-
tas, habilitar y deshabilitar encuestas, filtrar a los usuarios que pueden contestar la
encuesta, revisar resultados y estadı́sticas sobre la encuesta.
por el mismo camino, el usuario recibe una vista para escribir comentarios y enviar estos
al sistema.
Este diagrama muestra la interacción entre el actor y los componentes del sistema de
acuerdo a las acciones descritas en el caso de uso “Creando una nueva encuesta”. El usua-
rio ingresa el nombre y descripción de la encuesta en el navegador, los cuales pasan por
la vista y son enviados al controlador de la aplicación. Como respuesta, la aplicación mo-
difica la vista para que el usuario pueda agregar preguntas con sus respectivas respuestas
y es mostrada mediante el navegador web. El usuario ingresa las preguntas y respuestas
deseadas y las envı́a de vuelta a la aplicación. Finalmente, la aplicación realiza el mismo
camino hacia el usuario para que éste especifique la fecha y hora de inicio y término de
la aplicación. Una vez realizado esto, el usuario envı́a la encuesta a la aplicación, quien la
almacena en la base de datos del sistema.
En este diagrama se pueden observar tres componentes principales: PC, Servidor web
y Servidor DB. El Servidor web requiere del Servidor DB para proveer la información
solicitada por el componente PC. Dentro de este último componente tenemos al compo-
nente Navegador web , quien es el encargado de mostrar la vista de la aplicación web. El
componente Servidor web posee al componente Aplicación web (y a su vez, todos los sub
70 CAPÍTULO 7: IMPLEMENTACIÓN
Este modelo describe de forma básica como se organiza la base de datos. Cada encues-
ta pertenece a un cliente que compra el producto. Esta encuesta debe tener por lo menos
una o más preguntas y a su vez puede poseer archivos adjuntos, además de comentarios.
Estos comentarios son dejados por algún usuario del sistema, quien a su vez puede dejarlos
en alguna encuesta en que haya participado.
El modelo entidad-relación propuesto no se encuentra normalizado, debido a que es
una propuesta preliminar.
[Gar14] Alberto Garcı́a. Desarrollo de sitios web responsivos con Foundation 5. 2014.
URL : http://nosmoke.cycle-it.com/2014/05/05/desarrollo-
de-sitios-web-responsivos-con-foundation-5/.
[Esp17a] Real Academia Española. Definición de base de datos. 2017. URL: http :
//dle.rae.es/srv/fetch?id=5ASmP2Z.
[Esp17c] Real Academia Española. Definición de página web. 2017. URL : http://
dle.rae.es/?id=RRvUbbP.
[Ger17] Ivaylo Gerchev. The 5 Most Popular Frontend Frameworks of 2017 Compared.
2017. URL : https://www.sitepoint.com/5- most- popular-
frontend-frameworks-compared/.
[dat] The world’s most advanced open source database. 13 septiembre, 2017. URL:
https://www.postgresql.org/about/.
[Fab] François Zaninotto Fabien Potencier. Symfony 1.2, la guı́a definitiva. URL :
http://librosweb.es/libro/symfony_1_2/capitulo_1/
symfony_en_pocas_palabras.html.
[gan] Carta Gantt – Asegura el éxito de tus proyectos con un diagrama de gantt.
2017. URL: https://www.cartagantt.com/.
[Monb] Survey Monkey. En qué es mejor SurveyMonkey que Google Forms. URL :
https://es.surveymonkey.com/mp/surveymonkey-better-
than-google-forms/.
[MySb] MySQL 5.7 Reference Manual :: 1.3.2 The Main Features of MySQL. 13 sep-
tiembre, 2017. URL: https://dev.mysql.com/doc/refman/5.7/
en/features.html.
[Pal] Duilio Palacios. Porque elegir Laravel en vez de Codeigniter. URL : https:
//styde.net/porque-elegir-laravel-en-vez-de-codeigniter/.