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
4ML
Specifikace softwarových požadavků
Obsah Slovníček 1. Úvod 1.1 Účel projektu 1.2 Jak číst 1.3 Rozsah projektu 1.4 Reference & odkazy 2. Souhrnný popis 2.1 Vlastnosti produktu 2.2 Třídy a charakteristiky uživatelů 2.3 Provozní prostředí 2.4 Omezení pro návrh a implementaci 2.5 Uživatelská dokumentace 2.6 Předpoklady a závislosti 3.Systémové funkce 3.1 Načtení parametrů budovy 3.2 Načtení parametrů místností 3.3 Načtení aktuálních dat o počasí 3.4 Odhad vývoje teploty v místnostech 3.5 Odeslání výsledků simulátoru 4. Aplikační rozhraní 4.1 Uživatelské rozhraní (GUI) 4.2 Hardwarová rozhraní 4.3 Softwarová rozhraní 4.4 Komunikační rozhraní 4.4.1 Rozhraní pro komunikaci se senzorem venkovního klima 4.4.2 Rozhraní pro komunikaci s mateřskou aplikací 4.4.2 Rozhraní pro komunikaci s komponentou pro výpočet a predikci teplot 5. Další, nefunkční požadavky 5.1 Požadavky na výkon 5.2 Bezpečnostní požadavky 5.3 Atributy kvality software 5.4 Lokalizace 5.5 Další požadavky 6. Analýza 6.1 Business process model 6.2. Use-Case model 7. Návrh 7.1 Activity Diagram 7.2 Domain Object Model 7.3 Popis komunikace mezi jednotlivými komponentami 7.4 Deployment Model 7.5 Sekvenční Diagram
2
3 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 7 8 8 8 8 8 8 9 11 12 12 12 12 12 12 13 13 14 16 16 17 18 20
21
4ML
Specifikace softwarových požadavků
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
4ML
Specifikace softwarových požadavků
SLOVNÍČEK MPC
Model Predictive Control – model prediktivního řízení
4ML
Název projektu týmu 4ML
modul
Téz plugin. Přídává funkcionalitu do aplikace, kterou by aplikace nebyla schopná realizovat
Wespon
Název týmu pracujicí na projektu Simulátor budov
Simulátor budov
Název aplikace, do které bude možno začlenit 4ML projektech
SW
Software
PC
Personal Computer – osobní počítač
.NET framework
Softwarová struktura obsahující vše potřebné ke spuštění aplikací vyvinutých v prostředí Microsoft.NET
CPU
Central Processing Unit - procesor
RAM
Random Access Memory – Pamět s přímým přístupem
HDD
Hard disk drive – pevný disk
Interface
Rozhraní
GUI
Graphical User Interace – grafické uživatelské rozhraní
C#
Objektový programovací jazyk
OS
Operační systém
XML
Extensible Markup Language - rozšiřitelný značkovací jazyk
GNU
General Public Licence – název licence, pod kterou je projekt vyvíjen
Use Case
Případ použití
UTF-8
UCS Transformation Format - značková sada
API
Aplication Programming Interface – rozhraní pro programování aplikací
HW
Hardware
4
4ML
Specifikace softwarových požadavků
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
4ML
Specifikace softwarových požadavků
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
4ML
Specifikace softwarových požadavků
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. Priorita: 1 3.4.2
Funkční požadavky 7
je
4ML
Specifikace softwarových požadavků
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
4ML
Specifikace softwarových požadavků
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
4ML
Specifikace softwarových požadavků
10
4ML
Specifikace softwarových požadavků Rects (Rect)*> Rect (Rotation)> Rect objectId ID #REQUIRED> Rect x CDATA #REQUIRED> Rect y CDATA #REQUIRED>
EMPTY> width CDATA #REQUIRED> height CDATA #REQUIRED> depth CDATA #REQUIRED> EMPTY> x CDATA #REQUIRED> y CDATA #REQUIRED> z CDATA #REQUIRED>
]> ]> ]>
11
4ML
Specifikace softwarových požadavků
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
4ML
Specifikace softwarových požadavků
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 Workflow s
Parametry budov y a j ej ích místností
Aktuální teploty v místnostech
Načtení dat ze simulátoru
Aktální data o počasí
Odhad v ýv oj e 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
4ML
Specifikace softwarových požadavků
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
4ML
Specifikace softwarových požadavků
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
4ML
Specifikace softwarových požadavků
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
4ML
Specifikace softwarových požadavků
7.2 Domain Object Model Tento diagram ukazuje jednotlivé balíčky modulu 4ML a jejich vzájemné závislosti. c la s s D o m a in O b j e ... A p p C o d e .S im u l a to r
« i m p o rt» A p p C o d e .P h y s ic a lM o d e l
A p p C o d e .M P C
A p p C o d e .W e a th e rS e n s o r « i m p o rt»
« i m p o rt»
« im p o rt»
« im p o rt» « i m p o rt»
« i m p o rt»
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
4ML
Specifikace softwarových požadavků
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 + + +
«interface» ISimulatorFacade
Interrupt() : void RegisterSimulator(ISimulatorFacade) : void UpdateBuildingModel(String) : void
+ +
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
4ML
Specifikace softwarových požadavků
class ClassDiagram «interface» IModulFacade + +
RegisterModul(IModelPredictiveFacade) : void UpdateBuildingData(Building, ModelDataDTO) : void
«interface» IModelPredictiv eFacade + +
19
PredictModel(Buidling, ModelDataDTO) : void RegisterModelPredictive(IModulFacade) : void
4ML
Specifikace softwarových požadavků
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
<<Weather Sensor driver >>
«device» WeatherSensor
PhysicalModule 4ML
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
4ML
Specifikace softwarových požadavků
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 Uživatel
Physi calModulFacade
PhysicalModule
WeatherSensorFacade
ModelPredictiveFacade
WeatherFacade
ModulFacade
spustí()
RegisterSimulator(ISimulatorFacade)
RegisterPhysicalModul(IPhysicalModulFacade)
Všechny komponenty se zreferencují jakmile Simulátor bude požadovat referenci na modul 4ML
Regi sterModul(IWeatherSensorFacade) RegisterWeatherModul(IWeatherFacade)
RegisterModul(IModelPredictiveFacade) RegisterModelPredicti ve(IModulFacade) UpdateBuildi ngModel(String)
CreateModelData(BuildingDTO) GetWeatherData()
loop
vraci WeatherDataDT O()
[until simulator stops running] [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