• No se han encontrado resultados

CAPITULO IV. Diseño de la solución

4.7 Modelo de Análisis

4.7.1 Diagrama de Clases

Sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia y de uso, describe la estructura de un sistema mostrando sus clases, atributos y las relaciones entre ellos.

Los diagramas de clases nos ayudan durante el proceso de análisis y diseño de los sistemas, donde se crea el diseño conceptual de la información que se manejará en el sistema, y los componentes que se encargaran del funcionamiento y la relación entre uno y otro.

Cliente Nombre RPU Aparatos Nombre Consumo RPU Facturación Facturación RPU Equipo Aparato RPU

4.7.2 Diagrama de Paquetes

Muestra cómo un sistema está dividido en agrupaciones lógicas mostrando las dependencias entre esas agrupaciones, suministran una descomposición de la jerarquía lógica de un sistema.

El diagrama de paquetes nos ayudará a que cada paquete puede asignarse a un individuo o, a un equipo, y las dependencias entre ellos pueden indicar el orden de desarrollo requerido.

Módulo de datos generales Módulo de condiciones de la

instalación eléctrica

Módulo de pruebas de medidor

Módulo de censo de aparatos

Módulo de propuesta Módulo de diagramas

4.7.3 Modelo de Diseño  Captura de levantamiento de aparatos conectados a la red eléctrica.  Condiciones de la instalación.  Prueba de medidores.  Observaciones. Input

 Introducir tipos de aparato y

costumbre de usos.

 Revisión física de la calidad

de los componentes eléctricos.

 Cálculo para prueba de

medidores.

 Descripción detallada de las

observaciones y recomendaciones propuestas al cliente. Procesos  Reporte detallado con las observaciones, recomendaciones y especificaciones. Output

4.7.4 Diagrama de Secuencias

Describe las interacciones entre un grupo de objetos mostrando de forma secuencial los envíos de mensajes entre objetos, muestra los flujos de datos intercambiados durante el envío de mensajes.

Cliente Analista Solicita levantamiento de diagnóstico Entrega resultado Realiza levantamiento Elabora reporte Captura y analiza levantamiento

Los diagramas de secuencia nos ayudan a identificar cómo los objetos se comunican con otros objetos y qué mensajes disparan esas comunicaciones.

4.7.5 Diagrama de Estado

Muestra la secuencia de estados por los que pasa un caso de uso, un objeto a lo largo de su vida, o bien todo el sistema. En él se indican qué eventos hacen que

se pase de un estado a otro y cuáles son las respuestas y acciones que genera.

Este diagrama nos ayudará a identificar cada uno de los estados por los cuales pasa un objeto durante su vida en una aplicación en respuesta a eventos, junto con sus respuestas y acciones, así como qué eventos pueden cambiar el estado de los objetos de la clase.

Inicio

Captura de los datos del censo Levantamiento del diagnóstico Análisis y recomendaciones Fin Entrega de reporte

4.7.6 Diagrama de Colaboración

Los diagramas de colaboración explican gráficamente las interacciones entre los objetos, constituyen una de las herramientas más importantes para el análisis y diseño orientado a objetos.

El diagrama de colaboradores nos mostrará explícitamente las relaciones de los roles de los objetos.

Datos referidos por el cliente Levantamiento de diagnóstico Sistema SIID Inspección visual

4.7.7 Diagrama de Actividades

Representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema.

El diagrama de actividades nos mostrará la serie de actividades que deben ser realizadas en un uso-caso, así como las distintas rutas que pueden irse desencadenando en el mismo. Acudir al domicilio del cliente Realizar el levantamiento Preguntar costumbres de uso

Capturar los datos en el SIID

Entregar reporte detallado Elaborar diagnóstico y

4.8 Modelo de Desarrollo

4.8.1 Diagrama de Componentes

Se utilizan para modelar la vista estática de un sistema. Muestra la organización y

las dependencias entre un conjunto de componentes.

Al diseñar el diagrama nos mostrará cómo un sistema de software es dividido en componentes y muestra las dependencias entre estos, identificando a sus componentes físicos tales como: archivos, cabeceras, bibliotecas compartidas, módulos, ejecutables, o paquetes.

4.9 Modelo de Implantación

4.9.1 Diagrama de Implementación

Los diagramas de implementación muestran los aspectos físicos del sistema, incluyen la estructura del código fuente y la implementación.

FrmDiagnóstico.exe

Para ésta tesis, se omite la estructura total del código fuente por tratarse de información confidencial, ya que dicho sistema se encuentra en vías de registro ante el Instituto Mexicano de Propiedad Intelectual y sólo se muestra una pequeña parte del código fuente para fines ilustrativos.

IF !EMPTY(this.Value) rpuprin = this.Value SELECT datdiags

LOCATE FOR rpu = thisform.pageframe1.page1.text3.Value IF FOUND()

nu = RECNO()

thisform.label1.Caption = "REVISO: ING. " + ALLTRIM(DATDIAGS.REVISO)

thisform.pageframe1.page2.Enabled = .t.

thisform.pageframe1.page3.Enabled = .t.

thisform.pageframe1.page4.Enabled = .t.

thisform.pageframe1.page5.Enabled = .t.

thisform.pageframe1.page6.Enabled = .t.

thisform.pageframe1.page7.Enabled = .t.

thisform.pageframe1.page1.text1.value = nombre

thisform.pageframe1.page1.text2.value = domicilio

thisform.pageframe1.page1.text4.value = cta

thisform.pageframe1.page1.text5.value = medidor1

thisform.pageframe1.page1.text45.value = lec11

thisform.pageframe1.page1.text51.value = fec11

thisform.pageframe1.page1.text48.value = lec12

thisform.pageframe1.page1.text54.value = fec12

thisform.pageframe1.page1.text65.Value = multip1

thisform.pageframe1.page1.text66.Value = multip2

thisform.pageframe1.page1.text67.Value = multip3 reslec1 = 0

resfec1 = 0 feclec130 = 0 feclec160 = 0

IF lec11 <> 0 AND lec12 <> 0

IF lec11 < lec12

reslec1 = lec12 - lec11

ENDIF IF lec11 > lec12

reslec1 = lec12 + 10000 - lec11

ENDIF ENDIF

IF EMPTY(fec11) = .f. AND EMPTY(fec12) = .f.

IF DATETIME(VAL("20" +

left(fec11,2)),VAL(SUBSTR(fec11,3,2)),VAL(RIGHT(fec11,2))) < DATETIME(VAL("20" +

left(fec12,2)),VAL(SUBSTR(fec12,3,2)),VAL(RIGHT(fec12,2))) resfec1 = (DATETIME(VAL("20" +

left(fec12,2)),VAL(SUBSTR(fec12,3,2)),VAL(RIGHT(fec12,2))) - DATETIME(VAL("20" +

left(fec11,2)),VAL(SUBSTR(fec11,3,2)),VAL(RIGHT(fec11,2))))/86400

ENDIF ENDIF

IF reslec1 <> 0 AND resfec1 <> 0

feclec130 = reslec1 / resfec1 * 30.4

ENDIF

IF reslec1 <> 0 AND resfec1 <> 0

feclec160 = reslec1 / resfec1 * 60.8

thisform.pageframe1.page1.text57.value = feclec130

thisform.pageframe1.page1.text60.value = feclec160

thisform.pageframe1.page1.text6.value = medidor2

thisform.pageframe1.page1.text46.value = lec21

thisform.pageframe1.page1.text52.value = fec21

thisform.pageframe1.page1.text49.value = lec22

thisform.pageframe1.page1.text55.value = fec22 reslec2 = 0

resfec2 = 0 feclec230 = 0 feclec260 = 0

IF lec21 <> 0 AND lec22 <> 0

IF lec21 < lec22

reslec2 = lec22 - lec21

ENDIF IF lec21 > lec22

reslec2 = lec22 + 10000 - lec21

ENDIF ENDIF

IF EMPTY(fec21) = .f. AND EMPTY(fec22) = .f.

IF DATETIME(VAL("20" +

left(fec21,2)),VAL(SUBSTR(fec21,3,2)),VAL(RIGHT(fec21,2))) < DATETIME(VAL("20" +

left(fec22,2)),VAL(SUBSTR(fec22,3,2)),VAL(RIGHT(fec22,2))) resfec2 = (DATETIME(VAL("20" +

left(fec22,2)),VAL(SUBSTR(fec22,3,2)),VAL(RIGHT(fec22,2))) - DATETIME(VAL("20" +

left(fec21,2)),VAL(SUBSTR(fec21,3,2)),VAL(RIGHT(fec21,2))))/86400

ENDIF ENDIF

IF reslec2 <> 0 AND resfec2 <> 0

feclec230 = reslec2 / resfec2 * 30.4

ENDIF

IF reslec2 <> 0 AND resfec2 <> 0

feclec260 = reslec2 / resfec2 * 60.8

ENDIF

thisform.pageframe1.page1.text58.value = feclec230

thisform.pageframe1.page1.text61.value = feclec260

thisform.pageframe1.page1.text7.value = medidor3

thisform.pageframe1.page1.text47.value = lec31

thisform.pageframe1.page1.text53.value = fec31

thisform.pageframe1.page1.text50.value = lec32

thisform.pageframe1.page1.text56.value = fec32 reslec3 = 0

resfec3 = 0 feclec330 = 0 feclec360 = 0

IF lec31 <> 0 AND lec32 <> 0

IF lec31 < lec32

reslec3 = lec32 - lec31

ENDIF IF lec31 > lec32

reslec3 = lec32 + 10000 - lec31

ENDIF ENDIF

IF EMPTY(fec31) = .f. AND EMPTY(fec32) = .f.

IF DATETIME(VAL("20" +

left(fec31,2)),VAL(SUBSTR(fec31,3,2)),VAL(RIGHT(fec31,2))) < DATETIME(VAL("20" +

left(fec32,2)),VAL(SUBSTR(fec32,3,2)),VAL(RIGHT(fec32,2))) resfec3 = (DATETIME(VAL("20" +

ENDIF

IF reslec3 <> 0 AND resfec3 <> 0

feclec330 = reslec3 / resfec3 * 30.4

ENDIF

IF reslec3 <> 0 AND resfec3 <> 0

feclec360 = reslec3 / resfec3 * 60.8

ENDIF

thisform.pageframe1.page1.text59.value = feclec330

thisform.pageframe1.page1.text62.value = feclec360

thisform.pageframe1.page1.text63.value = feclec130 + feclec230 + feclec330

thisform.pageframe1.page1.text64.value = feclec160 + feclec260 + feclec360

thisform.pageframe1.page1.text8.value = voltaje

thisform.pageframe1.page1.combo1.value = tarifa

IF thisform.pageframe1.page1.combo1.value = "3" OR thisform.pageframe1.page1.combo1.value

= "OM"

thisform.pageframe1.page1.text65.Visible = .t.

thisform.pageframe1.page1.text66.Visible = .t.

thisform.pageframe1.page1.text67.Visible = .t.

ELSE

thisform.pageframe1.page1.text65.Visible = .f.

thisform.pageframe1.page1.text66.Visible = .f.

thisform.pageframe1.page1.text67.Visible = .f.

ENDIF

thisform.pageframe1.page1.text43.Value = telefono

thisform.pageframe1.page1.text44.Value = correo

SELECT datdiags IF nu <> 0 GOTO nu ENDIF IF EMPTY(bim61) = .t. bimes = 5 ENDIF IF EMPTY(bim51) = .t. bimes = 4 ENDIF IF EMPTY(bim41) = .t. bimes = 3 ENDIF IF EMPTY(bim31) = .t. bimes = 2 ENDIF IF EMPTY(bim21) = .t. bimes = 1 ENDIF IF EMPTY(bim11) = .t. bimes = 0 ENDIF IF EMPTY(bim61) = .f. bimes = 6 ENDIF

thisform.pageframe1.page1.text42.Value = (bim12 + bim22 + bim32 + bim42 + bim52 + bim62) / bimes

thisform.pageframe1.page3.label41.Caption =

ALLTRIM(STR(thisform.pageframe1.page1.text42.Value,10,2)) + " KWH"

thisform.pageframe1.page3.label39.Caption =

ALLTRIM(STR(datdiags.clima+datdiags.bomb+datdiags.refrige+datdiags.audvid+datdiags.comp

+datdiags.ilumininc+datdiags.electrodom+datdiags.iluminflu+datdiags.constb,10,2)) + " KWH"

thisform.pageframe1.page3.label52.Caption =

ALLTRIM(STR(ABS(VAL(thisform.pageframe1.page3.label39.Caption) -

thisform.pageframe1.page3.label54.Caption =

ALLTRIM(STR(VAL(thisform.pageframe1.page3.label41.Caption) * 0.625)) + " Kilos CO2"

thisform.pageframe1.page1.command4.Visible = .t.

DO chart.prg

thisform.pageframe1.page1.text9.SetFocus

promcar = thisform.pageframe1.page1.text42.Value thisform.pageframe1.page1.text12.Visible = .t.

thisform.pageframe1.page1.text13.Visible = .t.

thisform.pageframe1.page1.text14.Visible = .t.

thisform.pageframe1.page1.text15.Visible = .t.

thisform.pageframe1.page1.text16.Visible = .t.

thisform.pageframe1.page1.text17.Visible = .t.

thisform.pageframe1.page1.text18.Visible = .t.

thisform.pageframe1.page1.text19.Visible = .t.

thisform.pageframe1.page1.text20.Visible = .t.

thisform.pageframe1.page1.text21.Visible = .t.

thisform.pageframe1.page1.text22.Visible = .t.

thisform.pageframe1.page1.text23.Visible = .t.

thisform.pageframe1.page1.text24.Visible = .t.

thisform.pageframe1.page1.text25.Visible = .t.

thisform.pageframe1.page1.text26.Visible = .t.

thisform.pageframe1.page1.text27.Visible = .t.

thisform.pageframe1.page1.text28.Visible = .t.

thisform.pageframe1.page1.text29.Visible = .t.

thisform.pageframe1.page1.text30.Visible = .t.

thisform.pageframe1.page1.text31.Visible = .t.

thisform.pageframe1.page1.text32.Visible = .t.

thisform.pageframe1.page1.text33.Visible = .t.

thisform.pageframe1.page1.text34.Visible = .t.

thisform.pageframe1.page1.text35.Visible = .t.

thisform.pageframe1.page1.text36.Visible = .t.

thisform.pageframe1.page1.text37.Visible = .t.

thisform.pageframe1.page1.text38.Visible = .t.

thisform.pageframe1.page1.text39.Visible = .t.

thisform.pageframe1.page1.text40.Visible = .t.

thisform.pageframe1.page1.text41.Visible = .t.

thisform.pageframe1.page1.text42.Visible = .T. esta = 1

ELSE

esta = 0

thisform.pageframe1.page1.text1.Value = ""

thisform.pageframe1.page1.combo1.Value = ""

thisform.pageframe1.page1.text2.Value = ""

thisform.pageframe1.page1.text4.Value = ""

thisform.pageframe1.page1.text8.Value = ""

thisform.pageframe1.page1.text43.Value = ""

thisform.pageframe1.page1.text44.Value = ""

thisform.pageframe1.page1.text5.Value = ""

thisform.pageframe1.page1.text6.Value = ""

thisform.pageframe1.page1.text7.Value = ""

thisform.pageframe1.page1.text45.Value = 0

thisform.pageframe1.page1.text46.Value = 0

thisform.pageframe1.page1.text47.Value = 0

thisform.pageframe1.page1.text51.Value = ""

thisform.pageframe1.page1.text52.Value = ""

thisform.pageframe1.page1.text53.Value = ""

thisform.pageframe1.page1.text48.Value = 0

thisform.pageframe1.page1.text49.Value = 0

thisform.pageframe1.page1.text56.Value = ""

thisform.pageframe1.page1.text57.Value = 0

thisform.pageframe1.page1.text58.Value = 0

thisform.pageframe1.page1.text59.Value = 0

thisform.pageframe1.page1.text63.Value = 0

thisform.pageframe1.page1.text60.Value = 0

thisform.pageframe1.page1.text61.Value = 0

thisform.pageframe1.page1.text62.Value = 0

thisform.pageframe1.page1.text64.Value = 0

thisform.pageframe1.page2.Enabled = .f.

thisform.pageframe1.page3.Enabled = .f.

thisform.pageframe1.page4.Enabled = .f.

thisform.pageframe1.page5.Enabled = .f.

thisform.pageframe1.page6.Enabled = .f.

thisform.pageframe1.page7.Enabled = .f.

thisform.pageframe1.page1.text12.Visible = .f.

thisform.pageframe1.page1.text13.Visible = .f.

thisform.pageframe1.page1.text14.Visible = .f.

thisform.pageframe1.page1.text15.Visible = .f.

thisform.pageframe1.page1.text16.Visible = .f.

thisform.pageframe1.page1.text17.Visible = .f.

thisform.pageframe1.page1.text18.Visible = .f.

thisform.pageframe1.page1.text19.Visible = .f.

thisform.pageframe1.page1.text20.Visible = .f.

thisform.pageframe1.page1.text21.Visible = .f.

thisform.pageframe1.page1.text22.Visible = .f.

thisform.pageframe1.page1.text23.Visible = .f.

thisform.pageframe1.page1.text24.Visible = .f.

thisform.pageframe1.page1.text25.Visible = .f.

thisform.pageframe1.page1.text26.Visible = .f.

thisform.pageframe1.page1.text27.Visible = .f.

thisform.pageframe1.page1.text28.Visible = .f.

thisform.pageframe1.page1.text29.Visible = .f.

thisform.pageframe1.page1.text30.Visible = .f.

thisform.pageframe1.page1.text31.Visible = .f.

thisform.pageframe1.page1.text32.Visible = .f.

thisform.pageframe1.page1.text33.Visible = .f.

thisform.pageframe1.page1.text34.Visible = .f.

thisform.pageframe1.page1.text35.Visible = .f.

thisform.pageframe1.page1.text36.Visible = .f.

thisform.pageframe1.page1.text37.Visible = .f.

thisform.pageframe1.page1.text38.Visible = .f.

thisform.pageframe1.page1.text39.Visible = .f.

thisform.pageframe1.page1.text40.Visible = .f.

thisform.pageframe1.page1.text41.Visible = .f.

thisform.pageframe1.page1.text42.Visible = .f.

ENDIF ENDIF

thisform.Refresh

El diagrama nos mostrará la configuración de los elementos de procesamiento en tiempo de ejecución y los componentes software, procesos y objetos que se ejecutan en ellos.

CAPITULO V. Propuesta de desarrollo e

Documento similar