1 / 12

Tervminták megvalósítása B formális nyelven

Tervminták megvalósítása B formális nyelven. Papp Olga Vadász Péter. 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. Tartalom. UML ( Unified Modelling Language ).

wilona
Télécharger la présentation

Tervminták megvalósítása B formális nyelven

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. Tervminták megvalósításaB formális nyelven Papp Olga Vadász Péter

  2. 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 Tartalom

  3. 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: - statikus (strukturális) - dinamikus - implementációs - használati - környezeti

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

  5. 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 }

  6. 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 B nyelvi szintaxis

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

  8. imports sees Singintface Ír Singleton Kiír BT_IO Singleton tervminta B-ben

  9. MACHINE IR SEES SINGINTFACE OPERATIONS beir = skip END 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 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 MACHINE KIIR INCLUDES IR OPERATIONS main = skip END IMPLEMENTATION IR_imp REFINES IR SEES SINGINTFACE OPERATIONS beir= BEGIN singletonOperation(1234) END END IMPLEMENTATION SINGINTFACE_imp REFINES SINGINTFACE IMPORTS SINGLETON OPERATIONS singletonOperation(adat)= BEGIN singletonOp(adat) END; data<--getSingletonData = BEGIN data<--getSingletonDat END 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 END Singleton megvalósítása B-ben

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

  11. MACHINE SINGINTFACE SEES SINGLETON OPERATIONS singletonOperation(adat)= PRE adat:NAT THEN skip END; data<--getSingletonData = data:=0 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 IMPLEMENTATION SINGINTFACE_imp REFINES SINGINTFACE IMPORTS SINGLETON OPERATIONS singletonOperation(adat)= BEGIN singletonOp(adat) END; data<--getSingletonData = BEGIN data<--getSingletonDat END END

  12. 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

More Related