Está en la página 1de 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.
2.2.

COMPONENTES DEL SISTEMA.....................................................................................................3


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.
9.2.
9.3.

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


ENCENDER REGADORES DEL PATIO Y ABRIR EL PORTN DEL GARAGE..................................24
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.
A.1.1.2.
A.1.1.3.
A.1.1.4.
A.1.1.5.
A.1.1.6.

A.1.2.

Anlisis del Sistema de Informacin...........................................................................63

A.1.2.1.
A.1.2.2.
A.1.2.3.
A.1.2.4.
A.1.2.5.
A.1.2.6.
A.1.2.7.
A.1.2.8.
A.1.2.9.
A.1.2.10.
A.1.2.11.

A.1.3.

Establecimiento del alcance del sistema.............................................................................42


Estudio de la Situacin Actual...............................................................................................45
Definicin de los requisitos del sistema...............................................................................50
Estudio de Alternativas de Solucin.....................................................................................52
Valoracin de las Alternativas...............................................................................................58
Seleccin de la Solucin........................................................................................................61
Definicin del Sistema............................................................................................................63
Establecimiento de Requisitos...............................................................................................70
Identificacin de Subsistemas de Anlisis...........................................................................75
Anlisis de los Casos de Uso................................................................................................80
Anlisis de las Clases.............................................................................................................82
Elaboracin del Modelo de Datos.........................................................................................92
Elaboracin del Modelo de Procesos...................................................................................92
Definicin de Interfases de Usuario......................................................................................92
Anlisis de Consistencia y Especificacin de Requisitos................................................105
Especificacin del Plan de Pruebas....................................................................................106
Aprobacin del Anlisis del Sistema de Informacin.......................................................110

Diseo del Sistema de Informacin..........................................................................111

A.1.3.1.
A.1.3.2.
A.1.3.3.
A.1.3.4.

Definicin de la Arquitectura del Sistema..........................................................................111


Diseo de la Arquitectura de Soporte.................................................................................116
Diseo de los Casos de Uso Reales..................................................................................116
Diseo de Clases...................................................................................................................117

Programacin Domtica Basada en Sistemas Expertos

A.1.3.5.
A.1.3.6.
A.1.3.7.
A.1.3.8.
A.1.3.9.
A.1.3.10.
A.1.3.11.
A.1.3.12.

A.1.4.

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


Diseo Fsico de Datos.........................................................................................................126
Verificacin y Aceptacin de la Arquitectura del Sistema................................................131
Generacin de las Especificaciones de Construccin.....................................................132
Diseo de la Migracin.........................................................................................................134
Especificacin Tcnica del Plan de Pruebas.....................................................................135
Establecimiento de Requisitos de Implantacin................................................................137
Aprobacin del Diseo del Sistema de Informacin.........................................................139

Construccin del Sistema de Informacin...............................................................140

A.1.4.1.
A.1.4.2.
A.1.4.3.
A.1.4.4.
A.1.4.5.
A.1.4.6.
A.1.4.7.
A.1.4.8.
los Datos
A.1.4.9.

Preparacin del Entorno de Generacin y Construccin.................................................140


Generacin del Cdigo de los Componentes y Procedimientos....................................159
Ejecucin de las Pruebas Unitarias....................................................................................159
Ejecucin de las Pruebas de Integracin...........................................................................161
Ejecucin de las Pruebas de Sistema................................................................................169
Elaboracin de los Manuales de Usuario...........................................................................171
Definicin de la Formacin de los Usuarios Finales.........................................................171
Construccin de los Componentes y Procedimientos de Migracin y Carga Inicial de
172
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.

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.

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.

Generacindemacrosoprogramasdeformasencillaparaelusuario.

Controlvainternet

Automatizacindeequipos

Programacin Domtica Basada en Sistemas Expertos

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


desushabitantes.

Simulacindepresencia

Cerramientodelapropiedad

Comunicaciones:laviviendasecomunicaconelexteriortantopararegularsucontrol
comoparanotificardeeventosgenerados.
o

ControlporinternetvaPC,PDAsotelfonoscelulares

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.

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.

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

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).

Programacin Domtica Basada en Sistemas Expertos

6.1.Tablacomparativa

Arquitectura

X10
HEYU
Distribuida
Centralizada
(instalacin
individual de
equipos)

HCS
ExDomus
Centralizado o Centralizada
Distribuido, si
se dispone de
pocos
dispositivos a
automatizar
Medio
Baja. Requiere Media
experiencia en
entornos UNIX
(manejo
de
Shellscriptingy
compilacin a
partir
del
cdigofuente)
Baja.
Alta
MediaAlta

Facilidad de Alta (con slo


instalacin
conectar los
equipos a la
red elctrica y
asignarles un
cdigo nico
salen
funcionando)
A
Facilidad de Media.
uso
travs
de
mltiples
controles
remotos
Mtodo
de Controles
No
posee
control
remotosX10
interfaz
grfica, es un
programa de
lnea
de
comandos

Se utiliza un
control
remoto que se
comunica con
una PC con
Windows
MediaCenter
Control
No disponible No disponible Va telefnica,
forma celulares
o,
remoto (fuera sin software en
delhogar)
adicional
nativa
con software
adicional, va
Internet
Alto
Facilidad de Alta
Media.
programacin
Requiere
generarscripts
Poder
de Bajo
(muy MedioAlto
Alto
programacin bsico)

Temporizacin Slo utilizando S


deacciones
equipos
adicionales
Registro de No disponible S
eventos
sin software
adicional

Si

Si

Se utiliza un
control remoto
que
se
comunica con
una PC con
Windows Media
Center
Nodisponible

Media

Media
(se
pueden generar
secuencias de
acciones desde
la
interfaz
grfica)
Si
(en
las
versiones pagas
delsoftware)
Nodisponible

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)

Programacin Domtica Basada en Sistemas Expertos

8. SolucinPropuesta

Lasolucinpropuestaconstadelassiguientespartes:

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.

ID

CatlogodeObjetivosEVS
Autor

Tipo

Descripcin

Estado

APROB.
ESTRATGICO Presentar
un Trabajo
Profesional
de Calidad
en Tiempo y
Forma
OBJ2 FRIAS,
ESTRATEGICO Desarrollar APROB.
G.
un Sistema
de Control
Domtico
OBJ3 Merlino, ESTRATEGICO Seguir una APROB.
H.
Metodologa
Conocida y
Eficaz
OBJ1 FRIAS,
G.

ID

Fecha
Prioridad
de
creacin

ALTA

1/8/08

ALTA

1/8/08

ALTA

1/8/08

Prioridad

Fecha
de
creacin

CatlogodeRequisitos
Autor

Tipo

REQ1 Merlino, DOCUMENT


H.
AC

REQ2 FRIAS,
G.

NO
FUNCIONAL

REQ3 FRIAS,
G.

NO
FUNCIONAL

REQ4 FRIAS,
G.

FUNCIONAL

REQ5 FRIAS,
G.

FUNCIONAL

REQ6 FRIAS,
G.

FUNCIONAL

Descripcin

Usar Mtrica
3
como
Metodologa
deDesarrollo
Capacidad de
programar el
Sistema
desde una
ubicacin
remota
Facilidad de
uso,
programaci
n de modo
grfico
Generar un
registro de
eventos
Temporizaci
n
de
Acciones
Activacin de
programas

Estado

INCORP. ALTA

1/8/08

APROB.

ALTA

1/8/08

APROB.

ALTA

1/8/08

APROB.

BAJA

20/8/08

APROB.

MEDIA

17/8/08

APROB.

MEDIA

20/8/08

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

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

EstructuraOrganizativa

ID
EO1
EO2
EO3
EO4

A.1.1.2.

ApellidoyNombre
Merlino,Hernn
GarcaMartnez,Ramn
Fernndez,Enrique
Fras,Guillermo

Rol
DirectordelTrabajoProfesional
DirectordelTrabajoProfesional
ConsultorenMtrica3
Analista/Programador/Tester

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

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

Arquitectura

X10
HEYU
Centralizada
Distribuida
(instalacin
individual de
equipos)

HCS
ExDomus
Centralizado o Centralizada
Distribuido, si
se dispone de
pocos
dispositivos a
automatizar
Medio
Baja. Requiere Media
experiencia en
entornos UNIX
(manejo
de
Shellscriptingy
compilacin a
partir
del
cdigofuente)
Baja.
Alta
MediaAlta

Facilidad de Alta (con slo


instalacin
conectar los
equipos a la
red elctrica y
asignarles un
cdigo nico
salen
funcionando)
Facilidad de Media.
A
uso
travs
de
mltiples
controles
remotos
Mtodo
de Controles
No
posee
control
remotosX10
interfaz
grfica, es un
programa de
lnea
de
comandos

Se utiliza un
control
remoto que se
comunica con
una PC con
Windows
MediaCenter
Control
No disponible No disponible Va telefnica,
remoto (fuera sin software en
forma celulares
o,
delhogar)
adicional
nativa
con software
adicional, va
Internet
Alto
Facilidad de Alta
Media.
programacin
Requiere
generarscripts
Poder
de Bajo
(muy MedioAlto
Alto
programacin bsico)

Temporizacin Slo utilizando S


deacciones
equipos
adicionales
Registro de No disponible S
eventos
sin software
adicional

Si

Si

Se utiliza un
control remoto
que
se
comunica con
una PC con
Windows Media
Center
Nodisponible

Media

Media
(se
pueden generar
secuencias de
acciones desde
la
interfaz
grfica)
Si
(en
las
versiones pagas
delsoftware)
Nodisponible

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

DTG1 Merlino,
H.

Gestin

DTG2 Garca
Martnez,
R.

Gestin

DTG3 Fras,G.

Tcnica

ALTA
Usode
Mtrica3
como
Metodologa
aseguir
Desarrollode ALTA
una
Memoriadel
Trabajo
Utilizacin
ALTA

Estado

Fechade
creacin
APROBADA 1/8/08

APROBADA 1/8/08

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.
ID

Autor

REQ1 FRIAS,
G.

REQ2 FRIAS,
G.
REQ3 FRIAS,
G.
REQ4 FRIAS,
G.

REQ5 FRIAS,
G.

CatalogacindelosRequisitos
Tipo

Descripcin

Arquitectura Sistemade
control
domtico
centralizado
No
Facilidadde
Funcional
instalacin
No
Facilidadde
Funcional
uso
Funcional
Interfaz
grficacomo
modode
control
Funcional
Visualizacin
ycontrol
tantolocal
comoremoto

Prioridad

Estado

ALTA

Fechade
creacin
APROBADO 1/8/08

MEDIA

APROBADO 21/8/08

ALTA

APROBADO 10/8/08

MEDIA

APROBADO 1/8/08

ALTA

APROBADO 1/8/08

51

Programacin Domtica Basada en Sistemas Expertos

REQ6 FRIAS,
G.

Funcional

REQ7 FRIAS,
G.

Funcional

REQ8 FRIAS,
G.
REQ9 FRIAS,
G.

Funcional

A.1.1.4.

Funcional

(vaInternet)
Simplicidad
de
programacin
Capacidadde
temporizar
acciones
Registrode
eventos
Activacinde
programas
porlallegada
deseales
externas

ALTA

APROBADO 1/8/08

MEDIA

APROBADO 17/8/08

BAJA

APROBADO 20/8/08

MEDIA

APROBADO 20/8/08

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
RIE.A.1 FRIAS,
G.

RIE.A.2 FRIAS,
G.

Descripcin
Gravedad Justificacin
Incertidumbreacercade Media
Losprogramasde
lafacilidaddeuso
lneadecomandos
requierenmayor
tiempode
entrenamiento
Dificultadenla
Alta
Las comunicaciones
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

RIE.A.3 FRIAS,
G.

Complejidadde
comunicacinentre
distintossubsistemas
dentrodeunmismo
programa

Alta

RIE.A.4 FRIAS,
G.

Complejidadde
instalacinremota

Media

existencia de un solo
programa implica que
este
debe
comunicarse con los
dispositivosdelacasa
de forma directa,
complicando
el
desarrollo.
Losdistintos
subsistemasque
realizantareasmuy
diferentestienenun
gradode
acoplamientomuy
altoyaquetodos
formanpartedeun
nicoprograma
Paracontrolaren
formaremotaala
aplicacin,es
necesarioinstalar
componentes
especficosenla
mquinadesdedonde
sepretendeacceder

Alternativa B (Desarrollo de un programa nico o standalone,


programacingrfica)
ID
Autor
RIE.B.1 FRIAS,
G.

RIE.B.2 FRIAS,
G.

Descripcin
Gravedad Justificacin
Lascomunicacionesentreellado
Dificultadenla Alta
remoto y el hogar deben
implantacin
efectuarse abriendo puertos
decontrol
especficos o con comunicacin
desde
entre procesos remotos. Los
ubicacin
firewallsquecadalugarposeese
remota
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.
Alta
Losdistintossubsistemasque
Complejidad
realizantareasmuydiferentes
de
tienenungradodeacoplamiento
comunicacin
muyaltoyaquetodosforman
entredistintos
partedeunnicoprograma
subsistemas
dentrodeun
mismo

59

Programacin Domtica Basada en Sistemas Expertos

RIE.B.3 FRIAS,
G.

programa
Complejidad
deinstalacin
remota

Media

Paracontrolarenformaremotaa
laaplicacin,esnecesario
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
RIE.C.1 FRIAS,
G.

Descripcin
Dificultadenla
implantacinde
controldesde
ubicacinremota

RIE.C.2 FRIAS,
G.

Complejidadde
instalacin
remota

Gravedad Justificacin
Media
Lascomunicacionesentreel
ladoremotoyelhogardeben
efectuarseabriendopuertos
especficosocon
comunicacinentreprocesos
remotos.Losfirewallsque
cadalugarposeese
conviertenenunadificultad
adicional.
Media
Paracontrolarenforma
remotaalaaplicacin,es
necesarioinstalar
componentesespecficosen
lamquinadesdedondese
pretendeacceder

AlternativaD(Separarlageneracinyejecucindecdigoenunserverde
laprogramacingrficayvisualizacinderesultados,accesiblesdesdeun
navegador)
ID
Autor
RIE.D.1 FRIAS,
G.

Descripcin
Dificultadenla
implantacinde
controldesde
ubicacinremota

Gravedad Justificacin
Baja
Laaccesibilidadatravs
deunnavegadorweb
permiteuna
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
T1

Trmino
Controlador

T2

Sensor

T3

Actuador

T4

Diagrama

T5

Programa

T6
T7

Traductor
SimuladoroEmuladorde
variablesdelhogar

T8

Bloque

Descripcin
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
Dispositivo que mide una cantidad fsica y la
convierte en una seal elctrica que puede
serledaporelcontrolador
Componente que se encarga de transformar
una seal elctrica en una accin,
generalmente mecnica sobre otro elemento
fsico
Representacin mediante elementos grficos
de una tarea de programacin en la cual se
podr solicitar informacin a uno ms
sensoresysepodrpedirunaaccinaunoo
msactuadores
Conjuntodeinstruccioneslistasparaser
ejecutadas
Convierteundiagramaenunprograma
Permitevisualizarlasaccionestomadaspor
actuadoresqueseactivaronyforzarla
activacindealgnsensorparaemularsu
habilitacin
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
U1

U3

Rol
Director del Trabajo
Profesional
GarcaMartnez,Ramn Director del Trabajo
Profesional
Fernndez,Enrique
ConsultorenMtrica3

U4

Fras,Guillermo

U2

ApellidoyNombre
Merlino,Hernn

A.1.2.2.

Responsabilidades
Direccin terica y
prctica
Direccin terica y
prctica
Consultora
referente
al
seguimiento de la
metodologa
de
desarrollo
Analista / Programador Desarrollo
/Tester
Documentacin
Pruebas

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

REQ1

FRIAS,
G.

REQ2

FRIAS,
G.
FRIAS,
G.
FRIAS,
G.

Arquitectura Sistemade
control
domtico
centralizado
No
Facilidadde
Funcional
instalacin
Funcional
Facilidadde
uso
Funcional
Interfaz
grficacomo
modode
control
Funcional
Visualizacin
ycontrol
tantolocal
comoremoto
(vaInternet)
Funcional
Simplicidad
de
programacin
Funcional
Capacidadde
temporizar
acciones
Funcional
Registrode
eventos
Funcional
Activacinde
programas
porlallegada
deseales
externas
Rendimiento Ellado
servidordebe
poder
ejecutarseen
unaPC
hogareade
acuerdoalas
caractersticas
deASI1.2
Rendimiento Elladocliente
debepoder
ejecutarseen
unnavegador
webde
acuerdoalas
caractersticas
deASI1.2

REQ3
REQ4

REQ5

FRIAS,
G.

REQ6

FRIAS,
G.

REQ7

FRIAS,
G.

REQ8

FRIAS,
G.
FRIAS,
G.

REQ9

REQ10 FRIAS,
G.

REQ11 FRIAS,
G

Descripcin

Prioridad Estado
ALTA

Fechade
creacin
APROBADO 1/8/08

MEDIA

APROBADO 21/8/08

ALTA

APROBADO 10/8/08

MEDIA

APROBADO 1/8/08

ALTA

APROBADO 1/8/08

ALTA

APROBADO 1/8/08

MEDIA

APROBADO 17/8/08

BAJA

APROBADO 20/8/08

MEDIA

APROBADO 20/8/08

ALTA

APROBADO 29/8/08

MEDIA

APROBADO 29/8/08

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
Diagrama

Figura

Programa

Bloque

HomeState

Home

Caso(s)deUsoAsociado(s)
CrearDiagrama,Editar
Diagrama,GuardarDiagrama,
AdministrarDiagramas,
EliminarDiagrama,Habilitar
Diagrama
CrearDiagrama,Editar
Diagrama,GuardarDiagrama,
EliminarDiagrama
CrearDiagrama,Editar
Diagrama,GuardarDiagrama,
GenerarPrograma,
AdministrarDiagramas,
EliminarDiagrama,Habilitar
Diagrama
CrearDiagrama,Editar
Diagrama,GuardarDiagrama,
GenerarPrograma,Eliminar
Diagrama
ProbarDiagrama,Ejecutar
Programa,VisualizarEstado,
SimularCambioenSensor

ProbarDiagrama,Ejecutar
Programa,VisualizarEstado,
SimularCambioenSensor

Subsistema(s)asociado(s)
EditordeDiagramas

EditordeDiagramas

EditordeDiagramas,
GeneradordeCdigo

EditordeDiagramas,
GeneradordeCdigo

Emuladordelasvariables
delhogar,estadodela
casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;Simuladory

80

Programacin Domtica Basada en Sistemas Expertos

Room

ProbarDiagrama,Ejecutar
Programa,VisualizarEstado,
SimularCambioenSensor

Function

ProbarDiagrama,Ejecutar
Programa,VisualizarEstado,
SimularCambioenSensor

Log

ProbarDiagrama,Ejecutar
Programa,VisualizarEstado,
SimularCambioenSensor

LogEntry

ProbarDiagrama,Ejecutar
Programa,VisualizarEstado,
SimularCambioenSensor

Sensor

ProbarDiagrama,Ejecutar
Programa,VisualizarEstado,
SimularCambioenSensor

Expression
Param
CodeGen
Executer

GenerarPrograma
GenerarPrograma
GenerarPrograma
Probardiagrama,Ejecutar
Programa,Administrar
Programas,SimularCambios
enSensor
EjecutarPrograma,
AdministrarProgramas,
SimularCambiosenSensor
Probardiagrama,Ejecutar
Programa

Dispatcher

CodeSupervisor

SensorSystem

SimularCambiosenSensor

WatchDog

Probardiagrama,Ejecutar
Programa
Probardiagrama,Ejecutar
Programa

RemoteFunction

MotorInferencias
FileConditions

Probardiagrama,Ejecutar
Programa
ProbarDiagrama,Ejecutar

visualizadordeeventos;
EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
GeneradordeCdigo
GeneradordeCdigo
GeneradordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;EjecutordeCdigo
EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;EjecutordeCdigo
EjecutordeCdigo
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
Interfaz
BuilderDiagrama
BuilderPrograma
BuilderMapper
DraggableImage
ICaminoFlecha
Punto
Lnea
Rectngulo
OpenDlg
SaveDlg
ManagerDlg
IBuilderHome,
BuildSimulatedHome
IBuilderExpression,
BuilderExpression
IBuilderProgram,
BuilderProgramCLIPS
IFactoryExpression,
FactoryExpression
IFactoryProgram,
FactoryProgramCLIPS
BuilderDispatcher
BuilderFileConditions
BuilderSensorSystem

Caso(s)deUsoAsociado(s)
CrearDiagrama,Editar
Diagrama
CrearDiagrama,Editar
Diagrama
CrearDiagrama,Editar
Diagrama
EditarDiagrama
EditarDiagrama
EditarDiagrama
EditarDiagrama
EditarDiagrama
EditarDiagrama
GuardarDiagrama
AdministrarDiagramas
EjecutarPrograma,
VisualizarEstado,Simular
CambioenSensor
GenerarPrograma

Subsistema(s)
asociado(s)
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
Emuladordelasvariables
delhogar,estadodela
casa
GeneradordeCdigo

GenerarPrograma

GeneradordeCdigo

GenerarPrograma

GeneradordeCdigo

GenerarPrograma

GeneradordeCdigo

AdministrarProgramas
AdministrarProgramas
AdministrarProgramas

EjecutordeCdigo
EjecutordeCdigo
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
VARCHAR(50)) ENGINE=InnoDB;

NOT

NULL

PRIMARY

KEY

name

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

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

Software

WindowsXPSP2Professional

MicrosoftVirtualPC6.0

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

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

AdobeFlashPlayer9

132

Programacin Domtica Basada en Sistemas Expertos

Herramientasdeconstruccin

Java1.6(JDK1.6.0.11)

CLIPS(versin6.3)

IDEEclipse(3.3.0)conFlexBuilder3Plugin

NullsoftScriptableInstallSystemversin2.44(Generador
deinstaladores)

Comunicaciones

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

REFERENCES
CASCADE,

rooms_functions

rooms(id)

ON

id_function

functions(id)

ON

(id_room

UPDATE
INT

UPDATE

CASCADE

NOT

CASCADE

INT

NULL
ON

NOT
ON

NULL
DELETE

REFERENCES

DELETE

CASCADE,

PRIMARY KEY(id_room, id_function)) ENGINE=InnoDB;

CREATE TABLE functions_parameters (id_function INT NOT


NULL
DELETE

REFERENCES
CASCADE,

parameters(id)

functions(id)
id_parameter

ON

UPDATE

ON
INT

CASCADE

UPDATE
NOT
ON

NULL

CASCADE

ON

REFERENCES

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
lafuncin
luz

Descripcin
Ajustala
intensidaddela
luzdeuna
habitacin

Parmetro(s)

Intensidad
(entero0..10)

fijarTemperatura

Fijala
temperaturadela Valor(entero
20..30)
habitacin
seleccionada
Envaunmensaje
Nro(entero)
detextomensaje
Mensaje
aunnmerode
(texto)
telfononro
regadores
Activalos
regadoresconla Intensidad
(entero0..10)
intensidad
especificada
activarAlarma Disparalaalarma

delavivienda
incrementar Incrementaen1
elvalordel
Valor(entero)
parmetrovalor
suma
Sumando1
Sumadosvalores Sumando2
(enteros)
abrirPorton Abreelportn

delGarage
cerrarPorton Cierraelportn

delGarage
obtTemperatura
Devuelvela
temperaturaen
grados

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

Disponible
en:
Living
Cocina
Comedor
Bao
Dormitorio
Garage
Living
Cocina
Comedor
Bao
Dormitorio
Garage

Devuelve

enviarSMS

General

Patio

General

General

General

Valor
incrementa
doen1
Sumando1
+
Sumando2

Garage

Garage

Living
Cocina
Comedor
Bao
Dormitorio
Garage

Temperatu
radela
habitacin
enC

Cocina

142

Programacin Domtica Basada en Sistemas Expertos

decoccin
Despliegaun
mensaje
(paramDebug1
paramDebug
concatenadocon
1(texto)
paramDebug2)en paramDebug
laconsolade
2(texto)
eventosdel
simulador
Minuendo
(entero)
Restadosvalores
Sustraendo
(entero)

debug

resta

General

General

Minuendo

Sustraendo

General

Cerosi
valores
distintode
0
Unosi
valores
iguala0

Living

NOT

Niegaavalor

grabarTV

Valor(entero)

Grabaelcanalde Canal
(entero)
TVespecificado
durantela
DuracionMin
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):

A.1.4.4.

HomeState(30clases,59tests):59/59testsexitosos

CodeGen(12clases,28tests):28/28testsexitosos

Executer(5clases,19tests):19/19testexitosos.

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:

GenerarundiagramaenGraFlowyseguardenlaBasedeDatos

RecuperareldiagramaalmacenadocomoXMLenlaBasedeDatos
usando phpmyadmin y se gener un archivo de texto XML
(test.xml)

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)

Validarelarchivotest.condconsuschema(schema_cond.xsd)

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.

Cargaryejecutartest.clpenExecuter

Verificarelordenenquelasreglasfueronejecutadosapartirdela
impresinporconsola.

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

163

Programacin Domtica Basada en Sistemas Expertos

Sesiguieronlossiguientespasos:
o

Ejecutartest.clp

Verificarelestadodelacasa,conectndoseaHomeStatevatelnet
alpuertocorrespondienteysolicitandoelregistrodeeventos

d. IntegracinHomeStateySimulador
Sesiguieronlossiguientespasos:
o

Ejecutartest.clp

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
DA.A

NivelSeveridad
Medio

Descripcin
Alalmacenarseun
diagramavaco,el
archivodecdigo(.clp)
nosegenera
correctamente

164

Programacin Domtica Basada en Sistemas Expertos

DA.A

Medio

Elarchivodediagrama
fuevalidadoconel
Schemaypasla
prueba.
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
DE.C

NivelSeveridad
Medio

Descripcin
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
DG.C

NivelSeveridad
Medio

Descripcin
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
PS.A

NivelSeveridad
Bajo

Descripcin
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
PS.X

NivelSeveridad
Medio

Descripcin
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

También podría gustarte