Académique Documents
Professionnel Documents
Culture Documents
Septiembre 2009
Programacin Domtica Basada en Sistemas Expertos
Indice
1. RESUMEN...............................................................................................................................1
2. INTRODUCCIN.....................................................................................................................2
2.1. COMPONENTES DEL SISTEMA.....................................................................................................3
2.2. TIPOS DE ARQUITECTURA...........................................................................................................3
3. PRESENTACIN DEL PROBLEMA......................................................................................4
8. SOLUCIN PROPUESTA......................................................................................................9
9. CASOS DE VALIDACIN.....................................................................................................13
10. CONCLUSIN....................................................................................................................40
11. REFERENCIAS..................................................................................................................41
A. METODOLOGA.....................................................................................................................42
A.1. DESARROLLO DE SISTEMAS DE INFORMACIN........................................................................42
A.1.1. Estudio de Viabilidad del Sistema (EVS)...................................................................42
A.1.1.1. Establecimiento del alcance del sistema.............................................................................42
A.1.1.2. Estudio de la Situacin Actual...............................................................................................45
A.1.1.3. Definicin de los requisitos del sistema...............................................................................50
A.1.1.4. Estudio de Alternativas de Solucin.....................................................................................52
A.1.1.5. Valoracin de las Alternativas...............................................................................................58
A.1.1.6. Seleccin de la Solucin........................................................................................................61
A.1.2. Anlisis del Sistema de Informacin...........................................................................63
A.1.2.1. Definicin del Sistema............................................................................................................63
A.1.2.2. Establecimiento de Requisitos...............................................................................................70
A.1.2.3. Identificacin de Subsistemas de Anlisis...........................................................................75
A.1.2.4. Anlisis de los Casos de Uso................................................................................................80
A.1.2.5. Anlisis de las Clases.............................................................................................................82
A.1.2.6. Elaboracin del Modelo de Datos.........................................................................................92
A.1.2.7. Elaboracin del Modelo de Procesos...................................................................................92
A.1.2.8. Definicin de Interfases de Usuario......................................................................................92
A.1.2.9. Anlisis de Consistencia y Especificacin de Requisitos................................................105
A.1.2.10. Especificacin del Plan de Pruebas....................................................................................106
A.1.2.11. Aprobacin del Anlisis del Sistema de Informacin.......................................................110
A.1.3. Diseo del Sistema de Informacin..........................................................................111
A.1.3.1. Definicin de la Arquitectura del Sistema..........................................................................111
A.1.3.2. Diseo de la Arquitectura de Soporte.................................................................................116
A.1.3.3. Diseo de los Casos de Uso Reales..................................................................................116
A.1.3.4. Diseo de Clases...................................................................................................................117
i
Programacin Domtica Basada en Sistemas Expertos
ii
Programacin Domtica Basada en Sistemas Expertos
1. Resumen
Losactualessolucionesparalaprogramacindelossistemasdehogar(domticos)existentes
en el mercado tienden a mejorar la calidad de vida de los habitantes de una vivienda,
proveyendo comodidades para la activacin o ajuste de dispositivos a travs de controles
remotosquerequierendelaaccindeunindividuo.
Dichassoluciones,sinembargo,setornandemasiadocomplejasparaelusuariopromediosise
intenta que el grado de automatizacin involucre a varios dispositivos, siendo necesarios
conocimientostcnicosensistemaselectrnicosy/odeinformacin.
Elproyectoencuestinbrindaunasolucinalaprogramacindelosdistintosdispositivosdel
hogar mediante una forma grfica e intuitiva para el usuario (convirtiendo los grficos en
reglas ejecutables por un sistema experto) y provee al mismo tiempo una interfaz para su
controlyverificacinenformaremota.
1
Programacin Domtica Basada en Sistemas Expertos
2. Introduccin
El trmino domtica proviene de la unin de las palabras domus (en latn, casa) y tica (en
griego, que funciona por s misma). Dicho trmino agrupa a todas aquellas soluciones
destinadasaautomatizarciertosprocesosdelavidacotidianadentrodelhogar,entrelosque
se destacan seguridad, confort, comunicacin y ahorro de energa. Para poder llevar a cabo
estas funciones, los diversos dispositivos se encuentran interconectados por medio de redes
interiores y exteriores de comunicacin, cableadas o inalmbricas, y cuyo control goza de
ciertacomodidadyubicacinconveniente,dentroyfueradelhogar.
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:
2
Programacin Domtica Basada en Sistemas Expertos
2.1.Componentesdelsistema
2.2.Tiposdearquitectura
Desdeelpuntodevistadedonderesidelainteligenciadelsistemadomtico,existentres
enfoquesprincipales:
Centralizada:uncontrolcentralrecibeinformacindelosdistintossensoresy,unavez
procesada,generaytransmitelasrdenesadecuadasacadaactuador.
Distribuida:lainteligenciadelsistemaestubicadaenlossensoresyactuadores.
Mixta:existenvariosdispositivoscapacesderecopilarlainformacindelossensoresy
transmitirrdenesalrestodelosdispositivos.
3
Programacin Domtica Basada en Sistemas Expertos
3. PresentacindelProblema
Muchasdelassolucionesdomticasexistentesenelmercadotiendenamejorarlacalidadde
vidadeloshabitantesdeunavivienda,proveyendocomodidadesparalaactivacinoajustede
dispositivos a travs de controles remotos que requieren de la accin de un individuo. Los
ajustes automticos se reducen a activaciones producto de temporizadores en dispositivos
puntuales tales como el aire acondicionado o el DVR (Digital Video Recorder, Grabador de
VideoDigital).Siseintentaqueelgradodeautomatizacininvolucreadosomsdispositivos,
granpartedelasopcionesdisponiblesrequierenconocimientostcnicosdeprogramaciny/o
electrnica. Adems, las capacidades de visualizar el estado de la vivienda o agregar nuevos
programas estando fuera del hogar, resultan limitadas. Por ello, queda en evidencia la
necesidaddeunsistemaquepermitaautomatizar(demodosencilloparaunusuariomedio)
tareasqueinvolucrenavariosdispositivosyquepermitadecidirlascondicionesdeactivacin
dedichastareastalescomohora,condicionesexternas,etc.tantodesdeelhogarcomoenuna
ubicacinremota.
4. ObjetivodelTrabajoProfesional
ElObjetivodelpresenteTrabajoProfesionalesdesarrollarunsistemaquepermitaprogramar
laautomatizacindeequiposdedomticavaweb,representandodichaprogramacincomo
diagramasdeflujo,loscualessetraducirnacdigoejecutabledeunsistemaexpertoquien
serelencargadodeactuarsobrelosequipossegnlascondicionessensadasenlasvariables
delambiente.Enestetrabajo,nohabrunaconexinrealcondichosartefactossinoquelos
mismossesimularnconunprogramaconinterfazgrfica.
5. readeAplicacin
4
Programacin Domtica Basada en Sistemas Expertos
6. Productosexistentesenelmercado
X10:estndarinternacionalabiertoparalacomunicacinentredispositivos,utilizado
en domtica. Utiliza fundamentalmente las lneas elctricas para sealizacin y
control, aunque define tambin un protocolo de transporte inalmbrico. Fue
desarrolladoen1975porPicoElectronics,Escociaparapermitirelcontrolremotode
artefactos en el hogar. Fue la primera tecnologa de propsito general para redes
domticasyansiguesiendolamsutilizada.
Puedenconectarsehasta256dispositivos,aprovechandounespaciodedireccionesde
8 bits. Este estndar puede considerarse un mtodo de conexin y comunicacin de
equipos, que aprovecha la red elctrica para sus comunicaciones, por lo cual no
requiere la instalacin de un cableado original, reduciendo costos pero tambin al
mismo tiempo podra ser considerado un mtodo de control bsico de equipos: por
ejemplo,sisepretendeprenderyapagarunaluzenformaremota,bastaconconectar
a la lmpara a un dispositivo X10 y a ste ltimo a la red elctrica, otorgndole un
cdigo nico dentro de la casa y del otro lado, se conecta otro artefacto compatible
conX10,elcualpuedaenviarsealesparaelcdigodelalmpara.Desdeestepunto
devista,puedeconsiderarsequeX10otorgaunaformadeprogramacinbsicayde
fcilinstalacinperoalmismotiempo,bastantelimitada.
HEYU:esunprogramadeconsolaparaLinuxyotrasSistemasOperativosderivadosde
UNIX(MacOSX,FreeBSD,Solaris,entreotros)paraelcontroldelucesydispositivos
enlaoficinayelhogar.ElsistemaescapazdeinteractuarconequiposX10,temporizar
accionesydemonitorear/registrarloseventosgenerados.
Elsoftwarepermiteasimismogenerarscriptsdeaccionesparasuposteriorejecucin.
Enresumen,HEYUactacomocontroladoralossensoresyactuadoresbasadosenel
protocoloX10,brindandociertogradodeautomatizacinperoteniendolalimitacin
deserunproductoparalneadecomandosconlocualelespectrodeposiblesusuarios
quedarestringidodegranmanera.Delmismomodo,cuentaconelinconvenienteque
es difcil de operar y monitorear en forma remota, cuando el usuario se encuentra
fueradesucasa.
HomeControlSystem(HCS)deHomeAutomation,Inc(HAI):estesistemapropietario
puedefuncionarcomosistemacentralizado(comprandounequipodehardwareque
5
Programacin Domtica Basada en Sistemas Expertos
acta como mdulo central) o como sistema distribuido (ciertos equipos pueden
actuardeformalocalizadayautnoma).
HCS permite la temporizacin de acciones, el envo de notificaciones y el control de
funciones de seguridad, ahorro de energa y entretenimiento. Puede ser operado
medianteunainterfazgrficatctil(quesecompraporseparado)ovatelefnica.En
formaopcionalpuedesercontroladoconcontrolremotoatravsdeunaPCquecorra
WindowsMediaCenterovainternetmediantesoftwareadicional.
En pocas palabras, HCS es un sistema altamente configurable y escalable, a costa de
requerirequipoespecficodehardwareparapoderfuncionarysoftwareadicionalpara
poderrealizarmuchasdelastareasqueHEYUnopermite.
ExDomus: es un software para el Media Center de Windows XP/Vista que permite
controlar luces, cortinas, calentadores, cmaras, sistemas de seguridad, etc. usando
comoprotocolodeconexinX10oKNX,segnlaversin.Permitelatemporizacinde
accionesascomotambinlaejecucindeaccionesdisparadasporuneventoexterno,
talcomolaactivacindelaalarma.
Se trata de un software pago (aunque cuenta con una versin bsica gratuita) que
permite automatizar ciertas tareas pero dentro del mbito del hogar (no cuenta con
herramientasparalaprogramacinovisualizacindeeventosenformaremota).
6
Programacin Domtica Basada en Sistemas Expertos
6.1.Tablacomparativa
X10 HEYU HCS ExDomus
Arquitectura Distribuida Centralizada Centralizado o Centralizada
(instalacin Distribuido, si
individual de se dispone de
equipos) pocos
dispositivos a
automatizar
Facilidad de Alta (con slo Baja. Requiere Media Medio
instalacin conectar los experiencia en
equipos a la entornos UNIX
red elctrica y (manejo de
asignarles un Shellscriptingy
cdigo nico compilacin a
salen partir del
funcionando) cdigofuente)
Facilidad de Media. A Baja. Alta MediaAlta
uso travs de
mltiples
controles
remotos
Mtodo de Controles No Se utiliza un
posee Se utiliza un
control remotosX10 interfaz control control remoto
remoto que se
grfica, es un que se
programa de comunica con comunica con
lnea una PC con
de una PC con
comandos Windows Windows Media
MediaCenter Center
Control No disponible No disponible Va telefnica, Nodisponible
remoto (fuera sin software en forma celulares o,
delhogar) adicional nativa con software
adicional, va
Internet
Facilidad de Alta Media. Alto Media
programacin Requiere
generarscripts
Poder de Bajo (muy MedioAlto Alto Media (se
programacin bsico) pueden generar
secuencias de
acciones desde
la interfaz
grfica)
Temporizacin Slo utilizando S Si Si (en las
deacciones equipos versiones pagas
adicionales delsoftware)
Registro de No disponible S Si Nodisponible
eventos sin software
adicional
7
Programacin Domtica Basada en Sistemas Expertos
7. RequisitosdelSistema
a. Sistemadecontroldomticocentralizado
b. Facilidaddeinstalacin
c. Facilidaddeuso,atravsdeunainterfacegrficasencillaperopoderosa
d. Interfazgrficacomomododecontrol
e. Visualizacinycontroltantolocalcomoremoto(vaInternet)
f. Simplicidaddeprogramacin
g. Capacidaddetemporizaracciones
h. Registrodeeventos
i. Posibilidad de activar programas por la llegada de seales externas (alarma por
ejemplo)
8
Programacin Domtica Basada en Sistemas Expertos
8. SolucinPropuesta
Lasolucinpropuestaconstadelassiguientespartes:
9
Programacin Domtica Basada en Sistemas Expertos
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.
Dentrodeloslenguajesdesistemaexperto,existendistintasopciones,perosedecidi
finalmenteporCLIPSporsuextensadocumentacinonline,robustezymadurezdela
plataforma,facilidaddeintegracinenmltipleslenguajes,ademsdelaexistenciade
mltiplesejemplosdeaplicacin.
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
15
Programacin Domtica Basada en Sistemas Expertos
6. InsertarunafiguraAsignacin
7. MoverlafiguraAsignacin
16
Programacin Domtica Basada en Sistemas Expertos
17
Programacin Domtica Basada en Sistemas Expertos
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
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
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)
A.1.1.1. Establecimientodelalcancedelsistema
A.1.1.1.1. Estudiodelasolicitud
Descripcingeneraldelsistema
42
Programacin Domtica Basada en Sistemas Expertos
encargadodeactuarsobrelosequipossegnlascondicionessensadasenlas
variablesdelambiente.
CatlogodeObjetivosEVS
Fecha
ID Autor Tipo Descripcin Estado Prioridad de
creacin
OBJ1 FRIAS, ESTRATGICO Presentar APROB. ALTA 1/8/08
G. un Trabajo
Profesional
de Calidad
en Tiempo y
Forma
OBJ2 FRIAS, ESTRATEGICO Desarrollar APROB. ALTA 1/8/08
G. un Sistema
de Control
Domtico
OBJ3 Merlino, ESTRATEGICO Seguir una APROB. ALTA 1/8/08
H. Metodologa
Conocida y
Eficaz
CatlogodeRequisitos
Fecha
ID Autor Tipo Descripcin Estado Prioridad de
creacin
REQ1 Merlino, DOCUMENT Usar Mtrica INCORP. ALTA 1/8/08
H. AC 3 como
Metodologa
deDesarrollo
REQ2 FRIAS, NO Capacidad de APROB. ALTA 1/8/08
G. FUNCIONAL programar el
Sistema
desde una
ubicacin
remota
REQ3 FRIAS, NO Facilidad de APROB. ALTA 1/8/08
G. FUNCIONAL uso,
programaci
n de modo
grfico
REQ4 FRIAS, FUNCIONAL Generar un APROB. BAJA 20/8/08
G. registro de
eventos
REQ5 FRIAS, FUNCIONAL Temporizaci APROB. MEDIA 17/8/08
G. n de
Acciones
REQ6 FRIAS, FUNCIONAL Activacin de APROB. MEDIA 20/8/08
G. programas
43
Programacin Domtica Basada en Sistemas Expertos
por llegada
de seales
externas
A.1.1.1.2. Identificacindelalcancedelsistema
Seanalizarelalcancedelanecesidadplanteadayseidentificarnlasrestricciones
relativas a la sincronizacin con otros proyectos, que puedan interferir en la
planificacin y futura puesta a punto del sistema objeto del estudio. Una vez
establecido el alcance, se identifican las unidades organizativas afectadas por el
sistema,ascomosuestructurayresponsablesdelasmismas.
EnelcasodelTrabajoProfesionaladesarrollar,comonoexistendependencias
conotrosproyectos,losrequisitosrelacionadosarestriccionesodependencias
conlosmismosnoseaplicanaestecontexto.
CatlogodeUsuarios
ID ApellidoyNombre
U1 Merlino,Hernn
U2 GarcaMartnez,Ramn
U3 Fernndez,Enrique
U4 Fras,Guillermo
Descripcingeneraldelsistema
o Contextodelsistema
Dentrodelcontextodelsistema,yteniendoencuentasunaturalezade
trabajo profesional y extensin, no habr una conexin real los
sensores y actuadores sino que los mismos se simularn con un
programaconinterfazgrfica.
44
Programacin Domtica Basada en Sistemas Expertos
o EstructuraOrganizativa
ID ApellidoyNombre Rol
EO1 Merlino,Hernn DirectordelTrabajoProfesional
EO2 GarcaMartnez,Ramn DirectordelTrabajoProfesional
EO3 Fernndez,Enrique ConsultorenMtrica3
EO4 Fras,Guillermo Analista/Programador/Tester
A.1.1.2. EstudiodelaSituacinActual
A.1.1.2.1. Valoracindelestudiodelasituacinactual
DescripcindelaSituacinActual
o DescripcindelosSistemasdeInformacinActuales
45
Programacin Domtica Basada en Sistemas Expertos
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.
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
(Realizadoenconjuntocon2.1.2.1Valoracindelestudiodelasituacinactual)
A.1.1.2.4. RealizacindelDiagnsticodelaSituacinActual
SeanalizarlainformacindelosSistemasdeInformacinexistentes,obtenidaen
latareaanterioryseidentificanproblemas,deficienciasymejoras.
Teniendoencuentalasalternativasestudiadasen2.1.2.1,podemosestablecerel
siguientetablacomparativa:
48
Programacin Domtica Basada en Sistemas Expertos
X10 HEYU HCS ExDomus
Arquitectura Distribuida Centralizada Centralizado o Centralizada
(instalacin Distribuido, si
individual de se dispone de
equipos) pocos
dispositivos a
automatizar
Facilidad de Alta (con slo Baja. Requiere Media Medio
instalacin conectar los experiencia en
equipos a la entornos UNIX
red elctrica y (manejo de
asignarles un Shellscriptingy
cdigo nico compilacin a
salen partir del
funcionando) cdigofuente)
Facilidad de Media. A Baja. Alta MediaAlta
uso travs de
mltiples
controles
remotos
Mtodo de Controles No Se utiliza un
posee Se utiliza un
control remotosX10 interfaz control control remoto
remoto que se
grfica, es un que se
programa de comunica con comunica con
lnea una PC con
de una PC con
comandos Windows Windows Media
MediaCenter Center
Control No disponible No disponible Va telefnica, Nodisponible
remoto (fuera sin software en forma celulares o,
delhogar) adicional nativa con software
adicional, va
Internet
Facilidad de Alta Media. Alto Media
programacin Requiere
generarscripts
Poder de Bajo (muy MedioAlto Alto Media (se
programacin bsico) pueden generar
secuencias de
acciones desde
la interfaz
grfica)
Temporizacin Slo utilizando S Si Si (en las
deacciones equipos versiones pagas
adicionales delsoftware)
Registro de No disponible S Si Nodisponible
eventos sin software
adicional
49
Programacin Domtica Basada en Sistemas Expertos
Dentro de los problemas y deficiencias, podemos ver que X10 por s solo no es
demasiado poderoso en trminos de programacin de equipos y que HEYU es
difcildeusarpuesnoposeedeunainterfazgrfica.Paralascuatroalternativas,el
controlfueradelhogaresdificultosoporquenoposeendeunaformadeacceso
adecuada como en el caso de HCS que es va telefnica o directamente no
disponen de un mtodo de acceso remoto. Como mejora, se propone poder
accedervainternet,aunaherramientaparalaprogramacindelosequipos.Otra
posiblemejora,eslageneracindeuninstaladorquesimplifiqueengranmedida
la instalacin del sistema. La temporizacin de acciones y el registro de eventos
soncaractersticasdeseablesdebidoaquepocasalternativaslasposeen.
A.1.1.3. Definicindelosrequisitosdelsistema
A.1.1.3.1. IdentificacindelasDirectricesTcnicasyde
Gestin
Larealizacindeestatareapermitirconsiderarlostrminosdereferenciaparael
sistemaenestudiodesdeelpuntodevistadedirectricestantotcnicascomode
gestin.
ID Autor Tipo Descripcin Prioridad Estado Fechade
creacin
DTG1 Merlino, Gestin Usode ALTA APROBADA 1/8/08
H. Mtrica3
como
Metodologa
aseguir
DTG2 Garca Gestin Desarrollode ALTA APROBADA 1/8/08
Martnez, una
R. Memoriadel
Trabajo
DTG3 Fras,G. Tcnica Utilizacin ALTA APROBADA 1/8/08
50
Programacin Domtica Basada en Sistemas Expertos
de
herramientas
dedesarrollo
reconocidas
yprobadas
A.1.1.3.2. IdentificacindelosRequisitos
a. Sistemadecontroldomticocentralizado
b. Facilidaddeinstalacin
c. Facilidaddeuso,atravsdeunainterfasegrficasencillaperopoderosa
d. Interfazgrficacomomododecontrol
e. Visualizacinycontroltantolocalcomoremoto(vaInternet)
f. Simplicidaddeprogramacin
g. Capacidaddetemporizaracciones
h. Registrodeeventos
i. Posibilidaddeactivarprogramasporlallegadadesealesexternas(alarmapor
ejemplo)
A.1.1.3.3. CatalogacindelosRequisitos
ID Autor Tipo Descripcin Prioridad Estado Fechade
creacin
REQ1 FRIAS, Arquitectura Sistemade ALTA APROBADO 1/8/08
G. control
domtico
centralizado
REQ2 FRIAS, No Facilidadde MEDIA APROBADO 21/8/08
G. Funcional instalacin
REQ3 FRIAS, No Facilidadde ALTA APROBADO 10/8/08
G. Funcional uso
REQ4 FRIAS, Funcional Interfaz MEDIA APROBADO 1/8/08
G. grficacomo
modode
control
REQ5 FRIAS, Funcional Visualizacin ALTA APROBADO 1/8/08
G. ycontrol
tantolocal
comoremoto
51
Programacin Domtica Basada en Sistemas Expertos
(vaInternet)
REQ6 FRIAS, Funcional Simplicidad ALTA APROBADO 1/8/08
G. de
programacin
REQ7 FRIAS, Funcional Capacidadde MEDIA APROBADO 17/8/08
G. temporizar
acciones
REQ8 FRIAS, Funcional Registrode BAJA APROBADO 20/8/08
G. eventos
REQ9 FRIAS, Funcional Activacinde MEDIA APROBADO 20/8/08
G. programas
porlallegada
deseales
externas
A.1.1.4. EstudiodeAlternativasdeSolucin
Enesteestudio,sepropondrndiversasalternativasquerespondansatisfactoriamente
a los requisitos planteados, considerando tambin los resultados obtenidos en 2.1.2
(Estudio de la Situacin Actual). Se realizar una descomposicin del sistema en
subsistemas,teniendoencuentaelmbitoyfuncionalidad,parafacilitarsuestudio.
A.1.1.4.1. PreseleccindeAlternativasdeSolucin
Herramientadeprogramacindelhogar
Generadordecdigoejecutable
Unidaddeejecucindelcdigo
52
Programacin Domtica Basada en Sistemas Expertos
Simuladordelosequiposfsicos
Emuladordelasvariablesdelhogar(sensores)
Seprocederentoncesaexplicarlasposiblesalternativasdesolucin.
DiagramadeRepresentacin
53
Programacin Domtica Basada en Sistemas Expertos
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.
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
AlternativaD(Separarlageneracinyejecucindecdigoenunserver
de la programacin grfica y visualizacin de resultados, accesibles
desdeunnavegador)
57
Programacin Domtica Basada en Sistemas Expertos
A.1.1.5. ValoracindelasAlternativas
A.1.1.5.1. EstudiodelaInversin
Enestepunto,deberaevaluarse,paracadaalternativadesolucinpropuesta,la
viabilidad econmica, realizando un anlisis de coste/beneficio, que pondere los
beneficiostangibleseintangibles.
A.1.1.5.2. EstudiodelosRiesgos
Seseleccionarnfactoresdesituacinquedebernconsiderarse,relativostantoa
laincertidumbrecomoalacomplejidaddelsistema.
58
Programacin Domtica Basada en Sistemas Expertos
existencia de un solo
programa implica que
este debe
comunicarse con los
dispositivosdelacasa
de forma directa,
complicando el
desarrollo.
RIE.A.3 FRIAS, Complejidadde Alta Losdistintos
G. comunicacinentre subsistemasque
distintossubsistemas realizantareasmuy
dentrodeunmismo diferentestienenun
programa gradode
acoplamientomuy
altoyaquetodos
formanpartedeun
nicoprograma
RIE.A.4 FRIAS, Complejidadde Media Paracontrolaren
G. instalacinremota formaremotaala
aplicacin,es
necesarioinstalar
componentes
especficosenla
mquinadesdedonde
sepretendeacceder
59
Programacin Domtica Basada en Sistemas Expertos
programa
RIE.B.3 FRIAS, Complejidad Media Paracontrolarenformaremotaa
G. deinstalacin laaplicacin,esnecesario
remota instalarcomponentesespecficos
enlamquinadesdedondese
pretendeacceder
AlternativaD(Separarlageneracinyejecucindecdigoenunserverde
laprogramacingrficayvisualizacinderesultados,accesiblesdesdeun
navegador)
60
Programacin Domtica Basada en Sistemas Expertos
A.1.1.6. SeleccindelaSolucin
Seseleccionarentrelasalternativasalasolucinaadoptar.
A.1.1.6.1. Convocatoriadelapresentacin
DadalanaturalezadelpresenteproyectocomounTrabajoProfesional,estepunto
noseaplica.
A.1.1.6.2. EvaluacindelasAlternativasySeleccin
A.1.1.6.3. AprobacindelaSolucin
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).
62
Programacin Domtica Basada en Sistemas Expertos
A.1.2. AnlisisdelSistemadeInformacin
Enesteprocesoseobtendrunaespecificacindetalladadelsistemadeinformacinque
satisfagalasnecesidadesdeinformacindelosusuariosysirvadebaseparaelposterior
diseodelsistema.
Mtrica Versin 3 es una metodologa que cubre diseos tanto estructurados como
orientados a objetos y las actividades de ambas actividades estn integradas en una
estructuracomn.
A.1.2.1. DefinicindelSistema
Enestaactividad,sellevaracaboladescripcininicialdelsistemadeinformacin,a
partirdelosproductosgeneradosenelEstudiodeViabilidaddelSistema.Sedelimitar
elalcancedelsistema,segeneraruncatlogoderequisitosgeneralesysedescribir
elsistemamedianteunosmodelosinicialesdealtonivel.Tambinseidentificarnlos
usuarios que participarn en el proceso de anlisis, determinando sus perfiles,
responsabilidades y dedicaciones necesarias. Se elaborar, al mismo tiempo, el plan
detrabajoaseguir.
A.1.2.1.1. DeterminacindelAlcancedelSistema
EnestatareasedelimitarelAlcancedelSistemadeInformacin,utilizandocomo
puntodepartidaelEstudiodeViabilidaddelSistema.
Gracias a las sesiones de trabajo con los usuarios involucrados (ver 2.1.1.2,
Catlogo de usuarios), se obtuvieron los siguientes resultados, aplicando las
tcnicasdescritasacontinuacin:
63
Programacin Domtica Basada en Sistemas Expertos
Glosariodetrminos
ID Trmino Descripcin
T1 Controlador Dispositivo informtico (generalmente una
PC)yelconjuntodesoftwarequeseencarga
de recibir las seales provenientes del
actuador, procesarlas y generar y transmitir
las rdenes apropiadas a los actuadores
adecuados
T2 Sensor Dispositivo que mide una cantidad fsica y la
convierte en una seal elctrica que puede
serledaporelcontrolador
T3 Actuador Componente que se encarga de transformar
una seal elctrica en una accin,
generalmente mecnica sobre otro elemento
fsico
T4 Diagrama Representacin mediante elementos grficos
de una tarea de programacin en la cual se
podr solicitar informacin a uno ms
sensoresysepodrpedirunaaccinaunoo
msactuadores
T5 Programa Conjuntodeinstruccioneslistasparaser
ejecutadas
T6 Traductor Convierteundiagramaenunprograma
T7 SimuladoroEmuladorde Permitevisualizarlasaccionestomadaspor
variablesdelhogar actuadoresqueseactivaronyforzarla
activacindealgnsensorparaemularsu
habilitacin
T8 Bloque ElementogrficoqueconstituyeunDiagrama
yquerepresentaunaaccinatomar,un
condicin,etc.
64
Programacin Domtica Basada en Sistemas Expertos
DiagramadeCasosdeUso
Actoresinvolucrados
Usuario:esquienpuederealizaraltas,bajasymodificaciones
delosdiagramasyquienpuedehabilitar/deshabilitarlos
mismosparasuejecucin.
Tiempo:actortemporalquedisparaelcasodeusoEjecutar
Programacuandollegaciertoinstantepreviamentedefinido
enundiagrama.
CambioenSensorExterno:actorquerepresentaelcambiode
valorenunavariableglobal(porej.:temperaturaexterior,
intrusinenlaresidencia,etc.)quedisparaelcasodeuso
EjecutarPrograma.
Casa:actorquemodelaalosdispositivosdentrodelamisma
queseactivarnomodificarnsuestadocomoconsecuencia
dequesedispareelcasodeusoEjecutarPrograma.
65
Programacin Domtica Basada en Sistemas Expertos
DescripcindelosCasosdeUso
1. CrearDiagrama:creacindeunnuevodiagramadeflujo.
2. EditarDiagrama:enestecasodeusoserealizalamodificacinde
undiagramadeflujo,tantoensuestructura(figurasinvolucradasy
suinterconexin)comoensufuncin.
3. Administrar Diagramas: se realizan tareas de mantenimiento al
conjuntodediagramas(eliminar,habilitar).
4. EliminarDiagrama:eliminaundiagramadeflujodelosdiagramas
disponibles.
5. HabilitarDiagrama:en estecaso,seindicasiundiagramadebe o
nofigurarcomodisponibleparaejecucin.
6. GenerarPrograma:enestecasodeuso,seconvierteundiagrama
deflujoenunprogramaparasuposteriorejecucin.
7. Guardar Diagrama: se almacena el diagrama para su posterior
modificacin.
8. Probar diagrama: ejecuta inmediatamente un diagrama por nica
vez.
9. EjecutarPrograma:ejecutaunprogramapreviamentegenerado.
10. Administrar Programas: determina qu programas deben
ejecutarseenelinstanteactual.
11. Visualizar Estado: se muestra que eventos se originaron en el
hogaryqueequiposseactivaron.
12. Simular Cambio en Sensor: se simula la activacin de un sensor
paraestudiarlaejecucindelosprogramas.
66
Programacin Domtica Basada en Sistemas Expertos
ModelodeDominio
67
Programacin Domtica Basada en Sistemas Expertos
A.1.2.1.2. IdentificacindelEntornoTecnolgico
Enestatareasedefinir,enaltonivel,elentornotecnolgicoqueserequierepara
darrespuestaalasnecesidadesdeinformacin,especificandosuscondicionantes
yrestricciones.Paraellosetendrencuentaelentornotecnolgicopropuestoen
ladescripcindelasolucin,queseobtuvoenelEstudiodeViabilidaddelSistema.
DentrodelEntornoTecnolgicoautilizar,ydeacuerdoalassolucionespropuestas
enelEstudiodeViabilidaddelSistema,mediantesesionesdetrabajosedetermin
el entorno de hardware: para el lado servidor de la aplicacin deber poder
ejecutarse en una computadora hogarea de rango mediobajo, con un
procesador de al menos 800 MHz, 512 MB de RAM y 80 GB de disco duro. El
sistema operativo a utilizar ser Microsoft Windows XP/Vista. Del lado cliente,
deberpoderejecutarseenunnavegadormodernotalcomoInternetExplorer7,
Mozilla Firefox 2.x o Google Chrome 1.x en adelante, con los requerimientos de
hardwareysoftwarequesuutilizacinderive.
Para construir el lado cliente, se utilizar Adobe Flex (con Adobe Flash Player
versin9)porsuampliousoenelmercado,laflexibilidadypoderdellenguajeyla
calidadfinaldelasinterfasesgrficasrealizadasenelmismo.
68
Programacin Domtica Basada en Sistemas Expertos
A.1.2.1.3. EspecificacindeEstndaresyNormas
Enelcasodelpresenteproyecto,ydadalanaturalezadeTrabajoProfesionaldel
mismo,losestndares,normativasyleyesnoseaplican,salvoladirectiva,antes
mencionadaenestedocumento,queelTrabajoProfesionaldebeserdesarrollado
siguiendoMtrica3.
A.1.2.1.4. IdentificacindelosUsuariosParticipantesy
Finales
Enestatareaseidentificarnusuariosparticipantesyfinales,interlocutorestanto
enlaobtencinderequisitoscomoenlavalidacindelosdistintosproductosyla
aceptacinfinaldelsistema.
69
Programacin Domtica Basada en Sistemas Expertos
Catlogodeusuarios
SedefinirnlasresponsabilidadesdelosusuariosyadetectadosenelEVS
ID ApellidoyNombre Rol Responsabilidades
U1 Merlino,Hernn Director del Trabajo Direccin terica y
Profesional prctica
U2 GarcaMartnez,Ramn Director del Trabajo Direccin terica y
Profesional prctica
U3 Fernndez,Enrique ConsultorenMtrica3 Consultora
referente al
seguimiento de la
metodologa de
desarrollo
U4 Fras,Guillermo Analista / Programador Desarrollo
/Tester Documentacin
Pruebas
A.1.2.2. EstablecimientodeRequisitos
Enestaactividad,sellevaracaboladefinicin,anlisisyvalidacindelosrequisitosa
partir de la informacin facilitada por el usuario, completndose el catlogo de
requisitosobtenidoenlaactividadDefinicindelSistema.Elobjetivodeestaactividad
es obtener un catlogo detallado de requisitos, a partir del cual comprobar que los
productosgeneradosdelasactividadesdemodelizacinseajustenalosrequisitosde
usuario.
A.1.2.2.1. ObtencindeRequisitos
Enestatarea,comenzarlaobtencindetalladadeinformacinmediantesesiones
detrabajoconlosusuarios,identificadospreviamenteenlaDefinicindelSistema.
70
Programacin Domtica Basada en Sistemas Expertos
ID Autor Tipo Descripcin Prioridad Estado Fechade
creacin
REQ1 FRIAS, Arquitectura Sistemade ALTA APROBADO 1/8/08
G. control
domtico
centralizado
REQ2 FRIAS, No Facilidadde MEDIA APROBADO 21/8/08
G. Funcional instalacin
REQ3 FRIAS, Funcional Facilidadde ALTA APROBADO 10/8/08
G. uso
REQ4 FRIAS, Funcional Interfaz MEDIA APROBADO 1/8/08
G. grficacomo
modode
control
REQ5 FRIAS, Funcional Visualizacin ALTA APROBADO 1/8/08
G. ycontrol
tantolocal
comoremoto
(vaInternet)
REQ6 FRIAS, Funcional Simplicidad ALTA APROBADO 1/8/08
G. de
programacin
REQ7 FRIAS, Funcional Capacidadde MEDIA APROBADO 17/8/08
G. temporizar
acciones
REQ8 FRIAS, Funcional Registrode BAJA APROBADO 20/8/08
G. eventos
REQ9 FRIAS, Funcional Activacinde MEDIA APROBADO 20/8/08
G. programas
porlallegada
deseales
externas
REQ10 FRIAS, Rendimiento Ellado ALTA APROBADO 29/8/08
G. servidordebe
poder
ejecutarseen
unaPC
hogareade
acuerdoalas
caractersticas
deASI1.2
REQ11 FRIAS, Rendimiento Elladocliente MEDIA APROBADO 29/8/08
G debepoder
ejecutarseen
unnavegador
webde
acuerdoalas
caractersticas
deASI1.2
71
Programacin Domtica Basada en Sistemas Expertos
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
Poscondiciones:secreundiagramaenblanco
Excepciones:siexistaundiagramaabiertoquesemodificynosedese
guardaresoscambios.
2. EditarDiagrama
Precondiciones:existeundiagramaabierto.
Poscondiciones:eldiagramaabiertohasidomodificado.
Excepciones:
3. AdministrarDiagramas
Precondiciones:existealmenosundiagramaalmacenado.
Excepciones:eldiagramaabiertonopuedesereliminado.
72
Programacin Domtica Basada en Sistemas Expertos
4. EliminarDiagrama
Escenarios:elusuarioeliminaundiagramaalmacenado.
Precondiciones:eldiagramaaeliminarexisteynoestabierto.
Poscondiciones:seelimineldiagramaindicado.
Excepciones:
5. HabilitarDiagrama
Escenarios:elusuariohabilitaodeshabilitaundiagrama
Poscondiciones:sehabilit/deshabiliteldiagramaalmacenado.
Excepciones:
6. GenerarPrograma
Escenarios:elusuarioguardaundiagramaycomoconsecuenciadeellose
generarelprogramacorrespondiente.
Poscondiciones:segenerelprogramaasociadoaldiagramaguardado.
Excepciones:
7. GuardarDiagrama
Precondiciones:Existeundiagramaactual.
Poscondiciones:Seguardaldiagramaactual.
Excepciones:
73
Programacin Domtica Basada en Sistemas Expertos
8. ProbarDiagrama
Poscondiciones:elprogramageneradoapartirdeldiagramafueejecutado
pornicavezconxito.
Excepciones:
9. EjecutarPrograma
Poscondiciones:elprogramafueejecutadoconxito.
Excepciones:
10. AdministrarProgramas
Escenarios:unacondicinexterna(cambioenunsensor,pasodeltiempo)
disparalaejecucindelosprogramasquedependendedichacondicin.
Excepciones:
11. VisualizarEstado
Precondiciones:
74
Programacin Domtica Basada en Sistemas Expertos
Poscondiciones:semuestraenpantallaelestadodelacasayloseventos
generados.
Excepciones:
12. SimularCambioenSensor
Precondiciones:
Poscondiciones:elsensorcuyocambiosesimulcambidevalor.
Excepciones:
A.1.2.2.3. AnlisisdelosRequisitos
Enestatareaseestudiarlainformacincapturadapreviamenteenestaactividad
paradetectarinconsistencias,ambigedades,duplicidadoescasezdeinformacin.
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
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
76
Programacin Domtica Basada en Sistemas Expertos
2. GeneradordeCdigo
Descripcin:Subsistemaencargadodegenerar,apartirdelosdiagramas,
losprogramascorrespondientesqueposteriormenteseejecutarn.
3. Simuladoryvisualizadordeeventos
Descripcin:Subsistemaresponsablededesplegarenpantallaloseventos
quesegeneraron,equiposqueseactivaronydeproveerunainterfazpara
simularlaactivacindelossensores.
4. Emuladordelasvariablesdelhogar,estadodelacasa
77
Programacin Domtica Basada en Sistemas Expertos
debepoderejecutarseenunaPChogareadeacuerdoalascaractersticas
deASI1.2.
5. EjecutordeCdigo
A.1.2.3.2. IntegracindeSubsistemasdeAnlisis
Dadoqueenlatareaanteriorseobtuvieronlasdescripcionesdelossubsistemas
deanlisis,enestatareasedescribirnlasinterfasesentresubsistemas.
78
Programacin Domtica Basada en Sistemas Expertos
SolicitarDiagramasDisponibles
SolicitarArchivosdeCdigoDisponibles
ActualizarEstadoDispositivos
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
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
80
Programacin Domtica Basada en Sistemas Expertos
visualizadordeeventos;
EjecutordeCdigo
Room ProbarDiagrama,Ejecutar Emuladordelasvariables
Programa,VisualizarEstado, delhogar,estadodela
SimularCambioenSensor casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Function ProbarDiagrama,Ejecutar Emuladordelasvariables
Programa,VisualizarEstado, delhogar,estadodela
SimularCambioenSensor casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Log ProbarDiagrama,Ejecutar Emuladordelasvariables
Programa,VisualizarEstado, delhogar,estadodela
SimularCambioenSensor casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
LogEntry ProbarDiagrama,Ejecutar Emuladordelasvariables
Programa,VisualizarEstado, delhogar,estadodela
SimularCambioenSensor casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Sensor ProbarDiagrama,Ejecutar Emuladordelasvariables
Programa,VisualizarEstado, delhogar,estadodela
SimularCambioenSensor casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Expression GenerarPrograma GeneradordeCdigo
Param GenerarPrograma GeneradordeCdigo
CodeGen GenerarPrograma GeneradordeCdigo
Executer Probardiagrama,Ejecutar Emuladordelasvariables
Programa,Administrar delhogar,estadodela
Programas,SimularCambios casa;EjecutordeCdigo
enSensor
Dispatcher EjecutarPrograma, Emuladordelasvariables
AdministrarProgramas, delhogar,estadodela
SimularCambiosenSensor casa;EjecutordeCdigo
CodeSupervisor Probardiagrama,Ejecutar Emuladordelasvariables
Programa delhogar,estadodela
casa;EjecutordeCdigo
SensorSystem SimularCambiosenSensor Emuladordelasvariables
delhogar,estadodela
casa;EjecutordeCdigo
WatchDog Probardiagrama,Ejecutar EjecutordeCdigo
Programa
RemoteFunction Probardiagrama,Ejecutar Emuladordelasvariables
Programa delhogar,estadodela
casa;EjecutordeCdigo
MotorInferencias Probardiagrama,Ejecutar EjecutordeCdigo
Programa
FileConditions ProbarDiagrama,Ejecutar EjecutordeCdigo
81
Programacin Domtica Basada en Sistemas Expertos
Programa,Administrar
Programas,SimularCambios
enSensor
A.1.2.5. AnlisisdelasClases
Estaactividad,queserealizaentodoAnlisisOrientadoaObjetos,comoenelcasodel
presente Trabajo, se describir cada una de las clases surgidas, identificando sus
responsabilidadesasociadas,atributosyrelacionesentreellas.
NOTA: dado que cada una de las siguientes tres tareas (2.2.5.1, 2.2.5.2 y 2.2.5.3)
requierenundiagramadeclasesparacadasubsistemayconelfindesimplificarla
lecturadetodalaactividad,luegodeladescripcindelatarea2.2.5.3secolocarel
diagramadeclasesfinalparacadasubsistema.
A.1.2.5.1. IdentificacindeResponsabilidadesyAtributos
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
A.1.2.5.3. IdentificacindeGeneralizaciones
En esta tarea se representarn las clases con una organizacin que permita una
implementacinsencilladelaherenciayunaagrupacinsemnticadelasdistintas
clases.
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
86
Programacin Domtica Basada en Sistemas Expertos
EjecutordeCdigo
87
Programacin Domtica Basada en Sistemas Expertos
88
Programacin Domtica Basada en Sistemas Expertos
Emuladordelasvariablesdelhogar,estadodelacasa
89
Programacin Domtica Basada en Sistemas Expertos
Logesresponsabledelregistrodeeventos,cadaunodeellos,representadoenla
claseLogEntryysusclaseshijas,especializadassegnlafuncinquegeneredicho
evento.
90
Programacin Domtica Basada en Sistemas Expertos
Simuladoryvisualizadordeeventos
91
Programacin Domtica Basada en Sistemas Expertos
A.1.2.6. ElaboracindelModelodeDatos
A.1.2.7. ElaboracindelModelodeProcesos
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
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.
93
Programacin Domtica Basada en Sistemas Expertos
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
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
EditordeDiagramas
97
Programacin Domtica Basada en Sistemas Expertos
CuadroAbrirDiagrama
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.
99
Programacin Domtica Basada en Sistemas Expertos
PropiedadesAsignacin
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
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
Encenderlaluzdelahabitacin
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
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
106
Programacin Domtica Basada en Sistemas Expertos
A.1.2.10.2. DefinicindeRequisitosdelEntornodePruebas
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
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
Actividadesdeprueba
109
Programacin Domtica Basada en Sistemas Expertos
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
A.1.3.1. DefinicindelaArquitecturadelSistema
A.1.3.1.1. DefinicindelosNivelesdeArquitectura
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.
Lacomunicacinseexpresaporunaconexinentrenodos,indicandosucarcter
bidireccionalounidireccional,conlasprincipalescaractersticasdelosprotocolos
otipodemensajesutilizados.
111
Programacin Domtica Basada en Sistemas Expertos
112
Programacin Domtica Basada en Sistemas Expertos
Descripcin
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.
A.1.3.1.2. IdentificacindeRequisitosdeDiseoy
Construccin
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.
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.
A.1.3.1.4. EspecificacindeEstndaresyNormasdeDiseoy
Construccin
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
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.
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
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
118
Programacin Domtica Basada en Sistemas Expertos
DescripcindelasClasesAdicionales
Punto:claseresponsabledemodelarunpuntodentrodeldiagrama.
Lnea:claseresponsabledemodelarunalneadentrodeldiagrama.
Rectngulo:claseencargadademodelarlascoordenadasdeunrectngulodentro
deldiagrama.
OpenDlg:clasequemodelaelcomportamientodel cuadroAbrirDiagrama(ver
2.2.8.4)
SaveDlg:clasequemodelaelcomportamientodelcuadroGuardar/Guardarcomo
Diagrama(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.
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
A.1.3.4.4. IdentificacindelasOperacionesdelasClases
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
A.1.3.4.5. DiseodelaJerarqua
A.1.3.4.6. DescripcindelosMtodosdelasOperaciones
Enestatareasedescribirnlosmtodosqueseusanparadetallarcomoserealiza
cada una de las operaciones de una clase. Los mtodos pueden especificarse
medianteunalgoritmo,usandopseudocdigoolenguajenatural.
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).
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
A.1.3.6. DiseoFsicodeDatos
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.
Elaccesoadichastablaspermitirllenarloscuadrosdedilogoespecificadosen
2.2.8.4.EspecificacindelComportamientoDinmicodelaInterfaz.
TeniendoencuentaqueelmotordebasededatosautilizaresMySQL(ver2.2.1.2.
Identificacin del Entorno Tecnolgico), las sentencias para generacin de las
tablasseran:
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;
128
Programacin Domtica Basada en Sistemas Expertos
A.1.3.6.2. EspecificacindelosCaminosdeAccesoalosDatos
Acontinuacin,seespecificarnloscaminosparaobtenerdatosdesdelaBasede
Datos:
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.
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
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
A.1.3.7. VerificacinyAceptacindelaArquitecturadelSistema
Elobjetivodeestaactividadesgarantizarlacalidaddelasespecificacionesdeldiseo
delsistemadeinformacinylaviabilidaddelmismo,comopasoprevioalageneracin
delasespecificacionesdeconstruccin.
A.1.3.7.1. VerificacindelasEspecificacionesdeDiseo
A.1.3.7.2. AnlisisdeConsistenciadelasEspecificacionesde
Diseo
A.1.3.7.3. AceptacindelaArquitecturadelSistema
131
Programacin Domtica Basada en Sistemas Expertos
A.1.3.8. GeneracindelasEspecificacionesdeConstruccin
Enestaactividadsegenerarnlasespecificacionesparalaconstruccindelsistemade
informacin,apartirdeldiseodetallado.
A.1.3.8.1. EspecificacindelEntornodeConstruccin
ElentornodeconstruccindeesteTrabajoProfesionalestlimitadoalosrecursos
disponiblesporpartedelalumno,pudiendomencionar:
Hardware
o Una PC (Intel Core Duo 1,6 GHz, 2GB RAM, Disco de 80 GB,
Resolucin1280x800pxeles)
Software
o WindowsXPSP2Professional
o MicrosoftVirtualPC6.0
o Navegadoresweb(InternetExplorer7,MozillaFirefox2.0,Google
Chrome1.0)
o EasyPHP1.8(Apache1.3.x,BasedeDatosMySQL4.1.x,PHP4.3.x)
o AdobeFlashPlayer9
132
Programacin Domtica Basada en Sistemas Expertos
o Herramientasdeconstruccin
Java1.6(JDK1.6.0.11)
CLIPS(versin6.3)
IDEEclipse(3.3.0)conFlexBuilder3Plugin
NullsoftScriptableInstallSystemversin2.44(Generador
deinstaladores)
Comunicaciones
o ConexinaInternetporBandaAnchaa1Mbps
A.1.3.8.2. DefinicindeComponentesySubsistemasde
Construccin
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.
A.1.3.9.1. DiseodeProcedimientosdeCargaInicial
Enestatareasedefinirnlosprocedimientosnecesariosparallevaracabolacarga
inicialdedatosdelsistema.
Paraestepunto,setomaronlossiguientescriteriosalahoradelacargainicialde
datos:
Lacargainicialdedatosdeberestarincluidaenelprocesodeinstalacin
delladoServidor.
134
Programacin Domtica Basada en Sistemas Expertos
Encasodeexistirlastablas,deberndescartarseycrearseyllenarsedesde
cero.
Ante la eventual desinstalacin del lado Servidor, las tablas y sus datos
debernpermaneceralmacenadas.
A.1.3.10. EspecificacinTcnicadelPlandePruebas
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.
A.1.3.10.2. EspecificacinTcnicadelosNivelesdePrueba
PruebasUnitariasdelasClases
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.
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
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
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
A.1.4.1. PreparacindelEntornodeGeneracinyConstruccin
A.1.4.1.1. PreparacindelEntornodeGeneraciny
Construccin
Enestatareaseprocedera:
BasedeDatos
Enlabasededatossealmacenarnlosdiagramascreadosporelusuarioyse
recuperar la informacin de que funciones domticas estn disponibles en
culoculeshabitacionesyqueparmetrostoman.Acontinuacinsedetalla
elscriptdecreacindelabasededatos.
140
Programacin Domtica Basada en Sistemas Expertos
CREATE TABLE rooms (id INT NOT NULL PRIMARY KEY , name
VARCHAR(50)) ENGINE=InnoDB;
Enlatablafilesfigurarnunregistroporcadadiagramasalvadoporelusuario,
elcampocontentrepresentaelcontenidodeldiagramaenformatoXML(dicho
formato se explicar en detalle ms adelante en este punto). Esta tabla se
inicializarvacaalmomentodelacargadeinicialdedatos.
141
Programacin Domtica Basada en Sistemas Expertos
Acontinuacinsedetallarncadaunadeestasfunciones:
Nombrede Disponible
Descripcin Parmetro(s) Devuelve
lafuncin en:
luz Living
Ajustala Cocina
intensidaddela Intensidad Comedor
luzdeuna (entero0..10) Bao
habitacin Dormitorio
Garage
fijarTemperatura Living
Fijala Cocina
temperaturadela Valor(entero Comedor
habitacin 20..30) Bao
seleccionada Dormitorio
Garage
enviarSMS Envaunmensaje
Nro(entero)
detextomensaje
Mensaje General
aunnmerode
(texto)
telfononro
regadores Activalos
regadoresconla Intensidad
Patio
intensidad (entero0..10)
especificada
activarAlarma Disparalaalarma
General
delavivienda
incrementar Incrementaen1 Valor
elvalordel Valor(entero) General incrementa
parmetrovalor doen1
suma Sumando1 Sumando1
Sumadosvalores Sumando2 General +
(enteros) Sumando2
abrirPorton Abreelportn
Garage
delGarage
cerrarPorton Cierraelportn
Garage
delGarage
obtTemperatura Devuelvela Living
temperaturaen Cocina Temperatu
grados Comedor radela
centgradosdela Bao habitacin
habitacin Dormitorio enC
seleccionada Garage
encenderMi cantSegundo
croondas s(entero):
Activaelhornoa cantidadde
microondascon segundosde
laintensidady coccin Cocina
duranteeltiempo intensidad
determinado (entero
0..10):
intensidad
142
Programacin Domtica Basada en Sistemas Expertos
decoccin
debug Despliegaun
mensaje
(paramDebug1 paramDebug
concatenadocon 1(texto)
General
paramDebug2)en paramDebug
laconsolade 2(texto)
eventosdel
simulador
resta Minuendo
Minuendo
(entero)
Restadosvalores General
Sustraendo
Sustraendo
(entero)
NOT Cerosi
valores
distintode
Niegaavalor Valor(entero) General 0
Unosi
valores
iguala0
grabarTV Grabaelcanalde Canal
TVespecificado (entero)
durantela DuracionMin
Living
cantidadde (duracinde
minutos lagrabacin
solicitada enminutos
FormatosdeArchivoaUtilizar
Laformadeintercambiodedatosentresubsistemasserapartirdearchivos
XML,conlocual,acontinuacinsedefinirnlasestructurasdelosprincipales,
utilizandoXSDSchema.
Archivosgeneradosporeleditordediagramas
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: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>
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
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,
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).
150
Programacin Domtica Basada en Sistemas Expertos
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.
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
EnelprogramaenCLIPSademsseagreganciertasfuncionesmacrodefinidasparasimplificar
la escritura de las reglas. Cabe destacar que las sentencias (cada sentencia se encuentra
enmarcadaentreparntesis)enCLIPSnoseejecutanenordendearribahaciaabajo,yaquela
ejecucindependedeloshechospresentesenlabasedeconocimientos.
(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.
157
Programacin Domtica Basada en Sistemas Expertos
existente,respectivamente)y<nombre_archivo_clp>eselnombredel
archivo ejecutable (.clp) correspondiente al diagrama
agregado/eliminado.
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
A.1.4.2.1. GeneracindelCdigodeComponentes
Enestatareasegeneraelcdigocorrespondienteacadaunodeloscomponentes
delsistemadeinformacin,identificadosenlatareaDefinicindeComponentesy
SubsistemasdeConstruccin(2.3.8.2).
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
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
HomeState(30clases,59tests):59/59testsexitosos
CodeGen(12clases,28tests):28/28testsexitosos
Executer(5clases,19tests):19/19testexitosos.
A.1.4.4. EjecucindelasPruebasdeIntegracin
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
162
Programacin Domtica Basada en Sistemas Expertos
Pararealizarestaverificacin,sesiguieronlossiguientespasos:
o GenerarundiagramaenGraFlowyseguardenlaBasedeDatos
o RecuperareldiagramaalmacenadocomoXMLenlaBasedeDatos
usando phpmyadmin y se gener un archivo de texto XML
(test.xml)
o Validar el XML del diagrama contra su schema correspondiente
(schema_graflow.xsd) con un validador web
(http://www.xmlme.com/Validator.aspx)
o Ejecutar CodeGen, pasando el archivo de diagrama XML como
parmetro, generndose as sus correspondientes archivos de
cdigo CLIPS (test.clp) y de condiciones de disparo del programa
(test.cond)
o Validarelarchivotest.condconsuschema(schema_cond.xsd)
o Abrir el archivo test.clp en la consola de CLIPS y verificar que se
pueda cargar satisfactoriamente (implicando que las reglas son
sintcticamentecorrectas)
Pararealizarestaverificacin,sesiguieronlossiguientespasos:
o Remover las marcas de comentarios (; en CLIPS) de test.clp de
las sentencias que permiten imprimir en consola que regla se
acabadeejecutar.
o Cargaryejecutartest.clpenExecuter
o Verificarelordenenquelasreglasfueronejecutadosapartirdela
impresinporconsola.
c. IntegracinEjecutordeCdigo(Executer)yEmuladordelasvariablesdel
hogar,estadodelacasa(HomeState)
163
Programacin Domtica Basada en Sistemas Expertos
Sesiguieronlossiguientespasos:
o Ejecutartest.clp
o Verificarelestadodelacasa,conectndoseaHomeStatevatelnet
alpuertocorrespondienteysolicitandoelregistrodeeventos
d. IntegracinHomeStateySimulador
Sesiguieronlossiguientespasos:
o Ejecutartest.clp
o Abrir simulador y verificar que los eventos correspondientes
figuren en la lista de registro de eventos. Si el evento generado
tieneunarepresentacinvisual,verificarquelamismasepresente
correctamente.
A.1.4.4.3. EvaluacindelResultadodelasPruebasde
Integracin
Acontinuacin,sedescribirnlasobservacionestraslaejecucindecadaunade
laspruebasdeintegracinparacadaunodelosdiagramas.
DiagramaA:
1Corrida:
En la prueba de integracin A (GraFlowCodeGen) se detect que el archivo de
cdigonosegenerabacorrectamente.
ReportedePruebaNro:1.1 Fecha:1/7/09
Erroresencontrados:
IDCasodePrueba NivelSeveridad Descripcin
DA.A Medio Alalmacenarseun
diagramavaco,el
archivodecdigo(.clp)
nosegenera
correctamente
164
Programacin Domtica Basada en Sistemas Expertos
Elarchivodediagrama
fuevalidadoconel
Schemaypasla
prueba.
DA.A Medio Alalmacenarseun
diagramavaco,el
archivode
condiciones(.cond)no
segenera
correctamente
Elarchivodediagrama
fuevalidadoconel
Schemaypasla
prueba.
SecreequeelerrorradicadentrodelsubsistemaCodeGenyqueestrelacionado
conqueelmismoesperaalmenosunbloquedeprogramaenelXMLdediagrama.
Pruebas de integracin B, C y D no se pudieron completar, debido a que sus
entradasdependandelasalidadelapruebaA.
2 Corrida: una vez solucionados los problemas reportados en la primera, se
ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados
satisfactorios.
DiagramaB:
1Corrida:
Se ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados
satisfactorios.
DiagramaC:
1Corrida:
Se ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados
satisfactorios.
DiagramaD:
1Corrida:
Se completaron las propiedades de las figuras del diagrama de flujo
predeterminadodemodoquerepresentealsiguientepseudocdigo:
165
Programacin Domtica Basada en Sistemas Expertos
temp <- 23;
SI (temp < 25) ENTONCES{
DEBUG(temp es menor a 25 y vale , temp);
}SINO{
DEBUG(temp es mayor o igual a 25 y vale , temp);
}
FIN
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
DiagramaE:
1Corrida:
Se completaron las propiedades de las figuras del diagrama de flujo
predeterminadodemodoquerepresentealsiguientepseudocdigo:
Ejecutar los: Martes
A las: 17:03
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
ReportedePruebaNro:5.3 Fecha:7/7/09
Erroresencontrados:
IDCasodePrueba NivelSeveridad Descripcin
DE.C Medio Alalmacenarseun
diagramaquedebe
ejecutarsemsdeuna
vezporsemana,nose
terminaejecutando
nunca.Siseselecciona
comopropiedadde
comienzocerooundaa
lasemana,funciona
correctamente
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
ReportedePruebaNro:7.3 Fecha:10/7/09
Erroresencontrados:
IDCasodePrueba NivelSeveridad Descripcin
DG.C Medio Alalmacenarseun
diagramaquedebe
168
Programacin Domtica Basada en Sistemas Expertos
ejecutarseantela
llegadadelasealde2o
mssensores,nose
terminaejecutando
nunca.Siseselecciona
comopropiedadde
comienzocerooun
sensor,funciona
correctamente
A.1.4.5. EjecucindelasPruebasdeSistema
A.1.4.5.1. RealizacindelasPruebasdeSistema
A.1.4.5.2. EvaluacindelResultadodelasPruebasdeSistema
169
Programacin Domtica Basada en Sistemas Expertos
1. 1Corrida
ReportedePruebaNro:8 Fecha:14/7/09
Objetivo:PruebadeSistemaparaDiagramaA
Erroresencontrados:
IDCasodePrueba NivelSeveridad Descripcin
PS.A Bajo Alalmacenarseun
diagramavacoyluego
reabrirse,produceun
error
2. 1Corrida
ReportedePruebaNro:9 Fecha:15/7/09
Objetivo:PruebadeSistemausandoAdministrarDiagramas
Erroresencontrados:
IDCasodePrueba NivelSeveridad Descripcin
PS.X Medio Aleliminarseel
diagramaactualmente
abiertodesde
Administrardiagramas
deGraFlow,seproduce
unerrorqueseregistra
enellogdeExecuter
170
Programacin Domtica Basada en Sistemas Expertos
A.1.4.6. ElaboracindelosManualesdeUsuario
A.1.4.6.1. ElaboracindelosManualesdeUsuario
A.1.4.7. DefinicindelaFormacindelosUsuariosFinales
Enestaactividadseestablecernlasnecesidadesdeformacindelusuariofinal,conel
objetivodeconseguirlaexplotacineficazdelnuevosistema.
Paraladefinicindelaformacinsetendrnencuentalascaractersticasfuncionalesy
tcnicaspropiasdelsistemadeinformacin,ascomolosrequisitosrelacionadoscon
laformacindelusuariofinal,establecidosenlatareaEspecificacindeRequisitosde
Implantacin(2.3.11.2).
171
Programacin Domtica Basada en Sistemas Expertos
A.1.4.8. ConstruccindelosComponentesyProcedimientosde
MigracinyCargaInicialdelosDatos
A.1.4.8.1. PreparacindelEntornodeMigracinyCarga
InicialdeDatos
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
A.1.4.9. AprobacindelSistemadeInformacin
A.1.4.9.1. PresentacinyAprobacindelSistemade
Informacin
173