Sunteți pe pagina 1din 23

Universidad Tecnolgica Nacional

Facultad Regional Buenos Aires

Gestin de Datos
Trabajo Prctico
1 Cuatrimestre 2017
Uber - FRBA
Enunciado V1.0

ltima actualizacin: 10/04/2017

1
ndice

Introduccin
Objetivos generales
Descripcin general
Componentes del TP
Base de Datos y Modelo de Datos
Aplicacin Desktop
Requerimientos
General
Base de Datos 4
Aplicacin Desktop 4
General 4
Base de Datos 4
Aplicacin Desktop 4
Restricciones de la solucin 16
Condiciones de aprobacin 16
Testing 6
Modelo de Datos 6
Consultas SQL 7
Respetar Gua de ABMs 17
Aplicacin Desktop 7
Fecha de entrega y condiciones 17
Sobre los grupos 18
Ayuda y contacto 18
Donde aprender C#
Sobre la eleccin de C# 19
Obtencin de herramientas 20
Formato de entrega 21
Lugar de envo 21
Estructura del archivo zip 2
Readme.txt: 22
Estrategia.pdf: 22
\src: 22
\data 23

2
Introduccin

Objetivos generales

El presente trabajo prctico persigue los siguientes objetivos generales

Promover la investigacin de tcnicas de base de datos.


Aplicar la teora vista en la asignatura en una aplicacin concreta.
Desarrollar y probar distintos algoritmos sobre datos reales.
Utilizar un lenguaje de programacin de ltima generacin.
Fomentar la delegacin y el trabajo en grupo.

Descripcin general

El presente TP describe la situacin en donde una persona (cliente) realiza viajes al


mejor estilo Uber. Para ello, el cliente se contacta con un chofer habilitado y este presta
sus servicios, transportando al cliente hasta la ubicacin de destino.
Hay que tener en cuenta que para reduccin del TP, el viaje se registrar una vez que el
mismo finaliza. La seccin que se encarga de contactar a un chofer ser desarrollada
posteriormente, dado que lo que estamos desarrollando es un prototipo de aplicacin
para ser presentado a los directivos de la futura nueva empresa.

Componentes del TP

El alumno recibir dos componentes ya hechos del sistema y, en base a estos deber
crear uno nuevo e implementar nuevas funcionalidades. Los componentes a recibir son:

Base de Datos y Modelo de Datos

La ctedra provee un script que permite crear una base de datos en el motor SQL
Server 2012. Esta base de datos incluye el modelo de una nica tabla, llamada maestra,
que es cargada con datos provistos por la ctedra. Los datos de esa tabla se encuentran
desorganizados y no poseen ningn tipo de normalizacin.
El alumno deber estudiar los datos recibidos y confeccionar un modelo de datos
que siga todos los estndares de desarrollo de bases de datos explicados durante la
cursada.
Los datos de esta tabla maestra pertenecen a un dominio de gestin de una clnica
mdica.
El sistema a desarrollar ser utilizado por 3 tipos de usuarios distintos:

3
administradores, afiliados y profesionales.
Parte de la lgica del negocio a resolver deber ser inferida por el alumno, en base
a las columnas y valores presentes en los datos. De todas maneras, es recomendable
consultar al grupo de Google de la materia antes de tomar decisiones incorrectas.

Aplicacin Desktop

La ctedra provee un proyecto C# a modo de template, sobre el cual deber


desarrollarse una aplicacin Desktop que interacte con la nueva base de datos, cuyo
diseo estar a cargo de los alumnos. La aplicacin deber ser del tipo Desktop
desarrollada sobre C# con Visual Studio 2012 y Framework de .NET 4.5.
Esta aplicacin tendr diversas pantallas, reportes y formularios que permitirn
interactuar, cargar y visualizar la informacin de la base de datos de SQL Server.

Requerimientos

General
El alumno deber crear todos los componentes de base de datos e implementar
todas las funcionalidades pedidas para la aplicacin Desktop, cumpliendo con las
siguientes pautas:

Base de Datos
El alumno deber crear un modelo de datos que organice y normalice los datos de
la nica tabla provista por la ctedra. Este modelo de datos incluye:
Creacin de esquema correspondiente.
Creacin de nuevas tablas y vistas.
Creacin de claves primarias y forneas para relacionar estas tablas.
Creacin de constraints y triggers sobre estas tablas cuando fuese necesario.
Creacin de los ndices para acceder a los datos de estas tablas de manera eficiente.
Migracin de datos: Cargar todas las tablas creadas utilizando la totalidad de los datos
entregados por la ctedra en la nica tabla del modelo. Para este punto debern
utilizarse Stored Procedures sobre la base de datos. No podr realizarse la migracin
de datos utilizando la aplicacin Desktop ni ninguna otra herramienta auxiliar.
Adems de la migracin, se debe incluir la insercin de datos no incluidos en la tabla
maestra que sean necesarios para el funcionamiento de la aplicacin desktop, como
por ejemplo, los roles.
El alumno deber entregar un nico archivo de Script que al ejecutar realice todos
los pasos mencionados anteriormente, en el orden correcto. Todo el modelo de datos
confeccionado por el alumno deber ser creado y cargado correctamente ejecutando este
Script una nica vez, antes de empezar a testear la aplicacin Desktop.
Todas las columnas creadas para las nuevas tablas debern respetar los mismos
tipos de datos de las columnas existentes en la tabla principal. A su vez el alumno podr
crear nuevas columnas, claves e identificadores para satisfacer sus necesidades. Pero
nunca se podr inventar informacin, por ejemplo, crear un cliente que nunca existi.
4
Aplicacin Desktop
El alumno deber crear una aplicacin Desktop en C# sobre Visual Studio 2012 con
Framework .NET versin 4.5. Esta aplicacin deber contar con formularios, reportes y
tablas.
Las funcionalidades existentes en el sistema son todas las que el TP exige
desarrollar en la aplicacin Desktop. El listado completo es el siguiente:

ABM de Rol
Login y Seguridad
Registro de Usuario
ABM de Cliente
ABM de Automvil
ABM de Chofer
Registro de Viajes
Rendicin de cuenta del chofer
Facturacin a Cliente
Listado Estadstico

1. ABM de Rol
Funcionalidad para poder crear, modificar y eliminar el acceso de un usuario a una
opcin del sistema.
Crear un rol implica cargar los siguientes datos:
Nombre
Listado de Funcionalidades (seleccin acotada)
Todos los datos mencionados anteriormente son obligatorios.
Un rol posee un conjunto de funcionalidades y las mismas no pueden estar repetidas
dentro de un rol en particular, adems de que una funcionalidad puede estar en ms de un
rol al mismo tiempo. Debe tenerse en cuenta, que actualmente existen 3 roles.
Afiliado
Administrativo
Profesional
En la modificacin de un rol solo se pueden alterar los campos: nombre y el listado
de funcionalidades. Se deben poder quitar de a una las funcionalidades como as tambin
agregar nuevas funcionalidades a rol que se est modificando.
La eliminacin del rol implica una baja lgica del mismo, sea, el rol debe poder
inhabilitarse. No est permitida la asignacin de un rol inhabilitado a un usuario, por ende,
se debe quitar el rol inhabilitado a todos aquellos usuarios que lo posean. Un usuario
puede tener ms de un rol asignado.
Se debe poder volver a habilitar un rol inhabilitado desde la seccin de
modificacin. Esto no implica recuperar las asignaciones que existan en un pasado.
5
Para elegir el rol que se desea modificar o eliminar se debe mostrar un listado con
todos los roles existentes en el sistema.

2. Login y Seguridad
Al ejecutar la aplicacin el usuario no podr acceder a ninguna funcionalidad del
sistema hasta completar el proceso de Login.
El proceso de Login pedir al usuario su Username y su Password. Si Login es
correcto, el usuario podr acceder al sistema, EN CASO DE QUE EL USUARIO TENGA
ASIGNADO MAS DE UN ROL, SE DEBER SELECCIONAR CON CUAL DE
ELLOS SE QUIERE LOGUEAR.
Al acceder al sistema, la aplicacin solo deber generar y mostrar las entradas de
men disponibles para este usuario, segn el rol seleccionado. El usuario no debe ni
siquiera ver las funcionalidades a las que no posee acceso.
Si el Login es incorrecto el usuario no podr acceder al sistema. Se debe volver a
mostrar el Login para que intente nuevamente. El sistema debe llevar un registro de
cantidad intentos fallidos de login. Luego de 3 intentos fallidos, en cualquier momento,
el usuario debe ser inhabilitado. Al realizar un Login satisfactorio, el sistema deber
limpiar la cantidad de intentos fallidos.
El Login se considera una funcionalidad de caractersticas especiales. No se
considera una funcionalidad que puede ser asignada a un rol. Todos los usuarios tienen la
capacidad de utilizar el Login.

3. Registro de Usuario

Para reducir el tiempo de confeccin del TP y as beneficiar al alumno se determin


que no ser necesario que se implemente/codifique un ABM que gestione los usuarios,
pero si, en caso de que se necesite en alguna parte del TP debe existir la forma de dar de
alta un usuario siempre y cuando no lo realicen de manera automtica, si el caso lo
amerita.
Debern tener en cuenta que al momento de realizar la entrega de dicho TP, deben
entregar un usuario con perfil Administrador, username admin y la password a asignar
ser w23e. Para el resto de los usuarios, tanto aquellos que sean migrados, como nuevos
generados por la aplicacin, los alumnos determinarn cules sern los username y
password, los cuales debern ser especificados en archivo de estrategia pedido para la
entrega.
No cumplir con este ltimo requerimiento ser motivo de no correccin del TP,
pasando a re-entrega directamente, de la misma manera, que no sea necesario codificar
un ABM completo de esta funcionalidad no implica no modelar una entidad de usuario.
Otros lineamientos a tener en cuenta son que el username debe ser nico en un todo
el sistema, el password deber almacenarse encriptado de forma irreversible bajo el
algoritmo de encriptacin SHA256 (se deber utilizar este algoritmo de encriptacin de
manera exclusiva, usar otro ser motivo de re-entrega).
Por cuestiones de practicidad a la hora de probar el TP, se recomienda que el
username y el password sean iguales, a excepcin del admin.
6
4. ABM de Clientes

Funcionalidad que permite crear, modificar y dar de baja un nuevo cliente al


sistema. Estos clientes son aquellos que se comunican con un mvil para utilizar sus
servicios.
Dar de alta un cliente implica el ingreso de los siguientes datos:
Nombre.
Apellido.
DNI.
Mail.
Telfono.
Direccin calle, nro piso, depto y localidad
Cdigo Postal
Fecha de Nacimiento.

Todos los datos mencionados anteriormente son modificables, en cuanto a la


obligatoriedad de los mismos, es para todos a excepcin del mail. El telfono es un dato
nico, por ende no pueden existir 2 usuarios con el mismo telfono. El sistema deber
controlar esta restriccin e informar debidamente al usuario ante alguna anomala.
La eliminacin de un cliente implica la baja lgica del mismo. Un cliente
inhabilitado no podr ser asignado a un viaje, como as mismo realizrsele una
facturacin de viajes mensual luego que fue dado de baja. Se debe poder volver a
habilitar el cliente deshabilitado desde la seccin de modificacin.
Para elegir que cliente se desea modificar o eliminar se debe presentar un
buscador con listado, que permita filtrar simultneamente por alguno o todos los
siguientes campos:
Nombre (texto libre)
Apellido (texto libre)
DNI (texto libre exacto)

5. ABM de Automvil

Esta funcionalidad permite poder crear, modificar y eliminar los automviles que
forman parte de la empresa.
Dar de alta un nuevo automvil implica cargar los siguientes datos:
Marca (seleccin acotada)
Modelo
Patente
Turno
Chofer Commented [M1]: Agregar alguno mas segn la base, ver que
pasa con el turno
7
Todos los datos mencionados anteriormente son obligatorios.
No pueden existir en el sistema automviles mellizos. Se considera mellizo,
cuando 2 automviles poseen la misma patente.
En la modificacin de un automvil se pueden alterar todos sus datos, tener en
cuenta que un chofer no puede estar asignado a ms de un auto activo al mismo
momento.
Cuando se trate de una baja, la misma ser lgica. Para un automvil inactivo sus
datos seguirn existiendo en la base de datos, por ende, dicho automvil no podr ser
utilizado para registrar viajes a su nombre. Se debe poder volver a habilitar el automvil
inhabilitado desde la seccin de modificacin.
Para elegir un coche que se desea modificar o eliminar se debe presentar un
buscador con listado, que permita filtrar simultneamente por alguno o todos los
siguientes campos:
Marca (seleccin acotada)
Modelo
Patente
Chofer

ABM de Turno

Mati: aca fjate que onda el valor que le vamos a poner a la ficha, nose como
resolviste esta parte; porque antes tenamos el turno y haba un valor de ficha Nose si
en el viaje vamos a tener que cambiarlo a valor del kilometraje para que calcule el valor
del viaje. Que solo hay un turno y el costo del kilometro por ahora sea nico y que tal
vez los piensen como que en el futuro puede haber mas de un turno, para que no te
cambie mucho la lgica.

Dar de alta un nuevo turno implica cargar los siguientes datos:


Hora de Inicio
Hora de Finalizacin
Descripcin
Valor de la ficha ---- valor del kilometro tal vez seria lo mejor
Valor de la bajada de bandera ----- valor inicial tal vez seria un nombre
correcto

6. ABM de Chofer
Esta funcionalidad permite poder crear, modificar y eliminar los chferes que se
encuentran registrados en el sistema de la empresa
Dar de alta un nuevo chofer implica cargar los siguientes datos:
Nombre
Apellido

8
DNI
Direccin calle, nro piso, depto y localidad
Telfono
Mail
Fecha de nacimiento

Todos los datos mencionados anteriormente son obligatorios.


Dichos datos pueden ser modificados en su totalidad y en el caso de tratarse de
una baja, la misma deber ser lgica. Cuando un chofer se inhabilita, sus datos siguen
existiendo en la base de datos, pero luego no pueden realizarse viajes bajo ese chofer
deshabilitado. Se debe poder volver a habilitar un chofer dado de baja desde la seccin
de modificacin y el mismo debe cumplir con las restricciones descriptas.
Para elegir un chofer que se desea modificar o eliminar se debe presentar un
buscador con listado, que permita filtrar simultneamente por alguno o todos los
siguientes campos:
Nombre
Apellido
DNI

7. Registro de viaje.

En este caso de uso se registra cada uno de los viajes realizados por los chferes.
Para hacer frente a esta funcionalidad es necesario que se registre en la base de
datos los siguientes campos:
Tipo de Viaje ( seleccin Acotada) esto habra que sacarlo Commented [M2]: Este campo habra que sacarlo porque les va
a generar confusin al pedo, aca no tenemos tipos de viajes, total son
Chofer siempre igual, porque ah lo que podes hacer es tener un solo tipo de
Automvil viaje a la bosta.

Cantidad de kilmetros del viaje


Commented [M3]: Aca te lo cambie por turno, tal vez quede
Fecha y hora de inicio del viaje mejor que registren el auto y no el turno. O nose segn como
Fecha y hora de fin del viaje quede estet tema.

Cliente

Todos los datos mencionados anteriormente son obligatorios.


Se debe tener en cuenta, que un cliente no puede tener ms de un viaje en una
determinada fecha y hora a fin de no tener viajes duplicados.
Al momento de seleccionar el chofer, se deber mostrar automticamente el
automvil habilitado que el chofer tiene asignado en ese momento.
El registro del viaje debe aclarar la cantidad de kilmetros que se han recorridos a
fin de poder calcular el costo total del viaje, se entiende que los kilmetros recorridos
deben ser mayores a 0.

9
Puede que sea necesario que ingresen la fecha de fin de viaje, dado que datos
migrados no posean ese dato, de ser necesario se ingresar la ltima instancia horaria
del dia del viaje para todos aquellos viajes migrados

8. Rendicin de cuenta de viajes por parte del Chofer.

Funcionalidad que permite controlar la recaudacin del chofer con los viajes que
ha realizado, de manera que una vez que finalice su da laboral se le pague por los viajes
realizados, esta rendicin de viajes es un porcentaje a convenir con la empresa.
Se tiene en cuenta que si el chofer comienza a trabajar un da X y finaliza su
trabajo el da X+1, la rendicin de viajes llevar la fecha del da X, ya que la rendicin
corresponde al da en que comenz a trabajar y nunca es ms de 24 hs.
Para hacer frente a esta funcionalidad es necesario que se registre los siguientes
campos:
Fecha.
Chofer
Turno Commented [M4]: Esto creo que esta dems, a lo sumo habra
que ponerle el automvil, nose que tan difcil va ser cambiarlo.
Importe total de la rendicin.

Todos los datos mencionados anteriormente son obligatorios.


Hay que tener en cuenta que no se puede rendir 2 veces el mismo viaje, no hay
ms de una rendicin por da. El chofer cobra en el da el monto de todos los viajes que
realiz en su jornada.
Todo chofer al cual se le haga una rendicin debe ser un chofer activo/habilitado.
Ser necesario que al momento de calcularse la rendicin de cuenta se muestre una
tabla que informe en forma detallada los viajes que componen la rendicin y que
justifiquen el importen total generado por ese chofer.

9. Facturacin de clientes

Funcionalidad que permite realizar el clculo de lo que debe abonar un cliente a la


empresa en funcin de los viajes realizados.
Para hacer frente a esta funcionalidad es necesario que se registre los siguientes
campos:
Fecha inicio de factura.
Fecha fin de factura
Cliente
Importe total de la factura.
Viajes facturados.

Todos los datos mencionados anteriormente son obligatorios.


Hay que tener en cuenta que la facturacin se realizar en forma mensual.

10
Ser necesario que al momento de calcularse la facturacin se muestre una tabla
que informe en forma detallada los viajes que componen la cuenta del cliente y que
justifiquen el importen total generado para ese cliente, adems de que se registren en la
factura los viajes que la componen.

10. Listado Estadstico


Esta funcionalidad nos debe permitir consultar el TOP 5 de:
Chferes con mayor recaudacin
Choferes con el viaje ms largo realizado
Clientes con mayor consumo
Cliente que utilizo ms veces el mismo automvil en los viajes que ha
realizado
Dichas consultas son a nivel trimestral, para lo cual la pantalla debe permitirnos
seleccin el trimestre a consultar.
El listado se debe ordenar en forma descendente segn sea el campo principal de
la consulta.
Adems de ingresar el ao a consultar, el sistema nos debe permitir seleccionar
que tipo de listado se quiere visualizar.
Cabe aclarar que los campos a visualizar en la tabla del listado para las 3 consultas
no son los mismo, y al momento de seleccionar un tipo solo deben visualizarse las
columnas pertinentes al tipo de listado elegido.
Las columnas del listado para cada una de las consultas quedan a cargo del
alumno y dichas columnas deben ser lo suficientemente descriptivas para poder brindar
un informe detallado a la gerencia de la tropa.

11
Implementacin

General

El alumno deber desarrollar dos componentes: un script de base de datos SQL


Server y una aplicacin Desktop C#.
A continuacin se detalla la implementacin de cada componente:

Base de Datos

El alumno debe instalar el motor de base de datos SQL Server 2012 con las
siguientes consideraciones:
El nombre de la instancia del motor de base de datos a instalar debe llamarse
SQLSERVER2012. No utilizar el nombre Default para la instancia. Instalar
como instancia con nombre (Named Instance).
La autenticacin debe ser por Modo Mixto.
El usuario administrador de la base de datos deber tener la siguiente configuracin:

Username: sa
Password: gestiondedatos

Una vez instalado el motor de base de datos se debern instalar las herramientas
cliente de trabajo: Microsoft SQL Server Management Studio Express para SQL Server
2012. Ejecutar esta aplicacin e ingresar los datos del usuario sa creado anteriormente
(en modo Autenticacin de SQL Server).

Dentro del Management Studio crear una nueva base de datos con los parmetros
default y nombre de base GD1C2017.

Crear un nuevo Inicio de Sesin, desde el item Seguridad perteneciente al


servidor de Base de Datos general. El inicio de sesin debe poseer las siguientes
caractersticas:

Solapa General:
Nombre de inicio de sesin: gd
Autenticacin de SQL Server
Contrasea: gd2017
Base de Datos Predeterminada: GD1C2017.
El resto de los parmetros respetar sus valores default.
Solapa Funciones del Servidor:
Seleccionar sysadmin
Solapa Asignacin de Usuarios:
Seleccionar asignar a GD1C2017
Para el resto de los parmetros respetar sus valores default.
12
Salir del Management Studio como usuario sa y volver a ingresar con el nuevo
usuario gd creado. Es probable que informe que la contrasea ha caducado. Cambiar la
contrasea ingresando exactamente la misma que antes: gd2017.

Una vez que tenemos la base de datos creada y configurada con el usuario,
necesitamos ejecutar dos scripts. Para ello debemos ejecutar un comando de consola de
SQL Server llamada sqlcmd. Este comando debe ejecutar en orden los siguientes dos
archivos:
gd_esquema.Schema.sql: Este archivo genera un esquema llamado gd_esquema
dentro de la base de datos y lo asigna al usuario gd.
gd_esquema.Maestra.Table.sql: Este archivo crea la tabla principal del trabajo
prctico y la carga con los datos correspondientes. El archivo posee un volumen
significante y no puede ser ejecutado desde el Managment Studio.

La ctedra provee un archivo BATCH para ejecutar esta operacin, denominado


EjecutarScriptTablaMaestra.bat. Haciendo doble clic sobre el mismo se ejecutan ambos
archivos (gd_esquema.Schema.sql y gd_esquema.Maestra.Table.sql) a travs del
modo consola. El Script necesita aproximadamente 40 minutos para finalizar su
ejecucin.

sqlcmd S <Servidor\Instancia> -U <Nombre_de_usuario> -P <Password> -i


<Nombre_del_archivo1>,< Nombre_del_archivo2> -a 32767

Ejemplo:
sqlcmd -S localhost\SQLSERVER2012 -U gd -P gd2017 -i
gd_esquema.Schema.sql,gd_esquema.Maestra.Table.sql -a 32767 -o
resultado_output.txt

Luego de cargados todos los datos de la tabla maestra, el alumno deber crear su
propio esquema dentro de la base de datos. El nombre del esquema deber ser igual al
nombre del grupo registrado en la materia (el proceso de registracin se explica ms
adelante). El nombre del esquema debe ser en maysculas, sin espacios y separado por
guiones bajos. Ejemplo Los mejores debe ser LOS_MEJORES.
Todas las tablas, stored procedures, vistas, triggers y otros objetos de base de datos
nuevos que cree el alumno debern pertenecer a este esquema creado. Sin la solucin
entregada posee objetos de base de datos por fuera del esquema con el nombre del grupo,
el TP ser rechazado sin evaluar su funcionalidad.
Con esta configuracin el alumno est listo para empezar la implementacin de la
parte de base de datos.

Aplicacin Desktop

13
La ctedra provee una aplicacin Desktop en C#, a modo de template, sobre la cual
se debe desarrollar la aplicacin del Trabajo Prctico.
Para ejecutar esta aplicacin es necesario instalar Visual Studio 2012 con el
Framework de .NET 4.5. La versin Express posee la funcionalidad necesaria como para
desarrollar el Trabajo Prctico.
La aplicacin template se denomina ClinicaFrba. Cuenta con un formulario Commented [M5]: Nombre del proyecto
principal, una barra de men y un formulario para cada funcionalidad visual que hay que
implementar en el trabajo. El alumno debe depositar su cdigo respetando esta estructura.
Ms all de estas indicaciones, el alumno puede modificar a su criterio la aplicacin
template. Ante cualquier consulta sobre lo que se puede modificar consultar al grupo de
Google de la materia.
La aplicacin Desktop deber conectarse a la base de datos con los siguientes
parmetros:
Origen de datos: Microsoft SQL Server (SqlClient)
localhost\SQLSERVER2012
Utilizar autenticacin de SQL Server:
o Nombre de Usuario: gd
o Password: gd2017
Nombre de la base de datos: GD1C2017

La aplicacin siempre debe conectarse a localhost. En caso de que el alumno se


conecte a otra direccin, deber cambiarlo a la hora de entregar su TP para corregir.
La aplicacin deber contar con un usuario de sistema ya creado y listo para ser
utilizado, con las siguientes caractersticas:
Username: admin
Password: w23e
Rol:
Nombre: Administrador General
Funcionalidades: todas las existentes
Este usuario de aplicacin debe ser generado en forma automtica dentro del archivo
script_creacion_inicial.sql y quedar listo para ser utilizado por la aplicacin Desktop.

14
Restricciones de la solucin

El lenguaje de programacin utilizado deber ser nicamente C# utilizando el


Framework .NET 4.5. Cualquier otra implementacin que no haya sido desarrollado en
ste lenguaje ser rechazada, sin excepcin.
El entorno de desarrollo debe ser Microsoft Visual Studio 2012 o Microsoft Visual
C# Studio Express 2012.
El motor de base de datos deber ser Microsoft SQL Server 2012. Tanto la versin
Express como la full sirven para realizar el trabajo.
No podr utilizarse ninguna herramienta auxiliar que ayude a realizar la migracin
de datos. Tampoco podr desarrollarse una aplicacin personalizada para la migracin de
datos. La misma deber ser efectuada en cdigo T-SQL en el archivo de script
script_creacion_inicial.sql.

Condiciones de aprobacin

Testing
El alumno deber entregar dos componentes:
Un nico script de base de datos (script_creacion_inicial.sql) con todo lo
necesario para crear su modelo y cargarlo con datos. No se adminte otro formato
que no sea este, cualquier otro formato ser considerado como reentrega.
La aplicacin C# ClinicaFrba con la funcionalidad pedida. Commented [M6]: Nombre del proyecto

La ctedra probar el Trabajo Prctico en el siguiente orden:


1. Disponer de una base de datos limpia igual a la original entregada a los alumnos.
2. Ejecutar el archivo script_creacion_inicial.sql. Este archivo debe tener
absolutamente todo lo necesario para crear y cargar el modelo de datos. Toda la
ejecucin debe realizarse en orden y sin ningn tipo de error.
3. Se ejecuta la aplicacin Desktop y se prueban las funcionalidades pedidas.

El archivo script_creacion_inicial.sql debe contener todo lo necesario para crear


el modelo de datos y cargarlo. Si el alumno utiliz alguna herramienta auxiliar o programa
customizado, el mismo no ser utilizado por la ctedra.
Si el script de base de datos ejecuta con errores, el trabajo prctico ser rechazado
sin continuar su evaluacin.
Todos los objetos de base de datos nuevos creados por el usuario deben pertenecer
a un esquema de base de datos creado con el nombre del grupo. Si esta restriccin no se
cumple el trabajo prctico ser rechazado sin continuar su evaluacin.

Modelo de Datos
15
El modelo de datos creado por el alumno deber respetar las buenas prcticas de
programacin y diseo de bases de datos explicados durante la cursada de la materia.
Tambin debern ser considerados criterios de performance a la hora de crear
relaciones e ndices en las tablas.

Consultas SQL
Todas las consultas SQL que haga la aplicacin sern evaluadas de acuerdo al
standard de programacin SQL explicados en clase. La performance de las mismas ser
tenida en cuenta a la hora de fijar la nota.

Aplicacin Desktop
La calidad y orden del cdigo fuente ser tenida en cuenta a la hora de fijar la nota.
Es obligatorio que existan comentarios de cdigo en todas las secciones principales de
implementacin.
Debern crearse componentes de cdigo reutilizable para aquellas porciones de
cdigo ejecutadas en muchas secciones de la aplicacin. Todo tipo de configuracin o
parametrizacin de la aplicacin deber estar centralizado en un solo punto. Aquellos TPs
que no respeten estos puntos mencionados sern rechazados, sin continuar su evaluacin
(ej: los parmetros de conexin a la base de datos).

Fecha de entrega y condiciones

Para cada entrega existe una sola fecha de entrega posible como lmite. Para el caso
de la entrega del sistema completo, se agregan hasta 2 presentaciones ms para re-entregar
con correcciones (entregas que no tienen fecha fija).
La cantidad de funcionalidad de cada entrega deber ser completa acorde a lo
solicitado en la instancia.

Entrega obligatoria del DER:


En esta primera entrega deber enviarse solamente el DER del sistema en un archivo
formato imagen, preferentemente JPG, el cual debe estar realizado con una
herramienta acorde y ser netamente legible, con todas sus relaciones y campos que
componen la entidad. No se aceptarn imgenes de DER realizado a mano, en lpiz,
birome, etc.
Solo se aceptarn entregas dentro de la fecha lmite especficamente estipulada
(07/10/2017) y pasada esa fecha no se aceptarn entregas bajo ninguna Commented [7]: fecha para el DER
circunstancia. No habr excepciones por entrega fuera de trmino ni motivos que lo
justifiquen, ya que la entrega del TP es grupal y esto da la posibilidad de que la
responsabilidad sea de todos los integrantes del grupo para llegar en fecha.
En caso de que el DER no sea correcto, los errores sern informados en la correccin
y debern ser resueltos para la entrega del sistema completo. Esto quiere decir que
no hay re-entrega de esta instancia y la evaluacin final ser en base al sistema
completo.
16
La motivacin de esta entrega es la correccin de los grandes errores en el modelado
de la base de datos antes de la construccin del sistema final, para evitar que en la
siguiente entrega se encuentren con la necesidad de modificar gran cantidad de cdigo
por errores del modelado de la base de datos que pueden ser atacados previamente.
Si el contenido de la entrega est incompleto, aumentarn las posibilidades de que los
agregados en el DER en la prxima entrega lleven a un gran re-trabajo si es necesario
re-entregar.

Entrega del sistema completo


Da: 7/11/2017 hasta las 12:00hs del medioda (GMT -3:00 Buenos Aires). Commented [8]: fecha para primera entrega
Los TPs entregados luego de las 12:00hs, se considerarn fuera de trmino perdiendo
as la posibilidad de entrega y restando solamente 2 instancias de presentacin. Estas
2 instancias no tienen fecha asignada y sern determinadas por el equipo.
Una vez entregado el TP, el periodo de correccin es aproximadamente de 10 das.
Este factor puede variar dependiendo de la cantidad de TPs entregados en ese
momento. Por lo cual, se recomienda tenerlo en cuenta para la fecha final de entrega
del trabajo.
Si llegaran a realizar una sola entrega del TP en la ltima fecha de entrega queda a
responsabilidad del grupo, ya que se les da la posibilidad de tener mas de una entrega,
en caso de llegar a esa situacin, solo contarn con una sola entrega habiendo perdido
la chances anteriores de entrega.
La ltima fecha para recepcin de TP es el da 12/12/2017 Commented [9]: fecha ultima entrega

Sobre los grupos


Debern estar compuestos de no ms de cuatro integrantes. Cada grupo debe tener
un representante que ser el nico que podr enviar mails con el TP para su correccin.
Los grupos pueden estar compuestos por alumnos de distinto curso. Los alumnos deben
registrar su grupo en un sitio de registracin especial, especificando un nombre nico que
identifique al grupo. La URL del sitio de registracin es la siguiente:

https://spreadsheets0.google.com/viewform?formkey=dG16aEltMHc1X2hPN3U2
YTVoVGxfeUE6MA

Al registrarse es necesario especificar un nombre de grupo. El nombre debe ser en


maysculas, sin espacios y separado por guiones bajos. Ejemplo Los mejores debe ser
LOS_MEJORES.
Commented [10]: fecha para mail de confirmacion de
grupo, fjate que la fecha para cerrar los grupos sea anterior
el envio del tp. Porque la ultiam 2 veces primero entregaban
el der y depues cerrrba la inscripcin de los grupos

Luego, el 10/10/2017 se enviaran los mail correspondientes con

17
la confirmacin de los grupos y se les asignar un nmero de grupo adems del nombre
que debidamente eligieron. Luego de esa fecha y de recibido el mail con el nmero de
grupo, la conformacin de los mismos ser inalterable hasta la finalizacin del
cuatrimestre. Cualquier cambio de integrantes, sea por el motivo que fuese, deber
realizarse antes de esa fecha.

Ayuda y contacto

El sitio oficial de la materia es el siguiente:

https://sites.google.com/site/gestiondedatosutn

Tambin existe un grupo de Google en donde se podrn plantear dudas sobre el TP.
Su direccin es la siguiente:

http://groups.google.com/group/gestiondedatos

Todos los mensajes referentes al trabajo prctico debern contener la etiqueta [TP]
antes del asunto. Ej: [TP] consulta sobre base de datos.

Es obligacin del alumno revisar el grupo peridicamente y mantenerse informado


sobre actualizaciones, cambios de consignas, modificaciones del programa, cambios de
fecha, etc.
La ctedra no asigna ayudantes especficos a cada grupo. Todas las consultas
debern hacerse a travs del grupo de Google.

A lo largo de la cursada pueden ir surgiendo dudas particulares sobre el Trabajo


Prctico que sean tiles para el resto de los alumnos. Para ello la ctedra cuenta con un
documento denominado Apndice del Enunciado en el cul se agregan consideraciones
generales de manera online. Su direccin es la siguiente:

https://docs.google.com/document/d/1JhxhhLileZ1vhNQ4k1xmoxeLkp6pPaH
V-QcKzehHHWg/edit?usp=sharing

Inicialmente el Apndice se encuentra vaco. A medida que vayan surgiendo dudas


sobre el desarrollo del Trabajo Prctico, la ctedra evaluara agregar consideraciones
generales al documento. Es obligacin del alumno revisar este documento
peridicamente.

Donde aprender C#

Si bien para resolver el TP solo se necesita conocer una pequea parte de la totalidad
del lenguaje C#, es recomendable aprender los conceptos bsicos mediante algn libro o
tutorial. Recomendamos el siguiente tutorial:
18
http://www.devjoker.com/asp/~/gru/Tutorial-C/TUCS/Tutorial-C.aspx

En cuanto a las colecciones que posee .Net, recomendamos la siguiente


documentacin:

Documentacin de MSDN en espaol


http://msdn2.microsoft.com/es-es/library/7y3x785f%28VS.80%29.aspx

Sobre la eleccin de C#

El lenguaje C, tradicionalmente usado en las ctedras de la facultad, ha demostrado


tener cierta dificultad a lo hora de su uso. El uso de punteros y procesamiento de cadenas
muchas veces resulta complicado, sin mencionar la dificultad de encontrar un error en
tiempo de ejecucin. Tambin hemos notado que se invierte mucho tiempo tratando de
crear interfaces amigables mediante consola de texto.
Es por esto que creemos que C# al igual que otros lenguajes de ltima generacin,
como Java, permiten invertir ms tiempo en cuestiones algortmicas y de estructura de
datos, dejando de lado las cuestiones de sintaxis propias del lenguaje C.

Por nombrar algunas ventajas de C#:

Facilidad en la depuracin en tiempo de ejecucin: Nos permite inspeccionar el


valor de las variables durante la ejecucin del programa, incluso visualizar
estructuras de datos recursivas.
Las sintaxis est totalmente normalizada.
El IDE permite autocompletar cdigo.
Provee mtodos simples para el manejo de E/S.

Podemos decir que gran parte de la eficiencia de un programa depende no del


lenguaje en el cual es implementado, sino de las estructuras de datos y algoritmos elegidos
para resolverlo.
Por ltimo, consideramos que el paradigma orientado a objetos puede brindarnos
muchas ventajas que a esta altura ya resultan evidentes y al mismo tiempo permite aplicar
los mismos esquemas algortmicos que los lenguajes estructurados.

Obtencin de herramientas

El TP puede ser desarrollado con dos versiones del IDE Microsoft Visual Studio
2012. No puede utilizarse la versin 2010:

1. Microsoft Visual Studio Professional 2012: esta versin puede ser obtenida con
19
licencia universitaria completa, gracias a un convenio de Microsoft con la UTN.
Dirigirse al laboratrio de Microsoft ubicado en la sede Medrano (planta baja, hacia
la derecha, mirando desde la entrada de la facultad hacia adentro).
La versin ofrecida es en espaol y contiene la ayuda completa (MSDN).Para
encargarla es necesario llevar un DVD y completar un formulario. Es posible que el
programa halla que encargarlo y pasarlo a buscar otro da.

2. Microsoft Visual C# 2012 Express Edition: Existe una versin gratuita del IDE
llamada Visual C# 2012 Express Edition, la cual posee todas las herramientas
necesarias para realizar el TP. Esta se encuentra disponible en:

http://www.microsoft.com/express/Downloads/

El motor de base de datos a utilizar es SQL Server 2012 Express. Puede ser
descargado de la siguiente direccin:

http://www.microsoft.com/Sqlserver/2012/en/us/express-down.aspx

Es necesario descargar e instalar dos componentes:


Install Microsoft SQL Server 2012 Express Edition
SQL Server Management Studio Express

Formato de entrega

Lugar de envo

La entrega debe realizarse por mail el antes de las fechas estipuladas en el


documento de enunciado

La direccin del mail es:

gestiondedatos.entregas@gmail.com

El asunto del mail debe cumplir con el siguiente formato:

TP1C2017<b><curso><b><nombreGrupo><Nro de grupo>

<b>: espacio en blanco

Ejemplos:
TP1C2017 k9999 LOS_MEJORES 10
(Respetar los 2 espacios en blanco existentes)

Se debe adjuntar el trabajo prctico en un archivo del tipo zip con el mismo nombre

20
que el asunto del mail.

Por cuestiones de seguridad Gmail rechaza todos los adjuntos que contengan
archivos zip con .exe y .dll en su interior, por lo que es necesario renombrar la
extensin .zip a .zip123.

Por ejemplo:

TP1C2017 k9999 LOS_MEJORES 10.zip123


(Respetar los 2 espacios en blanco existentes)

No enviar adjuntos de ms de 20 MB. La casilla de mail rechazar mails que


superen esta restriccin.

El cuerpo del mail debe contener lo siguiente:


Grupo:
Curso:
Integrantes: <apellido>, <nombres> - <legajo>

Nota: En caso de que haya integrantes de cursos distintos, se debe poner el curso de la
persona elegida como representante
En caso de que algn alumno del grupo haya dejado de cursar o se halla cambiado de
grupo, deber ser aclarado en el mail de la entrega del TP.
Solo debe enviarse la entrega desde el mail del representante del grupo.

Los alumnos debern registrar su grupo en la direccin mencionada


anteriormente.No se aceptarn TPs que no estn registrados.

Estructura del archivo zip

El archivo zip (.zip123) debe contener la siguiente estructura de directorios:

\
Readme.txt
Estrategia.pdf
\src
Solucin entera de Visual Studio de ClinicaDesktop Commented [c11]: nombre del tp
\data
Archivo de script de base de datos script_creacin_inicial.sql.

Readme.txt:
Es un archivo de texto plano con los siguientes datos:
Curso
Nmero de grupo
21
Nombre y legajo de todos los integrantes
Email del integrante responsable del grupo.

Estrategia.pdf:
A Archivo PDF en donde se deber explicar en forma detallada y extensa la
estrategia utilizada para desarrollar el TP. Debe incluir una descripcin de todas las
estructuras de datos relevantes utilizadas en el algoritmo, explicando la razn de la
eleccin de dichas estructuras.
Cualquier consideracin tomada o asumida deber ser aclarada en este
documento.
Se debe incluir un DER (legible y entendible) del modelo de datos creado con
una explicacin detallada de cada entidad, relaciones, claves primarias y forneas,
ndices, stored procedures, triggers, vistas, etc, que ser estrictamente necesario para la
correccin del modelo, de ser posible tambin entregar el DER en formato de imagen
PNG, JPEG, etc.
El archivo de estrategia deber ser en formato PDF obligatoriamente, con
cartula e ndice. En caso de no cumplir esta condicin, el TP ser rechazado sin evaluar
su funcionalidad.
Sin este archivo y un DER de la base la entrega no ser tomada como vlida.

\src:
Dentro de este directorio se encuentra la solucin entera de Visual Studio del
proyecto ClinicaFrba. Evitar enviar archivos de SVN, CVS u otros. No enviar archivos
ejecutables ni DLLs. Limpiar la solucin desde Visual Studio (Proyecto => Limpiar
Solucin) antes de enviarla.
Adems dentro del source deber existir un archivo de configuracin en donde se
encuentren los parmetros de conexin a la base de datos, la fecha que tomar el sistema
para funcionar (se utiliza este criterio para simplificar al alumno el manejo de las fechas
y as evitar el cambio de fechas del sistema operativo).
Sin ese archivo de configuracin la entrega no ser tomada como vlida.

\data:
Archivo script_creacin_inicial.sql con toda la creacin del modelo de datos. El
archivo debe poder ejecutar perfectamente de una sola vez, sin ningn tipo de error. Todas
las sentencias deben estar perfectamente ordenadas para ejecutar correctamente. Cada
sentencia debe estar comentada explicando su intencin.

Cualquier TP entregado que no cumpla con alguno de los requisitos mencionados


en este documento, ser rechazado sin ser evaluado, perdiendo una oportunidad de
entrega.

22
10 Tips para desaprobar Gestin de Datos
1. No inscribirse en el grupo, si no tengo nmero de grupo, preguntar a otros
alumnos como se enteraron y repetir el procesimiento.
2. No entregar el DER del modelado, y en caso de entregarlo, que el mismo no sea
legible
3. No consultar peridicamente el grupo de la materia
4. Entregar el script de migracin y/o solucin de C# con errores, y que los mismos
no puedan ser ejecutados
5. Entregar TP de aos anteriores
6. Entregar ABMs sin validaciones propias de un AMB, por ej. permitir alta de
registros duplicados.
7. Hacer mal uso de los formatos de fecha. (se recomienda uso de convert ) y/o no
usar el archivo config que se les pide. Ejemplo de que no hacer y que si hacer.

8. Entregar el TP faltando menos de 5 minutos para la fecha limite saturando la


casilla de entrega o pasada la fecha lmite para la recepcin para su correccin.
El tp es grupal y no individual, un integrante puede tener problemas, pero los 4
al mismo tiempo no.
9. Realizar una nica entrega en una fecha cercana a la fecha lmite sin la
posibilidad de un feedback y si aun as deciden realizar una nica entrega,
debern asumir el riesgo de Aprobacin o Desaprobacin

10. Si hay dudas, volver a leer los puntos anteriores o consultarlos con los
ayudantes.

23

S-ar putea să vă placă și