NEMFORMÁLIS KÖVETELMÉNYEK ÁTALAKÍTÁSA FORMÁLIS SPECIFIKÁCIÓKKÁ Németh Gábor.

Slides:



Advertisements
Hasonló előadás
Készítette: Kosztyán Zsolt Tibor
Advertisements

T ESZTELÉS. C ÉLJA Minél több hibát találjunk meg! Ahhoz, hogy az összes hibát fölfedezzük, kézenfekvőnek tűnik a programot az összes lehetséges bemenő.
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
Összefoglalás Hardver,szoftver,perifériák Memóriák fajtái
ADATBÁZISOK.
Hatékonyságvizsgálat, dokumentálás
Programozás III OOP ALAPOK.
Rendszerfejlesztés.
Az integrált áramkörök (IC-k) tervezése
Az előadásokon oldandók meg. (Szimulációs modell is tartozik hozzájuk)
Képességszintek.
A Microsoft rendszermenedzsment víziója A Dynamic Systems Initiative A System Definition Model Az üzemeltetésre tervezett szoftverek A SDM jelentősége.
2. Rendszer fejlesztés
3. A programozás eszközei, programozás-technikai alapismeretek
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Műveletek logaritmussal
Programozás alapjai A programozás azt a folyamatot jelenti, melynek során a feladatot a számítógép számára érthető formában írjuk le. C++, Delphi, Java,
Gyűrűk Definíció. Az (R, +, ·) algebrai struktúra gyűrű, ha + és · R-en binér műveletek, valamint I. (R, +) Abel-csoport, II. (R, ·) félcsoport, és III.
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Programozási alapismeretek 8. előadás. ELTE 2/  További programozási tételek További programozási tételek 
13.a CAD-CAM informatikus
Vizuális modellezés Uml és osztálydiagram UML eszközök
Hernyák Zoltán XML validálás.
Szimmetrikus Programozás, AZ ALAPOK
SZÁMÍTÓGÉP ARCHITEKTÚRÁK
WSDL alapismeretek A WSDL (Web Services Description Language – Web szolgáltatások leíró nyelv) egy XML-alapú nyelv a Web szolgáltatások leírására és azok.
Valós számok Def. Egy algebrai struktúra rendezett test, ha test és rendezett integritási tartomány. Def. Egy (T; +,  ;  ) rendezett test felső határ.
6. Előadás Merevítő rendszerek típusok, szerepük a tervezésben
TÉTELEK Info_tech_2012. Simon Béláné. 1. TÉTEL 1.a. A digitális számítógép és a logikai áramkör kapcsolata (6.4.1.) 1.b. Az ÉS logikai áramkörnek adja.
Szoftvertechnológia Bevezetés.
Szoftvertechnológia Rendszertervezés.
ISMERETALAPÚ RENDSZEREK SZAKÉRTŐ RENDSZEREK
Készítette: Kosztyán Zsolt Tibor
P ROGRAMOZÁS C# - BAN Kivételkezelés. P ÉLDA I. Nullával való osztás miatt kapjuk a hibaüzenetet.
Objektumok. Az objektum információt tárol, és kérésre feladatokat hajt végre. Az objektum adatok (attribútumok) és metódusok (operációk,műveletek) összessége,
A problémamegoldás lépései
Projektek monitorozása. Elvek és módszerek
SZÁMÍTÓGÉP ARCHITEKTÚRÁK - 4
Készítette: Gergó Márton Konzulens: Engedy István 2009/2010 tavasz.
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT
Természetes és formális nyelvek Jellemzők, szintaxis definiálása, Montague, extenzió - intenzió, kategóriákon alapuló gramatika, alkalmazások.
3.2. A program készítés folyamata Adatelemzés, adatszerkezetek felépítése Típus, változó, konstans fogalma, szerepe, deklarációja.
Adatbázis-kezelés JAG,
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
VÉGES AUTOMATA ALAPÚ TERVEZÉSI MODELL
ABSZTRAKT TERVEZÉSI MODELL Németh Gábor. 2001Németh Gábor: Számítógép architektúrák 2 ABSZTRAKT SPECIFIKÁCIÓ Az ABSZTRAKT (ALGEBRAI) SPECIFIKÁCIÓs módszernél.
Objektumorientált tervezés Út az objektumig Az objektum fogalma, jellemzői Objektummal kapcsolatos fogalmak Hardverfogalmak A rendszer modell nézetei Objektumorientált.
Specifikáció Specifikáció Követelményei: Tömör legyen, egyértelmű, precíz, jól formalizált, szemléletes, érthető Meg kell adni a program bemenő adatait.
Termelő-fogysztó modell. A probléma absztrakt megfogalmazása: informális leírás. Adott egy N elemű közösen használt tároló, N  1. Adott a folyamatoknak.
Határozatlan integrál
Budapest University of Technology and Economics Department of Measurement and Information Systems Monitor komponensek fejlesztése okostelefon platformra.
Adamkó Attila UML2 Adamkó Attila
Mesterséges Intelligencia 1. Eddig a környezet teljesen megfigyelhető és determinisztikus volt, az ágens tisztában volt minden cselekvésének következményével.
Gyurkó György. Az állapotmodellezés célja Általánosságban ugyanaz, mint a többi dinamikus modellezési technikáé: Jobban megismerni a problémát. Finomítani.
Programozás, programtervezés
UML modellezés 3. előadás
PÁRHUZAMOS ARCHITEKTÚRÁK – 4 FORMÁLIS TERVEZÉSI MODELL LÉTREHOZÁSA Németh Gábor.
Valószínűségszámítás II.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/  További programozási.
előadások, konzultációk
Algoritmizálás, adatmodellezés
PÁRHUZAMOS ARCHITEKTÚRÁK – 2 ELOSZTOTT RENDSZEREK ALAPJAI Németh Gábor.
PÁRHUZAMOS ARCHITEKTÚRÁK – 13 INFORMÁCIÓFELDOLGOZÓ HÁLÓZATOK TUDÁS ALAPÚ MODELLEZÉSE Németh Gábor.
Félcsoport (semigroup) = ({s},{ *: s s  s [infix]}. semigroup is a type specification = sorts: s oprs: *: s s  s [infix] eqns: m 1, m 2, m 3  s (m 1.
PÁRHUZAMOS ARCHITEKTÚRÁK – 3 ESEMÉNYEK SORRENDEZÉSE Németh Gábor.
Modellek a számítógép megismeréshez Takács Béla
Operációs rendszerek.
Számítógépes algoritmusok
Előadás másolata:

NEMFORMÁLIS KÖVETELMÉNYEK ÁTALAKÍTÁSA FORMÁLIS SPECIFIKÁCIÓKKÁ Németh Gábor

2001Németh Gábor: Számítógép architektúrák 2 ELOSZTOTT RENDSZEREK TERVEZÉSE SYSTEM: never ready; if ready: doesn’t work; if works: doesn’t do what I want; if does what I want: I am wrong.

2001Németh Gábor: Számítógép architektúrák 3 ELOSZTOTT RENDSZEREK TERVEZÉSE - 2 RENDSZERTERVEZÉSI LÉPÉSEK: 1.Meg kell határozni az ELŐFELTEVÉSEKet (rend- szerre vonatkozó korlátozások; a rendszernek csak ezen feltételek mellett kell helyesen működnie). 2.SPECIFIKÁCIÓK megadása (a rendszer helyes működésének kritériumai). 3.Elő kell állítani a rendszer MODELLjét (az algoritmikus megoldást). 4. A megoldás helyességét formálisan BIZONYÍTANI KELL (az előfeltevések és a specifikációk alapján).

2001Németh Gábor: Számítógép architektúrák 4 ELOSZTOTT RENDSZEREK TERVEZÉSE - 3 Az ellenőrző vizsgálat nagy rendszerek esetén túl hosszú időt igényel (vagy nem is lehet teljes). A szükséges javítások érdekében külön kell választani a logikai megoldás hibáit (az algoritmikus hibákat) és a megvalósítási hibákat. A logikai megoldás hibái a tervezési modell formális bizonyításával deríthetők ki. Az ellenőrző vizsgálat most már csak a logikailag helyes megoldás megvalósításának helyességét kell, hogy ellenőrizze.

2001Németh Gábor: Számítógép architektúrák 5 ELOSZTOTT RENDSZEREK TERVEZÉSE - 4 A felhasználó szemszögéből a rendszer egy fekete doboz (entitás), mely környezetével egy porton keresztül kommunikál. KÖRNYEZET RENDSZER PORT üzenetek

2001Németh Gábor: Számítógép architektúrák 6 ELOSZTOTT RENDSZEREK TERVEZÉSE - 5  A gyakorlatban célszerű finomítani a modellt, mert  A tervezés során a rendszert egymással kommunikáló alrendszerekké particionáljuk (entity-relationship model), így a kezdeti és a későbbi részletezési szintek eltérőek lennének.  Egy tervezési problémánál a környezet eseményeinek csak egy részhalmazát tekintjük.  A környezetet is egy entitásnak tekintjük, portja a rendszer felé eseményeinek csak egy részét teszi láthatóvá.

2001Németh Gábor: Számítógép architektúrák 7 ELOSZTOTT RENDSZEREK TERVEZÉSE - 6 KÖRNYEZET RENDSZER PORT Következmény: a rendszer specifikációit a rendszer által megfigyelhető eseményekre kell alapozni!

2001Németh Gábor: Számítógép architektúrák 8 ELOSZTOTT RENDSZEREK TERVEZÉSE - 7 Kezdetben a megoldandó feladat nemformális, nemteljes és ellentmondásokat tartalmazó megfogalmazása áll rendelkezésünkre. Létre kell hozni a formális, teljes és ellentmondásmentes specifikációkat.  Célunk egy nemlétező fekete macska megfogása egy sötét szobában.  Oka: minden formális módszer a valóság valamilyen szempontú közelítése.

2001Németh Gábor: Számítógép architektúrák 9 ELOSZTOTT RENDSZEREK TERVEZÉSE - 8 ”Elég jó” formális specifikációs módszert kell választani. (Nincs legjobb.) Két fő csoport:  modell-alapú és  absztrakt (algebrai) specifikációs módszerek.

2001Németh Gábor: Számítógép architektúrák 10 ELOSZTOTT RENDSZEREK TERVEZÉSE - 9 A nemformális - formális leírások közötti rés mértékéről a tervezendő rendszer viselkedése ad felvilágosítást. A viselkedés szimulációja azonban nagy rendszerek esetén nem célszerű a tervezés ezen fázisában:  Csak a már megtervezett rendszer szimulálható (a problémák csak hosszú idő múlva derülnek ki).  A szimulációs csomag is nagy lesz; saját hibákkal.

2001Németh Gábor: Számítógép architektúrák 11 ELOSZTOTT RENDSZEREK TERVEZÉSE - 10  A szoftver tervezésben népszerű ”vízesés” eljárás a tervezett rendszer viselkedését csak a legutolsó lépésben (későn)adja meg.  Célszerű egy NAGYON EGYSZERŰ NYELV létrehozása (mely elég egyszerű ahhoz, hogy elkerüljük a használatából eredő hibákat), mely lehetővé teszi az e nyelven írt SPECIFIKÁCIÓK KÖZVETLEN VÉGREHAJTÁSÁt.

2001Németh Gábor: Számítógép architektúrák 12 ELOSZTOTT RENDSZEREK TERVEZÉSE LÉPÉS:a nemformális, nemteljes és ellentmondásos specifikációkat formális, nemteljes és ellentmondásos specifikációkká alakítjuk át.  A nemformális - formális transzformációra egy nagyon egyszerű deklaratív nyelvet választunk.  A formális specifikáció a valós világnak kell megfeleljen, nem pedig annak (nagyon bonyolult) természetes nyelvű leírásának!

2001Németh Gábor: Számítógép architektúrák 13 ELOSZTOTT RENDSZEREK TERVEZÉSE - 12 Következéskép, nincs értelme a természetes nyelvű leírást nagyon megközelíteni (ellentétben sok programozó álmával), ami a rendszertervezés kezdetén maga is csak egy bizonytalan kívánság közelítése.  A hangsúlyt a koncepciók és hatásuk könnyű és félreérthetetlen értelmezésére helyezzük.

2001Németh Gábor: Számítógép architektúrák 14 ELOSZTOTT RENDSZEREK TERVEZÉSE - 13  PÉLDA: szoftver tervezés.  (Egy természetes nyelven megfogalmazott feladatot egy másik nyelven, pl. C nyelven kívánjuk megoldani.)  Jóslat Andreas Rudigeriusnak: ”arare rus Dei dignus” (latin anagramma; magyarul kb.: méltó vagy az Úr kertjének művelésére.)  Próbáljuk meg a feladatot német nyelven értelmezni (pap vagy orvos, a Gottesäcker egyben a temető szinonímája is!).  (Orvos lett, akik általában szorgosan megtöltik a temetőket.)

2001Németh Gábor: Számítógép architektúrák 15 ELOSZTOTT RENDSZEREK TERVEZÉSE - 14  A nyelvi szerkezet feleljen meg a feladat viselkedési szerkezetének.  Egzisztenciálisan kvantifikált elsőrendű logikán alapuló deklaratív nyelv kívánatos.  PÉLDA: status (Processor, ok)  (A processor objektum osztályból van néhány olyan Processor entitás, melynek állapota ok.)  PÉLDA: not status (Processor, ok)  (A processzor objektum osztályban nincs olyan Processor entitás, melynek állapota ok.)

2001Németh Gábor: Számítógép architektúrák 16 ELOSZTOTT RENDSZEREK TERVEZÉSE LÉPÉS:a formális, de még nemteljes és ellentmondá- sos specifikációkat alakítsuk át formális és teljes, de még ellentmondásos specifikációkká.  Ehhez felhasználói beavatkozás kell.  Interaktív rendszer. (Ki kell választani egyetlen eseményt a jelen- leg végrehajthatók közül, mert ebben a terve- zési fázisban még nincs összefüggő végrehaj- tási gráf.)  Elő- és utófeltételekre alapozott esemény szabályokat használunk. (Meghatározzák, hogy az esemény mikor lép- het fel és fellépésének mi lesz az eredménye.)

2001Németh Gábor: Számítógép architektúrák 17 ELOSZTOTT RENDSZEREK TERVEZÉSE LÉPÉS: az ellentmodásokat feloldjuk.  Az ellentmondások megtalálásához és feloldásá- hoz a modell feltétel nélküli eldönthetőségét és végrehajthatóságát biztosítani kell. (Ellenkező esetben a hiányok és az ellentmondások megakadályozhatnák a rendszer bizonyos részeinek felderítését.)  Ez megnehezíti az absztrakt specifikációk leírását. (Ezek definíció szerint nem végrehajthatóak.)

2001Németh Gábor: Számítógép architektúrák 18 ELOSZTOTT RENDSZEREK TERVEZÉSE - 17  A rendszertervezés ÖSSZETÉTELen alapul. A rendszer modelljét pontosan definiált és kipróbált részekkel bővítjük:  A rendszertervezés minden közbenső lépése JÓL DEFINIÁLT, NEMTELJES RENDSZERt ad.  A felülről-lefelé történő tervezés (”vízesés modell”) mindig teljes, de nem teljesen definiált rendszert ad. 

2001Németh Gábor: Számítógép architektúrák 19 ELOSZTOTT RENDSZEREK TERVEZÉSE - 18 ESEMÉNYSZINTŰ GRANULARITÁSt használunk. Az elő- és utófeltétel alapú esemény szabályok meg- felelnek a logikai órák részleges sorrendezésének.  A tervezés közbenső fázisainak nemteljessége és ellentmondásossága elméletileg lehetetlenné teszi a teljes sorrendezést. (Nem tudunk pl. real-time rendszereket vagy szorosan csatolt multiprocesszoros rendszereket modellezni.)

2001Németh Gábor: Számítógép architektúrák 20 ELOSZTOTT RENDSZEREK TERVEZÉSE - 19 AZ ÜZENETET OBJEKTUMNAK TEKINTJÜK (egy entitás már elküldte, a másikhoz még nem érkezett meg). A MODELL a rendszer viselkedését specifikálja, NEM FOGLALKOZIK A MEGVALÓSÍTÁSSAL. A MODELL egyszerűen formalizálja az egyenként leírt viselkedés elemeket és A FELHASZNÁLÓRA BÍZZA A MEGFELELŐ ESEMÉNY SORREND KIALAKÍTÁSÁT.

2001Németh Gábor: Számítógép architektúrák 21 ELOSZTOTT RENDSZEREK TERVEZÉSE - 20  AZ ALULRÓL-FELFELÉ SPECIFIKÁLÓ ELJÁRÁS NEM GARANTÁLJA A SPECIFIKÁCIÓ ELÉRHETŐSÉGÉT.  (A specifikáció elérhető, ha bármelyik érvényes állapot elérhető bármelyik érvényes állapotból a megengedett műveletek véges számú alkalmazásával.)  Az elérhetőség biztosítására felülről-lefelé formális tervezés kell.  A megvalósításhoz felülről-lefelé formális tervezés kell.

2001Németh Gábor: Számítógép architektúrák 22 SXL NYELV Közvetlenül végrehajtható specifikációs nyelv a nemformális - formális transzformáció elősegítésére. A nyelv előre definiált objektum osztályok (object class) konkrét objektum egyedeit kezeli.  Minden objektum a megfelelő objektum osztályra előre definiált tulajdonság halmazból tetszőleges számú tulajdonsággal (property) rendelkezik.  Egy tulajdonság értéke egy előre meghatározott tartományba (domain) kell essen. Az objektumok közötti kapcsolatokat relációkkal (fact) írjuk le.

2001Németh Gábor: Számítógép architektúrák 23 SXL NYELV - 2 A tervezési eljárás elején a következő koncepcionális modellünk van: KÖRNYEZET RENDSZER PORT  Ez a modell implikálja, hogy a környezet speci- fikációit a rendszer elő- feltevéseiként (korláto- zásaiként) örököljük.  Ezeket automati- kusan teljesíteni kell a rendszer formális specifiká- cióinak végrehaj- tásakor (absolute constraint).

2001Németh Gábor: Számítógép architektúrák 24 SXL NYELV - 3  PÉLDA: always controls (Buffer, Processor)  (Minden modell állapotban van egy buffer egység által vezérelt processor egység.) A granularitás esemény szintű, de gyakran célszerű hierarchikus leírást alkalmazni a rendszer különböző részeire.  dynamic constraint:  auto EseményNév  before ElőFeltétel  after UtóFeltétel  (Az esemény automatikusan és azonnal végrehajtódik, ha előfeltétele teljesül.)

2001Németh Gábor: Számítógép architektúrák 25 SXL NYELV - 4  PÉLDA: Egy több számítógépből álló feldolgozó rendszer feldolgozandó feladatokat fogad egy közös átmeneti tárolóban. Ha van egy várakozó feladat az átmeneti tárolóban, akkor egy szabad számítógép elkezdi feldolgozását. A feladat feldolgozása után az eredményt elküldjük a rendeltetési helyre. Bármelyik számítógép bármikor meghibásodhat és egy meghibásodott számítógépet bármikor kijavíthatunk és visszatehetünk a rendszerbe. Azonosítsuk az SXL elemeket, végigmenve az eredeti nemformális megfogalmazás mondatrészein.

2001Németh Gábor: Számítógép architektúrák 26 SXL NYELV - 5  Egy több számítógépből álló feldolgozó rendszer  objektum osztály a számítógépek számára:  object processor  feldolgozandó feladatokat fogad  esemény a feladat érkezésére:  event request_arrival  before request (, no)  after request (, yes)

2001Németh Gábor: Számítógép architektúrák 27 SXL NYELV - 6  egy közös átmeneti tárolóban.  objektum osztály egyetlen átmeneti tároló objektum részére:  object buffer  property request: {yes, no}.  De ekkor pótolható a hiány a feladat beérkezésének eseményénél (hova érkezik a feladat):  event request_arrival  before request (b, no)  after request (b, yes).

2001Németh Gábor: Számítógép architektúrák 28 SXL NYELV - 7  Ha van egy várakozó feladat az átmeneti tárolóban, akkor egy szabad számítógép elkezdi feldolgozását.  esemény a feldolgozás elkezdésére:  event processing_starts  before status (P, free)  A processor objek-  and request (b, yes) tum osztálynak  and starts (b, P) lesz egy status nevű  after status (P, busy) tulajdonsága,  and request (b, no). eddig free és busy értékekkel.  fact starts (buffer, processor). A magyar nyelvű leírásból NEM látható (nem teljes a feladat megfogalmazása)!

2001Németh Gábor: Számítógép architektúrák 29 SXL NYELV - 8  A feladat feldolgozása után  esemény a feldolgozás befejezésére:  event processing_terminates  before status (P, busy)  after status (P, free)  and new message (Msgid, P, destiny, result).  az eredményt  objektum osztály az eredmények számára:  object message  property sender,  receiver,  content: {result}.

2001Németh Gábor: Számítógép architektúrák 30 SXL NYELV - 9  elküldjük  reláció a számítógép (osztály) és az üzenet (osztály) között:  fact sends (processor, message).  a rendeltetési helyre.  objektum osztály egyetlen rendeltetési hely objektummal:  object destiny.

2001Németh Gábor: Számítógép architektúrák 31 SXL NYELV - 10  Bármelyik számítógép bármikor meghibásodhat  esemény egy számítógép meghibásodására:  event processor_fails  before status (P, free) or status (P, busy)  after status (P, down).  új tulajdonság érték.  és egy meghibásodott számítógépet bármikor kijavíthatunk és visszatehetünk a rendszerbe.  esemény egy számítógép kijavítására:  event processor_repaired  before status (P, down)  after status (P, free).

2001Németh Gábor: Számítógép architektúrák 32 SXL NYELV - 11  Meg kell adni a rendszer kezdeti állapotát.  Az interaktív végrehajtással a hiányzó specifikációk és/vagy korlátozások, illetve az ellentmondások felderíthetők és kiküszöbölhetők.