Está en la página 1de 30

CAPITULO I

DESCRIPCIÓN DEL PROYECTO

1.1. ANTECEDENTES
En la actualidad la tecnología se ha transformado en algo que se encuentra
presente e indispensable en cada uno, queramos o no, en prácticamente todo
lugar veremos tecnología. El internet es la principal expresión de una revolución
tecnológica que ha posibilitado eliminar las distancias y hacer disponible la
información rápida y confiable.

Vivimos en una época donde surge la necesidad de comunicación y la necesidad


de contar con información requerida de manera ágil, oportuna y eficaz, esta
necesidad ha llegado a las instituciones y organizaciones que optan por
establecer una presencia en la internet no solo como una presentación a la
sociedad o a su entorno, sino lo más importante brindando una plataforma de
información y comunicación acorde a las necesidades de dicha organización.

En este sentido el Gobierno Autónomo Municipal de Tiraque se suma a la


posibilidad de brindar información disponible, actualizada de manera fácil, clara
y transparente que garantice los derechos fundamentales de los usuarios de
acceso a la información, razón por la cual el presente proyecto opta por
implementar un sistema de gestión de contenidos(CMS) basado el laravel que
permita realizar el seguimiento y monitoreo de las actividades del municipio para
garantizar la información relevante disponible y actualizada.

1.2 OBJETO DE ESTUDIO


La aplicabilidad de los métodos, herramientas y técnicas de la ingeniería de
sistemas, para desarrollar un sistema de información; obligatoriamente apegado
a un método de desarrollo de software, basándose en las últimas tecnologías del
desarrollo de software; permitiendo propiciar un soporte tecnológico a las
necesidades y expectativas administrativas de la institución.

1.3 IDENTIFICACIÓN DEL PROBLEMA


Luego de realizar entrevistas a los personeros y directivos de la institución (Ver
anexo A página 142), se logra determinar los siguientes problemas.
 Deficiente manejo y difusión de información relevante, que se genera en
la institución y que no es recibida de manera personal por toda población,
y la información no difundida genera incertidumbre en la población.
 Poca difusión de información acerca de la institución, lo que provoca.
 Mucha de la información de la institución y la más relevante es manejada
de manera manual, lo que provoca retraso en la publicación y
actualización de contenidos.
 No existe una base de datos donde almacenar información acerca de las
publicaciones, noticias, resoluciones, bolsa de trabajo, y toda clase de
información generada en la institución.

1.4 FORMULACIÓN DEL PROBLEMA


¿De qué manera el implantar un sistema web coadyuvara en brindar una mayor
difusión de información que facilite su acceso permitiendo de esta manera una
integración de la población con la institución?

1.5 OBJETIVO GENERAL


Desarrollar un sistema de gestión de contenidos (CMS) para la gestión y difusión
de información del Gobierno Autónomo Municipal de Traque, utilizando el
framework LARAVEL.

1.6 OBJETIVOS ESPECÍFICOS


 Automatizar y organizar la información propia de la institución a ser
difundida
 Crear módulos para la administración eficiente de contenidos
 Diseñar e implementar una base de datos que permita almacenar
información referida a publicaciones, noticias, resoluciones, seminarios,
bolsa de trabajo.
 Diseñar y crear un módulo de galería multimedia de foto y video.
 Lograr el acceso a la información de los contenidos, así como la
información de la población de rápida.

Describir la situación actual de la institución.


Diseñar el diagrama de base de datos que represente el comportamiento más
apropiado para el proyecto.

Generar el código pertinente.

Testear los módulos a través de métodos diversos.

1.7 JUSTIFICACION TECNICA


Los recursos tecnológicos actuales y la alta accesibilidad a medios de
información tecnológicos, permiten diseñar y aplicar modelos que colaboren a
los procesos que cuestiona la institución como no apropiados.

Adicionalmente, los entornos de desarrollo de software, aseguran una


programación más limpia, con mayor agilidad, permitiendo entregar un software
con mayor prestación.

El gobierno autónomo municipal dispone de equipos de computación para


realizar el manejo y administración de los contenidos vía internet, y teniendo en
cuanta la política de trabajo de software libre, el desarrollo del sistema se lo
hará bajo esta misma consigna.

Continuar aplicando los procesos actuales de la gestión de la información,


pueden llegar a perjudicar a los objetivos de la institución, complicando cada
vez más las modelos de trabajo, los documentos, y el cumplimiento a las
normas y exigencias quedara definitivamente negado.

1.8 JUSTIFICACIÓN SOCIAL


El implementar el sistema de gestión de contenidos permita a toda la población
tener a disposición el acceso a publicaciones de la institución así como de toda
la información sobre actividades referidas al municipio de manera ágil, veraz y
oportuna, permitiendo así una integración de toda la población en general,
obteniendo un fortalecimiento de la institución

Todos los participantes en los procesos académicos y económicos, como ser:


los directivos, empleados, docentes, estudiantes, familiares y comunidad,
pueden participar de la información que asegure oportunidad, integridad y
accesibilidad.

1.9 ALCANCE DEL PROYECTO


En esta sección se define los alcances y las limitaciones del proyecto, ya que
estas son las directrices que marcan el desarrollo de la propuesta.
 Módulos de administración de contenidos, en este módulo se realizaran
el control seguimiento y actualización de las publicaciones, noticias,
gacetas,
 ADMINISTRACION DE GESTION DE CONTENIDO
o Sitio
 Informacion del Sitio
 Favicon del Sitio
 Banner del Sitio
 Estilos y Modelos
o Usuario
 Crear Usuario
 Permisos Menu Principal
 Permisos Menu Secundario
o Menus
 Agregar Menu Principal
 Crear Articulo
 Crear Area
 Crear Proyecto
 Crear Servicio
 Agregar Menu Secundario
 Crear Articulo
 Crear Area
 Crear Proyecto
 Crear Servicio
 Enlaces Externos
 Agregar menu
 Galería de Imágenes
 Crear Carrusel
o Contenido
 Crear Noticia
 Multimedia
o Imágenes
o Videos
o Documento
o Audio
 Crear Prensa
 Multimedia
o Imágenes
o Videos
o Documento
o Audio
 Crear Tramite
 Multimedia
o Imágenes
o Videos
o Documento
o Audio
 Crear Convocatoria
 Multimedia
o Imágenes
o Videos
o Documento
o Audio
 Crear Plan Anual de Contrataciones
 Multimedia
o Imágenes
o Videos
o Documento
o Audio
 Craer Gaceta Municipal
 Multimedia
o Imágenes
o Videos
o Documento
o Audio

 PAGINA WEB
o

CAPITULO II

MARCO DESCRIPTIVO

2.1 ANTECEDENTES Y DATOS GENERALES DE LA INSTITUCIÓN


BREVE HISTORIA DETIRAQUE
Tiraque hasta el año 1986, había pertenecido a la provincia de Arani del departa-
mento de Cochabamba como segunda sección, con sus cantones: Shinahota,
Pal-ca y Vandiola. A consecuencia de haberse presentado una extensa lista de
moti-vos para la provincialización de Tiraque por el pueblo y sus autoridades
tiraque-ños, el 10 de febrero de 1983 y después de casi cuatro años de tortuosas
gestio-nes administrativas ante las autoridades Gubernamentales y la fuerte
oposición del pueblo y sus autoridades de la provincia Arani, fue promulgada por
ley de la República Nº 0888 del 15 de Octubre de 1986, que dispone la creación
de la nue-va Provincia Tiraque del departamento de Cochabamba.

Desde las elecciones municipales del año 1999 y posteriormente en las de 2004,
los representantes de las organizaciones campesinas asumen liderazgo y
consoli-dan su participación en el gobierno municipal de Tiraque. Los alcaldes
reorientan el proceso de desarrollo con mayor énfasis hacia la producción
agropecuaria a partir de la implementación principalmente de proyectos de
infraestructura produc-tiva, la inversión en el área social ha mejorado
sustancialmente los niveles de vida en el área rural.

2.2 POBLACION
De acuerdo al Instituto Nacional de Estadística del censo 2012, la población total
del Municipio de Tiraque alcanza a 35.017 habitantes (16.946 mujeres y 18.071
hombres). El 72,54% de la población vive en el área rural, y el restante 27.46%
se encuentra en el área urbana del municipio. (INE, 2017)

2.3 DIVICION POLITICA


El municipio de Tiraque se encuentra conformado por: 25 sub centrales distribui-
das entre los 10 distritos, Comunidad como Quiska Loma no pertenecen a
ninguna Sub Central, sino dependen directamente de la Central Regional o
Central Cam-pesina,137comunidades, y 6 Juntas Vecinales, cuatro con registro
de Personería Jurídica dispuesta por la Ley de Participación Popular y dos en
gestión.

2.4 LOCALIZACION GEOGRAFICA


El municipio de Tiraque, limita al este con parte del municipio de Carrasco, al
norte y oeste con el municipio de Chapare, al sur con el municipio de Arani y al
sur oes-te con el municipio de Punata, la distancia desde la ciudad de
Cochabamba hasta el centro poblado es de, 60 kilómetros y una movilidad pude
recorrer este tramo en un tiempo promedio de una hora.

2.5 MISIÓN INSTITUCIONAL


El Gobierno Autónomo Municipal de Tiraque, es la entidad de derecho público,
con personería jurídica reconocida y patrimonio propio, que representa al
conjunto de habitantes y estantes asentados en el municipio, participa en la
realización de los fines del estado y cuyas finalidades serán establecidas dentro
del marco de la ley marco de autonomías las cuales serán plasmadas dentro de
la Carta Orgánica Municipal a elaborarse durante la gestión 2013, con la
participación de todos los actores sociales, sectores económicos, civiles y
productivos de nuestra jurisdicción, la cual tiene como misión principal el de
satisfacer la necesidades de los estantes y habitantes de nuestra jurisdicción
municipal, con la participación activa de los sectores sociales, satisfaciendo las
necesidades del municipio dentro del ámbito de las competencias y
potencialidades plasmadas dentro del Plan de Desarrollo Municipal.

2.6 VISION INSTITUCIONAL


El Gobierno Autónomo Municipal de Tiraque, se puede decir que tiene una visión
de ser un municipio productivo con saneamiento básico, multiecologico y
turístico, pero la misma será plasmada de mejor y de manera mucho mas amplia
en el proceso de elaboración de la Carta Orgánica Municipal a elaborarse
durante la gestión 2013, con la participación de todos los actores sociales,
sectores económicos, civiles y productivos de nuestra jurisdicción municipal.

2.7 GUIA DE ESTARIZACION PARA SITIOS WEB ESTADO


PLURINACIONAL DE BOLIVIA.
El Estado boliviano ha emprendido un importante camino hacia la integración
intercultural del país, incorporando las Tecnologías de Información y
Comunicación (TIC) en la administración pública como herramienta para
coadyuvar en el nuevo patrón de desarrollo nacional “Para Vivir Bien”. La
participación de la ciudadanía en el acceso a la información de la gestión pública
genera un ambiente de transparencia y rendición de cuentas de las actividades
gubernamentales, profundizando los procesos democráticos en el país. En este
sentido es necesaria la utilización de aplicaciones tecnológicas que permitan a
la sociedad interactuar con mayor facilidad con el Estado. En este marco, el
Artículo Nº 21 de la Constitución Política del Estado, establece como derecho
civil del ciudadano, el acceso a la información, a su interpretación, análisis y
comunicación libre, de manera individual o colectiva, enfatizando en su Sección
IV “Ciencia, Tecnología e Investigación”, en el Artículo 103, la garantía del
desarrollo de la ciencia y tecnología en beneficio del interés general, asumiendo
en el Estado boliviano la implementación de estrategias para incorporar el
conocimiento y la aplicación de nuevas TIC. Dichos preceptos constitucionales,
exigen la generación de políticas gubernamentales que orienten los esfuerzos
del Estado hacia un desarrollo homogéneo del “Gobierno Electrónico”,
determinando en este caso estándares para los sitios Web gubernamentales. En
este contexto, se ha gestado la presente “Guía de estandarización de sitios Web
gubernamentales del Estado boliviano”, misma que basa su contenido en un
análisis de las políticas nacionales de tecnologías de la información y la
comunicación, en la normativa relativa al acceso a la información y la
transparencia y en estándares técnicos aplicables en la materia. La presente
guía tiene como objeto emitir ciertas pautas para el desarrollo de Sitios Web
gubernamentales, mediante las cuales se puedan asegurar que éstos,
contengan información relevante, confiable, accesible y que cumplan con los
preceptos en cuanto a su diseño e interfaz, para concretar de manera eficiente y
eficaz con su objetivo. (ADSIB, 2017)
CAPITULO III

MARCO TEÓRICO CONCEPTUAL

3.1 METODOLOGIAS DE LA INGENIERIA DE SOFTWARE


Durante mucho tiempo, las organizaciones han reconocido la importancia de
administrar recursos clave como las personas y la materia prima. Actualmente,
la información ha encontrado su lugar apropiado como recurso clave. Los
responsables de la toma de decisiones por fin comprenden que la información
no es sólo un producto derivado de las operaciones comerciales, sino que
además provee impulso a las empresas y puede constituir el factor decisivo para
determinar el éxito o el fracaso de un negocio.

Para maximizar la utilidad de la información, una empresa debe administrarla en


forma apropiada, de la misma manera en que administra los demás recursos.
Los administradores necesitan comprender que hay costos asociados con la
producción, distribución, seguridad, el almacenamiento y la recuperación de toda
información. Aunque la información está a nuestro alrededor, no es gratuita y no
debemos dar por hecho su uso estratégico para poner a una empresa en una
posición competitiva.(Kendal, 2011)

3.2 METODOLOGIAS
Metodología se refiere a la serie de métodos y técnicas de rigor científico que se
aplican sistemáticamente durante un proceso de investigación para alcanzar un
resultado teóricamente válido. En este sentido, la metodología funciona como el
soporte conceptual que rige la manera en que se aplica los procedimientos en
una investigación.

Las metodologías de desarrollo de software nacen ante la necesidad de utilizar


una serie de procedimientos, técnicas, herramientas y soporte documental antes
de desarrollar un software, estas metodologías tratan de guiar a los
desarrolladores a crear un nuevo software, los requisitos de un sistema a otro
son variados y cambiantes, esto genera que exista una gran variedad de
metodologías.
Las metodologías tradicionales hacen énfasis en la planificación, estableciendo
rigurosamente las actividades a desarrollarse. Mientras que las metodologías
ágiles hacen énfasis en la adaptabilidad del proceso, como respuestas a los
problemas que puedan ocasionar, también son orientados a al iteración con el
cliente. El tema de modelos para el mejoramiento de los procesos de desarrollo
ocupa un lugar importante en la búsqueda de la metodología adecuada para
producir software de calidad en cualquier contexto de desarrollo.

3.2.1 METODOLOGA DE DESARROLLO DE SOFTWARE RUP


El Proceso Unificado Racional (RUP, por las siglas de Rational Unified Process)
(Krutchen, 2003) es un ejemplo de un modelo de proceso moderno que se derivó
del trabajo sobre el UML y el proceso asociado de desarrollo de software
unificado (Rumbaughet al., 1999; Arlow y Neustadt, 2005). Aquí se incluye una
descripción, pues es un buen ejemplo de un modelo de proceso híbrido. Integra
elementos de todos los modelos de proceso genéricos (descritos anteriormente),
ilustra la buena práctica en especificación y diseño y apoya la creación de
prototipos y entrega incremental.

3.2.2 METODOLOGIAS DE DESARROLLO DE SOFTWARE SCRUM


Aunque surgió como modelo para el desarrollo de productos tecnológicos, pero
también se emplea en entornos que trabajan con requisitos inestables y
requieren rapidez y flexibilidad; situaciones frecuentes en el desarrollo de
determinados sistemas de software. Se aplican de manera regular un conjunto
de buenas prácticas para trabajar colaborativamente, en equipo, y obtener el
mejor resultado posible de un proyecto, en la que se realizan entregas parciales
y regulares del producto final, priorizadas por el beneficio que aportan al receptor
del proyecto.
Por ello, Scrum está especialmente indicado para proyectos en entornos
complejos, donde se necesita obtener resultados pronto, donde los requisitos
son cambiantes o poco definidos, donde la innovación, la competitividad, la
flexibilidad son fundamentales.
Es un marco de trabajo para un método de desarrollo adaptable, antes que
predictivo orientado a las personas más que a los procesos, también emplea el
modelo de construcción incremental basada en interacciones y revisiones.
Figura Nº 1

Tabla Nº 1

Product backoolg Se describe todas la características y requisitos


funcionales para el nuevo software a ser
desarrollado
Sprint La descripción de las iteración es aplicadas para
cumplir con los entregables para el product
backloog
Entregables Son descritos como los productos finales del
software
Actores para el Scrum Scrum master. Persona que rige el cumplimiento
de proceso scrum. Es el responsable de coordinar
los procesos y actividades con el cliente.
Team: Persona que desarrolla el producto
solicitado mediante la aplicación de software de
desarrollo.

Product Owner: Es el interesado que vela los


intereses de la empresa o institución en estudio.
Diagrama Burn Down Expresa la cantidad de horas programadas para
sprint y la cantidad der horas quemadas en un
sprint.
Fuente: Diseño propio

Figura Nº 2

3.2.3 METODOLOGIAS AGILES VS METODOLOGIAS


TRADICIONALES
Tener metodologías diferentes para aplicar de acuerdo con el proyecto que se
desarrolle resulta una idea interesante. Estas metodologías pueden involucrar
prácticas tanto de metodologías ágiles como de metodologías tradicionales. De
esta manera podríamos tener una metodología para cada proyecto, la
problemática sería definir cada una de las prácticas, y en el momento preciso
definir parámetros para saber cuál usar.

Es importante tener en cuenta que el uso de un método ágil no es para todos.


Sin embargo, una de las principales ventajas de los métodos ágiles es su peso
inicialmente ligero y por eso las personas que no estén acostumbradas a seguir
procesos encuentran estas metodologías bastante agradables.
(METODOLOGIASAGILES, 2015)

Tabla Nº 2 METODOS AGILES VS METODOS TRADICIONALES

METODOS AGILES METODOS TRADICONALES

Basadas en eucarísticas provenientes de Basadas en normas provenientes de


prácticas de producción de código. estándares seguidos por el entorno de
desarrollo

Impuestas internamente (por el equipo). Impuestas externamente.

Proceso menos controlado, con pocos Proceso mucho más controlado, con
principios numerosas políticas/normas.

No existe contrato tradicional o al menos Existe un contrato prefijado.


es bastante flexible.

El cliente es parte del equipo de El cliente interactúa con el equipo de


desarrollo. desarrollo mediante reuniones.

Grupos pequeños (<10 integrantes) y Grupos grandes y posiblemente


trabajando en el mismo sitio. distribuidos.

Pocos artefactos. Más artefactos.

Pocos roles Más roles.

Menos énfasis en la arquitectura del La arquitectura del software es esencial y


software. se expresa mediante modelos.

Fuente: (METODOLOGIASAGILES, 2015)


3.3 HERRAMEINTAS DE DISEÑO

3.3.1 DIAGRAMA DE CASO DE USO


Aunque en un principio se presentaron como un diagrama para usarlo en el UML
orientado a objetos, ahora los casos de uso se utilizan sin importar la
metodología para el desarrollo de sistemas. Se pueden utilizar como parte del
Ciclo de Vida de Desarrollo de Software o en el modelado ágil. Un modelo de
caso de uso describe qué hace un sistema sin describir cómo lo hace; es decir,
es un modelo lógico del sistema.

3.3.2 DIAGRAMA DE COMPONENTES


Un componente es un tipo de clasificador estructurado, por lo que debe definirse
su estructura interna en un diagrama de estructura interna. La siguiente Figura
muestra la estructura interna del sistema de venta del teatro. El sistema de venta
del teatro se define como un componente cuya estructura interna contiene usos
de otros componentes. Hay tres interfaces de usuario: la de los clientes que
utilizan el quiosco, la de los empleados que utilizan el sistema de reserva
automatizado y la de los supervisores que realizan consultas sobre la venta de
entradas. Hay un componente expendedor de entradas que ordena las
peticiones de los quioscos y de los empleados, un componente que procesa los
cargos a las tarjetas de crédito, y un repositorio que almacena la información de
las entradas. El diagrama de definición de componentes proporciona la
estructura de un tipo de componente; una configuración específica de la
aplicación puede utilizar más de una copia del componente. (RUMBAUGH, 2007)

3.3.3 DIAGRAMA DE CLASES


Los diagramas de clases describen la estructura estática de un sistema. Las
cosas que existen y que nos rodean se agrupan naturalmente en categorías. Una
clase es una categoría o grupo de cosas que tienen atributos (propiedades) y
acciones similares. Un ejemplo puede ser la clase Estudiante que tiene atributos
como el “Nombre”, “Apellidos”, “Numero de C.I.”, etc. Entre las acciones de las
cosas de esta clase se encuentran: “registrar”, “modificar”, etc. (RUMBAUGH,
2007)
3.3.4 SISTEMAS DE INFORMACION
Los sistemas de información se desarrollan para distintos fines, dependiendo de
las necesidades de los usuarios humanos y la empresa. Los sistemas de
procesamiento de transacciones (TPS) funcionan en el nivel operacional de la
organización; los sistemas de automatización de oficinas (OAS) y los sistemas
de trabajo de conocimiento (KWS) brindan soporte para el trabajo a nivel del
conocimiento. Entre los sistemas de nivel superior se encuentran los sistemas
de información administrativa (MIS) y los sistemas de soporte de decisiones
(DSS). (Kendal, 2011)

3.3.5 SISTEMAS DE GESTOR DE BASE DE DATOS (SGBD)


Un sistema gestor de bases de datos (SGBD) consiste en una colección de datos
interrelacionados y un conjunto de programas para acceder a dichos datos. La
colección de datos, normalmente denominada base de datos, contiene
información relevante para una empresa. El objetivo principal de un SGBD es
proporcionar una forma de almacenar y recuperar la información de una base de
datos de manera que sea tanto práctica como eficiente.

Los sistemas de bases de datos se diseñan para gestionar grandes cantidades


de información.

La gestión de los datos implica tanto la definición de estructuras para almacenar


la información como la provisión de mecanismos para la manipulación de la
información. Además, los sistemas de bases de datos deben proporcionar la
fiabilidad de la información almacenada, a pesar de las caídas del sistema o los
intentos de acceso sin autorización. Si los datos van a ser compartidos entre
diversos usuarios, el sistema debe evitar posibles resultados anómalos.

Dado que la información es tan importante en la mayoría de las organizaciones,


los científicos informáticos han desarrollado un amplio conjunto de conceptos y
técnicas para la gestión de los datos. (Silberschatz, Korth, & Sudarshan, 2002)

Mencionaremos algunos de los sistemas de gestores de bases de datos:

 PostgreSQL
Es un sistema de administración de bases de datos relacionales (RDBMS,
Relational Database Management System). Significa que es un sistema para
administrar datos guardados en relaciones. Una relación es esencialmente un
término matemático para referirse a una tabla. La noción de guardar datos en
tablas es tan común hoy en día que puede parecer inherentemente obvia, pero
existen otras maneras de organizar las bases de datos. Los archivos y directorios
de los sistemas operativos tipo Unix son un ejemplo de bases de datos
jerárquicas. Un desarrollo más moderno son las bases de datos orientadas a
objetos.

 Oracle

Oracle Database es un sistema de gestión de base de datos de tipo objeto-


relacional (ORDBMS, por el acrónimo en inglés de Object-Relational Data Base
Management System), desarrollado por Oracle Corporation.

Se considera a Oracle Database como uno de los sistemas de bases de datos


más completos, destacando: soporte de transacciones, estabilidad,
escalabilidad, y soporte multiplataforma.

Su dominio en el mercado de servidores empresariales había sido casi total


hasta que recientemente tiene la competencia del Microsoft SQL Server y de la
oferta de otros RDBMS con licencia libre como PostgreSQL, MySQL o Firebird.

Las últimas versiones de Oracle han sido certificadas para poder trabajar bajo
GNU/Linux.

 MariaDB

MariaDB es un remplazo de MySQL con más funcionalidades y mejor


rendimiento. MariaDB es un un fork de MySQL que nace bajo la licencia GPL.
Esto se debe a que Oracle compró MySQL y cambió el tipo de licencia por un
privativo, aunque mantuvieron MySQL Community Edition bajo licencia GPL. La
compatibilidad de MariaDB con MySQL es prácticamente total y por si fuese poco
tenemos mejoras de rendimiento y funcionalidad. MariaDB está diseñado para
reemplazar a MySQL directamente ya que mantiene las mismas órdenes, APIs
y bibliotecas.

 MySql

Es un sistema de gestión de bases de datos relacional desarrollado bajo licencia


dual GPL/Licencia comercial por Oracle Corporation y está considerada como la
base datos open source más popular del mundo y una de las más populares en
general junto a Oracle y Microsoft SQL Server, sobre todo para entornos de
desarrollo web.

3.3.6 DIAGRAMA ENTIDAD RELACION


Denominado por sus siglas como E-R. Este modelo representa a la realidad a
través de un esquema gráfico empleando la terminología de Entidades, que son
objetos que existen y son los elementos principales que se identifican en el
problema a resolver con el diagramado y se distinguen de otros por sus
características particulares denominadas Atributos.

El enlace que rige la unión de las entidades está representada por la relación del
modelo. En un ER, cada entidad se representa mediante un rectángulo, cada
relación mediante un rombo y cada dominio (conjunto donde toma valores el
atributo) mediante un círculo.

Mediante líneas se conectan las entidades con las relaciones, igual que las
entidades con los dominios, representando a los atributos.

Los Atributos Llaves se representan subrayando el correspondiente conjunto de


valores. En ocasiones, una entidad no puede ser identificada únicamente por el
valor de sus propios atributos. En estos casos, se utilizan conjuntamente las
relaciones con los atributos para lograr la requerida identificación unívoca. Estas
entidades reciben el nombre de entidades débiles y se representan en el ER con
un doble rectángulo.

El Modelo Entidad Relación restringe las relaciones a usar para identificar las
entidades débiles a relaciones binarias del tipo 1: N. Así, por ejemplo, una
ocurrencia de "trabajador" puede tener N ocurrencias "persona-dependiente"
asociadas, donde además, la existencia de las ocurrencias en la segunda
entidad depende de la existencia de una ocurrencia que le corresponda en la
primera entidad.

3.3.7 MODELO DE BASE DE DATOS


Un modelo de datos es básicamente una “descripción” de algo conocido como
contenedor de datos (algo en donde se guarda la información), así como de los
métodos para almacenar y recuperar información de esos contenedores. Los
modelos de datos no son cosas físicas: son abstracciones que permiten la
implementación de un sistema eficiente de base de datos; por lo general se
refieren a algoritmos, y conceptos matemáticos. (IRFEYAL, 2015)

El diseño de una base de datos es un proceso complejo que abarca decisiones


a muy distintos niveles. La complejidad se controla mejor si se descompone el
problema en subproblemas y se resuelve cada uno de estos subproblemas
independientemente, utilizando técnicas específicas. Así, el diseño de una base
de datos se descompone en diseño conceptual, diseño lógico y diseño físico.
(IRFEYAL, 2015)

 MODELO CONCEPTUAL

Se utilizan para representar la realidad a un alto nivel de abstracción. Mediante


los modelos conceptuales se puede construir una descripción de la realidad fácil
de entender.

Se utiliza para la abstracción de la base de datos, para construir una descripción


para entender en la realidad. (IRFEYAL, 2015)

 MODELO LÓGICO

Es una descripción de la estructura de la base de datos en términos de las


estructuras de datos que puede procesar un tipo de SGBD (SISTEMA DE
GESTION DE BASE DE DATOS). Un modelo lógico es un lenguaje usado para
especificar esquemas lógicos (modelo relacional, modelo de red, etc.). El diseño
lógico depende del tipo de SGBD que se vaya a utilizar, no depende del producto
concreto. (IRFEYAL, 2015)

 MODELO FÍSICO
Es una descripción de la implementación de una base de datos en memoria
secundaria: las estructuras de almacenamiento y los métodos utilizados para
tener un acceso eficiente a los datos. Por ello, el diseño físico depende del SGBD
concreto y el esquema físico se expresa mediante su lenguaje de definición de
datos.

Es una implementación de una base de datos en las estructuras de


almacenamiento y los métodos eficiente a los datos. Depende del SGBD
concreto, y se expresa de una manera más detallada (atributos, relaciones, etc.).

(IRFEYAL, 2015)

 ENTIDADES

Es una clase generalizada de personas, lugares o cosas (objetos), para los


cuales se recopilan, almacenan y mantienen datos.

Es un grupo de ítems que tienen las mismas características o atributos.

(IRFEYAL, 2015)

 ATRIBUTOS

Es una característica de una entidad. El valor especifico de un atributo, conocido


como elemento de datos, se puede encontrar con los campos de registro que
describe una entidad. Como ya se planteó, un conjunto de campos de un objeto
específico representa un registro. Cuna clave es un campo o grupo de campos
en un registro que se utiliza para identificar a este. (IRFEYAL, 2015)

Son las propiedades que describen a cada entidad en un conjunto de entidades.


Un conjunto de entidades dentro de una entidad, tiene valores específicos
asignados para cada uno de sus atributos, de esta forma, es posible su
identificación unívoca.

Es una característica de una entidad, conocido como elemento de datos (valor


específico) para cada uno de sus atributos que se encuentran en los campos de
un registro que describen a una entidad y así será posible su identificación única.

(IRFEYAL, 2015)
 IDENTIFICADORES CLAVES

Son aquellos que permiten diferenciar a una instancia de la entidad de otra


distinta. Por ejemplo, el atributo identificativo que distingue a un estudiante de
otro es su número de ID.

Un identificador de una entidad es un atributo o conjunto de atributos que


determina de modo único cada ocurrencia de esa entidad.

Distinguen a una instancia de la entidad a otra distinta, como también se puede


llamar atributos que diferencia la manera única de las ocurrencias, un tipo de
entidad puede tener más de un identificador.(IRFEYAL, 2015)

3.3.8 GESTORES DE BASE DE DATOS MYSQL


El sistema de base de datos operacional MySQL es hoy en día uno de los más
importantes en lo que hace al diseño y programación de base de datos de tipo
relacional. Cuenta con millones de aplicaciones y aparece en el mundo
informático como una de las más utilizadas por usuarios del medio. El programa
MySQL se usa como servidor a través del cual pueden conectarse múltiples
usuarios y utilizarlo al mismo tiempo.

Una de las características más interesantes de MySQL es que permite recurrir a


bases de datos multiusuario a través de la web y en diferentes lenguajes de
programación que se adaptan a diferentes necesidades y requerimientos. Por
otro lado, MySQL es conocida por desarrollar alta velocidad en la búsqueda de
datos e información, a diferencia de sistemas anteriores. Las plataformas que
utiliza son de variado tipo y entre ellas podemos mencionar LAMP, MAMP, SAMP
y WAMP (aplicables a Mac, Windows, Linux, BSD, Open Solaris, Perl y Phyton
entre otras).

3.4 LENGUAGES DE PROGRAMACION WEB

3.4.1 PHP
PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor, y se
trata de un lenguaje de scripting para la programación de páginas dinámicas de
servidor. Es un lenguaje de tipo gratuito, y forma parte del software que se
conoce como de código abierto (Open Source). Es decir que se le pueden
introducir modificaciones y mejoras y ponerlas a disposición de los demás
usuarios del mismo.

Otra característica importante es que se trata de un lenguaje multiplataforma,


esto quiere decir que la aplicación web desarrollada en PHP puede funcionar en
casi cualquier tipo de plataforma Windows, MacOS, Unix/Linux (y sus diferentes
versiones y distribuciones). También ofrece soporte a los motores de base de
datos más populares (SQL Server, MySQL, PosgresSQL, Oracle, etc.), como así
también acceso ODBC (open database conectivity).

3.4.2 JAVASCRIPT
JavaScript es un lenguaje interpretado, es decir, que no requiere compilación,
utilizado principalmente en páginas web, con una sintaxis semejante a la del
lenguaje Java y el lenguaje C.

Todos los navegadores interpretan el código JavaScript integrado dentro de las


páginas web. Para interactuar con una página web se provee al lenguaje
JavaScript de una implementación del DOM (Document Object Model).
3.4.3 SEO
El posicionamiento en buscadores, posicionamiento web u Optimizador de
motores de búsqueda (SEO por sus siglas en inglés, de Search Engine
Optimization que se traduce, Optimizador de motores de búsqueda) es el
proceso de mejorar la visibilidad de un sitio web en los diferentes buscadores,
como Google, Big o Yahoo de manera orgánica.

La tarea de optimizar la estructura de una web y el contenido de la misma, así


como utilización de diversas técnicas de linkbuilding, linkbaiting o contenidos
virales con el objetivo de aparecer primeras posiciones de los resultados de los
buscadores (cuando un usuario busca por una determinada palabra clave o
keyword), es conocido como SEO.

El trabajo es amplio, ya que el posicionamiento involucra el código de


programación, al diseño y a los contenidos. Tradicionalmente, los sitios web,
cuando los motores de búsqueda solamente mostraba resultados de los
algoritmos de

3.5 FRAMEWORK LARAVEL


Laravel es un framework de código abierto para el desarrollo de aplicaciones
web, facilita el desarrollo simplificando el trabajo con tareas comunes de una
aplicación web. Laravel ayuda a tener un código simple, ordenado y elegante
para el desarrollo de aplicaciones web basadas en estructuras de código en
php5, utiliza el patrón de arquitectura modelo-vista-controlador denominado
MVC (Gallego, 2016).

El objetivo de Laravel es el de ser un framework que permita el uso de una


sintaxis refinada y expresiva para crear código de forma sencilla, evitando el
“código espagueti” y permitiendo multitud de funcionalidades. Aprovecha todo lo
bueno de otros frameworks y utiliza las características de las últimas versiones
de PHP.
La mayor parte de su estructura está formada por dependencias, especialmente
de Symfony, lo que implica que el desarrollo de Laravel dependa también del
desarrollo de sus dependencias.

Características Generales

 Sistema de ruteo, también RESTful


 Blade, Motor de plantillas
 Peticiones Fluent
 Eloquent ORM
 Basado en Composer
 Soporte para el caché
 Soporte para MVC
 Usa componentes de Symfony
 Adopta las especificaciones PSR-2 y PSR-4

3.5.1 PRINCIPALES CARACTERÍSTICAS DE LARAVEL


Rutas. Almacenamiento en caché de rutas y middleware, son dos de las nuevas
funcionalidades añadidas a esta versión.

Inyección de dependencias en rutas y controladores. Ahora se puede escribir


cualquier dependencia en tus métodos.

Nuevos generadores. Más potencia para Artisan que ahora incluye los siguientes
generadores:

make:command — Crea un nuevo command class

make:console — Crea un nuevo Artisan command

make:controller — Crea un nuevo resource controller class

make:event — Crea un nuevo event class

make:middleware — Crea un nuevo middleware class

make:migration — Crea un nuevo migration file

make:model — Crea un nuevo Eloquent model class


make:provider — Crea un nuevo service provider class

make:request — Crea un nuevo form request class

event:generate — Genera una lista con los controladores y eventos perdidos

3.6 ARQUITECTURA DEL SOFTWARE


La arquitectura del software de un programa o sistema de cómputo es la
estructura o estructuras del sistema, lo que comprende a los componentes del
software, sus propiedades externas visibles y las relaciones entre ellos.
La arquitectura no es el software operativo. Es una representación que permite
1) analizar la efectividad del diseño para cumplir los requerimientos
establecidos, 2) considerar alternativas arquitectónicas en una etapa en la que
hacer cambios al diseño todavía es relativamente fácil y 3) reducir los riesgos
asociados con la construcción del software.
Esta definición pone el énfasis en el papel de los “componentes del software”
en cualquier representación arquitectónica. (PRESSMAN, 2010)

3.6.1 MODELO CLIENTE SERVIDOR


El modelo cliente-servidor, la computación cliente-servidor, la tecnología cliente-
servidor y la arquitectura cliente-servidor se refieren a un modelo de diseño que
podemos considerar como aplicaciones que se ejecutan en una red. En términos
muy básicos, podemos imaginar que el cliente hace (y el servidor ejecuta, o
cumple de cierta forma con) la solicitud. Eso se consideraría una arquitectura
cliente-servidor de dos niveles.

Hay una configuración más compleja en la que se involucran tres conjuntos de


computadoras para realizar los procesos de recuperación, procesamiento,
almacenamiento y recepción de los datos. La figura 6 muestra un modelo cliente-
servidor de tres niveles. En esta figura, las computadoras cliente acceden a tres
niveles de servidores: los servidores Web, que manejan el intercambio de
información basado en Web; los servidores de aplicaciones, que procesan datos
que entran y salen de las computadoras cliente y el servidor de bases de datos;
y el servidor de bases de datos, que almacena y recibe los datos. Las
computadoras en la red están programadas para realizar su trabajo con
eficiencia al dividir las tareas de procesamiento entre los clientes y servidores.
Piense en el modelo cliente/servidor como en un sistema que coloca a los
usuarios como el centro del trabajo, con su interacción con datos como concepto
clave. Aunque hay dos elementos funcionando —el cliente y el servidor— el
objetivo del modelo cliente-servidor es que los usuarios lo vean como un sistema.
De hecho, se espera que los usuarios no adviertan cómo desempeña la red
cliente-servidor su procesamiento distribuido, debido a que debe tener la
apariencia de un sistema unificado. En una red de igual a igual, las PC pueden
actuar como el servidor o el cliente, dependiendo de los requerimientos de la
aplicación. (Kendal, 2011)

 CLIENTES COMO PARTE DEL MODELO CLIENTE-SERVIDOR


Al ver el término cliente, podría verse tentado a pensar en personas o
usuarios; por ejemplo, hablamos de “clientes de nuestra práctica de
consultoría”. Sin embargo, en el modelo cliente-servidor el término cliente
no se refiere a las personas, sino a máquinas conectadas en red que son
los puntos típicos de entrada al sistema cliente-servidor que utilizan los
humanos. Por lo tanto, los clientes podrían ser computadoras de escritorio
conectadas en red, una estación de trabajo, computadoras portátiles o
cualquier otra forma en que el usuario pueda entrar al sistema. (Kendal,
2011)
3.6.2 CARACTERISTICAS DEL MODELO CLIENTE/SERVIDOR
 Espera y recibe las respuestas del servidor.
 Por lo general, puede conectarse a varios servidores a la vez.
 Normalmente interactúa directamente con los usuarios finales
mediante una interfaz gráfica de usuario.
 Al contratar un servicio de redes, se debe tener en cuenta la velocidad de
conexión que le otorga al cliente y el tipo de cable que utiliza
 No comparte sus recursos con otros clientes (en general).
 No suelen tener restricciones especiales respecto a rendimiento, habilidad
y escalabilidad.
 Al iniciarse esperan a que lleguen las solicitudes de los clientes,
desempeñan entonces un papel pasivo en la comunicación (dispositivo
esclavo).
 Tras la recepción de una solicitud, la procesan y luego envían la respuesta
al cliente.
 Por lo general, aceptan conexiones desde un gran número de clientes (en
ciertos casos el número máximo de peticiones puede estar limitado).
 La interrelación entre el hardware y el software están basados en una
infraestructura poderosa, de tal forma que el acceso al recurso de la red
no muestra la complejidad de los diferentes tipos de formatos de datos y
de los protocolos.
 Un sistema de servidores realiza múltiples funciones al mismo tiempo que
presenta una imagen de un solo sistema a las estaciones Clientes. Esto
se logra combinando los recursos de cómputo que se encuentran
físicamente separados en un solo sistema lógico, proporcionando de esta
manera el servicio más efectivo para el usuario final.
 También es importante hacer notar que las funciones Cliente/Servidor
pueden ser dinámicas. Ejemplo, un servidor puede convertirse en cliente
cuando realiza la solicitud de servicios a otras plataformas dentro de la
red.
3.6.3 ARQUITECTURA DE SOFTWARE 4+1 KRUCHTEN
El modelo “4+1” de Kruchten, es un modelo de vistas diseñado por el profesor
Philippe Kruchten y que encaja con el estándar “IEEE 1471-2000”
(Recommended Practice for Architecture Description of Software-Intensive
Systems) que se utiliza para describir la arquitectura de un sistema software
intensivo basado en el uso de múltiples puntos de vista.

Pues sí, lo que propone Kruchten es que un sistema software se ha de


documentar y mostrar (tal y como se propone en el estándar IEEE 1471-2000)
con 4 vistas bien diferenciadas y estas 4 vistas se han de relacionar entre sí con
una vista más, que es la denominada vista “+1”. Estas 4 vista las denominó
Kruchten como: vista lógica, vista de procesos, vista de despliegue y vista física
y la vista “+1” que tiene la función de relacionar las 4 vistas citadas, la denominó
vista de escenario.

3.6.4 ARQUITECTURA DE SOFTWARE MODELO VISTA


CONTROLADOR (MVC)
Modelo Vista Controlador (MVC) es un estilo de arquitectura de software que
separa los datos de una aplicación, la interfaz de usuario, y la lógica de control
en tres componentes distintos.

Se trata de un modelo muy maduro y que ha demostrado su validez a lo largo de


los años en todo tipo de aplicaciones, y sobre multitud de lenguajes y plataformas
de desarrollo.
 El Modelo que contiene una representación de los datos que maneja el
sistema, su lógica de negocio, y sus mecanismos de persistencia.
 La Vista, o interfaz de usuario, que compone la información que se envía
al cliente y los mecanismos interacción con éste.
 El Controlador, que actúa como intermediario entre el Modelo y la Vista,
gestionando el flujo de información entre ellos y las transformaciones
para adaptar los datos a las necesidades de cada uno.

Figura Nº 8. Modelo Vista Controlador

Fuente: (ANTONIORIOS.NET, 2015)

3.7 SEGURIDAD DEL SOFTWARE


La seguridad del software es una actividad de garantía de calidad del software
que se centra en la identificación y evaluación de los riegos potenciales que
puede producir un impacto negativo en el software y hacer que falle el sistema
completo.

3.7.1 ENCRIPTACION
Encriptación es el término que se utiliza para referirse al proceso de transformar
texto para ser ilegible; además, debería resultar imposible que un intruso pueda
descifrarlo, en el presente proyecto se utilizó la encriptación MD5 (Algoritmo de
Resumen del Mensaje 5).
3.7.2 MD5
En criptografía, MD5 (Algoritmo de Resumen del Mensaje 5) es un algoritmo de
reducción criptográfico de 128 bits ampliamente usado. El código MD5 fue
diseñado por Ronald Rivest en 1991.

El algoritmo MD5 es una función de cifrado tipo hash que acepta una cadena de
texto como entrada, y devuelve un número de 128 bits. Las ventajas de este tipo
de algoritmos son la imposibilidad (computacional) de reconstruir la cadena
original a partir del resultado, y también la imposibilidad de encontrar dos
cadenas de texto que generen el mismo resultado.

La codificación del MD5 funciona de la siguiente manera; su codificación de 128


bits es representada típicamente como un número de 32 dígitos hexadecimal.

Un ejemplo a continuación de una codificación de MD5:

En MD5 ("esto si es una prueba de MD5")

Ahora vemos su Hash de salida= e99008846853ff3b725c27315e469fbc

Pero veamos lo complejo que puede llegar a ser, con tan solo cambiar una letra
del mensaje original arroja un Hash de salida muy diferente;

En MD5 ("esto no es una prueba de MD5")

Ahora vemos su Hash de salida= dd21d99a468f3bb52a136ef5beef5034

El simple hecho de codificar un espacio vacío también os da como resultado un


Hash de salida complejo al igual que los antes vistos;

En MD5 (" ")

Ahora vemos su Hash de salida= d41d8cd98f00b204e9800998ecf8427e