1 / 21

probléma formálisan specifikált:

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.

iolana
Download Presentation

probléma formálisan specifikált:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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). Verifikáció (formális igazolás) Specifikáció (igazolt, bebizonyított) Kifejezés, típusos kifejezés. A probléma formálisan leírt megoldás (program)

  13. Típusos kifejezések: • Alaptípusok: integer, boolean, character. Típus: <név> = <értékek halmaza>; Boolean = {true, false}; integer = {...-1,0,+1,....}; • Származtatott típusok (magasabb típusok): n1; T1...Tn 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: T1...Tn 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: T1...Tn 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 s1,...,sn rendre a T1,...,Tn típusú kifejezések, és op egy • konstans a T1...Tn T típusból, akkor op(s1,...,sn) egy T • típusú kifejezés. • Ha s1,...,sn rendre a T1,...,Tn típusú kifejezések, és  egy tömb • a T1...Tn T típusból, akkor [s1,...,sn] egy T típusú kifejezés. • Ha B egy bool típusú kifejezés, továbbá s1 és s2 pedig T típusú • kifejezések, akkor • if B then s1else s2fi • 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: T1...Tn 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.

More Related