miércoles, 22 de junio de 2016

Entrada Final (Recopilación de Datos)

Entrada Final

Análisis de Resultados

Como entrada final de la bitácora, se procede a realizar un recuento de todo el trabajo realizado, donde se involucrarán datos como la cantidad de horas que requirió para elaborarla, las secciones que funcionan y las que no.

La creación de las tablas y sus relaciones se basó en el diseño del modelo visto en clase  brindado por el profesor. No obstante es importante darse cuenta que durante el avance y desarrollo de la aplicación, algunas relaciones y atributos irían cambiando, por lo que el modelado final no  es idéntico al original, pero si se revisan con cautela todas las entradas de la bitácora, se irán mostrando estos cambios que a la postre son mínimos.

Posterior a la creación de la base de datos, llamada "PhoneServBD", se procede con la creación y conexión de la BD hacia la aplicación en capa lógico. Cabe mencionar que no fue una tarea muy ardua aunque de cierta manera suene arrogante, pero esto realmente es debido a que se encontró material de apoyo suficiente para poder comprender el funcionamiento entre estos dos manejadores, y además de ello, el trabajo gráfica en la página web no fue tan tedioso ni mucho menos extenso.

Una vez llegados a este punto sólo bastaría comenzar con la creación de los SP y de los métodos en capa lógica, donde los mismos iban siendo creados a conforme se fuesen necesitando, ya que no se podía predecir con facilidad que SPs serían necesarios y cuales no, por lo tanto se optó por su creación en el momento que surgiese la necesidad tal como se menciona en los reglones previos.

Por otra parte, y dando como terminada a grandes rasgos esta reseña del proceso con el que fue creada la aplicación, sólo nos bastará mencionar aquellas partes o secciones que cumplieron a cabalidad con las especificaciones de la tarea programada, y por su puesto las que no. Para ello dividimos esta porción en dos interrogantes:

¿Que funciona?:

Basándonos en los resultados obtenidos, se podría decir que de lo solicitado en la especificación de la tarea programada se ha cumplido con éxito lo siguiente, no obstante se es consiente de que siempre el sistema podrá llegar a presentar fallos, más si este no ha sido depurado al máximo. Cabe resaltar que hasta el momento no se ha detectado ninguno por lo que el sistema ha corrido perfectamente.
Entre algunas de los aspectos que funcionan, se podrían mencionar las siguientes:

  • El ingreso de datos masivos para las operaciones diarias de 6 meses se realiza exitosamente.
  • El procedimiento masivo encargado de insertar los movimientos correspondientes a cada uno de las operaciones diarias funciona para todas las 400 operaciones (aproximado), generando entonces 400 movimientos aproximadamente en total.
  • El procedimiento masivo que se encarga de generar cada una de las facturas para todos los dias de la iteracion, funciona perfectamente, y despliega los rubros de excesos de los diferentes minutos, asi como el total que se basa en la suma de movimientos.
  • Los stored procedures de consulta cumplen a cabalidad con las funciones propuestas desde un inicio, uno obtiene una tabla con los últimos 6 registros o estados de cuenta,  y en otra se obtiene el desglose de un estado de cuenta seleccionado.
  • La interfaz gráfica es básica pero va acorde a las necesidades planteadas en el problema enunciado, se tiene un campo donde se capta un número telefónico y un botón con el cual se obtiene de ser posible los últimos 6 registros en el estado de cuenta.


¿Que no funciona?:

  • Creemos que el proyecto cumple con los parámetros establecidos en la solicitud efectuada por el profesor a cargo de supervisar el proyecto, aunque aún no se han hecho pruebas suficientes para "debuggear" al 100% la funcionalidad de la herramienta web.


Registro de horas trabajadas:

Como punto final pero no menos importante, se pide realizar un recuento de las horas que se invirtieron en el desarrollo de la aplicación. Para ello se detallará entrada a entrada cuantas horas se invirtieron en las mismas, y por último el total de horas.

Nota

El tiempo considerado para cada entrada es calculado según el tiempo efectivo trabajado. Esto debido a que consideramos como una falacia el hecho de poner un conteo de horas donde se abarquen grandes periodos, ya que evidentemente uno tiende a procrastinar y por ende 'pierde'  tiempo en cosas ajenas y distantes al trabajo.
A continuación se presenta el reparto de horas entre las diferentes etapas de la creación de la aplicación:

***********  Nombre de la Entrada  ******************  Horas Invertidas  ***********
  1. Creación de Interfaz                                                           0.5     hora
  2. Creación del Diseño de BD                                                1        horas
  3. Creación de los catálogos para tablas              0.5        horas
  4. Creación de los SP de consulta para la Página  1      horas
  5. Creación de los Datos                                                           4         horas
  6. Diseño de Funciones Escalares                          1      hora
  7. Diseño de los Procesos Masivos                                            2         horas
********************** Total de Horas Trabajadas: |   10 horas C/u   |  **********************

jueves, 16 de junio de 2016

Funciones Escalares

Para la generación masiva de facturas se necesita datos de las operaciones realizadas en un ydeterminado periodo de tiempo por una cuenta.

Los datos que se necesitan son:

@ El exceso de minutos conforme al plan del contrato.
@ El exceso de minutos familiares en caso de que el tipo de contrato sea familiar.
@ El exceso de minutos de conexión a internet en caso de que sobrepase al plan del contrato.

Las funciones escalares unicamente retornan un valor entero representando una cantidad. Por lo que no requieren utilizar transacciones de bases de datos.

E igualmente el lenguaje de SQL no permite la implementación de transacciones dentro de las funciones.

Tiempo estimado 6 horas.

miércoles, 15 de junio de 2016

PROCESOS MASIVOS

A continuacion veremos los Procesos Masivos  que se aplican en este proyecto, uno de ellos tiene la funcionalidad de tomar las operaciones diarias y convertirlas en movimientos, el otro proceso masivo cumple con la generación de consultas diarias en orden a determinar cuales cuentas telefónicas cumplen su dia de corte para aplicar cargos y recibir pagos.

Procedimiento masivo "SacarCosto"


Procedimiento Masivo "SacarCosto"


Procedimiento Masivo AplicaMovimientos



Creación de los Datos de Operación Masivos

     En conjunto con otro grupo se crean los datos de operaciones masivos, para que sirvan como material de prueba para los procesos de inserción masiva de movimientos así como generación de facturas.

     Los datos incluyen las siguientes operaciones:

- Ingreso de cuentas.



- Egreso de cuentas.




- Llamadas telefónicas.


- Llamadas telefónicas por Cobrar.


- Conexion a internet.



-Reconexión.



- Mensajes de texto.


Pago de Facturas.





- Entre otros.

     El método para ingresarlos al sistema es mediante un archivo xml, que contiene alrededor de 400 operaciones que varían en fechas por un período de seis meses.

     Y se insertan mediante un script que itera para cada una de dichas operaciones.


     Tiempo Invertido: 8 horas 
(Sólo tomando en cuenta al grupo de integrantes)

martes, 14 de junio de 2016

CREACIÓN DE LOS STORED PROCEDURES DE CONSULTAS

Para la consulta por parte de un usuario de sus facturaciones de cuenta, se logra mediante la plataforma Online el servicio de búsqueda de sus últimos 6 estados de cuenta, para ello se ejecuta un  "Stored Procedure" SelectUltimosEstados encargado de obtener las últimas 6 facturaciones correspondientes al número ingresado por parte del usuario:

El siguiente SP recibe como entrada un número de telefono y retorna los últimos 6 estados de esa cuenta:

SP "Seleeccionar últimos estados"



SP encargado de seleccionar las últimas 6 facturas



El siguiente SP recibe como entrada el ID de una cuenta telefonica y retorna el desglose de esa factura:
 
SP "DesglozarMov"
SP encargado de desglosar un movimiento



Tiempo Invertido:   2 horas






Catalogo para Tablas

Algunas de las tablas y posteriormente operaciones diarias, requieren datos predeterminados ya ingresados dentro de la base de datos.

Entre estos datos se incluyen algunas llaves foraneas de importancia para otras tablas.

Las tablas con datos de catalogo son las siguientes:

× Tipos de movimientos
× Tipos de contrato
× Tarifas de Pais
× Tarifas Internacionales
× Precio de números especiales

Algunad cuentas son insertadas mediante el script, puesto que no pueden ser ingresadas desde los movimientos si tiene asociaciones de cuenta familiar.

CREACIÓN DE LA BASE DE DATOS, CON SUS RESPECTIVAS TABLAS

El día de hoy se lleva a cabo la realización del Script que posee el código para la creación de las tablas y sus relaciones. Para ello, se toma en cuenta el diagrama que se presenta a continuación:

Tabla de Cuenta, Tipo de Contrato, Movimiento, Factura, distintos Tipos de Operaciones Diarias:




 Tabla de Parámetros estáticos, las cuales no varías durante la ejecución de la Aplicación:



Y con base en esto el código que es implementado en la realización tanto de la Base de datos como de las tablas se desarrolla de la siguiente manera:

Creación de la Base de Datos

Creación de la Tabla TipoContrato

Creación de la Tabla Cuenta y AsociadoCon


Creación de la Tabla TipoMov y Movimiento

Creación de la Tabla CargosFijos y MovXCargosFijos

Creación de la TablaFactura y NumeroLlamadaEspecial

Creación de la Tabla TarifaPais y TelefonoMensajesEspeciales

Creación de la Tabla Parametro y OperacionDiaria

Creación de la Tabla TipoOperacionDiaria e Ingreso

Creación de la Tabla Egreso y Llamada

Creación de la Tabla LlamadaCCobrar y ConexionInternet

Creación de la Tabla Reconexion, Mensaje y PagoFactura


Posterior a esto se realizaron las respectivas relaciones entre cada una de las tablas, código que se presenta en la imagen que acontece:







Tiempo Invertido: 2 Horas