Specifikace softwarových požadavků pro Projekt 4ML Verze: 1.5 Vytvořil: team 4ml http:// four-ml.kenai.com/ CTU FEE, Prague, Czech republic Datum: 21.11.2010
Obsah Slovníček 3 1. Úvod 4 1.1 Účel projektu 4 1.2 Jak číst 4 1.3 Rozsah projektu 4 1.4 Reference & odkazy 4 2. Souhrnný popis 5 2.1 Vlastnosti produktu 5 2.2 Třídy a charakteristiky uživatelů 5 2.3 Provozní prostředí 5 2.4 Omezení pro návrh a implementaci 5 2.5 Uživatelská dokumentace 5 2.6 Předpoklady a závislosti 5 3.Systémové funkce 5 3.1 Načtení parametrů budovy 5 3.2 Načtení parametrů místností 5 3.3 Načtení aktuálních dat o počasí 6 3.4 Odhad vývoje teploty v místnostech 6 3.5 Odeslání výsledků simulátoru 7 4. Aplikační rozhraní 8 4.1 Uživatelské rozhraní (GUI) 8 4.2 Hardwarová rozhraní 8 4.3 Softwarová rozhraní 8 4.4 Komunikační rozhraní 8 4.4.1 Rozhraní pro komunikaci se senzorem venkovního klima 8 4.4.2 Rozhraní pro komunikaci s mateřskou aplikací 9 4.4.2 Rozhraní pro komunikaci s komponentou pro výpočet a predikci teplot 11 5. Další, nefunkční požadavky 12 5.1 Požadavky na výkon 12 5.2 Bezpečnostní požadavky 12 5.3 Atributy kvality software 12 5.4 Lokalizace 12 5.5 Další požadavky 12 6. Analýza 13 6.1 Business process model 13 6.2. Use-Case model 14 7. Návrh 16 7.1 Activity Diagram 16 7.2 Domain Object Model 17 7.3 Popis komunikace mezi jednotlivými komponentami 18 7.4 Deployment Model 20 7.5 Sekvenční Diagram 21 2
Omezující podmínky pro zveřejnění a autorská práva 4ML. 2010, všechna práva vyhrazena. Obsah tohoto dokumentu je důvěrný a je určen výhradně pro vnitřní potřebu společnosti 4ML Veškerá loga, názvy produktů a řešení uvedených v tomto dokumentu mohou být registrované obchodní značky nebo ochranné obchodní známky jejich vlastníků. 3
SLOVNÍČEK MPC 4ML modul Wespon Simulátor budov SW PC.NET framework CPU RAM HDD Interface GUI Model Predictive Control model prediktivního řízení Název projektu týmu 4ML Téz plugin. Přídává funkcionalitu do aplikace, kterou by aplikace nebyla schopná realizovat Název týmu pracujicí na projektu Simulátor budov Název aplikace, do které bude možno začlenit 4ML projektech Software Personal Computer osobní počítač Softwarová struktura obsahující vše potřebné ke spuštění aplikací vyvinutých v prostředí Microsoft.NET Central Processing Unit - procesor Random Access Memory Pamět s přímým přístupem Hard disk drive pevný disk Rozhraní Graphical User Interace grafické uživatelské rozhraní C# Objektový programovací jazyk OS XML GNU Use Case UTF-8 API HW Operační systém Extensible Markup Language - rozšiřitelný značkovací jazyk General Public Licence název licence, pod kterou je projekt vyvíjen Případ použití UCS Transformation Format - značková sada Aplication Programming Interface rozhraní pro programování aplikací Hardware 4
1. Úvod 1.1 Účel projektu Aplikace bude sloužit k modelování fyzikálních vlastností budov, konkrétně bude provádět nezbytné výpočty pro předpověď teploty v jednotlivých místnostech. Tyto výsledky bude možné využít pro akci, která automaticky zajistí co nejefektivnějším způsobem zvýšení čí snížení teploty v místnosti. Aplikace bude tvořena jako knihovna k zároveň vyvíjenému Simulátoru budov od týmu Westpon, ale nebude na ní funkčně závislá, cílem je vytvořit co nejvíc rozšiřitelnou a výměnnou knihovnu, aby bylo možno knihovnu použít i v jiných projektech. Knihovna bude využívat další dvě knihovny, které reprezentují aktuální počasí a predikční komponentu teplot, v tomhle případě Model Predictive Control (MPC), což je forma řízení mnoha různých měřitelných vlastností objektů na základě cyklických výpočtů predikcí. V projektu 4ML se využije pouze část starající se o predikci teplot. 1.2 Jak číst Následujte jednotlivé kapitoly po sobě a snažte se nepřeskakovat žádný z textu, aby Vám neunikla některá pasáž, která by mohla být stěžejní v dalších částech dokumentu. Ať už jste softwarový vývojář či normální čtenář, buďte pozorní při pročítání odstavců a především se snažte rozebírané problematice porozumnět. 1.3 Rozsah projektu Aplikace bude připravena pro zavedení jako modul do aplikace Simulace budov (téma A), která bude schopná konfigurovat plochy pokojů, jejich průchodů a vzájemné spojení. Do každého pokoje bude možné přidávat nejrůznější senzory (detektor pohybu, stmívače, termostaty, měřiče úrovně hluku, světelné senzory) a aktuátory (světla, přímotopy, klimatizace, dveře, okna otevřená či zavřená, lednice, vezmou se i faktory jako, podlaha, díry ve zdi, televize, pozice všech objektů v místnosti a rozměry budovy a místností ). Náš modul bude sbírat data ze senzorů a následně je analyzovat a provádět s nimi výpočty na základě předpovědi počasí. Tyto informace budou následně použity pro nejvýhodnější zareagování systému, tak aby bylo docíleno ideální teploty či vlhkosti v místnosti. Náš modul bude aplikací bez uživatelského rozhraní, která bude ze získaných hodnot (vstupů ze simulátoru a naměřených dat týkajících se počasí v daném místě) předvídat vývoj teplot v místnosti a příslušně na něj reagovat. Pokud bude aplikace Simulace budov hotová, bude modul připraven na jejich vzájemné propojení, jinak budou použity pouze testovací vstupy. Veškeré výpočty budou logovány a vypisovány na standardní výstup. 1.4 Reference & odkazy Veškeré podpurné materiály najdete na webové adrese: http ://four-ml.kenai.com/ Popřípadě další informace získáte na této adrese po přechodu na wiki odkaz, kde jsou veškeré dokumenty a návody týkající se projektu 4ML. 5
2. Souhrnný popis 2.1 Vlastnosti produktu Cílový produkt bude umět predikovat vývoj teploty v budově, jejíž specifikace obdrží od Simulátoru budov, a odesílat je zpět. Modul 4ML bude nezávislý na Simulátoru, tj. bude znovupoužitelný v jiných projektech, které ho budou chtít použít, dále modul bude nezávislý, co se týče výběru komponenty pro predikci teplot. 2.2 Třídy a charakteristiky uživatelů Bude pouze jedna role a tou je uživatel. Uživatel by se měl alespoň trochu orientovat ve stavebnictví, protože jinak by tento modul jen stěží prakticky využil. Náležitě znalý uživatel může modul 4ML společně se Simulátorem použít třeba pro naplánování úprav při rekonstrukci, co se týče, teplotního rozložení v místnostech. 2.3 Provozní prostředí Modul 4ML bude fungovat na platformě PC s operačním systémem Windows XP a vyšším, kde bude nainstalovaný.net framework alespoň verze 3.5. Minimální požadavky na hardware: CPU 1GHz, 256 MB RAM, 5MB místa na HDD. 2.4 Omezení pro návrh a implementaci Jediné veliké omezení plyne z časového limitu na odevzdání projektu 2.5 Uživatelská dokumentace Bude přiložen tutoriál a dokumentace ve formátu pdf. 2.6 Předpoklady a závislosti Předpokládá se i možnost, že Simulátor budov od týmu Westpon nebude dokončen v požadovaném časovém limitu. Proto budou připraveny testovací data ve stejném formátu, jako kdyby byly přímo předány od Simulátoru, a výsledný projekt 4ML bude demonstrován na nich. Předpokládá se využití reálného senzoru počasí v budoucnu, proto bude připraven i komunikační interface, pomocí něhož se může případný software obsluhující fyzický senzor napojit na modul 4ML. 6
3.Systémové funkce 3.1 Načtení parametrů budovy 3.1.1 Popis a priorita Systém vytvoří abstraktní fyzikální model budovy na základě přijatých dat ze simulátoru. Priorita: 3 3.1.2 Funkční požadavky Systém bude umět načíst parametry budovy ze simulátoru. 3.2 Načtení parametrů místností 3.2.1 Popis a priorita Systém získá informace ze simulátoru o jednotlivých místnostech. Bude se jednat o rozměry, aktuální teplotu a pozice a existence dalších objektů v mistnosti, které mohou mít vliv na vývoj teplotu. Priorita:2 3.2.2 Funkční požadavky Systém bude umět načíst parametry jednotlivých místností ze simulátoru. 3.3 Načtení aktuálních dat o počasí 3.3.1 Popis a priorita Systém bude schopen získat informace o oblačnosti, teplotě, větru, sněhu/dešti a vlhkosti z externího zdroje. Tyto informace bude později využívat k výpočtu teploty v místnostech. Priorita: 5 3.3.2 Funkční požadavky Systém bude umožňovat získání aktuálních dat o počasí v daném místě. 3.4 Odhad vývoje teploty v místnostech 3.4.1 Popis a priorita Systém bude pomocí MPC predikovat změny teplot v místnostech a na základě toho regulovat. je Priorita: 1 3.4.2 Funkční požadavky 7
Z fyzikálního modelu systém bude schopen odhadnout budoucí průběh změny teploty. 3.5 Odeslání výsledků simulátoru 3.5.1 Popis a priorita Po ukončení výpočtů bude výsledek odeslán zpět simulátoru kde bude zobrazen. Priorita: 1 3.5.2 Funkční požadavky Systém bude umožňovat odeslat změněné parametry objektů v místnostech zpět simulátoru. 8
4. Aplikační rozhraní 4.1 Uživatelské rozhraní (GUI) Vzhledem k tomu, že aplikace bude distribuována jako plugin k již existující aplikaci, který se bude zabývat jen zadanými výpočty a výsledky budou odesílány hned zpět, nebude aplikace standardně podporovat uživatelské rozhraní. Pro účely testování a debugování budou moci být všechny výsledky prováděných výpočtů (stavy teplot v místnostech a jakými akcemi jich bylo dosáhnuto) vypisovány na standardní uživatelský výstup. Ve finálním provozu veškeré zobrazení výsledků bude zajišťovat mateřská aplikace. 4.2 Hardwarová rozhraní Aplikace nebude přímo komunikovat s žádnou hardwarovou komponentou, veškerá nízkoúrovňová volání bude zajišťovat platforma.net. 4.3 Softwarová rozhraní K vývoji budou použity standardní knihovny jazyka C#. Veškeré softwarové komponenty, tj. Simulátor budov od týmu Westpon a modul 4ML včetně MPC a generátoru teplot simulující počasí budou vzájemně komunikovat pomocí různých interfaců mezi nima. Projekt 4ML nevyužije fyzický sensor počasí, proto jeho místo je zastoupeno generátorem počasí, který bude komunikovat s modulem 4ML pomocí stejných rozhraní, jako by v budoucnu s modulem 4ML komunikoval software obsluhující fyzický senzor. 4.4 Komunikační rozhraní Aplikace bude implementovat tři komunikační rozhraní (viz strany 18-19): 4.4.1 Rozhraní pro komunikaci se senzorem venkovního klima Zde bude potřeba získat informace o parametrech venkovního klima, které budou ovlivňovat výpočet teploty v místnostech. Naše aplikace bude v této interakci vystupovat jako klient odesílající požadavky na aktuální hodnoty parametrů. Přesný typ ani formát komunikačního protokolu zatím není znám. 4.4.2 Rozhraní pro komunikaci s mateřskou aplikací Tady budou po aplikaci požadovány výsledky výpočtů teploty v místnostech a nastavení zařízení, které ji ovlivňují. Data se budou přenášet ve formě serializovaného řetězce. Řetezec bude předáván souborem XML, který má následující formát: 4.4.3 Rozhraní pro komunikaci s komponentou pro výpočet a predikci teplot aktuálně MPC Tady bude modul dodávat MPC data o budově a bude získávat výsledky. 9
<?xml version="1.0"? encoding="utf-8"?> <!DOCTYPE Building SYSTEM "CommunicationProtocol.dtd" [ <!-- Definice Budovy --> <!ELEMENT Building (Ground,Rotation,Floors)> <!ATTLIST Building id ID #REQUIRED> <!-- definice patra --> <!ELEMENT Floors (Floor)*> <!ELEMENT Floor (Ground,Rooms)> <!ATTLIST Floor id ID #REQUIRED> <!ATTLIST Floor height CDATA #REQUIRED> <!-- definice pokoje --> <!ELEMENT Rooms (Room)*> <!ELEMENT Room (Ground,Devices,HolesInWall)> <!ATTLIST Room id ID #REQUIRED> <!-- definice zarizeni --> <!ELEMENT Devices (Fridge Heating LightDetector Lights Television Thermostat HeatDetector)*> <!ELEMENT Fridge (Dimension?,Position?)> <!ATTLIST Fridge id ID #REQUIRED> <!ELEMENT Heating (Dimension?,Position?)> <!ATTLIST Heating id ID #REQUIRED> <!ATTLIST Heating targettemperature CDATA #REQUIRED> <!ELEMENT LightDetector (Dimension?,Position?)> <!ATTLIST LightDetector id ID #REQUIRED> <!ELEMENT Lights (Dimension?,Position?)> <!ATTLIST Lights id ID #REQUIRED> <!ELEMENT Television (Dimension?,Position?)> <!ATTLIST Television id ID #REQUIRED> <!ELEMENT Thermostat (Dimension?,Position?)> <!ATTLIST Thermostat id ID #REQUIRED> <!ATTLIST Thermostat temperature CDATA #REQUIRED> <!ELEMENT HeatDetector (Dimension?,Position?)> <!ATTLIST HeatDetector id ID #REQUIRED> <!ATTLIST HeatDetector currenttemperature CDATA #REQUIRED> <!-- definice der ve zdi --> <!ELEMENT HolesInWall (DoorOrWindow Window)*> <!ELEMENT DoorOrWindow (Dimension?,Position?)> <!ELEMENT RoomFrom EMPTY> <!ATTLIST RoomFrom id ID #REQUIRED> <!ELEMENT RoomTo EMPTY> <!ATTLIST RoomTo id ID #REQUIRED> <!ELEMENT Window (Dimension?,Position?)> <!ATTLIST Window id ID #REQUIRED> <!-- prostor --> <!ELEMENT Ground (Rects)> <!ATTLIST Ground width CDATA #REQUIRED> <!ATTLIST Ground depth CDATA #REQUIRED> 10
<!ELEMENT Rects (Rect)*> <!ELEMENT Rect (Rotation)> <!ATTLIST Rect objectid ID #REQUIRED> <!ATTLIST Rect x CDATA #REQUIRED> <!ATTLIST Rect y CDATA #REQUIRED> <!-- natoceni --> <!ELEMENT Rotation EMPTY> <!ATTLIST Rotation value CDATA #REQUIRED> <!-- rozmer --> <!ELEMENT Dimension EMPTY> <!ATTLIST Dimension width CDATA #REQUIRED> <!ATTLIST Dimension height CDATA #REQUIRED> <!ATTLIST Dimension depth CDATA #REQUIRED> <!-- pozice --> <!ELEMENT Position EMPTY> <!ATTLIST Position x CDATA #REQUIRED> <!ATTLIST Position y CDATA #REQUIRED> <!ATTLIST Position z CDATA #REQUIRED> ]> <?xml version="1.0"? encoding="utf-8"?> <!DOCTYPE TemperatureSettings SYSTEM "CommunicationProtocol.dtd" [ <!-- Definice TemperatureSettings--> <!ELEMENT TemperatureSettings (Device)*> <!-- definice Device --> <!ELEMENT Device ()> <!ATTLIST Device id ID #REQUIRED> <!ATTLIST Device temperature CDATA #REQUIRED> ]> <?xml version="1.0"? encoding="utf-8"?> <!DOCTYPE Weather SYSTEM "CommunicationProtocol.dtd" [ <!-- Definice Pocasi --> <!ELEMENT Senzor EMPTY> <!ATTLIST Senzor temperature CDATA #REQUIRED> ]> 11
5. Další, nefunkční požadavky 5.1 Požadavky na výkon Pro běh aplikace bude potřeba PC. Aplikace bude počítat matematické modely, kde platí, čím rychlejší hardware, tím rychleji budou data zpracována a vyhodnocena. Speciální hardwarové požadavky však nebudou zapotřebí. 5.2 Bezpečnostní požadavky Projekt 4ML nebude zpracovávat informace o osobních údajích či soukromých datech. Proto, neexistují žádné požadavky na ochranu dat v projektu 4ML. 5.3 Atributy kvality software 5.3.1 Bezpečnost Po uživateli by nemělo být požadována jeho identifikace při použití software. 5.3.2 Portabilita Aplikace bude použitelná pouze na OS Windows XP a vyšší s nainstalovaným.net frameworkem 3.5 a vyšší. 5.3.3 Implementace Projekt 4ML bude implementován v programovacím jazyce C#. 5.4 Lokalizace Aplikační rozhraní a nápověda budou v českém jazyce. Všechna textová data budou zobrazena ve znakové sadě UTF-8 5.5 Další požadavky Projekt 4ML je vyvíjen pod GNU General Public Licence verze 3. nebo novější. Projekt může být použit za podmínek, které lze najít na této adrese: http ://www.gnu.org/licenses/gpl.html 12
6. Analýza 6.1 Business process model Tento diagram ukazuje procesy v modulu 4ML včetně vnějších vstupů na začátku a výstupu na konci. analysis Business Workflows Parametry budov y a jejích místností Aktuální teploty v místnostech Aktální data o počasí Načtení dat ze simulátoru Odhad v ýv oje teplot Výstupní data odesílaná do simulátoru Proces načtení dat ze simulátoru zahrnuje dva vnější vstupy, tj. informace o budově a aktuální teploty v budově. Následuje proces predikce teplot za pomoci dalšího vstupu, tj. informace o aktuálním počasí, který vypočítá predikované hodnoty a výstup je odeslán zpět do mateřské aplikace. 13
6.2 Use-Case Model Model ukazuje z pohledu uživatele hlavní aplikace, ke které je vyvíjen modul 4ML, věci, které program vykonává na jeho požádání. uc Primary Use Cases System boundary Získat nastav ení teploty termostatu v místnostech User «include» Predikov at v ýv oj teploty v místnostech Scenario: 1. Uživatel si pomocí GUI hlavní aplikace zažádá modul 4ML o predikci teplot 2. Hlavní aplikace odešle data o budově a teplotě modulu 4ML 3. Modul 4ML pomocí přijatých dat a dat o aktuálním počasí provede predikci 4. Modul 4ML odešle data zpět do simulátoru 14
Funkční požadavky Modul zpracuje načtená data a využije aktuální data o počasí pro predikci vývoje teplot v budově. Use cases: Získat nastavení teploty termostatu v místnostech Modul zpracuje data a data o počasí, data o budově od simulátoru včetně aktuálních teplot a výstupem budou data očekávaných teplot v budoucnu. Predikovat vývoj teploty v místnostech Pomocí Model Predictive Control společně s daty o počasí a aktuálních teplotách v simulované budově modul vypočte pro tuto budovu očekávané hodnoty teplot ve všech místnostech. Bude využita hlavně část Model Predictive, protože modul 4ML nebude řídit nastavení prvků v budově, například teplotu topení, aby v místnosti byla dosažena potřebná teplota, o toto se stará část Control. 15
7. Návrh 7.1 Activity diagram Tento diagram ukazuje proces komunikace hlavní aplikace a modulu 4ML a ukazuje sled událostí v modulu 4ML po přijetí dat z hlavní aplikace a před odesláním dat zpět hlavní aplikaci. Na začátku si Simulátor vytvoří a zreferencuje instanci modulu 4ML a modul 4ML si zaregistruje tento Simulátor, aby o sobě dvě dané komponenty věděly. Modul 4ML si zároveň udělá vzájemnou referenci na MPC a WeatherSensor (viz dále článek Popis komunikace mezi komponentami ). Simulátor předá modulu informace o parametrech budovy (getbuildingparameters) a aktuálních teplotách v pokojích (getroomtemperature). Tyto data, spolu s informacemi o aktuálním počasí (getactualweather), které se získají ze senzoru počasí (Weather Senzor) se následně zpracují (dataprocessing) již v našem 4ML modulu. Zpracovaná data budou následně načteny v MPC modulu, kde se provede odhad vývoje teploty (Temperature prediction development). Všechny získaná a vypočítaná data se zpracují (Processing and sending result) a pošlou se zpět do Simulátoru, kde cyklus končí. 16
7.2 Domain Object Model Tento diagram ukazuje jednotlivé balíčky modulu 4ML a jejich vzájemné závislosti. c l a s s D o m a i n O b j e... A p p C o d e. S i m u l a t o r «i m p o r t» A p p C o d e. P h y s i c a l M o d e l A p p C o d e. M P C «i m p o r t» «i m p o r t» A p p C o d e. W e a t h e r S e n s o r «i m p o r t» «i m p o r t» «i m p o r t» «i m p o r t» A p p C o d e. L o g g e r AppCode.Simulator sada tříd obsahující funkcionalitu potřebnou ke komunikaci se simulátorem AppCode.MPC sada tříd obsahující funkcionalitu potřebnou k predikci teploty v místnostech AppCode.WeatherSensor sada tříd obsahující funkcionalitu potřebnou ke komunikaci se senzorem teploty AppCode.PhysicalModel - sada tříd obsahující funkcionalitu controlleru programu AppCode.Logger - sada tříd obsahující funkcionalitu potřebnou k výpisu zpracovávaných dat do konzole 17
7.3 Popis komunikace mezi jednotlivými komponentami Simulátor + 4ML modul API Simulátor pomocí metody RegisterSimulator() zavolá modul 4ML, tímto modul získá referenci na Simulátor. Modul 4ML zavolá metodu RegisterPhysicalModel() a tím předá Simulátoru referenci na sebe. Dále probíhá komunikace pouze pomocí metod UpdateBuilding() a UpdateTemperatureSettings() pro přenos serializovaných dat. Aby modul 4ML přestal aktualizovat výpočty, Simulátor zavolá metodu Interrupt(). class ClassDiagram «interface» IPhysicalModuleFacade + Interrupt() : void + RegisterSimulator(ISimulatorFacade) : void + UpdateBuildingModel(String) : void «interface» ISimulatorFacade + RegisterPhysicalModel(IPhysicalModuleFacade) : void + UpdateTemperatureSettings(String) : void Modul 4ML + Weather Sensor API Modul 4ML pomocí metody RegisterModul() předá WeatherSensoru na sebe referenci. WeatherSensor metodou RegisterWeatherModul() předá referenci na sebe modulu. Další komunikace probíhá pomocí metod UpdateActualWeather() a GetWeatherData(). class ClassDiagram «interface» IWeatherSensorFacade + GetWeatherData(double) : WeatherDataDTO + RegisterWeatherModul(IWeatherFacade) : void «interface» IWeatherFacade + RegisterModul(IWeatherSensorFacade) : void + UpdateActualTemperature(double) : void Modul 4ML + komponenta teplotní predikce - aktuálně MPC API Modul 4ML metodou RegisterModul() předá MPC svoji referenci a ten na oplátku zavoláním metody RegisterModelPredictive() předá referenci zpět modulu 4ML. MPC dostane data pro výpočet metodou UpdateBuildingData() modul 4ML dostane vypočtená data pomocí metody PredictModel 18
class ClassDiagram «interface» IModulFacade + RegisterModul(IModelPredictiveFacade) : void + UpdateBuildingData(Building, ModelDataDTO) : void «interface» IModelPredictiv efacade + PredictModel(Buidling, ModelDataDTO) : void + RegisterModelPredictive(IModulFacade) : void 19
7.4 Deployment model Model nasazení ukazuje požadované HW/SW vlastnosti pro nasazení aplikace do praxe. deployment Deployment Model «device» PC { OS = Window s} Simulator Westpon MPC PhysicalModule 4ML <<Weather Sensor driver >> «device» WeatherSensor PC { OS = Windows } - Znázorňuje osobní počítač s cílovou platformou Simulátor mateřská aplikace poskytující datový model budovy Physical module modul predikující teplotu v místnostech budovy, formou DLL knihovny MPC modul, který provádí samotné výpočty predikce teplot Weather sensor HW zařízení snímající venkovní teplotu 20
7.5 Sekvenční diagram Sekvenční diagram znázorňuje průběh vytváření objektů a volání metod při běhu modulu. sd SequenceDiagram SimulatorFacade PhysicalModulFacade PhysicalModule WeatherSensorFacade ModelPredictiveFacade WeatherFacade ModulFacade Uživatel spustí() RegisterSimulator(ISimulatorFacade) RegisterPhysicalModul(IPhysicalModulFacade) Všechny komponenty se zreferencují jakmile Simulátor bude požadovat referenci na modul 4ML RegisterModul(IWeatherSensorFacade) RegisterWeatherModul(IWeatherFacade) RegisterModul(IModelPredictiveFacade) RegisterModelPredictive(IModulFacade) UpdateBuildingModel(String) CreateModelData(BuildingDTO) loop [until simulator stops running] GetWeatherData() vraci WeatherDataDTO() [given time interval period] UpdateBuildingData(ModelDataDTO, Building) PredictModel(Building, ModelDataDTO) UpdateTemperatureSettings(String) vrací upravený buildingdto() Uživatel spustí Simulator, který implementuje třídu SimulatorFacade. Simulátor zavolá na rozhraní IPhysicalModuleFacade metodu RegisterSimulator() s parametrem ISimulatorFacade, tím předá modulu referenci na fasádu Simulátoru a na oplátku modul vrátí Simulátoru referenci na sebe zavoláním na rozhraní ISimulatorFacade metodu RegisterSimulatorPhysicalModel() s parametrem IPhysicalModulFacade. Modul 4ML se navzájem zreferencuje s WeatherSensor a s MPC, viz článek výše Popis komunikace mezi komponentami a dále spolu podle potřeby komunikují. Simulátor pomocí rozhraní IPhysicalModulFacade zavolá metodu UpdateBuildingModel() s parametrem String a tím předá modulu serializovaná data obsahující parametry budovy. S tímto parametrem je volána metoda CreateModelData() třídy PhysicalModule. PhysicalModule zavolá metodu getweatherdata(), čímž získá údaje o počasí. Vytvoří fyzikální model ModelDataDTO, který použije jako parametr volané metody PredictControl() třídy MPC. PhysicalModul obdrží data o predikované teplotě, kterou nastaví do objektu BuildingDTO, který předá třídě PhysicalModulFacade, který ho dále serializovaný odešle Simulátoru zavoláním metody UpdateTemperatureSettings() s parametrem String. Dále modul pokračuje od metody GetWeatherData() až po UpdateTemperatureSettings() v cyklu pro aktualizaci teplot a odesílání Simulátoru, dokud Simulátor nepřestane žádat predikci teplot metodou Interrupt(). 21