universidad de guayaquilrepositorio.ug.edu.ec/bitstream/redug/11688/1/ptg-b-cisc... ·...
TRANSCRIPT
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS
COMPUTACIONALES
ESTUDIO DE FACTIBILIDAD PARA LA PROPUESTA “FRAMEWORK DE TRABAJO PARA PROYECTOS DE
TITULACIÓN APLICANDO METODOLOGÍA SCRUM EN LA INGENIERÍA DE SOFTWARE” ENFOCADO
AL MODELAMIENTO DE DATOS PARA LA GESTIÓN DE USUARIOS
DEL SISTEMA
PROYECTO DE TITULACIÓN
Previa a la obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
AUTOR:
CINTHYA ESTEFANIA RIVADENEIRA RIVADENEIRA
TUTOR:
ING. NIDIA FABIOLA MEDRANO NUÑEZ MSC.
GUAYAQUIL – ECUADOR 2015
II
REPOSITORIO NACIONAL EN CIENCIA Y TECNOLOGÍA
FICHA DE REGISTRO DE TESIS
TITULO: ESTUDIO DE FACTIBILIDAD PARA LA PROPUESTA “FRAMEWORK DE TRABAJO PARA PROYECTOS DE TITULACIÓN APLICANDO METODOLOGÍA SCRUM EN LA INGENIERÍA DE SOFTWARE” ENFOCADO AL MODELAMIENTO DE DATOS PARA LA GESTIÓN DE USUARIOS DEL SISTEMA
AUTOR: Cinthya Estefania
Rivadeneira Rivadeneira REVISORES: Ing. Ángel Ochoa, Ing. Viviana Pinos
INSTITUCIÓN: Universidad De Guayaquil
FACULTAD: Facultad De Ciencias Matemáticas Y Físicas
CARRERA: Ingeniería En Sistemas Computacionales
FECHA DE PUBLICACIÓN: N. DE PAGS: 95
ÁREAS TEMÁTICAS: Base De Datos
PALABRAS CLAVE: Modelado, gestión, metodología, desarrollo, ingeniería de software.
RESUMEN: Modelado de datos para la gestión de usuarios, aplicando metodología SCRUM para comprobar la factibilidad de la misma.
N. DE REGISTRO (en base de datos):
N. DE CLASIFICACIÓN:
DIRECCIÓN URL (tesis en la web):
ADJUNTO PDF: x SI NO
CONTACTO CON AUTOR: Teléfono:0982456287 E-mail: [email protected]
CONTACTO EN LA INSTITUCIÓN:
Nombre: Ab. Juan Chávez Atocha
Teléfono: 2307729
III
APROBACIÓN DEL TUTOR
En mi calidad de Tutor del trabajo de titulación, ESTUDIO DE
FACTIBILIDAD PARA LA PROPUESTA “FRAMEWORK DE TRABAJO
PARA PROYECTOS DE TITULACIÓN APLICANDO METODOLOGÍA
SCRUM EN LA INGENIERÍA DE SOFTWARE” ENFOCADO AL
MODELAMIENTO DE DATOS PARA LA GESTIÓN DE USUARIOS DEL
SISTEMA, elaborado por la Srta. CINTHYA ESTEFANIA RIVADENEIRA
RIVADENEIRA, Alumno no titulado de la Carrera de Ingeniería en
Sistemas Computacionales, Facultad de Ciencias Matemáticas y Físicas
de la Universidad de Guayaquil, previo a la obtención del Título de
Ingeniero en Sistemas, me permito declarar que luego de haber orientado,
estudiado y revisado, la Apruebo en todas sus partes.
Atentamente
Ing. Nidia Fabiola Medrano Nuñez MSC.
IV
DEDICATORIA
Este proyecto va
dedicado especialmente a
mi familia, a mis padres
que han sido un gran
apoyo para lograr una de
las metas más importante
de mi vida, a mis
hermanos por estar
siempre conmigo y ser
una gran razón de
inspiración.
V
AGRADECIMIENTO
Agradezco enormemente a
mis padres, por su apoyo
incondicional y sobre todo
a Dios que me ha
permitido culminar con
esta meta.
Agradezco a los
excelentes maestros que
me brindaron sus
conocimientos día a día y
a quienes han hecho
posible la realización de
este proyecto.
VI
TRIBUNAL PROYECTO DE TITULACIÓN
Ing. Eduardo Santos Baquerizo, M.Sc.
DECANO DE LA FACULTAD CIENCIAS MATEMÁTICAS Y
FÍSICAS
Ing. Inelda Martillo Alcívar, Mgs DIRECTORA
CISC
Ing. Nidia Medrano Nuñez,
M.Sc. DIRECTOR DEL PROYECTO
DE TITULACIÓN
Ing. Ángel Ochoa Flores, M.Sc. PROFESOR DEL ÁREA –
TRIBUNAL
Ing. Viviana Pinos Medrano, M.Sc.
PROFESOR DEL ÁREA – TRIBUNAL
Ab. Juan Chávez Atocha SECRETARIO
VII
DECLARACIÓN EXPRESA
“La responsabilidad del contenido de este
Proyecto de Titulación, me corresponden
exclusivamente; y el patrimonio
intelectual de la misma a la
UNIVERSIDAD DE GUAYAQUIL”
CINTHYA ESTEFANIA RIVADENEIRA RIVADENEIRA
VIII
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS
COMPUTACIONALES
ESTUDIO DE FACTIBILIDAD PARA LA PROPUESTA “FRAMEWORK DE TRABAJO PARA PROYECTOS DE
TITULACIÓN APLICANDO METODOLOGÍA SCRUM EN LA INGENIERÍA DE SOFTWARE” ENFOCADO AL MODELAMIENTO DE DATOS PARA LA GESTIÓN DE
USUARIOS DEL SISTEMA.
Proyecto de Titulación que se presenta como requisito para optar por el
título de INGENIERO en
SISTEMAS COMPUTACIONALES
Auto/a: CINTHYA ESTEFANIA RIVADENEIRA RIVADENEIRA
C.I.: 094018461-7
Tutor: ________________________________ Ing. Nidia Fabiola Medrano Nuñez MSC.
Guayaquil, Diciembre del 2015
IX
CERTIFICADO DE ACEPTACIÓN DEL TUTOR
En mi calidad de Tutor del proyecto de titulación, nombrado por el Consejo Directivo de la Facultad de Ciencias Matemáticas y Físicas de la Universidad de Guayaquil.
CERTIFICO:
Que he analizado el Proyecto de Titulación presentado por el/la estudiante CINTHYA ESTEFANIA RIVADENEIRA RIVADENEIRA, como requisito previo para optar por el título de Ingeniero en SISTEMAS COMPUTACIONALES cuyo problema es:
ESTUDIO DE FACTIBILIDAD PARA LA PROPUESTA “FRAMEWORK DE TRABAJO PARA PROYECTOS DE
TITULACIÓN APLICANDO METODOLOGÍA SCRUM EN LA INGENIERÍA DE SOFTWARE” ENFOCADO AL MODELAMIENTO DE DATOS PARA LA GESTIÓN DE
USUARIOS DEL SISTEMA.
Considero aprobado el trabajo en su totalidad.
Presentado por:
Cinthya Estefanía Rivadeneira Rivadeneira C.I. 094018461-7
Tutor: _________________________________
Ing. Nidia Fabiola Medrano Nuñez MSC.
Guayaquil, Diciembre del 2015
X
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES
Autorización para Publicación de Proyecto de Titulación en Formato Digital
1. Identificación del Proyecto de Titulación Nombre Alumno: Cinthya Estefanía Rivadeneira Rivadeneira
Dirección: Guasmo Sur, Coop. Unión de Bananeros Bl#2 Mz#20 Sl#27
Teléfono: 0982456287 E-mail: [email protected]
Facultad: Ciencias Matemáticas Y Físicas
Carrera: Ingeniería en Sistemas Computacionales
Proyecto de titulación al que opta: Ingeniero en Sistemas Computacionales
Profesor tutor: Ing. Nidia Fabiola Medrano Núñez MSC.
Título del Proyecto de titulación: ESTUDIO DE FACTIBILIDAD PARA LA PROPUESTA “FRAMEWORK DE TRABAJO PARA PROYECTOS DE TITULACIÓN APLICANDO METODOLOGÍA SCRUM EN LA INGENIERÍA DE SOFTWARE” ENFOCADO AL MODELAMIENTO DE DATOS PARA LA GESTIÓN DE USUARIOS DEL SISTEMA.
Tema del Proyecto de Titulación: APLICACIÓN DE METODOLOGÍA, MODELADO DE DATOS
2. Autorización de Publicación de Versión Electrónica del Proyecto de Titulación
A través de este medio autorizo a la Biblioteca de la Universidad de Guayaquil y a la Facultad de Ciencias Matemáticas y Físicas a publicar la versión electrónica de este Proyecto de titulación.
Publicación electrónica:
Inmediata Después de 1 año
Firma Alumno:
3. Forma de envío: El texto del proyecto de titulación debe ser enviado en formato Word, como archivo .Doc. O .RTF y .Puf para PC. Las imágenes que la acompañen pueden ser: .gif, .jpg o .TIFF.
DVDROM CDROM x
XI
ÍNDICE GENERAL
FICHA DE REGISTRO DE TESIS ..................................................................... II
APROBACIÓN DEL TUTOR ............................................................................ III
DEDICATORIA ................................................................................................... IV
AGRADECIMIENTO ............................................................................................ V
TRIBUNAL PROYECTO DE TITULACIÓN .................................................... VI
DECLARACIÓN EXPRESA ............................................................................. VII
CERTIFICADO DE ACEPTACIÓN DEL TUTOR .......................................... IX
ABREVIATURAS .............................................................................................. XIII
SIMBOLOGÍA ................................................................................................... XIV
ÍNDICE DE CUADROS .................................................................................... XV
ÍNDICE DE GRÁFICOS.................................................................................. XVI
Resumen .......................................................................................................... XVII
Abstract ........................................................................................................... XVIII
INTRODUCCIÓN .................................................................................................. 1
CAPÍTULO I........................................................................................................... 4
Ubicación del Problema en un Contexto .......................................................... 4
Situación Conflicto Nudos Críticos .................................................................... 5
Delimitación del Problema .................................................................................. 7
Formulación del Problema .................................................................................. 7
Evaluación del Problema .................................................................................... 7
Objetivo general .................................................................................................... 8
Objetivos específicos ........................................................................................... 8
Justificación e Importancia ................................................................................ 9
Metodología del proyecto .................................................................................. 12
CAPÍTULO II ....................................................................................................... 13
ANTECEDENTES DEL ESTUDIO................................................................... 13
FUNDAMENTACIÓN TEÓRICA ...................................................................... 16
Modelo de datos ................................................................................................. 16
Modelo entidad relación .................................................................................... 18
Elementos de un modelo entidad relación ..................................................... 18
Tipos de claves ................................................................................................... 19
Diagrama entidad relación ................................................................................ 20
Base de datos ..................................................................................................... 21
Características de una base de datos ............................................................ 21
¿Por qué utilizar una base de datos? ............................................................. 22
Ventajas ............................................................................................................... 23
Desventajas ......................................................................................................... 23
Sistema de Gestión de Base de Datos (SGBD) ............................................ 24
Características Fundamentales de un Sistema de Gestión de Base de Datos (SGBD) ..................................................................................................... 26
Motor de base de datos SQL Server 2012 ..................................................... 28
Características .................................................................................................... 29
¿Por qué utilizar SQL Server 2012? ............................................................... 32
Metodologías de Desarrollo Ágil del Software ............................................... 33
XII
Metodología SCRUM ......................................................................................... 37
Beneficios Generales de Scrum: ..................................................................... 38
Roles de la metodología SCRUM .................................................................... 39
FUNDAMENTACIÓN LEGAL ........................................................................... 43
DEFINICIONES CONCEPTUALES................................................................. 47
CAPÍTULO III ...................................................................................................... 48
Análisis de factibilidad ....................................................................................... 48
Factibilidad Operacional ............................................................................ 48
Factibilidad técnica ..................................................................................... 49
Factibilidad Legal ........................................................................................ 50
Factibilidad Económica .............................................................................. 50
Herramienta de Análisis y Ubicación de la ..................................................... 69
Población – Muestra .......................................................................................... 69
Resultado del análisis de la encuesta ............................................................. 75
CAPÍTULO IV ...................................................................................................... 76
CRITERIOS DE ACEPTACIÓN DEL PRODUCTO O SERVICIO .............. 76
CONCLUSIONES Y RECOMENDACIONES................................................. 79
BIBLIOGRAFÍA ................................................................................................... 80
ANEXOS .............................................................................................................. 83
XIII
ABREVIATURAS
ABP Aprendizaje Basado en Problemas UG Universidad de Guayaquil FTP Archivos de Transferencia g.l. Grados de Libertad Html Lenguaje de Marca de salida de Hyper Texto http Protocolo de transferencia de Hyper Texto Ing. Ingeniero CC.MM.FF Facultad de Ciencias Matemáticas y Físicas ISP Proveedor de Servicio de Internet Mtra. Maestra Msc. Master URL Localizador de Fuente Uniforme www world wide web (red mundial) SQL Structure Query Language SGBS Sistema Gestor de Base de Datos PMP Program Manager Professional
XIV
SIMBOLOGÍA
s Desviación estándar e Error E Espacio muestral E(Y) Esperanza matemática de la v.a. y s Estimador de la desviación estándar e Exponencial
XV
ÍNDICE DE CUADROS
CUADRO #1 - Causas y Consecuencias del Problema 6
CUADRO # 2 - Ediciones de SQL Server 2012 31
CUADRO # 3 - Componentes del Servidor SQL 32
CUADRO # 4 - Tabla SG_USUARIO 62
CUADRO # 5 - Tabla OPCION 62
CUADRO # 6 - Tabla OPCION_ROL 63
CUADRO # 7 - Tabla GRUPO_ROL 63
CUADRO # 8 - Tabla ROL 64
CUADRO # 9 - Tabla USUARIO_ROL 64
CUADRO # 10 - Tabla USUARIO_DATO 65
CUADRO # 11 – Plan de Pruebas 68
CUADRO # 12 – Listado de Sprint 76
CUADRO # 13 – Criterio de Aceptación 78
XVI
ÍNDICE DE GRÁFICOS
GRÁFICO # 1 – Máquina Tabuladora 15
GRÁFICO # 3 – Sistema Gestor de Bases de Datos 25
GRÁFICO # 4 - Proceso de un SGBD para acceder a los Datos 27
GRÁFICO # 5 - Pasos de la Metodología Scrum 40
GRÁFICO # 6 - Pasos de la Metodología Scrum 42
GRÁFICO # 7 - Diagrama de tablas del esquema de seguridad 66
GRÁFICO # 8 – Pregunta 1 de Encuesta 70
GRÁFICO # 9 – Pregunta 2 de Encuesta 71
GRÁFICO # 10 – Pregunta 3 de Encuesta 72
GRÁFICO # 11 – Pregunta 4 de Encuesta 73
GRÁFICO # 12 – Pregunta 5 de Encuesta 74
XVII
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES
ESTUDIO DE FACTIBILIDAD PARA LA PROPUESTA “FRAMEWORK DE TRABAJO PARA PROYECTOS DE
TITULACIÓN APLICANDO METODOLOGÍA SCRUM EN LA INGENIERÍA DE SOFTWARE” ENFOCADO AL MODELAMIENTO DE DATOS PARA LA GESTIÓN DE
USUARIOS DEL SISTEMA
Resumen
El presente proyecto se ha elaborado con la finalidad de llevar a cabo el
desarrollo de un sistema aplicando una metodología de desarrollo ágil para
comprobar su efectividad y productividad en el desarrollo de proyectos grandes.
El proyecto consta de la creación de un modelo de datos de un sistema
académico dentro del cual debe existir una estructura que posea las
características necesarias para realizar el ingreso de los datos del sistema
pudiéndoles asignar un rol y opciones específicas de acuerdo a su rol creando
de esta manera perfiles de usuarios.
La ejecución de este proyecto beneficiará directamente a la Universidad de
Guayaquil, ya que al dar buenos resultados se podrá implementar para llevar a
cabo futuros desarrollos de software propios de la universidad.
Autor: Cinthya Estefanía Rivadeneira R. Tutor: Ing. Nidia Fabiola Medrano Nuñez MSC.
XVIII
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES
FEASIBILITY STUDY FOR THE PROPOSAL "FRAMEWORK FOR TITLING PROJECTS APPLYING
SCRUM METHODOLOGY IN SOFTWARE ENGINEERING" ORIENTED ON DATA MODELING FOR USERS
MANAGEMENT SYSTEM
Abstract
This Project has been created with the purpose to make a develop of an
Academic System using an agile development methodology that will let us to
show it can be effective and productive helping with the develop of too many
informatics systems.
The project is about the design of a database model for the new academic
system; it has to content a structure which let the system have a control about the
users that will use the system. Users could have profiles and options in the menu
which will be related to the profile user.
Author: Cinthya Estefanía Rivadeneira R. Tutor: Ing. Nidia Fabiola Medrano Nuñez MSC.
1
INTRODUCCIÓN
La aplicación de la metodología Scrum sobre el desarrollo de un sistema
propuesto es la principal característica a considerar de este proyecto, se quiere
comprobar que el uso de esta metodología es viable y factible para el desarrollo
de futuros proyectos universitarios.
Al igual que la aplicación y comprobación de la factibilidad de la metodología
Scrum es importante llevar a cabo el desarrollo del sistema, y dar como
entregable final un producto terminado y funcional.
La metodología Scrum es un proceso donde se aplican diferentes características
que la convierten en una metodología de desarrollo ágil, indicando como un
punto importante el trabajo colaborativo del equipo, manteniendo una
comunicación constante que permitirá el avance rápido en el desarrollo de un
sistema; está principalmente dirigida a proyectos complejos, con objetivos
cambiantes o poco definidos o cuando se necesitan resultados lo más pronto
posible.
La principal característica de la metodología Scrum es dividir en Sprints las
diferentes etapas de la creación de un sistema, un sprint es un conjunto de
tareas que tienen similitud en su complejidad para llevarse a cabo, es decir, se
agrupan tareas de desarrollo que puedan ser ejecutadas en una semana
logrando con esto la liberación de un sistema en corto plazo, desde el primer
sprint se va obteniendo un sistema funcional. Los sprints son creados a partir de
la lista principal de requerimientos que realice el Product Owner (Dueño del
producto).
El desarrollo del sistema comprende crear la capa de datos que utilizará el
sistema, que posea una estructura confiable y segura con estándares de diseño
aplicados y fundamentos de modelamiento de datos que aseguren una base de
datos normalizada, promoviendo de esta manera la consistencia, seguridad y la
integridad de la información almacenada.
2
Dentro del modelado de datos general se debe contar con una estructura de
tablas que permita el almacenamiento de los datos de los usuarios, datos
personales, nombre de usuario y contraseña, tabla de roles, tabla de opciones,
tablas de relación para la asignación respectiva de los roles y opciones para un
usuario.
Se debe comprobar su efectividad por medio de escenarios de pruebas locales
al igual que controlar el tiempo de respuesta de los procesos creados para
realizar la debida gestión de los usuarios que se encuentran registrados en la
base de datos.
En el desarrollo de este proyecto se cuenta con un motor de base de datos SQL
Server 2012 Standard Edition contando con ambientes de desarrollo y
producción.
Se cuenta con herramientas de comparación de modelos y de data entre
diferentes bases de datos, herramienta SQL Compare.
Microsoft Sql Server está destinada a ser utilizada por sistemas extremadamente
grandes promoviendo buenos resultados en cuanto a su funcionamiento y
seguridad, la versión a utilizarse del Sql Server es muy completa ya que posee
en su administrador corporativo características como: base de datos, diagrama
de bases de datos, tablas, vistas, procedimientos almacenados, funciones, entre
otras, dando la opción a poseer una herramienta que nos permita la creación
correcta del modelo de datos.
Se ha distribuido el desarrollo del sistema de la siguiente manera:
CAPITULO I El primer capítulo está enfocado a la problemática que se ha
presentado, detalla los antecedentes y la situación actual del problema, se
encuentra la justificación de la realización del proyecto, se definirán las causas y
consecuencias del mismo, se analizará la delimitación, evaluación y formulación
del problema.
3
CAPITULO II El segundo capítulo contiene el marco teórico, donde se obtendrán
conclusiones de temas específicos del proyecto gracias a las diferentes
opiniones de autores, se incluirán las características, componentes y beneficios
del motor de base de datos SQL Server 2012 que ayudarán a entender la razón
por la cual fue el software adecuado para la realización de este proyecto. Se
incluirán apartados legales que defenderán y aprobarán, de acuerdo a leyes, la
ejecución de este proyecto.
CAPITULO III El tercer capítulo se mostrara la metodología utilizada en nuestra
investigación, se describirá las etapas para la aplicación de la misma, se
realizará un análisis de los criterios de validación de este proyecto y también un
análisis de una encuesta realizada a una pequeña población.
CAPITULO IV En el cuarto capítulo se demostrará mediante un cuadro el nivel
de aprobación que obtendrá el proyecto.
4
CAPÍTULO I
EL PROBLEMA
PLANTEAMIENTO DEL PROBLEMA
Ubicación del Problema en un Contexto
Con la finalidad de llevar a cabo la aplicación de la metodología Scrum sobre el
desarrollo de un sistema, se ha planteado la idea de desarrollar un sistema
académico que cubra al máximo con las funciones que desearían realizar
docentes, estudiantes y por su puesto personal administrativo.
El hecho de utilizar un sistema informático implica el uso de bases de datos que
permitan el manejo y almacenamiento de grandes volúmenes de datos así como
también la ejecución de las transacciones que se generan desde la capa de
presentación del sistema.
Al momento de definir el diseño y desarrollo de una capa de presentación
significa contar con una estructura de base de datos que soporte todos los
requisitos generados desde la misma, es por esto que surge la necesidad de
crear un modelo entidad-relación que posea todas las características que
permitan poner en funcionamiento el sistema y sobre todo que cuente con el
debido proceso de normalización, evitando redundancia de datos, disminuyendo
problemas de actualización de datos y protegiendo la integridad de la
información.
Además dentro del funcionamiento del sistema es muy importante la seguridad
respecto a los usuarios que tienen acceso al mismo, para esto se incluirá dentro
del diseño un modelo que datos que permita el registro adecuado de los
usuarios, otorgándoles un rol y opciones de acuerdo al rol que posean, de esta
manera tendrán acceso únicamente los usuarios permitidos por el sistema y se
tendría un mejor control en cuanto a las opciones que se le brinde a los mismos.
5
Situación Conflicto Nudos Críticos
Mediante la propuesta realizada a los directivos de la Carrera de Ingeniería en
Sistemas Computacionales (CISC) se da la apertura para realizar el desarrollo
de un Sistema Académico.
Este proyecto surge de la necesidad de realizar un estudio de factibilidad
aplicando estrategias de desarrollo ágil utilizando la Metodología Scrum.
Para llevar a cabo la ejecución del proyecto, es necesario contar con un modelo
entidad relación que se ajuste a las necesidades que se generen, según las
funcionalidades y procesos que se vayan a realizar, desde la capa de
presentación del sistema.
La importancia de tener un modelo de base de datos adecuado para el sistema a
desarrollarse está dirigido al rápido, organizado y fácil manejo de la información
que se almacenará en la base de datos al igual que la correcta administración de
las transacciones que se ejecuten, considerando que la cantidad de información
a manipular será en grandes volúmenes razón por la cual se deben tomar
medidas de modelamiento de datos para evitar la redundancia y asegurar la
integridad de dicha información.
Al momento de realizarse el modelo entidad relación se debe considerar una
estructura de tablas que permita la correcta gestión de usuarios que podrán
utilizar el sistema, para lograr la interacción entre el sistema y el usuario final, de
una manera personalizada de acuerdo a los perfiles sean configurados
manteniendo la seguridad de los datos del sistema.
6
CUADRO #1 - Causas y Consecuencias del Problema
CAUSA
CONSECUENCIA
No contar con un modelo de datos que
permita el registro de los usuarios que
tendrán acceso al sistema.
Al no contar con un nombre de usuario
registrado en la base de datos, el
usuario no podría interactuar con el
sistema de manera personalizada.
No contar con una estructura en el
modelo de datos que permita asignarle
roles a cada usuario.
Al no contar con esta estructura no se
podría gestionar a los usuarios de
acuerdo a su perfil.
No contar con una estructura en el
modelo de datos que permita asignarle
las opciones a cada usuario de
acuerdo a su rol
Al no contar con esta estructura no se
podría gestionar las opciones que un
usuario tiene disponible únicamente
para su rol.
No contar con un proceso que envíe a
la capa de presentación los roles que
posee el usuario que está ingresando
al sistema.
Al no contar con este proceso no se
podría controlar que el usuario que
está tratando de ingresar al sistema
realmente se encuentre registrado en
la base de datos.
No contar con un proceso que le envíe
a la capa de presentación las opciones
del sistema que tiene un usuario de
acuerdo a su rol.
Al no contar con este proceso queda a
visión del usuario todas las opciones
que el sistema brinda, lo que amenaza
directamente a la seguridad e
integridad del sistema.
Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira
Fuente: Información obtenida al plantear el problema
7
Delimitación del Problema
CAMPO: Universidad de Guayaquil
AREA: Proyecto de Titulación
ASPECTO: Aplicación de metodología Scrum en modelamiento de datos.
TEMA: Modelamiento de datos para gestión de usuarios del sistema aplicando
metodología de desarrollo ágil “Scrum” en la Ingeniería de Software
Formulación del Problema
El realizar el diseño del modelo entidad relación y el desarrollo de los procesos
en la base de datos aplicando la metodología de desarrollo ágil (SCRUM) en la
Ingeniera de Software, me permitirá tener un desarrollo más ordenado y rápido,
para proponerlo como una nueva metodología de ejecución de proyectos
grandes
Evaluación del Problema
Delimitado: El modelado de datos para la gestión de usuarios será destinado
únicamente para interactuar con el sistema académico a desarrollarse.
Claro: Se tomará la decisión de los estándares adecuados para la creación del
modelo entidad relación, pudiendo aplicar las mejores reglas de verificación de
las entidades, atributos, registros e identificadores. Teniendo en cuenta que
debe tener una estructura escalable y segura.
Evidente: Al no contar con una base de datos para el sistema y sobre todo una
estructura que permita la conexión entre el usuario y la capa de presentación,
existe claramente la necesidad de crear un modelo de datos que cumpla con
esas características.
Concreto: Es necesaria la existencia de un modelo de datos que asegure el
registro de los usuarios que tendrán interacción con el sistema, para proveerles
8
un perfil a cada uno de ellos, asegurando la seguridad e integridad de la
información.
Relevante: La elaboración del modelo entidad-relación, junto con los procesos
necesarios, se llevará a cabo aplicando las características de una metodología
de desarrollo ágil (SCRUM) para poder comprobar su factibilidad y
posteriormente pueda ser utilizada en innumerables desarrollos de proyectos de
software.
Factible: Ya finalizada la implementación de la base de datos, habiendo
entregado los requerimientos en las fechas establecidas y completamente
funcionales, se puede garantizar la eficiencia de la aplicación de la metodología
Scrum.
OBJETIVOS
Objetivo general
Diseñar un modelo entidad relación, aplicando fundamentos de modelamiento
de datos, que permita el correcto almacenamiento de información de los usuarios
del sistema así como la gestión de los perfiles que les serán asignados.
Objetivos específicos
Diseñar un modelo de datos que permita el correcto almacenamiento de
la información de los usuarios del sistema y gestión de los permisos que
serán asignados a los mismos.
Aplicar fundamentos de modelamiento de datos que permitan obtener
una base de datos normalizada para evitar la redundancia de datos y
mantener la integridad y seguridad de la información.
Crear proceso que permita enviar a la capa de presentación la
información necesaria de los usuarios registrados en el sistema.
9
ALCANCES DEL PROBLEMA
Definir los estándares a utilizarse para el diseño adecuado del modelo
entidad relación.
Definir los procesos de a utilizarse en el diseño del modelo para asegurar
la creación de una base de datos normalizada.
Diseñar la estructura de tablas que permita almacenar datos de los
usuarios al ejecutar acciones como: la creación, actualización y
eliminación, además de otorgarles un rol a cada uno junto con las
opciones específicas que podrá utilizar en el sistema.
Crear procesos que permitan el acceso rápido y seguro a la información
almacenada en la base de datos.
Crear un modelo de datos que sea escalable y así asegurar su eficiencia
y durabilidad a lo largo del tiempo.
Justificación e Importancia
Las metodologías de desarrollo de software han existido desde la década de
1960, a lo largo del tiempo se ha visto la aparición de numerosas metodologías,
todas con sus ventajas, desventajas, fortalezas y debilidades, pero se obtienen
más ventajas cuando se aplica la adecuada dependiendo de las características
del proyecto a elaborarse.
Una metodología de desarrollo es un framework que se aplica para estructurar,
planear y controlar el ciclo de vida de un proyecto; utilizan herramientas,
modelos y métodos para llevar a cabo el proceso del desarrollo de un software.
En el presente proyecto se ha propuesto el desarrollo de un software bajo la
metodología de desarrollo SCRUM.
SCRUM es una metodología destinada para desarrollos ágiles, tiene un
enfoque de desarrollo incremental que consiste en la agrupación de tareas
10
divididas en pequeñas etapas repetitivas (análisis, diseño, desarrollo, pruebas),
la metodología SCRUM denomina a estas etapas como sprint, cada sprint
representa un entregable funcional del sistema aunque no se tenga un sistema
completo, se van liberando poco a poco los requerimientos y el usuario podrá
ver avances en cortos plazos.
La principal idea de esta metodología es terminar de manera inmediata el
desarrollo de un sistema, ya que con las demás características de la
metodología se logra obtener un ambiente de compromiso y colaboración por
parte de los involucrados en el desarrollo del sistema.
La metodología SCRUM no admite atrasos en los entregables de un sprint, con
ella siempre busca la manera de salir de cualquier problema, es por esta razón
que existen las reuniones diarias que toman al menos 15 minutos para poner en
claro todas las dudas u obstáculos que se estuvieran presentando.
Por otra parte enfocándose en el desarrollo del sistema propuesto se parte
desde la noción de que todo sistema debe contar con un adecuado
almacenamiento y administración de los datos y de las transacciones que se
generan desde la capa de presentación o desde algún proceso interno, la gran
cantidad de información que ingrese debe ser registrada en una base de datos
que asegure la integridad de los datos y que mantenga la información siempre
disponible para el correcto funcionamiento del sistema.
Para lograr un correcto funcionamiento de la base de datos se debe tener en
cuenta la elección de un adecuado motor de base de datos, un análisis de
estándares y procesos de diseño que aseguren la confiabilidad del modelo
entidad-relación permitiendo obtener una base de datos normalizada, para
evitar redundancia y asegurar la integridad de los datos, y una estructura
escalable para futuros desarrollos en mismo sistema.
Al realizar este proyecto no solo se obtendrá un modelo de datos que soporte
todas funcionalidades de la capa de presentación, también se evaluará la
factibilidad del uso de una metodología de desarrollo utilizada (SCRUM), aporte
11
importante tanto para la universidad de Guayaquil como para los estudiantes
involucrados en este desarrollo, demostrando que puede ser una nueva forma
de iniciar de proyectos de desarrollo que necesiten en corto plazo y sean de
gran escalabilidad.
Uno de los principales beneficios que se puede obtener con el resultado exitoso
de la aplicación de esta metodología es el trabajo colaborativo y el entusiasmo
de trabajar hasta obtener siempre la meta deseada por parte del equipo.
Se puede lograr formar profesionales que transmitan la costumbre de realizar
sus trabajos llevando siempre el orden y control de las actividades que se
realizan dentro de la ejecución de un proyecto ya sea grande o pequeño.
En la actualidad cada vez es más común el uso de metodologías de desarrollo
de software ya que aseguran desde un principio el éxito de un proyecto o
minimizan los riesgos de pérdidas tanto de tiempo como de dinero.
12
Metodología del proyecto
Metodología SCRUM
SCRUM es una metodología de desarrollo ágil que implica el uso de buenas
prácticas para desarrollo de un proyecto, pero de manera colaborativa, se
caracteriza por utilizar una estrategia de desarrollo incremental en lugar de una
ejecución completa del producto, es decir se puede ir obteniendo entregables
funcionales donde existen diferentes fases de desarrollo.
La aplicación de la metodología SCRUM para llevar a cabo este proyecto es un
factor muy importante ya que aparte de comprobar su efectividad se podrá
obtener excelentes resultados de desarrollo del tema planteado y podrá ser un
aporte para futuros proyectos de software que se quieran sacarse en poco
tiempo.
Supuestos
El product backlog de las funcionalidades del sistema serán de acuerdo a
las especificaciones del PMP y del Product Owner del equipo.
Se creará el backlog de cada sprint de acuerdo a lo especificado en el
product backlog y dependiendo del nivel de priorización que le dé el PMP
El modelamiento de datos será únicamente destinado al sistema en
general que se está desarrollando.
Restricciones
El product owner debe dar la lista de requerimientos que se desarrollarán.
Todas las funcionalidades y requerimientos serán decididas por el PMP.
La herramienta de base de datos es utilizada con licencia estudiantil
otorgada por la empresa propietaria del software.
13
CAPÍTULO II
MARCO TEÓRICO
ANTECEDENTES DEL ESTUDIO
Desde los inicios de los sistemas de información se han originado las
metodologías de desarrollo de software, siendo su principal objetivo llevar un
control y orden en el ciclo de vida de un proyecto.
Hace unos años las metodologías de desarrollo han sido un poco esquivadas
por los profesionales o estudiantes, por ser un poco complejas y algo difícil de
manejar, hoy en día esta tendencia está cambiando ya que la constante
innovación de la tecnología hacer ver que la necesidad de contar con una
metodología de desarrollo que se adapte a los tiempos actuales y a las
necesidades del proyecto. El aplicar la adecuada metodología de desarrollo
sobre un proyecto dará resultados favorables, tanto económicos como de
tiempo.
Actualmente en la Universidad de Guayaquil han existido proyectos
desarrollados bajo enfoques de metodologías, tales como metodología en
cascada, espiral o incremental, pero ninguno de ellos ha sabido llevarlas a cabo
bajo una metodología de desarrollo dando como fin un resultado negativo del
proyecto en ejecución.
Scrum, es una metodología de desarrollo ágil que permite llevar a cabo
proyectos complejos y se busca terminarlos en menos tiempo en comparación
con otras metodologías ya que se compone de pequeñas etapas que permitirán
ir liberando requerimientos ya funcionales al momento de su entrega.
Por otra parte, al momento de hacer un análisis de la situación actual de nuestro
alrededor, las instituciones y organizaciones imparten su día a día junto con la
ayuda de un sistema informático que automatiza gran parte de sus actividades
laborales teniendo gran valor la información que administran.
14
En tiempos pasados no existían bases de datos virtuales donde las personas
pudieran almacenar la información manipulada en el día a día, utilizaban
archivos físicos y eran almacenados en repositorios aumentando de esta manera
cantidades enormes de papeles, con el pasar del tiempo este problema se ha ido
minimizando ya que se han creado motores de base de datos que permiten
almacenar en ellos millones de datos a pesar de que existen bases de datos de
altos costes también existen gratuitos teniendo como limitante la cantidad de
información que se pude almacenar en ellas.
Desde el punto de vista de la informática, una base de datos es el conjunto de
datos almacenados en un repositorio virtual que permite el acceso y
manipulación de los mismos con la ayuda de alguna herramienta elaborada para
realizar dicha acción.
El programa que permite manipular la información del repositorio se denomina
Sistema Gestor de Base de Datos que siendo la interfaz gráfica permite la
interacción entre el usuario y el repositorio de datos.
El uso de las bases de datos inició cuando se veía la necesidad de almacenar
grandes cantidades de información, sobre todo cuando aparecieron los primeros
ordenadores.
“En 1884 Herman Hollerith creó la máquina automática de tarjetas
perforadas, siendo nombrado así el primer ingeniero estadístico de la
historia. En esta época, los censos se realizaban de forma manual. Ante
esta situación, Hollerith comenzó a trabajar en el diseño de una maquina
tabuladora o censadora, basada en tarjetas perforadas.” (Historia de las
Bases de Datos, 2015)
15
GRÁFICO # 1 – Máquina Tabuladora
Elaborado: Cinthya Estefania Rivadeneira Rivadeneira
Fuente: http://histinf.blogs.upv.es/2011/01/04/historia-
de-las-bases-de-datos/
Posteriormente se crearon las cintas magnéticas y finalmente en el año de 1960
se da la creación de las primeras generaciones de bases de datos.
Por este motivo el plantear el desarrollo de un nuevo sistema implica el uso de
un motor de base de datos y la creación de un modelado de datos que permita
almacenar la información generada de las actividades realizadas a diario,
manteniendo su seguridad e integridad para que sean parte de futuras tomas de
decisiones por parte de las autoridades de una institución académica.
16
FUNDAMENTACIÓN TEÓRICA
Modelo de datos
Para dar creación a lo que se denomina “base de datos” debe existir un modelo
de datos, que es formado por medio de herramientas conceptuales para describir
los datos, las relaciones, la semántica y las restricciones de consistencia.
Los modelos de datos son importantes para el desarrollo de sistemas, ya que
dependiendo de ellos se puede conseguir el correcto manejo y almacenamiento
de grandes cantidades de datos.
Un modelo de datos puede ser lo suficientemente seguro y adecuado para un
sistema, pero para obtener aquello se debe lidiar con los altos costos de
desarrollo, operación y mantenimiento del mismo.
Se debe tener en cuenta que el mal diseño de un modelo de datos puede
perjudicar a la empresa en su crecimiento futuro, es por esta razón que la
estructura del modelo de un datos debe ser escalable.
Dentro del modelo de datos existe una división: modelos entidad-relación y
modelos relacionales.
“Un modelo es un conjunto de herramientas conceptuales para describir
datos, sus relaciones, su significado y sus restricciones de consistencia.
Características:
Es el proceso de analizar los aspectos de interés para una organización
y la relación que tienen unos con otros.
Resulta en el descubrimiento y documentación de los recursos de
datos del negocio.
El modelado hace la pregunta " Qué ? " en lugar de " Cómo ? ", ésta
última orientada al procesamiento de los datos.
Es una tarea difícil, bastante difícil, pero es una actividad necesaria
cuya habilidad solo se adquiere con la experiencia.
17
Tipos de modelos de datos:
Conceptual: muy general y abstracto, visión general del
negocio/institución.
Lógico: versión completa que incluye todos los detalles acerca de los
datos.
Físico: esquema que se implementara en un manejador de bases de
datos (DBMS).
Tipos de Modelos Conceptuales:
Existen distintos tipos de modelos conceptuales:
Basados en registros
Jerárquico: datos en registros, relacionados con apuntadores y
organizados como colecciones de árboles
Redes: datos en registros relacionados por apuntadores y organizados
en gráficas arbitrarias
Relacional: datos en tablas relacionados por el contenido de ciertas
columnas
Basados en objetos
Orientado a objetos: datos como instancias de objetos (incluyendo sus
métodos)
Entidad-relación: datos organizados en conjuntos interrelacionados de
objetos (entidades) con atributos asociados” (ULDAP, 2015)
18
Modelo entidad relación
Un modelo entidad relación, E/R por su abreviatura, es un diagrama que está
basado en la representación del mundo real y cuenta de un conjunto de objetos
básicos denominados entidades y de relaciones entre dichos objetos.
Elementos de un modelo entidad relación
Entidad
Una entidad es la representación de objetos del mundo real, que cumple con una
función específica y es diferente de otros objetos, las entidades están formadas
por un conjunto de características.
La entidad puede ser un objeto real o abstracto: Una persona, un banco, una
casa, un dormitorio, una factura, un cheque, una ciudad, un país, etc. Todo
aquello que represente un objeto que posea características.
Atributo
Los atributos son las propiedades o características que posee un objeto u
entidad, son aquellos que nos permiten conocer la función o desempeño del
mismo.
Entre los atributos principales, que debe contener una entidad, tenemos:
Un identificador: será la clave principal de ese objeto, que permitirá la
relación de este objeto con otros de su alrededor.
Un nombre: para tener un conocimiento personalizado de cada elemento
que sea parte de un mismo objeto.
Una descripción: una breve descripción de los elementos de cada
objeto.
Al decir “elementos de un objeto”, se hace referencia a las N instancias que
puedan existir dentro de cada entidad de la base de datos.
19
Tipos de claves
Clave primaria: Es la clave única dentro de una entidad, es la que
permite identificar a todos los demás elementos que serán relacionados
con otras entidades.
Existen claves primarias simples y claves compuestas:
Las claves simples están formadas por un solo campo
Las claves compuestas están conformados por dos o más
campos, de acuerdo a la necesidad del modelo de datos.
Clave foránea: Esta clave hace referencia a la clave principal de otra
entidad logrando la consistencia y confiabilidad de los datos.
Clave índice: Esta clave es importante al momento de realizar consultas
cuando se cuenta con volúmenes grandes de información, pues agilitan
el proceso y están formadas de acuerdo a los criterios de búsqueda.
Relación
Una relación es la vinculación entre varias entidades a través de uno de sus
atributos, llamado también clave principal. La relación entre las entidades se da
cuando a más de existir una relación física exista una relación lógica de acuerdo
al desempeño de las mismas.
Tipos de Relaciones
De uno a uno: Teniendo dos entidades “X” y “Y” se relaciona
únicamente una instancia de la entidad X con una instancia de la entidad
Y.
De uno a muchos: Se relaciona una instancia de la entidad X con
muchas instancias de la entidad Y.
De muchos a muchos: Puede existir relación entre muchas instancias
de X y muchas instancias de Y, creándose como vinculo de la relación
una nueva entidad que tendrá una clave principal y como llaves foráneas
las claves principales de las otras dos entidades.
20
Existen también las relaciones recursivas, que se da cuando en una tabla
la clave principal se relaciona con uno de los campos de esa misma
tabla. Un ejemplo claro es en caso de los empleados-supervisor, todos
pueden ser empleados pero cada uno de ellos puede tener un supervisor
a cargo.
Diagrama entidad relación
El diagrama entidad relación es la manera gráfica de representar la estructura
lógica de una base de datos, está compuesto por objetos que representan cada
uno de los elementos del modelo de datos, las entidades, atributos y relaciones.
Gráficos utilizados para formar un diagrama entidad-relación
Rectángulos: Representan conjunto de entidades.
Elipses: Representan los atributos.
Rombos: Representan las relaciones.
Líneas: Unen atributos a conjunto de entidades, y conjunto de entidades a
conjunto de relaciones.
GRÁFICO # 2 – Diagrama Entidad/Relación
Elaborado: Cinthya Estefania Rivadeneira Rivadeneira
Fuente: Libro Fundamentos de bases de datos, McGrow Hill.
21
Base de datos
Se entiende por base de datos al conjunto de datos almacenados en lugar
específico divididos lógicamente por categorías o funciones a cumplir, pero sin
dejar de formar parte de un todo ya que poseen un vínculo que los relaciona
entre sí. Los datos se almacenan de manera organizada para que
posteriormente puedan ser consultados y utilizados rápidamente.
Las bases de datos existen hace mucho tiempo, el hecho de archivar
documentos como facturas, categorizar libros en una biblioteca o contar con una
colección de discos de música generaba la creación de una base de datos física.
Actualmente las bases de datos también se presentan de manera digital, esto se
debe a que la tecnología ha avanzado bastante en los últimos tiempos y todo
sistema informático está atado a una base de datos, recolectando millones y
millones de registros diariamente en todas partes del mundo.
“Se define una base de datos como una serie de datos organizados y
relacionados entre sí, los cuales son recolectados y explotados por los
sistemas de información de una empresa o negocio en particular.”
(Concepto de base de datos, 2015)
Características de una base de datos
Manipulación de los datos: Los datos pueden ser manipulados a través
de un SGBD.
Independencia de los datos: Los datos no dependen de un manejador
de base de datos, es por esto que pueden estas disponibles todo el
tiempo.
Brinda Accesibilidad: Permite llevar un control de los diferentes
usuarios que tienen acceso a la base de datos.
Seguridad: Permite llevar un control sobre los objetos manipulados, tanto
en la estructura como en la data, que puede ser alterada por los
diferentes usuarios.
22
Reducción de redundancia de datos: Aplicando reglas de
normalización se puede evitar en la mayor parte la redundancia de datos
en la base, logrando el ahorro de memoria y espacio en el disco.
Integridad: Aplicando reglas de modelado de bases de datos se puede
asegurar la integridad de la información.
¿Por qué utilizar una base de datos?
“Se consideran las siguientes razones, y comparte su conclusión:
Compactación: No hay necesidad de archivos en papel
voluminosos.
Velocidad: La máquina puede recuperar y actualizar datos más
rápidamente que un humano.
En particular las consultas especificas sin mucha elaboración (por
ejemplo. “Tenemos más Zinfandel que Pino Noir?) Pueden ser
respondidas con rapidez, sin necesidad de búsquedas manuales o
visuales que llevan tiempo.
Menos trabajo laborioso: Se puede eliminar gran parte del trabajo de
llevar los archivos a mano. Las tareas mecánicas siempre las
realizan mejor Las máquinas,
Actualidad: En el momento que la necesitemos, tendremos a nuestra
disposición información precisa y actualizada.
Desde luego los beneficios anteriores se aplican aún con más fuerza en un
entorno multiusuario, donde es probable que la base de datos sea mucho
más grande y compleja que en el caso.” (Date C. , 2015)|
“Una base de datos proporciona a los usuarios el acceso a datos, que
pueden visualizar, ingresar o actualizar, en concordancia con los derechos
de acceso que se les hayan otorgado. Se convierte más útil a medida que la
cantidad de datos almacenados crece.
Una base de datos puede ser local, es decir que puede utilizarla sólo un
usuario en un equipo, o puede ser distribuida, es decir que la información
23
se almacena en equipos remotos y se puede acceder a ella a través de una
red.
La principal ventaja de utilizar bases de datos es que múltiples usuarios
pueden acceder a ellas al mismo tiempo.” (Introducción a bases de datos,
2015)
Ventajas
Mayor seguridad en los datos, al limitar el acceso a la información y
gestionar la manipulación de los datos.
Coherencia en los datos ya que se mitiga la redundancia de datos y
solamente existen datos válidos.
El acceso a los datos es mas es más eficiente ya que se encuentran
almacenados de manera organizada.
Se puede contar con un detalle de todos los datos existentes en una base
de datos.
Desventajas
Se pueden generar varios gastos al momento de la instalación de una
base de datos ya que se debe invertir en un hardware apropiado y contar
con un manejador de base de datos.
El correcto funcionamiento de un motor de base de datos demanda gran
capacidad de disco y memoria RAM.
Se necesita conocimiento y practica para poder obtener los mejores
resultados de contar con una base de datos.
24
Sistema de Gestión de Base de Datos (SGBD)
Un Sistema de Gestión de Base de Datos, es un conjunto de datos y programas
que ayudan a acceder a una colección de datos relacionados entre sí mediante
algún identificador. Existe un SGBD específico para cada motor de base de
datos existente, es la maneja más fácil de interactuar con los datos
almacenados.
Hoy en día el uso de SGBD es una de las tendencias más claras e importantes
para la gestión de datos. Al inicio se utilizaron para guardar información asociada
a un conjunto de entidades especiales almacenadas en forma vectorial, pero en
la actualidad también se está empezando a utilizar almacenamiento de la
información geométrica de las entidades especiales, en el SGBD se han
realizado pruebas para almacenar información en un formato raster esa opción
no ha resultado eficiente.
“El modelo raster se utiliza habitualmente para representar fenómenos de
la realidad que se presentan de manera continua en el espacio. En este
caso el espacio se suele dividir en celdas regulares, donde cada una de
estas celdas presenta un valor. Los rasgos del territorio se reconocer al
analizar en conjunto dichos elementos, como sucede al visualizar una
fotografía aérea compuesta de una infinidad de píxeles, o una grilla que
representa las precipitaciones caídas a lo largo de un año” (Conceptos de
base de datos, 2015)
Los Sistemas de Gestión de bases de datos más populares son: Oracle, MySQL,
SQL Server, muchos por su asequibilidad, otros por su rendimiento, ventajas y
desventajas entre ellos, etc.
“Un sistema de bases de datos es básicamente un sistema computarizado
para llenar registros.
Es posible considerar a la propia base de datos como una especie de
armario electrónico para archivar; es decir, es un depósito o contenedor de
25
una colección de archivos de datos computarizados. Los usuarios del
sistema pueden realizar una variedad de operaciones sobre dichos
archivos. Por ejemplo:
Agregar nuevos archivos vacíos a la base de datos;
Insertar datos dentro de los archivos existentes;
Recuperar datos de los archivos existentes;
Modificar datos en archivos existentes:
Eliminar datos de los archivos existentes;
Eliminar archivos existentes de la base de datos”. (Date, 2015)
GRÁFICO # 3 – Sistema Gestor de Bases de Datos
Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira
Fuente: http://cibertareas.info/sistema-de-gestor-de-base-de-datos-
herramientas-informaticas-1.html
En el gráfico # 3 referenciado, se puede observar los diferentes sistemas
gestores de base que son los encargados de hacer efectiva la comunicación
entre el usuario y el motor de base de datos.
26
Características Fundamentales de un Sistema de Gestión de Base de Datos
(SGBD)
Con un SGBD se puede almacenar, manipular y consultar datos que
pertenezcan a una base de datos, en un modelo relacional, en representación
para el usuario, consiste en un conjunto de tablas, que poseen campos
conocidos también como atributos, en la que se establecen relaciones. Una hoja
de cálculo es considerada una base de datos, donde gracias a su capacidad de
almacenamiento se pueden guardar miles y miles de registros por hoja dando
algunas ventajas pero existen una serie de diferencias fundamentales entre un
SGBD y un programa de hoja de cálculo.
Características principales un SGBD:
Los datos almacenados en la base de datos son independientes del
SGBD que se maneje.
Permite realizar consultas complejas, cuya resolución esta optimizada,
expresadas mediante un lenguaje formal.
Al almacenar los datos se lo realiza de una forma eficiente aunque oculta
para los usuarios.
Tienen una interfaz amigable que facilita en gran parte la administración
de los datos.
Permite monitorear el acceso de los diferentes usuarios que ingresen al
sistema garantizando la ausencia de problemas de seguridad o pérdida
de datos.
Se pueden crear usuarios de accesos a las bases, es decir, pueden
existir n bases de datos en un servidor pero se puede realizar la creación
de usuarios para darle acceso solamente a ciertas bases de datos y
darle permiso para ejecutar ciertas transacciones.
Existen diferentes versiones de un SGBD, brindando de esta manera al
usuario la opción de elegir un programa que se ajuste a sus
necesidades, ahorrando memoria o permitiéndole elegir un programa
ajustándose a las características de su computador.
27
GRÁFICO # 4 - Proceso de un SGBD para acceder a los Datos
Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira
Fuente: https://basedatosofimaticas.wikispaces.com/3+-
+Caracter%C3%ADsticas+de+los+Sistemas+Gestores+de+Bases+de+Datos
El esquema anterior reproduce la comunicación entre un proceso de usuario
que desea acceder a los datos y el SGBD:
“
El proceso lanzado por el usuario llama al SGBD indicando la
porción de la base de datos que se desea tratar
El SGBD traduce la llamada a términos del esquema lógico de la
base de datos. Accede al esquema lógico comprobando derechos
de acceso y la traducción física (normalmente los metadatos se
guardan una zona de memoria global y no en el disco)
El SGBD obtiene el esquema físico
El SGBD traduce la llamada a los métodos de acceso del Sistema
Operativo que permiten acceder realmente a los datos requeridos
El Sistema Operativo accede a los datos tras traducir las órdenes
dadas por el SGBD
Los datos pasan del disco a una memoria intermedia o buffer. En
ese buffer se almacenarán los datos según se vayan recibiendo
28
Los datos pasan del buffer al área de trabajo del usuario (ATU) del
proceso del usuario. Los pasos 6 y 7 se repiten hasta que se envíe
toda la información al proceso de usuario.
En el caso de que haya errores en cualquier momento del proceso,
el SGBD devuelve indicadores en los que manifiesta si ha habido
errores o advertencias a tener en cuenta. Esto se indica al área de
comunicaciones del proceso de usuario. Si las indicaciones son
satisfactorias, los datos de la ATU serán utilizables por el proceso
de usuario.” (Wikispaces, 2012)
Motor de base de datos SQL Server 2012
Microsoft SQL Server es una de las bases más populares que existe en el
ámbito de los sistemas de información.
“El Motor de base de datos es el servicio principal para almacenar,
procesar y proteger datos. El Motor de base de datos proporciona acceso
controlado y procesamiento de transacciones rápido para cumplir con los
requisitos de las aplicaciones consumidoras de datos más exigentes de su
empresa.” (Microsoft, 2015)
Instancias
Una instancia es del motor de base de datos es copia de un ejecutable que se
ejecuta como un servicio del sistema operativo, cada instancia existente puede
ejecutar una o varias bases de datos del sistema. Un equipo puede ejecutar
varias instancias de SQL Server, únicamente hay que considerar la cantidad de
recursos que utilizara dicha instancia, tanto en memoria RAM como espacio en
el disco, ya que al crear una instancia del motor de base de datos se crean
bases de datos que forman parte del funcionamiento interno.
La instancia es aquella que se encarga de gestionar todas las peticiones que
surjan desde una aplicación para trabajar con los datos de cualquiera da las
bases de datos que estén bajo la administración de la instancia mencionada.
29
Características
Entre las características más resaltantes tenemos:
Bases de datos independientes, Sql Server permite al usuario aislar su
sabe de datos de las otras bases de datos y de la instancia que hospeda
la base de datos.
Estado de la base de datos, se puede conocer el estado de una base de
datos: online (disponible), offline (no disponible), restoring (restaurando
archivos), recovering (se está recuperando de un posible fallo), entre
otros que son de gran ayuda para el usuario.
Estimar tamaño de la base de datos, el poder estimar el tamaño de la
base de datos ayuda en la toma de decisiones relacionadas a poseer un
hardware más robusto o si el modelo de la base de datos necesita
reajustes que permitan un mayor rendimiento.
Cambiar las configuraciones de una base de datos, se consigue con
la ejecución de las Transacciones SQL, los cambios realizados afectan
únicamente a una base de datos.
Asistente para planes de mantenimiento, puede ser ejecutado
periódicamente logrando realizar copias de seguridad, comprobación de
integridad de las bases o actualización de las estadísticas de las bases
de datos.
Consultar o cambiar el nivel de compatibilidad de una base de datos,
es posible pero se puede correr riesgos de seguridad si no se conoce el
impacto que tendría este cambio sobre las aplicaciones.
Creación de tablas, índices, cursores, vistas, procedimientos
almacenados.
30
Permite realizar compresiones de datos.
Permite hacer importaciones y exportaciones de información de forma
masiva.
Creación de tablas e índices con particiones, estas particiones se realizan
de manera horizontal convirtiéndose así en particiones individuales, al
momento de realizar consultas las particiones son consideradas como
una sola entidad lógica.
Activar desencadenadores DDL, DML. Permite tener un control de
realizar cierto proceso cada vez que estas instrucciones sean ejecutados
por cualquier usuario sobre cada entidad de una base de datos.
Manejar estructuras xml, esta compatibilidad está integrada en todos los
componentes del motor de base de datos.
Permite crear copias de seguridad y backups.
Es una base de datos robusta, altamente confiable y utilizadas por
muchas empresas reconocidas, la razón por la que es muy conocida es
debido a su calidad, a los proceso que permite realizar y principalmente
porque a pesar de ser una base de datos pagada el valor de la licencia es
considerablemente menor en comparación con otros motores de base de
datos, como ejemplo: Oracle Data Base
31
CUADRO # 2 - Ediciones de SQL Server 2012
EDICIÓN
DESCRIPCIÓN
Enterprise (64 y 32
bits)
Proporciona tecnología avanzada al usuario y rendimiento
super rápido, virtualización limitada e inteligencia de
negocios.
Business
Intelligence (64 y 32
bits)
Ofrece una plataforma completa, permitiendo crear
soluciones de inteligencia de negocios robustas,
confiables y escalables de acuerdo a las necesidades del
negocio
Standard (64 y 32
bits)
Ofrece la básica administración de los datos de una base
al igual que los datos de un programa de inteligencia de
negocios, permitiendo a las empresas pequeñas ejecutas
sus aplicaciones.
Web (64 y 32 bits)
Es una edición especial con costos de propiedad bajos
Developer (64 y 32
bits)
Es una edición de amplio uso que le permite a los
desarrolladores compilar cualquier programa de SQL,
incluye todas las funcionalidades de la edición Enterprise.
Ediciones Express
(64 y 32 bits)
Es una edición de amplio uso ideal para usuarios
principiantes
Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira
Fuente: https://technet.microsoft.com/es-
es/library/hh230827%28v=sql.110%29.aspx
32
CUADRO # 3 - Componentes del Servidor SQL
COMPONENTE
DESCRIPCIÓN
Motor de base de
datos
Es el servicio principal, donde se almacena, gestiona y
protege la información.
Analysis Services
Permite crear herramientas que servirán para realizar
cubos de información y minería de datos.
Reporting
Services
Toda creación en cuanto a reportería
Integration
Services
Creación de procesos dedicados a la extracción,
transformación y carga de datos entre una misma base ó
diferentes bases de datos
Master Data
Services
Permite la administración de datos maestros.
Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira
Fuente: https://technet.microsoft.com/es-
es/library/ms144275%28v=sql.110%29.aspx
¿Por qué utilizar SQL Server 2012?
“Gracias a su prioridad en ser una plataforma “Cloud-Ready”, su negocio
podrá mantenerse siempre a la vanguardia ofreciendo seguridad y
excelentes tiempos de servicios a sus clientes, mientras ahorra los
tradicionales costos de TI.”
(Microsoft, Microsoft, 2012)
33
Metodologías de Desarrollo Ágil del Software
“Actualmente los negocios operan en un entorno global que cambia
rápidamente. Tienen que responder a nuevas oportunidades y mercados,
condiciones económicas cambiantes y la aparición de productos y servicios
competidores. El software es parte de casi todas las operaciones de negocio, por
lo que es fundamental que el software nuevo se desarrolle rápidamente para
aprovechar nuevas oportunidades y responder a la presión competitiva.
Actualmente el desarrollo y entrega de manera rápida son los requerimientos
más críticos de los sistemas. De hecho, muchas organizaciones están
dispuestas a obtener una pérdida en la calidad del software y en el compromiso
sobre los requerimientos en favor de una entrega rápida del software.
Los procesos de desarrollo del software basados en una completa especificación
de los requerimientos, diseño, construcción y pruebas del sistema no se ajustan
al desarrollo rápido de aplicaciones. Cuando los requerimientos cambian o se
descubren problemas con ellos, el diseño o implementación del sistema se tiene
que volver a realizar o probar. Como consecuencia, normalmente se prolonga en
el tiempo un proceso en cascada convencional y el software definitivo se entrega
mucho tiempo después al cliente con el que inicialmente se pactó. En un entorno
de negocios tan cambiante, esto puede causar verdaderos problemas. Para
cuando esté disponible el software, la razón original de su adquisición puede ser
que haya cambiado de forma radical que en realidad éste sea inútil. Dicha
metodología combina una filosofía y un conjunto de directrices de desarrollo. La
filosofía busca la satisfacción del cliente y la entrega temprana de software
incremental, equipos pequeños con alta motivación, métodos informales y una
simplicidad general del desarrollo. Los procesos de desarrollo rápido de software
están diseñados para producir software útil de forma rápida. Generalmente, son
procesos interactivos en los que se entrelazan la especificación, el diseño, el
desarrollo y las pruebas.
En una reunión celebrada en febrero de 2001 en Utah-EEUU, nace el término
"ágil" aplicado al desarrollo de software. En esta reunión participan un grupo de
diecisiete expertos de la industria del software, incluyendo algunos de los
creadores o impulsores de metodologías de software. Su objetivo fue esbozar los
34
valores y principios que deberían permitir a los equipos a desarrollar software
rápidamente y respondiendo a los cambios que podrían surgir a lo largo de los
proyectos. Se pretendía ofrecer una alternativa a los procesos de desarrollo de
software tradicionales, caracterizados por ser rígidos y dirigidos por la
documentación que se genera en cada una de las actividades desarrolladas.
Varias de las denominadas metodologías ágiles ya estaban siendo utilizadas con
éxito en proyectos reales, pero les faltaba una mayor difusión y reconocimiento.
Tras esta reunión se creó “The Agile Alliance” (2001), una organización, sin
ánimo de lucro, dedicada a promover los conceptos relacionados con el
desarrollo ágil de software y ayudar a las organizaciones para que adopten
dichos conceptos.” (EUMED, 2014)
Una metodología ágil tiene como característica principal, adaptarse a cualquier
cambio que ocurra durante la ejecución de un proyecto, esto se debe a que
buscar aumentar las probabilidades de éxito.
Principios de una metodología ágil:
Los individuos y sus interacciones son más importantes que los procesos
y las herramientas
El software que funciona es más importante que la documentación
exhaustiva.
Colaboración con el cliente en lugar de negociación de contratos.
No hay que seguir un plan cerrado, sino adaptarse al cambio.
(geekytheory, 2015)
Metodología XP: Programación Extrema
“La programación extrema es una metodología de desarrollo ágil que tiene
como principal objetivo aumentar la productividad a la hora de desarrollar
un proyecto software. Da prioridad a los trabajos que dan un resultado
directo y en los cuales se reduce la burocracia que pueda existir en el
entorno de trabajo.” (geekytheory, 2015)
35
Metodología Scrum
“A pesar de que la metodología XP recibe la mayor atención bibliográfica, las
organizaciones están enfocando su atención en la metodología ágil denominada
SCRUM (Schwaber & Shuterland, 2011) (Shuterland, 2012), la cual aplica las
mismas premisas conceptuales que XP pero para resolver un problema
ligeramente distinto como es el de desarrollo evolutivo de aplicaciones. SCRUM
es una metodología ágil y flexible que sirve para gestionar el desarrollo de
software, cuyo principal objetivo es maximizar el retorno de la inversión para su
empresa. Se basa principalmente en construir la funcionalidad de mayor valor
para el cliente y en los principios de inspección continua, adaptación, auto-
gestión e innovación.
Con SCRUM el cliente es pieza fundamental en el desarrollo de software, se
entusiasma y se compromete con el proyecto dado que lo ve crecer iteración a
iteración. Asimismo le permite en cualquier momento realinear el software con
los objetivos de negocio de su empresa, ya que puede introducir cambios
funcionales o de prioridad en el inicio de cada nueva iteración. Esta forma de
trabajo promueve la innovación, motivación y el compromiso del equipo que
forma parte del proyecto, por lo que los profesionales encuentran un ámbito
propicio para desarrollar sus capacidades.” (EUMED, 2014)
Desarrollo adaptativo de software (DAS)
“El desarrollo adaptativo software (DAS) lo propuso Jim Highsmith en 1998 como
una técnica para construir software y sistemas complejos. Los apoyos filosóficos
del DAS se enfocan en la colaboración humana y la organización propia del
equipo. Un enfoque de desarrollo ágil y adaptativo basado en la colaboración es
36
"una fuente de orden en las complejas interacciones entre disciplina e
ingeniería". El define el ciclo de vida del DAS, el cual incorpora tres fases
principales:
1) Especulación; en esta fase se inicia el proyecto y se conduce el ciclo
adaptativo de planeación. Este último utiliza información de inicio del proyecto,
es decir, el enunciado de la misión del cliente, restricciones del proyecto y los
requisitos básicos. Esto permite definir el conjunto de ciclos de lanzamiento que
se requerirán para el proyecto.
2) Colaboración; la gente motivada trabaja de una forma que multiplica su
talento y sus salidas creativas más allá de sus números absolutos. Este enfoque
de colaboración es un tema recurrente en todos los métodos ágiles, pero la
cooperación no es fácil. No solamente es la comunicación, o que la
comunicación es parte de ella. No sólo es un asunto de trabajo en equipo,
aunque un equipo cuajado es esencial para la presencia de la colaboración real.
No es un rechazo al individualismo ya que la creatividad individual representa un
papel importante en el pensamiento de colaboración. Esto es, por encima de
todo, una cuestión de confianza. Las personas que trabajan juntas deben confiar
entre sí para:
Criticar de forma constructiva
Ayudar sin resentimientos
Trabajar más duro de lo que ya lo hace
Tener el conjunto de actitudes para contribuir al trabajo curso
Comunicar los problemas o preocupaciones en una forma que conduzca
a la acción efectiva
3) Aprendizaje; como miembros de un equipo de DAS se comienzan a
desarrollar los componentes integrantes de un ciclo adaptativo, la importancia
radica en el aprendizaje y en el progreso a través de un ciclo completo. De
hecho Highsmith (2002), argumenta que los desarrolladores de software a
menudo sobreestima su comprensión (de la tecnología, el proceso y el proyecto),
y que el aprendizaje les podré ayudar a mejorar su grado de entendimiento real.
Los equipos del DAS aprenden de tres maneras:
Grupos enfocados. El cliente o los usuarios finales proporcionan
retroalimentación sobre los incrementos de software que se entregan.
37
Esto indica en forma directa la satisfacción o la insatisfacción de las
necesidades del negocio.
Revisiones técnicas formales. Los miembros del equipo del DAS revisan
los componentes del software desarrollado mientras mejoran su calidad y
su aprendizaje.
Post mortem. El equipo de DAS se vuelve introspectivo al vigilar su propio
desempeño y proceso con el propósito de aprender acerca de su enfoque
y después mejorarlo.
Es importante destacar que la filosofía del DAS es meritoria sin importar el
modelo del proceso empleado. La dinámica de la organización propia los
equipos, la colaboración interpersonal y el aprendizaje individual conducen a los
grupos de proyectos de software con una mayor posibilidad de éxito.” (EUMED,
2014)
Metodología SCRUM
Es una metodología ágil y flexible creada para administrar el desarrollo de un
software.
Se aplica de manera regular mediante un conjunto de buenas prácticas que
motivan a trabajar colaborativamente logrando obtener los mejores resultados de
un proyecto.
Está diseñada para hacer entregas parciales y regulares de las funcionalidades
del producto, de esta manera el cliente puede contar con algo funcional sin tener
aun el producto terminado.
La metodología Scrum es innovadora, causa en el cliente un sentimiento
entusiasta ya que logra ver que el proyecto avanza a cada momento obteniendo
de esta manera el compromiso neto por parte del cliente.
Al igual que con el cliente del software esta es una metodología amena de
realizar en un grupo de trabajo, les promueve innovación, motivación y sobre
todo genera alto compromiso del equipo.
38
“En Scrum 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 y la productividad son fundamentales.
Scrum también se utiliza para resolver situaciones en que no se está
entregando al cliente lo que necesita, cuando las entregas se alargan
demasiado, los costes se disparan o la calidad no es aceptable, cuando se
necesita capacidad de reacción ante la competencia, cuando la moral de
los equipos es baja y la rotación alta, cuando es necesario identificar y
solucionar ineficiencias sistemáticamente o cuando se quiere trabajar
utilizando un proceso especializado en el desarrollo de producto.” (IBM,
2015)
Beneficios Generales de Scrum:
Cumplimiento de expectativas
Flexibilidad a Cambios
Reducción del Time to Market
Mayor calidad del Software
Mayor productividad
Predicciones de tiempos
Reducción de riesgos
Beneficios específicos de metodología Scrum
“
Entrega mensual (o quincenal) de resultados (los requisitos más
prioritarios en ese momento, ya completados) lo cual proporciona las
siguientes ventajas:
Gestión regular de las expectativas del cliente y basada en resultados
tangibles.
Resultados anticipados (time to market).
39
Flexibilidad y adaptación respecto a las necesidades del cliente,
cambios en el mercado, etc.
Gestión sistemática del Retorno de Inversión (ROI).
Mitigación sistemática de los riesgos del proyecto.
Productividad y calidad.
Alineamiento entre el cliente y el equipo de desarrollo.
Equipo motivado.” (IBM, 2015)
Roles de la metodología SCRUM
Existen diferentes roles dentro de la metodología SCRUM que permiten llevar a
cabo la ejecución del proyecto, cada uno de ellos representa un punto
importante y estratégico dentro del proceso.
“
Producto Owner o Dueño del Producto: es la “voz del cliente” y el
responsable de desarrollar, mantener y priorizar las tareas en el
backlog.
Scrum Master: Es responsable de asegurarse que el trabajo del
equipo vaya bien siguiendo las bases de Scrum. Además, se
encarga de remover cualquier obstáculo que pueda encontrar el
equipo de desarrollo.
Los Development Team Members o Miembros: del Equipo de
desarrollo son los encargados de escribir y probar el código.
Además de estos roles principales existen dos roles auxiliares, que no
cuentan como un rol formal y no se involucran constantemente con el
proceso SCRUM.
Stakeholders: Se refiere a los cliente, proveedores, o a la gente que
hace posible la realización del proyecto. Son quienes recibirán los
beneficios del producto y se involucran en las revisiones de cada
40
uno de los sprints.
Managers: Es quien se encarga de hacer la gestión de tos
requerimientos necesarios para tener un ambiente de desarrollo y
que se mantenga funcional.” (Metodología Scrum, 2015)
GRÁFICO # 5 - Pasos de la Metodología Scrum
Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira Fuente: https://platzi.com/blog/guia-scrum/
Se mencionan los siguientes procesos dentro de la metodología Scrum:
1. Planeamiento del Sprint ó Sprint Planning
Todos los involucrados en el equipo se reúnen para planificar el Sprint. Durante
este evento se decide qué requerimientos o tareas se le asignará a cada uno de
los elementos del equipo. Cada integrante deberá asignar el tiempo que crea
prudente para llevar a cabo sus requerimientos. De esta manera se define el
tiempo de duración del Sprint. (Metodología Scrum, 2015)
2. Reunión de Equipo de Scrum ó Scrum team meeting Estas reuniones se deben realizar diariamente con un máximo de 15 minutos.
Siempre en el mismo horario y lugar. En ellas, cada miembro del equipo deberá
responder tres simples preguntas:
¿Qué hiciste ayer?
41
¿Qué tienes planeado hacer hoy?
¿Qué obstáculos encontraste en el camino?
Estas reuniones sirven para que todos los miembros del equipo se apoyen entre
ellos. Si alguno de ellos tiene algún inconveniente que tome más tiempo del
asignado en resolverse; este debe tratarse más a fondo en una reunión
enfocada en buscar la mejor solución para ello. (Metodología Scrum, 2015)
3. Refinamiento del Backlog ó Backlog Refinement
El Product Owner revisa cada uno de los elementos dentro del Product Backlog
con el fin de esclarecer cualquier duda que pueda surgir por parte del equipo de
desarrolladores. También sirve para volver a estimar el tiempo y esfuerzo
dedicado a cada uno de los requerimientos. (Metodología Scrum, 2015)
4. Revisión del Sprint ó Sprint Review
Los miembros del equipo y los clientes se reúnen para mostrar el trabajo de
desarrollo de software que se ha completado. Se hace una demostración de
todos los requerimientos finalizados dentro del Sprint.
En este punto no es necesario que todos los miembros del equipo hablen.
Pueden estar presentes pero la presentación está a cargo del Scrum Master y el
Product Owner. (Metodología Scrum, 2015)
5. Retrospectiva del Sprint ó Retrospective
En este evento, el Product Owner se reúne con todo su equipo de trabajo y su
Scrum Master para hablar sobre lo ocurrido durante el Sprint. Los puntos
principales a tratar en esta reunión son:
¿Qué se hizo mal durante el Sprint para poder mejorar el próximo?
¿Qué se hizo bien para seguir en la misma senda del éxito?
¿Qué inconvenientes se encontraron y no permitieron poder avanzar como se
tenía planificado? (Metodología Scrum, 2015)
42
GRÁFICO # 6 - Pasos de la Metodología Scrum
Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira Fuente:https://procesosdesoftware.wikispaces.com/file/view/imgscr2.jpg/141485013/imgscr2.jpg
43
Beneficios de la Metodología Scrum
Los beneficios son amplios y repercuten en el equipo, en los Stakeholders y en
la organización en su conjunto.
Se fomenta el trabajo en equipo, focalizando todos los esfuerzos en alcanzar un
objetivo común. Se trata de un modelo basado en la auto-disciplina y la auto-
gestión, lo que repercute positivamente en la responsabilidad. Respecto al
aspecto comunicativo, esta metodología fomenta la comunicación entre los
distintos miembros del equipo.
Los Stakeholders tienen un mayor control y transparencia sobre el proyecto,
permitiendo una mejor organización. El cliente puede hacer seguimiento más
cercano de lo que pasa, sin tener que esperar a un resultado final que no le
convenza. Con las metas intermedias se minimizan riesgos.
En definitiva, la adopción de estas buenas prácticas permite reducir el tiempo de
desarrollo de productos, más capacidad de adptación y flexibilidad frente a un
entorno y unos requisitos cambiantes aumentando el valor que se aporta a los
clientes.
“Scrum es un framework de desarrollo ágil de software. El trabajo es
estructurado en ciclos de trabajo llamados sprintes, iteraciones de trabajo
con una duración típica de dos a cuatro semanas. Durante cada sprint, los
equipos eligen de una lista de requerimientos de cliente priorizados,
llamados historias de usuarios, para que las características que sean
desarrolladas primero sean las de mayor valor para el cliente. Al final de
cada sprint, se entrega un producto potencialmente lanzable / distribuible /
comerciable.” (ScrumAlliance)
44
FUNDAMENTACIÓN LEGAL Existen diversas leyes que respaldan la creación del proyecto, a continuación:
LEY ORGÁNICA DE EDUCACIÓN SUPERIOR
Art. 8.- Serán Fines de la Educación Superior.-
La educación superior tendrá los siguientes fines:
a) Aportar al desarrollo del pensamiento universal, al despliegue de la
producción científica y a la promoción de las transferencias e
innovaciones tecnológicas:
c) Contribuir al conocimiento. preservación y enriquecimiento de los saberes
ancestrales y de la cultura nacional
Art. 32.- Programas informáticos.- Las empresas que distribuyan programas
informáticos tienen la obligación de conceder tarifas preferenciales para el uso
de las licencias obligatorias de los respectivos programas, a favor de las
instituciones de educación superior, para fines académicos. Las instituciones de
educación superior obligatoriamente incorporarán el uso de programas
informáticos con software libre.
PRINCIPIOS DEL SISTEMA DE EDUCACIÓN SUPERIOR
Art. 13.- Funciones del Sistema de Educación Superior.- Son funciones del
Sistema de Educación Superior:
a) Garantizar el derecho a la educación superior mediante la docencia, la
investigación y su vinculación con la sociedad, y asegurar crecientes niveles
de calidad, excelencia académica y pertinencia.
b) Promover la creación, desarrollo, transmisión y difusión de la ciencia, la
técnica, la tecnología y la cultura.
c) Formar académicos, científicos y profesionales responsables, éticos y
solidarios, comprometidos con la sociedad, debidamente preparados para
45
que sean capaces de generar y aplicar sus conocimientos y métodos
científicos, así como la creación y promoción cultural y artística.
LEY DE LA PROPIEDAD INTELECTUAL
Art. 28. Los programas de ordenador se consideran obras literarias y se
protegen como tales. Dicha protección se otorga independientemente de que
hayan sido incorporados en un ordenador y cualquiera sea la forma en que estén
expresados, ya sea en forma legible por el hombre (código fuente) o en forma
legible por máquina (código objeto), ya sean programas operativos y programas
aplicativos, incluyendo diagramas de flujo, planos, manuales de uso, y en
general, aquellos elementos que conformen la estructura, secuencia y
organización del programa.
Art. 29. Es titular de un programa de ordenador, el productor, esto es la persona
natural o jurídica que toma la iniciativa y responsabilidad de la realización de la
obra. Se considerará titular, salvo prueba en contrario, a la persona cuyo nombre
conste en la obra o sus copias de la forma usual.
Dicho titular está además legitimado para ejercer en nombre propio los derechos
morales sobre la obra, incluyendo la facultad para decidir sobre su divulgación.
El productor tendrá el derecho exclusivo de realizar, autorizar o prohibir la
realización de modificaciones o versiones sucesivas del programa, y de
programas derivados del mismo.
Las disposiciones del presente artículo podrán ser modificadas mediante
acuerdo entre los autores y el productor.
Art. 30. La adquisición de un ejemplar de un programa de ordenador que haya
circulado lícitamente, autoriza a su propietario a realizar exclusivamente:
a) Una copia de la versión del programa legible por máquina (código
objeto) con fines de seguridad o resguardo;
46
b) Fijar el programa en la memoria interna del aparato, ya sea que
dicha fijación desaparezca o no al apagarlo, con el único fin y en la
medida necesaria para utilizar el programa;
c) Salvo prohibición expresa, adaptar el programa para su exclusivo
uso personal, siempre que se limite al uso normal previsto en la licencia.
El adquirente no podrá transferir a ningún título el soporte que contenga
el programa así adaptado, ni podrá utilizarlo de ninguna otra forma sin
autorización expresa, según las reglas generales.
Se requerirá de autorización del titular de los derechos para cualquier otra
utilización, inclusive la reproducción para fines de uso personal o el
aprovechamiento del programa por varias personas, a través de redes u
otros sistemas análogos, conocidos o por conocerse.
Art. 31. No se considerará que exista arrendamiento de un programa de
ordenador cuando éste no sea el objeto esencial de dicho contrato. Se
considerará que el programa es el objeto esencial cuando la funcionalidad del
objeto materia del contrato, dependa directamente del programa de ordenador
suministrado con dicho objeto; como cuando se arrienda un ordenador con
programas de ordenador instalados previamente.
SOBRE EL USO DE SOFTWARE LIBRE
Art. 1. Establecer como política pública para las entidades de administración
pública central la utilización del Software Libre en sus sistemas y equipamientos
informáticos.
Art. 3. Las entidades de la administración pública central previa a la instalación
del software libre en sus equipos, deberán verificar la existencia de capacidad
técnica que brinde el soporte necesario para este tipo de software.
47
PREGUNTA CIENTÍFICA A CONTESTARSE
¿Si se obtiene un correcto modelo de datos para la gestión de usuarios,
entonces se conseguirá del correcto funcionamiento del sistema?
¿Si analizo estándares y procesos de diseño de una base de datos, entonces se
obtendrá el correcto modelo que se busca?
¿Si se realiza un proceso que permita tener un control sobre los perfiles de
usuarios, se tendrá una administración correcta del sistema?
¿Si se aplica correctamente la metodología SCRUM sobre los procesos antes
mencionados se podrá comprobar que es una metodología apta y factible para el
desarrollo de nuevos proyectos?
DEFINICIONES CONCEPTUALES
METODOLOGÍA. Es un conjunto de métodos que se aplican para llevar a cabo
una investigación científica, un proyecto o un estudio, permitiendo realizarlo de
manera ordenada.
SCRUM. Es una metodología de desarrollo ágil, que consiste en dividir los
requerimientos del desarrollo del sistema en partes pequeñas para poder realizar
un entregable funcional en tiempos cortos que son previamente planificados.
SGBD. Es el sistema e interfaz gráfica que permite al usuario manipular e
ingresar de manera facilitada la data en una base de datos, otorgando una
administración del acceso a dichos datos.
NORMALIZACIÓN. Es la obtención de una base de datos, al aplicar estándares
y procesos de diseño, que aseguran la integridad y seguridad de los datos,
evitando la redundancia y la posible falla de actualización e ingreso de los
mismos.
48
CAPÍTULO III
PROPUESTA TECNOLÓGICA
La propuesta del presente proyecto es básicamente en la creación de un sistema
académico aplicando metodologías de desarrollo ágil, para su estudio se ha
propuesto metodología Scrum en aplicada en la Ingeniería de software, es decir
una combinación de procedimientos para llevar a cabo la elaboración del sistema
con la finalidad de comprobar que la metodología aplicada puede funcionar
correctamente y sacar a flote proyectos grandes.
Para llevar a cabo la propuesta del desarrollo de todo el sistema, se incluirá el
desarrollo de un modelo entidad relación, basado en todas las necesidades del
sistema que contará con una estructura que soporte el ingresos de los usuarios
así como la asignación de roles y opciones que tenga cada uno.
Es importante realizar un estudio de factibilidad para conocer los costos,
beneficios y grados de aceptación de la propuesta por parte de la institución.
Análisis de factibilidad
A través del siguiente análisis se evaluara las posibilidades de éxito que tendrá
la ejecución del proyecto propuesto. Si es factible y cuán grande será su
beneficio.
Factibilidad Operacional
¿Existe la necesidad y el deseo del cambio del sistema académico
actual?
Tanto para el personal administrativo, docentes y estudiantes es
importante contar con sistema innovador que de la seguridad que va
cumplir con todas las expectativas propuestas y tiempos estimados, que
aplicando la metodología de desarrollo adecuada y el compromiso de
todos serán llevadas a cabo sin ningún problema.
49
¿Se cuenta con el completo apoyo por parte de un representante
administrativo para el avance del proyecto?
Este punto es muy importante, y se ha concretado su inicio de partida
gracias al apoyo con el que se cuenta.
¿Si se realiza presentaciones sobre el prototipo del futuro sistema, es
posible incrementar el apoyo de las autoridades?
Es la mejor manera de dar inicio a la propuesta de un proyecto, es
importante demostrar las habilidades de proyecciones para proyectos
innovadores, sin sobrepasar el límite de donde se puede llegar de
acuerdo a los recursos con los que se cuente.
¿Se puede transmitir el deseo de continuar con el proceso de desarrollo
del proyecto al siguiente grupo encargado de esta tarea?
Es muy importante definir reuniones de capacitación al siguiente grupo de
personas que tendrán a cargo el proyecto, ya que es una realidad que
beneficiaría a toda una institución.
¿Qué es lo más importante que se obtendría del desarrollo de este
proyecto?
El punto principal es dar a conocer que el cumplimiento de desarrollo de
proyectos grandes se puede llevar a la realidad si se aplica una adecuada
metodología y si se evalúa los conocimientos y nivel de compromiso de
las personas que forman parte del equipo.
Factibilidad técnica
¿Se cuenta con el las herramientas necesarias para impartir la ejecución
del proyecto, o existe la manera de conseguir los recursos necesarios con
la ayuda del equipo de trabajo?
Los recursos humanos, de hardware y software son la principal razón
para saber si el proyecto se puede llevar a cabo. Por la gestión prestada
por parte de la administración del proyecto se cuenta con un área física
50
de trabajo donde el equipo puede laborar en conjunto, llegando a
acuerdos que sacaran a flote el proyecto.
¿El equipo de trabajo cuenta con el nivel de conocimiento necesario para
llevar a cabo el proyecto?
El primer paso es clasificar al personal candidato para formar parte del
equipo y de acuerdo a sus experiencias de trabajo elegir a los que más
cumplan con los requisitos. Se contaría con personal lo suficientemente
capacitado.
¿Se cuenta con la alta disponibilidad de las herramientas de trabajo,
principalmente servidores de desarrollo?
La planificación del proyecto ha pensado en el avance constante del
proyecto, razón por la cual se ha hará la debida gestión para contar al
100% con los equipos.
¿Se cuenta con personal destinado a dar soporte en casos de falencias
en el hardware?
Se ha definido la existencia de sub equipos de trabajos destinados a dar
apoyo completo al desarrollo del sistema.
Factibilidad Legal
Dentro del desarrollo de este proyecto, no existe la posibilidad de leyes o
reglamentos. Se ha establecido el uso adecuado del software y los
recursos serán obtenidos de manera interna por parte de los integrantes
del proyecto.
Factibilidad Económica
El hardware y el software con el que se cuenta es parte de cada
integrante del grupo, lo que no ha generado gastos por parte del
proyecto.
51
Se evita el uso de papelería.
Ahorro de suministros para los equipos del personal.
Se hace uso de energía eléctrica diariamente.
Se sabe aprovecha al máximo los recursos tecnológicos con los que se
cuenta.
Se cuenta con una adecuada distribución y uso del recurso del internet.
Etapas de la metodología del proyecto El proyecto se ha dividido en 6 SPRINT, mencionados a continuación:
SPRINT 0
ANÁLISIS DE REQUERIMIENTOS
Análisis de las necesidades del sistema para estructuras las tablas
de seguridad.
Análisis y definición de los campos necesarios para cada tabla.
Análisis y definición de las relaciones entre las tablas de seguridad.
Análisis de los estándares para las nomenclaturas de los objetos de
la base de datos.
SPRINT 1
CREACIÓN DE OBJETOS EN LA BASE DE DATOS
Creación de las tablas necesarias de la estructura de seguridad.
Creación de las relaciones entre las tablas.
Creación del diccionario de datos de la estructura de seguridad.
SPRINT 2
ALIMENTACIÓN DE LA BASE DE DATOS CON INFORMACIÓN
Inserción de datos en las tablas del esquema de seguridad para
posteriores pruebas.
52
SPRINT 3
CREACIÓN DE PROCESOS
Creación de procedimiento de Autenticación, donde se incluye la
validación del usuario y posteriormente la consulta de datos
principales del usuario y los roles que posee.
Creación de procedimiento de consulta de opciones, donde se
devuelve las opciones que posee un usuario de acuerdo a los roles
que posea.
SPRINT 4
PRUEBAS DE FUNCIONAMIENTO
Pruebas de funcionalidad de los procesos una vez integradas todas
las capas del proyecto.
SPRINT 5
APLICACIÓN DE NUEVOS REQUERIMIENTOS
Como mejora de seguridad se realiza la creación de proceso que
permite actualizar o recuperar la contraseña de un usuario.
Como parte de la mejora anterior se modifica la estructura de la tabla
de usuarios.
Ejecución del rol “Scrum Master”
Para llevar a cabo la ejecución del actual proyecto, se ha cumplido con el rol de
Scrum Master en el Equipo de base de Datos, realizando en cada uno de los
SPRINT las siguientes actividades a continuación listadas:
Reuniones entre líderes del grupo de desarrollo para llegar a un acuerdo
de trabajo, donde se definen los requisitos para cada sprint.
División de las tareas en cada sprint y su asignación respectiva a cada
uno de los integrantes del grupo encargado del modelo y creación de
procesos de la base de datos.
Reuniones periódicas con el equipo para verificar avances y aclarar
dudas.
Aprobación de cada una de las tareas recibidas por parte del equipo.
Llevar el control de cada sprint desarrollado en el proyecto.
53
Entregables del proyecto
Script de creación de objetos (tablas y procedimientos)
Diccionario de Datos de las Tablas
Modelo entidad relación – Estructura de Seguridad para Gestión de
usuarios.
Código fuente de creación de tablas
Tabla Usuario, se ubica el nombre de usuario y la clave de inicio de sesión
/****** Object: Table [Seguridad].[SG_Usuario] ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [Seguridad].[SG_Usuario]( [id_sg_usuario] [int] IDENTITY(1,1) NOT NULL, [usuario] [varchar](15) NOT NULL, [contrasena] [varchar](100) NULL, [id_sg_usuario_registro] [int] NOT NULL, [fecha_registro] [datetime] NOT NULL, [id_sg_usuario_modificacion] [int] NOT NULL, [fecha_modificacion] [datetime] NOT NULL, [estado] [char](1) NOT NULL, CONSTRAINT [PK_Usuario] PRIMARY KEY NONCLUSTERED ( [id_sg_usuario] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY], CONSTRAINT [IX_SG_Usuario] UNIQUE NONCLUSTERED ( [usuario] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO
54
Tabla Grupo_Rol, engloba el conjunto de roles que pertenecen a un
mismo grupo llegando a la creación del Perfil de Usuario.
/****** Object: Table [Seguridad].[SG_Grupo_Rol] ******/ CREATE TABLE [Seguridad].[SG_Grupo_Rol]( [id_sg_grupo_rol] [int] NOT NULL, [nombre] [varchar](50) NOT NULL, [id_sg_usuario_registro] [int] NOT NULL, [fecha_registro] [datetime] NOT NULL, [id_sg_usuario_modificacion] [int] NOT NULL, [fecha_modificacion] [datetime] NOT NULL, [estado] [char](1) NOT NULL, CONSTRAINT [PK_Grupo_Rol] PRIMARY KEY CLUSTERED ( [id_sg_grupo_rol] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
Tabla Rol, se encuentran registrados los roles existentes para asignarle a
los usuarios.
/****** Object: Table [Seguridad].[SG_Rol] ******/ CREATE TABLE [Seguridad].[SG_Rol]( [id_sg_rol] [int] NOT NULL, [id_sg_grupo_rol] [int] NOT NULL, [nombre] [varchar](100) NOT NULL, [id_sg_usuario_registro] [int] NOT NULL, [fecha_registro] [datetime] NOT NULL, [id_sg_usuario_modificacion] [int] NOT NULL, [fecha_modificacion] [datetime] NOT NULL, [estado] [char](1) NOT NULL, CONSTRAINT [PK_Rol] PRIMARY KEY NONCLUSTERED ( [id_sg_rol] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF , IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON , ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [Seguridad].[SG_Rol] WITH CHECK ADD CONSTRAINT [FK_SG_Rol_SG_Grupo_Rol] FOREIGN KEY([id_sg_grupo_rol]) REFERENCES [Seguridad].[SG_Grupo_Rol] ([id_sg_grupo_rol]) GO ALTER TABLE [Seguridad].[SG_Rol] CHECK CONSTRAINT [FK_SG_Rol_SG_Grupo_Rol] GO
55
Tabla Opción, se encuentran las opciones disponibles en el sistema para ser
asignados a los usuarios dependiendo de su rol.
/****** Object: Table [Seguridad].[SG_Opcion] ******/
CREATE TABLE [Seguridad].[SG_Opcion]( [id_sg_opcion] [int] IDENTITY(1,1) NOT NULL, [nombre] [varchar](100) NOT NULL, [id_sg_opcion_padre] [int] NULL, [id_sg_usuario_registro] [int] NOT NULL, [fecha_registro] [datetime] NOT NULL, [id_sg_usuario_modificacion] [int] NOT NULL, [fecha_modificacion] [datetime] NOT NULL, [estado] [char](1) NOT NULL, [opcion] [varchar](100) NULL, CONSTRAINT [PK_Opcion] PRIMARY KEY NONCLUSTERED ( [id_sg_opcion] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF , IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON , ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
Tabla Opcion_Rol, es la tabla de relación entre los roles y las opciones, de
igual manera un rol tiene diferentes opciones a las cuales puede acceder.
/****** Object: Table [Seguridad].[SG_Opcion_Rol] ******/ CREATE TABLE [Seguridad].[SG_Opcion_Rol]( [id_sg_opcion] [int] NOT NULL, [id_sg_rol] [int] NOT NULL, [id_sg_usuario_registro] [int] NOT NULL, [fecha_registro] [datetime] NOT NULL, [id_sg_usuario_modificacion] [int] NOT NULL, [fecha_modificacion] [datetime] NOT NULL, [estado] [char](1) NOT NULL, [id_sg_opcion_rol] [int] IDENTITY(1,1) NOT NULL, CONSTRAINT [PK_SG_Opcion_Rol] PRIMARY KEY CLUSTERED ( [id_sg_opcion_rol] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [Seguridad].[SG_Opcion_Rol] WITH CHECK ADD CONSTRAINT [FK_SG_Opcion_Rol_SG_Opcion] FOREIGN KEY([id_sg_opcion]) REFERENCES [Seguridad].[SG_Opcion] ([id_sg_opcion]) GO ALTER TABLE [Seguridad].[SG_Opcion_Rol] CHECK CONSTRAINT [FK_SG_Opcion_Rol_SG_Opcion] GO ALTER TABLE [Seguridad].[SG_Opcion_Rol] WITH CHECK ADD CONSTRAINT [FK_SG_Opcion_Rol_SG_Rol] FOREIGN KEY([id_sg_rol]) REFERENCES [Seguridad].[SG_Rol] ([id_sg_rol]) GO ALTER TABLE [Seguridad].[SG_Opcion_Rol] CHECK CONSTRAINT [FK_SG_Opcion_Rol_SG_Rol] GO
56
Tabla Usuario_Rol, es la tabla de relación entre los usuarios y los roles, ya
que un usuario puede poseer varios roles.
/****** Object: Table [Seguridad].[SG_Usuario_Rol ******/ CREATE TABLE [Seguridad].[SG_Usuario_Rol]( [id_sg_usuario_rol] [int] IDENTITY(1,1) NOT NULL, [id_sg_usuario] [int] NOT NULL, [id_sg_rol] [int] NOT NULL, [id_sa_carrera] [int] NOT NULL, [id_sg_usuario_registro] [int] NOT NULL, [fecha_registro] [datetime] NOT NULL, [id_sg_usuario_modificacion] [int] NOT NULL, [fecha_modificacion] [datetime] NOT NULL, [estado] [char](1) NOT NULL, CONSTRAINT [PK_Usuario_Rol] PRIMARY KEY NONCLUSTERED ( [id_sg_usuario_rol] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [Seguridad].[SG_Usuario_Rol] WITH CHECK ADD CONSTRAINT [FK_SG_Usuario_Rol_SA_Carrera] FOREIGN KEY([id_sa_carrera]) REFERENCES [Academico].[SA_Carrera] ([id_sa_carrera]) GO ALTER TABLE [Seguridad].[SG_Usuario_Rol] CHECK CONSTRAINT [FK_SG_Usuario_Rol_SA_Carrera] GO ALTER TABLE [Seguridad].[SG_Usuario_Rol] WITH CHECK ADD CONSTRAINT [FK_SG_Usuario_Rol_SG_Rol] FOREIGN KEY([id_sg_rol]) REFERENCES [Seguridad].[SG_Rol] ([id_sg_rol]) GO ALTER TABLE [Seguridad].[SG_Usuario_Rol] CHECK CONSTRAINT [FK_SG_Usuario_Rol_SG_Rol] GO ALTER TABLE [Seguridad].[SG_Usuario_Rol] WITH CHECK ADD CONSTRAINT [FK_SG_Usuario_Rol_SG_Usuario] FOREIGN KEY([id_sg_usuario]) REFERENCES [Seguridad].[SG_Usuario] ([id_sg_usuario]) GO ALTER TABLE [Seguridad].[SG_Usuario_Rol] CHECK CONSTRAINT [FK_SG_Usuario_Rol_SG_Usuario] GO
57
Tabla Usuario_Dato, se ubican los datos personales y generales de los usuarios.
/****** Object: Table [Seguridad].[SG_Usuario_Dato] ******/ CREATE TABLE [Seguridad].[SG_Usuario_Dato] ( [id_sg_usuario] [int] NOT NULL, [nombres] [varchar](250) NOT NULL, [apellidos] [varchar](250) NOT NULL, [direccion] [varchar](250) NOT NULL, [telefono] [varchar](15) NOT NULL, [id_sa_parametro_estado_civil] [int] NOT NULL, [id_sa_parametro_sexo] [int] NOT NULL, [id_sa_parametro_nacionalidad] [int] NOT NULL, [id_sa_parametro_pais] [int] NOT NULL, [fecha_nacimiento] [date] NOT NULL, [nombre_padre] [varchar](250) NOT NULL, [nombre_madre] [varchar](250) NOT NULL, [id_sa_parametro_tipo_sangre] [int] NOT NULL, [estado] [char](1) NOT NULL, [correo_personal] [varchar](100) NULL, [id_sg_usuario_registro] [int] NULL, [fecha_registro] [datetime] NULL, [id_sg_usuario_modifica] [int] NULL, [fecha_modifica] [datetime] NULL, [correo_institucional] [varchar](100) NULL, [celular] [varchar](10) NULL, [token_fb] [varchar](max) NULL, [token_tw] [varchar](max) NULL, [DirectorioFoto] [varchar](300) NULL, CONSTRAINT [PK_SG_Usuario_Datos] PRIMARY KEY CLUSTERED ( [id_sg_usuario] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF , IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON , ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [Seguridad].[SG_Usuario_Dato] WITH CHECK ADD CONSTRAINT [FK_SG_Usuario_Dato_SA_Parametro] FOREIGN KEY([id_sa_parametro_estado_civil]) REFERENCES [Academico].[SA_Parametro] ([id_sa_parametro]) GO ALTER TABLE [Seguridad].[SG_Usuario_Dato] CHECK CONSTRAINT [FK_SG_Usuario_Dato_SA_Parametro] GO
58
ALTER TABLE [Seguridad].[SG_Usuario_Dato] WITH CHECK ADD CONSTRAINT [FK_SG_Usuario_Dato_SA_Parametro1] FOREIGN KEY([id_sa_parametro_sexo]) REFERENCES [Academico].[SA_Parametro] ([id_sa_parametro]) GO ALTER TABLE [Seguridad].[SG_Usuario_Dato] CHECK CONSTRAINT [FK_SG_Usuario_Dato_SA_Parametro1] GO ALTER TABLE [Seguridad].[SG_Usuario_Dato] WITH CHECK ADD CONSTRAINT [FK_SG_Usuario_Dato_SA_Parametro2] FOREIGN KEY([id_sa_parametro_pais]) REFERENCES [Academico].[SA_Parametro] ([id_sa_parametro]) GO ALTER TABLE [Seguridad].[SG_Usuario_Dato] CHECK CONSTRAINT [FK_SG_Usuario_Dato_SA_Parametro2] GO ALTER TABLE [Seguridad].[SG_Usuario_Dato] WITH CHECK ADD CONSTRAINT [FK_SG_Usuario_Dato_SA_Parametro3] FOREIGN KEY([id_sa_parametro_nacionalidad]) REFERENCES [Academico].[SA_Parametro] ([id_sa_parametro]) GO ALTER TABLE [Seguridad].[SG_Usuario_Dato] CHECK CONSTRAINT [FK_SG_Usuario_Dato_SA_Parametro3] GO ALTER TABLE [Seguridad].[SG_Usuario_Dato] WITH CHECK ADD CONSTRAINT [FK_SG_Usuario_Datos_SG_Usuario] FOREIGN KEY([id_sg_usuario]) REFERENCES [Seguridad].[SG_Usuario] ([id_sg_usuario]) GO ALTER TABLE [Seguridad].[SG_Usuario_Dato] CHECK CONSTRAINT [FK_SG_Usuario_Datos_SG_Usuario] GO
59
Código fuente de Procedimientos Almacenados
Procedimiento almacenado para devolver los Roles de un usuario y
otros datos generales.
USE [saug] GO /*** Object: StoredProcedure [dbo].[sp_Seguridad_Autenticacion] ***/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[sp_Seguridad_Autenticacion] @px_xml XML ,@PX_SALIDA XML OUT ,@PI_ESTADO INT OUT ,@PV_MENSAJE VARCHAR(MAX) OUT ,@PV_CODTRANS VARCHAR(MAX) OUT ,@PV_MENSAJE_TECNICO VARCHAR(MAX) OUT AS BEGIN TRANSACTION BEGIN TRY DECLARE @usuario VARCHAR(15) DECLARE @contrasena VARCHAR(100) DECLARE @registros INT SELECT @usuario = M.Item.query('./usuario').value('.','VARCHAR(15)') ,@contrasena = M.Item.query('./contrasena').value('.', 'VARCHAR(100)') FROM @px_xml.nodes('/items/item') AS M(Item) IF EXISTS ( SELECT 1 FROM Seguridad.SG_Usuario WHERE SG_Usuario.usuario = @usuario AND SG_Usuario.contrasena = @contrasena ) BEGIN DECLARE @ID INT SELECT @ID = id_sg_usuario FROM Seguridad.SG_Usuario WHERE usuario = @usuario SET @PX_SALIDA = ( SELECT a.id_sg_usuario AS Usuario ,d.apellidos + ' ' + d.nombres AS nombreUsuario ,a.usuario AS cedula ,isnull(d.correo_institucional,'') AS mail ,c.id_sg_rol AS idRol ,c.nombre AS descRol ,e.nombre AS carrrera ,e.id_sa_carrera AS idCarrera FROM Seguridad.SG_Usuario a
60
INNER JOIN Seguridad.SG_Usuario_Rol b ON a.id_sg_usuario = b.id_sg_usuario INNER JOIN Seguridad.SG_Rol c ON b.id_sg_rol = c.id_sg_rol INNER JOIN Seguridad.SG_Usuario_Dato d ON a.id_sg_usuario = d.id_sg_usuario INNER JOIN Academico.SA_Carrera e ON b.id_sa_carrera = e.id_sa_carrera WHERE a.id_sg_usuario = @ID FOR XML PATH('registros') ) SET @PI_ESTADO = 1 --devuelve mensaje SELECT @PV_MENSAJE = [mensaje] ,@PV_CODTRANS = [id_sa_error] FROM [Academico].[SA_Error] WHERE [id_sa_error] = 4 END ELSE BEGIN SET @PX_SALIDA = '' SET @PI_ESTADO = 1 --devuelve mensaje SELECT @PV_MENSAJE = [mensaje],@PV_CODTRANS = [id_sa_error] FROM [Academico].[SA_Error] WHERE [id_sa_error] = 5 END END TRY BEGIN CATCH IF @@TRANCOUNT > 0 BEGIN ROLLBACK TRANSACTION; SET @PX_SALIDA = '' SET @PV_MENSAJE_TECNICO=ERROR_NUMBER() + '' + ERROR_MESSAGE() SET @PI_ESTADO = - 1 SET @PV_MENSAJE = 'ERROR EN LA TRANSACCIÓN' SET @PV_CODTRANS = 0 END; END CATCH; --Process the data IF @@TRANCOUNT > 0 BEGIN COMMIT TRANSACTION; END; GO
Procedimiento almacenado para devolver las opciones de un
usuario de acuerdo a su Rol.
61
/**Object:StoredProcedure [dbo].[sp_Seguridad_Opciones_por_rol]**/ CREATE PROCEDURE [dbo].[sp_Seguridad_Opciones_por_rol] @PI_id_usuario INT ,@PI_rol INT ,@PX_SALIDA XML OUT ,@PI_ESTADO INT OUT ,@PV_MENSAJE VARCHAR(MAX) OUT ,@PV_CODTRANS VARCHAR(MAX) OUT ,@PV_MENSAJE_TECNICO VARCHAR(MAX) OUT AS BEGIN TRANSACTION BEGIN TRY SET @PX_SALIDA=( SELECT orol.id_sg_opcion_rol ,orol.id_sg_opcion ,orol.id_sg_rol ,r.nombre as desc_rol,o.nombre as desc_opcion,o.opcion FROM [Seguridad].[SG_Opcion_Rol] orol INNER JOIN [Seguridad].[SG_Opcion] o on orol.id_sg_opcion = o.id_sg_opcion INNER JOIN [Seguridad].[SG_Rol] r on orol.id_sg_rol = r.id_sg_rol INNER JOIN [Seguridad].[SG_Usuario_Rol] ur on ur.id_sg_rol = r.id_sg_rol INNER JOIN [Seguridad].[SG_Usuario] u on u.id_sg_usuario = ur.id_sg_usuario where ur.id_sg_usuario =@PI_id_usuario and ur.id_sg_rol=@PI_rol FOR XML PATH('opcion'), root('opciones')) SET @PI_ESTADO = 1 SET @PV_MENSAJE_TECNICO = '' IF @@ROWCOUNT>0 BEGIN
SET @PV_CODTRANS = 7 END ELSE BEGIN SET @PV_CODTRANS = 8 END SELECT @PV_MENSAJE = MENSAJE FROM Academico.SA_Error WHERE id_sa_error = @PV_CODTRANS END TRY BEGIN CATCH IF @@TRANCOUNT > 0 BEGIN ROLLBACK TRANSACTION; SET @PX_SALIDA = '' SET @PV_MENSAJE_TECNICO=ERROR_NUMBER() + '' + ERROR_MESSAGE() SET @PI_ESTADO = - 1 SET @PV_MENSAJE = 'ERROR EN LA TRANSACCIÓN' SET @PV_CODTRANS = 0 END; END CATCH; IF @@TRANCOUNT > 0 BEGIN COMMIT TRANSACTION; END;
62
CUADRO # 4 - Tabla SG_USUARIO
Campo Tipo/Dato Descripción
id_sg_usuario int Clave Primaria
usuario varchar(15) Usuario del Sistema
contrasena varchar(30) Contraseña del Usuario, la primera vez es el mismo usuario
id_sg_usuario_registro int Referencia a la tabla SG_Usuario que realizó el registro
fecha_registro datetime Fecha que se realizó el registro
id_sg_usuario_modificacion int
Referencia a la tabla SG_Usuario que realizó la modificación, la primera vez se coloca el mismo que registro
fecha_modificacion datetime
Fecha que realizó la modificación, la primera vez se coloca el mismo que registro
estado char(1) Estado del Registro, A - Activo, E - Eliminado
Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira
Fuente: Base de Datos del Sistema Ares
CUADRO # 5 - Tabla OPCION
Campo Tipo/Dato Descripción
id_sg_opcion int Clave Primaria
nombre varchar(100) Nombre de la Opcion
id_sg_opcion_padre int Referencia al padre de la opcion.
id_sg_usuario_registro int Referencia a la tabla SG_Usuario que realizó el registro
fecha_registro datetime Fecha que se realizó el registro
id_sg_usuario_modificacion int
Referencia a la tabla SG_Usuario que realizó la modificación, la primera vez se coloca el mismo que registro
fecha_modificacion datetime
Fecha que realizó la modificación, la primera vez se coloca el mismo que registro
estado char(1) Estado del Registro, A - Activo, E - Eliminado
Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira
Fuente: Base de Datos del Sistema Ares
63
CUADRO # 6 - Tabla OPCION_ROL
Campo Tipo/Dato Descripción
id_sg_opcion_rol int Clave primaria
id_sg_opcion int Referencia a la tabla Sg_Opcion
id_sg_rol int Referencia a la tabla SG_Rol
id_sg_usuario_registro int Referencia a la tabla SG_Usuario que realizó el registro
fecha_registro datetime Fecha que se realizó el registro
id_sg_usuario_modificacion int
Referencia a la tabla SG_Usuario que realizó la modificación, la primera vez se coloca el mismo que registro
fecha_modificacion datetime
Fecha que realizó la modificación, la primera vez se coloca el mismo que registro
estado char(1) Estado del Registro, A - Activo, E - Eliminado
Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira
Fuente: Base de Datos del Sistema Ares
CUADRO # 7 - Tabla GRUPO_ROL
Campo Tipo/Dato Descripción
id_sg_grupo_rol int Clave Primaria
nombre varchar(50)
Nombre del Grupo Rol, actualmente DOCENTE, ESTUDIANTE, ADMINISTRATIVO, AUTORIDADES
id_sg_usuario_registro int Referencia a la tabla SG_Usuario que realizó el registro
fecha_registro datetime Fecha que se realizó el registro
id_sg_usuario_modificacion int
Referencia a la tabla SG_Usuario que realizó la modificación, la primera vez se coloca el mismo que registro
fecha_modificacion datetime
Fecha que realizó la modificación, la primera vez se coloca el mismo que registro
estado char(1) Estado del Registro, A - Activo, E - Eliminado
Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira
Fuente: Base de Datos del Sistema Ares
64
CUADRO # 8 - Tabla ROL
Campo Tipo/Dato Descripción
id_sg_rol int Clave Primaria
id_sg_grupo_rol int Referencia a la tabla SG_Grupo_Rol
nombre varchar(100) Nombre de los Roles
id_sg_usuario_registro int Referencia a la tabla SG_Usuario que realizó el registro
fecha_registro datetime Fecha que se realizó el registro
id_sg_usuario_modificacion int
Referencia a la tabla SG_Usuario que realizó la modificación, la primera vez se coloca el mismo que registro
fecha_modificacion datetime
Fecha que realizó la modificación, la primera vez se coloca el mismo que registro
estado char(1) Estado del Registro, A - Activo, E - Eliminado
Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira
Fuente: Base de Datos del Sistema Ares
CUADRO # 9 - Tabla USUARIO_ROL
Campo Tipo/Dato Descripción
id_sg_usuario_rol int Clave Primaria
id_sg_usuario int Referencia a la tabla SG_Usuario
id_sg_rol int Referencia a la tabla SG_Rol
id_sa_carrera int Referencia a la tabla SA_Carrera
id_sg_usuario_registro int Referencia a la tabla SG_Usuario que realizó el registro
fecha_registro datetime Fecha que se realizó el registro
id_sg_usuario_modificacion int
Referencia a la tabla SG_Usuario que realizó la modificación, la primera vez se coloca el mismo que registro
fecha_modificacion datetime
Fecha que realizó la modificación, la primera vez se coloca el mismo que registro
estado char(1) Estado del Registro, A - Activo, E - Eliminado
Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira
Fuente: Base de Datos del Sistema Ares
65
CUADRO # 10 - Tabla USUARIO_DATO
Campo Tipo/Dato Descripción
id_sg_usuario int Clave Primaria
nombres varchar(250) Nombre del Usuario Datos
apellidos varchar(250) Apellido Completo del Usuario
direccion varchar(250) Dirección del Usuario
telefono varchar(15) Teléfono
id_sa_parametro_estado_civil int
Referencia a la tabla SA_Parametro para especificar Estado Civíl
id_sa_parametro_sexo int
Referencia a la tabla SA_Parametro para especificar Sexo
id_sa_parametro_nacionalidad int
Referencia a la tabla SA_Parametro para especificar que Nacionalidad tiene
id_sa_parametro_pais int
Referencia a la tabla SA_Parametro para especificar de que País es
fecha_nacimiento date Fecha de nacimiento
nombre_padre varchar(250) Nombre completo del Padre
nombre_madre varchar(250) Nombre completo de la Madre
id_sa_parametro_tipo_sangre int
Referencia a la tabla SA_Parametro para especificar el Tipo de Sangre
estado char(1) Estado del Registro, A - Activo, E – Eliminado
correo_personal varchar(100) Correo personal, para enviar notificaciones
id_sg_usuario_registro int Usuario que realizó el ingreso
fecha_registro datetime Fecha de ingreso
id_sg_usuario_modifica int Usuario que modifica
fecha_modifica datetime Fecha de modificación
correo_institucional varchar(100) Correo de la institución, para enviar notificaciones
celular varchar(10) Celular personal del usuario
token_fb varchar(MAX) Token de la cuenta de Facebook
token_tw varchar(MAX) Token de la cuenta de Twitter
DirectorioFoto varchar(300) Ruta física de la foto Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira
Fuente: Base de Datos del Sistema Ares
66
GRÁFICO # 7 - Diagrama de tablas del esquema de seguridad
Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira
Fuente: Base de Datos del Sistema Ares
67
CRITERIOS DE VALIDACIÓN DE LA PROPUESTA
Juicio de Experto
Se analizaron los objetivos y alcances, con el PMP del proyecto y con el
equipo de desarrollo de la base de datos, del funcionamiento del sistema
para determinar el alcance del modelo de datos.
El PMP y el grupo de desarrollo queda con el conocimiento exacto del
alcance del sistema y se hace la propuesta de la estructura del esquema
futuro del modelo de datos.
Se establece reunión con el Scrum Master del equipo de Infraestructura,
donde se obtienen las direcciones ip de los servidores de desarrollo y
producción, aprobando el acceso y utilización de los mismos.
Se crea el esquema “Seguridad” donde estarán contenidas las tablas que
permitirán el ingreso de los usuarios con su contraseña, rol y opciones a
las que tendrá acceso.
La estructura de tablas con sus respectivas relaciones es validada y
aprobada por el equipo de base de datos.
Se define los procesos, con el Scrum Master del equipo de PHP, que se
ejecutará desde el front end para el uso del esquema de seguridad. Los
procesos son validados y aprobados como miembro líder del equipo de
base de datos.
Se establece comunicación con el equipo de JAVA para realizar la
respectiva solicitud de configuración de los procesos necesarios creados
en la base de datos, realizando respectivas pruebas hasta obtener
resultados positivos.
Se definen pruebas con el equipo de PHP sobre los procesos
configurados, obteniendo resultados de aprobación.
Mediante el análisis obtenido de los criterios mencionados anteriormente, se
concluye que el proceso de desarrollo y comunicación del sistema es viable.
Además se tiene la colaboración máxima y esperada por cada uno de los
integrantes del equipo de desarrollo permitiendo avanzar sin obstáculos en la
ejecución del proyecto.
68
CUADRO # 11 – Plan de Pruebas
ACTIVIDAD ESCENARIO RESULTADO ESPERADO
RESULTADO OBTENIDO
OBSERVACIONES
Ejecutar script de creación de las tablas
Creación de tablas
Ejecución de script sin errores
Proceso ejecutado correctamente
ok
Ejecutar script de inserción de datos
Inserción de datos
Inserción correcta de los datos
Proceso ejecutado correctamente
ok
Ejecución de proceso que valida si un usuario es correcto
Validación de usuario en la base de datos
Correcta validación del usuario
Se validó correctamente permitiendo la ejecución del siguiente proceso
ok
Verificación de proceso para devolver roles e información principal del usuario
Consulta correcta de los roles del usuario
Devolver correctamente los datos
Se envían los roles validos de los usuarios
ok
Ejecución de proceso para devolver las opciones disponibles de un usuario
Consulta correcta de las opciones del usuario
Devolver correctamente los datos
Se envían las opciones de un usuario de acuerdo a su rol
ok
69
Integración de todas las actividades por sprint Validación del funcionamiento correcto de todos los procesos ya unificados
Ningún proceso interfiera con la ejecución de otro, verificación del cumplimiento de los estándares establecidos
Correcto funcionamiento de las integraciones de todas las actividades que se realizaron por todo el equipo de base de datos.
ok
Elaboración: Cinthya Estefanía Rivadeneira Rivadeneira
Fuente: Análisis de Pruebas Posibles a Realizar
Herramienta de Análisis y Ubicación de la
Población – Muestra
La herramienta de análisis a utilizarse para conocer el impacto y la aceptación
del presente proyecto es realizada mediante una encuesta a una muestra de los
estudiantes de la Carrera de Ingeniería en Sistemas Computacionales por ser
personas que se encuentran en el ámbito de liderazgo y desarrollo de sistemas
informáticos razón por la cual tienen conocimientos de cómo se sentirían mejor
llevando a cabo la ejecución de un sistema; Por otra parte son quienes día a día
cumpliendo el rol de estudiantes conocen las funcionalidades que harían de un
sistema académico un mejor producto para ellos, teniendo características que
mediante la encuesta podremos confirmar su nivel de aceptación.
70
Análisis de encuesta
GRÁFICO # 8 – Pregunta 1 de Encuesta
Elaborado: Cinthya Estefania Rivadeneira Rivadeneira Fuente:https://es.surveymonkey.com/analyze/f35XksR1Q137VrpT34Pz
zoN0Cgnsy1wmxqKmFoRhIYY_3D
Resultado
Un 92.11% está de acuerdo con poseer un usuario y contraseña para acceder a
un sistema ya que de esta manera se sentirían más familiarizados con el
programa teniendo un perfil único donde podrán visualizar las opciones a las
cuales solamente tienen acceso.
71
GRÁFICO # 9 – Pregunta 2 de Encuesta
Elaborado: Cinthya Estefania Rivadeneira Rivadeneira Fuente:https://es.surveymonkey.com/analyze/f35XksR1Q137VrpT34Pz
zoN0Cgnsy1wmxqKmFoRhIYY_3D
Resultado:
Un 84.21% está interesado en un menú personalizado de acuerdo al rol que
posee ya que de esta manera podrían visualizar pocas opciones en su menú
principal y sería mas fácil realizar las acciones que desee desde el sistema.
72
GRÁFICO # 10 – Pregunta 3 de Encuesta
Elaborado: Cinthya Estefania Rivadeneira Rivadeneira Fuente:https://es.surveymonkey.com/analyze/f35XksR1Q137VrpT34Pzzo
N0Cgnsy1wmxqKmFoRhIYY_3D
Resultado:
Un 94.71% está total acuerdo que un sistema debe tener su privacidad de
opciones por seguridad del sistema y de los datos, ya que en el caso contrario
personas mal intencionadas podrían darse cuenta de las vulnerabilidades del
sistema analizando todas las opciones que el sistema posee, pudiendo sacando
provecho de esta situcación para cualquier beneficio que tuviere.
73
GRÁFICO # 11 – Pregunta 4 de Encuesta
Elaborado: Cinthya Estefania Rivadeneira Rivadeneira Fuente:https://es.surveymonkey.com/analyze/f35XksR1Q137VrpT34PzzoN0Cgnsy1wmxqKmFoRhIYY_3D
Resultado:
Un 71.05% está satisfecha con la rápida respuesta del sistema, ya que la
principal característica que un usuario espera de un programa es su rápida
ejecución ganando de esta manera tiempo.
74
GRÁFICO # 12 – Pregunta 5 de Encuesta
Elaborado: Cinthya Estefania Rivadeneira Rivadeneira Fuente:https://es.surveymonkey.com/analyze/f35XksR1Q137VrpT34PzzoN0Cgnsy1wmxqKmFoRhIYY_3D
Resultado:
Un 71.05% está de conciente que el correcto funcionamiento de un sistema
también depende de otros factores ajenos a la base de datos, ya que las
personas encuestadas trabajan en el ambito de sistemas y ven día a día los
factores que hacen posible la rapidez de un programa.
75
Resultado del análisis de la encuesta
Gracias al análisis de las preguntas de la encuesta y la mayoría de sus
respuestas esperadas, se llega a la conclusión de que el usuario está
completamente interesado en poseer un usuario personal para el ingreso a un
sistema, contar con un rol y sobre todo con un menú personalizado de acuerdo
al perfil que posee.
También se puede conocer la satisfacción por parte del usuario al aprobar el
tiempo de respuesta de las peticiones ejecutadas en la base de datos. Por otra
parte es importante conocer que el usuario que es usuario está totalmente de
acuerdo en que la rapidez y velocidad de respuesta de un programa depende de
más factores ajenos a la base de datos del sistema.
Dado que el proyecto se ha realizado en todo su alcance se puede dar el criterio
de ser altamente aceptado por los usuarios.
76
CAPÍTULO IV
CRITERIOS DE ACEPTACIÓN DEL PRODUCTO O SERVICIO
CUADRO # 12 – Listado de Sprint
SPRINT OBSERVACIONES NIVEL DE
CUMPLIMENTO
Sprint 0
ANÁLISIS DE
REQUERIMIENTOS
Y DISEÑO
Se realiza un análisis a los
requerimientos del Product Owner
definiendo los más importantes y se
procede con la creación del diseño de
las tablas para el modelo de datos.
100%
Sprint 1 Se realiza la creación de las tablas
diseñadas con la herramienta de diseño
del Sql Server, estableciendo las
relaciones necesarias entre las tablas y
demás características.
Tablas a crearse:
[Seguridad].[SG_Usuario]
[Seguridad].[SG_Rol] [Seguridad].[SG_Opcion] [Seguridad].[SG_Usuario_Rol] [Seguridad].[SG_Opcion_Rol] [Seguridad].[SG_Grupo_Rol] [Seguridad].[SG_Usuario_Dato]
Procedimientos almacenados:
[sp_Seguridad_Autenticacion] [dbo].[sp_Seguridad_Opciones_por_rol]
100%
CREACIÓN DE
OBJETOS EN LA
BASE DE DATOS
77
Sprint 2
ALIMENTACIÓN
DE LA BASE DE
DATOS CON
INFORMACIÓN
Se realiza los scripts de creación de
datos para realizar la respectiva
inserción de información en el sistema y
proceder con pruebas con datos reales. 100%
Sprint 3
CREACIÓN DE
PROCESOS
Se realiza la creación de los procesos
almacenados para realizar los
mantenimientos en las tablas de los
usuarios y los procesos que devolverán
la información solicitada por la capa de
presentación.
100%
Sprint 4 Se establecen casos de pruebas de los
procedimientos almacenados que han
sido creados y se realizan las
respectivas pruebas.
100% PRUEBAS DE
FUNCIONAMIENTO
Sprint 5 De acuerdo a las pruebas realizadas por
la tester principal se obtienes novedades
y se realizan las debidas modificaciones
y además se añade a la lista nuevos
requerimientos que son creados en la
base.
100%
APLICACIÓN DE
NUEVOS
REQUERIMIENTOS
O MEJORAS
Elaborado: Cinthya Estefania Rivadeneira Rivadeneira Fuente: Etapas de desarrollo del proyecto
Habiendo cumplido al 100% con los requerimientos solicitados y distribuidos en los seis sprints que se finalizaron, se obtienen muy buenos resultados de la aplicación de esta metodología, ya que en poco tiempo de desarrollo se ha logrado levantar gran parte del proyecto.
78
INFORME DE ACEPTACIÓN Y APROBACIÓN DEL PRODUCTO
Se certifica que una vez terminada la etapa de verificación y pruebas finales del
proyecto ESTUDIO DE FACTIBILIDAD PARA LA PROPUESTA
“FRAMEWORK DE TRABAJO PARA PROYECTOS DE TESIS APLICANDO LA
METODOLOGÍA SCRUM EN LA INGENIERÍA DE SOFTWARE” ENFOCADO
LA GESTIÓN DE USUARIOS DEL SISTEMA, los elementos verificados no
contienen errores.
Se encuentra creada la base de datos con sus respectivos requerimientos y
queda funcional en su totalidad, configurados los métodos de consulta y
procedimientos en el ambiente de la capa de comunicación quienes han
realizado las pruebas necesarias para demostrar su correcto funcionamiento,
Por otra parte se encuentra la capa de presentación quienes en sus pruebas
diarias han confirmado el correcto funcionamiento de los procesos que han sido
creados para el módulo de usuarios.
CUADRO # 13 – Criterio de Aceptación
Elaborado: Cinthya Estefania Rivadeneira Rivadeneira Fuente: Etapas de desarrollo del proyecto
Responsables
Firma
Scrum Master PHP
Sr. Juan Carlos Tamayo
Scrum Master Capa Comunicación
Sr. Hector Ortega González
Tester
Srta. Anabell Tingo
79
CONCLUSIONES Y RECOMENDACIONES
CONCLUSIONES
La aplicación de la metodología Scrum ha permitido concluir con el
desarrollo de este sistema de manera organizada y llena de compromiso,
logrando cumplir con lo planteado en un inicio y finalizando con éxito
cada fase de desarrollo.
El modelo de datos se encuentra funcional según lo propuesto, al igual
que los procesos que dependen del mismo.
Se han implementado estándares en el desarrollo para lograr el fácil
entendimiento del código fuente.
RECOMENDACIONES
Aprovechar los beneficios de esta metodología de desarrollo para poder
culminar el producto Ares y de acuerdo con sus resultados seguir
implementándolo en otros proyectos para la universidad.
Es necesario realizar capacitaciones a las personas que continúen con el
desarrollo de este sistema para que tengan conocimiento de los avances
y de las futuras ideas que se tiene para el mismo.
Seguir los estándares que se han implementado en el desarrollo para
mantener el orden y de ser necesario implementar nuevos que sirvan de
mejora para la arquitectura del sistema.
80
BIBLIOGRAFÍA
Wikispaces. (2012). Obtenido de Proceso de un SGBD para consultar
Datos: https://basedatosofimaticas.wikispaces.com/3+-
+Caracter%C3%ADsticas+de+los+Sistemas+Gestores+de+Bases+de+D
atos
Concepto de base de datos. (2015). Obtenido de
http://www.maestrosdelweb.com/que-son-las-bases-de-datos/)
Concepto de raster. (2015). Obtenido de http://www.ign.gob.ar/sig
Introducción a bases de datos. (2015). Recuperado el 11 de 2015, de
http://es.ccm.net/contents/66-introduccion-bases-de-datos
Metodología Scrum. (Julio de 2015). Obtenido de
https://platzi.com/blog/guia-scrum/
Date, C. (2015). Libro Introducción a los sistemas de base de datos. En
C. Date, Libro Introducción a los sistemas de base de datos (pág. 2).
Argentina: Pearson.
Date, C. (2015). Libro Introducción a Sistemas de Base de Datos. En C.
Date, Introducción a Sistemas de Base de Datos (pág. 15). Argentina:
Pearson.
EUMED. (2014). Tesis Doctorales. Obtenido de www.eumed.net/tesis-
doctorales/2014/jlcv/software.htm+&cd=3&hl=es-419&ct=clnk&gl=ec
geekytheory. (2015). www.geekytheory.com. Obtenido de
geekytheory.com/programacion-extrema-que-es-y-principios-
basicos/+&cd=2&hl=es-419&ct=clnk&gl=ec
Microsoft. (2012). Microsoft. Obtenido de
http://blogs.technet.com/b/ccaitpro/archive/2012/07/13/191-por-qu-233-
microsoft-sql-server-2012.aspx
Microsoft. (2015). Definición de base de datos. Obtenido de
https://technet.microsoft.com/es-es/sqlserver/ff898410
Proyectos Agiles (2015). Conceptos de Scrum
http://proyectosagiles.org/que-es-scrum/
Historia de las Bases de Datos. Bases de Datos
http://histinf.blogs.upv.es/2011/01/04/historia-de-las-bases-de-datos/
81
ANEXO # 1 – Encuesta
Modelado de datos para la gestión de usuarios
1. ¿Cuán importante, considera usted, la existencia de un nombre de usuario y contraseña para hacer uso de los beneficios de un sistema?
a. Muy importante b. Importante c. Poco Importante d. Nada Importante e. Indiferente
2. ¿Cuán importante, considera usted, la existencia de un menú personalizado de acuerdo al perfil que posea un usuario?
a. Muy importante a. Importante b. Poco Importante c. Nada Importante d. Indiferente
3. ¿Cree usted que atente con la seguridad del sistema y la integridad de los datos, mostrar en la capa de presentación todas las opciones disponibles en un sistema?
a. si b. no c. tal vez
4. ¿Qué tan rápida considera la respuesta de los procesos de la base de datos hacia la capa de presentación?
a. Muy rápida b. Rápida c. Lenta d. Muy Lenta
5. ¿Considera usted que el buen funcionamiento de un sistema depende únicamente del correcto modelamiento de datos?
a. si b. no c. tal vez
82
83
MANUAL
TÉCNICO
84
ESTRUCTURA DE LA BASE DE DATOS
Tablas
Cuadro #1. Descripción de tablas de la Base de Datos
N° Tabla Contenido
1 SG_Usuario Se registran los nombres de los usuarios con su
respectiva contraseña.
2 SG_Rol Se almacenan los diferentes roles que puede poseer un
usuario.
3 SG_Opcion Se almacenan las opciones a las que podrá acceder un
usuario de acuerdo al rol.
4 SG_Opcion_Rol Se registra la relación entre el rol y las opciones para
permitir el acceso a las opciones únicamente por el rol.
5 SG_Usuario_Rol Se registra la relación entre el usuario y los roles para
permitir diferentes perfiles a un usuario.
6 SG_Grupo_Rol Se registra los grupos de roles para agrupar cada rol.
7 SG_Usuario_Dato Se registran los datos generales de los usuarios.
Elaboración: Cinthya Rivadeneira Fuente: Cinthya Rivadeneira
85
Cuadro #2. SG_Usuario
Núm. Nombre campo Atributo Long Descripción
1 id_sg_usuario int 4 Clave Primaria
2 usuario
varchar(
15) 15 Usuario del Sistema
3 contrasena
varchar(
100) 100
Contraseña del Usuario, la
primera vez es el mismo usuario
4
id_sg_usuario_regist
ro int 4
Referencia a la tabla
SG_Usuario que realizo el
registro
5 fecha_registro datetime 8 Fecha que se realizó el registro
6
id_sg_usuario_modif
icacion int 4
Referencia a la tabla
SG_Usuario que realizo la
modificación, la primera vez se
coloca el mismo que registro
7 fecha_modificacion datetime 8
Fecha que realizo la
modificación, la primera vez se
coloca el mismo que registro
8 estado char(1) 1
Estado del Registro, A - Activo,
E – Eliminado
Elaboración: Cinthya Rivadeneira Fuente: Cinthya Rivadeneira
86
Cuadro #3. SG_Rol
Núm. Nombre Campo Atributo Long Descripción
1 id_sg_rol int 4 Clave Primaria
2 id_sg_grupo_rol int 4
Referencia a la tabla
SG_Grupo_Rol
3 nombre varchar(100) 100 Nombre de los Roles
4 id_sg_usuario_registro int 4
Referencia a la tabla
SG_Usuario que
realizó el registro
5 fecha_registro datetime 8
Fecha que se realizó
el registro
6 id_sg_usuario_modificacion int 4
Referencia a la tabla
SG_Usuario que
realizó la
modificación, la
primera vez se coloca
el mismo que registro
7 fecha_modificacion datetime 8
Fecha que realizó la
modificación, la
primera vez se coloca
el mismo que registro
8 estado char(1) 1
Estado del Registro,
A - Activo, E –
Eliminado
Elaboración: Cinthya Rivadeneira Fuente: Cinthya Rivadeneira
87
Cuadro #4. SG_Opcion
Núm. Nombre Campo Atributo Long Descripción
1 id_sg_opcion int 4 Clave Primaria
2 nombre varchar(100) 100 Nombre de la Opción
3
id_sg_opcion_pa
dre int 4
Referencia al padre de la
opción.
4
id_sg_usuario_re
gistro int 4
Referencia a la tabla
SG_Usuario que realizó el
registro
5 fecha_registro datetime 8 Fecha que se realizó el registro
6
id_sg_usuario_m
odificacion int 4
Referencia a la tabla
SG_Usuario que realizó la
modificación, la primera vez se
coloca el mismo que registro
7
fecha_modificaci
on datetime 8
Fecha que realizó la
modificación, la primera vez se
coloca el mismo que registro
8 estado char(1) 1
Estado del Registro, A - Activo,
E – Eliminado
9 opcion varchar(100) 100
Campo de descripción de la
opción para ser reconocida
desde la capa de presentación
Elaboración: Cinthya Rivadeneira Fuente: Cinthya Rivadeneira
88
Cuadro #5. SG_Opcion_Rol
Núm. Nombre Campo Atributo Long Descripción
1 id_sg_opcion_rol int 4 Clave primaria
2 id_sg_opcion int 4
Referencia a la tabla
Sg_Opcion
3 id_sg_rol int 4
Referencia a la tabla
SG_Rol
4 id_sg_usuario_registro int 4
Referencia a la tabla
SG_Usuario que realizó el
registro
5 fecha_registro datetime 8
Fecha que se realizó el
registro
6 id_sg_usuario_modificacion int 4
Referencia a la tabla
SG_Usuario que realizó la
modificación, la primera
vez se coloca el mismo
que registro
7 fecha_modificacion datetime 8
Fecha que realizó la
modificación, la primera
vez se coloca el mismo
que registro
8 estado char(1) 1
Estado del Registro, A -
Activo, E – Eliminado
Elaboración: Cinthya Rivadeneira Fuente: Cinthya Rivadeneira
89
Cuadro #6. SG_Usuario_Rol
Núm. Nombre Campo Atributo Long Descripción
1 id_sg_usuario_rol int 4 Clave Primaria
2 id_sg_usuario int 4
Referencia a la tabla
SG_Usuario
3 id_sg_rol int 4
Referencia a la tabla
SG_Rol
4 id_sa_carrera int 4
Referencia a la tabla
SA_Carrera
5 id_sg_usuario_registro int 4
Referencia a la tabla
SG_Usuario que
realizó el registro
6 fecha_registro datetime 8
Fecha que se realizó el
registro
7 id_sg_usuario_modificacion int 4
Referencia a la tabla
SG_Usuario que
realizó la modificación,
la primera vez se
coloca el mismo que
registro
8 fecha_modificacion datetime 8
Fecha que realizó la
modificación, la
primera vez se coloca
el mismo que registro
9 Estado char(1) 1
Estado del Registro, A
- Activo, E – Eliminado
Elaboración: Cinthya Rivadeneira Fuente: Cinthya Rivadeneira
90
Cuadro #7. SG_Grupo_Rol
Elaboración: Cinthya Rivadeneira Fuente: Cinthya Rivadeneira
Núm. Nombre Campo Atributo Long Descripción
1 id_sg_grupo_rol int 4 Clave Primaria
2 nombre varchar(50) 50
Nombre del Grupo
Rol, actualmente
DOCENTE,
ESTUDIANTE,
ADMINISTRATIVO,
AUTORIDADES
3 id_sg_usuario_registro int 4
Referencia a la tabla
SG_Usuario que
realizó el registro
4 fecha_registro datetime 8
Fecha que se realizó
el registro
5 id_sg_usuario_modificacion int 4
Referencia a la tabla
SG_Usuario que
realizó la
modificación, la
primera vez se
coloca el mismo que
registro
6 fecha_modificacion datetime 8
Fecha que realizó la
modificación, la
primera vez se
coloca el mismo que
registro
7 estado char(1) 1
Estado del Registro,
A - Activo, E -
Eliminado
91
Cuadro #8. SG_Usuario_Dato
Núm. Nombre Campo Atributo Long Descripción
1 id_sg_usuario int 4 Clave Primaria
2 nombres varchar(250) 250
Nombre del
Usuario Datos
3 apellidos varchar(250) 250
Apellido Completo
del Usuario
4 direccion varchar(250) 250
Dirección del
estudiante
5 telefono varchar(15) 15 Teléfono
6 id_sa_parametro_estado_civil int 4
Referencia a la
tabla
SA_Parametro
para especificar
Estado Civil
7 id_sa_parametro_sexo int 4
Referencia a la
tabla
SA_Parametro
para especificar
Sexo
8 id_sa_parametro_nacionalidad int 4
Referencia a la
tabla
SA_Parametro
para especificar
que Nacionalidad
tiene
9 id_sa_parametro_pais int 4
Referencia a la
tabla
SA_Parametro
para especificar
qué País es
10 fecha_nacimiento date 3
Fecha de
nacimiento
11 nombre_padre varchar(250) 250
Nombre completo
del Padre
12 nombre_madre varchar(250) 250
Nombre completo
de la Madre
92
13 id_sa_parametro_tipo_sangre int 4
Referencia a la
tabla
SA_Parametro
para especificar el
Tipo de Sangre
14 estado char(1) 1
Estado del
Registro, A -
Activo, E –
Eliminado
15 correo_personal varchar(100) 100
Mail se sirve para
reportar
16 id_sg_usuario_registro int 4
Usuario de
ingreso
17 fecha_registro datetime 8 Fecha de registro
18 id_sg_usuario_modifica int 4
Usuario que
realizó la
modificación
19 fecha_modifica datetime 8
Fecha
modificación del
registro
20 correo_institucional varchar(100) 100
Correo de la
institución
21 celular varchar(10) 10
Celular personal
del usuario
22 token_fb varchar(MAX) -1
Token de la
cuenta de
23 token_tw varchar(MAX) -1
Token de la
cuenta de Twitter
24 DirectorioFoto varchar(300) 300
Dirección del
repositorio de la
foto de perfil del
usuario
Elaboración: Cinthya Rivadeneira Fuente: Cinthya Rivadeneira
93
Procedimientos Almacenados Cuadro # 9. Procedimiento sp_Seguridad_Autenticacion
Nombre: sp_Seguridad_Autenticacion
Descripción: Procedimiento almacenado para devolver los
Roles de un usuario y otros datos generales
de la persona.
Fecha Creación: 1 de Septiembre del 2015
Fecha Última
Modificación:
6 de Octubre del 2015
DESCRIPCIÓN DE ENTRADA
No. Nombre Descripción
1 @px_xml Contiene el nombre del usuario y contraseña para validarlas.
@PX_SALIDA XML @PI_ESTADO INT @PV_MENSAJE VARCHAR(MAX) @PV_CODTRANS VARCHAR(MAX) @PV_MENSAJE_TECNICO VARCHAR(MAX)
@px_xml XML
sp_Seguridad_Autenticacion
Seguridad.SG_Usuario
Seguridad.SG_Usuario_Rol
Seguridad.SG_Rol
Seguridad.SG_Usuario_Dato
Academico.SA_Carrera
94
DESCRIPCIÓN DE SALIDAS
No. Nombre Descripción
1 @PX_SALIDA Devuelve los datos de la consulta
2 @PI_ESTADO Devuelve si el registro se realizó con
éxito o no
3 @PV_MENSAJE Mensaje de la tabla SA_Error.
4 @PV_CODTRANS Código de la tabla SA_Error.
5 @PV_MENSAJE_TECNICO Mensaje técnico de la base de datos en
caso de un error no controlado.
Cuadro # 10. Procedimiento sp_Seguridad_Opciones_por_rol
Nombre: sp_Seguridad_Opciones_por_rol
Descripción: Procedimiento almacenado para devolver las
opciones de un usuario de acuerdo al rol
consultado.
Fecha Creación: 10 de Septiembre del 2015
Fecha Ultima
Modificación:
16 de Octubre del 2015
@PX_SALIDA XML @PI_ESTADO INT @PV_MENSAJE VARCHAR(MAX) @PV_CODTRANS VARCHAR(MAX) @PV_MENSAJE_TECNICO VARCHAR(MAX)
@PI_id_usuario INT @PI_rol INT
sp_Seguridad_Opcion
es_por_rol
Seguridad.SG_Opcion_Rol
Seguridad.SG_Opcion
Seguridad.SG_Rol
Seguridad.SG_Usuario_Rol
Seguridad.SG_Usuario
95
DESCRIPCIÓN DE ENTRADA
No. Nombre Descripción
1 @PI_id_usuario Contiene el nombre del usuario y contraseña para validarlas.
2 PI_rol Contiene el rol que será consultado.
DESCRIPCIÓN DE SALIDAS
No. Nombre Descripción
1 @PX_SALIDA Devuelve los datos de la consulta
2 @PI_ESTADO Devuelve si el registro se realizó con
éxito o no
3 @PV_MENSAJE Mensaje de la tabla SA_Error.
4 @PV_CODTRANS Código de la tabla SA_Error.
5 @PV_MENSAJE_TECNICO Mensaje técnico de la base de datos en
caso de un error no controlado.