Bases De Datos I Integrantes: Oscar Ramos Andrés Atapuma 1
1. NOMBRE DEL PROYECTO POWER GYM
2. INTRODUCION Las empresas o entidades que cuentan con una infraestructura bien definida tienen mayor probabilidad de satisfacer los requerimientos de los clientes, si la entidad cumple este objetivo, como consecuencia tendrá un posicionamiento alto en el mercado y sus ingresos aumentaran. La seguridad de la información es una característica muy importante que puede diferenciar a una entidad de otra. Una vez que la entidad se encuentra posicionada en el mercado es importante que los administradores de las bases de datos optimicen el funcionamiento de la aplicación mediante procesos de transacciones. Este documento detalla la creación de un sistema para un gimnasio donde se controla las rutinas personalizadas. El software tiene que estar compuesto por varias técnicas como son control de concurrencia, control de acceso, procedimientos almacenados y optimización de consultas. El manejo de este software va hacer flexible tal para el cliente como también para los empleados que trabajan en dicha entidad.
2.1 PROBLEMA POWER GYM es una entidad donde actividad física que guía al usuario a cumplir los objetivos físicos personales. Tiene varias sucursales en el país, en todas se realiza el mismo procedimiento con los clientes. El gerente ha observado que ha aumentado considerablemente los clientes y que la organización del gimnasio y de las sucursales no es la correcta, por lo cual se ve en la necesidad de adquirir un sistema que realice de manera efectiva varias transacciones a la vez, sin que la información deje de ser confiable adema que todos los empleados tengan privilegios específicos de acuerdo a su cargo.
2.3 JUSTIFICACION El presente proyecto, tiene como fin diseñar un modelo de datos con documentación técnica y procedimientos óptimos que defina la estructura de los datos del sistema, gestión de transacciones, seguridad de la información y varias técnicas más, las que permitirán organizar, controlar y respaldar la información de POWER GYM empleando conocimientos de ingeniería.
2
3. OBJETIVOS DEL PROYECTO a. Objetivos generales del proyecto Implementar una base de datos para un sistema en un gimnasio y las diferentes sucursales, el cual garantice la información de la entidad y controle la concurrencia aplicando técnicas de ingeniería.
b. Objetivos específicos del proyecto
Elaborar los esquemas pertinentes al diseño conceptual, lógico y físico mediante herramientas de diseño de software.
Crear la base de datos utilizando el DBMS SQL Management Studio
Crear procedimientos almacenados que optimicen las consultas en la entidad POWER GYM.
Implementar procedimientos almacenados que optimicen el proceso de las transacciones, manteniendo en con estado consistente la información
4. ALCANCE Y LIMITACIONES DEL SISTEMA c. Alcances El alcance del proyecto se limita al proceso de desarrollo del diseño de la base de datos, dentro del proyecto POWERGYM, pero que puede aplicarse a la vida real. El proyecto no presentara una interfaz GUI programada y desarrollada para el usuario final, pero se integran los datos al DBMS SQL server 2012 para procesar transacciones a nivel de sentencias SQL, DDL, Y DML. La propuesta de este proyecto deja base de una arquitectura cliente servidor que también debe tener un escenario web que maneje perfiles de usuarios para la gestión de pedidos, envíos, facturaciones, devoluciones, pagos de productos.
d. Limitaciones El proyecto se limita a una interfaz gráfica común pero en cierta forma no es aplicable a la web, cabe indicar el respectivo programa tiene una limitación para
3
conectarse a una alguna aplicación móvil para que puedan usar los clientes de una forma más interactiva.
5. SELECCIÓN DE METODOLOGÍA Y HERRAMIENTAS HERRAMIENTAS DE DESARROLLO e. Metodología El proyecto se desarrallo mediante lo aprendido en Programación I y con la respectivo DBMS el SQL Server, luego de un análisis y planificación correspondiente se implementara Scrum. -
Procedimientos Almacenados
-
Control de acceso
-
Control de concurrencia
-
Algebra relacional
-
Normalización hasta 3FN4 DISEÑO CONCEPTUAL
f. Base de datos A continuación continuación se especifica especifica las herramienta herramientass que se utilizó: - La Herramienta Case (Dezing) - El DBMS (SQL Server 2012) - Draw.io -SyBase Power Design
g. Lenguaje de programación El proyecto se desarrolló en C# donde el respectivo programa está compuesto de las capa de presentación, capa negocio, capa de datos en las diferentes capas se elabora para poder ingresar de una manera más interactiva los clientes nuevos.
6. ANÁLISIS DE COSTOS h. Software - El DBMS (SQL Server 2014) - Windows 8 y Windows 7 - MICROSOFT VISUALE C++ 2012 - Las Herramientas de Microsoft (Power Point y Word) - Draw.io -SyBase Power Design
4
i. Hardware - Impresora - 3 computadoras portátiles - 2 Flash Memory de 8 GB - 1 disco duro externo (100 GB) -
Internet
-
Libros (Biblioteca)
j. Humano 2 Personas integrantes del equipo
7. CRONOGRAMA EN PROJECT Activi dad
Pri mer mes Segundo mes
Tercer mes Cuarto mes Quinto mes Sexto mes
Selección de proyecto a desarrollar Diseño de la extructura del proyecto Instalacion de software y materiales Programacion Diseño del modelado Extructuracion Extructuracion de l a base de datos Prueba de la interfaz Prueba de conexión base de datos Pruebas de funcionamiento Elaboracion procedures,vistas Verificacion con consultas
Fase 2. Documento de análisis de requerimientos y diseño preliminar 1. Nombre del proyecto Sistema POWER GYM
2. Análisis de requerimientos Sistema POWER GYM
Características del Usuario A continuación se describen los tipos de usuario que utilizará POWER GYM para GYM para su entrenamiento diario y recuperación física, además del entrenador y médico asesor en dichos procesos: Características de Usuario
Características del usuario
Usuario de Gimnasio 5
El usuario de gimnasio, incluye a los hombres y mujeres entre los 14 y 60 años que sean usuarios frecuentes de gimnasio y/o que realicen actividad física regularmente. Deben tener acceso a dispositivos móviles o computador.
Descripción
Actividades
Registro, inicio de sesión, Consultar rutinas, ejercicios, listas de reproducción de música,
Experiencia
Tener un breve que servicios da el gymnasio
Frecuencia de Uso
Frecuente
Características del usuario
Entrenador o Médico Entrenador o médico de gimnasio. Incluye hombres y mujeres entre 23 y 60 años. Profesionales o especializados en las ciencias del deporte y tratamiento de lesiones. Registro, inicio de sesión, creación de rutinas, ingreso de nuevos ejercicios al sistema, verificación de rutinas generadas por el sistema.
Usuario: Características
Descripción
Actividades
Experiencia
Tener conocimiento en el manejo de computadores y navegadores de internet.
Frecuencia de Uso
Frecuente
Restricciones Las restricciones sobre los diferentes aspectos de desarrollo del proyecto y que directamente influyen en el proceso de implementación son: Restricciones
Tipo de Restricción Requisitos de lenguaje
Cliente
Restricciones
El sistema va a estar desarrollado en el idioma español principalmente, ya que va a ser lanzado en la ciudad de Quito.
El producto debe ser entregado en las fechas especificadas. especificadas. El producto debe contar con las funciones especificadas inicialmente.
6
Interfaz de usuario
Lenguaje de Programación
Legales
Persistencia
Sistema operativo
Se espera que la interfaz sea consistente y fácil de usar para los usuarios, que sea amigable y no presente errores de ningún tipo.
La plataforma se elaboró en C# y la interfaz es muy amigable El software empleado para el desarrollo de este proyecto será en su mayoría de software propietario. Todo el contenido del proyecto será de propiedad de los estudiantes Oscar Ramos y Santiago Atapuma Toda la información será persistida en el sistema de almacenamiento SQL SERVER 2014. El sistema operativo para la plataforma web será Windows 7 o Windows 8
2.1 PLAN DE MANEJO DE REQUERIMIENTOS REQUERIMIENTOS Este Plan de Manejo de Requerimientos describe los procesos realizados para la captura, clasificación, control, priorización y trazabilidad de los requerimientos funcionales funcionales y no funcionales del sistema.
2.2 Levantamiento de Requerimientos
En las siguientes secciones del presente plan se detallará el proceso de levantamiento de requerimientos realizado en las instalaciones de la Sede UDLAPARK, teniendo en cuenta los implementos deportivos disponibles en éste lugar. Requerimientos Funcionales
Para la captura de los requerimientos funcionales del sistema POWER GYM, GYM, se realizaron 3 reuniones dentro de las instalaciones de la Sede UDLAPARK. Igualmente, se hicieron varias visitas y revisiones a los equipos, máquinas y demás implementos deportivos disponibles en este gimnasio. En cada una de las reuniones se definieron las funcionalidades más relevantes a desarrollar en el prototipo, las lesiones a tratar y los implementos deportivos (máquinas (máquinas y equipamiento) que serán incluidos en el mismo. De igual manera, se realizó la definición de las rutinas de ejercicios para usuarios nivel básico (Acondicionamiento), intermedio (Fortalecimiento, Tonificación) y avanzado (Hipertrofia, Fortalecimiento). Fortalecimiento). Requerimientos No Funcionales
Los requerimientos no funcionales se tomaron a partir de las observaciones hechas durante las reuniones, se discutieron durante las reuniones y se tomaron en cuenta partiendo de las funcionalidades que el sistema debe tener para su confiabilidad, disponibilidad y demás criterios no funcionales que se deben tomar en cuenta para el desarrollo de la aplicación. 7
Verificación y Validación de Requerimientos
Se hizo un estudio inicial de las funcionalidades que podría tener el sistema, partiendo de las necesidades del contexto de trabajo y del alcance esperado de la misma. Teniendo como base esto, se realizó el levantamiento de requerimientos, por medio del proceso descrito anteriormente en este mismo documento. De allí el estudiante Oscar Ramos, realizó una primera versión de los requerimientos funcionales y no funcionales que tendría la aplicación. En 2 reuniones hechas con la directora del trabajo de grado, la Ing. Pablo Guerra, se hicieron revisiones de requerimientos, descartando los requerimientos redundantes y especificando con mayor detalle y claridad los requerimientos definitivos. En cada uno de ellos se incluyó su descripción y verificación, la cual se realiza durante el desarrollo, la ejecución y prueba de funcionalidad de la aplicación.
Tipos de Requerimientos A continuación encontramos los tipos de requerimientos que se encuentran en la aplicación: Clasificación de los Requerimientos
CLASIFICACION DE LOS REQUERIMIENTOS Sesión de usuario CRUD Perfil REQUERIMIENTOS FUNCIONALES Consultas de datos Cuenta administrador Servicios POWER GYM Rendimiento Disponibilidad Seguridad Portabilidad REQUERIMIENTOS NO FUNCIONALES Escalabilidad Modificabilidad Extensibilidad
Atributos de los Requerimientos Para la especificación especificación de los requerimientos funcionales, se utilizó la siguiente información: ID Req: Identificador Req: Identificador único de los requerimientos funcionales funcionales (Ejemplo: RF-1). Fecha de Creación: Creación: Especifica la fecha en la cual fue creado o modificado el requerimiento. Tipo Usuario: Representa el o los usuarios que tienen relación con el requerimiento funcional definido. ID Caso de Uso: Representa Uso: Representa el caso de uso asociado a cada requerimiento funcional. Nombre: Representa una breve explicación del requerimiento.
8
Estado: Es una descripción del estado actual del requerimiento el cual puede ser: Especificado, Diseñado, Implementado o Verificado, los cuales serán detallados más adelante. Prioridad: Es la importancia que tiene la elaboración de dado requerimiento para el sistema y para los stakeholders, medida en alta, media o baja. Descripción: Es una explicación detallada sobre el requerimiento que se debe elaborar. Verificación: Representa Verificación: Representa la forma en la cual se puede verificar el correcto funcionamiento del requerimientos y como se verá durante el uso de la aplicación. Versión: Numero asociado al control de versiones de los requerimientos.
Para los requerimientos no funcionales, su información es: ID Req: Identificador Req: Identificador único de los requerimientos funcionales funcionales (Ejemplo: RNF-1). Tipo: Representa el tipo de no funcionalidad o atributo de calidad a evaluar con el requerimiento. Fecha de Creación: Creación: Especifica la fecha en la cual fue creado o modificado el requerimiento. Nombre: Representa una breve explicación del requerimiento. Estado: Es una descripción del estado actual del requerimiento el cual puede ser: Especificado, Diseñado, Implementado o Verificado, los cuales serán detallados más adelante. Prioridad: Es la importancia que tiene la elaboración de dado requerimiento para el sistema y para los stakeholders, medida en alta, media o baja. Descripción: Es una explicación detallada sobre el requerimiento que se debe elaborar. Verificación: Representa Verificación: Representa la forma en la cual se puede verificar el correcto funcionamiento del requerimientos y como se verá durante el uso de la aplicación. Versión: Numero asociado al control de versiones de los requerimientos.
Mecanismo de Control de Estado de los Requerimientos Para llevar un control del estado de los requerimientos funcionales funcionales y no funcionales del sistema, el cual permita tener una perspectiva del avance del proyecto y control sobre el proceso, se definieron 4 categorías como se muestran a continuación: Control de Estado de Requerimientos
ESTADO Especificado
DESCRIPCIÓN
Diseñado Implementado
Requerimiento especificado especificado por los stakeholders. Requerimiento en una etapa de diseño, sin implementación Requerimiento implementado, implementado, pero no se ha probado aún.
Verificado
Requerimiento implementado y probado satisfactoriamente.
9
Mecanismo de priorización de los requerimientos
La priorización de requerimientos funcionales y no funcionales del sistema, fue determinada durante las reuniones de levantamiento de requerimientos r equerimientos y con los criterios de categorización de requerimientos definida por los estándares seguidos y el estudiante Oscar Ramos Los criterios que se tuvieron en cuenta para determinar la prioridad de los requerimientos funcionales fueron: Importancia dentro de la funcionalidad de la aplicación. Impacto en el desarrollo del prototipo. Esfuerzo de implementación. Los criterios que se tuvieron en cuenta para determinar la prioridad de los requerimientos no funcionales fueron: Importancia dentro de la funcionalidad de la aplicación. Riesgo para la arquitectura. De esta manera se determinó que cada requerimiento se debía clasificar dentro de las siguientes prioridades: Priorización de Requerimientos
PRIORIDAD
DESCRIPCIÓN Requerimiento indispensable indispensable para uno o más stakeholders. Debe incluirse en versiones tempranas del producto para no afectar el desarrollo general del prototipo. No es indispensable para el desarrollo general del proyecto, pero brinda funcionalidades importantes y puede afectar la satisfacción de algún stakeholder.
Alta
Media
No es indispensable su desarrollo. No genera mayor impacto en el desarrollo del prototipo y no afecta a los stakeholder.
Baja
Trazabilidad
Para el control de la trazabilidad durante el análisis, el diseño, la implementación y las pruebas del proyecto, se decide utilizar las siguientes plantillas: Requerimientos Funcionales
Trazabilidad Requerimientos Funcionales
REQUERIMIENTO
CASO(S) DE USO ASOCIADO(S)
COMPONENTE(S) ARQUITECTURAL(ES) ASOCIADO(S)
CASO(S) DE PRUEBA ASOCIADO(S)
10
Requerimientos No Funcionales
REQUERIMIENTO
ELEMENTO(S) DE DISEÑO ASOCIADO(S)
ESCENARIO(S) DE CALIDAD
Trazabilidad Requerimientos No Funcionales
2.3 REQUERIMIENTOS ESPECIFICOS
2.3.1 Requerimientos Funcionales
Se especifican y detallan en el documento de especificación de requerimientos adjunto.
2.3.2 Requerimientos No Funcionales
Se especifican y detallan en el documento de especificación de requerimientos adjunto.
2.4 ANÁLISIS DEL SISTEMA - MODELO DE DOMINIO A continuación se detallará el sistema POWER GYM, por medio de la representación de sus componentes y relaciones que lo conforman. Se muestra el flujo de negocio, resaltando los servicios que ofrece y los recursos necesarios para satisfacerlos.
2.4.1 Modelo de Dominio
El Modelo de Dominio del sistema POWER GYM se detalla en el ANEXO 1 – MODELO MODELO DEL POWER GYM .
2.4.2 Documentación Modelo de Dominio
A continuación se presenta una breve descripción de los componentes incluidos en el diagrama del mundo y que será importante tener en cuenta para comprender el funcionamiento del sistema: POWER GYM: Es el sistema base del proyecto. Es el encargado de proveer los servicios personalizados a los usuarios de gimnasio con base en el conocimiento del mismo, sus características, gustos y preferencias representados por un Perfil Usuario. Además, es el encargado de la interacción entre los diferentes servicios con el fin de articularlos y así enriquecer cada uno y proveerle al cliente una mejor solución. El sistema ofrece 3 servicios a los usuarios de gimnasio y entrenadores. Igualmente, se divide en 3 modelos, teniendo en cuenta el contexto de entrenamiento, el gimnasio y el usuario final. Finalmente, el sistema tiene 2 tipos de usuario inicialmente, los cuales se definen en TipoUsuario y se dividen en: UsuarioGym: es el usuario de gimnasio regular y/o usuario de la aplicación móvil para ejercicios, que se registra e ingresa al sistema y tiene acceso a los servicios principales del mismo. UsuarioEntrenador/Médico: es el profesional del ejercicio o profesional de la salud que tiene acceso al sistema para verificación de rutinas, creación de rutinas y 11
ejercicios, registro e ingreso al sistema y seguimiento de lesiones y restricciones médicas. Servicio: Detalla los servicios que ofrece POWER GYM, GYM, los cuales son: Modulo Entrenador : El sistema se encargada de proporcionar al usuario Entrenador acceso a las funcionalidades dentro del sistema, de las cuales puede hacer uso, como lo son: Registro, Verificación de Rutinas Generadas, Seguimiento a usuarios asociados, Creación de Rutinas (crea RUTINA) y Creación de ejercicios. Éste módulo lo usan PROFESIONAL SALUD y PROFESIONAL EJERCICIO. Tiene los siguientes atributos: Atributos Módulo Entrenador
Nombre nombreEntrenador contraseñaEntrenador contraseñaEntrenador verificacionEntrenador
Descripción Nombre del entrenador dentro del sistema Clave de ingreso e identificación identificación del entrenador en el sistema Casilla de verificación de las rutinas asociadas de sus usuarios por parte del entrenador
En el módulo entrenador se puede verificar: Atributos Rutinas Generadas
Rutina Generada Descripción Nombre de la rutina generada por la aplicación y que verifica el entrenador
Nombre nombreRutina
Atributos Seguimiento por Usuario
Nombre usuarioAsociado
SeguimientoXUsuario Descripción Identificador del usuario asociado al entrenador y al cual se le hará el seguimiento a su evolución física y entrenamientos
RUTINA: Servicio que genera la rutina para el usuario de gimnasio, partiendo de sus
características físicas (rutinas generales asociadas a un grupo muscular), de su objetivo físico y de sus restricciones médicas. Igualmente, este servicio lo puede realizar el entrenador desde su plataforma web y puede generarse a partir de la identificación de elementos (máquinas) del gimnasio a través de código QR [14] [14] o de su ubicación y elementos deportivos disponibles.
Lista Reproducción Música: Servicio de reproducción de música en el sistema. Permite
conectarse al reproductor del dispositivo o a aplicaciones de reproducción de música, con las cuales el usuario puede crear y reproducir a partir de su tipo de entrenamiento y permitiendo adaptarse al mismo, teniendo en cuenta las preferencias del usuario.
12
Atributos Tipo Entrenamiento
Nombre TipoEntrene
TipoEntrenamiento Descripción Nombre del tipo de entrenamiento asociado a las rutinas r utinas y ejercicios que realiza el usuario, con la música asociada al mismo.
Modelo: El sistema POWER GYM está GYM está compuesto por 3 modelos, los cuales permiten identificar las características que ayudan a obtener la información, procesarla y realizar los servicios que ofrece el sistema. Los modelos son: Perfil Gimnasio: Modelo donde se representan los componentes incluidos dentro de las instalaciones y demás elementos de un gimnasio. El perfil de Gimnasio tiene: instalaciones, Horarios, Servicios y Personal (puede ser personal del gimnasio, profesional de la salud o profesional del ejercicio) Tabla 1 - Atributos Equipamiento
Nombre tipoEquipamiento
codigoQR
Equipamiento Descripción Nombre del tipo de equipamiento que se encuentra disponible en el gimnasio. Puede ser máquina o equipamiento para ejercicio específico. Código QR identificador de la máquina del gimnasio. Este ofrece información detallada de la máquina y el (los) ejercicio(s) que se pueden realizar en él.
Perfil Contexto: Modelo donde se representa el lugar de entrenamiento del usuario,
diferente a las instalaciones del gimnasio. Este perfil tiene en cuenta si el usuario se encuentra en su casa u otra ubicación y en la cual desea realizar una rutina de ejercicios. Se tiene en cuenta: Atributos Lugar Entrenamiento
Nombre ubicación
Lugar Entrenamiento Descripción Ubicación del usuario y en donde desea realizar un entrenamiento.
Perfil Usuario: El modelo más importante dentro del sistema, junto con el servicio
RUTINA, con el cual está asociado. En este modelo se entiende como Usuario de Gimnasio a la persona que asiste regularmente a las instalaciones de entrenamiento más usadas para tal fin [33] y/o [33] y/o personas que pueden presentar restricciones médicas y requieran un tratamiento especial para las mismas. mismas . Teniendo en cuenta esto, este perfil permite generar mayor conocimiento de los usuarios y/o pacientes del gimnasio y obtiene la información de los mismos, partiendo de sus características físicas, Objetivos, Preferencias y Restricciones Médicas
13
3. Diseño preliminar a. Diseño de interfaces i. Diagrama de flujo
b. Diseño de base de datos
14
i.
Diseño del modelo E-R
ii.
Diseño del modelo relacional
15
Fase 3. Prototipo 1: Interfaces y base de dato 1. Interfaces visuales de la aplicación, aplicación, sin funcionalidad aún. 2. Diseño de la base de datos en un SGBD.
16
Fase 4. Prototipo 2: Conexión del front-end con el back-end 1. Interfaces visuales de la aplicación funcionales
17
18
19
2. Conexión a la base de datos, consulta, inserción, actualización, eliminación. Base de datos con sus respectivas r espectivas tablas
20
21
3. Manual de uso del sistema.
EntidadMesoTipo
22
EntidadDieta
23
EntidadRutina
24
EntidadEntrenador
EntrenadorPaquete
25
EntidadMaquinasPesos
26
Fase 5. Presentación y defensa del proyecto 1. Manual de uso final 1.- Para Ingresar al Sistema se ingresa el nombre de administrador y contraseña
2.- Nos encontramos con el mdi principal del sistema
3.-Para ingresar un nuevo usuario seleccionamos Administrador-UsuarioIngresar Nuevo Usuario
27
4.- Ingresamos los datos requeridos, Seleccionamos el Entrenador y el tipo de Cuerpo del Usuario para almacenar en la base de Datos.
5.- Para modificar los datos de un usuario Previamente ingresados, seleccionamos del combo box el usuario a modificar, luego modificamos los datos requeridos y damos click en actualizar
28
6.-Para Eliminar el usuario no debe de estar asignado a ninguna rutina ni a ningún paquete previo, ya que de otra forma nos toca eliminar en orden para poder quitar las relaciones.
7.- Para asignar Dietas con el Usuario depende del Mesotipo del Usuario se abren los tipos de Dieta asignados para ese tipo
29
8.- Ingreso de Paquetes con su costo y una Descripción del Paquete
9.-Modificaciòn de Paquetes. De los Paquetes Ingresados podemos modificar sus datos
10.- Modificar Entrenador se pueden ingresar datos nuevos o modificar datos ya previamente ingresados.
30
11.- Modificar Màquina se pueden ingresar datos nuevos o modificar datos ya previamente ingresados.
12.-Para asignar màquinas a los distintos paquetes seleccionamos seleccionamos el paquete damos a Nuevo y vamos asignando la cantidad de màquinas requeridas
13.-Para modificar el Administrador podemos ingresar nuevos Administradores o modificar datos existentes
31
14.- Para sacar reportes seleccionamos seleccionamos del radio button todos t odos los datos necesarios para poder sacar el reporte
32