ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ
FAKULTA STROJNÍ
ÚSTAV PŘÍSTROJOVÉ A ŘÍDICÍ TECHNIKY
ODBOR AUTOMATICKÉHO ŘÍZENÍ A INŽENÝRSKÉ INFORMATIKY
Aplikace objektově orientovaných metod pro analýzu a návrh
řídicích systémů složitých komplexů
Prof. Jiří Bíla
Vývoj přístupů k analýze složitých komplexů.
Stručný nástin vývoje OMT a UML
Model Entity – RelationshipCodd et al. 1990
statické vztahy mezi entitami
OOACoad, Yourdon 1990
Objektově orientovaná analýza
DFDDeMarco 1978Diagram toku dat
State diagramsWard, Mellor 1985
Stavové diagramy
OOSEJacobson 1994
Zavedení Use-Case
OMTRumbough et al. 1991
Objektová modelovací technika
Object-oriented designBooch 1991
komponentový diagram, diagram nasazení
Unified Method 0.8Rumbaugh, Booch 1995
UML 0.9 - 1996
UML 1.0 - 1997OMG – ObjectManagement Group
UML 2.0 - 2004
Základní pojmy OMT a UML – Objektový diagram
ASprávce SW
(from Use Case View)
OBezpečnostní_systém
SOS_11 : TSOS_skříňSOS_12 : TSOS_skříňSOS_13 : TSOS_skříňSOS_14 : TSOS_skříňSOS_15 : TSOS_skříňSOS_16 : TSOS_skříňSOS_17 : TSOS_skříňSOS_21 : TSOS_skříňSOS_22 : TSOS_skříňSOS_23 : TSOS_skříňSOS_24 : TSOS_skříňSOS_25 : TSOS_skříňSOS_26 : TSOS_skříňSOS_27 : TSOS_skříň
Vytvoř_skříň()Smaž_skříň()Uprav_skříň()
1
1
1
1Edituje
AVnitřní_TV_okruh
(from Use Case View)
AOsoba_v_tunelu
(from Use Case View)
TMonitor
Světelná_houkačka : boolean = FalseAkustická_houkačka : boolean = False
Zapnout_houkačky()Vypnout_houkačky()Zobraz_Dveře()Zobraz_Přítomnost()Zobraz_tlačítko()
AŘízení_dopravy
ODatabáze
Datum : DateČas : TimeUdálost : stringObsluha : string
Zapiš_událost()
11
11
má data uložena v
AHasiči
(from Use Case View)
TSOS_skříň1
Tlačítko_Policie : TTlačítkoTlačítko_Sanita : TTlačítkoTlačítko_Hasiči : TTlačítkoTlačítko_Odtah : TTlačítkoČidlo_Dveře : TČidloČidlo_Přítomnost : TČidloStav_majáku : boolean = FalseOznačení_skříně : stringÚsek : stringUdálost : stringHŘDÚ : TVelínSAT : TVelínATM : TVelín
Stisk_tlačítka()Otevření_dveří()Přítomnost()Zapnout_maják()Vypnout_maják()
1 141 14
je tvořena
114
114
Ak tivuje k ameru
1
1
1
1
používá SOS sk říň
AObsluha
TVelín
Storno : TTlačítkoOK : TTlačítkoZastavit_VTT : TTlačítkoZastavit_ZTT : TTlačítkoMonitor : TMonitor
Stisk_Storno()Stisk_OK()Stisk_Zastavit_VTT()Stisk_Zastavit_ZTT()
11
11
Zobrazuje se na1
3
1
3
Zastavuje
1
3
1
3
Uk ládá do databáze
3
1
3
1
Přivolává
3
14
3
14Signalizuje stav
1
1
1
1 obsluhuje
Základní pojmy OMT a UML – Stavový diagram
SUdálost_v_SOS_skříni
entry: ^Monitor.Zapnout_houkačkyentry: ^Monitor.Zobraz_událost(Událost_v_SOS_skříni)
SKvitování
entry: ^Monitor.Vypnout_houkačkyentry: ^ODatabáze.Zapiš_událost("Kvitace")
SZastavení_ZTT
entry: ^Monitor.Vypnout_houkačkyentry: ^ODatabáze.Zapiš_událost(Událost_v_SOS_skříni)entry: ^AŘízení_dopravy.Zastavení_ZTT
SZastavení_VTT
entry: ^Monitor.Vypnout_houkačkyentry: ^ODatabáze.Zapiš_událost(Událost_v_SOS_skříni)entry: ^AŘízení_dopravy.Zastavení_VTT
SStrorno_poplachu
entry: ^Monitor.Vypnout_houkačkyentry: ^ODatabáze.Zapiš_událost("Storno")
SZastavení_VTT
entry: ^Monitor.Vypnout_houkačkyentry: ^ODatabáze.Zapiš_událost(Událost_v_SOS_skříni)entry: ^AŘízení_dopravy.Zastavení_VTT
SZastavení_ZTT
entry: ^Monitor.Vypnout_houkačkyentry: ^ODatabáze.Zapiš_událost(Událost_v_SOS_skříni)entry: ^AŘízení_dopravy.Zastavení_ZTT
Stisk_OK
Stisk_Zastavit_ZTTStisk_Zastavit_VTT
Stisk_Storno
Událost_v_SOS_skříni
Událost_v_SOS_skříni
Stisk_Zastavit_VTT
Stisk_Zastavit_ZTT
•Z pohledu analytika – „Je splněno zadání?“
•Z pohledu zadavatele – „Plní systém požadovanou funkci?“
•Z pohledu experta – „Dokáži se orientovat v modelech, abych je mohl zkontrolovat?“
•Z pohledu implementátora – „Jsou modely napsány korektně pro implementaci?“
•Z pohledu optimálnosti – „Jsou modely nejlepší z možných (srovnatelných)?“
Korektnost návrhů
Aplikace OMT a UML na analýzu složitého komplexu.
Automobilový tunel Mrázovka – řídicí software
Přístupy k metodě hodnocení vytvořených modelů v UML.
HODNOCENÍ VARIANT
Přehlednost a jednoduchost
Přehlednost a jednoduchost modelů - Substrátně strukturní entropie
u1
u2 u3
u4 u5
u7
u6
u8
a1 a2
a3 a3
a5
a4
a7a6
n
k
m
i
ikik
n
e
n
esH
1 1 1ln
1
8
1
7
1 18ln
18k i
ikik eesH
07
1ln
7
1
7
1ln
7
10
7
1ln
7
1
7
1ln
7
1
7
2ln
7
2
7
1ln
7
1
7
1ln
7
1
sH
7
2ln
7
2
7
1ln
7
6sH
358,0668,1 sH
0259,2sH
Kde: n – počet uzlů, m – počet vazeb eik – počet dvojic vázaných vztahem i, který
vychází z uzlu k
Objektové diagramy - Substrátně strukturní entropie
ASprávce SW
(from Use Case View)
OBezpečnostní_systém
SOS_11 : TSOS_skříňSOS_12 : TSOS_skříňSOS_13 : TSOS_skříňSOS_14 : TSOS_skříňSOS_15 : TSOS_skříňSOS_16 : TSOS_skříňSOS_17 : TSOS_skříňSOS_21 : TSOS_skříňSOS_22 : TSOS_skříňSOS_23 : TSOS_skříňSOS_24 : TSOS_skříňSOS_25 : TSOS_skříňSOS_26 : TSOS_skříňSOS_27 : TSOS_skříň
Vytvoř_skříň()Smaž_skříň()Uprav_skříň()
1
1
1
1Edituje
AVnitřní_TV_okruh
(from Use Case View)
AOsoba_v_tunelu
(from Use Case View)
TMonitor
Světelná_houkačka : boolean = FalseAkustická_houkačka : boolean = False
Zapnout_houkačky()Vypnout_houkačky()Zobraz_Dveře()Zobraz_Přítomnost()Zobraz_tlačítko()
AŘízení_dopravy
ODatabáze
Datum : DateČas : TimeUdálost : stringObsluha : string
Zapiš_událost()
11
11
má data uložena v
AHasiči
(from Use Case View)
TSOS_skříň1
Tlačítko_Policie : TTlačítkoTlačítko_Sanita : TTlačítkoTlačítko_Hasiči : TTlačítkoTlačítko_Odtah : TTlačítkoČidlo_Dveře : TČidloČidlo_Přítomnost : TČidloStav_majáku : boolean = FalseOznačení_skříně : stringÚsek : stringUdálost : stringHŘDÚ : TVelínSAT : TVelínATM : TVelín
Stisk_tlačítka()Otevření_dveří()Přítomnost()Zapnout_maják()Vypnout_maják()
1 141 14
je tvořena
114
114
Ak tivuje k ameru
1
1
1
1
používá SOS sk říň
AObsluha
TVelín
Storno : TTlačítkoOK : TTlačítkoZastavit_VTT : TTlačítkoZastavit_ZTT : TTlačítkoMonitor : TMonitor
Stisk_Storno()Stisk_OK()Stisk_Zastavit_VTT()Stisk_Zastavit_ZTT()
11
11
Zobrazuje se na1
3
1
3
Zastavuje
1
3
1
3
Uk ládá do databáze
3
1
3
1
Přivolává
3
14
3
14Signalizuje stav
1
1
1
1 obsluhuje
Objektové diagramy - Substrátně strukturní entropie
ASprávce SW
(from Use Case View)
OBezpečnostní_systém
SOS_11 : TSOS_skříňSOS_12 : TSOS_skříňSOS_13 : TSOS_skříňSOS_14 : TSOS_skříňSOS_15 : TSOS_skříňSOS_16 : TSOS_skříňSOS_17 : TSOS_skříňSOS_21 : TSOS_skříňSOS_22 : TSOS_skříňSOS_23 : TSOS_skříňSOS_24 : TSOS_skříňSOS_25 : TSOS_skříňSOS_26 : TSOS_skříňSOS_27 : TSOS_skříň
Vytvoř_skříň()Smaž_skříň()Uprav_skříň()
1
1
1
1Edituje
AVnitřní_TV_okruh
(from Use Case View)
AOsoba_v_tunelu
(from Use Case View)
TMonitor
Světelná_houkačka : boolean = FalseAkustická_houkačka : boolean = False
Zapnout_houkačky()Vypnout_houkačky()Zobraz_Dveře()Zobraz_Přítomnost()Zobraz_tlačítko()
AŘízení_dopravy
ODatabáze
Datum : DateČas : TimeUdálost : stringObsluha : string
Zapiš_událost()
11
11
má data uložena v
AHasiči
(from Use Case View)
TSOS_skříň1
Tlačítko_Policie : TTlačítkoTlačítko_Sanita : TTlačítkoTlačítko_Hasiči : TTlačítkoTlačítko_Odtah : TTlačítkoČidlo_Dveře : TČidloČidlo_Přítomnost : TČidloStav_majáku : boolean = FalseOznačení_skříně : stringÚsek : stringUdálost : stringHŘDÚ : TVelínSAT : TVelínATM : TVelín
Stisk_tlačítka()Otevření_dveří()Přítomnost()Zapnout_maják()Vypnout_maják()
1 141 14
je tvořena
114
114
Ak tivuje k ameru
1
1
1
1
používá SOS sk říň
AObsluha
TVelín
Storno : TTlačítkoOK : TTlačítkoZastavit_VTT : TTlačítkoZastavit_ZTT : TTlačítkoMonitor : TMonitor
Stisk_Storno()Stisk_OK()Stisk_Zastavit_VTT()Stisk_Zastavit_ZTT()
11
11
Zobrazuje se na1
3
1
3
Zastavuje
1
3
1
3
Uk ládá do databáze
3
1
3
1
Přivolává
3
14
3
14Signalizuje stav
1
1
1
1 obsluhuje
Objektové diagramy - Substrátně strukturní entropie
TVelín
Storno : TTlačítkoOK : TTlačítkoZastavit_VTT : TTlačítkoZastavit_ZTT : TTlačítkoMonitor : TMonitor
Stisk_Storno()Stisk_OK()Stisk_Zastavit_VTT()Stisk_Zastavit_ZTT()
TVelín
Storno : TTlačítkoOK : TTlačítkoZastavit_VTT : TTlačítkoZastavit_ZTT : TTlačítkoMonitor : TMonitor
Stisk_Storno()Stisk_OK()Stisk_Zastavit_VTT()Stisk_Zastavit_ZTT()
SAT
ATM PČR
Objektové diagramy - Substrátně strukturní entropie
SAT
ATM PČR
Stavové diagramy - Substrátně strukturní entropie
SUdálost_v_SOS_skříni
entry: ^Monitor.Zapnout_houkačkyentry: ^Monitor.Zobraz_událost(Událost_v_SOS_skříni)
SKvitování
entry: ^Monitor.Vypnout_houkačkyentry: ^ODatabáze.Zapiš_událost("Kvitace")
SZastavení_ZTT
entry: ^Monitor.Vypnout_houkačkyentry: ^ODatabáze.Zapiš_událost(Událost_v_SOS_skříni)entry: ^AŘízení_dopravy.Zastavení_ZTT
SZastavení_VTT
entry: ^Monitor.Vypnout_houkačkyentry: ^ODatabáze.Zapiš_událost(Událost_v_SOS_skříni)entry: ^AŘízení_dopravy.Zastavení_VTT
SStrorno_poplachu
entry: ^Monitor.Vypnout_houkačkyentry: ^ODatabáze.Zapiš_událost("Storno")
SZastavení_VTT
entry: ^Monitor.Vypnout_houkačkyentry: ^ODatabáze.Zapiš_událost(Událost_v_SOS_skříni)entry: ^AŘízení_dopravy.Zastavení_VTT
SZastavení_ZTT
entry: ^Monitor.Vypnout_houkačkyentry: ^ODatabáze.Zapiš_událost(Událost_v_SOS_skříni)entry: ^AŘízení_dopravy.Zastavení_ZTT
Stisk_OK
Stisk_Zastavit_ZTTStisk_Zastavit_VTT
Stisk_Storno
Událost_v_SOS_skříni
Událost_v_SOS_skříni
Stisk_Zastavit_VTT
Stisk_Zastavit_ZTT
Stavové diagramy - Substrátně strukturní entropie
Substrátně strukturní entropie objektových modelů
1
1ln
1
nn
msHS
kde n – počet všech stavů v celém modelu (včetně Start a Stop stavů), m – počet všech stavových přechodů
1001
m
nsH R [%]
n
k
m
i
ikik
n
e
n
esH
1 1 1ln
1
Objektové / třídové diagramy
kde n – počet všech tříd / objektů v celém modelu, m – počet všech vazeb (asociací, agregací, …) eik – počet dvojic tříd / objektů vázaných vazbou i, která vychází ze třídy / objektu k
Stavové diagramy
Optimálnost
Optimálnost modelů - Modifikovaná Míra Explanační Koherence
Explanační koherence (H. Takeda 1994):
12
eeN
NEC ij
kde e je celkový počet specifikací (#S), N je celkový počet vrcholů důkazového grafu a Nij je počet vrcholů sk v důkazovém grafu, pro který existuje sekvence
přímých hran z vrcholu sk do vrcholu si a zároveň z vrcholu sk do vrcholu sj (vrcholy
sk, si, sj jsou části specifikace)
Abduktivní přístup:
SKDS Na dané znalosti K aplikujeme návrh řešení DS. Výsledek porovnáme s požadavky S. Postupnými kroky za neustálého rozšiřování znalostí K dosáhneme daných požadavků S.
Optimálnost modelů - Modifikovaná Míra Explanační Koherence
Množina Asociovaných Znalostí X
Množina X Asociovaných Znalostí je získána jako výsledek Dotazovací fáze – hledání chyb ve struktuře UML modelu a hledání nadbytečných informací v tomto modelu. K této množině X definujme další dvě množiny: … množina koeficientů důležitosti; … množina koeficientů objektové kategorie
Množina Koeficientů důležitosti
Tyto koeficienty jsou získány libovolnou expertní metodou při zachování dvou podmínek: čím větší „důležitost“, tím vyšší je hodnota ; hodnoty koeficientů musí být v intervalu 1, 2.
Množina Koeficientů objektové kategorie
Hodnota koeficientů j je dán konceptuální kategorizací:
0 = { (třída) = 1,75; (objekt) = 1,65; (vazba) = 1,5; (závislost) = 1,4; (atribut) = 1,3; (operace) = 1,2 }
Kontext návrhového problému
XCNX
Příklad: CNX = { (SOS_Skříň; 1,3;1,75); (Hasiči; 1,2;1,3); …
Optimálnost modelů - Modifikovaná Míra Explanační Koherence
Závislost (Nezávislost) Asociovaných Znalostí
Definice 1.: Asociované znalosti x1 , x2 jsou závislé (DNT(x1,x2)), jestliže splňují jednu (nebo obě) z následujících podmínek:
- Změna (variace) x1 je spojena se změnou x2 .
- Použití x1 v řešení problému vylučuje použití x2 .
V této práci je přitom uvažován pouze kvalitativní aspekt vztahu DNT, nikoli jeho vliv.
Definice 2.: Asociované znalosti x1, x2 , které nejsou závislé, jsou uvažovány jako nezávislé (IND(x1,x2)).
Vztah DNT (resp. IND) je vyjádřen pomocí kvalitativní matice MQ typu:
X1 X2 X3 X4 X5
X1 1 1 1 0
X2 1 0 0
X3 1 0
X4 1
X5
Pole 1 zde znamenají, že znalost xi je závislá na znalosti xj
--
--
-
Optimálnost modelů - Modifikovaná Míra Explanační Koherence
Modifikovaná Míra Explanační Koherence
maxmax, 1
2
NNEC ee
kjM
kde indexy (j,k) odpovídají prvku 1 v Kvalitativní Matici MQ (tyto 1 reprezentují
páry (xj,xk), každý s hodnotou (j, j), (k, k).
Koeficienty (e, e) jsou ty větší z obou). N je počet X.
Maximální a Relativní Modifikovaná Míra Explanační Koherence
ECR = ECM / ECMAX
Optimálnost modelů - Modifikovaná Míra Explanační Koherence
Optimálnost modelů - Modifikovaná Míra Explanační Koherence
Optimálnost modelů - Modifikovaná Míra Explanační Koherence
Optimálnost modelů - Modifikovaná Míra Explanační Koherence
Optimálnost modelů - Modifikovaná Míra Explanační Koherence
Optimálnost modelů - Modifikovaná Míra Explanační Koherence
Optimálnost modelů - Modifikovaná Míra Explanační Koherence
TŘízení_Dopravy
TŘízení_Ventilace
TŘízení_Rozhlas
TŘízení_TVOkruh
Technologie
Pozar_ZTT()Pozar_VTT()Zobraz_kameru()
<<Interface>>
Signalizace_dopravě
Signalizace_ventilaci
Signalizace_rozhlasu
Signalizace_TV
TVelín_PožárKomunik ace
TŘízení_Dopravy
TŘízení_Ventilace
TŘízení_Rozhlas
TŘízení_TVOkruh
IDoprava
Pozar_ZTT()Pozar_VTT()
<<Interface>>Signalizace_dopravě
IVentilace
Pozar_ZTT()Pozar_VTT()
<<Interface>>Signalizace_ventilaci
IRozhlas
Pozar_ZTT()Pozar_VTT()
<<Interface>>Signalizace_rozhlasu
ITV_dohled
Pozar_ZTT()Pozar_VTT()Zobraz_kameru()
<<Interface>>
Signalizace_TV
TVelín_Požár
Uzavírání_tunelu
Ak tivace_větrání
Ak tivace_rozhlasu
Zaměření_k amer
a)
b)
TŘízení_Dopravy
TŘízení_Ventilace
TŘízení_Rozhlas
TŘízení_TVOkruh
TVelín_Požár
Optimálnost modelů - Modifikovaná Míra Explanační Koherence X X01 X02 X03 X04 X05 X06 X07 X08 X09 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22
TVelín_Požár 1,3 1,75 X01 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0IDoprava 1,3 1,65 X02 - 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0
Požár_ZTT 1,3 1,20 X03 - 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0Požár_VTT 1,3 1,20 X04 - 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0
IVentilace 1,3 1,65 X05 - 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0Požár_ZTT 1,3 1,20 X06 - 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0Požár_VTT 1,3 1,20 X07 - 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0
IRozhlas 1,3 1,65 X08 - 1 1 0 0 0 0 0 0 1 0 0 0 1 0Požár_ZTT 1,3 1,20 X09 - 0 0 1 0 0 0 0 1 0 0 0 1 0Požár_VTT 1,3 1,20 X10 - 0 0 1 0 0 0 1 0 0 0 1 0ITV_dohled 1,3 1,65 X11 - 1 1 1 0 0 0 1 0 0 0 1Požár_ZTT 1,3 1,20 X12 - 0 0 0 0 0 1 0 0 0 1Požár_VTT 1,3 1,20 X13 - 0 0 0 0 1 0 0 0 1
Zobraz_kameru 1,3 1,20 X14 - 0 0 0 1 0 0 0 1Uzavírání_tunelu 1,3 1,50 X15 - 0 0 0 0 0 0 0Aktivace_větrání 1,3 1,50 X16 - 0 0 0 0 0 0
Aktivace_rozhlasu 1,3 1,50 X17 - 0 0 0 0 0Zaměření_kamer 1,3 1,50 X18 - 0 0 0 0
Signalizace_dopravě 1,3 1,50 X19 - 0 0 0Signalizace_ventilaci 1,3 1,50 X20 - 0 0Signalizace_rozhlasu 1,3 1,50 X21 - 0
Signalizace_TV 1,3 1,50 X22 -
2454,005,1051
96,1282
75,13,112222
65,13,165,13,175,13,175,13,12
1
2
maxmax
NN
EC eeM
8709,005,1051
67,4572
75,13,112222
65,13,165,13,175,13,175,13,12
1
2
maxmax
,,
NN
EC kjkjMAX
%18,281008709,0
2454,0100
MAX
MR EC
ECEC
Optimálnost modelů - Modifikovaná Míra Explanační Koherence X X01 X02 X03 X04 X05 X06 X07 X08 X09 X10
TVelín_Požár 1,3 1,75 X01 - 1 1 1 1 1 0 0 0 0ITechnologie 1,3 1,65 X02 - 1 1 1 1 1 1 1 1Požár_ZTT 1,3 1,20 X03 - 0 0 1 1 1 1 1Požár_VTT 1,3 1,20 X04 - 0 1 1 1 1 1
Zobraz_kameru 1,3 1,20 X05 - 1 0 0 0 1Komunikace 1,3 1,50 X06 - 0 0 0 0
Signalizace_dopravě 1,3 1,50 X07 - 0 0 0Signalizace_ventilaci 1,3 1,50 X08 - 0 0Signalizace_rozhlasu 1,3 1,50 X09 - 0
Signalizace_TV 1,3 1,50 X10 -
5073,075,204
94,512
75,13,111010
65,13,165,13,175,13,175,13,12
1
2
maxmax
NN
EC eeM
8895,075,204
07,912
75,13,111010
65,13,165,13,175,13,175,13,12
1
2
maxmax
,,
NN
EC kjkjMAX
%03,571008895,0
5073,0100
MAX
MR EC
ECEC
Software podporující aplikaci metod SSE a ECm.
Program UMLEvaluation - screenshots