Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Probléma formálisan specifikált: valós világ (domai) (hibás eredmény) ködös határ (félreértés, hiba) formális világ (megoldás) A specifikáció csak nagyvonalakban.

Hasonló előadás


Az előadások a következő témára: "Probléma formálisan specifikált: valós világ (domai) (hibás eredmény) ködös határ (félreértés, hiba) formális világ (megoldás) A specifikáció csak nagyvonalakban."— Előadás másolata:

1 probléma formálisan specifikált: valós világ (domai) (hibás eredmény) ködös határ (félreértés, hiba) formális világ (megoldás) A specifikáció csak nagyvonalakban írja le a valóságos problémát. A szoftver fejlesztőnek meg kell értenie a felhasználó problémáját.

2 Probléma dekompozíció és struktúrák leírása. A valóságos problémákat egyszerűbb részproblémákra kell felbontani. Rendszerint a problémának és a részproblémának is ugyan azok a doménjei: Azonos világban játszódnak le. Ezt a közös domént azonban a különböző részproblémákban különböző szempontok szerint vizsgáljuk és írjuk le. Ennek a probléma dekomponálásnak a hatását illusztrálja a következő példa.

3 1. Példa egy öntöző rendszer zsilip problémája. Egy kis zsilipről van szó, ahol a zsilipkapu felemelkedik és leesik. Ezt egy számítógép vezérli. Követelmény. Minden órában a zsilipkapu legyen nyitva 10 percig és máskor pedig legyen csukva. A zsilipkaput egy forgó vertikális csavarral emelik fel ill. le. Az emelőt egy kis motor húzza.

4 A motort vezérlő elektromos jelek: - be, - ki, - óramutató járásának megfelelő irány, - óramutató járásával ellentétes irány. A kapu útjának a tetején és az alján van egy-egy érzékelő: top érzékelő: a kapu teljesen felemelkedett, (elektromos jel); bottom érzékelő: a kapu teljesen leereszkedett, (elektromos jel); A motor vezérléséhez a számítógépet 4 pulzusvonal köti össze a motorral és 2 állapot vonal a kapu szenzorokkal. Megkövetelt jelenségek: a kapu nyitva, a kapu csukva. Specifikációs jelenségek: motor vezérlő jelei, és a szenzorok állapotai.

5 A "világunk" (domain) tulajdonságai, amiket a gép megkonstruálásánál figyelembe kell venni: A motor az állapotának a megváltozásával válaszol a hozzá érkező külső jelre. A zsilip mechanikus része az állapotát (emelkedik, esik), aszerint változtatja, hogy a motor áll, vagy egyik vagy másik irányba forog. A szenzorok állapotai és a kapu vertikális pozíciói közötti kapcsolatok. A zsilip mechanikus részeinek az állapot változásait (áll, emelkedik, süllyed) az vezérli, hogy a motor áll, vagy forog és milyen a forgási iránya. A vezérlő gép specifikációjának ezeket formálisan kell rögzítenie.

6 A kapu állapotai: nyitva, zárva, emelkedik, süllyed. Specifikációs jelenségek. (A kapu állapotai és a motor kontrol jelei, és a top és bottom szenzor jelei közötti kapcsolat). Kapu emelkedik:ha a motor elindul az óramutató járásának megfelelő irányban. Kapu nyitva:ha a fenti irányú haladásnál a top szenzor jelzést ad. Kapu süllyed:ha a motor az óramutató járásával ellenkezőleg irányban forog Kapu zárva:ha az ellenkező irányú haladásnál a bottom szenzor jelt ad.

7 Nyilvánvaló ellentmondások kezelése. A fizikai eszközök azonban nem olyan megbízhatóak, ahogyan mi gondoljuk. Pl.: Elszakadhat a kábel. Leéghet a motortekercs. A rozsda tönkreteheti a vasból készült alkatrészeket. Stb. A vezérlő gép viselkedésénél ezeket mind figyelembe kell venni, legalább is a motor megállásainak okai közé ezeket be kell venni.

8 Lehetséges hibás jelenségek még: A top és bottom szenzor egyaránt jelez. A motor emeli fel a kaput több mint n másodperce és a Top szenzor még mindig nem jelez. A motor engedi le a kaput több mint m másodperce és a Top szenzor még mindig jelez. A motor emeli fel a kaput több mint x másodperce és a Bottom szenzor még mindig jelez. A motor engedi le a kaput több mint y másodperce és a Bottom szenzor még mindig nem jelez. Kezelés: auditáló program.

9 Auditháló program közös domain esetén. Az uditháló program konkurens módon fut magával a vezérlő programmal. A közös erőforrásokhoz való hozzáférésnél kölcsönös kizárást kell biztosítani. A két program egymással kommunikál. Hiba detektálása esetén az auditálható program jelzést küld a vezérlő gépnek. A vezérlő gép az auditháló program jelzésére leállítja a motort és előírt módon tevékenységeket indít el.

10 Objektumok azonosítási problémái. Fontos különbséget tenni: Követelmény jelenségeinek leírásában szereplő azonosítók; (A lift esetében: at(f), fel, le); A specifikációs jelenségek leírásában szereplő azonosítók; (sensor(f) állapotai a lift domain esetén), között. (Később: f az emelet azonosítója volt, amit az informális leírásokban is használtunk). Elektromos vezeték szakadás detektálása és nem kellő megerősítő ellenőrzése számos repülőgép szerencsétlenség okozója volt. (Pl. Elégett a vezetéket detektáltak pedig csak dohányfüst volt).

11 A számítógépek gyakran behoznak egy komplexitást a probléma világába, amellyel interakcióba lépnek. Ennek gyökere: 1. Magának a szoftvernek a bonyolultsága. 2. A probléma világával való együttműködés bonyolultsága. 3. Ezt a bonyolultságot a régi rendszerekben három tényező kontrol alatt tartotta. - Maga a szoftver és annak kézi kezelése kisebb és egyszerűbb volt, mint a mai rendszerek. - Nem volt lehetőség, talán igény sem rendszerek ambíciózus integrálása. - A rendszerek működtetése emberi közreműködésre hagyatkozott. (az operátor, közbeavatkozott, ha abszurd viselkedést látott). Számos alkalmazásban megszűnt ez a biztosíték. Ma a felelősség nagy része az informatikában kutatók és a szoftver fejlesztő vállán nyugszik.

12 A géppel történő megoldás specifikációja. (formális leírás). Specifikáció (igazolt, bebizonyított) A probléma formálisan leírt megoldás (program) Kifejezés, típusos kifejezés. Verifikáció (formális igazolás)

13 Típusos kifejezések: Alaptípusok: integer, boolean, character. Típus: = ; Boolean = {true, false}; integer = {...-1,0,+1,....}; Származtatott típusok (magasabb típusok): n  1; T 1 ...  T n  T; Argument típusok; érték típus. Argumentumok száma n: a tömb dimenziója.

14 Változók: Egyszerű változók; Tömb változók (array); Konstansok: Alaptípusok konstansok; Összetett típusú (magasabb típusú) konstansok; Reláció ill. függvény: T 1 ...  T n  T; Ha T értéktípus boolean, akkor reláció szimbólum, egyébként függvény szimbólum. Pl. Reláció:  : integer integer  boolean [infix]; Függvény: + : integer integer  integer [infix];

15 A tömb típusának jelölése: Pl. Ha  egy tömb, amelynek típusa: integer  T; az  egy olyan függvényt jelöl, amely az integer értékek halmazáról a T által jelölt értékek halmazára képez le. Ha k  l akkor  [k:l] jelölés az intervallumot {i | k  i  l} -ra korlátozza. Ha t  T; i  integer; akkor pl. t =  [i]; Legyen az  tömb típusa: integer  Boolean  Boolean; Ha i  integer; B  Boolean, akkor pl.  (i,B) egy Boolean kifejezés; B'  Boolean; akkor pl. B'   (i,B); egy értékadás;

16 Adva: T 1 ...  T n  T; típus-szimbólum. Példa: Egy tömb leképezés típus-szimbóluma: integer  boolean  boolean; A  array; k  integer; B, ok  boolean; Ekkor: B  A[k+1,ok] bool kifejezés. A[2  k,  ok] bool kifejezés.

17 Típusos kifejezés rekurzív definíciója: T típus egy egyszerű változója egy T típusú kifejezés. T típus egy egyszerű konstansa egy T típusú kifejezés. Ha s 1,...,s n rendre a T 1,...,T n típusú kifejezések, és op egy konstans a T 1 ...  T n  T típusból, akkor op(s 1,...,s n ) egy T típusú kifejezés. Ha s 1,...,s n rendre a T 1,...,T n típusú kifejezések, és  egy tömb a T 1 ...  T n  T típusból, akkor  [s 1,...,s n ] egy T típusú kifejezés. Ha B egy bool típusú kifejezés, továbbá s 1 és s 2 pedig T típusú kifejezések, akkor if B then s 1 else s 2 fi egy T típusú kifejezés.

18 Kifejezések felírási formái: Infix forma: s1 op s2 ; Pl.+ : integer integer  integer [infix]; i  integer, j  integer, k  integer, k=i+j; Prefix forma: op(s1,s2); op(s); Pl.add: integer integer  integer; i  integer, j  integer, k  integer, k = add(i,j); Pl.  : Boolean  Boolean; i  integer, k  integer, k =  i;

19 Post fix forma: s op; Pl. Faktoriális: ! : nat  nat [postfix]; n  nat; k  nat; n = k!; Kifejezés forma: Pl.: vektor, amelynek elemei integer értékek: Vektor műveletek: _ [ _ ] : vector nat  integer v  vector; k  nat; i  integer; i = v[k];

20 Kifejezések kiértékeléséről: Zárójelezések elkerülése, a műveletek prioritási sorrendje: 1: szorzás , osztás /, moduló; 2: összeadás +, kivonás -; 3: =,,  ; 4: ,  ; 5: , . Például: x+y mod(n) értelmezése: x+(y mod(n)); p  q  r értelmezése: (p  q)  r;

21 Adva: T 1 ...  T n  T; típus-szimbólum. Példa: Egy tömb leképezés típus-szimbóluma: integer  boolean  boolean; A  array; k  integer; B, ok  boolean; Ekkor: B  A[k+1,ok] bool kifejezés. A[2  k,  ok] bool kifejezés.


Letölteni ppt "Probléma formálisan specifikált: valós világ (domai) (hibás eredmény) ködös határ (félreértés, hiba) formális világ (megoldás) A specifikáció csak nagyvonalakban."

Hasonló előadás


Google Hirdetések