Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Septiembre 2009
Indice
1.
RESUMEN...............................................................................................................................1
2.
INTRODUCCIN.....................................................................................................................2
2.1.
2.2.
3.
4.
5.
REA DE APLICACIN.........................................................................................................4
6.
TABLA COMPARATIVA..................................................................................................................7
7.
8.
SOLUCIN PROPUESTA......................................................................................................9
9.
CASOS DE VALIDACIN.....................................................................................................13
9.1.
9.2.
9.3.
10.
CONCLUSIN....................................................................................................................40
11.
REFERENCIAS..................................................................................................................41
A. METODOLOGA.....................................................................................................................42
A.1. DESARROLLO DE SISTEMAS DE INFORMACIN........................................................................42
A.1.1.
Estudio de Viabilidad del Sistema (EVS)...................................................................42
A.1.1.1.
A.1.1.2.
A.1.1.3.
A.1.1.4.
A.1.1.5.
A.1.1.6.
A.1.2.
A.1.2.1.
A.1.2.2.
A.1.2.3.
A.1.2.4.
A.1.2.5.
A.1.2.6.
A.1.2.7.
A.1.2.8.
A.1.2.9.
A.1.2.10.
A.1.2.11.
A.1.3.
A.1.3.1.
A.1.3.2.
A.1.3.3.
A.1.3.4.
A.1.3.5.
A.1.3.6.
A.1.3.7.
A.1.3.8.
A.1.3.9.
A.1.3.10.
A.1.3.11.
A.1.3.12.
A.1.4.
A.1.4.1.
A.1.4.2.
A.1.4.3.
A.1.4.4.
A.1.4.5.
A.1.4.6.
A.1.4.7.
A.1.4.8.
los Datos
A.1.4.9.
ii
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.
2. Introduccin
El trmino domtica proviene de la unin de las palabras domus (en latn, casa) y tica (en
griego, que funciona por s misma). Dicho trmino agrupa a todas aquellas soluciones
destinadasaautomatizarciertosprocesosdelavidacotidianadentrodelhogar,entrelosque
se destacan seguridad, confort, comunicacin y ahorro de energa. Para poder llevar a cabo
estas funciones, los diversos dispositivos se encuentran interconectados por medio de redes
interiores y exteriores de comunicacin, cableadas o inalmbricas, y cuyo control goza de
ciertacomodidadyubicacinconveniente,dentroyfueradelhogar.
De acuerdo a [2], se denomina Domtica o Automatizacin del Hogar a la aplicacin de
nuevas soluciones tecnolgicas basadas en la electrnica y en las telecomunicaciones al
ambiente domstico, con el objetivo de mejorar dispositivos existentes y proveer un mayor
nmerodeserviciosdeutilidaddomstica.
La domtica surgi en los aos 70, con el fin de interconectar dispositivos de iluminacin y
seguridad, otorgando un nivel bsico de automatizacin al usuario. Dicha interconexin
persigue como resultado la asistencia y la simplificacin de las condiciones de confort para
todossususuarios.
Ladomticatienediversosusos,entreloscualessedestacan:
Iluminacin:encendido/ajuste/apagadodeluces.
Generacindemacrosoprogramasdeformasencillaparaelusuario.
Controlvainternet
Automatizacindeequipos
Simulacindepresencia
Cerramientodelapropiedad
Comunicaciones:laviviendasecomunicaconelexteriortantopararegularsucontrol
comoparanotificardeeventosgenerados.
o
ControlporinternetvaPC,PDAsotelfonoscelulares
Notificacindealarmas
2.1.Componentesdelsistema
Sensor:dispositivoquemideunacantidadfsicaylaconvierteenunasealelctrica
quepuedeserledaporelcontrolador.
2.2.Tiposdearquitectura
Desdeelpuntodevistadedonderesidelainteligenciadelsistemadomtico,existentres
enfoquesprincipales:
Centralizada:uncontrolcentralrecibeinformacindelosdistintossensoresy,unavez
procesada,generaytransmitelasrdenesadecuadasacadaactuador.
Distribuida:lainteligenciadelsistemaestubicadaenlossensoresyactuadores.
Mixta:existenvariosdispositivoscapacesderecopilarlainformacindelossensoresy
transmitirrdenesalrestodelosdispositivos.
3. PresentacindelProblema
Muchasdelassolucionesdomticasexistentesenelmercadotiendenamejorarlacalidadde
vidadeloshabitantesdeunavivienda,proveyendocomodidadesparalaactivacinoajustede
dispositivos a travs de controles remotos que requieren de la accin de un individuo. Los
ajustes automticos se reducen a activaciones producto de temporizadores en dispositivos
puntuales tales como el aire acondicionado o el DVR (Digital Video Recorder, Grabador de
VideoDigital).Siseintentaqueelgradodeautomatizacininvolucreadosomsdispositivos,
granpartedelasopcionesdisponiblesrequierenconocimientostcnicosdeprogramaciny/o
electrnica. Adems, las capacidades de visualizar el estado de la vivienda o agregar nuevos
programas estando fuera del hogar, resultan limitadas. Por ello, queda en evidencia la
necesidaddeunsistemaquepermitaautomatizar(demodosencilloparaunusuariomedio)
tareasqueinvolucrenavariosdispositivosyquepermitadecidirlascondicionesdeactivacin
dedichastareastalescomohora,condicionesexternas,etc.tantodesdeelhogarcomoenuna
ubicacinremota.
4. ObjetivodelTrabajoProfesional
ElObjetivodelpresenteTrabajoProfesionalesdesarrollarunsistemaquepermitaprogramar
laautomatizacindeequiposdedomticavaweb,representandodichaprogramacincomo
diagramasdeflujo,loscualessetraducirnacdigoejecutabledeunsistemaexpertoquien
serelencargadodeactuarsobrelosequipossegnlascondicionessensadasenlasvariables
delambiente.Enestetrabajo,nohabrunaconexinrealcondichosartefactossinoquelos
mismossesimularnconunprogramaconinterfazgrfica.
5. readeAplicacin
La aplicacin est destinada a todo usuario avanzado/semi avanzado de equipos de
automatizacindelhogarolaoficina,quenotengaconocimientosdeprogramacinmsall
dediagramasdeflujoyquedeseeprogramarsusequiposmsalldelnivelbsicoqueotorgan
lasinterfacesdeusuariodecadaunodeellos.
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
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.
6.1.Tablacomparativa
Arquitectura
X10
HEYU
Distribuida
Centralizada
(instalacin
individual de
equipos)
HCS
ExDomus
Centralizado o Centralizada
Distribuido, si
se dispone de
pocos
dispositivos a
automatizar
Medio
Baja. Requiere Media
experiencia en
entornos UNIX
(manejo
de
Shellscriptingy
compilacin a
partir
del
cdigofuente)
Baja.
Alta
MediaAlta
Se utiliza un
control
remoto que se
comunica con
una PC con
Windows
MediaCenter
Control
No disponible No disponible Va telefnica,
forma celulares
o,
remoto (fuera sin software en
delhogar)
adicional
nativa
con software
adicional, va
Internet
Alto
Facilidad de Alta
Media.
programacin
Requiere
generarscripts
Poder
de Bajo
(muy MedioAlto
Alto
programacin bsico)
Si
Si
Se utiliza un
control remoto
que
se
comunica con
una PC con
Windows Media
Center
Nodisponible
Media
Media
(se
pueden generar
secuencias de
acciones desde
la
interfaz
grfica)
Si
(en
las
versiones pagas
delsoftware)
Nodisponible
7. RequisitosdelSistema
a. Sistemadecontroldomticocentralizado
b. Facilidaddeinstalacin
c. Facilidaddeuso,atravsdeunainterfacegrficasencillaperopoderosa
d. Interfazgrficacomomododecontrol
e. Visualizacinycontroltantolocalcomoremoto(vaInternet)
f.
Simplicidaddeprogramacin
g. Capacidaddetemporizaracciones
h. Registrodeeventos
i.
8. SolucinPropuesta
Lasolucinpropuestaconstadelassiguientespartes:
Eneltrabajoprofesional,sedecidiqueparaqueestecomponentecumplieseconel
requisito e, la alternativa ms conveniente era desarrollar un programa capaz de ser
accesible mediante un navegador web. Teniendo en cuenta los requisitos cdf, se
decidi que, para mejorar la facilidad de uso, el programa deba estar basado
fuertemente en la manipulacin de elementos grficos. Por ello, se opt por la
programacin a partir de la construccin de diagramas de flujo, cuyo concepto es
similaradiagramasaprendidosduranteelcolegiosecundario,conlocualelgradode
instruccin para su uso inicial se ve reducido considerablemente. Cada diagrama es
almacenadoenunservidordentrodelacasaparasueventualposterioredicindesde
cualquier lugar. Paralelamente, se convierte el diagrama en un programa ejecutable
(ver2).
en
el
mercado,
la
2. Traductordelosdiagramasacdigoejecutable
Estecomponentedeltrabajoprofesional,talcomofuemencionadobrevementeen1,
eselencargadodeconvertirlosdiagramasdeflujoencdigoejecutable.Lasopciones
disponiblesenel mercadoparageneracindecdigovandesde lageneracinde un
programa a partir de un lenguaje estructurado tal como C, pasando por lenguajes
orientadosaobjetoscomoJavaoC++ylenguajesdesistemasexpertos.
Loslenguajesorientadosaobjetosfueronrpidamentedescartados,debidoaquelos
diagramasdeflujomodelanalgoritmosquesonrpidamenteencapsuladosdentrode
una nica clase (con lo cual las ventajas de abstraccin/encapsulamiento al utilizar
mltiplesclasesquedaperdida).
10
Loslenguajesdesistemasexpertostienenlaventajadequepuedengenerarreglasdel
estilo SI PRECONDICION ENTONCES POSTCONDICION, que son justamente el tipo de
estructurasqueaparecenenformapredominanteenlosdiagramasquesegenerarn.
Si bien esto tambin puede hacerse con un lenguaje estructurado, la generacin de
reglas SI ENTONCES es una representacin ms natural. Los lenguajes de sistemas
expertos tienen, respecto a los estructurados, una ventaja adicional: al generar un
programa,elmotordelsistemaexpertotieneherramientaspararealizarunaejecucin
reglaporreglalocualnoslofacilitaladepuracinalmomentodeldesarrollosinoque
tambin provee facilidades para detectar cuando un programa entra en un bucle
infinito (las condiciones de corte no ocurren nunca), esto ltimo es un requisito
fundamentalparaquelaunidaddescritaen3cumplaeficientementeconsufuncin.
Dentrodeloslenguajesdesistemaexperto,existendistintasopciones,perosedecidi
finalmenteporCLIPSporsuextensadocumentacinonline,robustezymadurezdela
plataforma,facilidaddeintegracinenmltipleslenguajes,ademsdelaexistenciade
mltiplesejemplosdeaplicacin.
3. Ejecutor de los programas, activados cuando se cumplan las condiciones de inicio
definidasporelusuario
4. Simulador que acte como sustituto de los equipos que se pretenden controlar
(actuadores)
Estesimuladorconsisteenunapantallaendondeelusuariopuedeverqueartefactos
se han ido activando en el hogar as como tambin ver el registro de los eventos
11
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
12
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
14
4. Configurar las condiciones de inicio del diagrama. Botn derecho sobre la figura
ComienzoyseleccionarPropiedades
15
6. InsertarunafiguraAsignacin
7. MoverlafiguraAsignacin
16
17
12. Dibujar una flecha desde Comienzo a Asignacin. Botn derecho sobre la figura
ComienzoyseleccionarSiguiente
18
13. ElegircomodestinodelaflechaalafiguraAsignacinhaciendoClickconelbotn
izquierdosobrelamisma.
14. InsertarunafiguraFin
19
15. Mover la figura Fin. Dibujar flecha desde Asignacin a Comienzo por similar
procedimientoalpunto12.
16. Guardareldiagrama.
17. Elegirunnombreparaeldiagramacreado,porejemplolivingyAceptar.
20
18. Probarlaejecucindeldiagramaactualenelsimulador.Abrirelsimulador.
19. Eneleditordediagramas,probareldiagramaactual.(Enestemodo,seforzarla
ejecucinsinimportarlascondicionesdeinicioseleccionadas).
20. Verificarelresultadodelaejecucinenelsimulador.
21
21. Activareldiagrama(estoharqueeldiagramaseejecutecuandosecumplanlas
condicionesespecificadasenlafiguracomienzo).
22. Seleccionaraldiagramalivingytildarlacasillaactivado.Aceptarparafinalizar.
22
23. Alahoraindicada,severificaquelaejecucindelprogramafueexitosa.
23
9.2.EncenderregadoresdelpatioyabrirelportndelGarage
Esteprogramaessimilaralanterioraunquemuestralacapacidaddeestablecersecuencias
deaccionesycmoserespetaeseordenalmomentodelaejecucin.
1. InsertarunafiguraComienzo.
2. InsertardosfigurasAsignacin.
24
3. InsertarunafiguraFin.
4. UnirlafiguraComienzoconunafiguraAsignacin.
5. UniralaprimeraconlasegundaAsignacin.
25
6. UniralasegundaAsignacinconlafiguraFin.
26
7. ConfiguraralaprimeraAsignacin.
8. Seleccionarfuncin.
9. Fijarlosregadoresdelpatioaintensidad4,AceptaryAceptarnuevamente.
27
10. ConfiguraralaprimeraAsignacinyelegirfuncin.
11. SeleccionarGarageyabrirPortonyluegoAceptardosveces.
28
12. Guardardiagramaconelnombreabreporton,porejemplo.
13. Probarlaejecucindelprograma
14. Severificalaejecucindelprograma,conlasaccionesespecificadas
29
9.3.Reducirlatemperaturadeldormitorioen2Csilamismasupera
los23C
Comenzar
Asignarelvalordelatemperaturadeldormitorioalavariabletemp.
Compararsiesevaloresmayora23
Siesas:
o Decrementaren2elvalordetemp
o Ajustarlatemperaturadeldormitorioentempgrados.
Fin
(Ennegritaaparecenlaspalabrasquecorrespondenacadafigura)
1. InsertarunafiguraComienzo.
2. InsertartresfigurasAsignacin
30
3. InsertarunafiguraFin
31
4. InsertarunafiguraCondicin
5. Unirlasfigurascomosemuestraenlasiguienteimagen
32
6. DibujarlaflechaVerdaderadesdeCondicinalaAsignacin.Botnderechosobre
lafiguraCondicinyseleccionarVerdadera
7. ElegircomodestinodelaflechaalafiguraAsignacinhaciendoClickconelbotn
izquierdosobrelamisma.
8. Dibujar la flecha Falsa desde Condicin al Fin. Botn derecho sobre la figura
CondicinyseleccionarFalsa
33
9. Elegir como destino de la flecha a la figura Fin haciendo Click con el botn
izquierdosobrelamisma.
10. Eldiagramadeberquedardelasiguientemanera:
34
11. ConfiguraralaAsignacinA
Escribaenelcuadrodetextoelnombredelavariable:tempyseleccioneeneldesplegable
funcin
35
12. ConfigurarlaCondicin.
BotnderechosobrelafiguraCondicinyseleccionarPropiedades
Eneldesplegablesuperior,elegirvariable,seleccionartempyAceptar
Eneldesplegabledelmedio,seleccionaraloperadormayor>
Eneldesplegableinferior,seleccionarconstante,escribir23ydarAceptar
AceptarnuevamenteparaestablecerlaspropiedadesdelaCondicin
13. ConfiguraralaAsignacinB.ClickderechosobrelafigurayelegirPropiedades
36
Enelcuadrodetextoescribirtempyeneldesplegableseleccionarfuncin
SeleccionarcomoHabitacina(General)ycomofuncinresta
Seleccionar como parmetro minuendo como tipo de valor variable y como
nombretemp
Seleccionarcomoparmetrosustraendo,comotipodevalorconstanteycomo
nombre2yAceptardosveces.
37
14. ConfiguraralaAsignacinC.ClickderechosobrelafigurayelegirPropiedades
Seleccionarfuncineneldesplegable.
Elegir Dormitorio como habitacin, fijarTemperatura como funcin, valor
comoparmetro,variablecomotipodevalorytempcomonombre.
Aceptardosveces.
38
15. Guardareldiagrama,porejemploconelnombrecondicin
16. Probarelprograma
17. VerificarenelSimuladorqueelprogramaseejecutcorrectamente
(Seejecutlaramaverdaderadelacondicinpuesenlasimulacin,eldormitorioinicialmente
tieneunatemperaturade24C)
39
10.
Conclusin
40
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
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
encargadodeactuarsobrelosequipossegnlascondicionessensadasenlas
variablesdelambiente.
ID
CatlogodeObjetivosEVS
Autor
Tipo
Descripcin
Estado
APROB.
ESTRATGICO Presentar
un Trabajo
Profesional
de Calidad
en Tiempo y
Forma
OBJ2 FRIAS,
ESTRATEGICO Desarrollar APROB.
G.
un Sistema
de Control
Domtico
OBJ3 Merlino, ESTRATEGICO Seguir una APROB.
H.
Metodologa
Conocida y
Eficaz
OBJ1 FRIAS,
G.
ID
Fecha
Prioridad
de
creacin
ALTA
1/8/08
ALTA
1/8/08
ALTA
1/8/08
Prioridad
Fecha
de
creacin
CatlogodeRequisitos
Autor
Tipo
REQ2 FRIAS,
G.
NO
FUNCIONAL
REQ3 FRIAS,
G.
NO
FUNCIONAL
REQ4 FRIAS,
G.
FUNCIONAL
REQ5 FRIAS,
G.
FUNCIONAL
REQ6 FRIAS,
G.
FUNCIONAL
Descripcin
Usar Mtrica
3
como
Metodologa
deDesarrollo
Capacidad de
programar el
Sistema
desde una
ubicacin
remota
Facilidad de
uso,
programaci
n de modo
grfico
Generar un
registro de
eventos
Temporizaci
n
de
Acciones
Activacin de
programas
Estado
INCORP. ALTA
1/8/08
APROB.
ALTA
1/8/08
APROB.
ALTA
1/8/08
APROB.
BAJA
20/8/08
APROB.
MEDIA
17/8/08
APROB.
MEDIA
20/8/08
43
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
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
EstructuraOrganizativa
ID
EO1
EO2
EO3
EO4
A.1.1.2.
ApellidoyNombre
Merlino,Hernn
GarcaMartnez,Ramn
Fernndez,Enrique
Fras,Guillermo
Rol
DirectordelTrabajoProfesional
DirectordelTrabajoProfesional
ConsultorenMtrica3
Analista/Programador/Tester
EstudiodelaSituacinActual
A.1.1.2.1.
Valoracindelestudiodelasituacinactual
DescripcindelaSituacinActual
DescripcindelosSistemasdeInformacinActuales
45
46
(comprandounequipodehardwarequeactacomomdulocentral)o
como sistema distribuido (ciertos equipos pueden actuar de forma
localizadayautnoma).HCSpermitelatemporizacindeacciones,el
envodenotificacionesyelcontroldefuncionesdeseguridad,ahorro
de energa y entretenimiento. Puede ser operado mediante una
interfazgrficatctil(quesecompraporseparado)ovatelefnica.En
forma opcional puede ser controlado con control remoto a travs de
una PC que corra Windows Media Center o va internet mediante
softwareadicional.
En pocas palabras, HCS es un sistema altamente configurable y
escalable, a costa de requerir equipo especfico de hardware para
poderfuncionarysoftwareadicionalparapoderrealizarmuchasdelas
tareasqueHEYUnopermite.
ExDomus:esunsoftwareparaelMediaCenterdeWindowsXP/Vista
quepermitecontrolarluces,cortinas,calentadores,cmaras,sistemas
de seguridad, etc. usando como protocolo de conexin X10 o KNX,
segn la versin. Permite la temporizacin de acciones as como
tambinlaejecucindeaccionesdisparadasporuneventoexterno,tal
comolaactivacindelaalarma.
Se trata de un software pago (aunque cuenta con una versin bsica
gratuita) que permite automatizar ciertas tareas pero dentro del
mbitodelhogar(nocuentaconherramientasparalaprogramacino
visualizacindeeventosenformaremota).
47
A.1.1.2.2.
IdentificacindelosUsuariosParticipantesenel
EstudiodelaSituacinActual
Enfuncindelniveldedetalleestablecidoparaelestudiodelasituacinactual,se
identificarnlosusuariosparticipantesdecadaunadelasunidadesorganizativas
afectadaspordichoestudio.
ID
ApellidoyNombre
U1
Merlino,Hernn
U2
GarcaMartnez,Ramn
U3
Fernndez,Enrique
U4
Fras,Guillermo
A.1.1.2.3.
DescripcindelosSistemasdeInformacin
Existentes
En esta tarea se describirn los sistemas de informacin existentes afectados,
segnelalcanceyniveldedetalleestablecidoenlatareaValoracindelEstudiode
laSituacinActual.Sedescribirnlossistemasanivellgico,aplicandolastcnicas
demodelizacinysiguiendounmtododescendente.
(Realizadoenconjuntocon2.1.2.1Valoracindelestudiodelasituacinactual)
A.1.1.2.4.
RealizacindelDiagnsticodelaSituacinActual
SeanalizarlainformacindelosSistemasdeInformacinexistentes,obtenidaen
latareaanterioryseidentificanproblemas,deficienciasymejoras.
Teniendoencuentalasalternativasestudiadasen2.1.2.1,podemosestablecerel
siguientetablacomparativa:
48
Arquitectura
X10
HEYU
Centralizada
Distribuida
(instalacin
individual de
equipos)
HCS
ExDomus
Centralizado o Centralizada
Distribuido, si
se dispone de
pocos
dispositivos a
automatizar
Medio
Baja. Requiere Media
experiencia en
entornos UNIX
(manejo
de
Shellscriptingy
compilacin a
partir
del
cdigofuente)
Baja.
Alta
MediaAlta
Se utiliza un
control
remoto que se
comunica con
una PC con
Windows
MediaCenter
Control
No disponible No disponible Va telefnica,
remoto (fuera sin software en
forma celulares
o,
delhogar)
adicional
nativa
con software
adicional, va
Internet
Alto
Facilidad de Alta
Media.
programacin
Requiere
generarscripts
Poder
de Bajo
(muy MedioAlto
Alto
programacin bsico)
Si
Si
Se utiliza un
control remoto
que
se
comunica con
una PC con
Windows Media
Center
Nodisponible
Media
Media
(se
pueden generar
secuencias de
acciones desde
la
interfaz
grfica)
Si
(en
las
versiones pagas
delsoftware)
Nodisponible
49
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
DTG1 Merlino,
H.
Gestin
DTG2 Garca
Martnez,
R.
Gestin
DTG3 Fras,G.
Tcnica
ALTA
Usode
Mtrica3
como
Metodologa
aseguir
Desarrollode ALTA
una
Memoriadel
Trabajo
Utilizacin
ALTA
Estado
Fechade
creacin
APROBADA 1/8/08
APROBADA 1/8/08
APROBADA 1/8/08
50
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.
ID
Autor
REQ1 FRIAS,
G.
REQ2 FRIAS,
G.
REQ3 FRIAS,
G.
REQ4 FRIAS,
G.
REQ5 FRIAS,
G.
CatalogacindelosRequisitos
Tipo
Descripcin
Arquitectura Sistemade
control
domtico
centralizado
No
Facilidadde
Funcional
instalacin
No
Facilidadde
Funcional
uso
Funcional
Interfaz
grficacomo
modode
control
Funcional
Visualizacin
ycontrol
tantolocal
comoremoto
Prioridad
Estado
ALTA
Fechade
creacin
APROBADO 1/8/08
MEDIA
APROBADO 21/8/08
ALTA
APROBADO 10/8/08
MEDIA
APROBADO 1/8/08
ALTA
APROBADO 1/8/08
51
REQ6 FRIAS,
G.
Funcional
REQ7 FRIAS,
G.
Funcional
REQ8 FRIAS,
G.
REQ9 FRIAS,
G.
Funcional
A.1.1.4.
Funcional
(vaInternet)
Simplicidad
de
programacin
Capacidadde
temporizar
acciones
Registrode
eventos
Activacinde
programas
porlallegada
deseales
externas
ALTA
APROBADO 1/8/08
MEDIA
APROBADO 17/8/08
BAJA
APROBADO 20/8/08
MEDIA
APROBADO 20/8/08
EstudiodeAlternativasdeSolucin
Enesteestudio,sepropondrndiversasalternativasquerespondansatisfactoriamente
a los requisitos planteados, considerando tambin los resultados obtenidos en 2.1.2
(Estudio de la Situacin Actual). Se realizar una descomposicin del sistema en
subsistemas,teniendoencuentaelmbitoyfuncionalidad,parafacilitarsuestudio.
A.1.1.4.1.
PreseleccindeAlternativasdeSolucin
Herramientadeprogramacindelhogar
Generadordecdigoejecutable
Unidaddeejecucindelcdigo
52
Simuladordelosequiposfsicos
Emuladordelasvariablesdelhogar(sensores)
Seprocederentoncesaexplicarlasposiblesalternativasdesolucin.
53
54
AlternativaD(Separarlageneracinyejecucindecdigoenunserver
de la programacin grfica y visualizacin de resultados, accesibles
desdeunnavegador)
55
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.
56
AlternativaD(Separarlageneracinyejecucindecdigoenunserver
de la programacin grfica y visualizacin de resultados, accesibles
desdeunnavegador)
Al igual que la Alternativa C, se satisfacen los requerimientos REQ1, REQ3,
REQ4,REQ6,REQ7,REQ8yREQ9porrazonessimilares.Lasdiferenciasradican
en que el REQ2 de Facilidad de instalacin se ve mejorado ya que la
herramientasdeprogramacinyvisualizacinsonaccesiblespormediodeun
navegadorwebdesdecualquierlugarconlocualnoesnecesarioinstalarnada
enlaeventualmquinaqueseuseparaaccederalasmismas.ElREQ5,porsu
parte, puede cumplirse de una manera ms completa y eficiente pues las
herramientas,comoyasedijo,deprogramacinyvisualizacinsonaccesibles
por la web, lo cual representa una mejora respecto a la Alternativa C, que
requera de la instalacin de un programa a parte en cada mquina desde
dondesepretendieserealizarelcontrol.
57
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.
Debido a la naturaleza del presente proyecto, en el cual se lleva adelante un
trabajoprofesional,elestudiodeinversinnoesaplicablepuesnoexistencostos
oinversionesasociadas.Sepasaralestudiodelasiguientetarea.
A.1.1.5.2.
EstudiodelosRiesgos
Seseleccionarnfactoresdesituacinquedebernconsiderarse,relativostantoa
laincertidumbrecomoalacomplejidaddelsistema.
RIE.A.2 FRIAS,
G.
Descripcin
Gravedad Justificacin
Incertidumbreacercade Media
Losprogramasde
lafacilidaddeuso
lneadecomandos
requierenmayor
tiempode
entrenamiento
Dificultadenla
Alta
Las comunicaciones
implantacindecontrol
entreelladoremotoy
desdeubicacinremota
el
hogar
deben
efectuarse abriendo
puertos especficos o
con
comunicacin
entre
procesos
remotos. Los firewalls
que cada lugar posee
se convierten en una
dificultadadicional.La
58
RIE.A.3 FRIAS,
G.
Complejidadde
comunicacinentre
distintossubsistemas
dentrodeunmismo
programa
Alta
RIE.A.4 FRIAS,
G.
Complejidadde
instalacinremota
Media
existencia de un solo
programa implica que
este
debe
comunicarse con los
dispositivosdelacasa
de forma directa,
complicando
el
desarrollo.
Losdistintos
subsistemasque
realizantareasmuy
diferentestienenun
gradode
acoplamientomuy
altoyaquetodos
formanpartedeun
nicoprograma
Paracontrolaren
formaremotaala
aplicacin,es
necesarioinstalar
componentes
especficosenla
mquinadesdedonde
sepretendeacceder
RIE.B.2 FRIAS,
G.
Descripcin
Gravedad Justificacin
Lascomunicacionesentreellado
Dificultadenla Alta
remoto y el hogar deben
implantacin
efectuarse abriendo puertos
decontrol
especficos o con comunicacin
desde
entre procesos remotos. Los
ubicacin
firewallsquecadalugarposeese
remota
convierten en una dificultad
adicional. La existencia de un
solo programa implica que este
debe comunicarse con los
dispositivos de la casa de forma
directa,
complicando
el
desarrollo.
Alta
Losdistintossubsistemasque
Complejidad
realizantareasmuydiferentes
de
tienenungradodeacoplamiento
comunicacin
muyaltoyaquetodosforman
entredistintos
partedeunnicoprograma
subsistemas
dentrodeun
mismo
59
RIE.B.3 FRIAS,
G.
programa
Complejidad
deinstalacin
remota
Media
Paracontrolarenformaremotaa
laaplicacin,esnecesario
instalarcomponentesespecficos
enlamquinadesdedondese
pretendeacceder
Descripcin
Dificultadenla
implantacinde
controldesde
ubicacinremota
RIE.C.2 FRIAS,
G.
Complejidadde
instalacin
remota
Gravedad Justificacin
Media
Lascomunicacionesentreel
ladoremotoyelhogardeben
efectuarseabriendopuertos
especficosocon
comunicacinentreprocesos
remotos.Losfirewallsque
cadalugarposeese
conviertenenunadificultad
adicional.
Media
Paracontrolarenforma
remotaalaaplicacin,es
necesarioinstalar
componentesespecficosen
lamquinadesdedondese
pretendeacceder
AlternativaD(Separarlageneracinyejecucindecdigoenunserverde
laprogramacingrficayvisualizacinderesultados,accesiblesdesdeun
navegador)
ID
Autor
RIE.D.1 FRIAS,
G.
Descripcin
Dificultadenla
implantacinde
controldesde
ubicacinremota
Gravedad Justificacin
Baja
Laaccesibilidadatravs
deunnavegadorweb
permiteuna
comunicacinsimple
entreelladoclienteyel
servidor,noson
necesariaslaaperturade
puertosespecficosnila
configuracindefirewalls
quepermitanaccesoala
red.
60
A.1.1.6.
SeleccindelaSolucin
Seseleccionarentrelasalternativasalasolucinaadoptar.
A.1.1.6.1.
Convocatoriadelapresentacin
A.1.1.6.2.
EvaluacindelasAlternativasySeleccin
A.1.1.6.3.
AprobacindelaSolucin
61
prueba.LaalternativaCtienecomodesventajaelhechodequeelprogramapara
realizarlaprogramacinyvisualizacindebeinstalarseentodamquinadelacual
se pretenda controlar el hogar (RIE.C.2) y que la implementacin de la
comunicacin entre dos programas a travs de la red puede verse interrumpido
por la existencia de firewalls o puertos bloqueados como en algunas empresas
(RIE.C.1).TeniendoencuentaelpesodelosrequerimientosREQ5yREQ2,altoy
medio, respectivamente, se puede concluir que la alternativa D tiene puntos
importantes a favor: no requiere instalacin en las mquinas remotas (se usa a
partirdelnavegadorweb)ylacomunicacinentreesteclienteylamquinaenel
hogar es posible en todas aquellas mquinas que tengan acceso a internet (no
requieredepuertosadicionales).
Como conclusin, la alternativa D ofrece la solucin ms completa a los
requerimientosanalizadosen2.1.3.3.Sibienesunaalternativamscomplejaque
A o B, compensa esa complejidad con menores riesgos una vez finalizado el
proyecto (cuando el sistema est en uso), segn lo analizado en 2.1.5.2. Las
diferencias entre C y D son menores, pero la conveniencia de prescindir de
instalacin en las mquinas remotas (presente en la alternativa D), termina por
definircomosolucinaadoptaraestaltima.
62
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
Glosariodetrminos
ID
T1
Trmino
Controlador
T2
Sensor
T3
Actuador
T4
Diagrama
T5
Programa
T6
T7
Traductor
SimuladoroEmuladorde
variablesdelhogar
T8
Bloque
Descripcin
Dispositivo informtico (generalmente una
PC)yelconjuntodesoftwarequeseencarga
de recibir las seales provenientes del
actuador, procesarlas y generar y transmitir
las rdenes apropiadas a los actuadores
adecuados
Dispositivo que mide una cantidad fsica y la
convierte en una seal elctrica que puede
serledaporelcontrolador
Componente que se encarga de transformar
una seal elctrica en una accin,
generalmente mecnica sobre otro elemento
fsico
Representacin mediante elementos grficos
de una tarea de programacin en la cual se
podr solicitar informacin a uno ms
sensoresysepodrpedirunaaccinaunoo
msactuadores
Conjuntodeinstruccioneslistasparaser
ejecutadas
Convierteundiagramaenunprograma
Permitevisualizarlasaccionestomadaspor
actuadoresqueseactivaronyforzarla
activacindealgnsensorparaemularsu
habilitacin
ElementogrficoqueconstituyeunDiagrama
yquerepresentaunaaccinatomar,un
condicin,etc.
64
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
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
ModelodeDominio
67
A.1.2.1.2.
IdentificacindelEntornoTecnolgico
Enestatareasedefinir,enaltonivel,elentornotecnolgicoqueserequierepara
darrespuestaalasnecesidadesdeinformacin,especificandosuscondicionantes
yrestricciones.Paraellosetendrencuentaelentornotecnolgicopropuestoen
ladescripcindelasolucin,queseobtuvoenelEstudiodeViabilidaddelSistema.
DentrodelEntornoTecnolgicoautilizar,ydeacuerdoalassolucionespropuestas
enelEstudiodeViabilidaddelSistema,mediantesesionesdetrabajosedetermin
el entorno de hardware: para el lado servidor de la aplicacin deber poder
ejecutarse en una computadora hogarea de rango mediobajo, con un
procesador de al menos 800 MHz, 512 MB de RAM y 80 GB de disco duro. El
sistema operativo a utilizar ser Microsoft Windows XP/Vista. Del lado cliente,
deberpoderejecutarseenunnavegadormodernotalcomoInternetExplorer7,
Mozilla Firefox 2.x o Google Chrome 1.x en adelante, con los requerimientos de
hardwareysoftwarequesuutilizacinderive.
En cuanto al Entorno Tecnolgico de Software, se decidi por la utilizacin de
herramientas probadas y de amplia utilizacin en el mercado: Servidor Web
Apache1.3.x,BasedeDatosMySQL4.1.x,PHP4.3.xpararesponderalasconsultas
realizadas por el lado cliente. Para el resto de los componentes del servidor se
utilizar Java 1.6 como plataforma de desarrollo por su poder, flexibilidad y
soporteenelmercado.
Para construir el lado cliente, se utilizar Adobe Flex (con Adobe Flash Player
versin9)porsuampliousoenelmercado,laflexibilidadypoderdellenguajeyla
calidadfinaldelasinterfasesgrficasrealizadasenelmismo.
Respecto a la generacin del cdigo ejecutable, las opciones disponibles en el
mercado van desde la generacin de un programa a partir de un lenguaje
estructuradotalcomoC,pasandoporlenguajesorientadosaobjetoscomoJavao
C++ y lenguajes de sistemas expertos. Los lenguajes orientados a objetos fueron
rpidamentedescartados,debidoaquelosdiagramasdeflujomodelanalgoritmos
que son rpidamente encapsulados dentro de una nica clase (con lo cual las
ventajas de abstraccin/encapsulamiento al utilizar mltiples clases queda
68
A.1.2.1.3.
EspecificacindeEstndaresyNormas
A.1.2.1.4.
IdentificacindelosUsuariosParticipantesy
Finales
Enestatareaseidentificarnusuariosparticipantesyfinales,interlocutorestanto
enlaobtencinderequisitoscomoenlavalidacindelosdistintosproductosyla
aceptacinfinaldelsistema.
69
Catlogodeusuarios
SedefinirnlasresponsabilidadesdelosusuariosyadetectadosenelEVS
ID
U1
U3
Rol
Director del Trabajo
Profesional
GarcaMartnez,Ramn Director del Trabajo
Profesional
Fernndez,Enrique
ConsultorenMtrica3
U4
Fras,Guillermo
U2
ApellidoyNombre
Merlino,Hernn
A.1.2.2.
Responsabilidades
Direccin terica y
prctica
Direccin terica y
prctica
Consultora
referente
al
seguimiento de la
metodologa
de
desarrollo
Analista / Programador Desarrollo
/Tester
Documentacin
Pruebas
EstablecimientodeRequisitos
Enestaactividad,sellevaracaboladefinicin,anlisisyvalidacindelosrequisitosa
partir de la informacin facilitada por el usuario, completndose el catlogo de
requisitosobtenidoenlaactividadDefinicindelSistema.Elobjetivodeestaactividad
es obtener un catlogo detallado de requisitos, a partir del cual comprobar que los
productosgeneradosdelasactividadesdemodelizacinseajustenalosrequisitosde
usuario.
A.1.2.2.1.
ObtencindeRequisitos
Enestatarea,comenzarlaobtencindetalladadeinformacinmediantesesiones
detrabajoconlosusuarios,identificadospreviamenteenlaDefinicindelSistema.
Gran parte de los requisitos ya se obtuvieron en parte durante el Estudio de
Viabilidad del Sistema, se repetirn en este punto y se agregarn los nuevos
requisitosdetectadosduranteelAnlisisdelSistemadeInformacin.
70
ID
Autor
Tipo
REQ1
FRIAS,
G.
REQ2
FRIAS,
G.
FRIAS,
G.
FRIAS,
G.
Arquitectura Sistemade
control
domtico
centralizado
No
Facilidadde
Funcional
instalacin
Funcional
Facilidadde
uso
Funcional
Interfaz
grficacomo
modode
control
Funcional
Visualizacin
ycontrol
tantolocal
comoremoto
(vaInternet)
Funcional
Simplicidad
de
programacin
Funcional
Capacidadde
temporizar
acciones
Funcional
Registrode
eventos
Funcional
Activacinde
programas
porlallegada
deseales
externas
Rendimiento Ellado
servidordebe
poder
ejecutarseen
unaPC
hogareade
acuerdoalas
caractersticas
deASI1.2
Rendimiento Elladocliente
debepoder
ejecutarseen
unnavegador
webde
acuerdoalas
caractersticas
deASI1.2
REQ3
REQ4
REQ5
FRIAS,
G.
REQ6
FRIAS,
G.
REQ7
FRIAS,
G.
REQ8
FRIAS,
G.
FRIAS,
G.
REQ9
REQ10 FRIAS,
G.
REQ11 FRIAS,
G
Descripcin
Prioridad Estado
ALTA
Fechade
creacin
APROBADO 1/8/08
MEDIA
APROBADO 21/8/08
ALTA
APROBADO 10/8/08
MEDIA
APROBADO 1/8/08
ALTA
APROBADO 1/8/08
ALTA
APROBADO 1/8/08
MEDIA
APROBADO 17/8/08
BAJA
APROBADO 20/8/08
MEDIA
APROBADO 20/8/08
ALTA
APROBADO 29/8/08
MEDIA
APROBADO 29/8/08
71
A.1.2.2.2.
EspecificacindeCasosdeUso
Enestatarea,lacualesobligatoriaparadesarrollosorientadosaobjetos,comoes
este el caso, se especificarn los casos de usos identificados, en trminos de
escenario,precondiciones,poscondicionesyexcepciones.
1. CrearDiagrama
Escenarios:elusuariodeseainiciarlaconstruccindeunnuevodiagrama
Precondiciones: si se estuvo modificando otro diagrama, deben
preguntarse al usuario si desea o no guardar los cambios y de ser
afirmativalarespuesta,actualizardichodiagrama.
Poscondiciones:secreundiagramaenblanco
Excepciones:siexistaundiagramaabiertoquesemodificynosedese
guardaresoscambios.
2. EditarDiagrama
Escenarios: el usuario agrega, elimina o mueve figuras, une o desune
figurasdeldiagrama,cambialaspropiedadesdelasmismas.
Precondiciones:existeundiagramaabierto.
Poscondiciones:eldiagramaabiertohasidomodificado.
Excepciones:
3. AdministrarDiagramas
Escenarios: el usuario elimina y habilita/deshabilita diagramas
almacenadosyaexistentes.
Precondiciones:existealmenosundiagramaalmacenado.
Postcondiciones: los diagramas indicados por el usuario fueron
eliminados,habilitadosodeshabilitados.
Excepciones:eldiagramaabiertonopuedesereliminado.
72
4. EliminarDiagrama
Escenarios:elusuarioeliminaundiagramaalmacenado.
Precondiciones:eldiagramaaeliminarexisteynoestabierto.
Poscondiciones:seelimineldiagramaindicado.
Excepciones:
5. HabilitarDiagrama
Escenarios:elusuariohabilitaodeshabilitaundiagrama
Precondiciones: el diagrama a habilitar/deshabilitar se encuentra
almacenado.
Poscondiciones:sehabilit/deshabiliteldiagramaalmacenado.
Excepciones:
6. GenerarPrograma
Escenarios:elusuarioguardaundiagramaycomoconsecuenciadeellose
generarelprogramacorrespondiente.
Precondiciones: el diagrama cuyo programa se intenta generar es
guardado.
Poscondiciones:segenerelprogramaasociadoaldiagramaguardado.
Excepciones:
7. GuardarDiagrama
Escenarios: el usuario intenta guardar un diagrama actual, crear uno
nuevo pero antes guardar los cambios del anterior, abrir otro diagrama
peroguardarloscambiosdelactual.
Precondiciones:Existeundiagramaactual.
Poscondiciones:Seguardaldiagramaactual.
Excepciones:
73
8. ProbarDiagrama
Escenarios: el usuario desea forzar la ejecucin del diagrama actual a
mododeprueba,sintenerquehabilitarlo.
Precondiciones: el diagrama ha sido guardado y no presenta
modificacionesdesdeesemomento
Poscondiciones:elprogramageneradoapartirdeldiagramafueejecutado
pornicavezconxito.
Excepciones:
9. EjecutarPrograma
Escenarios: el usuario desea forzar la ejecucin de un programa, se
cumplieronlascondicionesdecomienzodeunciertoprograma.
Precondiciones: el programa a ejecutar existe y ya fue generado a partir
deldiagramacorrespondiente.
Poscondiciones:elprogramafueejecutadoconxito.
Excepciones:
10. AdministrarProgramas
Escenarios:unacondicinexterna(cambioenunsensor,pasodeltiempo)
disparalaejecucindelosprogramasquedependendedichacondicin.
Precondiciones: existe al menos un programa almacenado que depende
delacondicinquecambi.
Poscondiciones: los programas que dependen de esa condicin fueron
disparadosymarcadoscomoejecutados.
Excepciones:
11. VisualizarEstado
Escenarios: el usuario intenta ver el estado de la casa, que eventos se
generaron,queequiposseactivaronyculesprogramasseejecutaron
Precondiciones:
74
Poscondiciones:semuestraenpantallaelestadodelacasayloseventos
generados.
Excepciones:
12. SimularCambioenSensor
Escenarios: el usuario simula el cambio en el valor de un sensor para
analizarqucambiosseproducenenelestadodelacasa
Precondiciones:
Poscondiciones:elsensorcuyocambiosesimulcambidevalor.
Excepciones:
A.1.2.2.3.
AnlisisdelosRequisitos
Enestatareaseestudiarlainformacincapturadapreviamenteenestaactividad
paradetectarinconsistencias,ambigedades,duplicidadoescasezdeinformacin.
Se analiz la informacin de las Tareas 2.2.2.1 y 2.2.2.2 en bsqueda de
inconsistencias, ambigedades, etc. y se determin que este no era el caso. Se
continaelanlisisenelsiguientepunto.
A.1.2.2.4.
ValidacindeRequisitos
Enestatarea,elgrupodeusuariosdefinidoen2.2.1.4,determinqueelcatlogo
de requisitos de 2.2.2.1 as como los casos de usos especificados en 2.2.2.2 son
vlidos,consistentesycompletos.
A.1.2.3.
IdentificacindeSubsistemasdeAnlisis
Enestaactividad,sedescompondralsistemadeinformacinensubsistemas,conel
objetodefacilitarsuanlisis.
75
A.1.2.3.1.
DeterminacindeSubsistemasdeAnlisis
1. EditordeDiagramas
Descripcin: Subsistema encargado de crear, modificar y eliminar
diagramasqueposteriormenteseconvertirnenProgramasporCodeGen.
Casos de Uso Asociados: Crear diagrama, Editar diagrama, Administrar
Diagramas, Eliminar Diagrama, Habilitar Diagrama, Guardar diagrama,
ProbarDiagrama.
Requisitos Asociados: Facilidad de Uso, interfaz grfica como modo de
control, visualizacin y control tanto local como remoto, simplicidad de
programacin, lado cliente debe poder ejecutarse en un navegador web
deacuerdoalascaractersticasdeASI1.2.
76
2. GeneradordeCdigo
Descripcin:Subsistemaencargadodegenerar,apartirdelosdiagramas,
losprogramascorrespondientesqueposteriormenteseejecutarn.
Casos de Uso Asociados: Generar programa, Guardar diagrama, Probar
diagrama.
Requisitos Asociados: Sistema de control domtico centralizado, lado
servidor debe poder ejecutarse en una PC hogarea de acuerdo a las
caractersticasdeASI1.2.
3. Simuladoryvisualizadordeeventos
Descripcin:Subsistemaresponsablededesplegarenpantallaloseventos
quesegeneraron,equiposqueseactivaronydeproveerunainterfazpara
simularlaactivacindelossensores.
Casos de Uso Asociados: Ejecutar programa, Visualizar Estado, Simular
CambioenSensor.
Requisitos Asociados: Facilidad de uso, interfaz grfica como modo de
control, visualizacin y control tanto local como remoto, registro de
eventos,activacindeprogramasporlallegadadesealesexternas,lado
cliente debe poder ejecutarse en un navegador web de acuerdo a las
caractersticasdeASI1.2.
4. Emuladordelasvariablesdelhogar,estadodelacasa
Descripcin: Subsistema responsable de emular la comunicacin con los
dispositivos fsicos que estaran conectados en la implementacin real
(lmparas,termostatos,comandosparaaperturadepuertas,sensorespor
ejemploalarma,etc.)ydemantenerelestadodelacasaysusdispositivos.
Casos de Uso Asociados: Ejecutar programa, Visualizar Estado, Simular
CambioenSensor.
Requisitos Asociados: Sistema de control domtico centralizado,
visualizacin y control tanto local como remoto, registro de eventos,
activacindeprogramasporlallegadadesealesexternas,ladoservidor
77
debepoderejecutarseenunaPChogareadeacuerdoalascaractersticas
deASI1.2.
5. EjecutordeCdigo
Descripcin: Subsistema encargado de ejecutar los programas generados
cuando se cumplan sus condiciones de inicio (tiempo y/o cambio en
sensores).
Casos de Uso Asociados: Ejecutar Programa, Administrar Programas,
SimularCambioensensor.
Requisitos Asociados: Sistema de control domtico centralizado,
capacidaddetemporizaracciones,activacindeprogramasporlallegada
de seales externas, lado servidor debe poder ejecutarse en una PC
hogareadeacuerdoalascaractersticasdeASI1.2.
A.1.2.3.2.
IntegracindeSubsistemasdeAnlisis
Dadoqueenlatareaanteriorseobtuvieronlasdescripcionesdelossubsistemas
deanlisis,enestatareasedescribirnlasinterfasesentresubsistemas.
78
SolicitarDiagramasDisponibles
Esta interfaz es la encargada de obtener la informacin relacionada con los
diagramas existentes, cules se han modificado o eliminado y cules estn
activadosodesactivados.
SolicitarArchivosdeCdigoDisponibles
Esta interfaz obtiene la informacin relacionada con los archivos de cdigo
(programas)existentes,generadosapartirdelosdiagramas;culesprogramasse
hanmodificadooeliminadoyculesestnactivadosparasuejecucin.
ActualizarEstadoDispositivos
Se ocupada de transmitir las rdenes de activacin de los dispositivos del hogar,
indicados en cada programa y de mantener informado sobre el estado de los
sensores,yaqueestospuedensercondicionesdedisparodelaejecucindeunoo
msprogramas.
ObtenerEventosySealesSensores
Estainterfazeslaencargadadesolicitarlosltimoseventosgenerados(activacin
de dispositivos, sensores, que programas se ejecutaron, etc.) y de comunicar la
simulacindelaactivacindeunsensor.
79
A.1.2.4.
AnlisisdelosCasosdeUso
A.1.2.4.1.
IdentificacindeClasesAsociadasaunCasodeUso
NombredelaClase
Diagrama
Figura
Programa
Bloque
HomeState
Home
Caso(s)deUsoAsociado(s)
CrearDiagrama,Editar
Diagrama,GuardarDiagrama,
AdministrarDiagramas,
EliminarDiagrama,Habilitar
Diagrama
CrearDiagrama,Editar
Diagrama,GuardarDiagrama,
EliminarDiagrama
CrearDiagrama,Editar
Diagrama,GuardarDiagrama,
GenerarPrograma,
AdministrarDiagramas,
EliminarDiagrama,Habilitar
Diagrama
CrearDiagrama,Editar
Diagrama,GuardarDiagrama,
GenerarPrograma,Eliminar
Diagrama
ProbarDiagrama,Ejecutar
Programa,VisualizarEstado,
SimularCambioenSensor
ProbarDiagrama,Ejecutar
Programa,VisualizarEstado,
SimularCambioenSensor
Subsistema(s)asociado(s)
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas,
GeneradordeCdigo
EditordeDiagramas,
GeneradordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;Simuladory
80
Room
ProbarDiagrama,Ejecutar
Programa,VisualizarEstado,
SimularCambioenSensor
Function
ProbarDiagrama,Ejecutar
Programa,VisualizarEstado,
SimularCambioenSensor
Log
ProbarDiagrama,Ejecutar
Programa,VisualizarEstado,
SimularCambioenSensor
LogEntry
ProbarDiagrama,Ejecutar
Programa,VisualizarEstado,
SimularCambioenSensor
Sensor
ProbarDiagrama,Ejecutar
Programa,VisualizarEstado,
SimularCambioenSensor
Expression
Param
CodeGen
Executer
GenerarPrograma
GenerarPrograma
GenerarPrograma
Probardiagrama,Ejecutar
Programa,Administrar
Programas,SimularCambios
enSensor
EjecutarPrograma,
AdministrarProgramas,
SimularCambiosenSensor
Probardiagrama,Ejecutar
Programa
Dispatcher
CodeSupervisor
SensorSystem
SimularCambiosenSensor
WatchDog
Probardiagrama,Ejecutar
Programa
Probardiagrama,Ejecutar
Programa
RemoteFunction
MotorInferencias
FileConditions
Probardiagrama,Ejecutar
Programa
ProbarDiagrama,Ejecutar
visualizadordeeventos;
EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;Simuladory
visualizadordeeventos;
EjecutordeCdigo
GeneradordeCdigo
GeneradordeCdigo
GeneradordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;EjecutordeCdigo
EjecutordeCdigo
Emuladordelasvariables
delhogar,estadodela
casa;EjecutordeCdigo
EjecutordeCdigo
EjecutordeCdigo
81
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
A.1.2.5.2.
IdentificacindeAsociacionesyAgregaciones
En esta tarea se estudiarn los mensajes establecidos entre los objetos del
diagramadeinteraccinparadeterminarqueasociacionesexistenentrelasclases
82
A.1.2.5.3.
IdentificacindeGeneralizaciones
En esta tarea se representarn las clases con una organizacin que permita una
implementacinsencilladelaherenciayunaagrupacinsemnticadelasdistintas
clases.
A continuacin, se presentan los diagramas de clases resultantes para cada
subsistema:
83
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
GeneradordeCdigo
85
86
EjecutordeCdigo
87
88
Emuladordelasvariablesdelhogar,estadodelacasa
89
90
Simuladoryvisualizadordeeventos
91
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
A.1.2.8.1.
EspecificacindelosPrincipiosGeneralesdela
Interfaz
El objetivo de esta tarea, es especificar los estndares, directrices y elementos
generalesatenerencuentaenladefinicindeinterfazdeusuario.
PrincipiosGeneralesdelaInterfaz
1. Elentornodelainterfazinteractivaconelusuarioserentodosloscasosque
seapliqueunainterfazgrfica.
2. Lainterfazgrficadelasherramientasdevisualizacindelestadodelacasay
ladeedicindediagramasdebersersemejantealadelosprogramastpicos
de Windows, con barras de menes, barras de herramientas, botones y
menescontextuales.
3. Al necesitar una seleccin por parte del usuario (abrir un archivo, modificar
propiedades de una figura, etc.), se deber abrir un dilogo el cual no
modificar nada en el Sistema hasta que el usuario pulse Aceptar en el
mismo.
4. El lado Servidor del Sistema, por ser justamente procesos que responden a
pedidos,nonecesitartenerunainterfazgrficaperoesdeseablequeposea
unoovariosconosdistintivosenelreadenotificacindelabarradetareas
deWindowsyquedesdelosmismospuedandetenersedichosprocesos.
5. La herramienta de visualizacin del estado de la casa deber tener un panel
desdedondepoderobservarlosltimoseventosgeneradosenlaviviendaas
comotambinunplanodelamismaendondepoderobservarenformagrfica
laactivacindelosdispositivosgrficosmsrepresentativos.
6. La herramienta de edicin de los diagramas, debe permitir el trazado de los
mismos arrastrando y soltando figuras y dibujando de modo sencillo las
unionesentrelasmismas.
93
A.1.2.8.2.
IdentificacindePerfilesyDilogos
Elobjetivodeestatareaesidentificarlosperfilesdeusuario,deacuerdoasunivel
de responsabilidad y al alcance o naturaleza de las funciones que realizan, as
comoanalizarlascaractersticasmsrelevantesdelosusuariosquevanaasumir
estosperfiles,etc.Paratalfinsegenerauncatlogodeperfilesdeusuario.
EnelcasodelpresenteTrabajoProfesional,existeunnicoperfildeusuario,que
eselusuariofinaldelsistemaquieninstalaensucasaelsoftwarecorrespondiente
al lado Servidor y es a su vez quien ejecuta el sistema (edicin de diagramas,
visualizacindelestado)desdesucasaofueradeella.
Paraverelcatlogodeusuarios,referirsea2.2.1.4IdentificacindelosUsuarios
ParticipantesyFinales.
A.1.2.8.3.
EspecificacindeFormatosIndividualesdela
InterfazdePantalla
En esta tarea se presentarn los formatos para las interfases del Sistema del
presente Trabajo Profesional ms representativas. Se desarrollaron bosquejos de
laInterfazfinalenMicrosoftVisio.
EditordeDiagrama
De acuerdo a los Principios de Interfaz y Requisitos previamente descritos, el
editordeDiagramadeberserunprogramawebconaparienciadeunprograma
tpico(standalone)deWindows,conmenes,barrasdeherramientasyuneditor
conarrastrarysoltar.Elobjetivoescrearunaaplicacinaccesibledesdecualquier
lugar,yfcildeusarcomouneditorWYSIWYG(WhatYouSeeIsWhatYouGet).
94
Visualizadordeeventosysimuladordeseales
Estaaplicacintambinesunaaplicacinwebconaparienciadeprogramastandalone
deWindows.DesdeelrecuadroControlsepuedesimularlallegadadenuevasseales.
Abajodelmismo,apareceelregistrodelosltimoseventosyasuizquierda,elmapa
delavivienda.
95
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
97
CuadroAbrirDiagrama
Seleccionar en la lista el Diagrama a abrir y pulsar Aceptar. El botn Cancelar evita
abrirotrodiagrama.
.
CuadroGuardarDiagrama
IngresarelnombredelnuevoarchivoypulsarAceptar.ElbotnCancelarevitaguardar
eldiagrama.Sielnombreestsiendousado,preguntarsisedeseasobreescribir.
CuadroAdministrarDiagramas
SeleccionarenlalistaelDiagramaaactivar(odesactivar)ytildar(odestildar)lacasilla
activado.
98
SeleccionarenlalistaelDiagramaaeliminar,pulsareliminaryconfirmarladecisin.
PulsandoAceptarserealizanlasmodificaciones,Cancelaromitecadaunadeellas.
PropiedadesComienzo
PresentalasopcionesdeconfiguracindeunafiguraComienzoenelDiagrama.
99
PropiedadesAsignacin
Una asignacin representa un bloque donde se puede hacer opcionalmente la
asignacinaunavariabledelladoizquierdodeunaexpresinaunvalorproveniente
deunaconstante,variableofuncin.Enelcasodeserunafuncin,estapreviamente
esejecutadayevaluada.
100
CuadroVariable
Unavariableescualquiercadenadecaracteresqueempiezacon(AZ,az,_)ysigue
concero,unoomsdelossiguientescaracteres:(AZ,az,_,09).
101
Cadavariabledisponibleeneldesplegablefuedefinidapreviamenteporellado
izquierdodeunaasignacin.
CuadroFuncin
Lasfuncionesestncategorizadasporlahabitacinenlaqueseejecuta.Cadafuncin
puede tener cero, uno oms parmetros. Cada parmetro puede recibir un valor de
unavariableounaconstante.
Lametodologadeusodelcuadrodefuncinesircompletandolosdesplegablesunoa
unodesdearribahaciaabajo.Hayquedefiniruntipodevalorynombreparacadauno
delosparmetrosqueapareceneneldesplegablerespectivo.
102
Vistapreviamuestracmovaquedandolaexpresincorrespondientealafuncinque
se est construyendo. Si existen ? significa que hay parmetros que an no se
definieron. Pulsando en ? al lado del desplegable de funcin, se puede obtener una
ayudarpidaparalafuncinseleccionada.
VisualizadordeEventosySimuladordeSeales
Si bien la interfaz de usuario de este subsistema es sencilla, vale la pena remarcar
ciertastransicionesdinmicasdealgunoseventos.
Encenderlaluzdelahabitacin
Como el plano de la casa que lo compone ser un plano de arquitectura en fondo
negro,setomarlaconvencinquealencenderlaluz,elfondodelahabitacinpasar
denegroaamarillo.
Porejemplo,enelcasodelliving:
Luzapagada
Luzencendida
Ajustartemperaturadeunahabitacin
Elajustedetemperaturaenunahabitacinserrepresentadoporuncrculodentrode
lamismaenparteazulyenparterojo,elcualsertantomsrojoencuantoseest
mscercadelatemperaturamximaytantomsazulencuantoseestmscercade
latemperaturamnimadeltermostato.
103
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
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
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
A.1.2.10.2.
DefinicindeRequisitosdelEntornodePruebas
ProcesadorIntelocompatiblede800MHzosuperior
512MBRAM
30MBlibreseneldiscorgido
Conexinared
RequisitosdeSoftware:
MquinaVirtualdeJava(JREoJDK)1.6osuperior
WebServer(Apache1.3.33osuperiorrecomendado)
PHP4.3.10osuperior
MySQL4.1.9osuperior
107
Navegadorweb(Firefox2.0osuperiorrecomendado)
AdobeFlashPlayer10
A.1.2.10.3.
DefinicindelasPruebasdeAceptacindel
Sistema
En esta tarea se realizar la especificacin de las pruebas de aceptacin del
sistema, labor fundamental para que el usuario valide el sistema, como ltimo
paso,previoalapuestaenexplotacin.
Se insistirn en los criterios de aceptacin del sistema que sirven de base para
asegurarquesatisfacelosrequisitosexigidos.
Reportedefallasdelaspruebas
Lasfallassernidentificadasduranteelanlisisyevaluacindelosresultadosdela
ejecucin de las pruebas. Se utilizar el siguiente formato para las tarjetas de
reportedepruebas.
ReportedePruebaNro:..
Fecha:__/__/__
Objetivo:.
...
Erroresencontrados:
IDCasodePrueba
NivelSeveridad
Descripcin
108
CriteriodePaso/Falla
Loscriteriosaaplicarenlaevaluacindelasdistintasinstanciasdepruebason:
Paso:Todaslaspruebasrealizadassobreeltemfueronexitosas.
Fallo:Almenosunadelaspruebasrealizadasnofueexitosa.
Elcriterioaemplearsobrelaspruebasdelaaplicacineselsiguiente:
Exitosa:Todaslaspruebasfueronrealizadasynoseencontrarondefectos
deseveridad1,2o3.
Fallida:Almenosundefectodeseveridad1,2o3fueencontrado.
Severidad Descripcin
1 Sistemadetenido
2 Fallasdefuncionalidad
3 Unasolucinalternativapuedeaplicarse
4 Errordedocumentacin/ayuda
5 Cambiosymejoras
Criteriodesuspensinyreiniciacindepruebas
Las actividades de prueba deberan ser suspendidas si se encuentra algn
problema que impida la realizacin de la prueba un problema que impida la
realizacindemspruebas.Estoimplicaquecuandoseencuentreunproblemay
se puedan seguir haciendo pruebas, las mismas deben continuar. Las pruebas
deben reiniciarse cuando los inconvenientes hayan sido solucionados,
comenzando con el primer caso de prueba para as verificar que la solucin
propuestanogenerenuevosproblemas.
Actividadesdeprueba
Las actividades de prueba contemplan: actualizar el plan de pruebas y
documentacindediseo,crearoactualizarcasosdeprueba,efectuarpruebasy
realizar su anlisis (documentando las fallas en la tarjeta previamente
mencionada)yporltimo,llevaracabolapruebadeaceptacindelsistemapara
109
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
A.1.3.
DiseodelSistemadeInformacin
A.1.3.1.
DefinicindelaArquitecturadelSistema
A.1.3.1.1.
DefinicindelosNivelesdeArquitectura
111
112
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
En esta tarea se realizar la especificacin de los requisitos que estn
directamente relacionados con la adopcin o diseo de una arquitectura o
113
infraestructuraconcreta,yquepuedencondicionareldiseoolaconstruccindel
sistemadeinformacin.
Entreestosrequisitospuedenestarlosrelacionadosconlenguajes,rendimientode
los distintos elementos de la arquitectura, as como criterios de ubicacin de
mdulosydatosenlosdistintosnodos.
Enestaactividad,lametodologasugiereincorporarlosRequisitosdeHardwarey
Software necesarios para el diseo y construccin del sistema. Los requisitos de
hardwareparapruebafueronespecificadosen2.2.10.2.DefinicindeRequisitos
delEntornodePruebasyellosseaplicanaldiseoyconstruccindelsistema.En
cuantoalosrequisitosdesoftware,alosquefiguranen2.2.10.2,debeagregarse
un IDE de desarrollo, optando por Eclipse debido a la cantidad de herramientas
disponibles para el mismo, la posibilidad de agregar plugins especficos para los
distintos lenguajes, etc. En 2.2.1.2. Identificacin del Entorno Tecnolgico se
mencionanlasherramientasdedesarrolloautilizaryaesohayqueadicionarun
editordetextoconsoporteparabsquedasconexpresionesregulareseindicacin
denmerodelnea,tilesalahoradedepurarlosarchivosPHP.
A.1.3.1.3.
EspecificacindeExcepciones
Elobjetivodeestatareaesladefinicindeloscomportamientosnohabitualesen
elsistema,quereflejansituacionesanmalasosecundariasenelfuncionamientoy
ejecucindelsistemadeinformacin.Paraello,seestablecepreviamenteelnivel
de especificacin de las mismas, as como los criterios de catalogacin y
clasificacin.
A continuacin, se especificarn los lineamientos para el manejo de excepciones
para los distintos subsistemas, identificados en 2.2.3.1. Determinacin de
SubsistemasdeAnlisis.
114
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
En esta tarea se definirn los estndares tcnicos y de nomenclatura, normas y
recomendaciones,quegeneralmenteestnrelacionadosconlaadopcinodiseo
de una arquitectura o infraestructura tecnolgica concreta, y que pueden
condicionareldiseoolaconstruccindelsistemadeinformacin.
A partir del dilogo entre los directores del Trabajo Profesional y el alumno, se
determinqueenloreferenteaestndaresynormasdediseoyconstruccin,el
presentetrabajodeberbasarseenlaMetodologadeDesarrolloMtricaversin
3ysusrecomendaciones.Asimismo,dadalanaturalezadeldesarrolloorientadoa
objetos, debern seguirse sus principios de extensibilidad y encapsulamiento,
indicandolospatronesdediseoy/oarquitecturautilizados.
A.1.3.1.5.
IdentificacindelosSubsistemasdeDiseo
Enestatarea,seconsideraroncomoSubsistemasdeDiseoalosSubsistemasde
Anlisis, identificados y descritos en 2.2.3. Identificacin de Subsistemas de
Anlisis.
115
A.1.3.1.6.
EspecificacindelEntornoTecnolgico
ElentornotecnolgicoyasedefinienetapadeAnlisis,msespecficamenteen
2.2.1.2.IdentificacindelEntornoTecnolgico.
A.1.3.2.
DiseodelaArquitecturadeSoporte
A.1.3.3.
DiseodelosCasosdeUsoReales
Estaactividad,seespecificarelcomportamientodelsistemadeinformacinparaun
casodeuso,medianteobjetososubsistemasdediseoqueinteractan,ydeterminar
lasoperacionesdelasclaseseinterfasesdelosdistintossubsistemasdediseo.
116
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
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
Caso(s)deUsoAsociado(s)
CrearDiagrama,Editar
Diagrama
CrearDiagrama,Editar
Diagrama
CrearDiagrama,Editar
Diagrama
EditarDiagrama
EditarDiagrama
EditarDiagrama
EditarDiagrama
EditarDiagrama
EditarDiagrama
GuardarDiagrama
AdministrarDiagramas
EjecutarPrograma,
VisualizarEstado,Simular
CambioenSensor
GenerarPrograma
Subsistema(s)
asociado(s)
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
EditordeDiagramas
Emuladordelasvariables
delhogar,estadodela
casa
GeneradordeCdigo
GenerarPrograma
GeneradordeCdigo
GenerarPrograma
GeneradordeCdigo
GenerarPrograma
GeneradordeCdigo
AdministrarProgramas
AdministrarProgramas
AdministrarProgramas
EjecutordeCdigo
EjecutordeCdigo
EjecutordeCdigo
118
DescripcindelasClasesAdicionales
BuilderDiagrama: clase encargada de construir un objeto de la clase Diagrama a
partirdelosdatosalmacenados,provenientesdeunaedicinprevia.
BuilderPrograma: clase responsable de la construccin de un objeto de la clase
Programaapartirdelosdatosalmacenados,provenientesdeunaedicinprevia.
BuilderMapper: esta clase se ocupa de construir un objeto de la clase Mapper a
partirdelosdatosalmacenados,provenientesdeunaedicinprevia.
DraggableImage: clase responsable de modelar los comportamientos de una
imagenarrastrable(drag&drop)porlapantalladeedicindeldiagrama,utilizada
porcadaunadelasfigurasdelmismo.
ICaminoFlecha: interfaz que declara los mtodos utilizados para definir la
estrategiaautilizarparadibujarlaflechaentredosfiguras.
Punto:claseresponsabledemodelarunpuntodentrodeldiagrama.
Lnea:claseresponsabledemodelarunalneadentrodeldiagrama.
Rectngulo:claseencargadademodelarlascoordenadasdeunrectngulodentro
deldiagrama.
OpenDlg:clasequemodelaelcomportamientodel cuadroAbrirDiagrama(ver
2.2.8.4)
SaveDlg:clasequemodelaelcomportamientodelcuadroGuardar/Guardarcomo
Diagrama(ver2.2.8.4)
ManagerDlg: clase que modela el comportamiento del cuadro Administrar
Diagramas(ver2.2.8.4)
IBuilderHome:interfazquedeclaralosmtodosutilizadosparaconstruirunobjeto
Home. BuildSimulatedHome implementa la interfaz para una casa simulada con
unaconfiguracindehabitacionespredeterminadas.
BuilderDispatcher: clase que crea un objeto de la clase Dispatcher con todos los
archivosquestadebevigilar.
BuilderFileConditions:clasequecreaunobjetodelaclaseFileConditionsapartir
deinformacinpersistente.
119
BuilderSensorSystem:clasequecreaunobjetodelaclaseSensorSystemapartir
deinformacinserializada.
IBuilderExpression: interfaz que declara los mtodos utilizados para construir un
objetodelaclaseExpression(haciendousodeunfactory)apartirdeinformacin
serializada.BuilderExpressionimplementaestainterfaz.
IBuilderProgram: interfaz que declara los mtodos utilizados para construir un
objeto Program (haciendo uso de un factory) a partir de la informacin
persistente. BuilderProgramCLIPS implementa esta interfaz para programas
escritosenCLIPS.
IFactoryExpression:interfazquedeclaralosmtodosparaconstruirlosobjetosde
laclaseExpressionysusderivadas.FactoryExpressionimplementaestainterfaz.
IFactoryProgram: interfaz que declara los mtodos para construir los objetos
relacionadosconlaclaseProgram.FactoryProgramCLIPSimplementaestainterfaz
paraprogramasescritosenCLIPS
A.1.3.4.2.
DiseodeAsociacionesyAgregaciones
Enestatarea,secompletarnlasasociacionesyagregacionesentrelasclases.Para
facilitarlalectura,yhacerelprocesomseficiente,setranscribirnlosresultados
unavezrealizadasestaactividadylassiguientes:
A.1.3.4.3.
IdentificacindelosAtributosdelasClases
A.1.3.4.4.
IdentificacindelasOperacionesdelasClases
120
Seactualizarnlosdiagramasdeclasesgeneradosen2.2.5.AnlisisdelasClases,
deacuerdoalasnuevasclasesidentificadas,secompletarnconsusasociaciones,
agregaciones,atributosyoperaciones.
EditordeDiagramas
121
Emuladordelasvariablesdelhogar,estadodelacasa
122
GeneradordeCdigo
123
EjecutordeCdigo
124
Simulador
No se registraron nuevas clases durante la etapa de Diseo, por lo cual se
conservaeldiagramadelaetapadeAnlisis(tarea2.2.5.AnlisisdelasClases).
A.1.3.4.5.
DiseodelaJerarqua
A.1.3.4.6.
DescripcindelosMtodosdelasOperaciones
Enestatareasedescribirnlosmtodosqueseusanparadetallarcomoserealiza
cada una de las operaciones de una clase. Los mtodos pueden especificarse
medianteunalgoritmo,usandopseudocdigoolenguajenatural.
Debido al nmero de clases y de mtodos, para simplificar la lectura, se decidi
especificarenborradoralosmsrepresentativosyesainformacinseutilizarala
hora de generar la documentacin para el programador (JavaDoc en el caso de
Java y ASDoc en el caso de Flex). Por ello, adems del presente informe, se
entregardocumentacinlacualestarformadaenpartedelosarchivosquesean
generadosdurantelaconstruccindelsistema,seanJavaDocsyASDocs.
A.1.3.4.7.
EspecificacindeNecesidadesdeMigracinyCarga
InicialdeDatos
Enestatareaserealiza,enloscasosqueseanecesarioyapartirdelosresultados
delatarea2.2.6.4,unaprimeraespecificacindelasnecesidadesdemigracino
125
cargainicialdelosdatosrequeridosporelsistema,quesecompletaenlaactividad
DiseodelaMigracinyCargaInicialdeDatos(2.3.9).
En el caso del presente Trabajo Profesional, como se decidi realizar un Diseo
Orientado a Objetos, no se realiz 2.2.6.4. Sin embargo, las necesidades carga
inicial de datos y migracin en este Proyecto estarn relacionadas con las
funcionesdomticasdisponibles,lashabitacionesdondecadaunadeellaspodrn
realizarseylosparmetrosquetomanestasfunciones.
Se lleg a la conclusin que la mejor forma de cumplir con esta carga inicial es
delegar esta tarea al instalador de la aplicacin servidor y que ste se ocupe de
generarlastablasapropiadasjuntoconlosdatosqueserequieranparaactivarla
aplicacin. El instalador podr pedir que exista un motor de bases de datos
instalado y que se encuentre en funcionamiento al momento de comenzar el
procesodeinstalacin.
A.1.3.5.
DiseodelaArquitecturadeMdulosdelSistema
A.1.3.6.
DiseoFsicodeDatos
A.1.3.6.1.
DiseodelModeloFsicodeDatos
Enelpresentetrabajo,seutilizarunmotordeunaBasedeDatosrelacional,para
almacenaryrecuperarlosdiagramasgenerados,determinarsuestadoyrecuperar
126
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
Cadahabitacinpuedeejecutar0msfuncionesmientrasquecadafuncinest
disponible en 0 ms habitaciones (relacin Ejecuta). Asimismo, cada funcin
puede tener 0 ms parmetros mientras que cada parmetro est relacionado
conunayslounafuncin.
A partir de estas entidades se construirn las tablas correspondientes que sern
explotadasprincipalmenteporelsubsistemaEditordeDiagramas.
Elaccesoadichastablaspermitirllenarloscuadrosdedilogoespecificadosen
2.2.8.4.EspecificacindelComportamientoDinmicodelaInterfaz.
TeniendoencuentaqueelmotordebasededatosautilizaresMySQL(ver2.2.1.2.
Identificacin del Entorno Tecnolgico), las sentencias para generacin de las
tablasseran:
CREATE TABLE files( id INT NOT NULL AUTO_INCREMENT PRIMARY
KEY , name VARCHAR(50), content TEXT, active INT NOT NULL)
ENGINE=InnoDB;
CREATE TABLE rooms (id INT
VARCHAR(50)) ENGINE=InnoDB;
NOT
NULL
PRIMARY
KEY
name
CREATE TABLE functions (id INT NOT NULL PRIMARY KEY, name
VARCHAR(50), help VARCHAR(200), has_return INT NOT NULL )
ENGINE=InnoDB;
CREATE TABLE parameters(id INT NOT NULL PRIMARY KEY, name
VARCHAR(50)) ENGINE=InnoDB;
CREATE TABLE rooms_functions (id_room INT NOT NULL REFERENCES
rooms(id) ON UPDATE CASCADE ON DELETE CASCADE, id_function
INT NOT NULL REFERENCES functions(id) ON UPDATE CASCADE ON
DELETE
CASCADE,
PRIMARY
KEY(id_room,
id_function))
ENGINE=InnoDB;
CREATE TABLE functions_parameters (id_function INT NOT NULL
REFERENCES functions(id) ON UPDATE CASCADE ON DELETE CASCADE,
id_parameter INT NOT NULL REFERENCES parameters(id) ON UPDATE
CASCADE
ON
DELETE
CASCADE,
PRIMARY
KEY(id_function,
id_parameter)) ENGINE=InnoDB;
128
A.1.3.6.2.
EspecificacindelosCaminosdeAccesoalosDatos
129
d. Recuperarfuncionesdomticasdisponibles,consusparmetrosyenqu
habitacionespuedenejecutarse
En este caso, es necesario acceder a 5 tablas (rooms, functions,
parameters,rooms_functionsyfunctions_parameters),losdatosdebenser
ledos, serializados a XML por parte del mediador (archivo) entre la Base
MySQL y la interfaz web (Flex), la cual mostrar el listado en pantalla y
culesseencuentranactivadosyculesno.
A continuacin, se evaluar si conviene desnormalizar para acelerar la
performance.
A.1.3.6.3.
OptimizacindelModeloFsicodelosDatos
Enestatareasedecidirsioptimizareldiseofsicodedatos,conelobjetivode
mejorar el tiempo de respuesta en el acceso a datos persistentes, hacer una
adecuadautilizacindelosrecursosdelsistemay,enconsecuencia,garantizarque
eldiseosatisfacelasnecesidadesdetratamientoestablecidasparaelsistemade
informacinencuantoaqueseajustaalosrequisitosderendimientoexigidos.
Dados los caminos de accesos definidos en el 2.3.6.2, el nico que puede ser
mejorado (aquel con una cantidad de accesos mayor a uno) es d. Teniendo en
cuenta la naturaleza del Trabajo Profesional, la arquitectura decidida para el
sistema, los requerimientos funcionales antes expresados y el hecho de que las
funcionesdomticassoncomomuchounpardedecenas,sedecidimantenerla
estructuranormalizadadescritaen2.3.6.1.Adems,noexistirngrancantidadde
accesos concurrentes (este sistema corre en el entorno de una vivienda y
automatizalastareasparaesaenparticular,podrnexistiraccesosremotospero
pocas personas los habitantes de la misma sern los interesados en utilizar el
EditordeDiagramas).
130
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
En esta tarea, el grupo de trabajo verific que las especificaciones de diseo
fueran coherentes entre s y que carezcan de ambigedades o duplicacin de
informacin.Pudoasegurarse,entonces,laconsistenciaentrelasespecificaciones
dediseoylosmodelosdelanlisis.
A.1.3.7.3.
AceptacindelaArquitecturadelSistema
131
A.1.3.8.
GeneracindelasEspecificacionesdeConstruccin
Enestaactividadsegenerarnlasespecificacionesparalaconstruccindelsistemade
informacin,apartirdeldiseodetallado.
Estas especificaciones definen la construccin del sistema de informacin a partir de
las unidades bsicas de construccin (componentes), entendiendo como tales
unidades independientes y coherentes de construccin y ejecucin, que se
correspondenconunempaquetamientofsicodeloselementosdeldiseodedetalle,
comopuedensermdulos,clasesoespecificacionesdeinterfaz.
A.1.3.8.1.
EspecificacindelEntornodeConstruccin
Hardware
Una PC (Intel Core Duo 1,6 GHz, 2GB RAM, Disco de 80 GB,
Resolucin1280x800pxeles)
Software
WindowsXPSP2Professional
MicrosoftVirtualPC6.0
Navegadoresweb(InternetExplorer7,MozillaFirefox2.0,Google
Chrome1.0)
EasyPHP1.8(Apache1.3.x,BasedeDatosMySQL4.1.x,PHP4.3.x)
AdobeFlashPlayer9
132
Herramientasdeconstruccin
Java1.6(JDK1.6.0.11)
CLIPS(versin6.3)
IDEEclipse(3.3.0)conFlexBuilder3Plugin
NullsoftScriptableInstallSystemversin2.44(Generador
deinstaladores)
Comunicaciones
ConexinaInternetporBandaAnchaa1Mbps
A.1.3.8.2.
DefinicindeComponentesySubsistemasde
Construccin
En esta tarea, se definieron a los subsistemas de diseo como subsistemas de
construccin,esdecir,existirncincosubsistemasdeconstruccin:
1. EditordeDiagramas
2. GeneradordeCdigo
3. Simuladoryvisualizadordeeventos
4. Emuladordelasvariablesdelhogar,estadodelacasa
5. EjecutordeCdigo
Los subsistemas 1 y 3 sern construidos en Flex para ser utilizados a travs del
navegadorweb,desdeelladoClientedelsistema.
Elrestodelossubsistemassernconstruidoscomoprogramasindependientesen
Java,formandoelladoServidordelsistema.
133
A.1.3.9.
DiseodelaMigracin
Esta actividad slo se lleva a cabo cuando es necesaria una carga inicial de
informacin,ounamigracindedatosdeotrossistemas,cuyoalcanceyestrategiaa
seguirsehabrestablecidopreviamente.
Paraello,setomacomoreferenciael plandemigracinycargainicialdedatos,que
recogelasestructurasfsicasdedatos delsistemaosistemasorigenimplicadasenla
conversin,laprioridadenlascargasysecuenciaaseguir,lasnecesidadespreviasde
depuracin de la informacin, as como los requisitos necesarios para garantizar la
correcta implementacin de los procedimientos de migracin sin comprometer el
funcionamientodelossistemasactuales.
En este Trabajo, como no existe migracin de datos de otros sistemas, slo se
trabajarenestaactividadlacargainicialdedatos.
A.1.3.9.1.
DiseodeProcedimientosdeCargaInicial
Enestatareasedefinirnlosprocedimientosnecesariosparallevaracabolacarga
inicialdedatosdelsistema.
Como punto de partida se tiene en cuenta, junto con los requisitos y
especificaciones de carga inicial, el modelo fsico de datos optimizado y su
localizacin en los nodos, as como la definicin del entorno tecnolgico del
sistemadeinformacin.
Los procedimientos asociados son, principalmente, los relacionados con la
preparacin,larealizacinylaposteriorverificacindelproceso.
Paraestepunto,setomaronlossiguientescriteriosalahoradelacargainicialde
datos:
Lacargainicialdedatosdeberestarincluidaenelprocesodeinstalacin
delladoServidor.
134
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
A.1.3.10.1.
EspecificacindelEntornodePruebas
Enestatareasedefinirelentornonecesarioparalarealizacindelaspruebasdel
sistema:unitarias,deintegracin,deimplantacinydeaceptacin.
El objetivo de esta tarea ya fue cubierto en la Etapa de Anlisis, en el punto
2.2.10.2.DefinicindeRequisitosdelEntornodePruebas.
A.1.3.10.2.
EspecificacinTcnicadelosNivelesdePrueba
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
PruebasdeSistema
Laspruebasdesistematendrncomoobjetivoverificartodoelproceso,desde
la generacin del diagrama, el guardado, una eventual reapertura, la
generacin del programa, la puesta en espera para ejecucin del mismo y la
activacin correspondiente con su comprobacin en el simulador de las
accionestomadas.
PruebasdeAceptacindelSistema
LaspruebasdeAceptacindelSistemasonsimilaresalasPruebasdeSistema
pero las primeras se realizan en presencia de los Directores del Trabajo
Profesional.
A.1.3.11.
EstablecimientodeRequisitosdeImplantacin
Enestaactividadsecompletarelcatlogoderequisitosconaquellosrelacionadoscon
la documentacin que el usuario requiere para operar con el nuevo sistema, y los
relativosalapropiaimplantacindelsistemaenelentornodeoperacin.
La incorporacin de estos requisitos permite ir preparando, los medios y recursos
necesarios para que los usuarios, tanto finales como de operacin, sean capaces de
utilizarelnuevasistemadeformasatisfactoria.
A.1.3.11.1.
EspecificacindelosRequisitosdeDocumentacin
deUsuario
Enestatareaserecogertodalainformacinnecesariaparalaespecificacindela
documentacinaentregaralusuario.
LadocumentacinaentregaralUsuarioconsistirenunarchivodeayudaporcada
uno de los subsistemas generado, en formato de Ayuda Compilada en HTML
(CHM),pudindoseinstalardelladoservidordesdeelinstalador.Adicionalmente,
podrinstalarseestadocumentacindeayudadelladoClienteenformatoHTML
plano, y as ser accesible a travs de la Web desde el Editor de Diagramas y/o
Simulador.
137
A.1.3.11.2.
EspecificacindeRequisitosdeImplantacin
138
A.1.3.12.
AprobacindelDiseodelSistemadeInformacin
A.1.3.12.1.
PresentacinyAprobacindelSistemade
Informacin
LosdirectoresdelTrabajoProfesionalrevisaronyaprobaronelDiseodelSistema
deInformacinpresentadoenestaEtapaquefiguraenelpresenteinforme.
139
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
CREATE
TABLE
files(
id
INT
NOT
NULL
AUTO_INCREMENT
CREATE TABLE rooms (id INT NOT NULL PRIMARY KEY , name
VARCHAR(50)) ENGINE=InnoDB;
CREATE
TABLE
REFERENCES
CASCADE,
rooms_functions
rooms(id)
ON
id_function
functions(id)
ON
(id_room
UPDATE
INT
UPDATE
CASCADE
NOT
CASCADE
INT
NULL
ON
NOT
ON
NULL
DELETE
REFERENCES
DELETE
CASCADE,
REFERENCES
CASCADE,
parameters(id)
functions(id)
id_parameter
ON
UPDATE
ON
INT
CASCADE
UPDATE
NOT
ON
NULL
CASCADE
ON
REFERENCES
DELETE
CASCADE,
Enlatablafilesfigurarnunregistroporcadadiagramasalvadoporelusuario,
elcampocontentrepresentaelcontenidodeldiagramaenformatoXML(dicho
formato se explicar en detalle ms adelante en este punto). Esta tabla se
inicializarvacaalmomentodelacargadeinicialdedatos.
El resto de las tablas corresponden a las funciones domticas con los
parmetrosquetomacadaunadeellasyenquehabitacionesdelavivienda
estndisponibles.
141
Acontinuacinsedetallarncadaunadeestasfunciones:
Nombrede
lafuncin
luz
Descripcin
Ajustala
intensidaddela
luzdeuna
habitacin
Parmetro(s)
Intensidad
(entero0..10)
fijarTemperatura
Fijala
temperaturadela Valor(entero
20..30)
habitacin
seleccionada
Envaunmensaje
Nro(entero)
detextomensaje
Mensaje
aunnmerode
(texto)
telfononro
regadores
Activalos
regadoresconla Intensidad
(entero0..10)
intensidad
especificada
activarAlarma Disparalaalarma
delavivienda
incrementar Incrementaen1
elvalordel
Valor(entero)
parmetrovalor
suma
Sumando1
Sumadosvalores Sumando2
(enteros)
abrirPorton Abreelportn
delGarage
cerrarPorton Cierraelportn
delGarage
obtTemperatura
Devuelvela
temperaturaen
grados
centgradosdela
habitacin
seleccionada
encenderMi
cantSegundo
croondas
s(entero):
cantidadde
Activaelhornoa
segundosde
microondascon
coccin
laintensidady
duranteeltiempo intensidad
determinado
(entero
0..10):
intensidad
Disponible
en:
Living
Cocina
Comedor
Bao
Dormitorio
Garage
Living
Cocina
Comedor
Bao
Dormitorio
Garage
Devuelve
enviarSMS
General
Patio
General
General
General
Valor
incrementa
doen1
Sumando1
+
Sumando2
Garage
Garage
Living
Cocina
Comedor
Bao
Dormitorio
Garage
Temperatu
radela
habitacin
enC
Cocina
142
decoccin
Despliegaun
mensaje
(paramDebug1
paramDebug
concatenadocon
1(texto)
paramDebug2)en paramDebug
laconsolade
2(texto)
eventosdel
simulador
Minuendo
(entero)
Restadosvalores
Sustraendo
(entero)
debug
resta
General
General
Minuendo
Sustraendo
General
Cerosi
valores
distintode
0
Unosi
valores
iguala0
Living
NOT
Niegaavalor
grabarTV
Valor(entero)
Grabaelcanalde Canal
(entero)
TVespecificado
durantela
DuracionMin
cantidadde
(duracinde
minutos
lagrabacin
solicitada
enminutos
FormatosdeArchivoaUtilizar
Laformadeintercambiodedatosentresubsistemasserapartirdearchivos
XML,conlocual,acontinuacinsedefinirnlasestructurasdelosprincipales,
utilizandoXSDSchema.
Archivosgeneradosporeleditordediagramas
Estos archivos son generados al guardar un diagrama en la base de
datos y sonalmacenados en el campo content de cada registro de la
tablafiles.Paraabrirundiagrama,serecuperaaunarchivoporidde
la tabla files, se interpreta el content y se regenera el diagrama
correspondiente.LadefinicinformalconelXSDSchemaes:
143
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="file">
<xs:complexType>
<xs:sequence>
<xs:element name="diagrama">
<xs:complexType>
<xs:sequence>
<xs:element name="figura" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="left" type="xs:integer"/>
<xs:element name="top" type="xs:integer"/>
<xs:element name="width" type="xs:integer"/>
<xs:element name="height" type="xs:integer"/>
<xs:element name="label" type="xs:string"/>
<xs:element name="tooltip" type="xs:string" />
<xs:element name="siguiente" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:attribute name="destino" type="xs:integer"
use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="verdadero" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:attribute name="destino" type="xs:integer"
use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="falso" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:attribute name="destino" type="xs:integer"
use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="type" type="xs:string" use="required"/>
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="programa">
<xs:complexType>
<xs:sequence>
<xs:element name="start_id" type="xs:integer" minOccurs="0"
maxOccurs="1"/>
<xs:element name="block" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:any/>
</xs:sequence>
<xs:attribute name="type" type="xs:string" use="required"/>
<xs:attribute name="id" type="xs:integer" use="required"/>
<xs:attribute name="next" type="xs:integer"/>
<xs:attribute name="verdadero" type="xs:integer"/>
<xs:attribute name="falso" type="xs:integer"/>
</xs:complexType>
144
</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
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
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
Grficamente:
148
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
<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
151
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
ArchivosdeCdigoEjecutablecomoReglasdeSistemaExperto(.clp)
Comoyasemencionenesteinforme,losdiagramasgeneradosenel
editor son almacenados como tales en la Base de Datos y,
paralelamente a esto, se genera el programa correspondiente a ese
diagrama. Dicho programa est formado por una serie de reglas de
sistema experto y una serie de hechos que son agregados
convenientemente a la base de conocimientos. Cada programa corre
conunabasedeconocimientosindependientedelresto.
ParamayorinformacinacercadeProgramacindeSistemasExpertos,
serecomiendaconsultarlabibliografaquefiguraalfinaldelpresente
informe.
Dada la naturaleza de un diagrama de flujo, su conversin a un
programa estructurado es inmediata. Sin embargo, la conversin del
diagrama a un programa escrito en un lenguaje de sistema experto
comoCLIPSesunpocomselaborada.Amododeejemplo,setomar
undiagramadeflujosencillo,quepuedesergeneradoconelEditorde
Diagramas y se explicarn las reglas bsicas para la conversin a
cdigo.
153
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
(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
(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
(assert (fact_rule6_1))
(set-break rule6_1))
(defrule rule6_1
?id <- (fact_rule6_1)
?id_func_1_12<-(func (idRoom 1) (idFunc 12) (value ?valor_func_1_12))
=>
;(printout t "ejecutando asignacion rule6_1" crlf)
(retract ?id)
(retract ?id_func_1_12)
(assert (fact_rule5)))
(defrule rule0_showFilename
?id <- (fact_rule0_showFilename)
=>
;(printout t "ejecutando asignacion - funcion rule0_showFilename" crlf)
(assert (request (reason func)))
(assert (func (idRoom 1) (idFunc 12) (params "Ejecutando el archivo: " "demo"
) ))
(retract ?id)
(assert (fact_rule0_showFilename_1))
(set-break rule0_showFilename_1))
(defrule rule0_showFilename_1
?id <- (fact_rule0_showFilename_1)
?id_func_1_12<-(func (idRoom 1) (idFunc 12) (value ?valor_func_1_12))
=>
;(printout t "ejecutando asignacion rule0_showFilename_1" crlf)
(retract ?id)
(retract ?id_func_1_12)
(assert (fact_rule1)))
FormatodeMensajesentreSubsistemasdelServidor
Los distintos subsistemas del servidor se comunican, como ya se dijo, va TCP/IP. Esta
comunicacinesmediantemensajesdetexto,concamposseparadospor;.Larespuestaa
estosmensajesestexto,dondeprimerofiguraun0silaoperacinfueexitosaseguidodeun
;yluegoxito1seguidodeladescripcindelerror.
MensajesaydesdeExecuter:sontres:mensajesdeactualizacinde
la lista de archivos a ejecutar, mensajes de estado de los sensores y
mensajesparalaejecucindefuncionesdomticas.
Actualizacin de lista de archivos: cuando se genera un nuevo
diagrama (y paralelamente programa) o cuando se elimina uno, debe
notificarse de los cambios a Executer para que sepa que archivos
ejecutar.Paraello,elformatodeestosmensajeses:
<comando>;<nombre_archivo_clp> donde <comando> es add
remove (segn se agregue un nuevo diagrama o se elimine uno
157
existente,respectivamente)y<nombre_archivo_clp>eselnombredel
archivo
ejecutable
(.clp)
correspondiente
al
diagrama
agregado/eliminado.
Estado de sensores: cuando cambia el valor de un sensor de la casa,
HomeState (quien posee comunicacin con los mismos) notifica a
Executer de dicho cambio para que ste determine si existe algn
diagrama que deba ser ejecutado como consecuencia de ese cambio.
El formato de estos mensajes es: <sensor>;<estado> donde <sensor>
puedeseralarm,sunrise,sunsetodoorsegnlossensoresemulados
descritosanteriormenteeneltrabajoy<estado>estruefalse,segn
ese sensor se haya activado o desactivado, respectivamente. Si el
mensaje enviado es getAllSensorsState, recibe como respuesta el
estado
de
cada
sensor,
con
la
siguiente
estructura:
<sensor1>,<estado1>;<sensor2>,<estado2>;<sensor4>,<estado4>
Ejecucin de funciones domticas: cuando se est ejecutando un
programayserequierelaejecucindeunafuncin,porejemplo,abrir
portn, Executer notifica a HomeState del pedido usando mensajes
conelsiguienteformato:
requestFunctionCall;<idRoom>;<idFunc>(;<valor_param_i>)*
DonderequestFunctionCallesunaconstantequedeterminaeltipode
mensaje, <idRoom> representa el ID de Habitacin (coincidente al
otorgado en la tabla rooms de la Base de Datos), <valor_param_i>
representa el valor del isimo parmetro de la funcin (est entre
parntesis y con un asterisco indicando que puede haber de 0 a n
parmetros,dependiendodeltipodefuncin.
158
A.1.4.1.2.
PreparacindelEntornodeConstruccin
Sepreparelentornodeconstruccin,(conlaslibrerasybibliotecasutilizadas)el
cualconstadelosmediosinformticosprovistosporelalumnoyeselindicadoen
2.3.8.1.EspecificacindelEntornodeConstruccin.
A.1.4.2.
GeneracindelCdigodelosComponentesy
Procedimientos
El objetivo de esta actividad es la codificacin de los componentes del sistema de
informacin, apartirdelasespecificacionesde construccinobtenidasen elproceso
DiseodelSistemadeInformacin(DSI).
A.1.4.2.1.
GeneracindelCdigodeComponentes
Enestatareasegeneraelcdigocorrespondienteacadaunodeloscomponentes
delsistemadeinformacin,identificadosenlatareaDefinicindeComponentesy
SubsistemasdeConstruccin(2.3.8.2).
Se gener el cdigo de cada subsistema, en el lenguaje elegido, compilndolo,
verificando y corrigiendo los errores sintcticos, y el enlace del cdigo objeto
obtenidoconlascorrespondientesbibliotecas.
En el CD que acompaa a este informe, se incluye el cdigo fuente del Sistema
generado.
A.1.4.3.
EjecucindelasPruebasUnitarias
Enestaactividadserealizarnlaspruebasunitariasdecadaunodeloscomponentes
del sistema de informacin, una vez codificados, con el objeto de comprobar que su
estructuraescorrectayqueseajustanalafuncionalidadestablecida.
159
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
160
A.1.4.4.
HomeState(30clases,59tests):59/59testsexitosos
CodeGen(12clases,28tests):28/28testsexitosos
Executer(5clases,19tests):19/19testexitosos.
EjecucindelasPruebasdeIntegracin
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
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.
DiagramaF:diagramaquemodelaunbucle:
I <- 1
MIENTRAS I < 6{
I <- I + 1
DEBUG(i vale , I)
}
DEBUG(FIN i vale , I)
FIN
162
GenerarundiagramaenGraFlowyseguardenlaBasedeDatos
RecuperareldiagramaalmacenadocomoXMLenlaBasedeDatos
usando phpmyadmin y se gener un archivo de texto XML
(test.xml)
con
un
validador
web
(http://www.xmlme.com/Validator.aspx)
o
Validarelarchivotest.condconsuschema(schema_cond.xsd)
Cargaryejecutartest.clpenExecuter
Verificarelordenenquelasreglasfueronejecutadosapartirdela
impresinporconsola.
c. IntegracinEjecutordeCdigo(Executer)yEmuladordelasvariablesdel
hogar,estadodelacasa(HomeState)
163
Sesiguieronlossiguientespasos:
o
Ejecutartest.clp
Verificarelestadodelacasa,conectndoseaHomeStatevatelnet
alpuertocorrespondienteysolicitandoelregistrodeeventos
d. IntegracinHomeStateySimulador
Sesiguieronlossiguientespasos:
o
Ejecutartest.clp
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
DA.A
NivelSeveridad
Medio
Descripcin
Alalmacenarseun
diagramavaco,el
archivodecdigo(.clp)
nosegenera
correctamente
164
DA.A
Medio
Elarchivodediagrama
fuevalidadoconel
Schemaypasla
prueba.
Alalmacenarseun
diagramavaco,el
archivode
condiciones(.cond)no
segenera
correctamente
Elarchivodediagrama
fuevalidadoconel
Schemaypasla
prueba.
SecreequeelerrorradicadentrodelsubsistemaCodeGenyqueestrelacionado
conqueelmismoesperaalmenosunbloquedeprogramaenelXMLdediagrama.
Pruebas de integracin B, C y D no se pudieron completar, debido a que sus
entradasdependandelasalidadelapruebaA.
2 Corrida: una vez solucionados los problemas reportados en la primera, se
ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados
satisfactorios.
DiagramaB:
1Corrida:
Se ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados
satisfactorios.
DiagramaC:
1Corrida:
Se ejecutaron las pruebas de integracin A, B, C y D obtenindose resultados
satisfactorios.
DiagramaD:
1Corrida:
Se completaron las propiedades de las figuras del diagrama de flujo
predeterminadodemodoquerepresentealsiguientepseudocdigo:
165
1Corrida(bis):
Se completaron las propiedades de las figuras del diagrama de flujo
predeterminadodemodoquerepresentealsiguientepseudocdigo:
DiagramaE:
1Corrida:
Se completaron las propiedades de las figuras del diagrama de flujo
predeterminadodemodoquerepresentealsiguientepseudocdigo:
166
1Corrida(bis):
Se completaron las propiedades de las figuras del diagrama de flujo
predeterminadodemodoquerepresentealsiguientepseudocdigo:
ReportedePruebaNro:5.3
Fecha:7/7/09
Erroresencontrados:
IDCasodePrueba
DE.C
NivelSeveridad
Medio
Descripcin
Alalmacenarseun
diagramaquedebe
ejecutarsemsdeuna
vezporsemana,nose
terminaejecutando
nunca.Siseselecciona
comopropiedadde
comienzocerooundaa
lasemana,funciona
correctamente
167
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:
ReportedePruebaNro:7.3
Fecha:10/7/09
Erroresencontrados:
IDCasodePrueba
DG.C
NivelSeveridad
Medio
Descripcin
Alalmacenarseun
diagramaquedebe
168
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
1. 1Corrida
ReportedePruebaNro:8
Fecha:14/7/09
Objetivo:PruebadeSistemaparaDiagramaA
Erroresencontrados:
IDCasodePrueba
PS.A
NivelSeveridad
Bajo
Descripcin
Alalmacenarseun
diagramavacoyluego
reabrirse,produceun
error
ReportedePruebaNro:9
Fecha:15/7/09
Objetivo:PruebadeSistemausandoAdministrarDiagramas
Erroresencontrados:
IDCasodePrueba
PS.X
NivelSeveridad
Medio
Descripcin
Aleliminarseel
diagramaactualmente
abiertodesde
Administrardiagramas
deGraFlow,seproduce
unerrorqueseregistra
enellogdeExecuter
170
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).
El presente Trabajo Profesional no tiene como objetivo la puesta en produccin del
sistemadesarrolladoporlocualelplandecapacitacinalosUsuariosFinalesnoaplica.
Sin embargo, se pueden enumerar una serie de conocimientos necesarios para la
operacindelsistema,enelmomentodelaDefensadelTrabajoyellosestndescritos
enelapartadoRequisitosdeFormacinde2.3.11.2.EspecificacindeRequisitosde
Implantacin.
171
A.1.4.8.
ConstruccindelosComponentesyProcedimientosde
MigracinyCargaInicialdelosDatos
En esta actividad se codificar y probar los componentes y procedimientos de
migracinycargainicialdedatos,apartirdelasespecificacionesrecogidasenelPlan
de Migracin y Carga Inicial de Datos obtenida en el proceso Diseo del Sistema de
Informacin.
A.1.4.8.1.
PreparacindelEntornodeMigracinyCarga
InicialdeDatos
A partir de la Base de Datos generada previamente, con las habitaciones,
funciones y parmetros correspondientes, se prepar un script en PHP que
recuperlosdatosquefueroninsertadoscuidadosamenteduranteelprocesode
codificacin y se gener un archivo de texto con los datos iniciales. Este archivo
(data.sql)seutilizarjuntoaunarchivoconlassentenciasparalacreacindelas
tablas(createDB.sql),armadosegn2.3.6.1.DiseodelModeloFsicodeDatos.
A.1.4.8.2.
GeneracindelCdigodelosComponentesy
ProcedimientosdeMigracinyCargaInicialdeDatos
Enestatarea,segenerelcdigoparalacargainicialdelosdatos.Sedecidique
laformamseficienteeradesarrollandounpequeoprograma(InitDB)queleyera
losarchivoscreateDB.sqlydata.sqlsentenciaporsentenciadeSQLylasejecutara.
EsteprogramafueescritoenJavayseincluyedentrodelinstaladordelsistema.En
el momento de la instalacin, el instalador solicita nombre y contrasea para
accederalaBasedeDatosyesosvaloressonpasadoscomoparmetrosparaque
elInitDBcarguelosdatosiniciales.SiInitDBnopuedehacerlo,devuelveuncdigo
de error al instalador quien notifica al usuario. La activacin de InitDB es
totalmente transparente para el usuario que est intentando instalar el sistema.
SeadjuntaenelCDelcdigofuentedeInitDB.
172
A.1.4.8.3.
RealizacinyEvaluacindelasPruebasde
MigracinyCargaInicialdeDatos
Se prob a InitDB tanto en forma separada por lnea de comandos como ya
integrado con el instalador, en una mquina virtual para hacer una instalacin
limpia,y,secomprobquelosdatosinicialescargadoseranvlidosycompletos.
A.1.4.9.
AprobacindelSistemadeInformacin
A.1.4.9.1.
PresentacinyAprobacindelSistemade
Informacin
Los directores del Trabajo Profesional revisaron y aprobaron la Construccin del
Sistema de Informacin presentado en esta Etapa que figura en el presente
informe.
173