Vous êtes sur la page 1sur 176

PROGRAMACIN DOMTICA

BASADA EN SISTEMAS EXPERTOS

TRABAJO PROFESIONAL EN INGENIERA EN


INFORMTICA

Laboratorio de Sistemas Inteligentes


Facultad de Ingeniera
Universidad de Buenos Aires

Alumno: Guillermo Luis FRAS

Directores: Prof. Dr. Ramn GARCIA MARTINEZ


Prof. M. Ing. Hernn MERLINO
Prof. M. Ing. Enrique FERNANDEZ

Septiembre 2009
Programacin Domtica Basada en Sistemas Expertos

Indice
1. RESUMEN...............................................................................................................................1
2. INTRODUCCIN.....................................................................................................................2
2.1. COMPONENTES DEL SISTEMA.....................................................................................................3
2.2. TIPOS DE ARQUITECTURA...........................................................................................................3
3. PRESENTACIN DEL PROBLEMA......................................................................................4

4. OBJETIVO DEL TRABAJO PROFESIONAL........................................................................4


5. REA DE APLICACIN.........................................................................................................4
6. PRODUCTOS EXISTENTES EN EL MERCADO..................................................................5

6.1. TABLA COMPARATIVA..................................................................................................................7


7. REQUISITOS DEL SISTEMA.................................................................................................8

8. SOLUCIN PROPUESTA......................................................................................................9
9. CASOS DE VALIDACIN.....................................................................................................13

9.1. ENCENDER LAS LUCES DEL LIVING A LAS 22:15 HORAS..........................................................13


9.2. ENCENDER REGADORES DEL PATIO Y ABRIR EL PORTN DEL GARAGE..................................24
9.3. REDUCIR LA TEMPERATURA DEL DORMITORIO EN 2C SI LA MISMA SUPERA LOS 23C.........30

10. CONCLUSIN....................................................................................................................40

11. REFERENCIAS..................................................................................................................41
A. METODOLOGA.....................................................................................................................42
A.1. DESARROLLO DE SISTEMAS DE INFORMACIN........................................................................42
A.1.1. Estudio de Viabilidad del Sistema (EVS)...................................................................42
A.1.1.1. Establecimiento del alcance del sistema.............................................................................42
A.1.1.2. Estudio de la Situacin Actual...............................................................................................45
A.1.1.3. Definicin de los requisitos del sistema...............................................................................50
A.1.1.4. Estudio de Alternativas de Solucin.....................................................................................52
A.1.1.5. Valoracin de las Alternativas...............................................................................................58
A.1.1.6. Seleccin de la Solucin........................................................................................................61
A.1.2. Anlisis del Sistema de Informacin...........................................................................63
A.1.2.1. Definicin del Sistema............................................................................................................63
A.1.2.2. Establecimiento de Requisitos...............................................................................................70
A.1.2.3. Identificacin de Subsistemas de Anlisis...........................................................................75
A.1.2.4. Anlisis de los Casos de Uso................................................................................................80
A.1.2.5. Anlisis de las Clases.............................................................................................................82
A.1.2.6. Elaboracin del Modelo de Datos.........................................................................................92
A.1.2.7. Elaboracin del Modelo de Procesos...................................................................................92
A.1.2.8. Definicin de Interfases de Usuario......................................................................................92
A.1.2.9. Anlisis de Consistencia y Especificacin de Requisitos................................................105
A.1.2.10. Especificacin del Plan de Pruebas....................................................................................106
A.1.2.11. Aprobacin del Anlisis del Sistema de Informacin.......................................................110
A.1.3. Diseo del Sistema de Informacin..........................................................................111
A.1.3.1. Definicin de la Arquitectura del Sistema..........................................................................111
A.1.3.2. Diseo de la Arquitectura de Soporte.................................................................................116
A.1.3.3. Diseo de los Casos de Uso Reales..................................................................................116
A.1.3.4. Diseo de Clases...................................................................................................................117

i
Programacin Domtica Basada en Sistemas Expertos

A.1.3.5. Diseo de la Arquitectura de Mdulos del Sistema..........................................................126


A.1.3.6. Diseo Fsico de Datos.........................................................................................................126
A.1.3.7. Verificacin y Aceptacin de la Arquitectura del Sistema................................................131
A.1.3.8. Generacin de las Especificaciones de Construccin.....................................................132
A.1.3.9. Diseo de la Migracin.........................................................................................................134
A.1.3.10. Especificacin Tcnica del Plan de Pruebas.....................................................................135
A.1.3.11. Establecimiento de Requisitos de Implantacin................................................................137
A.1.3.12. Aprobacin del Diseo del Sistema de Informacin.........................................................139
A.1.4. Construccin del Sistema de Informacin...............................................................140
A.1.4.1. Preparacin del Entorno de Generacin y Construccin.................................................140
A.1.4.2. Generacin del Cdigo de los Componentes y Procedimientos....................................159
A.1.4.3. Ejecucin de las Pruebas Unitarias....................................................................................159
A.1.4.4. Ejecucin de las Pruebas de Integracin...........................................................................161
A.1.4.5. Ejecucin de las Pruebas de Sistema................................................................................169
A.1.4.6. Elaboracin de los Manuales de Usuario...........................................................................171
A.1.4.7. Definicin de la Formacin de los Usuarios Finales.........................................................171
A.1.4.8. Construccin de los Componentes y Procedimientos de Migracin y Carga Inicial de
los Datos 172
A.1.4.9. Aprobacin del Sistema de Informacin.............................................................................173

ii
Programacin Domtica Basada en Sistemas Expertos

1. Resumen

Losactualessolucionesparalaprogramacindelossistemasdehogar(domticos)existentes
en el mercado tienden a mejorar la calidad de vida de los habitantes de una vivienda,
proveyendo comodidades para la activacin o ajuste de dispositivos a travs de controles
remotosquerequierendelaaccindeunindividuo.

Dichassoluciones,sinembargo,setornandemasiadocomplejasparaelusuariopromediosise
intenta que el grado de automatizacin involucre a varios dispositivos, siendo necesarios
conocimientostcnicosensistemaselectrnicosy/odeinformacin.

Elproyectoencuestinbrindaunasolucinalaprogramacindelosdistintosdispositivosdel
hogar mediante una forma grfica e intuitiva para el usuario (convirtiendo los grficos en
reglas ejecutables por un sistema experto) y provee al mismo tiempo una interfaz para su
controlyverificacinenformaremota.

1
Programacin Domtica Basada en Sistemas Expertos

2. Introduccin

El trmino domtica proviene de la unin de las palabras domus (en latn, casa) y tica (en
griego, que funciona por s misma). Dicho trmino agrupa a todas aquellas soluciones
destinadasaautomatizarciertosprocesosdelavidacotidianadentrodelhogar,entrelosque
se destacan seguridad, confort, comunicacin y ahorro de energa. Para poder llevar a cabo
estas funciones, los diversos dispositivos se encuentran interconectados por medio de redes
interiores y exteriores de comunicacin, cableadas o inalmbricas, y cuyo control goza de
ciertacomodidadyubicacinconveniente,dentroyfueradelhogar.

De acuerdo a [2], se denomina Domtica o Automatizacin del Hogar a la aplicacin de


nuevas soluciones tecnolgicas basadas en la electrnica y en las telecomunicaciones al
ambiente domstico, con el objetivo de mejorar dispositivos existentes y proveer un mayor
nmerodeserviciosdeutilidaddomstica.

La domtica surgi en los aos 70, con el fin de interconectar dispositivos de iluminacin y
seguridad, otorgando un nivel bsico de automatizacin al usuario. Dicha interconexin
persigue como resultado la asistencia y la simplificacin de las condiciones de confort para
todossususuarios.

Ladomticatienediversosusos,entreloscualessedestacan:

Ahorro energtico: puede ser alcanzado de diversas maneras, no slo a travs de la


instalacindeequiposqueconsumanmenossinotambingraciasalmanejoeficiente
delosmismos.
o Climatizacin: programacin de encendido/apagado de equipos y
temperaturasdeuso.
o Racionalizacin elctrica: encendido/ajuste/apagado de equipos elctricos de
iluminacinyentretenimiento.
Comfort: abarca todos los comportamientos que mejoren la comodidad de los
habitantesdelacasa.Esoscomportamientospuedenseractivos,pasivosomixtos.
o Iluminacin:encendido/ajuste/apagadodeluces.
o Generacindemacrosoprogramasdeformasencillaparaelusuario.
o Controlvainternet
o Automatizacindeequipos

2
Programacin Domtica Basada en Sistemas Expertos

Seguridad: comprende las funciones de proteccin tanto de bienes personales como


desushabitantes.
o Simulacindepresencia
o Cerramientodelapropiedad
Comunicaciones:laviviendasecomunicaconelexteriortantopararegularsucontrol
comoparanotificardeeventosgenerados.
o ControlporinternetvaPC,PDAsotelfonoscelulares
o Notificacindealarmas

2.1.Componentesdelsistema

Controlador: es el dispositivo informtico (generalmente una PC) y el conjunto de


softwarequeseencargaderecibirlassealesprovenientesdelactuador,procesarlasy
generarytransmitirlasrdenesapropiadasalosactuadoresadecuados.
Sensor:dispositivoquemideunacantidadfsicaylaconvierteenunasealelctrica
quepuedeserledaporelcontrolador.
Actuador: componente que se encarga de transformar una seal elctrica en una
accin,generalmentemecnicasobreotroelementofsico.

2.2.Tiposdearquitectura

Desdeelpuntodevistadedonderesidelainteligenciadelsistemadomtico,existentres
enfoquesprincipales:

Centralizada:uncontrolcentralrecibeinformacindelosdistintossensoresy,unavez
procesada,generaytransmitelasrdenesadecuadasacadaactuador.
Distribuida:lainteligenciadelsistemaestubicadaenlossensoresyactuadores.
Mixta:existenvariosdispositivoscapacesderecopilarlainformacindelossensoresy
transmitirrdenesalrestodelosdispositivos.

3
Programacin Domtica Basada en Sistemas Expertos

3. PresentacindelProblema

Muchasdelassolucionesdomticasexistentesenelmercadotiendenamejorarlacalidadde
vidadeloshabitantesdeunavivienda,proveyendocomodidadesparalaactivacinoajustede
dispositivos a travs de controles remotos que requieren de la accin de un individuo. Los
ajustes automticos se reducen a activaciones producto de temporizadores en dispositivos
puntuales tales como el aire acondicionado o el DVR (Digital Video Recorder, Grabador de
VideoDigital).Siseintentaqueelgradodeautomatizacininvolucreadosomsdispositivos,
granpartedelasopcionesdisponiblesrequierenconocimientostcnicosdeprogramaciny/o
electrnica. Adems, las capacidades de visualizar el estado de la vivienda o agregar nuevos
programas estando fuera del hogar, resultan limitadas. Por ello, queda en evidencia la
necesidaddeunsistemaquepermitaautomatizar(demodosencilloparaunusuariomedio)
tareasqueinvolucrenavariosdispositivosyquepermitadecidirlascondicionesdeactivacin
dedichastareastalescomohora,condicionesexternas,etc.tantodesdeelhogarcomoenuna
ubicacinremota.

4. ObjetivodelTrabajoProfesional

ElObjetivodelpresenteTrabajoProfesionalesdesarrollarunsistemaquepermitaprogramar
laautomatizacindeequiposdedomticavaweb,representandodichaprogramacincomo
diagramasdeflujo,loscualessetraducirnacdigoejecutabledeunsistemaexpertoquien
serelencargadodeactuarsobrelosequipossegnlascondicionessensadasenlasvariables
delambiente.Enestetrabajo,nohabrunaconexinrealcondichosartefactossinoquelos
mismossesimularnconunprogramaconinterfazgrfica.

5. readeAplicacin

La aplicacin est destinada a todo usuario avanzado/semi avanzado de equipos de


automatizacindelhogarolaoficina,quenotengaconocimientosdeprogramacinmsall
dediagramasdeflujoyquedeseeprogramarsusequiposmsalldelnivelbsicoqueotorgan
lasinterfacesdeusuariodecadaunodeellos.

4
Programacin Domtica Basada en Sistemas Expertos

6. Productosexistentesenelmercado

X10:estndarinternacionalabiertoparalacomunicacinentredispositivos,utilizado
en domtica. Utiliza fundamentalmente las lneas elctricas para sealizacin y
control, aunque define tambin un protocolo de transporte inalmbrico. Fue
desarrolladoen1975porPicoElectronics,Escociaparapermitirelcontrolremotode
artefactos en el hogar. Fue la primera tecnologa de propsito general para redes
domticasyansiguesiendolamsutilizada.
Puedenconectarsehasta256dispositivos,aprovechandounespaciodedireccionesde
8 bits. Este estndar puede considerarse un mtodo de conexin y comunicacin de
equipos, que aprovecha la red elctrica para sus comunicaciones, por lo cual no
requiere la instalacin de un cableado original, reduciendo costos pero tambin al
mismo tiempo podra ser considerado un mtodo de control bsico de equipos: por
ejemplo,sisepretendeprenderyapagarunaluzenformaremota,bastaconconectar
a la lmpara a un dispositivo X10 y a ste ltimo a la red elctrica, otorgndole un
cdigo nico dentro de la casa y del otro lado, se conecta otro artefacto compatible
conX10,elcualpuedaenviarsealesparaelcdigodelalmpara.Desdeestepunto
devista,puedeconsiderarsequeX10otorgaunaformadeprogramacinbsicayde
fcilinstalacinperoalmismotiempo,bastantelimitada.

HEYU:esunprogramadeconsolaparaLinuxyotrasSistemasOperativosderivadosde
UNIX(MacOSX,FreeBSD,Solaris,entreotros)paraelcontroldelucesydispositivos
enlaoficinayelhogar.ElsistemaescapazdeinteractuarconequiposX10,temporizar
accionesydemonitorear/registrarloseventosgenerados.
Elsoftwarepermiteasimismogenerarscriptsdeaccionesparasuposteriorejecucin.
Enresumen,HEYUactacomocontroladoralossensoresyactuadoresbasadosenel
protocoloX10,brindandociertogradodeautomatizacinperoteniendolalimitacin
deserunproductoparalneadecomandosconlocualelespectrodeposiblesusuarios
quedarestringidodegranmanera.Delmismomodo,cuentaconelinconvenienteque
es difcil de operar y monitorear en forma remota, cuando el usuario se encuentra
fueradesucasa.

HomeControlSystem(HCS)deHomeAutomation,Inc(HAI):estesistemapropietario
puedefuncionarcomosistemacentralizado(comprandounequipodehardwareque

5
Programacin Domtica Basada en Sistemas Expertos

acta como mdulo central) o como sistema distribuido (ciertos equipos pueden
actuardeformalocalizadayautnoma).
HCS permite la temporizacin de acciones, el envo de notificaciones y el control de
funciones de seguridad, ahorro de energa y entretenimiento. Puede ser operado
medianteunainterfazgrficatctil(quesecompraporseparado)ovatelefnica.En
formaopcionalpuedesercontroladoconcontrolremotoatravsdeunaPCquecorra
WindowsMediaCenterovainternetmediantesoftwareadicional.
En pocas palabras, HCS es un sistema altamente configurable y escalable, a costa de
requerirequipoespecficodehardwareparapoderfuncionarysoftwareadicionalpara
poderrealizarmuchasdelastareasqueHEYUnopermite.

ExDomus: es un software para el Media Center de Windows XP/Vista que permite
controlar luces, cortinas, calentadores, cmaras, sistemas de seguridad, etc. usando
comoprotocolodeconexinX10oKNX,segnlaversin.Permitelatemporizacinde
accionesascomotambinlaejecucindeaccionesdisparadasporuneventoexterno,
talcomolaactivacindelaalarma.
Se trata de un software pago (aunque cuenta con una versin bsica gratuita) que
permite automatizar ciertas tareas pero dentro del mbito del hogar (no cuenta con
herramientasparalaprogramacinovisualizacindeeventosenformaremota).

6
Programacin Domtica Basada en Sistemas Expertos

6.1.Tablacomparativa

X10 HEYU HCS ExDomus
Arquitectura Distribuida Centralizada Centralizado o Centralizada
(instalacin Distribuido, si
individual de se dispone de
equipos) pocos
dispositivos a
automatizar
Facilidad de Alta (con slo Baja. Requiere Media Medio
instalacin conectar los experiencia en
equipos a la entornos UNIX
red elctrica y (manejo de
asignarles un Shellscriptingy
cdigo nico compilacin a
salen partir del
funcionando) cdigofuente)
Facilidad de Media. A Baja. Alta MediaAlta
uso travs de
mltiples
controles
remotos
Mtodo de Controles No Se utiliza un
posee Se utiliza un
control remotosX10 interfaz control control remoto
remoto que se
grfica, es un que se
programa de comunica con comunica con
lnea una PC con
de una PC con
comandos Windows Windows Media
MediaCenter Center
Control No disponible No disponible Va telefnica, Nodisponible
remoto (fuera sin software en forma celulares o,
delhogar) adicional nativa con software
adicional, va
Internet
Facilidad de Alta Media. Alto Media
programacin Requiere
generarscripts
Poder de Bajo (muy MedioAlto Alto Media (se
programacin bsico) pueden generar
secuencias de
acciones desde
la interfaz
grfica)
Temporizacin Slo utilizando S Si Si (en las
deacciones equipos versiones pagas
adicionales delsoftware)
Registro de No disponible S Si Nodisponible
eventos sin software
adicional

7
Programacin Domtica Basada en Sistemas Expertos

7. RequisitosdelSistema

a. Sistemadecontroldomticocentralizado
b. Facilidaddeinstalacin
c. Facilidaddeuso,atravsdeunainterfacegrficasencillaperopoderosa
d. Interfazgrficacomomododecontrol
e. Visualizacinycontroltantolocalcomoremoto(vaInternet)
f. Simplicidaddeprogramacin
g. Capacidaddetemporizaracciones
h. Registrodeeventos
i. Posibilidad de activar programas por la llegada de seales externas (alarma por
ejemplo)

8
Programacin Domtica Basada en Sistemas Expertos

8. SolucinPropuesta

Lasolucinpropuestaconstadelassiguientespartes:

9
Programacin Domtica Basada en Sistemas Expertos

1. Generador grfico de programas para la automatizacin de la casa (editor de


diagramas),quepuedeseraccedidovaInternetdesdecualquierlugar

Eneltrabajoprofesional,sedecidiqueparaqueestecomponentecumplieseconel
requisito e, la alternativa ms conveniente era desarrollar un programa capaz de ser
accesible mediante un navegador web. Teniendo en cuenta los requisitos cdf, se
decidi que, para mejorar la facilidad de uso, el programa deba estar basado
fuertemente en la manipulacin de elementos grficos. Por ello, se opt por la
programacin a partir de la construccin de diagramas de flujo, cuyo concepto es
similaradiagramasaprendidosduranteelcolegiosecundario,conlocualelgradode
instruccin para su uso inicial se ve reducido considerablemente. Cada diagrama es
almacenadoenunservidordentrodelacasaparasueventualposterioredicindesde
cualquier lugar. Paralelamente, se convierte el diagrama en un programa ejecutable
(ver2).

Dentro de las posibilidades para
desarrollo web, se decidi por el
desarrollo utilizando la plataforma
web de Adobe Air/Flex, debido a su
madurez en el mercado, la
documentacin disponible, la facilidad
y poder para el desarrollo y la calidad
delosproductosconstruidosbajolamisma.

2. Traductordelosdiagramasacdigoejecutable

Estecomponentedeltrabajoprofesional,talcomofuemencionadobrevementeen1,
eselencargadodeconvertirlosdiagramasdeflujoencdigoejecutable.Lasopciones
disponiblesenel mercadoparageneracindecdigovandesde lageneracinde un
programa a partir de un lenguaje estructurado tal como C, pasando por lenguajes
orientadosaobjetoscomoJavaoC++ylenguajesdesistemasexpertos.

Loslenguajesorientadosaobjetosfueronrpidamentedescartados,debidoaquelos
diagramasdeflujomodelanalgoritmosquesonrpidamenteencapsuladosdentrode
una nica clase (con lo cual las ventajas de abstraccin/encapsulamiento al utilizar
mltiplesclasesquedaperdida).

10
Programacin Domtica Basada en Sistemas Expertos

Loslenguajesdesistemasexpertostienenlaventajadequepuedengenerarreglasdel
estilo SI PRECONDICION ENTONCES POSTCONDICION, que son justamente el tipo de
estructurasqueaparecenenformapredominanteenlosdiagramasquesegenerarn.

Si bien esto tambin puede hacerse con un lenguaje estructurado, la generacin de


reglas SI ENTONCES es una representacin ms natural. Los lenguajes de sistemas
expertos tienen, respecto a los estructurados, una ventaja adicional: al generar un
programa,elmotordelsistemaexpertotieneherramientaspararealizarunaejecucin
reglaporreglalocualnoslofacilitaladepuracinalmomentodeldesarrollosinoque
tambin provee facilidades para detectar cuando un programa entra en un bucle
infinito (las condiciones de corte no ocurren nunca), esto ltimo es un requisito
fundamentalparaquelaunidaddescritaen3cumplaeficientementeconsufuncin.

Dentrodeloslenguajesdesistemaexperto,existendistintasopciones,perosedecidi
finalmenteporCLIPSporsuextensadocumentacinonline,robustezymadurezdela
plataforma,facilidaddeintegracinenmltipleslenguajes,ademsdelaexistenciade
mltiplesejemplosdeaplicacin.

3. Ejecutor de los programas, activados cuando se cumplan las condiciones de inicio


definidasporelusuario

De los requisitos g e i se deduce que aquella unidad encargada de ejecutar los
diagramas debe estar disponible las 24 horas del da los 7 das de la semana, con lo
cual dicha unidad deber estar activa todo el tiempo en un servidor en el hogar. A
medidaquesevayancumpliendolascondicionesdecadaprograma(horaodadela
semana,llegadadeuneventoexternocomolaactivacindelaalarma),seencargar
deejecutarcadaprogramageneradopor2.Esporelloquecontarconunainstancia
del motor del sistema experto. Esta unidad, se encargar adems, de recibir las
notificacionesdeeventosprovenientesde5ydeindicarleastemismoqueacciones
tomar(cambiartemperaturaenliving,abrirportn,etc.).



4. Simulador que acte como sustituto de los equipos que se pretenden controlar
(actuadores)

Estesimuladorconsisteenunapantallaendondeelusuariopuedeverqueartefactos
se han ido activando en el hogar as como tambin ver el registro de los eventos

11
Programacin Domtica Basada en Sistemas Expertos

generados (Requisito h). Si bien este simulador, tal como se dijo en la propuesta del
presente trabajo profesional, se desarroll con el fin de mostrar el resultado de la
ejecucindelosprogramas(porquenohayunaimplementacinendispositivosfsicos
enlacasa)tambintienecomofinalidadmostrarenunapantallaalusuarioelestado
actual de la casa. Segn los
requisitosdye,estesimulador
tambin es una herramienta
web, que puede utilizarse
desde cualquier navegador,
dentroofueradelaviviendaen
cuestin. Por idnticas razones
a 1, se desarroll en Adobe
Flex.

5. Emuladordelasvariablesdelhogar

Esta unidad se encargar de generar los eventos y valores de variables que en el
mundorealprovendrandelossensores.Adems,enelmundoreal,seralaencargada
decomunicarseconlosdispositivosreales(termostatos,luces,puertas,etc.)paraque
realicenlastareassolicitadasporlosprogramasgobernadospor3.

12
Programacin Domtica Basada en Sistemas Expertos

9. CasosdeValidacin

Acontinuacin,sedetallarlaconstruccindealgunoscasosdevalidacin(ejemplosdeuso)
desdelaperspectivadelusuario,esdecir,laformulacinyconstruccin delosdiagramas,la
etapa de prueba de los mismos y la verificacin de los resultados en el simulador. Hay que
destacarqueenelservidordebeestarejecutandolosprogramascorrespondientesalinciso3y
5delpuntoanterior.

9.1.Encenderlaslucesdellivingalas22:15horas
Parapoderrealizaresteprograma,esnecesarioconstruirunsencillodiagrama,consistente
en una figura Comienzo unida a una figura Asignacin, unida a una figura Fin. La figura
Asignacintieneunallamadaaunafuncinqueenciendelaslucesdellivingalaintensidad
deseada.

1. IniciarelEditordeDiagramas

2. Insertarunafiguracomienzo

13
Programacin Domtica Basada en Sistemas Expertos



3. Mover la figura hasta la ubicacin deseada (Mantener botn izquierdo apretado
sobrelafigura,moveryluegosoltarelbotn)

14
Programacin Domtica Basada en Sistemas Expertos

4. Configurar las condiciones de inicio del diagrama. Botn derecho sobre la figura
ComienzoyseleccionarPropiedades

5. Tildar la opcin A las para que el diagrama se ejecute a la hora especificada.


Seleccionar 22 en el cuadro de horas y 15 en el cuadro de minutos. Aceptar
parasalirdeldilogo

15
Programacin Domtica Basada en Sistemas Expertos

6. InsertarunafiguraAsignacin



7. MoverlafiguraAsignacin

8. Configurar la figura Asignacin. Botn derecho sobre la figura y seleccionar


Propiedades

16
Programacin Domtica Basada en Sistemas Expertos

9. Elegir la funcin que se pretender ejecutar. Seleccionar funcin en el


desplegable.

10. Seleccionar Living en el desplegable Habitacin y luz en el desplegable


Funcin

17
Programacin Domtica Basada en Sistemas Expertos

11. Seleccionar intensidad en el desplegable Parmetro y constante en el


desplegableTipodevalor.Porltimoingresar1enelcuadroValoryAceptar
dosveces.



12. Dibujar una flecha desde Comienzo a Asignacin. Botn derecho sobre la figura
ComienzoyseleccionarSiguiente

18
Programacin Domtica Basada en Sistemas Expertos

13. ElegircomodestinodelaflechaalafiguraAsignacinhaciendoClickconelbotn
izquierdosobrelamisma.

14. InsertarunafiguraFin

19
Programacin Domtica Basada en Sistemas Expertos

15. Mover la figura Fin. Dibujar flecha desde Asignacin a Comienzo por similar
procedimientoalpunto12.

16. Guardareldiagrama.

17. Elegirunnombreparaeldiagramacreado,porejemplolivingyAceptar.

20
Programacin Domtica Basada en Sistemas Expertos

18. Probarlaejecucindeldiagramaactualenelsimulador.Abrirelsimulador.

19. Eneleditordediagramas,probareldiagramaactual.(Enestemodo,seforzarla
ejecucinsinimportarlascondicionesdeinicioseleccionadas).



20. Verificarelresultadodelaejecucinenelsimulador.

21
Programacin Domtica Basada en Sistemas Expertos

21. Activareldiagrama(estoharqueeldiagramaseejecutecuandosecumplanlas
condicionesespecificadasenlafiguracomienzo).

22. Seleccionaraldiagramalivingytildarlacasillaactivado.Aceptarparafinalizar.

22
Programacin Domtica Basada en Sistemas Expertos

23. Alahoraindicada,severificaquelaejecucindelprogramafueexitosa.

23
Programacin Domtica Basada en Sistemas Expertos

9.2.EncenderregadoresdelpatioyabrirelportndelGarage

Esteprogramaessimilaralanterioraunquemuestralacapacidaddeestablecersecuencias
deaccionesycmoserespetaeseordenalmomentodelaejecucin.

1. InsertarunafiguraComienzo.

2. InsertardosfigurasAsignacin.

24
Programacin Domtica Basada en Sistemas Expertos

3. InsertarunafiguraFin.

4. UnirlafiguraComienzoconunafiguraAsignacin.


5. UniralaprimeraconlasegundaAsignacin.

25
Programacin Domtica Basada en Sistemas Expertos



6. UniralasegundaAsignacinconlafiguraFin.

26
Programacin Domtica Basada en Sistemas Expertos

7. ConfiguraralaprimeraAsignacin.



8. Seleccionarfuncin.



9. Fijarlosregadoresdelpatioaintensidad4,AceptaryAceptarnuevamente.

27
Programacin Domtica Basada en Sistemas Expertos

10. ConfiguraralaprimeraAsignacinyelegirfuncin.

11. SeleccionarGarageyabrirPortonyluegoAceptardosveces.

28
Programacin Domtica Basada en Sistemas Expertos

12. Guardardiagramaconelnombreabreporton,porejemplo.

13. Probarlaejecucindelprograma

14. Severificalaejecucindelprograma,conlasaccionesespecificadas

29
Programacin Domtica Basada en Sistemas Expertos

9.3.Reducirlatemperaturadeldormitorioen2Csilamismasupera
los23C

Este programa muestra el funcionamiento de una condicin lgica y el uso de variables


comoparmetrosdelasfuncionesdelsistema.

Paraello,

Comenzar
Asignarelvalordelatemperaturadeldormitorioalavariabletemp.
Compararsiesevaloresmayora23
Siesas:
o Decrementaren2elvalordetemp
o Ajustarlatemperaturadeldormitorioentempgrados.
Fin

(Ennegritaaparecenlaspalabrasquecorrespondenacadafigura)

1. InsertarunafiguraComienzo.

2. InsertartresfigurasAsignacin

30
Programacin Domtica Basada en Sistemas Expertos

3. InsertarunafiguraFin

31
Programacin Domtica Basada en Sistemas Expertos

4. InsertarunafiguraCondicin

5. Unirlasfigurascomosemuestraenlasiguienteimagen

32
Programacin Domtica Basada en Sistemas Expertos

6. DibujarlaflechaVerdaderadesdeCondicinalaAsignacin.Botnderechosobre
lafiguraCondicinyseleccionarVerdadera

7. ElegircomodestinodelaflechaalafiguraAsignacinhaciendoClickconelbotn
izquierdosobrelamisma.


8. Dibujar la flecha Falsa desde Condicin al Fin. Botn derecho sobre la figura
CondicinyseleccionarFalsa

33
Programacin Domtica Basada en Sistemas Expertos

9. Elegir como destino de la flecha a la figura Fin haciendo Click con el botn
izquierdosobrelamisma.



10. Eldiagramadeberquedardelasiguientemanera:

34
Programacin Domtica Basada en Sistemas Expertos

11. ConfiguraralaAsignacinA

Escribaenelcuadrodetextoelnombredelavariable:tempyseleccioneeneldesplegable
funcin



Seleccionar la funcin obtTemperatura (obtener temperatura) de Dormitorio y Aceptar
dosveces.

35
Programacin Domtica Basada en Sistemas Expertos

12. ConfigurarlaCondicin.
BotnderechosobrelafiguraCondicinyseleccionarPropiedades



Eneldesplegablesuperior,elegirvariable,seleccionartempyAceptar
Eneldesplegabledelmedio,seleccionaraloperadormayor>


Eneldesplegableinferior,seleccionarconstante,escribir23ydarAceptar


AceptarnuevamenteparaestablecerlaspropiedadesdelaCondicin
13. ConfiguraralaAsignacinB.ClickderechosobrelafigurayelegirPropiedades

36
Programacin Domtica Basada en Sistemas Expertos

Enelcuadrodetextoescribirtempyeneldesplegableseleccionarfuncin



SeleccionarcomoHabitacina(General)ycomofuncinresta
Seleccionar como parmetro minuendo como tipo de valor variable y como
nombretemp

Seleccionarcomoparmetrosustraendo,comotipodevalorconstanteycomo
nombre2yAceptardosveces.

37
Programacin Domtica Basada en Sistemas Expertos



14. ConfiguraralaAsignacinC.ClickderechosobrelafigurayelegirPropiedades
Seleccionarfuncineneldesplegable.
Elegir Dormitorio como habitacin, fijarTemperatura como funcin, valor
comoparmetro,variablecomotipodevalorytempcomonombre.


Aceptardosveces.



38
Programacin Domtica Basada en Sistemas Expertos

15. Guardareldiagrama,porejemploconelnombrecondicin

16. Probarelprograma

17. VerificarenelSimuladorqueelprogramaseejecutcorrectamente

(Seejecutlaramaverdaderadelacondicinpuesenlasimulacin,eldormitorioinicialmente
tieneunatemperaturade24C)

39
Programacin Domtica Basada en Sistemas Expertos

10. Conclusin

En la presente memoria, se ha hecho una breve introduccin a la domtica, los conceptos


asociados a la misma, los problemas que ella resuelve, la arquitectura de las posibles
soluciones.Sedescribilasituacin queelpresenteTrabajoProfesionalresuelve,culesson
sus objetivos y la arquitectura de la solucin propuesta junto con las justificaciones de las
tecnologasadoptadas.

Finalmente,seincluyeronCasosdeValidacin,quecorrespondenaejemplostpicosdeusodel
sistema, pudindose notar que la elaboracin de los mismos es sencilla y altamente grfica,
inclusoparausuariospocoexperimentados.

Comoltimaobservacin,puedeconcluirsequeelsistemapermiteunaprogramacinflexible
y escalable de distintas tareas quedando como lnea de expansin para futuros trabajos la
implementacindelaconexinentreelservidorylossensoresfsicos.

40
Programacin Domtica Basada en Sistemas Expertos

11. Referencias

[1] GarcaMartnez,R.yBritos,P.2004.IngenieradeSistemasExpertos.EditorialNueva
Librera.ISBN9871104154.
[2] Gerhart,J.1999.HomeAutomationandwiring.McGrawHillProfessional.
[3] Karwowski,W.2006.InternationalEncyclopediaofErgonomicsandHumanFactors.
CRCPress.
[4] Sierra,E.,GarcaMartnez,R.,Hossian,A.,Britos,P.yBalbuena,E.(2006).Providing
Intelligent UserAdapted Control Strategies in Building Environments. Research in
ComputingScienceJournal,19:235241.
[5] Sierra, E., Hossian, A., Britos, P., Rodrguez , D. & GarcaMartnez, R. (2007). Fuzzy
Control for Improving Energy Management Within Iindoor Building Environments.
Proceedings CERMA 2007 Electronics, Robotics & Automative Mechanics
Conference.Pag.412416.IEEEComputerSocietyPress.ISBN9780769529745.
[6] Sierra,E.,Hossian,A.,GarcaMartnez,R.yMarino,P.(2005).SistemaExpertopara
Control Inteligente de las Variables Ambientales de un Edificio Energticamente
Eficiente. Proceedings de la XI Reunin de Trabajo en Procesamiento de la
InformacinyControl.UniversidadNacionaldeRoCuarto.Pg.446452.
[7] Sierra,E.,Hossian,A.,Rodrguez,D.,GarcaMartnez,M.,Britos,P.,GarcaMartnez,
R.(2008).OptimizingBuildingsEnvironmentsPerformanceUsingIntelligentSystems.
LectureNotesonArtificialIntelligence,5027:486491.
[8] Velastin,Syotros.2006.Intelligentdistributedvideosurveillancesystems.IET.
[9] http://es.wikipedia.org/wiki/Domtica(07/05/09)
[10] http://en.wikipedia.org/wiki/X10_(industry_standard)(07/05/09)
[11] http://www.exdomus.com(07/05/09)
[12] http://www.homeauto.com/Products/Products_main.asp(07/05/09)
[13] http://www.heyu.org(07/05/09)
[14] http://www.smarthome.com/about_x10.html(07/05/09)
[15] http://www.xmlme.com/Validator.aspx(validadordeXSDal11/8/09)
[16] http://www.csae.map.es/csi/metrica3/index.html (Referencia de Mtrica Versin 3
al11/8/09)

41
Programacin Domtica Basada en Sistemas Expertos

A. Metodologa

Enelpresenteapndice,sedescribireldesarrollodelsistema,siguiendoloslineamientosde
lametodologadedesarrollodesoftwareMtricaVersin3.

A.1. DesarrollodeSistemasdeInformacin

EsteprocesodeMTRICAVersin3contienetodaslasactividadesytareasquesedebenllevar
a cabo para desarrollar un sistema, cubriendo desde el anlisis de requisitos hasta la
instalacindelsoftware.

A.1.1. EstudiodeViabilidaddelSistema(EVS)

En este proceso, se analizarn el conjunto concreto de necesidades, con la idea de


proponerunasolucinacortoplazo.Loscriteriosconlosqueseharestapropuestano
sernestratgicossinotcticosyrelacionadosconaspectoseconmicos,tcnicos,legales
yoperativos.

A.1.1.1. Establecimientodelalcancedelsistema

En esta actividad, se estudiar el alcance de la necesidad planteada, realizando una


descripcin general de la misma. Se determinarn los objetivos y requisitos. Se
analizarn tambin posibles restricciones, tanto generales como especficas, que
podrancondicionarelestudioylaplanificacindelasalternativasdesolucinquese
propongan.

Se detallar la composicin del equipo de trabajo necesario para este proceso y su


planificacin.Seidentificarnlosperfiles,dejandoenclarotareasyresponsabilidades.

A.1.1.1.1. Estudiodelasolicitud

Descripcingeneraldelsistema

El Sistema a permitir programar la automatizacin de equipos de domtica


va web, representando dicha programacin como diagramas de flujo, los
cuales se traducirn a cdigo ejecutable de un sistema experto quien ser el

42
Programacin Domtica Basada en Sistemas Expertos

encargadodeactuarsobrelosequipossegnlascondicionessensadasenlas
variablesdelambiente.

CatlogodeObjetivosEVS
Fecha
ID Autor Tipo Descripcin Estado Prioridad de
creacin
OBJ1 FRIAS, ESTRATGICO Presentar APROB. ALTA 1/8/08
G. un Trabajo
Profesional
de Calidad
en Tiempo y
Forma
OBJ2 FRIAS, ESTRATEGICO Desarrollar APROB. ALTA 1/8/08
G. un Sistema
de Control
Domtico
OBJ3 Merlino, ESTRATEGICO Seguir una APROB. ALTA 1/8/08
H. Metodologa
Conocida y
Eficaz

CatlogodeRequisitos
Fecha
ID Autor Tipo Descripcin Estado Prioridad de
creacin
REQ1 Merlino, DOCUMENT Usar Mtrica INCORP. ALTA 1/8/08
H. AC 3 como
Metodologa
deDesarrollo
REQ2 FRIAS, NO Capacidad de APROB. ALTA 1/8/08
G. FUNCIONAL programar el
Sistema
desde una
ubicacin
remota
REQ3 FRIAS, NO Facilidad de APROB. ALTA 1/8/08
G. FUNCIONAL uso,
programaci
n de modo
grfico
REQ4 FRIAS, FUNCIONAL Generar un APROB. BAJA 20/8/08
G. registro de
eventos
REQ5 FRIAS, FUNCIONAL Temporizaci APROB. MEDIA 17/8/08
G. n de
Acciones
REQ6 FRIAS, FUNCIONAL Activacin de APROB. MEDIA 20/8/08
G. programas

43
Programacin Domtica Basada en Sistemas Expertos

por llegada
de seales
externas

A.1.1.1.2. Identificacindelalcancedelsistema

Seanalizarelalcancedelanecesidadplanteadayseidentificarnlasrestricciones
relativas a la sincronizacin con otros proyectos, que puedan interferir en la
planificacin y futura puesta a punto del sistema objeto del estudio. Una vez
establecido el alcance, se identifican las unidades organizativas afectadas por el
sistema,ascomosuestructurayresponsablesdelasmismas.

Catlogo de Requisitos (Relativos a Restricciones o Dependencias con


OtrosProyectos)

EnelcasodelTrabajoProfesionaladesarrollar,comonoexistendependencias
conotrosproyectos,losrequisitosrelacionadosarestriccionesodependencias
conlosmismosnoseaplicanaestecontexto.

CatlogodeUsuarios

ID ApellidoyNombre

U1 Merlino,Hernn

U2 GarcaMartnez,Ramn

U3 Fernndez,Enrique

U4 Fras,Guillermo

Descripcingeneraldelsistema

o Contextodelsistema

Dentrodelcontextodelsistema,yteniendoencuentasunaturalezade
trabajo profesional y extensin, no habr una conexin real los
sensores y actuadores sino que los mismos se simularn con un
programaconinterfazgrfica.

44
Programacin Domtica Basada en Sistemas Expertos

o EstructuraOrganizativa
ID ApellidoyNombre Rol
EO1 Merlino,Hernn DirectordelTrabajoProfesional
EO2 GarcaMartnez,Ramn DirectordelTrabajoProfesional
EO3 Fernndez,Enrique ConsultorenMtrica3
EO4 Fras,Guillermo Analista/Programador/Tester

A.1.1.2. EstudiodelaSituacinActual

La situacin actual es el estado en el que se encuentran los sistemas de informacin


existentes en el momento en el que se inicia su estudio. Teniendo en cuenta el
objetivo del estudio de la situacin actual, se realizar una valoracin de la
informacinexistenteacercadelossistemasdeinformacinafectados.Enfuncinde
dicha valoracin, se especificar el nivel de detalle con que se debe llevar a cabo el
estudio. Se constituir un equipo de trabajo especfico para su realizacin y se
identificarnlosusuariosparticipantesenelmismo.

A.1.1.2.1. Valoracindelestudiodelasituacinactual

En funcin de los objetivos establecidos para el estudio de la situacin actual, y


considerando el contexto del sistema especificado en la descripcin general del
mismo, se identificarn los sistemas de informacin existentes que es necesario
analizarconelfindedeterminarelalcancedelsistemaactual.Sedeterminarel
nivel de detalle con el que se va a llevar a cabo el estudio de cada uno de los
sistemasdeinformacinimplicados.

DescripcindelaSituacinActual

o DescripcindelosSistemasdeInformacinActuales

A travs de las sesiones de trabajo y a la investigacin de las


soluciones existentes en el mercado, se recopil informacin de los
productosdisponiblesenelmismo.

X10: estndar internacional abierto para la comunicacin entre


dispositivos, utilizado en domtica. Utiliza fundamentalmente las
lneaselctricasparasealizacinycontrol,aunquedefinetambinun

45
Programacin Domtica Basada en Sistemas Expertos

protocolo de transporte inalmbrico. Fue desarrollado en 1975 por


PicoElectronics,Escociaparapermitirelcontrolremotodeartefactos
enelhogar.Fuelaprimeratecnologadepropsitogeneralpararedes
domticasyansiguesiendolamsutilizada.
Pueden conectarse hasta 256 dispositivos, aprovechando un espacio
dedireccionesde8bits.Esteestndarpuedeconsiderarseunmtodo
deconexinycomunicacindeequipos,queaprovechalaredelctrica
para sus comunicaciones, por lo cual no requiere la instalacin de un
cableado original, reduciendo costos pero tambin al mismo tiempo
podra ser considerado un mtodo de control bsico de equipos: por
ejemplo, si se pretende prender y apagar una luz en forma remota,
bastaconconectaralalmparaaundispositivoX10yasteltimoa
la red elctrica, otorgndole un cdigo nico dentro de la casa y del
otrolado,seconectaotroartefactocompatibleconX10,elcualpueda
enviarsealesparaelcdigodelalmpara.Desdeestepuntodevista,
puedeconsiderarsequeX10otorgaunaformadeprogramacinbsica
ydefcilinstalacinperoalmismotiempo,bastantelimitada.

HEYU: es un programa de consola para Linux y otras Sistemas
OperativosderivadosdeUNIX(MacOSX,FreeBSD,Solaris,entreotros)
para el control de luces y dispositivos en la oficina y el hogar. El
sistemaescapazdeinteractuarconequiposX10,temporizaracciones
ydemonitorear/registrarloseventosgenerados.
El software permite asimismo generar scripts de acciones para su
posteriorejecucin.
Enresumen,HEYUactacomocontroladoralossensoresyactuadores
basados en el protocolo X10, brindando cierto grado de
automatizacin pero teniendo la limitacin de ser un producto para
lneadecomandosconlocualelespectrodeposiblesusuariosqueda
restringido de gran manera. Del mismo modo, cuenta con el
inconvenientequeesdifcildeoperarymonitorearenformaremota,
cuandoelusuarioseencuentrafueradesucasa.

Home Control System (HCS) de Home Automation, Inc (HAI): este
sistema propietario puede funcionar como sistema centralizado

46
Programacin Domtica Basada en Sistemas Expertos

(comprandounequipodehardwarequeactacomomdulocentral)o
como sistema distribuido (ciertos equipos pueden actuar de forma
localizadayautnoma).HCSpermitelatemporizacindeacciones,el
envodenotificacionesyelcontroldefuncionesdeseguridad,ahorro
de energa y entretenimiento. Puede ser operado mediante una
interfazgrficatctil(quesecompraporseparado)ovatelefnica.En
forma opcional puede ser controlado con control remoto a travs de
una PC que corra Windows Media Center o va internet mediante
softwareadicional.
En pocas palabras, HCS es un sistema altamente configurable y
escalable, a costa de requerir equipo especfico de hardware para
poderfuncionarysoftwareadicionalparapoderrealizarmuchasdelas
tareasqueHEYUnopermite.

ExDomus:esunsoftwareparaelMediaCenterdeWindowsXP/Vista
quepermitecontrolarluces,cortinas,calentadores,cmaras,sistemas
de seguridad, etc. usando como protocolo de conexin X10 o KNX,
segn la versin. Permite la temporizacin de acciones as como
tambinlaejecucindeaccionesdisparadasporuneventoexterno,tal
comolaactivacindelaalarma.

Se trata de un software pago (aunque cuenta con una versin bsica


gratuita) que permite automatizar ciertas tareas pero dentro del
mbitodelhogar(nocuentaconherramientasparalaprogramacino
visualizacindeeventosenformaremota).

47
Programacin Domtica Basada en Sistemas Expertos

A.1.1.2.2. IdentificacindelosUsuariosParticipantesenel
EstudiodelaSituacinActual

Enfuncindelniveldedetalleestablecidoparaelestudiodelasituacinactual,se
identificarnlosusuariosparticipantesdecadaunadelasunidadesorganizativas
afectadaspordichoestudio.

ID ApellidoyNombre

U1 Merlino,Hernn

U2 GarcaMartnez,Ramn

U3 Fernndez,Enrique

U4 Fras,Guillermo

A.1.1.2.3. DescripcindelosSistemasdeInformacin
Existentes

En esta tarea se describirn los sistemas de informacin existentes afectados,


segnelalcanceyniveldedetalleestablecidoenlatareaValoracindelEstudiode
laSituacinActual.Sedescribirnlossistemasanivellgico,aplicandolastcnicas
demodelizacinysiguiendounmtododescendente.

(Realizadoenconjuntocon2.1.2.1Valoracindelestudiodelasituacinactual)

A.1.1.2.4. RealizacindelDiagnsticodelaSituacinActual

SeanalizarlainformacindelosSistemasdeInformacinexistentes,obtenidaen
latareaanterioryseidentificanproblemas,deficienciasymejoras.

Teniendoencuentalasalternativasestudiadasen2.1.2.1,podemosestablecerel
siguientetablacomparativa:

48
Programacin Domtica Basada en Sistemas Expertos


X10 HEYU HCS ExDomus
Arquitectura Distribuida Centralizada Centralizado o Centralizada
(instalacin Distribuido, si
individual de se dispone de
equipos) pocos
dispositivos a
automatizar
Facilidad de Alta (con slo Baja. Requiere Media Medio
instalacin conectar los experiencia en
equipos a la entornos UNIX
red elctrica y (manejo de
asignarles un Shellscriptingy
cdigo nico compilacin a
salen partir del
funcionando) cdigofuente)
Facilidad de Media. A Baja. Alta MediaAlta
uso travs de
mltiples
controles
remotos
Mtodo de Controles No Se utiliza un
posee Se utiliza un
control remotosX10 interfaz control control remoto
remoto que se
grfica, es un que se
programa de comunica con comunica con
lnea una PC con
de una PC con
comandos Windows Windows Media
MediaCenter Center
Control No disponible No disponible Va telefnica, Nodisponible
remoto (fuera sin software en forma celulares o,
delhogar) adicional nativa con software
adicional, va
Internet
Facilidad de Alta Media. Alto Media
programacin Requiere
generarscripts
Poder de Bajo (muy MedioAlto Alto Media (se
programacin bsico) pueden generar
secuencias de
acciones desde
la interfaz
grfica)
Temporizacin Slo utilizando S Si Si (en las
deacciones equipos versiones pagas
adicionales delsoftware)
Registro de No disponible S Si Nodisponible
eventos sin software
adicional

49
Programacin Domtica Basada en Sistemas Expertos

Dentro de los problemas y deficiencias, podemos ver que X10 por s solo no es
demasiado poderoso en trminos de programacin de equipos y que HEYU es
difcildeusarpuesnoposeedeunainterfazgrfica.Paralascuatroalternativas,el
controlfueradelhogaresdificultosoporquenoposeendeunaformadeacceso
adecuada como en el caso de HCS que es va telefnica o directamente no
disponen de un mtodo de acceso remoto. Como mejora, se propone poder
accedervainternet,aunaherramientaparalaprogramacindelosequipos.Otra
posiblemejora,eslageneracindeuninstaladorquesimplifiqueengranmedida
la instalacin del sistema. La temporizacin de acciones y el registro de eventos
soncaractersticasdeseablesdebidoaquepocasalternativaslasposeen.

A.1.1.3. Definicindelosrequisitosdelsistema

En esta actividad, se determinarn los requisitos generales, mediante una serie de


sesionesdetrabajoplanificadasyrealizadasconlosusuariosparticipantes.Seanalizar
lainformacinobtenidadefiniendolosrequisitosysusprioridades,queseaadirnal
catlogo de requisitos que servir para el estudio y valoracin de las distintas
alternativasdesolucinquesepropongan.

A.1.1.3.1. IdentificacindelasDirectricesTcnicasyde
Gestin

Larealizacindeestatareapermitirconsiderarlostrminosdereferenciaparael
sistemaenestudiodesdeelpuntodevistadedirectricestantotcnicascomode
gestin.


ID Autor Tipo Descripcin Prioridad Estado Fechade
creacin
DTG1 Merlino, Gestin Usode ALTA APROBADA 1/8/08
H. Mtrica3
como
Metodologa
aseguir
DTG2 Garca Gestin Desarrollode ALTA APROBADA 1/8/08
Martnez, una
R. Memoriadel
Trabajo
DTG3 Fras,G. Tcnica Utilizacin ALTA APROBADA 1/8/08

50
Programacin Domtica Basada en Sistemas Expertos

de
herramientas
dedesarrollo
reconocidas
yprobadas

A.1.1.3.2. IdentificacindelosRequisitos

Teniendo en cuenta la informacin recopilada en 2.1.2 (Estudio de la Situacin


Actual) sobre las soluciones disponibles y a partir de las Sesiones de Trabajo se
identificaronlossiguientesrequisitos:

a. Sistemadecontroldomticocentralizado
b. Facilidaddeinstalacin
c. Facilidaddeuso,atravsdeunainterfasegrficasencillaperopoderosa
d. Interfazgrficacomomododecontrol
e. Visualizacinycontroltantolocalcomoremoto(vaInternet)
f. Simplicidaddeprogramacin
g. Capacidaddetemporizaracciones
h. Registrodeeventos
i. Posibilidaddeactivarprogramasporlallegadadesealesexternas(alarmapor
ejemplo)

A.1.1.3.3. CatalogacindelosRequisitos
ID Autor Tipo Descripcin Prioridad Estado Fechade
creacin
REQ1 FRIAS, Arquitectura Sistemade ALTA APROBADO 1/8/08
G. control
domtico
centralizado
REQ2 FRIAS, No Facilidadde MEDIA APROBADO 21/8/08
G. Funcional instalacin
REQ3 FRIAS, No Facilidadde ALTA APROBADO 10/8/08
G. Funcional uso
REQ4 FRIAS, Funcional Interfaz MEDIA APROBADO 1/8/08
G. grficacomo
modode
control
REQ5 FRIAS, Funcional Visualizacin ALTA APROBADO 1/8/08
G. ycontrol
tantolocal
comoremoto

51
Programacin Domtica Basada en Sistemas Expertos

(vaInternet)
REQ6 FRIAS, Funcional Simplicidad ALTA APROBADO 1/8/08
G. de
programacin
REQ7 FRIAS, Funcional Capacidadde MEDIA APROBADO 17/8/08
G. temporizar
acciones
REQ8 FRIAS, Funcional Registrode BAJA APROBADO 20/8/08
G. eventos
REQ9 FRIAS, Funcional Activacinde MEDIA APROBADO 20/8/08
G. programas
porlallegada
deseales
externas

A.1.1.4. EstudiodeAlternativasdeSolucin

Enesteestudio,sepropondrndiversasalternativasquerespondansatisfactoriamente
a los requisitos planteados, considerando tambin los resultados obtenidos en 2.1.2
(Estudio de la Situacin Actual). Se realizar una descomposicin del sistema en
subsistemas,teniendoencuentaelmbitoyfuncionalidad,parafacilitarsuestudio.

A.1.1.4.1. PreseleccindeAlternativasdeSolucin

En esta tarea, se estudiarn diferentes opciones para configurar una solucin,


teniendo en cuenta los requisitos a cubrir por el sistema ya obtenidos. Las
soluciones podrn ser desarrollos a medida, o parte desarrollo y parte de
productos comerciales. Se descarta la opcin de adquirir una solucin
enteramente comercial pues este no es el objetivo del desarrollo de un trabajo
profesional.

Para llevar a cabo esta preseleccin, en primer lugar se dividir al sistema a


desarrollarenlossiguientessubsistemas:

Herramientadeprogramacindelhogar

Generadordecdigoejecutable

Unidaddeejecucindelcdigo

52
Programacin Domtica Basada en Sistemas Expertos

Simuladordelosequiposfsicos

Emuladordelasvariablesdelhogar(sensores)

Seprocederentoncesaexplicarlasposiblesalternativasdesolucin.

Alternativa A (Desarrollo de un programa nico o standalone,


programacinmediantecomandosdetexto)

La alternativa de solucin ms sencilla es construir un nico programa que


contengalossubsistemasdescritosmsarriba.Desdeestesistemasepodrn
construirlosprogramasparaautomatizacindelhogar,segenerarelcdigo
ejecutable, se ejecutar el cdigo resultante, se visualizarn resultados y se
simularn equipos fsicos y sensores. La programacin se hara desde una PC
Localendondeelusuarioingresacomandosenuneditordetexto.

DiagramadeRepresentacin

53
Programacin Domtica Basada en Sistemas Expertos

Alternativa B (Desarrollo de un programa nico o standalone,


programacingrfica)

Idem Alternativa A, slo que la programacin se hace mediante la unin de


elementosgrficosenlugardeingresarcomandosenuneditordetexto.

Alternativa C (Separar la generacin y ejecucin de cdigo de la


programacingrficayvisualizacindelosresultadosendosprogramas
separadosstandalone)

Segnestaalternativa,seseparanlossubsistemasdedicadosalageneraciny
ejecucin del cdigo de la programacin en s y se agrega la posibilidad de
visualizarlosresultadosdeesaprogramacin.

54
Programacin Domtica Basada en Sistemas Expertos

AlternativaD(Separarlageneracinyejecucindecdigoenunserver
de la programacin grfica y visualizacin de resultados, accesibles
desdeunnavegador)

55
Programacin Domtica Basada en Sistemas Expertos

A.1.1.4.2. DescripcindelasAlternativasdeSolucin

Para cada alternativa propuesta, se identifican los subsistemas que cubre y los
requisitos a los que se da respuesta. En 2.1.4.1 se referencia a los subsistemas
involucrados, es por ello, que en este tem se atacar los requisitos que cada
solucincubreyculesno.

Alternativa A (Desarrollo de un programa nico o standalone,


programacinmediantecomandosdetexto)

Segn esta alternativa, los requisitos que quedan cubiertos de acuerdo a la


tabla del punto 2.1.3.3, son REQ1 (Sistema centralizado) debido a que el
programa se instala en una sola computadora y controla a los equipos del
hogar, REQ2 (Facilidad de instalacin) por igual razn. REQ7 (Capacidad de
temporizar acciones), REQ8 (Registro de eventos) y REQ9 (Activacin por
seales externas) son requerimientos que pueden satisfacerse por medio de
esta solucin, ya que la misma no impide la implementacin de estos
requerimientos. Los requerimientos REQ4 (interfaz grfica como modo de
control) y REQ6 (Simplicidad de programacin) no quedan cubiertos, pues la
programacin mediante comandos de texto es demasiado compleja para el
usuario medio, al igual que REQ3 (Facilidad de uso). El requerimiento REQ5
(Visualizacinremota)esdedifcilimplementacindebidoaqueelprograma
seencuentraresidenteenunamquinaynoesaccesibleporInternet.

Alternativa B (Desarrollo de un programa nico o standalone,


programacingrfica)

En esta alternativa, REQ1, REQ2, REQ7, REQ8 y REQ9 quedan satisfechos por
iguales razones a las de la Alternativa A. Los requerimientos REQ4 y REQ6
quedan satisfechos a partir de la implementacin de una herramienta de
programacingrfica,aligualqueREQ3.ElrequerimientoREQ5,porsuparte
siguesiendodedifcilimplementacindebidoaqueelprogramaseencuentra
residente en una PC y no se encuentra separada la programacin de la
generacindecdigo.

56
Programacin Domtica Basada en Sistemas Expertos

Alternativa C (Separar la generacin y ejecucin de cdigo de la


programacingrficayvisualizacindelosresultadosendosprogramas
separadosstandalone)

En ella, REQ1, REQ7, REQ8 y REQ9 pueden satisfacerse, as como tambin


REQ4yREQ6graciasalasherramientasgrficas,delmismomodoqueREQ3.El
requerimiento REQ5 de la capacidad de visualizacin y programacin remota
puede ser satisfecho de una manera ms simple y eficiente que en A y B
debido a que ahora existen dos programas separados (uno de
programacin/visualizacin y otro de generacin de cdigo/visualizacin). De
cualquiermodo,lacomunicacinentredosprogramaspuedeversedificultada
en algunas situaciones por la existencia de firewalls o restricciones en los
puertos a usar. El requerimiento REQ2 de Facilidad de instalacin se ve en
partecomprometidoporqueparaaccederenformaremotaserequieredela
instalacindeunprogramaespecfico.

AlternativaD(Separarlageneracinyejecucindecdigoenunserver
de la programacin grfica y visualizacin de resultados, accesibles
desdeunnavegador)

Al igual que la Alternativa C, se satisfacen los requerimientos REQ1, REQ3,


REQ4,REQ6,REQ7,REQ8yREQ9porrazonessimilares.Lasdiferenciasradican
en que el REQ2 de Facilidad de instalacin se ve mejorado ya que la
herramientasdeprogramacinyvisualizacinsonaccesiblespormediodeun
navegadorwebdesdecualquierlugarconlocualnoesnecesarioinstalarnada
enlaeventualmquinaqueseuseparaaccederalasmismas.ElREQ5,porsu
parte, puede cumplirse de una manera ms completa y eficiente pues las
herramientas,comoyasedijo,deprogramacinyvisualizacinsonaccesibles
por la web, lo cual representa una mejora respecto a la Alternativa C, que
requera de la instalacin de un programa a parte en cada mquina desde
dondesepretendieserealizarelcontrol.

57
Programacin Domtica Basada en Sistemas Expertos

A.1.1.5. ValoracindelasAlternativas

Ya descritas las alternativas, se valorarn las mismas, considerando el impacto en la


organizacin, desde el punto de vista tecnolgico, operativo, organizativo, posibles
beneficios,costosyriesgos.

A.1.1.5.1. EstudiodelaInversin

Enestepunto,deberaevaluarse,paracadaalternativadesolucinpropuesta,la
viabilidad econmica, realizando un anlisis de coste/beneficio, que pondere los
beneficiostangibleseintangibles.

Debido a la naturaleza del presente proyecto, en el cual se lleva adelante un


trabajoprofesional,elestudiodeinversinnoesaplicablepuesnoexistencostos
oinversionesasociadas.Sepasaralestudiodelasiguientetarea.

A.1.1.5.2. EstudiodelosRiesgos

Seseleccionarnfactoresdesituacinquedebernconsiderarse,relativostantoa
laincertidumbrecomoalacomplejidaddelsistema.

Alternativa A (Desarrollo de un programa nico o standalone,


programacinmediantecomandosdetexto)

ID Autor Descripcin Gravedad Justificacin


RIE.A.1 FRIAS, Incertidumbreacercade Media Losprogramasde
G. lafacilidaddeuso lneadecomandos
requierenmayor
tiempode
entrenamiento
RIE.A.2 FRIAS, Dificultadenla Alta Las comunicaciones
G. implantacindecontrol entreelladoremotoy
desdeubicacinremota el hogar deben
efectuarse abriendo
puertos especficos o
con comunicacin
entre procesos
remotos. Los firewalls
que cada lugar posee
se convierten en una
dificultadadicional.La

58
Programacin Domtica Basada en Sistemas Expertos

existencia de un solo
programa implica que
este debe
comunicarse con los
dispositivosdelacasa
de forma directa,
complicando el
desarrollo.
RIE.A.3 FRIAS, Complejidadde Alta Losdistintos
G. comunicacinentre subsistemasque
distintossubsistemas realizantareasmuy
dentrodeunmismo diferentestienenun
programa gradode
acoplamientomuy
altoyaquetodos
formanpartedeun
nicoprograma
RIE.A.4 FRIAS, Complejidadde Media Paracontrolaren
G. instalacinremota formaremotaala
aplicacin,es
necesarioinstalar
componentes
especficosenla
mquinadesdedonde
sepretendeacceder

Alternativa B (Desarrollo de un programa nico o standalone,


programacingrfica)

ID Autor Descripcin Gravedad Justificacin


RIE.B.1 FRIAS, Dificultadenla Alta Lascomunicacionesentreellado
G. implantacin remoto y el hogar deben
decontrol efectuarse abriendo puertos
desde especficos o con comunicacin
ubicacin entre procesos remotos. Los
remota firewallsquecadalugarposeese
convierten en una dificultad
adicional. La existencia de un
solo programa implica que este
debe comunicarse con los
dispositivos de la casa de forma
directa, complicando el
desarrollo.
RIE.B.2 FRIAS, Complejidad Alta Losdistintossubsistemasque
G. de realizantareasmuydiferentes
comunicacin tienenungradodeacoplamiento
entredistintos muyaltoyaquetodosforman
subsistemas partedeunnicoprograma
dentrodeun
mismo

59
Programacin Domtica Basada en Sistemas Expertos

programa
RIE.B.3 FRIAS, Complejidad Media Paracontrolarenformaremotaa
G. deinstalacin laaplicacin,esnecesario
remota instalarcomponentesespecficos
enlamquinadesdedondese
pretendeacceder

Alternativa C (Separar la generacin y ejecucin de cdigo de la


programacin grfica y visualizacin de los resultados en dos programas
separadosstandalone)

ID Autor Descripcin Gravedad Justificacin


RIE.C.1 FRIAS, Dificultadenla Media Lascomunicacionesentreel
G. implantacinde ladoremotoyelhogardeben
controldesde efectuarseabriendopuertos
ubicacinremota especficosocon
comunicacinentreprocesos
remotos.Losfirewallsque
cadalugarposeese
conviertenenunadificultad
adicional.
RIE.C.2 FRIAS, Complejidadde Media Paracontrolarenforma
G. instalacin remotaalaaplicacin,es
remota necesarioinstalar
componentesespecficosen
lamquinadesdedondese
pretendeacceder

AlternativaD(Separarlageneracinyejecucindecdigoenunserverde
laprogramacingrficayvisualizacinderesultados,accesiblesdesdeun
navegador)

ID Autor Descripcin Gravedad Justificacin


RIE.D.1 FRIAS, Dificultadenla Baja Laaccesibilidadatravs
G. implantacinde deunnavegadorweb
controldesde permiteuna
ubicacinremota comunicacinsimple
entreelladoclienteyel
servidor,noson
necesariaslaaperturade
puertosespecficosnila
configuracindefirewalls
quepermitanaccesoala
red.

60
Programacin Domtica Basada en Sistemas Expertos

A.1.1.6. SeleccindelaSolucin

Seseleccionarentrelasalternativasalasolucinaadoptar.

A.1.1.6.1. Convocatoriadelapresentacin

En esta tarea, se efectuara la convocatoria de la presentacin de las distintas


alternativas propuestas, adjuntando los productos de la actividad anterior con el
fin de que el Comit de Direccin pueda estudiar previamente su contenido. Se
esperara confirmacin por parte del Comit de Direccin de las alternativas a
presentar.

DadalanaturalezadelpresenteproyectocomounTrabajoProfesional,estepunto
noseaplica.

A.1.1.6.2. EvaluacindelasAlternativasySeleccin

A.1.1.6.3. AprobacindelaSolucin

Se evaluarn las alternativas mencionadas en 2.1.5, debatiendo ventajas en


inconvenientesdecadaunadeellasyseseleccionarlamsadecuada.

De las cuatro alternativas presentadas en 2.1.5 (A,B,C y D), se saca como


conclusinquelasalternativasAyBparecenserlademssimpleimplementacin
aprimeravistaperotienencomoriesgosladifcilinstalacinyutilizacinenforma
remota(RIE.A.2,RIE.A.4,RIE.B.1yRIE.B.3).Teniendoencuentalosrequerimientos
REQ5 y REQ2 de prioridad alta y media, respectivamente, podemos concluir que
estossoninconvenientesdegranpeso.

TantolasalternativasCcomolaDtienenunaimplementacinquepuedeparecer
ms compleja que la A y B pues separan la programacin/visualizacin de la
generacin de cdigo y ejecucin pero traen como ventajas la separacin y
encapsulacin de tareas muy diferentes, haciendo ms eficiente el desarrollo y

61
Programacin Domtica Basada en Sistemas Expertos

prueba.LaalternativaCtienecomodesventajaelhechodequeelprogramapara
realizarlaprogramacinyvisualizacindebeinstalarseentodamquinadelacual
se pretenda controlar el hogar (RIE.C.2) y que la implementacin de la
comunicacin entre dos programas a travs de la red puede verse interrumpido
por la existencia de firewalls o puertos bloqueados como en algunas empresas
(RIE.C.1).TeniendoencuentaelpesodelosrequerimientosREQ5yREQ2,altoy
medio, respectivamente, se puede concluir que la alternativa D tiene puntos
importantes a favor: no requiere instalacin en las mquinas remotas (se usa a
partirdelnavegadorweb)ylacomunicacinentreesteclienteylamquinaenel
hogar es posible en todas aquellas mquinas que tengan acceso a internet (no
requieredepuertosadicionales).

Como conclusin, la alternativa D ofrece la solucin ms completa a los


requerimientosanalizadosen2.1.3.3.Sibienesunaalternativamscomplejaque
A o B, compensa esa complejidad con menores riesgos una vez finalizado el
proyecto (cuando el sistema est en uso), segn lo analizado en 2.1.5.2. Las
diferencias entre C y D son menores, pero la conveniencia de prescindir de
instalacin en las mquinas remotas (presente en la alternativa D), termina por
definircomosolucinaadoptaraestaltima.

62
Programacin Domtica Basada en Sistemas Expertos

A.1.2. AnlisisdelSistemadeInformacin

Enesteprocesoseobtendrunaespecificacindetalladadelsistemadeinformacinque
satisfagalasnecesidadesdeinformacindelosusuariosysirvadebaseparaelposterior
diseodelsistema.

Mtrica Versin 3 es una metodologa que cubre diseos tanto estructurados como
orientados a objetos y las actividades de ambas actividades estn integradas en una
estructuracomn.

A.1.2.1. DefinicindelSistema

Enestaactividad,sellevaracaboladescripcininicialdelsistemadeinformacin,a
partirdelosproductosgeneradosenelEstudiodeViabilidaddelSistema.Sedelimitar
elalcancedelsistema,segeneraruncatlogoderequisitosgeneralesysedescribir
elsistemamedianteunosmodelosinicialesdealtonivel.Tambinseidentificarnlos
usuarios que participarn en el proceso de anlisis, determinando sus perfiles,
responsabilidades y dedicaciones necesarias. Se elaborar, al mismo tiempo, el plan
detrabajoaseguir.

A.1.2.1.1. DeterminacindelAlcancedelSistema

EnestatareasedelimitarelAlcancedelSistemadeInformacin,utilizandocomo
puntodepartidaelEstudiodeViabilidaddelSistema.

Gracias a las sesiones de trabajo con los usuarios involucrados (ver 2.1.1.2,
Catlogo de usuarios), se obtuvieron los siguientes resultados, aplicando las
tcnicasdescritasacontinuacin:

63
Programacin Domtica Basada en Sistemas Expertos

Glosariodetrminos
ID Trmino Descripcin
T1 Controlador Dispositivo informtico (generalmente una
PC)yelconjuntodesoftwarequeseencarga
de recibir las seales provenientes del
actuador, procesarlas y generar y transmitir
las rdenes apropiadas a los actuadores
adecuados
T2 Sensor Dispositivo que mide una cantidad fsica y la
convierte en una seal elctrica que puede
serledaporelcontrolador
T3 Actuador Componente que se encarga de transformar
una seal elctrica en una accin,
generalmente mecnica sobre otro elemento
fsico
T4 Diagrama Representacin mediante elementos grficos
de una tarea de programacin en la cual se
podr solicitar informacin a uno ms
sensoresysepodrpedirunaaccinaunoo
msactuadores
T5 Programa Conjuntodeinstruccioneslistasparaser
ejecutadas
T6 Traductor Convierteundiagramaenunprograma
T7 SimuladoroEmuladorde Permitevisualizarlasaccionestomadaspor
variablesdelhogar actuadoresqueseactivaronyforzarla
activacindealgnsensorparaemularsu
habilitacin
T8 Bloque ElementogrficoqueconstituyeunDiagrama
yquerepresentaunaaccinatomar,un
condicin,etc.

64
Programacin Domtica Basada en Sistemas Expertos

DiagramadeCasosdeUso

Actoresinvolucrados

Usuario:esquienpuederealizaraltas,bajasymodificaciones
delosdiagramasyquienpuedehabilitar/deshabilitarlos
mismosparasuejecucin.
Tiempo:actortemporalquedisparaelcasodeusoEjecutar
Programacuandollegaciertoinstantepreviamentedefinido
enundiagrama.
CambioenSensorExterno:actorquerepresentaelcambiode
valorenunavariableglobal(porej.:temperaturaexterior,
intrusinenlaresidencia,etc.)quedisparaelcasodeuso
EjecutarPrograma.
Casa:actorquemodelaalosdispositivosdentrodelamisma
queseactivarnomodificarnsuestadocomoconsecuencia
dequesedispareelcasodeusoEjecutarPrograma.

65
Programacin Domtica Basada en Sistemas Expertos

DescripcindelosCasosdeUso

1. CrearDiagrama:creacindeunnuevodiagramadeflujo.
2. EditarDiagrama:enestecasodeusoserealizalamodificacinde
undiagramadeflujo,tantoensuestructura(figurasinvolucradasy
suinterconexin)comoensufuncin.
3. Administrar Diagramas: se realizan tareas de mantenimiento al
conjuntodediagramas(eliminar,habilitar).
4. EliminarDiagrama:eliminaundiagramadeflujodelosdiagramas
disponibles.
5. HabilitarDiagrama:en estecaso,seindicasiundiagramadebe o
nofigurarcomodisponibleparaejecucin.
6. GenerarPrograma:enestecasodeuso,seconvierteundiagrama
deflujoenunprogramaparasuposteriorejecucin.
7. Guardar Diagrama: se almacena el diagrama para su posterior
modificacin.
8. Probar diagrama: ejecuta inmediatamente un diagrama por nica
vez.
9. EjecutarPrograma:ejecutaunprogramapreviamentegenerado.
10. Administrar Programas: determina qu programas deben
ejecutarseenelinstanteactual.
11. Visualizar Estado: se muestra que eventos se originaron en el
hogaryqueequiposseactivaron.
12. Simular Cambio en Sensor: se simula la activacin de un sensor
paraestudiarlaejecucindelosprogramas.

66
Programacin Domtica Basada en Sistemas Expertos

ModelodeDominio

67
Programacin Domtica Basada en Sistemas Expertos

A.1.2.1.2. IdentificacindelEntornoTecnolgico

Enestatareasedefinir,enaltonivel,elentornotecnolgicoqueserequierepara
darrespuestaalasnecesidadesdeinformacin,especificandosuscondicionantes
yrestricciones.Paraellosetendrencuentaelentornotecnolgicopropuestoen
ladescripcindelasolucin,queseobtuvoenelEstudiodeViabilidaddelSistema.

DentrodelEntornoTecnolgicoautilizar,ydeacuerdoalassolucionespropuestas
enelEstudiodeViabilidaddelSistema,mediantesesionesdetrabajosedetermin
el entorno de hardware: para el lado servidor de la aplicacin deber poder
ejecutarse en una computadora hogarea de rango mediobajo, con un
procesador de al menos 800 MHz, 512 MB de RAM y 80 GB de disco duro. El
sistema operativo a utilizar ser Microsoft Windows XP/Vista. Del lado cliente,
deberpoderejecutarseenunnavegadormodernotalcomoInternetExplorer7,
Mozilla Firefox 2.x o Google Chrome 1.x en adelante, con los requerimientos de
hardwareysoftwarequesuutilizacinderive.

En cuanto al Entorno Tecnolgico de Software, se decidi por la utilizacin de


herramientas probadas y de amplia utilizacin en el mercado: Servidor Web
Apache1.3.x,BasedeDatosMySQL4.1.x,PHP4.3.xpararesponderalasconsultas
realizadas por el lado cliente. Para el resto de los componentes del servidor se
utilizar Java 1.6 como plataforma de desarrollo por su poder, flexibilidad y
soporteenelmercado.

Para construir el lado cliente, se utilizar Adobe Flex (con Adobe Flash Player
versin9)porsuampliousoenelmercado,laflexibilidadypoderdellenguajeyla
calidadfinaldelasinterfasesgrficasrealizadasenelmismo.

Respecto a la generacin del cdigo ejecutable, las opciones disponibles en el


mercado van desde la generacin de un programa a partir de un lenguaje
estructuradotalcomoC,pasandoporlenguajesorientadosaobjetoscomoJavao
C++ y lenguajes de sistemas expertos. Los lenguajes orientados a objetos fueron
rpidamentedescartados,debidoaquelosdiagramasdeflujomodelanalgoritmos
que son rpidamente encapsulados dentro de una nica clase (con lo cual las
ventajas de abstraccin/encapsulamiento al utilizar mltiples clases queda

68
Programacin Domtica Basada en Sistemas Expertos

perdida). Los lenguajes de sistemas expertos tienen la ventaja de que pueden


generar reglas del estilo SI PRECONDICION ENTONCES POSTCONDICION, que son
justamente el tipo de estructuras que aparecen en forma predominante en los
diagramasquesegenerarn.Sibienestotambinpuedehacerseconunlenguaje
estructurado, la generacin de reglas SI ENTONCES es una representacin ms
natural. Los lenguajes de sistemas expertos tienen, respecto a los estructurados,
unaventajaadicional:algenerarunprograma,elmotordelsistemaexpertotiene
herramientaspararealizarunaejecucinreglaporreglalocualnoslofacilitala
depuracin al momento del desarrollo sino que tambin provee facilidades para
detectarcuandounprogramaentraenunbucleinfinito(lascondicionesdecorte
no ocurren nunca), esto ltimo es un requisito fundamental para que la unidad
descrita en 3 cumpla eficientemente con su funcin. Dentro de los lenguajes de
sistemaexperto,existendistintasopciones,perosedecidifinalmenteporCLIPS
por su extensa documentacin online, robustez y madurez de la plataforma,
facilidad de integracin en mltiples lenguajes, adems de la existencia de
mltiplesejemplosdeaplicacin.

A.1.2.1.3. EspecificacindeEstndaresyNormas

En esta tarea se consideraran referencias de estndares, normativas, leyes o


recomendaciones, para el proceso de desarrollo del sistema de informacin en
estudio.

Enelcasodelpresenteproyecto,ydadalanaturalezadeTrabajoProfesionaldel
mismo,losestndares,normativasyleyesnoseaplican,salvoladirectiva,antes
mencionadaenestedocumento,queelTrabajoProfesionaldebeserdesarrollado
siguiendoMtrica3.

A.1.2.1.4. IdentificacindelosUsuariosParticipantesy
Finales

Enestatareaseidentificarnusuariosparticipantesyfinales,interlocutorestanto
enlaobtencinderequisitoscomoenlavalidacindelosdistintosproductosyla
aceptacinfinaldelsistema.

69
Programacin Domtica Basada en Sistemas Expertos

Catlogodeusuarios

SedefinirnlasresponsabilidadesdelosusuariosyadetectadosenelEVS


ID ApellidoyNombre Rol Responsabilidades
U1 Merlino,Hernn Director del Trabajo Direccin terica y
Profesional prctica
U2 GarcaMartnez,Ramn Director del Trabajo Direccin terica y
Profesional prctica
U3 Fernndez,Enrique ConsultorenMtrica3 Consultora
referente al
seguimiento de la
metodologa de
desarrollo
U4 Fras,Guillermo Analista / Programador Desarrollo
/Tester Documentacin
Pruebas

A.1.2.2. EstablecimientodeRequisitos

Enestaactividad,sellevaracaboladefinicin,anlisisyvalidacindelosrequisitosa
partir de la informacin facilitada por el usuario, completndose el catlogo de
requisitosobtenidoenlaactividadDefinicindelSistema.Elobjetivodeestaactividad
es obtener un catlogo detallado de requisitos, a partir del cual comprobar que los
productosgeneradosdelasactividadesdemodelizacinseajustenalosrequisitosde
usuario.

A.1.2.2.1. ObtencindeRequisitos

Enestatarea,comenzarlaobtencindetalladadeinformacinmediantesesiones
detrabajoconlosusuarios,identificadospreviamenteenlaDefinicindelSistema.

Gran parte de los requisitos ya se obtuvieron en parte durante el Estudio de


Viabilidad del Sistema, se repetirn en este punto y se agregarn los nuevos
requisitosdetectadosduranteelAnlisisdelSistemadeInformacin.

70
Programacin Domtica Basada en Sistemas Expertos


ID Autor Tipo Descripcin Prioridad Estado Fechade
creacin
REQ1 FRIAS, Arquitectura Sistemade ALTA APROBADO 1/8/08
G. control
domtico
centralizado
REQ2 FRIAS, No Facilidadde MEDIA APROBADO 21/8/08
G. Funcional instalacin
REQ3 FRIAS, Funcional Facilidadde ALTA APROBADO 10/8/08
G. uso
REQ4 FRIAS, Funcional Interfaz MEDIA APROBADO 1/8/08
G. grficacomo
modode
control
REQ5 FRIAS, Funcional Visualizacin ALTA APROBADO 1/8/08
G. ycontrol
tantolocal
comoremoto
(vaInternet)
REQ6 FRIAS, Funcional Simplicidad ALTA APROBADO 1/8/08
G. de
programacin
REQ7 FRIAS, Funcional Capacidadde MEDIA APROBADO 17/8/08
G. temporizar
acciones
REQ8 FRIAS, Funcional Registrode BAJA APROBADO 20/8/08
G. eventos
REQ9 FRIAS, Funcional Activacinde MEDIA APROBADO 20/8/08
G. programas
porlallegada
deseales
externas
REQ10 FRIAS, Rendimiento Ellado ALTA APROBADO 29/8/08
G. servidordebe
poder
ejecutarseen
unaPC
hogareade
acuerdoalas
caractersticas
deASI1.2
REQ11 FRIAS, Rendimiento Elladocliente MEDIA APROBADO 29/8/08
G debepoder
ejecutarseen
unnavegador
webde
acuerdoalas
caractersticas
deASI1.2

71
Programacin Domtica Basada en Sistemas Expertos

El Diagrama de Casos de Uso (y la breve descripcin de cada caso) fue ya


presentadoen2.2.2.1

A.1.2.2.2. EspecificacindeCasosdeUso

Enestatarea,lacualesobligatoriaparadesarrollosorientadosaobjetos,comoes
este el caso, se especificarn los casos de usos identificados, en trminos de
escenario,precondiciones,poscondicionesyexcepciones.

1. CrearDiagrama

Escenarios:elusuariodeseainiciarlaconstruccindeunnuevodiagrama

Precondiciones: si se estuvo modificando otro diagrama, deben


preguntarse al usuario si desea o no guardar los cambios y de ser
afirmativalarespuesta,actualizardichodiagrama.

Poscondiciones:secreundiagramaenblanco

Excepciones:siexistaundiagramaabiertoquesemodificynosedese
guardaresoscambios.

2. EditarDiagrama

Escenarios: el usuario agrega, elimina o mueve figuras, une o desune


figurasdeldiagrama,cambialaspropiedadesdelasmismas.

Precondiciones:existeundiagramaabierto.

Poscondiciones:eldiagramaabiertohasidomodificado.

Excepciones:

3. AdministrarDiagramas

Escenarios: el usuario elimina y habilita/deshabilita diagramas


almacenadosyaexistentes.

Precondiciones:existealmenosundiagramaalmacenado.

Postcondiciones: los diagramas indicados por el usuario fueron


eliminados,habilitadosodeshabilitados.

Excepciones:eldiagramaabiertonopuedesereliminado.

72
Programacin Domtica Basada en Sistemas Expertos

4. EliminarDiagrama

Escenarios:elusuarioeliminaundiagramaalmacenado.

Precondiciones:eldiagramaaeliminarexisteynoestabierto.

Poscondiciones:seelimineldiagramaindicado.

Excepciones:

5. HabilitarDiagrama

Escenarios:elusuariohabilitaodeshabilitaundiagrama

Precondiciones: el diagrama a habilitar/deshabilitar se encuentra


almacenado.

Poscondiciones:sehabilit/deshabiliteldiagramaalmacenado.

Excepciones:

6. GenerarPrograma

Escenarios:elusuarioguardaundiagramaycomoconsecuenciadeellose
generarelprogramacorrespondiente.

Precondiciones: el diagrama cuyo programa se intenta generar es


guardado.

Poscondiciones:segenerelprogramaasociadoaldiagramaguardado.

Excepciones:

7. GuardarDiagrama

Escenarios: el usuario intenta guardar un diagrama actual, crear uno


nuevo pero antes guardar los cambios del anterior, abrir otro diagrama
peroguardarloscambiosdelactual.

Precondiciones:Existeundiagramaactual.

Poscondiciones:Seguardaldiagramaactual.

Excepciones:

73
Programacin Domtica Basada en Sistemas Expertos

8. ProbarDiagrama

Escenarios: el usuario desea forzar la ejecucin del diagrama actual a


mododeprueba,sintenerquehabilitarlo.

Precondiciones: el diagrama ha sido guardado y no presenta


modificacionesdesdeesemomento

Poscondiciones:elprogramageneradoapartirdeldiagramafueejecutado
pornicavezconxito.

Excepciones:

9. EjecutarPrograma

Escenarios: el usuario desea forzar la ejecucin de un programa, se


cumplieronlascondicionesdecomienzodeunciertoprograma.

Precondiciones: el programa a ejecutar existe y ya fue generado a partir


deldiagramacorrespondiente.

Poscondiciones:elprogramafueejecutadoconxito.

Excepciones:

10. AdministrarProgramas

Escenarios:unacondicinexterna(cambioenunsensor,pasodeltiempo)
disparalaejecucindelosprogramasquedependendedichacondicin.

Precondiciones: existe al menos un programa almacenado que depende


delacondicinquecambi.

Poscondiciones: los programas que dependen de esa condicin fueron


disparadosymarcadoscomoejecutados.

Excepciones:

11. VisualizarEstado

Escenarios: el usuario intenta ver el estado de la casa, que eventos se


generaron,queequiposseactivaronyculesprogramasseejecutaron

Precondiciones:

74
Programacin Domtica Basada en Sistemas Expertos

Poscondiciones:semuestraenpantallaelestadodelacasayloseventos
generados.

Excepciones:

12. SimularCambioenSensor

Escenarios: el usuario simula el cambio en el valor de un sensor para


analizarqucambiosseproducenenelestadodelacasa

Precondiciones:

Poscondiciones:elsensorcuyocambiosesimulcambidevalor.

Excepciones:

A.1.2.2.3. AnlisisdelosRequisitos

Enestatareaseestudiarlainformacincapturadapreviamenteenestaactividad
paradetectarinconsistencias,ambigedades,duplicidadoescasezdeinformacin.

Se analiz la informacin de las Tareas 2.2.2.1 y 2.2.2.2 en bsqueda de


inconsistencias, ambigedades, etc. y se determin que este no era el caso. Se
continaelanlisisenelsiguientepunto.

A.1.2.2.4. ValidacindeRequisitos

Enestatarea,elgrupodeusuariosdefinidoen2.2.1.4,determinqueelcatlogo
de requisitos de 2.2.2.1 as como los casos de usos especificados en 2.2.2.2 son
vlidos,consistentesycompletos.

A.1.2.3. IdentificacindeSubsistemasdeAnlisis

Enestaactividad,sedescompondralsistemadeinformacinensubsistemas,conel
objetodefacilitarsuanlisis.

75
Programacin Domtica Basada en Sistemas Expertos

A.1.2.3.1. DeterminacindeSubsistemasdeAnlisis

En esta tarea, se descompondr al sistema en subsistemas y se definirn las


dependenciasentresubsistemasanalizandoloselementoscompartidosentreellos
ylasinterfasesentreellos.

Teniendoencuentalainformacinvertidaenelmodelodenegocio,enelmodelo
dedominio,loscasosdeusoconsusrespectivasespecificacionesyelcatlogode
requerimientos, se lleg a la conclusin de que deba hacerse una divisin en
subsistemas para mejorar la comprensin del sistema, mejorar la confiabilidad y
simplificareldesarrollodelmismo.

1. EditordeDiagramas

Descripcin: Subsistema encargado de crear, modificar y eliminar


diagramasqueposteriormenteseconvertirnenProgramasporCodeGen.

Casos de Uso Asociados: Crear diagrama, Editar diagrama, Administrar


Diagramas, Eliminar Diagrama, Habilitar Diagrama, Guardar diagrama,
ProbarDiagrama.

Requisitos Asociados: Facilidad de Uso, interfaz grfica como modo de


control, visualizacin y control tanto local como remoto, simplicidad de
programacin, lado cliente debe poder ejecutarse en un navegador web
deacuerdoalascaractersticasdeASI1.2.

76
Programacin Domtica Basada en Sistemas Expertos

2. GeneradordeCdigo

Descripcin:Subsistemaencargadodegenerar,apartirdelosdiagramas,
losprogramascorrespondientesqueposteriormenteseejecutarn.

Casos de Uso Asociados: Generar programa, Guardar diagrama, Probar


diagrama.

Requisitos Asociados: Sistema de control domtico centralizado, lado


servidor debe poder ejecutarse en una PC hogarea de acuerdo a las
caractersticasdeASI1.2.

3. Simuladoryvisualizadordeeventos

Descripcin:Subsistemaresponsablededesplegarenpantallaloseventos
quesegeneraron,equiposqueseactivaronydeproveerunainterfazpara
simularlaactivacindelossensores.

Casos de Uso Asociados: Ejecutar programa, Visualizar Estado, Simular


CambioenSensor.

Requisitos Asociados: Facilidad de uso, interfaz grfica como modo de


control, visualizacin y control tanto local como remoto, registro de
eventos,activacindeprogramasporlallegadadesealesexternas,lado
cliente debe poder ejecutarse en un navegador web de acuerdo a las
caractersticasdeASI1.2.

4. Emuladordelasvariablesdelhogar,estadodelacasa

Descripcin: Subsistema responsable de emular la comunicacin con los


dispositivos fsicos que estaran conectados en la implementacin real
(lmparas,termostatos,comandosparaaperturadepuertas,sensorespor
ejemploalarma,etc.)ydemantenerelestadodelacasaysusdispositivos.

Casos de Uso Asociados: Ejecutar programa, Visualizar Estado, Simular


CambioenSensor.

Requisitos Asociados: Sistema de control domtico centralizado,


visualizacin y control tanto local como remoto, registro de eventos,
activacindeprogramasporlallegadadesealesexternas,ladoservidor

77
Programacin Domtica Basada en Sistemas Expertos

debepoderejecutarseenunaPChogareadeacuerdoalascaractersticas
deASI1.2.

5. EjecutordeCdigo

Descripcin: Subsistema encargado de ejecutar los programas generados


cuando se cumplan sus condiciones de inicio (tiempo y/o cambio en
sensores).

Casos de Uso Asociados: Ejecutar Programa, Administrar Programas,


SimularCambioensensor.

Requisitos Asociados: Sistema de control domtico centralizado,


capacidaddetemporizaracciones,activacindeprogramasporlallegada
de seales externas, lado servidor debe poder ejecutarse en una PC
hogareadeacuerdoalascaractersticasdeASI1.2.

A.1.2.3.2. IntegracindeSubsistemasdeAnlisis

Dadoqueenlatareaanteriorseobtuvieronlasdescripcionesdelossubsistemas
deanlisis,enestatareasedescribirnlasinterfasesentresubsistemas.

78
Programacin Domtica Basada en Sistemas Expertos

SolicitarDiagramasDisponibles

Esta interfaz es la encargada de obtener la informacin relacionada con los


diagramas existentes, cules se han modificado o eliminado y cules estn
activadosodesactivados.

SolicitarArchivosdeCdigoDisponibles

Esta interfaz obtiene la informacin relacionada con los archivos de cdigo


(programas)existentes,generadosapartirdelosdiagramas;culesprogramasse
hanmodificadooeliminadoyculesestnactivadosparasuejecucin.

ActualizarEstadoDispositivos

Se ocupada de transmitir las rdenes de activacin de los dispositivos del hogar,


indicados en cada programa y de mantener informado sobre el estado de los
sensores,yaqueestospuedensercondicionesdedisparodelaejecucindeunoo
msprogramas.

ObtenerEventosySealesSensores

Estainterfazeslaencargadadesolicitarlosltimoseventosgenerados(activacin
de dispositivos, sensores, que programas se ejecutaron, etc.) y de comunicar la
simulacindelaactivacindeunsensor.

79
Programacin Domtica Basada en Sistemas Expertos

A.1.2.4. AnlisisdelosCasosdeUso

Dado que en el presente Trabajo Profesional, se realiza un Anlisis Orientado a


Objetos,enestaactividadseidentificarnlasclasescuyosobjetossonnecesariospara
realizaruncasodeusoysedescribirsuscomportamientosmediantelainteraccinde
dichosobjetos.

Esta actividad se llevar a cabo para cada uno de los casos de uso contenidos en un
subsistemadelosdefinidosenlaactividad2.2.3.

A.1.2.4.1. IdentificacindeClasesAsociadasaunCasodeUso

En esta tarea, se comenzarn a identificarn las clases de los objetos necesarios


para realizar el caso de uso, basndose en la especificacin que ya existe del
mismo.

NombredelaClase Caso(s)deUsoAsociado(s) Subsistema(s)asociado(s)


Diagrama CrearDiagrama,Editar EditordeDiagramas
Diagrama,GuardarDiagrama,
AdministrarDiagramas,
EliminarDiagrama,Habilitar
Diagrama
Figura CrearDiagrama,Editar EditordeDiagramas
Diagrama,GuardarDiagrama,
EliminarDiagrama
Programa CrearDiagrama,Editar EditordeDiagramas,
Diagrama,GuardarDiagrama, GeneradordeCdigo
GenerarPrograma,
AdministrarDiagramas,
EliminarDiagrama,Habilitar
Diagrama
Bloque CrearDiagrama,Editar EditordeDiagramas,
Diagrama,GuardarDiagrama, GeneradordeCdigo
GenerarPrograma,Eliminar
Diagrama
HomeState ProbarDiagrama,Ejecutar Emuladordelasvariables
Programa,VisualizarEstado, delhogar,estadodela
SimularCambioenSensor casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Home ProbarDiagrama,Ejecutar Emuladordelasvariables
Programa,VisualizarEstado, delhogar,estadodela
SimularCambioenSensor casa;Simuladory

80
Programacin Domtica Basada en Sistemas Expertos

visualizadordeeventos;
EjecutordeCdigo
Room ProbarDiagrama,Ejecutar Emuladordelasvariables
Programa,VisualizarEstado, delhogar,estadodela
SimularCambioenSensor casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Function ProbarDiagrama,Ejecutar Emuladordelasvariables
Programa,VisualizarEstado, delhogar,estadodela
SimularCambioenSensor casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Log ProbarDiagrama,Ejecutar Emuladordelasvariables
Programa,VisualizarEstado, delhogar,estadodela
SimularCambioenSensor casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
LogEntry ProbarDiagrama,Ejecutar Emuladordelasvariables
Programa,VisualizarEstado, delhogar,estadodela
SimularCambioenSensor casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Sensor ProbarDiagrama,Ejecutar Emuladordelasvariables
Programa,VisualizarEstado, delhogar,estadodela
SimularCambioenSensor casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Expression GenerarPrograma GeneradordeCdigo
Param GenerarPrograma GeneradordeCdigo
CodeGen GenerarPrograma GeneradordeCdigo
Executer Probardiagrama,Ejecutar Emuladordelasvariables
Programa,Administrar delhogar,estadodela
Programas,SimularCambios casa;EjecutordeCdigo
enSensor
Dispatcher EjecutarPrograma, Emuladordelasvariables
AdministrarProgramas, delhogar,estadodela
SimularCambiosenSensor casa;EjecutordeCdigo
CodeSupervisor Probardiagrama,Ejecutar Emuladordelasvariables
Programa delhogar,estadodela
casa;EjecutordeCdigo
SensorSystem SimularCambiosenSensor Emuladordelasvariables
delhogar,estadodela
casa;EjecutordeCdigo
WatchDog Probardiagrama,Ejecutar EjecutordeCdigo
Programa
RemoteFunction Probardiagrama,Ejecutar Emuladordelasvariables
Programa delhogar,estadodela
casa;EjecutordeCdigo
MotorInferencias Probardiagrama,Ejecutar EjecutordeCdigo
Programa
FileConditions ProbarDiagrama,Ejecutar EjecutordeCdigo

81
Programacin Domtica Basada en Sistemas Expertos

Programa,Administrar
Programas,SimularCambios
enSensor

A.1.2.5. AnlisisdelasClases

Estaactividad,queserealizaentodoAnlisisOrientadoaObjetos,comoenelcasodel
presente Trabajo, se describir cada una de las clases surgidas, identificando sus
responsabilidadesasociadas,atributosyrelacionesentreellas.

NOTA: dado que cada una de las siguientes tres tareas (2.2.5.1, 2.2.5.2 y 2.2.5.3)
requierenundiagramadeclasesparacadasubsistemayconelfindesimplificarla
lecturadetodalaactividad,luegodeladescripcindelatarea2.2.5.3secolocarel
diagramadeclasesfinalparacadasubsistema.

A.1.2.5.1. IdentificacindeResponsabilidadesyAtributos

En esta tarea, se identificarn atributos relevantes y responsabilidades de las


clases.

Las responsabilidades de una clase son las que definen su funcionalidad, y estn
basadasenelpapelquedesempeansusobjetosdentrodelosdistintoscasosde
uso. A partir de las mismas, se podrn encontrar las operaciones que van a
perteneceraesasclases.

Losatributosdeunaclaseespecificanpropiedadesdelaclase,yseidentificanpor
estarimplicadosensusresponsabilidades.

Seidentificarnresponsabilidadesyatributosparalasclasesdecadasubsistema,
teniendoencuentarequerimientos,casosdeusoeinterfazdeusuario(ver2.2.8)

A.1.2.5.2. IdentificacindeAsociacionesyAgregaciones

En esta tarea se estudiarn los mensajes establecidos entre los objetos del
diagramadeinteraccinparadeterminarqueasociacionesexistenentrelasclases

82
Programacin Domtica Basada en Sistemas Expertos

correspondientes. Dichas asociaciones estarn caracterizadas por su papel,


direccionalidadycardinalidad.

A.1.2.5.3. IdentificacindeGeneralizaciones

En esta tarea se representarn las clases con una organizacin que permita una
implementacinsencilladelaherenciayunaagrupacinsemnticadelasdistintas
clases.

A continuacin, se presentan los diagramas de clases resultantes para cada


subsistema:

83
Programacin Domtica Basada en Sistemas Expertos

EditordeDiagramas


Eleditordediagramaconstituyelainterfazprincipaldeusodelsistema.Suarquitecturaes
ladeunMVC.Elusuariodiseadiagramas,constituidosporFiguras,unidaspormediode
Flechas y ajusta la configuracin (clase Config) de cada Bloque del Modelo, que es
representadodemodoindirectoporunaFiguradelaVista.LaclaseControlcoordinaque
loscambiosenlaVistaseveanreflejadosenelModeloyviceversa.LaVistadesconocela
existencia del Modelo y vicerversa, la Clase Mapper, controlada por Control es quien se
encargademanteneryutilizarlasasociacionesentreloselementosdeunaylaotra.

84
Programacin Domtica Basada en Sistemas Expertos

GeneradordeCdigo

85
Programacin Domtica Basada en Sistemas Expertos

El generador de cdigo convierte la informacin almacenada por el editor de


diagramas en un programa listo para ser ejecutado. Para ello, CodeGenerator
interpretaesainformacinyconstruyeunobjetocompuestodelaclaseProgram.
EsteasuvezestcompuestoporunacoleccindeobjetosdelaClaseBlockysus
derivadas,elmtodotoCode()esredefinidoparacadasubclaseyconvierteadicho
bloqueencdigoejecutable.CadaobjetoBlockpuedeestaronocompuestopor
una o ms expresiones (Expression) y sus derivadas. Por ejemplo un BlockStart
contiene a un objeto ExpressionStart; un BlockAlloc (bloque que representa una
asignacin) est conformado por un ExpressionVariable (representando el lado
izquierdo de la asignacin) y un Expression (representa el lado derecho de la
asignacin, puede ser constante, funcin, etc.). La clase Param modela a cada
parmetrodeunafuncinypuedeestarformadaporcualquierexpresin.Unavez
construido el objeto Program, la conversin a cdigo es trivial, invocando
sucesivamentealmtodotoCode()decadaobjetocontenidoenl.

86
Programacin Domtica Basada en Sistemas Expertos

EjecutordeCdigo

87
Programacin Domtica Basada en Sistemas Expertos

Executer es la clase responsable de esperar que se cumplan las condiciones de


ejecucindecadaarchivoy,unavezsatisfechas,ordenarsuejecucin.Dispatcher
esresponsablededeterminar,encadamomento,quearchivosestnencondicin
de ser ejecutados, haciendo uso de las condiciones de inicio de cada archivo,
presentes en FileConditions. CodeSupervisor es, como su nombre lo indica,
responsable de supervisar ejecucin del cdigo, la cual est a cargo de
MotorInferencias. CodeSupervisor interviene en la ejecucin al momento de
ejecutarfuncionesdelhogarporejemplo,abrirportnydelegalaresponsabilidad
decomunicarseconelsubsistemaEmuladordelasvariablesdelhogar,estadode
la casa a la clase RemoteFunction. La clase WatchDog es la encargada de
determinarsisecumplieltiempomximoestipuladoparalaejecucin(debidoa
unprogramaqueentraenbucleinfinitoporejemplo)ynotificardeesacondicin
anmala. SensorSystem es la encargada de mantener el estado de los sensores.
StateHandler y UpdateHandler son responsables de recibir notificaciones
externassobrecambiosenlossensoresadicionardenuevosarchivosyeliminar
yaexistentes,respectivamente.

88
Programacin Domtica Basada en Sistemas Expertos

Emuladordelasvariablesdelhogar,estadodelacasa

89
Programacin Domtica Basada en Sistemas Expertos

HomeState es la clase encargada de responder a los pedidos de ejecucin de


funciones y de activacin de sensores. Home (Hogar) es la clase ocupada de
modelarlossistemasquecomponenelhogaryestcompuestaporhabitaciones
(objetos de la clase Room y sus derivadas). Cada habitacin puede ejecutar un
nmerodefunciones(quesonregistradasalmomentodeinstanciarlahabitacin)
representadasporobjetosdelaclaseFunctionysussubclases(semuestranslo
unparamodoilustrativo).Homecontienetambinaunconjuntodeobjetosdela
clase Sensor, que a su vez est especializada en la clase SensorSimulated que
modela a los sensores simulados ya que en este trabajo profesional no hay
implementacinfsicahacialossensoresfsicos.

Logesresponsabledelregistrodeeventos,cadaunodeellos,representadoenla
claseLogEntryysusclaseshijas,especializadassegnlafuncinquegeneredicho
evento.

StateQueryHandler y ExecuterCmdHandler se encargan de responder a los


pedidosderegistrodeeventosydeejecucindefunciones,respectivamente.

SensorStatusUpdater es responsable de notificar al subsistema de ejecucin de


cdigo cambios en el estado de los sensores para que ste decida que archivos
ejecutar.

90
Programacin Domtica Basada en Sistemas Expertos

Simuladoryvisualizadordeeventos

91
Programacin Domtica Basada en Sistemas Expertos

El diagrama de clases de este subsistema es bastante simple y constituye


simplemente de una capa de visualizacin con lo cual no existen clases de
entidad. La clase Simulador controla el funcionamiento de la aplicacin y se
encarga de pedir nuevos eventos para mostrar. StateResponder es responsable
deatenderlasrespuestasremotas,fallidasoexitosas.LaclaseHomeseocupade
modelar la casa y actualizar sus indicadores visuales en el simulador. La clase
Front muestra indicadores grficos y/o acsticos de los sensores que se van
activando. Alarm modela la animacin de la activacin de la Alarma de la
vivienda.Homecontieneunacoleccindehabitaciones(objetosdelaclaseRoom
ysusderivadas),cadaunodeloscualescontieneuntermmetro(Thermometer)
que muestra la temperatura interna grficamente (ver 2.2.8). La clase Patio se
encarga de la representacin visual de los eventos en el mismo, ms
especficamentedelaactivacindelRegador.

A.1.2.6. ElaboracindelModelodeDatos

Segn Mtrica versin 3, se desarrolla slo para Anlisis Estructurado, y como en el


casodelpresentetrabajoseesthaciendounAnlisisOrientadoaObjetos,seomitir
estaactividad.

A.1.2.7. ElaboracindelModelodeProcesos

Segn Mtrica versin 3, se desarrolla slo para Anlisis Estructurado, y como en el


casodelpresentetrabajoseesthaciendounAnlisisOrientadoaObjetos,seomitir
estaactividad.

A.1.2.8. DefinicindeInterfasesdeUsuario

Enestaactividad,seespecificarnlasinterfasesentreelsistemayelusuario:formatos
depantallas,dilogos.Elobjetivoesrealizarunanlisisdelosprocesosdelossistemas
deinformacinenlosqueserequiereunainteraccindelusuario,conelfindecrear
unainterfazquesatisfagalosrequisitosestablecidos.

92
Programacin Domtica Basada en Sistemas Expertos

A.1.2.8.1. EspecificacindelosPrincipiosGeneralesdela
Interfaz

El objetivo de esta tarea, es especificar los estndares, directrices y elementos


generalesatenerencuentaenladefinicindeinterfazdeusuario.

PrincipiosGeneralesdelaInterfaz

1. Elentornodelainterfazinteractivaconelusuarioserentodosloscasosque
seapliqueunainterfazgrfica.

2. Lainterfazgrficadelasherramientasdevisualizacindelestadodelacasay
ladeedicindediagramasdebersersemejantealadelosprogramastpicos
de Windows, con barras de menes, barras de herramientas, botones y
menescontextuales.

3. Al necesitar una seleccin por parte del usuario (abrir un archivo, modificar
propiedades de una figura, etc.), se deber abrir un dilogo el cual no
modificar nada en el Sistema hasta que el usuario pulse Aceptar en el
mismo.

4. El lado Servidor del Sistema, por ser justamente procesos que responden a
pedidos,nonecesitartenerunainterfazgrficaperoesdeseablequeposea
unoovariosconosdistintivosenelreadenotificacindelabarradetareas
deWindowsyquedesdelosmismospuedandetenersedichosprocesos.

5. La herramienta de visualizacin del estado de la casa deber tener un panel


desdedondepoderobservarlosltimoseventosgeneradosenlaviviendaas
comotambinunplanodelamismaendondepoderobservarenformagrfica
laactivacindelosdispositivosgrficosmsrepresentativos.

6. La herramienta de edicin de los diagramas, debe permitir el trazado de los


mismos arrastrando y soltando figuras y dibujando de modo sencillo las
unionesentrelasmismas.

93
Programacin Domtica Basada en Sistemas Expertos

7. El instalador del Sistema en el lado Servidor deber tener la interfaz de un


instalador tpico de Windows, desarrollado preferentemente con alguna
herramientaespecficaparatalfin.

A.1.2.8.2. IdentificacindePerfilesyDilogos

Elobjetivodeestatareaesidentificarlosperfilesdeusuario,deacuerdoasunivel
de responsabilidad y al alcance o naturaleza de las funciones que realizan, as
comoanalizarlascaractersticasmsrelevantesdelosusuariosquevanaasumir
estosperfiles,etc.Paratalfinsegenerauncatlogodeperfilesdeusuario.

EnelcasodelpresenteTrabajoProfesional,existeunnicoperfildeusuario,que
eselusuariofinaldelsistemaquieninstalaensucasaelsoftwarecorrespondiente
al lado Servidor y es a su vez quien ejecuta el sistema (edicin de diagramas,
visualizacindelestado)desdesucasaofueradeella.

Paraverelcatlogodeusuarios,referirsea2.2.1.4IdentificacindelosUsuarios
ParticipantesyFinales.

A.1.2.8.3. EspecificacindeFormatosIndividualesdela
InterfazdePantalla

En esta tarea se presentarn los formatos para las interfases del Sistema del
presente Trabajo Profesional ms representativas. Se desarrollaron bosquejos de
laInterfazfinalenMicrosoftVisio.

EditordeDiagrama

De acuerdo a los Principios de Interfaz y Requisitos previamente descritos, el


editordeDiagramadeberserunprogramawebconaparienciadeunprograma
tpico(standalone)deWindows,conmenes,barrasdeherramientasyuneditor
conarrastrarysoltar.Elobjetivoescrearunaaplicacinaccesibledesdecualquier
lugar,yfcildeusarcomouneditorWYSIWYG(WhatYouSeeIsWhatYouGet).

94
Programacin Domtica Basada en Sistemas Expertos

Visualizadordeeventosysimuladordeseales

Estaaplicacintambinesunaaplicacinwebconaparienciadeprogramastandalone
deWindows.DesdeelrecuadroControlsepuedesimularlallegadadenuevasseales.
Abajodelmismo,apareceelregistrodelosltimoseventosyasuizquierda,elmapa
delavivienda.

95
Programacin Domtica Basada en Sistemas Expertos

LadoServidor

ElladoServidorseencargaderesponderlospedidosdelladoclienteporlotantosus
requerimientosdeinterfazsonmnimos.Debeexistir,sinembargo,unaformasencilla
dedetenerlosprocesosdelladoservidor.

A.1.2.8.4. EspecificacindelComportamientoDinmicodela
Interfaz

Elobjetivodeestatareaesdefinirlosflujosentrelosdistintosformatosdeinterfaz
de pantalla, y tambin dentro del propio formato. Este comportamiento se
describemedianteunmodelodenavegacindepantalla.

96
Programacin Domtica Basada en Sistemas Expertos

En este punto se describir el comportamiento dinmico del subsistema ms


cercano al usuario, el Editor de Diagramas, dado que el otro componente que
necesita de la interaccin del usuario (Visualizador de Eventos y Simulador de
Seales)tieneunainterfazmuysencilla,lacualnorequieredelanavegacinpor
mltiplespantallas(ver2.2.5.3).

EditordeDiagramas

Los bloques correspondientes a Abrir Diagrama, Guardar Diagrama y Administrar


Diagrama corresponden a cuadros de dilogo desde donde abrir, guardar y activar y
eliminar diagramas, respectivamente. El bloque Nuevo Diagrama representa la
creacindeunanuevainstanciadediagramaparaserposteriormenteeditado.Editar
diagrama comprende la manipulacin grfica del mismo (mover y agregar figuras,
dibujarflechas)mientrasquelosbloquespropiedades(quedeberninvocarseatravs
de un men con botn derecho sobre la figura a modificar) corresponden a las
opciones disponibles segn el tipo de Figura. Los bloques Constante, Variable y
Funcin corresponden a cuadros de dilogo accesorios que ayudan a construir las
propiedadesdeunafiguraAsignacinoCondicin.

97
Programacin Domtica Basada en Sistemas Expertos

CuadroAbrirDiagrama

Seleccionar en la lista el Diagrama a abrir y pulsar Aceptar. El botn Cancelar evita


abrirotrodiagrama.

CuadroGuardarDiagrama

IngresarelnombredelnuevoarchivoypulsarAceptar.ElbotnCancelarevitaguardar
eldiagrama.Sielnombreestsiendousado,preguntarsisedeseasobreescribir.

CuadroAdministrarDiagramas

SeleccionarenlalistaelDiagramaaactivar(odesactivar)ytildar(odestildar)lacasilla
activado.

98
Programacin Domtica Basada en Sistemas Expertos

SeleccionarenlalistaelDiagramaaeliminar,pulsareliminaryconfirmarladecisin.

PulsandoAceptarserealizanlasmodificaciones,Cancelaromitecadaunadeellas.

PropiedadesComienzo

PresentalasopcionesdeconfiguracindeunafiguraComienzoenelDiagrama.

La configuracin de la figura de Comienzo incluye: das de la semana en que el


diagramaseejecutar,horadeldayquesealesexternaspodrnactivarlaejecucin
deesediagrama.

99
Programacin Domtica Basada en Sistemas Expertos

PropiedadesAsignacin

Una asignacin representa un bloque donde se puede hacer opcionalmente la


asignacinaunavariabledelladoizquierdodeunaexpresinaunvalorproveniente
deunaconstante,variableofuncin.Enelcasodeserunafuncin,estapreviamente
esejecutadayevaluada.

En el cuadro de texto se ingresa el nombre de la variable del lado izquierdo. La


expresindelladoderechosecompletaeligiendounaopcindelcombo,lacualabrir
un nuevo cuadro de seleccin, segn sea su tipo. En Vista previa, se muestra la
expresinresultanteenlaasignacin.

PropiedadesCondicin

Unacondicinevalaunaexpresinlgicacompuestaporunaexpresinalaizquierda
(representada por el combo superior), una expresin a la derecha y un operador de
comparacin(<,<=,=,!=,>=,>,AND,OR).Tantoelcombodelaexpresinizquierda
como el de la derecha, abren distintos cuadros si se selecciona constante, variable o
funcin.

100
Programacin Domtica Basada en Sistemas Expertos

El recuadro Vista previa muestra la expresin de condicin resultante de las


seleccionesenloscombos.

CuadroConstante

Este cuadro permite el ingreso de cualquier cadena de caracteres (AZ, az, _, 09) o
nmeroenteromayoroigualacero.

CuadroVariable

Unavariableescualquiercadenadecaracteresqueempiezacon(AZ,az,_)ysigue
concero,unoomsdelossiguientescaracteres:(AZ,az,_,09).

101
Programacin Domtica Basada en Sistemas Expertos

Cadavariabledisponibleeneldesplegablefuedefinidapreviamenteporellado
izquierdodeunaasignacin.

CuadroFuncin

Lasfuncionesestncategorizadasporlahabitacinenlaqueseejecuta.Cadafuncin
puede tener cero, uno oms parmetros. Cada parmetro puede recibir un valor de
unavariableounaconstante.

Lametodologadeusodelcuadrodefuncinesircompletandolosdesplegablesunoa
unodesdearribahaciaabajo.Hayquedefiniruntipodevalorynombreparacadauno
delosparmetrosqueapareceneneldesplegablerespectivo.

102
Programacin Domtica Basada en Sistemas Expertos

Vistapreviamuestracmovaquedandolaexpresincorrespondientealafuncinque
se est construyendo. Si existen ? significa que hay parmetros que an no se
definieron. Pulsando en ? al lado del desplegable de funcin, se puede obtener una
ayudarpidaparalafuncinseleccionada.

VisualizadordeEventosySimuladordeSeales

Si bien la interfaz de usuario de este subsistema es sencilla, vale la pena remarcar


ciertastransicionesdinmicasdealgunoseventos.

Encenderlaluzdelahabitacin

Como el plano de la casa que lo compone ser un plano de arquitectura en fondo


negro,setomarlaconvencinquealencenderlaluz,elfondodelahabitacinpasar
denegroaamarillo.

Porejemplo,enelcasodelliving:


Luzapagada Luzencendida

Ajustartemperaturadeunahabitacin

Elajustedetemperaturaenunahabitacinserrepresentadoporuncrculodentrode
lamismaenparteazulyenparterojo,elcualsertantomsrojoencuantoseest
mscercadelatemperaturamximaytantomsazulencuantoseestmscercade
latemperaturamnimadeltermostato.

103
Programacin Domtica Basada en Sistemas Expertos


Temperaturamxima Temperaturamedia Temperaturamnima

Regadoresdelpatio

La activacin de los regadores del patio estar representada por una animacin
consistente en crculos concntricos azules que crecen de radio y alcanzan un radio
mximoproporcionalalaintensidadfijadaparaelriego.

Aperturaycierredelportn

Laaperturaycierredelportndeberrepresentarseconlaexistenciaonodelportn
enelgarajeyestaracompaadaporunaanimacin.

104
Programacin Domtica Basada en Sistemas Expertos

A.1.2.8.5. EspecificacindelosformatosdeImpresin

Enestatarea,sedeberanespecificarlosformatosycaractersticasdelasentradas
ysalidasimpresas.

EnelpresenteTrabajoProfesional,nilasentradasnilassalidasestnpresentesen
formatoimpresoporlotantoestepuntodelametodologanoesaplicable.

A.1.2.9. AnlisisdeConsistenciayEspecificacindeRequisitos

Elobjetivodeestaactividadesgarantizarlacalidaddelosdistintosmodelosgenerados
enelprocesodeAnlisisdelSistemadeInformacin,yasegurarquelosusuariosylos
Analistastienenelmismoconceptodelsistema.Paracumplirdichoobjetivo,sellevan
acabolassiguientesacciones:

Verificacindelacalidadtcnicadecadamodelo.
Aseguramientodelacoherenciaentrelosdistintosmodelos.
Validacindelcumplimientodelosrequisitos.

A.1.2.9.1. VerificacindelosModelos

A.1.2.9.2. AnlisisdeConsistenciaentrelosModelos

Enestastareas,sedebernasegurarlacalidaddelosdistintosmodelos.Paraello,
seanalizlaconsistenciaentrelosmismosysucompletitud.Setuvoencuentael
Catlogo de Requisitos, el Diagrama de Casos de Uso con sus respectivas
especificaciones,diagramadesubsistemas(ysusespecificaciones),losdiagramas
declasesylaespecificacindelainterfazdeusuario.

Cada uno de estos modelos ya incluidos cuenta con las modificaciones para
garantizardichaconsistencia.

105
Programacin Domtica Basada en Sistemas Expertos

A.1.2.9.3. ValidacindelosModelos

Se validaron los modelos contra el Catlogo de Requisitos as como tambin en


reunionesconlosusuariosespecificadosenelCatlogodeUsuarios.

A.1.2.10. EspecificacindelPlandePruebas

Enestaactividad,seiniciarladefinicindelPlandePruebas,elcualservircomogua
para la realizacin de las pruebas y verificar que el sistema de informacin cumple
conlasnecesidadesestablecidasporelusuario,conlasdebidasgarantasdecalidad.

A.1.2.10.1. DefinicindelAlcancedelasPruebas

De acuerdo al sistema a desarrollar, se decidi que se utilizarn los siguientes


nivelesdepruebas:

Pruebas Unitarias de Clases: segn el caso, se evaluar si se deciden


realizarpruebasautomatizadasdelasclasescrticas(unittesting)yalresto
delasclasesselesrealizarnpruebasindividualesenformamanual.Estas
pruebas se harn paralelamente a la codificacin del sistema y slo
cuandoestasseansuperadaspodrpasarsealasiguienteactividad.Estas
pruebassernrealizadasporelalumno.

Pruebas de Integracin: se ejecutarn en forma manual y tendrn como


objetivoverificarqueelflujodedatosentredossubsistemascualesquiera
generenelproductodeseado.Estaspruebasdeintegracinserealizarnal
finalizar los subsistemas involucrados y debern ser pasadas antes de las
pruebasdesistema.Estaspruebassernrealizadasporelalumno.

Pruebas de Sistema: sern realizadas por el alumno y estarn orientadas


segnlatcnicadecajanegra,enlacualseexaminanalgunosaspectos
externosdelmodelodelsistemasintenerencuentalaestructurainterna
delsoftware.Unavezquelaaplicacinsupereestaspruebas,estarlista
paralaspruebasdeaceptacindelsistema.

106
Programacin Domtica Basada en Sistemas Expertos

Pruebas de aceptacin del sistema: sern similares a las pruebas de


sistema, pero realizadas en presencia de los directores del Trabajo
Profesional, una vez concluido el desarrollo, en la que se verificar el
cumplimiento de los requisitos funcionales previamente mencionados en
estedocumento.

A.1.2.10.2. DefinicindeRequisitosdelEntornodePruebas

En esta tarea, se definirn y recopilarn los requisitos relativos al entorno de


pruebas,completandoelplandepruebas.

Siguiendo las recomendaciones de Mtrica Versin 3, de separar el entorno de


pruebas del de desarrollo y operacin, se determin que para las pruebas
unitarias,deintegracinydesistemaacargodelalumnoseutilizarelentornode
desarrollo, y para las actividades de prueba que resulten convenientes (por
ejemplo,pruebadelinstalador)seutilizarunamquinalimpiadondeseinstalar
el sistema paso a paso. De no contar con dicha mquina limpia, podr utilizarse
unamquinavirtualatravsdeMicrosoftVirtualPCosimilar.Paralaspruebasde
aceptacin, podr, asimismo, utilizarse una mquina virtual o una PC limpia y
ejecutar el instalador provisto, siguiendo las instrucciones que generadas por el
alumnoquelcreaconveniente.

Acontinuacin,seenumeranlosrequisitosparalosentornosdepruebas

RequisitosdeHardware:
ProcesadorIntelocompatiblede800MHzosuperior
512MBRAM
30MBlibreseneldiscorgido
Conexinared

RequisitosdeSoftware:
MquinaVirtualdeJava(JREoJDK)1.6osuperior
WebServer(Apache1.3.33osuperiorrecomendado)
PHP4.3.10osuperior
MySQL4.1.9osuperior

107
Programacin Domtica Basada en Sistemas Expertos

Navegadorweb(Firefox2.0osuperiorrecomendado)
AdobeFlashPlayer10

A.1.2.10.3. DefinicindelasPruebasdeAceptacindel
Sistema

En esta tarea se realizar la especificacin de las pruebas de aceptacin del


sistema, labor fundamental para que el usuario valide el sistema, como ltimo
paso,previoalapuestaenexplotacin.

Se insistirn en los criterios de aceptacin del sistema que sirven de base para
asegurarquesatisfacelosrequisitosexigidos.

Reportedefallasdelaspruebas

Lasfallassernidentificadasduranteelanlisisyevaluacindelosresultadosdela
ejecucin de las pruebas. Se utilizar el siguiente formato para las tarjetas de
reportedepruebas.

ReportedePruebaNro:.. Fecha:__/__/__

Objetivo:.

...

Erroresencontrados:
IDCasodePrueba NivelSeveridad Descripcin


108
Programacin Domtica Basada en Sistemas Expertos

CriteriodePaso/Falla

Loscriteriosaaplicarenlaevaluacindelasdistintasinstanciasdepruebason:
Paso:Todaslaspruebasrealizadassobreeltemfueronexitosas.
Fallo:Almenosunadelaspruebasrealizadasnofueexitosa.

Elcriterioaemplearsobrelaspruebasdelaaplicacineselsiguiente:
Exitosa:Todaslaspruebasfueronrealizadasynoseencontrarondefectos
deseveridad1,2o3.
Fallida:Almenosundefectodeseveridad1,2o3fueencontrado.

Severidad Descripcin
1 Sistemadetenido

2 Fallasdefuncionalidad

3 Unasolucinalternativapuedeaplicarse

4 Errordedocumentacin/ayuda

5 Cambiosymejoras

Criteriodesuspensinyreiniciacindepruebas

Las actividades de prueba deberan ser suspendidas si se encuentra algn


problema que impida la realizacin de la prueba un problema que impida la
realizacindemspruebas.Estoimplicaquecuandoseencuentreunproblemay
se puedan seguir haciendo pruebas, las mismas deben continuar. Las pruebas
deben reiniciarse cuando los inconvenientes hayan sido solucionados,
comenzando con el primer caso de prueba para as verificar que la solucin
propuestanogenerenuevosproblemas.

Actividadesdeprueba

Las actividades de prueba contemplan: actualizar el plan de pruebas y


documentacindediseo,crearoactualizarcasosdeprueba,efectuarpruebasy
realizar su anlisis (documentando las fallas en la tarjeta previamente
mencionada)yporltimo,llevaracabolapruebadeaceptacindelsistemapara

109
Programacin Domtica Basada en Sistemas Expertos

comprobar si el mismo responde fielmente a los requisitos del sistema


previamentedefinidosenestedocumento.

A.1.2.11. AprobacindelAnlisisdelSistemadeInformacin

A.1.2.11.1. PresentacinyAprobacindelAnlisisdelSistema
deInformacin

El anlisis del sistema fue presentado y aprobado por los Directores del Trabajo
Profesional.

110
Programacin Domtica Basada en Sistemas Expertos

A.1.3. DiseodelSistemadeInformacin

En esta actividad se definir la arquitectura general del sistema de informacin,


especificando las distintas particiones fsicas del mismo, la descomposicin lgica en
subsistemas de diseo y la ubicacin de cada subsistema en cada particin, as como la
especificacin detallada de la infraestructura tecnolgica necesaria para dar soporte al
sistemadeinformacin.

A.1.3.1. DefinicindelaArquitecturadelSistema

A.1.3.1.1. DefinicindelosNivelesdeArquitectura

En esta tarea se describirn los niveles de la arquitectura software, mediante la


definicin de las principales particiones fsicas del sistema de informacin,
representadascomonodosycomunicacionesentrenodos.

Se entiende por nodo cada particin fsica o parte significativa del sistema de
informacin, con caractersticas propias de ejecucin o funcin, e incluso de
diseoyconstruccin.

Para facilitar la comprensin del sistema, se identificarn como nodos los


elementosdeinfraestructuramssignificativosdelaarquitecturaenlaquesevaa
implementarelsistemadeinformacin.

Lacomunicacinseexpresaporunaconexinentrenodos,indicandosucarcter
bidireccionalounidireccional,conlasprincipalescaractersticasdelosprotocolos
otipodemensajesutilizados.

111
Programacin Domtica Basada en Sistemas Expertos

112
Programacin Domtica Basada en Sistemas Expertos

Descripcin

El Sistema se encuentra dividido en un lado Cliente (parte baja de la


imagen)yunladoServidor(partedearribadelaimagen).

LacomunicacinentreelladoClienteyelServidorserealizavaInternet,
mientras que la conexin fsica con la red puede ser va ADSL,
Cablemdem Telefnica Dial Up. Sin embargo, una conexin de banda
ancha es deseable tanto para el Cliente como para el Servidor para
acelerarladescargadelosdatos.

ElladoCliente,representadoporlasdosPCs,esaccesiblevaunnavegador
webconsoporteFlash.DesdeallsecontrolanelEditordeDiagramasyel
Simulador, pudindose correr simultneamente en la misma PC en dos
ventanasdiferentes.

ElladoServidorestcompuestoporvariossubsistemasquesecomunican
entresvaTCP/IP,dentrodelamquinaservidor,ascomotambinuna
BasedeDatosdondepersistenlosdiagramascreadoseneleditor.Enel
servidor existe una capa que media entre los pedidos del cliente y el
servidorens,escritaenPHP.

En el lado Servidor, el subsistema CodeGen genera el cdigo de los


programasapartirdelosdiagramasenlaBasedeDatosyproveedichos
programasaExecuter,queseencargadeejecutarlos.Executerseencarga
a su vez de solicitar a HomeState la ejecucin de las funciones remotas
quien a su vez deriva los pedidos a los sensores y actuadores que, en el
casodelpresentetrabajo,sonficticiosynotienenimplementacinfsica,
comoyaseexplicalolargodelpresenteinforme.

A.1.3.1.2. IdentificacindeRequisitosdeDiseoy
Construccin

En esta tarea se realizar la especificacin de los requisitos que estn


directamente relacionados con la adopcin o diseo de una arquitectura o

113
Programacin Domtica Basada en Sistemas Expertos

infraestructuraconcreta,yquepuedencondicionareldiseoolaconstruccindel
sistemadeinformacin.

Entreestosrequisitospuedenestarlosrelacionadosconlenguajes,rendimientode
los distintos elementos de la arquitectura, as como criterios de ubicacin de
mdulosydatosenlosdistintosnodos.

Enestaactividad,lametodologasugiereincorporarlosRequisitosdeHardwarey
Software necesarios para el diseo y construccin del sistema. Los requisitos de
hardwareparapruebafueronespecificadosen2.2.10.2.DefinicindeRequisitos
delEntornodePruebasyellosseaplicanaldiseoyconstruccindelsistema.En
cuantoalosrequisitosdesoftware,alosquefiguranen2.2.10.2,debeagregarse
un IDE de desarrollo, optando por Eclipse debido a la cantidad de herramientas
disponibles para el mismo, la posibilidad de agregar plugins especficos para los
distintos lenguajes, etc. En 2.2.1.2. Identificacin del Entorno Tecnolgico se
mencionanlasherramientasdedesarrolloautilizaryaesohayqueadicionarun
editordetextoconsoporteparabsquedasconexpresionesregulareseindicacin
denmerodelnea,tilesalahoradedepurarlosarchivosPHP.

A.1.3.1.3. EspecificacindeExcepciones

Elobjetivodeestatareaesladefinicindeloscomportamientosnohabitualesen
elsistema,quereflejansituacionesanmalasosecundariasenelfuncionamientoy
ejecucindelsistemadeinformacin.Paraello,seestablecepreviamenteelnivel
de especificacin de las mismas, as como los criterios de catalogacin y
clasificacin.

A continuacin, se especificarn los lineamientos para el manejo de excepciones


para los distintos subsistemas, identificados en 2.2.3.1. Determinacin de
SubsistemasdeAnlisis.

Lado Cliente (GraFlow y Simulador): Las excepciones generadas estarn


relacionadas principalmente con la prdida de conexin con el Lado
Servidor. Cuando esto suceda, en el texto de la respuesta, que deber
estararmadaenformatoXML,deberexistiruntagllamadosuccesscuyo

114
Programacin Domtica Basada en Sistemas Expertos

valorsea1sinoocurriningnerrory0encasocontrario,enesteltimo
caso indicando adems cdigo de error y descripcin en modo texto. A
partirdeestainformacinsedecidir,durantelaconstruccindelsistema
mostrar un cuadro de aviso del error con el texto recibido u otro que se
considereconveniente.Serecomiendanodesestimarelerror.

Lado Servidor (CodeGen, HomeState y Executer): dado que estos


programas corren en el lado servidor y se dedican a atender los pedidos
delladoclienteytambinteniendoencuentaquenotendrnunainterfaz
grfica,sedecidiqueelreportedeerroresserdelasiguientemanera:
cada subsistema generar un reporte en un archivo de registro o log, en
dondesedetallarlanaturalezadelaexcepcin,fechayhoradelamisma.
Estos archivos se abrirn para concatenar datos, siendo responsabilidad
delusuariointerpretarlosyeliminarlos.

A.1.3.1.4. EspecificacindeEstndaresyNormasdeDiseoy
Construccin

En esta tarea se definirn los estndares tcnicos y de nomenclatura, normas y


recomendaciones,quegeneralmenteestnrelacionadosconlaadopcinodiseo
de una arquitectura o infraestructura tecnolgica concreta, y que pueden
condicionareldiseoolaconstruccindelsistemadeinformacin.

A partir del dilogo entre los directores del Trabajo Profesional y el alumno, se
determinqueenloreferenteaestndaresynormasdediseoyconstruccin,el
presentetrabajodeberbasarseenlaMetodologadeDesarrolloMtricaversin
3ysusrecomendaciones.Asimismo,dadalanaturalezadeldesarrolloorientadoa
objetos, debern seguirse sus principios de extensibilidad y encapsulamiento,
indicandolospatronesdediseoy/oarquitecturautilizados.

A.1.3.1.5. IdentificacindelosSubsistemasdeDiseo

Enestatarea,seconsideraroncomoSubsistemasdeDiseoalosSubsistemasde
Anlisis, identificados y descritos en 2.2.3. Identificacin de Subsistemas de
Anlisis.

115
Programacin Domtica Basada en Sistemas Expertos

A.1.3.1.6. EspecificacindelEntornoTecnolgico

ElentornotecnolgicoyasedefinienetapadeAnlisis,msespecficamenteen
2.2.1.2.IdentificacindelEntornoTecnolgico.

A.1.3.2. DiseodelaArquitecturadeSoporte

En esta actividad se llevara a cabo la especificacin de la arquitectura de soporte y


comprende el diseo de los subsistemas de soporte identificados en la actividad de
DefinicindelaArquitecturadelSistema(DSI1)yladeterminacindelosmecanismos
genricosdediseo.Estosltimossirvendeguaenlautilizacindediferentesestilos
dediseo,tantoenelmbitoglobaldelsistemadeinformacin,comoeneldiseode
detalle.

Eldiseodelossubsistemasdesoporte,conceptualmente,essimilaraldiseodelos
subsistemas especficos, aunque debe cumplir con unos objetivos claros de
reutilizacin. De esta manera, se consigue simplificar y abstraer el diseo de los
subsistemasespecficosdelacomplejidaddelentornotecnolgico,dotandoalsistema
deinformacindeunamayorindependenciadelainfraestructuraqueledasoporte.

En el caso del presente Trabajo Profesional, el cual a diferencia de los proyectos


empresariales, no persigue la elaboracin de componentes para una posterior
reutilizacin en otros sistemas. Es por ello, que aquellos subsistemas que pudieran
estar incluidos como arquitectura de soporte ya fueron considerados en los
subsistemasespecficos.

A.1.3.3. DiseodelosCasosdeUsoReales

Estaactividad,seespecificarelcomportamientodelsistemadeinformacinparaun
casodeuso,medianteobjetososubsistemasdediseoqueinteractan,ydeterminar
lasoperacionesdelasclaseseinterfasesdelosdistintossubsistemasdediseo.

116
Programacin Domtica Basada en Sistemas Expertos

A.1.3.3.1. IdentificacindelasClasesAsociadasconunCaso
deUso

En esta tarea se identificarn las clases que intervienen en cada caso de uso, a
partir del conjunto de clases definidas en la tarea Identificacin de Clases
Adicionales(DSI4.1).Dichasclasesseidentificanapartirdelasclasesdelmodelo
del anlisis y de aquellas clases adicionales necesarias para el escenario que se
estdiseando.

TeniendoencuentalodesarrolladohastaelmomentoenlaetapadeDiseoylo
vistoenlaetapadeAnlisis,concluimosquelasclasesidentificadasparaloscasos
de uso obtenidas en sta ltima etapa son vlidas y completas. Para ms
informacin, referirse a 2.2.4.1. Identificacin de Clases Asociadas a un Caso de
Uso.

A.1.3.3.2. RevisindelaInterfazdeUsuario

En esta tarea, se revisaron los diseos de interfaz hechos en Microsoft Visio en


2.2.8. Definicin de Interfases de Usuario y se analiz si las mismas pueden
completarse utilizando las herramientas de desarrollo elegidas: Flex para el lado
Cliente y Java para el lado Servidor. Se concluy que las interfases propuestas
puedenconstruirseenloslenguajesautilizar.

A.1.3.3.3. RevisindeSubsistemasdeDiseoeInterfases

En2.2.4.1.IdentificacindeClasesAsociadasaunCasodeUso,figuraademsde
lasclasesasociadasacadacasodeuso,lossubsistemasconlosquedichasclases
seencuentranrelacionadas.

A.1.3.4. DiseodeClases

Enestaactividad,setransformarelmodelodeclaseslgico,queprovienedelanlisis,
enunmodelodeclasesdediseo.Dichomodelorecogelaespecificacindetalladade
cada una de las clases, es decir, sus atributos, operaciones, mtodos, y el diseo
precisodelasrelacionesestablecidasentreellas,bienseandeagregacin,asociacino

117
Programacin Domtica Basada en Sistemas Expertos

jerarqua. Para llevar a cabo todos estos puntos, se tienen en cuenta las decisiones
tomadas sobre el entorno tecnolgico y el entorno de desarrollo elegido para la
implementacin.

A.1.3.4.1. IdentificacindeClasesAdicionales

En esta tarea se identificar un conjunto de clases que completen el modelo de


clases analizado en la tarea Validacin de los Modelos (2.2.9.3) del proceso
anterior. Las siguientes clases fueron identificadas teniendo en cuenta las
enumeradasen2.2.4.1,lasinterfasesdeusuarioproyectadasen2.2.8ylovistoen
estaetapadeDiseo.Dichasclaseseinterfases(enesteltimocaso,susnombres
empiezan con I) estn fundamentalmente relacionadas con patrones de diseo
(Builders,Factorys)paralaconstruccindeobjetoscomplejosobiendedicadasa
serviciosdelainterfazdeusuario.
NombredelaClaseo Caso(s)deUsoAsociado(s) Subsistema(s)
Interfaz asociado(s)
BuilderDiagrama CrearDiagrama,Editar EditordeDiagramas
Diagrama
BuilderPrograma CrearDiagrama,Editar EditordeDiagramas
Diagrama
BuilderMapper CrearDiagrama,Editar EditordeDiagramas
Diagrama
DraggableImage EditarDiagrama EditordeDiagramas
ICaminoFlecha EditarDiagrama EditordeDiagramas
Punto EditarDiagrama EditordeDiagramas
Lnea EditarDiagrama EditordeDiagramas
Rectngulo EditarDiagrama EditordeDiagramas
OpenDlg EditarDiagrama EditordeDiagramas
SaveDlg GuardarDiagrama EditordeDiagramas
ManagerDlg AdministrarDiagramas EditordeDiagramas
IBuilderHome, EjecutarPrograma, Emuladordelasvariables
BuildSimulatedHome VisualizarEstado,Simular delhogar,estadodela
CambioenSensor casa
IBuilderExpression, GenerarPrograma GeneradordeCdigo
BuilderExpression
IBuilderProgram, GenerarPrograma GeneradordeCdigo
BuilderProgramCLIPS
IFactoryExpression, GenerarPrograma GeneradordeCdigo
FactoryExpression
IFactoryProgram, GenerarPrograma GeneradordeCdigo
FactoryProgramCLIPS
BuilderDispatcher AdministrarProgramas EjecutordeCdigo
BuilderFileConditions AdministrarProgramas EjecutordeCdigo
BuilderSensorSystem AdministrarProgramas EjecutordeCdigo

118
Programacin Domtica Basada en Sistemas Expertos

DescripcindelasClasesAdicionales

BuilderDiagrama: clase encargada de construir un objeto de la clase Diagrama a


partirdelosdatosalmacenados,provenientesdeunaedicinprevia.

BuilderPrograma: clase responsable de la construccin de un objeto de la clase


Programaapartirdelosdatosalmacenados,provenientesdeunaedicinprevia.

BuilderMapper: esta clase se ocupa de construir un objeto de la clase Mapper a


partirdelosdatosalmacenados,provenientesdeunaedicinprevia.

DraggableImage: clase responsable de modelar los comportamientos de una


imagenarrastrable(drag&drop)porlapantalladeedicindeldiagrama,utilizada
porcadaunadelasfigurasdelmismo.

ICaminoFlecha: interfaz que declara los mtodos utilizados para definir la


estrategiaautilizarparadibujarlaflechaentredosfiguras.

Punto:claseresponsabledemodelarunpuntodentrodeldiagrama.

Lnea:claseresponsabledemodelarunalneadentrodeldiagrama.

Rectngulo:claseencargadademodelarlascoordenadasdeunrectngulodentro
deldiagrama.

OpenDlg:clasequemodelaelcomportamientodel cuadroAbrirDiagrama(ver
2.2.8.4)

SaveDlg:clasequemodelaelcomportamientodelcuadroGuardar/Guardarcomo
Diagrama(ver2.2.8.4)

ManagerDlg: clase que modela el comportamiento del cuadro Administrar


Diagramas(ver2.2.8.4)

IBuilderHome:interfazquedeclaralosmtodosutilizadosparaconstruirunobjeto
Home. BuildSimulatedHome implementa la interfaz para una casa simulada con
unaconfiguracindehabitacionespredeterminadas.

BuilderDispatcher: clase que crea un objeto de la clase Dispatcher con todos los
archivosquestadebevigilar.

BuilderFileConditions:clasequecreaunobjetodelaclaseFileConditionsapartir
deinformacinpersistente.

119
Programacin Domtica Basada en Sistemas Expertos

BuilderSensorSystem:clasequecreaunobjetodelaclaseSensorSystemapartir
deinformacinserializada.

IBuilderExpression: interfaz que declara los mtodos utilizados para construir un


objetodelaclaseExpression(haciendousodeunfactory)apartirdeinformacin
serializada.BuilderExpressionimplementaestainterfaz.

IBuilderProgram: interfaz que declara los mtodos utilizados para construir un


objeto Program (haciendo uso de un factory) a partir de la informacin
persistente. BuilderProgramCLIPS implementa esta interfaz para programas
escritosenCLIPS.

IFactoryExpression:interfazquedeclaralosmtodosparaconstruirlosobjetosde
laclaseExpressionysusderivadas.FactoryExpressionimplementaestainterfaz.

IFactoryProgram: interfaz que declara los mtodos para construir los objetos
relacionadosconlaclaseProgram.FactoryProgramCLIPSimplementaestainterfaz
paraprogramasescritosenCLIPS

A.1.3.4.2. DiseodeAsociacionesyAgregaciones

Enestatarea,secompletarnlasasociacionesyagregacionesentrelasclases.Para
facilitarlalectura,yhacerelprocesomseficiente,setranscribirnlosresultados
unavezrealizadasestaactividadylassiguientes:

A.1.3.4.3. IdentificacindelosAtributosdelasClases

En esta tarea se identificarn y describir, una vez especificado el entorno de


desarrollo,losatributosdelasclases.
Yadems,

A.1.3.4.4. IdentificacindelasOperacionesdelasClases

En esta tarea se definirn, de forma detallada, las operaciones de cada clase de


diseo.Paraello,setomarcomopuntodepartidaelmodelodeclasesgenerado
en el anlisis, as como el diseo de los casos de uso reales y los requisitos de
diseoquepuedenapareceraldefinirelentornodedesarrollo.

120
Programacin Domtica Basada en Sistemas Expertos

Seactualizarnlosdiagramasdeclasesgeneradosen2.2.5.AnlisisdelasClases,
deacuerdoalasnuevasclasesidentificadas,secompletarnconsusasociaciones,
agregaciones,atributosyoperaciones.

EditordeDiagramas

121
Programacin Domtica Basada en Sistemas Expertos

Emuladordelasvariablesdelhogar,estadodelacasa

122
Programacin Domtica Basada en Sistemas Expertos

GeneradordeCdigo

123
Programacin Domtica Basada en Sistemas Expertos

EjecutordeCdigo

124
Programacin Domtica Basada en Sistemas Expertos

Simulador

No se registraron nuevas clases durante la etapa de Diseo, por lo cual se


conservaeldiagramadelaetapadeAnlisis(tarea2.2.5.AnlisisdelasClases).

A.1.3.4.5. DiseodelaJerarqua

En esta tarea se revisar la jerarqua de clases que ha surgido en el modelo de


clases a lo largo de las tareas anteriores y comprobar si esa jerarqua es viable
segnlosmecanismosdisponiblesenelentornodedesarrolloutilizado.

Se verific la jerarqua de clases y se determin que es viable, en funcin de las


herramientasautilizarparaeldesarrollodelsistema.Enlosdiagramasexpuestos
en 2.3.4 Diseo de clases, ya figuran interfases y clases abstractas tiles que
pudieronseridentificadas.

A.1.3.4.6. DescripcindelosMtodosdelasOperaciones

Enestatareasedescribirnlosmtodosqueseusanparadetallarcomoserealiza
cada una de las operaciones de una clase. Los mtodos pueden especificarse
medianteunalgoritmo,usandopseudocdigoolenguajenatural.

Debido al nmero de clases y de mtodos, para simplificar la lectura, se decidi


especificarenborradoralosmsrepresentativosyesainformacinseutilizarala
hora de generar la documentacin para el programador (JavaDoc en el caso de
Java y ASDoc en el caso de Flex). Por ello, adems del presente informe, se
entregardocumentacinlacualestarformadaenpartedelosarchivosquesean
generadosdurantelaconstruccindelsistema,seanJavaDocsyASDocs.

A.1.3.4.7. EspecificacindeNecesidadesdeMigracinyCarga
InicialdeDatos

Enestatareaserealiza,enloscasosqueseanecesarioyapartirdelosresultados
delatarea2.2.6.4,unaprimeraespecificacindelasnecesidadesdemigracino

125
Programacin Domtica Basada en Sistemas Expertos

cargainicialdelosdatosrequeridosporelsistema,quesecompletaenlaactividad
DiseodelaMigracinyCargaInicialdeDatos(2.3.9).

En el caso del presente Trabajo Profesional, como se decidi realizar un Diseo


Orientado a Objetos, no se realiz 2.2.6.4. Sin embargo, las necesidades carga
inicial de datos y migracin en este Proyecto estarn relacionadas con las
funcionesdomticasdisponibles,lashabitacionesdondecadaunadeellaspodrn
realizarseylosparmetrosquetomanestasfunciones.

Se lleg a la conclusin que la mejor forma de cumplir con esta carga inicial es
delegar esta tarea al instalador de la aplicacin servidor y que ste se ocupe de
generarlastablasapropiadasjuntoconlosdatosqueserequieranparaactivarla
aplicacin. El instalador podr pedir que exista un motor de bases de datos
instalado y que se encuentre en funcionamiento al momento de comenzar el
procesodeinstalacin.

A.1.3.5. DiseodelaArquitecturadeMdulosdelSistema

Esta actividad se omite, debido a que su realizacin es nicamente en los casos de


DiseoEstructurado.

A.1.3.6. DiseoFsicodeDatos

En esta actividad se definir la estructura fsica de datos que utilizar el sistema, a


partir del modelo lgico de datos normalizado o modelo de clases, de manera que
teniendo presentes las caractersticas especficas del sistema de gestin de datos
concreto a utilizar, los requisitos establecidos para el sistema de informacin, y las
particularidades del entorno tecnolgico, se consiga una mayor eficiencia en el
tratamientodelosdatos.

A.1.3.6.1. DiseodelModeloFsicodeDatos

Enelpresentetrabajo,seutilizarunmotordeunaBasedeDatosrelacional,para
almacenaryrecuperarlosdiagramasgenerados,determinarsuestadoyrecuperar

126
Programacin Domtica Basada en Sistemas Expertos

lainformacinacercadelasfuncionesdomticasdisponiblesdelhogarydecada
habitacinenparticular.

Pararealizarestediseo,secreunDiagramaEntidadRelacin

ComopuedeverseenelDiagrama,eldiseodelaBasedeDatosessencillo.

Por un lado, se tiene a la entidad FILE (Archivo) que tiene varios atributos, id
representaalaidentificacinunvocaparacadaarchivodediagrama;nameesel
nombrededichoarchivo,contenteselcontenidodeesearchivoquerepresentael
diagrama(enformatoXML)yactiveindicasiesediagramaestactivo(activado)o
no.

Por el otro lado, se encuentra la entidad ROOM (habitacin) que modela a cada
habitacin de la vivienda; el atributo id es la clave y el atributo name define el
nombredelahabitacin.LaentidadFUNCTION(funcin)porsuparte,representa
cada funcin domtica disponible en el hogar; posee una clave id, un atributo
nameparaelnombrequetomalafuncin,has_returnindicasilafuncindevuelve
algn valor y help es la ayuda en lnea para el usuario sobre cmo utilizar esa
funcin. La ltima entidad, denominada PARAMETER (parmetro) representa a
cadaparmetroquetomaunafuncinconsunombre(atributoname)yclave(id).

127
Programacin Domtica Basada en Sistemas Expertos

Cadahabitacinpuedeejecutar0msfuncionesmientrasquecadafuncinest
disponible en 0 ms habitaciones (relacin Ejecuta). Asimismo, cada funcin
puede tener 0 ms parmetros mientras que cada parmetro est relacionado
conunayslounafuncin.

A partir de estas entidades se construirn las tablas correspondientes que sern


explotadasprincipalmenteporelsubsistemaEditordeDiagramas.

Elaccesoadichastablaspermitirllenarloscuadrosdedilogoespecificadosen
2.2.8.4.EspecificacindelComportamientoDinmicodelaInterfaz.

TeniendoencuentaqueelmotordebasededatosautilizaresMySQL(ver2.2.1.2.
Identificacin del Entorno Tecnolgico), las sentencias para generacin de las
tablasseran:

CREATE TABLE files( id INT NOT NULL AUTO_INCREMENT PRIMARY


KEY , name VARCHAR(50), content TEXT, active INT NOT NULL)
ENGINE=InnoDB;

CREATE TABLE rooms (id INT NOT NULL PRIMARY KEY , name
VARCHAR(50)) ENGINE=InnoDB;

CREATE TABLE functions (id INT NOT NULL PRIMARY KEY, name
VARCHAR(50), help VARCHAR(200), has_return INT NOT NULL )
ENGINE=InnoDB;

CREATE TABLE parameters(id INT NOT NULL PRIMARY KEY, name


VARCHAR(50)) ENGINE=InnoDB;

CREATE TABLE rooms_functions (id_room INT NOT NULL REFERENCES


rooms(id) ON UPDATE CASCADE ON DELETE CASCADE, id_function
INT NOT NULL REFERENCES functions(id) ON UPDATE CASCADE ON
DELETE CASCADE, PRIMARY KEY(id_room, id_function))
ENGINE=InnoDB;

CREATE TABLE functions_parameters (id_function INT NOT NULL


REFERENCES functions(id) ON UPDATE CASCADE ON DELETE CASCADE,
id_parameter INT NOT NULL REFERENCES parameters(id) ON UPDATE
CASCADE ON DELETE CASCADE, PRIMARY KEY(id_function,
id_parameter)) ENGINE=InnoDB;

La tabla rooms_functions representa la relacin Ejecuta mientras que la tabla
functions_parametersrepresentalarelacinRecibe.

128
Programacin Domtica Basada en Sistemas Expertos

A.1.3.6.2. EspecificacindelosCaminosdeAccesoalosDatos

El objetivo de esta tarea es determinar los caminos de acceso a los datos


persistentesdelsistema,utilizadosporlosprincipalesmdulos/clasesdeacuerdo
almodelofsicodedatos,conelfindeoptimizarelrendimientodelosgestoresde
datos o sistemas de ficheros y el consumo de recursos, as como disminuir los
tiemposderespuesta.

Acontinuacin,seespecificarnloscaminosparaobtenerdatosdesdelaBasede
Datos:

a. Lista de archivos (diagramas) almacenados (cuadros Abrir, Guardar y


Guardarcomo)

Requieren el acceso a una nica tabla (files), los datos deben ser ledos,
serializadosaXMLporpartedelmediador(archivo)entrelaBaseMySQLy
lainterfazweb(Flex),lacualmostrarellistadoenpantalla.

b. Guardararchivo(diagrama)

Apartirdeltemanterior,esnecesariounnicoaccesoalatablafilespara
guardarelnuevoarchivoconunnuevoidguardarunarchivoexistente
consucorrespondienteid.

c. Lista de archivos (diagramas) almacenados y activados/desactivados


(cuadroAdministrarDiagramas)

Requiere el acceso a una nica tabla (files), los datos deben ser ledos,
serializadosaXMLporpartedelmediador(archivo)entrelaBaseMySQLy
la interfaz web (Flex), la cual mostrar el listado en pantalla y cules se
encuentranactivadosyculesno.

129
Programacin Domtica Basada en Sistemas Expertos

d. Recuperarfuncionesdomticasdisponibles,consusparmetrosyenqu
habitacionespuedenejecutarse

En este caso, es necesario acceder a 5 tablas (rooms, functions,


parameters,rooms_functionsyfunctions_parameters),losdatosdebenser
ledos, serializados a XML por parte del mediador (archivo) entre la Base
MySQL y la interfaz web (Flex), la cual mostrar el listado en pantalla y
culesseencuentranactivadosyculesno.

A continuacin, se evaluar si conviene desnormalizar para acelerar la


performance.

A.1.3.6.3. OptimizacindelModeloFsicodelosDatos

Enestatareasedecidirsioptimizareldiseofsicodedatos,conelobjetivode
mejorar el tiempo de respuesta en el acceso a datos persistentes, hacer una
adecuadautilizacindelosrecursosdelsistemay,enconsecuencia,garantizarque
eldiseosatisfacelasnecesidadesdetratamientoestablecidasparaelsistemade
informacinencuantoaqueseajustaalosrequisitosderendimientoexigidos.

Dados los caminos de accesos definidos en el 2.3.6.2, el nico que puede ser
mejorado (aquel con una cantidad de accesos mayor a uno) es d. Teniendo en
cuenta la naturaleza del Trabajo Profesional, la arquitectura decidida para el
sistema, los requerimientos funcionales antes expresados y el hecho de que las
funcionesdomticassoncomomuchounpardedecenas,sedecidimantenerla
estructuranormalizadadescritaen2.3.6.1.Adems,noexistirngrancantidadde
accesos concurrentes (este sistema corre en el entorno de una vivienda y
automatizalastareasparaesaenparticular,podrnexistiraccesosremotospero
pocas personas los habitantes de la misma sern los interesados en utilizar el
EditordeDiagramas).

130
Programacin Domtica Basada en Sistemas Expertos

A.1.3.6.4. EspecificacindelaDistribucindeDatos

El Gestor de Datos con las tablas antes mencionadas en la Actividad, estar


ubicado en el Servidor que puede verse en el Diagrama de Arquitectura, en la
actividad2.3.1.DefinicindelaArquitecturadelSistema.

A.1.3.7. VerificacinyAceptacindelaArquitecturadelSistema

Elobjetivodeestaactividadesgarantizarlacalidaddelasespecificacionesdeldiseo
delsistemadeinformacinylaviabilidaddelmismo,comopasoprevioalageneracin
delasespecificacionesdeconstruccin.

A.1.3.7.1. VerificacindelasEspecificacionesdeDiseo

El grupo de trabajo verific cada uno de los modelos generados y se comprob


questosestabandeacuerdoalastcnicasseguidasparalaelaboracindecada
producto.

A.1.3.7.2. AnlisisdeConsistenciadelasEspecificacionesde
Diseo

En esta tarea, el grupo de trabajo verific que las especificaciones de diseo


fueran coherentes entre s y que carezcan de ambigedades o duplicacin de
informacin.Pudoasegurarse,entonces,laconsistenciaentrelasespecificaciones
dediseoylosmodelosdelanlisis.

A.1.3.7.3. AceptacindelaArquitecturadelSistema

Los Directores del presente Trabajo Profesional aceptaron la arquitectura


presentadadelsistema,ysussugerenciasfueronincorporadasenladescripcinde
lasanteriorestareasdeDiseodeesteinforme.

131
Programacin Domtica Basada en Sistemas Expertos

A.1.3.8. GeneracindelasEspecificacionesdeConstruccin

Enestaactividadsegenerarnlasespecificacionesparalaconstruccindelsistemade
informacin,apartirdeldiseodetallado.

Estas especificaciones definen la construccin del sistema de informacin a partir de


las unidades bsicas de construccin (componentes), entendiendo como tales
unidades independientes y coherentes de construccin y ejecucin, que se
correspondenconunempaquetamientofsicodeloselementosdeldiseodedetalle,
comopuedensermdulos,clasesoespecificacionesdeinterfaz.

A.1.3.8.1. EspecificacindelEntornodeConstruccin

En esta tarea se definir el entorno necesario para la construccin de los


componentes del sistema de informacin, en cuanto a hardware, software,
comunicacionesyherramientasdeconstruccin.

ElentornodeconstruccindeesteTrabajoProfesionalestlimitadoalosrecursos
disponiblesporpartedelalumno,pudiendomencionar:

Hardware

o Una PC (Intel Core Duo 1,6 GHz, 2GB RAM, Disco de 80 GB,
Resolucin1280x800pxeles)

Software

o WindowsXPSP2Professional

o MicrosoftVirtualPC6.0

o Navegadoresweb(InternetExplorer7,MozillaFirefox2.0,Google
Chrome1.0)

o EasyPHP1.8(Apache1.3.x,BasedeDatosMySQL4.1.x,PHP4.3.x)

o AdobeFlashPlayer9

132
Programacin Domtica Basada en Sistemas Expertos

o Herramientasdeconstruccin

Java1.6(JDK1.6.0.11)
CLIPS(versin6.3)
IDEEclipse(3.3.0)conFlexBuilder3Plugin
NullsoftScriptableInstallSystemversin2.44(Generador
deinstaladores)

Comunicaciones

o ConexinaInternetporBandaAnchaa1Mbps

A.1.3.8.2. DefinicindeComponentesySubsistemasde
Construccin

En esta tarea, se definieron a los subsistemas de diseo como subsistemas de


construccin,esdecir,existirncincosubsistemasdeconstruccin:

1. EditordeDiagramas
2. GeneradordeCdigo
3. Simuladoryvisualizadordeeventos
4. Emuladordelasvariablesdelhogar,estadodelacasa
5. EjecutordeCdigo

Los subsistemas 1 y 3 sern construidos en Flex para ser utilizados a travs del
navegadorweb,desdeelladoClientedelsistema.
Elrestodelossubsistemassernconstruidoscomoprogramasindependientesen
Java,formandoelladoServidordelsistema.

La comunicacin para sincronizacin y notificacin de eventos entre los
subsistemas del Servidor ser va el protocolo TCP/IP mediante el formato
apropiado mientras que la comunicacin entre los subsistemas del lado Cliente
conlosdelladoServidorserestrictamentevaelprotocoloHTTP,desarrollndose
losarchivosPHPnecesariosparabrindarlosWebServicesapropiados.

133
Programacin Domtica Basada en Sistemas Expertos

A.1.3.9. DiseodelaMigracin

Esta actividad slo se lleva a cabo cuando es necesaria una carga inicial de
informacin,ounamigracindedatosdeotrossistemas,cuyoalcanceyestrategiaa
seguirsehabrestablecidopreviamente.

Paraello,setomacomoreferenciael plandemigracinycargainicialdedatos,que
recogelasestructurasfsicasdedatos delsistemaosistemasorigenimplicadasenla
conversin,laprioridadenlascargasysecuenciaaseguir,lasnecesidadespreviasde
depuracin de la informacin, as como los requisitos necesarios para garantizar la
correcta implementacin de los procedimientos de migracin sin comprometer el
funcionamientodelossistemasactuales.

En este Trabajo, como no existe migracin de datos de otros sistemas, slo se


trabajarenestaactividadlacargainicialdedatos.

A.1.3.9.1. DiseodeProcedimientosdeCargaInicial

Enestatareasedefinirnlosprocedimientosnecesariosparallevaracabolacarga
inicialdedatosdelsistema.

Como punto de partida se tiene en cuenta, junto con los requisitos y


especificaciones de carga inicial, el modelo fsico de datos optimizado y su
localizacin en los nodos, as como la definicin del entorno tecnolgico del
sistemadeinformacin.

Los procedimientos asociados son, principalmente, los relacionados con la


preparacin,larealizacinylaposteriorverificacindelproceso.

Paraestepunto,setomaronlossiguientescriteriosalahoradelacargainicialde
datos:

Lacargainicialdedatosdeberestarincluidaenelprocesodeinstalacin
delladoServidor.

134
Programacin Domtica Basada en Sistemas Expertos

Deber desarrollarse un programa que a partir del nombre de usuario y


contrasea (especificados por quien est instalando el sistema), se
encargue de generar las tablas correspondientes y cargar los datos
iniciales, sin mayor intervencin que mantener el motor de la base de
datosactivo.

Encasodeexistirlastablas,deberndescartarseycrearseyllenarsedesde
cero.

Ante la eventual desinstalacin del lado Servidor, las tablas y sus datos
debernpermaneceralmacenadas.

Las tablas debern ser creadas y posteriormente llenadas en este orden:


rooms,functions,parameters,rooms_functionsyfunctions_parameters.La
tabla files que contiene los diagramas deber ser inicializada antes que
todasysinregistros.

A.1.3.10. EspecificacinTcnicadelPlandePruebas

En esta actividad se realizar la especificacin de detalle del plan de pruebas del


sistema de informacin para cada uno de los niveles de prueba establecidos en el
procesoAnlisisdelSistemadeInformacin:

Pruebasunitarias
Pruebasdeintegracin
Pruebasdelsistema
Pruebasdeimplantacin
Pruebasdeaceptacin

Paraellosetomacomoreferenciaelplandepruebas,querecogelosobjetivosdela
prueba de un sistema, establece y coordina una estrategia de trabajo, y provee del
marcoadecuadoparaplanificarpasoapasolasactividadesdeprueba.

135
Programacin Domtica Basada en Sistemas Expertos

A.1.3.10.1. EspecificacindelEntornodePruebas

Enestatareasedefinirelentornonecesarioparalarealizacindelaspruebasdel
sistema:unitarias,deintegracin,deimplantacinydeaceptacin.

El objetivo de esta tarea ya fue cubierto en la Etapa de Anlisis, en el punto


2.2.10.2.DefinicindeRequisitosdelEntornodePruebas.

A.1.3.10.2. EspecificacinTcnicadelosNivelesdePrueba

En esta tarea se realizar la descripcin de los principios tcnicos que guiarn a


cadaunodelosnivelesdelaspruebas:

PruebasUnitariasdelasClases

Las Pruebas Unitarias de las Clases o unit testing se limitar, como ya se


mencion en la fase de anlisis, a aquellas clases que provean servicios
fundamentales para que el sistema cumpla su objetivo en el lado Servidor,
esto significa que se probarn en particular las clases dedicadas a la
interpretacin del diagrama, generacin y ejecucin del programa y las
funciones. Para ello se usar JUnit. El lado cliente de la aplicacin, dado su
carcter netamente interactivo y visual, impide la automatizacin de las
pruebas, con lo cual las clases de los subsistemas que lo componen sern
probadasatravsdepruebasdeintegracinydesistema.

PruebasdeIntegracin

Las Pruebas de Integracin tendrn como objetivo asegurar que los distintos
subsistemasrecibanlainformacinenelformatoesperadoyquesusalidaest
acordealaesperadaporelsubsistemaquedependedelprimero.Severificar
entonces, que al generar un diagrama, este puede ser interpretado
correctamenteyquesegenereunprogramacapazdeserinterpretadoporel
motordeinferenciasyquelasfuncionesutilizadasseejecutencorrectamente.

136
Programacin Domtica Basada en Sistemas Expertos

PruebasdeSistema

Laspruebasdesistematendrncomoobjetivoverificartodoelproceso,desde
la generacin del diagrama, el guardado, una eventual reapertura, la
generacin del programa, la puesta en espera para ejecucin del mismo y la
activacin correspondiente con su comprobacin en el simulador de las
accionestomadas.

PruebasdeAceptacindelSistema

LaspruebasdeAceptacindelSistemasonsimilaresalasPruebasdeSistema
pero las primeras se realizan en presencia de los Directores del Trabajo
Profesional.

A.1.3.11. EstablecimientodeRequisitosdeImplantacin

Enestaactividadsecompletarelcatlogoderequisitosconaquellosrelacionadoscon
la documentacin que el usuario requiere para operar con el nuevo sistema, y los
relativosalapropiaimplantacindelsistemaenelentornodeoperacin.

La incorporacin de estos requisitos permite ir preparando, los medios y recursos


necesarios para que los usuarios, tanto finales como de operacin, sean capaces de
utilizarelnuevasistemadeformasatisfactoria.

A.1.3.11.1. EspecificacindelosRequisitosdeDocumentacin
deUsuario

Enestatareaserecogertodalainformacinnecesariaparalaespecificacindela
documentacinaentregaralusuario.

LadocumentacinaentregaralUsuarioconsistirenunarchivodeayudaporcada
uno de los subsistemas generado, en formato de Ayuda Compilada en HTML
(CHM),pudindoseinstalardelladoservidordesdeelinstalador.Adicionalmente,
podrinstalarseestadocumentacindeayudadelladoClienteenformatoHTML
plano, y as ser accesible a travs de la Web desde el Editor de Diagramas y/o
Simulador.

137
Programacin Domtica Basada en Sistemas Expertos

A.1.3.11.2. EspecificacindeRequisitosdeImplantacin

En esta tarea se especificarn de forma detallada los requisitos de implantacin,


generalmenterelacionadosconlaformacin,infraestructuraeinstalacin,conel
fin de preparar y organizar, con la antelacin suficiente, todos los recursos
necesariosparalaimplantacineinstalacindelsistemadeinformacin.

RequisitosdeFormacin

Los requisitos de formacin del usuario de este sistema (lado Cliente) son
conocimientos bsicos de diagramas de flujo, manejo de PC e Internet. Del lado
servidor, para la instalacin del sistema y puesta en marcha, es deseable que
poseaconocimientosdeinstalacinyconfiguracindeunservidorWebyBasede
Datos as como experiencia en programacin; sin embargo estas tareas pueden
serllevadasadelanteporuntcnicoquerealicedichaconfiguracininicial.

RequisitosdeInfraestructuraeInstalacin

El lado servidor de la aplicacin deber poder ejecutarse en una PC con un


procesador de 800 MHz o superior, con al menos 512 MB de RAM y 30 MB de
espaciolibreeneldiscoparalainstalacindelsistema.Debertenerinstaladopor
lomenosunbrowser(InternetExplorer7,MozillaFirefox2.0,GoogleChrome1.0
superiores),unWeb Server(Apache 1.3recomendado),BasedeDatos(MySQL
4.1 recomendado), PHP (4.3 recomendado), Adobe Flash plugin versin 9 o
superior y Java 1.6 o superior. Una conexin a internet de banda ancha es un
requisito deseable (en particular, si se desea acceder al sistema desde fuera del
hogar)peronoimprescindible(casocontrario,puedeprogramarsedesdeelmismo
servidor).

138
Programacin Domtica Basada en Sistemas Expertos

A.1.3.12. AprobacindelDiseodelSistemadeInformacin

A.1.3.12.1. PresentacinyAprobacindelSistemade
Informacin

LosdirectoresdelTrabajoProfesionalrevisaronyaprobaronelDiseodelSistema
deInformacinpresentadoenestaEtapaquefiguraenelpresenteinforme.

139
Programacin Domtica Basada en Sistemas Expertos

A.1.4. ConstruccindelSistemadeInformacin

En este proceso se genera el cdigo de los componentes del Sistema de Informacin, se


desarrollarntodoslosprocedimientosdeoperacinyseguridadyseelaborarntodoslos
manuales de usuario final y de explotacin con el objetivo de asegurar el correcto
funcionamientodelSistemaparasuposteriorimplantacin.

A.1.4.1. PreparacindelEntornodeGeneracinyConstruccin

El objetivo de esta actividad es asegurar la disponibilidad de todos los medios y


facilidadesparaquesepuedallevaracabolaconstruccindelsistemadeinformacin.
Entre estos medios, cabe destacar la preparacin de los puestos de trabajo, equipos
fsicos y lgicos, gestores de bases de datos, bibliotecas de programas, herramientas
degeneracindecdigo,basesdedatosoficherosdeprueba,entreotros.

A.1.4.1.1. PreparacindelEntornodeGeneraciny
Construccin

Enestatareaseprocedera:

Crear los elementos del sistema gestor de base de datos o sistema de


ficheros.

Reservar el espacio de almacenamiento, definiendo, entre otros, los


dispositivos fsicos a emplear, tamao de los bloques, tipo de registro
fsico, zona de desbordamiento, opciones de almacenamiento de datos,
etc.

Inicializar la base de datos o ficheros, cargando los datos considerados


necesariosenelespaciodealmacenamientopreviamentedefinido.

BasedeDatos

Enlabasededatossealmacenarnlosdiagramascreadosporelusuarioyse
recuperar la informacin de que funciones domticas estn disponibles en
culoculeshabitacionesyqueparmetrostoman.Acontinuacinsedetalla
elscriptdecreacindelabasededatos.

140
Programacin Domtica Basada en Sistemas Expertos

CREATE DATABASE newport;


USE newport;

CREATE TABLE files( id INT NOT NULL AUTO_INCREMENT


PRIMARY KEY , nombre VARCHAR(50), content TEXT, active
INT NOT NULL) ENGINE=InnoDB;

CREATE TABLE rooms (id INT NOT NULL PRIMARY KEY , name
VARCHAR(50)) ENGINE=InnoDB;

CREATE TABLE functions (id INT NOT NULL PRIMARY KEY,


name VARCHAR(50), help VARCHAR(200), has_return INT NOT
NULL ) ENGINE=InnoDB;

CREATE TABLE parameters(id INT NOT NULL PRIMARY KEY,


name VARCHAR(50)) ENGINE=InnoDB;

CREATE TABLE rooms_functions (id_room INT NOT NULL


REFERENCES rooms(id) ON UPDATE CASCADE ON DELETE
CASCADE, id_function INT NOT NULL REFERENCES
functions(id) ON UPDATE CASCADE ON DELETE CASCADE,
PRIMARY KEY(id_room, id_function)) ENGINE=InnoDB;

CREATE TABLE functions_parameters (id_function INT NOT


NULL REFERENCES functions(id) ON UPDATE CASCADE ON
DELETE CASCADE, id_parameter INT NOT NULL REFERENCES
parameters(id) ON UPDATE CASCADE ON DELETE CASCADE,
PRIMARY KEY(id_function, id_parameter)) ENGINE=InnoDB;

Enlatablafilesfigurarnunregistroporcadadiagramasalvadoporelusuario,
elcampocontentrepresentaelcontenidodeldiagramaenformatoXML(dicho
formato se explicar en detalle ms adelante en este punto). Esta tabla se
inicializarvacaalmomentodelacargadeinicialdedatos.

El resto de las tablas corresponden a las funciones domticas con los


parmetrosquetomacadaunadeellasyenquehabitacionesdelavivienda
estndisponibles.

141
Programacin Domtica Basada en Sistemas Expertos

Acontinuacinsedetallarncadaunadeestasfunciones:

Nombrede Disponible
Descripcin Parmetro(s) Devuelve
lafuncin en:
luz Living
Ajustala Cocina
intensidaddela Intensidad Comedor

luzdeuna (entero0..10) Bao
habitacin Dormitorio
Garage
fijarTemperatura Living
Fijala Cocina
temperaturadela Valor(entero Comedor

habitacin 20..30) Bao
seleccionada Dormitorio
Garage
enviarSMS Envaunmensaje
Nro(entero)
detextomensaje
Mensaje General
aunnmerode
(texto)
telfononro
regadores Activalos
regadoresconla Intensidad
Patio
intensidad (entero0..10)
especificada
activarAlarma Disparalaalarma
General
delavivienda
incrementar Incrementaen1 Valor
elvalordel Valor(entero) General incrementa
parmetrovalor doen1
suma Sumando1 Sumando1
Sumadosvalores Sumando2 General +
(enteros) Sumando2
abrirPorton Abreelportn
Garage
delGarage
cerrarPorton Cierraelportn
Garage
delGarage
obtTemperatura Devuelvela Living
temperaturaen Cocina Temperatu
grados Comedor radela

centgradosdela Bao habitacin
habitacin Dormitorio enC
seleccionada Garage
encenderMi cantSegundo
croondas s(entero):
Activaelhornoa cantidadde
microondascon segundosde
laintensidady coccin Cocina
duranteeltiempo intensidad
determinado (entero
0..10):
intensidad

142
Programacin Domtica Basada en Sistemas Expertos

decoccin
debug Despliegaun
mensaje
(paramDebug1 paramDebug
concatenadocon 1(texto)
General
paramDebug2)en paramDebug
laconsolade 2(texto)
eventosdel
simulador
resta Minuendo
Minuendo
(entero)
Restadosvalores General
Sustraendo
Sustraendo
(entero)
NOT Cerosi
valores
distintode
Niegaavalor Valor(entero) General 0
Unosi
valores
iguala0
grabarTV Grabaelcanalde Canal
TVespecificado (entero)
durantela DuracionMin
Living
cantidadde (duracinde
minutos lagrabacin
solicitada enminutos

FormatosdeArchivoaUtilizar

Laformadeintercambiodedatosentresubsistemasserapartirdearchivos
XML,conlocual,acontinuacinsedefinirnlasestructurasdelosprincipales,
utilizandoXSDSchema.

Archivosgeneradosporeleditordediagramas

Estos archivos son generados al guardar un diagrama en la base de


datos y sonalmacenados en el campo content de cada registro de la
tablafiles.Paraabrirundiagrama,serecuperaaunarchivoporidde
la tabla files, se interpreta el content y se regenera el diagrama
correspondiente.LadefinicinformalconelXSDSchemaes:

143
Programacin Domtica Basada en Sistemas Expertos


<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="file">
<xs:complexType>
<xs:sequence>
<xs:element name="diagrama">
<xs:complexType>
<xs:sequence>
<xs:element name="figura" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="left" type="xs:integer"/>
<xs:element name="top" type="xs:integer"/>
<xs:element name="width" type="xs:integer"/>
<xs:element name="height" type="xs:integer"/>
<xs:element name="label" type="xs:string"/>
<xs:element name="tooltip" type="xs:string" />

<xs:element name="siguiente" minOccurs="0" maxOccurs="1">


<xs:complexType>
<xs:attribute name="destino" type="xs:integer"
use="required"/>
</xs:complexType>
</xs:element>

<xs:element name="verdadero" minOccurs="0" maxOccurs="1">


<xs:complexType>
<xs:attribute name="destino" type="xs:integer"
use="required"/>
</xs:complexType>
</xs:element>

<xs:element name="falso" minOccurs="0" maxOccurs="1">


<xs:complexType>
<xs:attribute name="destino" type="xs:integer"
use="required"/>
</xs:complexType>
</xs:element>

</xs:sequence>
<xs:attribute name="type" type="xs:string" use="required"/>
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="programa">
<xs:complexType>
<xs:sequence>
<xs:element name="start_id" type="xs:integer" minOccurs="0"
maxOccurs="1"/>
<xs:element name="block" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:any/>
</xs:sequence>

<xs:attribute name="type" type="xs:string" use="required"/>


<xs:attribute name="id" type="xs:integer" use="required"/>

<xs:attribute name="next" type="xs:integer"/>


<xs:attribute name="verdadero" type="xs:integer"/>
<xs:attribute name="falso" type="xs:integer"/>
</xs:complexType>

144
Programacin Domtica Basada en Sistemas Expertos

</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="mapper">
<xs:complexType>
<xs:sequence>
<xs:element name="item" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="figura" type="xs:string"/>
<xs:element name="bloque" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

Grficamente,usandoelVisualStudio,seapreciaquelaestructuradelXMLquesegenerares
sencilla:

Cada elemento del XML est representado como un rectngulo, y cada uno a su vez puede
contener atributos o/y otros elementos. De la figura, puede deducirse que el elemento
principaldelXMLesfileycontienetreselementos:diagrama,programaymapper.Elprimero
contiene0msfiguras,unaporcadafiguradelaVistaqueformaeldiagramadeflujo.Las
figuraspuedenestarconectadasentrespormediodeloselementossiguiente,verdaderoy

145
Programacin Domtica Basada en Sistemas Expertos

falsoyallespecificandocomoatributoeliddelafiguradestino.Elelementoprogramaesal
Modelo del editor de diagramas lo que diagrama es a la Vista. Contiene 0 o ms elementos
blockconlascaractersticasdeunbloquedecdigo(configuracinestablecidaporelusuario).
Losbloquespuedenunirseusandolosatributosnext,verdaderoyfalsoconeliddelafigura
destino.

Finalmente,elelementomappercontieneasuvezelementos(0ms)item,quemantienen
lacorrespondenciaentrecadafiguradelavistaybloquedelmodelo.

ArchivosdeintercambioentreEditordeDiagramasyBasedeDatos

El editor de diagramas del lado cliente utiliza archivos XML para recibir
informacin proveniente del servidor. Esta informacin es la necesaria
para llenar los cuadros Abrir Diagrama, Guardar Diagrama, Administrar
Diagramayellistadodefuncionesdisponibles.

Abrir,GuardaryAdministrarDiagrama,listanlosarchivosdisponiblesa
partirdeunXMLquesigueelsiguienteSchema:

<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="filesystem">
<xs:complexType>
<xs:sequence>
<xs:element name="files">
<xs:complexType>
<xs:sequence>
<xs:element name="file" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name"
type="xs:string"/>
<xs:element name="id"
type="xs:integer"/>
<xs:element name="active"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

146
Programacin Domtica Basada en Sistemas Expertos

Grficamente,


ElformatodelXMLconstadeunelementofilesystemquetieneasuvezunelementofilesque
tiene0mselementosfilequecontienenname(nombre),id(IDdelarchivo),active(indicasi
undiagramaestactivosi/no).

Lasfuncionesdisponiblesparaejecutarenundiagrama,selistanapartir
deunXMLquesigueelsiguienteSchema:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="response">
<xs:complexType>
<xs:sequence>
<xs:element name="success">
<xs:complexType>
<xs:attribute name="value" type="xs:integer"
use="required" />
</xs:complexType>
</xs:element>
<xs:element name="data">
<xs:complexType>
<xs:sequence>
<xs:element name="room" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="func" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="help" type="xs:string" />
<xs:element name="param" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id"
type="xs:integer" use="required" />
<xs:attribute name="name"
type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:integer"
use="required" />
<xs:attribute name="has_return"
type="xs:integer" use="required" />
<xs:attribute name="name" type="xs:string"
use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>

147
Programacin Domtica Basada en Sistemas Expertos

<xs:attribute name="id" type="xs:integer"


use="required" />
<xs:attribute name="name" type="xs:string"
use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

Grficamente:


Como aparece en la figura, la estructura consta de un elemento response, que contiene un
elementosuccessyunelementodataysteltimocontiene0msroom(habitacin)con0
msfunc(funcin),lacualpuedetener0msparam(parmetro).

Respuestasdeaccionesenelservidor,recibidasporelladocliente:

Ejemplosdeestasrespuestasson:notificacinaleditordequeeldiagrama
fue correctamente almacenado, que el diagrama fue ejecutado
satisfactoriamente,entreotros.ElSchemacorrespondientees:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="response">
<xs:complexType>
<xs:sequence>
<xs:element name="success">
<xs:complexType>
<xs:attribute name="value" type="xs:integer" />
</xs:complexType>
</xs:element>
<xs:element name="error" minOccur="0" maxOccur="1">
<xs:complexType>
<xs:sequence>
<xs:element name="description" type="xs:string" />
</xs:sequence>
<xs:attribute name="number" type="xs:integer" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

148
Programacin Domtica Basada en Sistemas Expertos

Grficamente,

En la figura, el elemento response contiene un elemento success (que posee un atributo


numrico que indica si la operacin se efectu con xito 1 no 0) y opcionalmente un
elementoerror(condescriptionquedescribeelerrorenformadetextoyunatributonumber
querepresentaelcdigodeerrorasociado).

ArchivosdeintercambioentreelLadoServidorySimulador

Loseventosenlaviviendasonreportadosdelservidorhaciaelclienteen
unXMLqueseajustaalsiguienteesquema:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="response">
<xs:complexType>
<xs:sequence>
<xs:element name="success">
<xs:complexType>
<xs:attribute name="value" type="xs:integer"
use="required" />
</xs:complexType>
</xs:element>
<xs:element name="error" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="description" type="xs:string" />
</xs:sequence>
<xs:attribute name="number" type="xs:integer"
use="required" />
</xs:complexType>
</xs:element>
<xs:element name="log" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="entry" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>

149
Programacin Domtica Basada en Sistemas Expertos

<xs:sequence>
<xs:element name="date" type="xs:string" />
<xs:element name="message" type="xs:string" />
<xs:any />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="time" type="xs:integer" use="required"
/>
<xs:attribute name="timeLastEntry" type="xs:integer"
use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

Grficamente,

En la imagen, se aprecia que el elemento principal del XML es response, el cual est
compuestoporunelementosuccesscuyovalores1sinohuboerrores,0encasocontrario.En
este ltimo caso, response tiene otro elemento llamado error (con descripcin y nmero de
error).Encualquiercaso,responsetieneunelementolog(dondefiguran0msentryconla
descripcin de cada evento generado) y dos atributos que marcan el tiempo en el que el
ltimoentryfuegeneradoallog(atributotimeLastEntry)yeltiempoenelquefuegeneradoel
XML(atributotime).

Archivos en el Lado Servidor necesarios para la ejecucin de los


diagramas

150
Programacin Domtica Basada en Sistemas Expertos

Cuando el subsistema CodeGen toma el diagrama y genera el cdigo


ejecutable,estarmandoenparalelodosarchivos:unoconelcdigo
ejecutable en reglas del sistema experto (CLIPS) y el otro con las
condicionesdeactivacindedichoprograma(hora,dadelasemana,
activacin de algn sensor externo). Se describir primero el archivo
conlascondicionesporsusencillezyposteriormentealarchivoconlas
reglasgeneradasapartirdeldiagrama.

ArchivodeCondicionesdeEjecucin(.cond)
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="start">
<xs:complexType>
<xs:sequence>
<xs:element name="options">
<xs:complexType>
<xs:attribute name="days" type="xs:boolean" use="required" />
<xs:attribute name="time" type="xs:boolean" use="required" />
<xs:attribute name="triggers" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="days">
<xs:complexType>
<xs:attribute name="sun" type="xs:boolean" use="required" />
<xs:attribute name="mon" type="xs:boolean" use="required" />
<xs:attribute name="tue" type="xs:boolean" use="required" />
<xs:attribute name="wed" type="xs:boolean" use="required" />
<xs:attribute name="thru" type="xs:boolean" use="required" />
<xs:attribute name="fri" type="xs:boolean" use="required" />
<xs:attribute name="sat" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="trigs">
<xs:complexType>
<xs:attribute name="sunrise" type="xs:boolean" use="required" />
<xs:attribute name="sunset" type="xs:boolean" use="required" />
<xs:attribute name="door" type="xs:boolean" use="required" />
<xs:attribute name="alarm" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="time">
<xs:complexType>
<xs:attribute name="hr" type="xs:integer" use="required" />
<xs:attribute name="min" type="xs:integer" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

151
Programacin Domtica Basada en Sistemas Expertos

Grficamente,

LaestructuradelXML,comopuedeverse,constadeunelementostartquecontienecuatro
elementos:options,days,trigsytime.Elelementooptionstienetresatributos:days,timey
triggers.Elprimero(siestrue)indicaqueelprogramaasociadodeberejecutarseciertosdas
delasemana.Elsegundo(siestrue)determinaqueelprogramaseejecuteaciertahoradel
da. El ltimo (si es true) establece que el programa se ejecutar ante la activacin de algn
sensorexterno.

Los siguientes elementos estn siempre presentes en el XML aunque su interpretacin por
partedelsubsistemaExecuterdependedelvalordelosatributospreviamentemencionados.

Elelementodaystienesieteatributos(unoporcadadadelasemana)quetomanelvalortrue
sielusuariodefiniqueelprogramaseejecuteeseda.

Elelementotimetienedosatributosqueindicanlahorayminutos(formato24horas)enel
cualejecutarelprograma.

Finalmente, el elemento trigs tiene cuatro atributos uno por cada sensor externo (deteccin
de amanecer y de anochecer, alarma y timbre, respectivamente) que estn en true si el
programadebeejecutarseantelaactivacindelsensorcorrespondiente.

152
Programacin Domtica Basada en Sistemas Expertos

ArchivosdeCdigoEjecutablecomoReglasdeSistemaExperto(.clp)

Comoyasemencionenesteinforme,losdiagramasgeneradosenel
editor son almacenados como tales en la Base de Datos y,
paralelamente a esto, se genera el programa correspondiente a ese
diagrama. Dicho programa est formado por una serie de reglas de
sistema experto y una serie de hechos que son agregados
convenientemente a la base de conocimientos. Cada programa corre
conunabasedeconocimientosindependientedelresto.

ParamayorinformacinacercadeProgramacindeSistemasExpertos,
serecomiendaconsultarlabibliografaquefiguraalfinaldelpresente
informe.

Dada la naturaleza de un diagrama de flujo, su conversin a un


programa estructurado es inmediata. Sin embargo, la conversin del
diagrama a un programa escrito en un lenguaje de sistema experto
comoCLIPSesunpocomselaborada.Amododeejemplo,setomar
undiagramadeflujosencillo,quepuedesergeneradoconelEditorde
Diagramas y se explicarn las reglas bsicas para la conversin a
cdigo.

153
Programacin Domtica Basada en Sistemas Expertos

LaideabsicaesquesegeneraunareglaRiporcadabloqueideldiagramadearriba(esdecir,
porcadaAsignacinycadaCondicin,lafiguraComienzosolomarcaelpuntodearranquede
ejecucin y condiciones que se utilizan para generar el archivo .cond, las figuras Fin estn
presentessloporclaridad).Dichareglatienecomoprecondicinparaejecutarselaexistencia
deunhechoFienlabasedeconocimientos.ParaquelareglaRj(quecorrespondealsiguiente
bloque que debe ejecutarse) se dispare efectivamente, Ri tiene como una de sus
postcondicioneslainsercindeunhechoFjylaremocindeFi.

Pseudocdigo:

Regla Ri:
Precondiciones: Ri,
Poscondiciones: InsertarHecho(Rj), EliminarHecho(Ri),

Enelarchivo,lareglaR0queinicialaejecucinnotieneningnhechoasociado,demodoque
se dispare inmediatamente al iniciar la ejecucin, luego inserta un hecho F1 para que R1 se
ejecute.LareglaR1ylassiguientesoperancomosemencionpreviamentealpseudocdigo.

Losbloquesdecondicinsonrepresentadoscomodosreglas:enestecasosegeneraunaR2T
(portrue)yunaR2F(porfalse)dondelacondicindecomparacindeTyFsonopuestas.

Pseudocdigo:

Regla R2T:
Precondiciones: Ri,(a < 11),
Poscondiciones: InsertarHecho(Rj), EliminarHecho(Ri),

Regla R2F:
Precondiciones: Ri,(a >= 11),
Poscondiciones: InsertarHecho(Rk), EliminarHecho(Ri),

Lasconstantesdeldiagramasonrepresentadascomoconstantesenlasreglasmientrasquelas
variables del diagrama son representadas como hechos que se insertan en la base de
conocimientos. Como primera regla, se inicializan todas las variables usadas en el diagrama
comovacas().

Cuandoseutilizaunafuncin,lareglasedivideendos:enprimerainstanciaunareglaRi1se
insertanciertoshechosalabasequecorrespondenalaidentificacindelafuncinaejecutar
ascomolosvaloresdesusparmetrosyseinvocaelcomandobreakquedetienelaejecucin

154
Programacin Domtica Basada en Sistemas Expertos

de las reglas. El programa en Java encargado de la ejecucin, determina en funcin de los


hechoslarazndeladetencin(seinvocalaejecucindeunafuncincomodebug),ejecutala
funcin,obtieneunresultadoeinsertaunhechoconelresultadodelafuncin.Luegoreanuda
laejecucindelprogramalacualcontinaenlareglaRi2.

EnelprogramaenCLIPSademsseagreganciertasfuncionesmacrodefinidasparasimplificar
la escritura de las reglas. Cabe destacar que las sentencias (cada sentencia se encuentra
enmarcadaentreparntesis)enCLIPSnoseejecutanenordendearribahaciaabajo,yaquela
ejecucindependedeloshechospresentesenlabasedeconocimientos.

A continuacin, se transcribe el programa de ejemplo ya procesado por CodeGen, en cdigo


CLIPS:

(deftemplate var
(slot name)
(slot value))

(deftemplate func
(slot value)
(slot idRoom)
(slot idFunc)
(multislot params))

(deftemplate request
(slot reason))

(deffunction var_assert
(?name ?new_val)
(do-for-all-facts(
(?v var))
(eq ?v:name ?name)
(retract ?v))
(assert (var (name ?name) (value ?new_val)))
)

(deffunction toNum
(?value)
(if (integerp ?value) then
?value
else
0
))
(deffunction func_assert_value
(?idRoom ?idFunc ?new_val)
(do-for-fact(
(?f func))
(eq ?f:idRoom ?idRoom)
(eq ?f:idFunc ?idFunc)
(assert (func (value ?new_val) (idRoom ?f:idRoom) (idFunc ?f:idFunc) (params
?f:params) ))
(retract ?f))
)

(defrule rule_init
=>
(var_assert a "")
(var_assert b "")

155
Programacin Domtica Basada en Sistemas Expertos

(assert (fact_rule0))
)

(defrule rule0
?id <- (fact_rule0)
=>
;(printout t "ejecutando comienzo rule0" crlf)
(retract ?id)
(assert (fact_rule0_showFilename)))

(defrule rule1
?id <- (fact_rule1)
=>
;(printout t "ejecutando asignacion rule1" crlf)
(retract ?id)
(var_assert a 26)
(assert (fact_rule2)))

(defrule rule2T
?id <- (fact_rule2)
(var (name a) (value ?valor_a))
(test ( < (toNum ?valor_a) (toNum 11)))
=>
;(printout t "ejecutando condicion TRUE rule2" crlf)
(retract ?id)
(assert (fact_rule3)))

(defrule rule2F
?id <- (fact_rule2)
(var (name a) (value ?valor_a))
(not (test ( < (toNum ?valor_a) (toNum 11)))
)
=>
;(printout t "ejecutando condicion FALSE rule2" crlf)
(retract ?id)
(assert (fact_rule4)))

(defrule rule3
?id <- (fact_rule3)
=>
;(printout t "ejecutando asignacion rule3" crlf)
(retract ?id)
(var_assert b 1)
(assert (fact_rule6)))

(defrule rule4
?id <- (fact_rule4)
=>
;(printout t "ejecutando asignacion rule4" crlf)
(retract ?id)
(var_assert b 2)
(assert (fact_rule6)))

(defrule rule5
?id <- (fact_rule5)
=>
;(printout t "ejecutando fin rule5" crlf)
(retract ?id))

(defrule rule6
?id <- (fact_rule6)
(var (name b) (value ?par_b_1_12))
=>
;(printout t "ejecutando asignacion - funcion rule6" crlf)
(assert (request (reason func)))
(assert (func (idRoom 1) (idFunc 12) (params "b vale" ?par_b_1_12 ) ))
(retract ?id)

156
Programacin Domtica Basada en Sistemas Expertos

(assert (fact_rule6_1))
(set-break rule6_1))

(defrule rule6_1
?id <- (fact_rule6_1)
?id_func_1_12<-(func (idRoom 1) (idFunc 12) (value ?valor_func_1_12))
=>
;(printout t "ejecutando asignacion rule6_1" crlf)
(retract ?id)
(retract ?id_func_1_12)

(assert (fact_rule5)))

(defrule rule0_showFilename
?id <- (fact_rule0_showFilename)
=>
;(printout t "ejecutando asignacion - funcion rule0_showFilename" crlf)
(assert (request (reason func)))
(assert (func (idRoom 1) (idFunc 12) (params "Ejecutando el archivo: " "demo"
) ))
(retract ?id)
(assert (fact_rule0_showFilename_1))
(set-break rule0_showFilename_1))

(defrule rule0_showFilename_1
?id <- (fact_rule0_showFilename_1)
?id_func_1_12<-(func (idRoom 1) (idFunc 12) (value ?valor_func_1_12))
=>
;(printout t "ejecutando asignacion rule0_showFilename_1" crlf)
(retract ?id)
(retract ?id_func_1_12)

(assert (fact_rule1)))

FormatodeMensajesentreSubsistemasdelServidor

Los distintos subsistemas del servidor se comunican, como ya se dijo, va TCP/IP. Esta
comunicacinesmediantemensajesdetexto,concamposseparadospor;.Larespuestaa
estosmensajesestexto,dondeprimerofiguraun0silaoperacinfueexitosaseguidodeun
;yluegoxito1seguidodeladescripcindelerror.

MensajesaydesdeExecuter:sontres:mensajesdeactualizacinde
la lista de archivos a ejecutar, mensajes de estado de los sensores y
mensajesparalaejecucindefuncionesdomticas.

Actualizacin de lista de archivos: cuando se genera un nuevo


diagrama (y paralelamente programa) o cuando se elimina uno, debe
notificarse de los cambios a Executer para que sepa que archivos
ejecutar.Paraello,elformatodeestosmensajeses:

<comando>;<nombre_archivo_clp> donde <comando> es add


remove (segn se agregue un nuevo diagrama o se elimine uno

157
Programacin Domtica Basada en Sistemas Expertos

existente,respectivamente)y<nombre_archivo_clp>eselnombredel
archivo ejecutable (.clp) correspondiente al diagrama
agregado/eliminado.

Estado de sensores: cuando cambia el valor de un sensor de la casa,


HomeState (quien posee comunicacin con los mismos) notifica a
Executer de dicho cambio para que ste determine si existe algn
diagrama que deba ser ejecutado como consecuencia de ese cambio.
El formato de estos mensajes es: <sensor>;<estado> donde <sensor>
puedeseralarm,sunrise,sunsetodoorsegnlossensoresemulados
descritosanteriormenteeneltrabajoy<estado>estruefalse,segn
ese sensor se haya activado o desactivado, respectivamente. Si el
mensaje enviado es getAllSensorsState, recibe como respuesta el
estado de cada sensor, con la siguiente estructura:
<sensor1>,<estado1>;<sensor2>,<estado2>;<sensor4>,<estado4>

Ejecucin de funciones domticas: cuando se est ejecutando un


programayserequierelaejecucindeunafuncin,porejemplo,abrir
portn, Executer notifica a HomeState del pedido usando mensajes
conelsiguienteformato:

requestFunctionCall;<idRoom>;<idFunc>(;<valor_param_i>)*

DonderequestFunctionCallesunaconstantequedeterminaeltipode
mensaje, <idRoom> representa el ID de Habitacin (coincidente al
otorgado en la tabla rooms de la Base de Datos), <valor_param_i>
representa el valor del isimo parmetro de la funcin (est entre
parntesis y con un asterisco indicando que puede haber de 0 a n
parmetros,dependiendodeltipodefuncin.

158
Programacin Domtica Basada en Sistemas Expertos

A.1.4.1.2. PreparacindelEntornodeConstruccin

Sepreparelentornodeconstruccin,(conlaslibrerasybibliotecasutilizadas)el
cualconstadelosmediosinformticosprovistosporelalumnoyeselindicadoen
2.3.8.1.EspecificacindelEntornodeConstruccin.

A.1.4.2. GeneracindelCdigodelosComponentesy
Procedimientos

El objetivo de esta actividad es la codificacin de los componentes del sistema de


informacin, apartirdelasespecificacionesde construccinobtenidasen elproceso
DiseodelSistemadeInformacin(DSI).

A.1.4.2.1. GeneracindelCdigodeComponentes

Enestatareasegeneraelcdigocorrespondienteacadaunodeloscomponentes
delsistemadeinformacin,identificadosenlatareaDefinicindeComponentesy
SubsistemasdeConstruccin(2.3.8.2).

Se gener el cdigo de cada subsistema, en el lenguaje elegido, compilndolo,


verificando y corrigiendo los errores sintcticos, y el enlace del cdigo objeto
obtenidoconlascorrespondientesbibliotecas.

En el CD que acompaa a este informe, se incluye el cdigo fuente del Sistema


generado.

A.1.4.3. EjecucindelasPruebasUnitarias

Enestaactividadserealizarnlaspruebasunitariasdecadaunodeloscomponentes
del sistema de informacin, una vez codificados, con el objeto de comprobar que su
estructuraescorrectayqueseajustanalafuncionalidadestablecida.

159
Programacin Domtica Basada en Sistemas Expertos

A.1.4.3.1. PreparacindelEntornodelasPruebasUnitarias

Enestatareaseprepararntodoslosrecursosnecesariospararealizarlaspruebas
unitariasdecadaunodeloscomponentesdelsistemadeinformacin.

Elentornoutilizadoparallevaracabolaspruebasunitariascorrespondealmismo
entorno de desarrollo, con la adicin del plugin JUnit (versin 3.8.2) para el IDE
Eclipse (en cada proyecto de cada subsistema), el cual permitir automatizar las
tareas de las pruebas unitarias dentro de dicho IDE. Las pruebas unitarias
consistenencodificarclasesqueextiendenlasclasesdeJUnityquehacenusode
lasclasesquesepretendenprobar.Enelcasodeclasescomplejas,quecontienen
objetosdeotrasclases,estosltimossonreemplazadosporObjetosmockofalsos
pararestringirlaspruebasaloscomportamientospropiosdelaclaseaanalizar.

A.1.4.3.2. RealizacinyEvaluacindelasPruebasUnitarias

El objetivo de esta tarea es comprobar el correcto funcionamiento de los


componentes del sistema de informacin, codificados en la actividad Generacin
del Cdigo de los Componentes y Procedimientos (2.4.2), conforme a las
verificacionesestablecidasenelplandepruebasparaelniveldepruebasunitarias,
enlaactividadEspecificacinTcnicadelPlandePruebas(2.3.10).

Laspruebasunitariasfuerondiseadasyejecutadasamedidaquesecodificaban
lasclases,yhastaquenofueransuperadastodaslaspruebasparaesaclase,nose
pasabaalasiguiente.Seadoptlaconvencin(silaclaseaevaluarsellamabapor
ejemplo,Punto),llamaralaclasedondesehacesuunittestcomoPuntoTestyde
agrupartodaslasclasesdeunittestenunpaquetellamadotest.Secreuntest
suiteporsubsistemaqueenglobatodoslosunittestdelmismoypermiteacelerar
laspruebas.

Lostestsuitesdecadasubsistemafueronejecutadosenformantegraporltima
vez antes de generar los JARs de Java correspondientes para asegurar que las
pruebasunitariassiguieransiendosatisfactorias.

160
Programacin Domtica Basada en Sistemas Expertos

Deloscincossubsistemasde2.2.3.Identificacin de Subsistemas de Anlisis,


comoyasejustificen2.3.10.2.EspecificacinTcnicadelosNivelesdePrueba,
slolostressubsistemasdelladoservidorfueronobjetodelunittesting,conlos
siguientesresultadosfinales(justoantesdegenerarlosJARs):

HomeState(30clases,59tests):59/59testsexitosos
CodeGen(12clases,28tests):28/28testsexitosos
Executer(5clases,19tests):19/19testexitosos.

A.1.4.4. EjecucindelasPruebasdeIntegracin

En las pruebas de integracin se verificar si los componentes o subsistemas


interactan correctamente a travs de sus interfaces, tanto internas como externas,
cubren la funcionalidad establecida, y se ajustan a los requisitos especificados en las
verificacionescorrespondientes.

Antesdecomenzaradescribirlosresultadosdelaspruebasdeintegracin,sesugiere
referirse a 2.2.3.2. Integracin de Subsistemas de Anlisis para tener presente el
diagrama con los subsistemas, sus dependencias y las interfaces que existen entre
ellos. Las pruebas de integracin se desarrollarn segn lo descrito en 2.2.10.
Especificacin del Plan de Pruebas y 2.3.10. Especificacin Tcnica del Plan de
Pruebas.

A.1.4.4.1. PreparacindelEntornodelasPruebasde
Integracin

Lapreparacindelentornodelaspruebasdeintegracinfuebreve,debidoaque
el mismo es coincidente con el entorno de construccin. Se utiliz el IDE Eclipse
para hacer la depuracin necesaria, con sus correspondientes breakpoints y
watches tanto para los subsistemas Servidor (Java) como para los subsistemas
Cliente(Flex).

161
Programacin Domtica Basada en Sistemas Expertos

A.1.4.4.2. RealizacindelasPruebasdeIntegracin

Enestatareaseverificarelcorrectofuncionamientodelasinterfacesexistentes
entre los distintos componentes y subsistemas, conforme a las verificaciones
establecidasparaelniveldepruebasdeintegracin.

Parallevaracaboestaspruebas,separtirdelaconstruccindevariosdiagramas,
condistintasconfiguraciones.Losdatosgeneradossernutilizadosenlasdistintas
pruebasdeintegracin.

DiagramaA:diagramavaco,sinfiguras.
DiagramaB:diagramanicamenteconunafiguracomienzo.
DiagramaC:diagramaconuncomienzo,unaasignacin,unacondiciny
dos asignaciones consecuentes (una en caso verdadero y otra en caso
falso)yunfin.Ningunadelasfigurasposeepropiedades.
Diagrama D: dem C, pero cada figura tiene propiedades ajustadas
(llamadasafuncin,comparaciones,variables,etc.)
Diagrama E: una figura comienzo, seguida de una asignacin (con una
funcin dentro de ella) y una figura fin. La figura comienzo tiene
propiedades ajustadas para que el diagrama se dispare a una hora y da
especfico.
DiagramaF:diagramaquemodelaunbucle:
I <- 1
MIENTRAS I < 6{
I <- I + 1
DEBUG(i vale , I)
}

DEBUG(FIN i vale , I)

FIN

Diagrama G: diagrama similar a E, pero con activacin por un sensor en


lugardecondicintemporal(fechayhora).

162
Programacin Domtica Basada en Sistemas Expertos

a. Integracin Editor de Diagramas (GraFlow) Generador de Cdigo


(CodeGen)

Pararealizarestaverificacin,sesiguieronlossiguientespasos:

o GenerarundiagramaenGraFlowyseguardenlaBasedeDatos
o RecuperareldiagramaalmacenadocomoXMLenlaBasedeDatos
usando phpmyadmin y se gener un archivo de texto XML
(test.xml)
o Validar el XML del diagrama contra su schema correspondiente
(schema_graflow.xsd) con un validador web
(http://www.xmlme.com/Validator.aspx)
o Ejecutar CodeGen, pasando el archivo de diagrama XML como
parmetro, generndose as sus correspondientes archivos de
cdigo CLIPS (test.clp) y de condiciones de disparo del programa
(test.cond)
o Validarelarchivotest.condconsuschema(schema_cond.xsd)
o Abrir el archivo test.clp en la consola de CLIPS y verificar que se
pueda cargar satisfactoriamente (implicando que las reglas son
sintcticamentecorrectas)

b. Integracin Generador de Cdigo (CodeGen) y Ejecutor de Cdigo


(Executer)

Pararealizarestaverificacin,sesiguieronlossiguientespasos:
o Remover las marcas de comentarios (; en CLIPS) de test.clp de
las sentencias que permiten imprimir en consola que regla se
acabadeejecutar.
o Cargaryejecutartest.clpenExecuter
o Verificarelordenenquelasreglasfueronejecutadosapartirdela
impresinporconsola.

c. IntegracinEjecutordeCdigo(Executer)yEmuladordelasvariablesdel
hogar,estadodelacasa(HomeState)

163
Programacin Domtica Basada en Sistemas Expertos

Sesiguieronlossiguientespasos:
o Ejecutartest.clp
o Verificarelestadodelacasa,conectndoseaHomeStatevatelnet
alpuertocorrespondienteysolicitandoelregistrodeeventos

d. IntegracinHomeStateySimulador

Sesiguieronlossiguientespasos:
o Ejecutartest.clp
o Abrir simulador y verificar que los eventos correspondientes
figuren en la lista de registro de eventos. Si el evento generado
tieneunarepresentacinvisual,verificarquelamismasepresente
correctamente.

A.1.4.4.3. EvaluacindelResultadodelasPruebasde
Integracin

Acontinuacin,sedescribirnlasobservacionestraslaejecucindecadaunade
laspruebasdeintegracinparacadaunodelosdiagramas.
DiagramaA:
1Corrida:
En la prueba de integracin A (GraFlowCodeGen) se detect que el archivo de
cdigonosegenerabacorrectamente.

ReportedePruebaNro:1.1 Fecha:1/7/09

Objetivo: Verificar la integracin entre GraFlowCodeGen para el caso del


DiagramaA(diagramavaco)

Erroresencontrados:
IDCasodePrueba NivelSeveridad Descripcin
DA.A Medio Alalmacenarseun
diagramavaco,el
archivodecdigo(.clp)
nosegenera
correctamente

164
Programacin Domtica Basada en Sistemas Expertos

Elarchivodediagrama
fuevalidadoconel
Schemaypasla
prueba.
DA.A Medio Alalmacenarseun
diagramavaco,el
archivode
condiciones(.cond)no
segenera
correctamente
Elarchivodediagrama
fuevalidadoconel
Schemaypasla
prueba.


SecreequeelerrorradicadentrodelsubsistemaCodeGenyqueestrelacionado
conqueelmismoesperaalmenosunbloquedeprogramaenelXMLdediagrama.
Pruebas de integracin B, C y D no se pudieron completar, debido a que sus
entradasdependandelasalidadelapruebaA.
2 Corrida: una vez solucionados los problemas reportados en la primera, se
ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados
satisfactorios.

DiagramaB:
1Corrida:
Se ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados
satisfactorios.

DiagramaC:
1Corrida:
Se ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados
satisfactorios.

DiagramaD:
1Corrida:
Se completaron las propiedades de las figuras del diagrama de flujo
predeterminadodemodoquerepresentealsiguientepseudocdigo:

165
Programacin Domtica Basada en Sistemas Expertos


temp <- 23;
SI (temp < 25) ENTONCES{
DEBUG(temp es menor a 25 y vale , temp);
}SINO{
DEBUG(temp es mayor o igual a 25 y vale , temp);
}
FIN

Se ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados


satisfactorios.

1Corrida(bis):
Se completaron las propiedades de las figuras del diagrama de flujo
predeterminadodemodoquerepresentealsiguientepseudocdigo:

temp <- 26;
SI (temp < 25) ENTONCES{
DEBUG(temp es menor a 25 y vale , temp);
}SINO{
DEBUG(temp es mayor o igual a 25 y vale , temp);
}
FIN

Se ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados


satisfactorios.

DiagramaE:
1Corrida:
Se completaron las propiedades de las figuras del diagrama de flujo
predeterminadodemodoquerepresentealsiguientepseudocdigo:

Ejecutar los: Martes
A las: 17:03

DEBUG(test , diag E);


FIN

Se ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados
satisfactorios.

166
Programacin Domtica Basada en Sistemas Expertos

1Corrida(bis):
Se completaron las propiedades de las figuras del diagrama de flujo
predeterminadodemodoquerepresentealsiguientepseudocdigo:

Ejecutar los: Martes, Mircoles
A las: 17:10

DEBUG(test , diag E);


FIN

Se ejecutaron las pruebas de integracin A, B, D obtenindose resultados
satisfactorios.EnlapruebaCseobtuvoelsiguienteerror:

ReportedePruebaNro:5.3 Fecha:7/7/09

Objetivo: Verificar la integracin entre ExecuterHomeState para el caso del


DiagramaE

Erroresencontrados:
IDCasodePrueba NivelSeveridad Descripcin
DE.C Medio Alalmacenarseun
diagramaquedebe
ejecutarsemsdeuna
vezporsemana,nose
terminaejecutando
nunca.Siseselecciona
comopropiedadde
comienzocerooundaa
lasemana,funciona
correctamente

2 Corrida: una vez solucionados los problemas reportados en la primera, se


ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados
satisfactorios.



167
Programacin Domtica Basada en Sistemas Expertos

DiagramaF:
1Corrida:
Se ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados
satisfactorios.

DiagramaG:
1Corrida:
Se completaron las propiedades de las figuras del diagrama de flujo
predeterminadodemodoquerepresentealsiguientepseudocdigo:

Ejecutar cuando: Alarma

DEBUG(test , diag G);


FIN


Se ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados
satisfactorios.
1Corrida(bis):
Se completaron las propiedades de las figuras del diagrama de flujo
predeterminadodemodoquerepresentealsiguientepseudocdigo:

Ejecutar cuando: Alarma, Timbre
DEBUG(test , diag G);
FIN

Se ejecutaron las pruebas de integracin A, B, D obtenindose resultados
satisfactorios.EnlapruebaCseobtuvoelsiguienteerror:

ReportedePruebaNro:7.3 Fecha:10/7/09

Objetivo: Verificar la integracin entre ExecuterHomeState para el caso del


DiagramaE

Erroresencontrados:
IDCasodePrueba NivelSeveridad Descripcin
DG.C Medio Alalmacenarseun
diagramaquedebe

168
Programacin Domtica Basada en Sistemas Expertos

ejecutarseantela
llegadadelasealde2o
mssensores,nose
terminaejecutando
nunca.Siseselecciona
comopropiedadde
comienzocerooun
sensor,funciona
correctamente

2 Corrida: una vez solucionados los problemas reportados en la primera, se


ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados
satisfactorios.

A.1.4.5. EjecucindelasPruebasdeSistema

A.1.4.5.1. RealizacindelasPruebasdeSistema

Las pruebas de sistema sern, bsicamente una unificacin de las pruebas de


integracin. Se generarn los diagramas indicados en estas ltimas pruebas y se
verificarsucorrectofuncionamientoenltimoeslabndelacadena,esdecir,los
diagramassedibujarnenelEditordeDiagramas(GraFlow)yenelSimuladorse
evaluarn los eventos generados. Se verificar que los diagramas puedan ser
reabiertosyeditadossininconvenientesyquesepuedaneliminar/activar.

Adicionalmente, en la pruebas de sistema, se comprobar el correcto


funcionamiento de la interfaz de usuario, tanto en GraFlow como en Simulador
(botones,cuadrosdilogo,insercinyeliminacindefigurasyflechas,etc.).

A.1.4.5.2. EvaluacindelResultadodelasPruebasdeSistema

Se probaron los diagramas AG, siguiendo los lineamientos de 2.4.5.2 y se


obtuvieronresultadossatisfactorios,salvandodosinconvenientes:

169
Programacin Domtica Basada en Sistemas Expertos

1. 1Corrida

ReportedePruebaNro:8 Fecha:14/7/09

Objetivo:PruebadeSistemaparaDiagramaA

Erroresencontrados:
IDCasodePrueba NivelSeveridad Descripcin
PS.A Bajo Alalmacenarseun
diagramavacoyluego
reabrirse,produceun
error

2 Corrida: Se verific la correcta reparacin de los inconvenientes


encontradosenla1Corrida.

2. 1Corrida

ReportedePruebaNro:9 Fecha:15/7/09

Objetivo:PruebadeSistemausandoAdministrarDiagramas

Erroresencontrados:
IDCasodePrueba NivelSeveridad Descripcin
PS.X Medio Aleliminarseel
diagramaactualmente
abiertodesde
Administrardiagramas
deGraFlow,seproduce
unerrorqueseregistra
enellogdeExecuter

2 Corrida: Se verific la correcta reparacin de los inconvenientes


encontradosenla1Corrida.

170
Programacin Domtica Basada en Sistemas Expertos

A.1.4.6. ElaboracindelosManualesdeUsuario

A.1.4.6.1. ElaboracindelosManualesdeUsuario

El objetivo de esta tarea es elaborar la documentacin de usuario, tanto usuario


final como de explotacin, de acuerdo a los requisitos establecidos en la tarea
EspecificacindeRequisitosdeDocumentacindeUsuario(DSI11.1),yrecogidos
enelcatlogoderequisitos.

Los manuales de usuario se distribuirn en forma electrnica en dos formatos:


comoayudaHTML,accesibledesdeunnavegadorwebycomoarchivosdeayuda
compilada de Microsoft (CHM). Los archivos de ayuda en forma de HTML sern
armados slo para las herramientas web, es decir, el Editor de Diagramas
(GraFlow) y el Simulador mientras que los cinco subsistemas/herramientas
tendrn sus correspondientes archivos CHM, los cuales el usuario podr copiar a
sumquinadesdeelinstaladordelsistema.Laestructuradelosarchivosdeayuda
ser la tpica de los archivos CHM, con una jerarqua de rbol, con captulos y
artculosdentrodelosmismos.

A.1.4.7. DefinicindelaFormacindelosUsuariosFinales

Enestaactividadseestablecernlasnecesidadesdeformacindelusuariofinal,conel
objetivodeconseguirlaexplotacineficazdelnuevosistema.

Paraladefinicindelaformacinsetendrnencuentalascaractersticasfuncionalesy
tcnicaspropiasdelsistemadeinformacin,ascomolosrequisitosrelacionadoscon
laformacindelusuariofinal,establecidosenlatareaEspecificacindeRequisitosde
Implantacin(2.3.11.2).

El presente Trabajo Profesional no tiene como objetivo la puesta en produccin del


sistemadesarrolladoporlocualelplandecapacitacinalosUsuariosFinalesnoaplica.
Sin embargo, se pueden enumerar una serie de conocimientos necesarios para la
operacindelsistema,enelmomentodelaDefensadelTrabajoyellosestndescritos
enelapartadoRequisitosdeFormacinde2.3.11.2.EspecificacindeRequisitosde
Implantacin.

171
Programacin Domtica Basada en Sistemas Expertos

A.1.4.8. ConstruccindelosComponentesyProcedimientosde
MigracinyCargaInicialdelosDatos

En esta actividad se codificar y probar los componentes y procedimientos de


migracinycargainicialdedatos,apartirdelasespecificacionesrecogidasenelPlan
de Migracin y Carga Inicial de Datos obtenida en el proceso Diseo del Sistema de
Informacin.

A.1.4.8.1. PreparacindelEntornodeMigracinyCarga
InicialdeDatos

A partir de la Base de Datos generada previamente, con las habitaciones,


funciones y parmetros correspondientes, se prepar un script en PHP que
recuperlosdatosquefueroninsertadoscuidadosamenteduranteelprocesode
codificacin y se gener un archivo de texto con los datos iniciales. Este archivo
(data.sql)seutilizarjuntoaunarchivoconlassentenciasparalacreacindelas
tablas(createDB.sql),armadosegn2.3.6.1.DiseodelModeloFsicodeDatos.

A.1.4.8.2. GeneracindelCdigodelosComponentesy
ProcedimientosdeMigracinyCargaInicialdeDatos

Enestatarea,segenerelcdigoparalacargainicialdelosdatos.Sedecidique
laformamseficienteeradesarrollandounpequeoprograma(InitDB)queleyera
losarchivoscreateDB.sqlydata.sqlsentenciaporsentenciadeSQLylasejecutara.
EsteprogramafueescritoenJavayseincluyedentrodelinstaladordelsistema.En
el momento de la instalacin, el instalador solicita nombre y contrasea para
accederalaBasedeDatosyesosvaloressonpasadoscomoparmetrosparaque
elInitDBcarguelosdatosiniciales.SiInitDBnopuedehacerlo,devuelveuncdigo
de error al instalador quien notifica al usuario. La activacin de InitDB es
totalmente transparente para el usuario que est intentando instalar el sistema.
SeadjuntaenelCDelcdigofuentedeInitDB.

172
Programacin Domtica Basada en Sistemas Expertos

A.1.4.8.3. RealizacinyEvaluacindelasPruebasde
MigracinyCargaInicialdeDatos

Se prob a InitDB tanto en forma separada por lnea de comandos como ya


integrado con el instalador, en una mquina virtual para hacer una instalacin
limpia,y,secomprobquelosdatosinicialescargadoseranvlidosycompletos.

A.1.4.9. AprobacindelSistemadeInformacin

A.1.4.9.1. PresentacinyAprobacindelSistemade
Informacin

Los directores del Trabajo Profesional revisaron y aprobaron la Construccin del


Sistema de Informacin presentado en esta Etapa que figura en el presente
informe.

173

Vous aimerez peut-être aussi