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

Tervminták megvalósítása B formális nyelven Papp Olga Vadász Péter Témavezető: Fóthi Ákos egyetemi tanár.

Hasonló előadás


Az előadások a következő témára: "Tervminták megvalósítása B formális nyelven Papp Olga Vadász Péter Témavezető: Fóthi Ákos egyetemi tanár."— Előadás másolata:

1 Tervminták megvalósítása B formális nyelven Papp Olga Vadász Péter Témavezető: Fóthi Ákos egyetemi tanár

2 Tartalom Objektumelvű tervezés - UML B tervminták B-re való átírásuk példa: Singleton más tervminták megvalósításának hasonlóságai

3 Objektumelvű programozás Adatabsztrakció  Adattípus  Típusöröklődés

4 UML ( Unified Modelling Language ) specifikáció, objektumorientált modellezés, megoldás leírása, dokumentáció grafikus nyelv – diagramok diagram: elemek + relációk nézetrendszerek:

5 UML – nézetrendszerek  Statikus nézet: - programegységek - egymás közti kapcsolatok - feladatok - osztálydiagram - objektumdiagram

6 UML – nézetrendszerek (2)  Dinamikus szempont - rendszer viselkedése - állapotok - együttműködés - kommunikáció - állapotdiagram - szekvencia diagram - együttműködési diagram - aktiválási diagram

7 UML – nézetrendszerek (3)  Implementációs szempont - komponens és alrendszer diagram  Használati szempont - használati esetek diagramja  Környezeti szempont - konfigurációs diagram

8 UML – Statikus nézet Alapfogalmak: Objektum Osztály Relációk Osztálydiagram Objektumdiagram

9 UML statikus nézet B : programozási nyelv : emberek név=Nagy János sz.ig.szám=AB Alkalmazott private fizetés : int {fizetés>50000} public fizetést emel(mennyivel) ŐsosztálySzármaztatott osztály ►név OsztályAOsztályB szerepB 4 ABCD szerepA 2..*

10 B formális nyelv objektum alapú nyelv absztrakt gépek - osztályokhoz hasonló - alap gépek - finomító gépek - implementáció gépek jBTools }

11 B - alapgép Constraints Includes, sees Sets, constants Properties Variables Invariant Initialisation Operations End

12 B – implementáció gép Implementation Refines Sees, imports Properties Values Invariant Initialisation Operations

13 B nyelvi szintaxis MACHINE SINGLETON CONCRETE_VARIABLES exist, singletonData INVARIANT singletonData:NAT & exist:BOOL INITIALISATION singletonData::NAT || exist:=FALSE OPERATIONS singletonOp(adat)= PRE adat:NAT THEN SELECT exist=TRUE THEN singletonData:=adat WHEN exist=FALSE THEN exist:=TRUE || singletonData:=adat END END; data<--getSingletonDat = PRE exist=TRUE THEN data:=singletonData END; bbool<--isExist= bbool:=exist END

14 Singleton és Memento tervminták Singleton static Singleon* uniqueInstance singletonData static Singleton* Instance() SingletonOperation() GetSingletonData() Originator state SetMemento(Memento m) CretaMemento() Memento state GetState() SetState() Caretaker

15 Singleton tervminta B-ben imports sees Singleton SingintfaceÍr KiírBT_IO

16 Singleton megvalósítása B-ben MACHINE SINGLETON CONCRETE_VARIABLES exist, singletonData INVARIANT singletonData:NAT & exist:BOOL INITIALISATION singletonData::NAT || exist:=FALSE OPERATIONS singletonOp(adat)= PRE adat:NAT THEN SELECT exist=TRUE THEN singletonData:=adat WHEN exist=FALSE THEN exist:=TRUE || singletonData:=adat END END; data<--getSingletonDat = PRE exist=TRUE THEN data:=singletonData END; bbool<--isExist= bbool:=exist END IMPLEMENTATION SINGLETON_imp REFINES SINGLETON INITIALISATION exist:=FALSE; singletonData::NAT OPERATIONS singletonOp(adat)= BEGIN IF exist=TRUE THEN singletonData:=adat ELSE BEGIN exist:=TRUE; singletonData:=adat END END; data<--getSingletonDat = BEGIN data:=singletonData END; bbool<--isExist = BEGIN bbool:=exist END END MACHINE SINGINTFACE SEES SINGLETON OPERATIONS singletonOperation(adat)= PRE adat:NAT THEN skip END; data<--getSingletonData = data:=0 END IMPLEMENTATION SINGINTFACE_imp REFINES SINGINTFACE IMPORTS SINGLETON OPERATIONS singletonOperation(adat)= BEGIN singletonOp(adat) END; data<--getSingletonData = BEGIN data<--getSingletonDat END MACHINE IR SEES SINGINTFACE OPERATIONS beir = skip END IMPLEMENTATION IR_imp REFINES IR SEES SINGINTFACE OPERATIONS beir= BEGIN singletonOperation(1234) END MACHINE KIIR INCLUDES IR OPERATIONS main = skip END IMPLEMENTATION KIIR_imp REFINES KIIR IMPORTS BT_IO, IR, SINGINTFACE OPERATIONS main = VAR bb, ii IN beir; bb<--isExist; IF bb=TRUE THEN BEGIN writeString("RENDBEN"); ii<--getSingletonData; writeInteger(ii) END ELSE writeString ("HIBA") END END

17 Singleton és Memento B-ben imports sees Singleton SingintfaceÍr KiírBT_IO includes/ imports State Memento Originator Usememento BT_IO

18 MACHINE SINGINTFACE SEES SINGLETON OPERATIONS singletonOperation(adat)= PRE adat:NAT THEN skip END; data<--getSingletonData = data:=0 END IMPLEMENTATION SINGINTFACE_imp REFINES SINGINTFACE IMPORTS SINGLETON OPERATIONS singletonOperation(adat)= BEGIN singletonOp(adat) END; data<--getSingletonData = BEGIN data<--getSingletonDat END MACHINE ORIGINATOR INCLUDES os.STATE(NAT), mm.MEMENTO OPERATIONS create_memento = skip; set_memento = PRE mm.exist = TRUE THEN skip END; set_azon(az) = PRE az : NAT THEN skip END; set_adat(ad) = PRE ad : NAT THEN skip END; az<--get_azon = az<--os.get_azon; ad<--get_adat = ad:=1 END IMPLEMENTATION ORIGINATOR_imp REFINES ORIGINATOR IMPORTS os.STATE(NAT), mm.MEMENTO OPERATIONS … END

19 Tervminták megvalósítása B-ben specifikáció implementációk felírása futtatható (Java) kód generálása a tervmintát felhasználó programok specifikációja és implementációja tesztelhetőség ellenőrzések és helyességbizonyítás hasonló struktúrájú felírás


Letölteni ppt "Tervminták megvalósítása B formális nyelven Papp Olga Vadász Péter Témavezető: Fóthi Ákos egyetemi tanár."

Hasonló előadás


Google Hirdetések