Tervmint k megval s t sa b form lis nyelven
This presentation is the property of its rightful owner.
Sponsored Links
1 / 12

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


  • 43 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Tervmint k megval s t sa b form lis nyelven

Tervminták megvalósításaB formális nyelven

Papp Olga

Vadász Péter


Tartalom

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

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


Uml statikus n zet

: 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


B form lis nyelv

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

}


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

B nyelvi szintaxis


Singleton s memento tervmint k

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


Singleton tervminta b ben

imports

sees

Singintface

Ír

Singleton

Kiír

BT_IO

Singleton tervminta B-ben


Singleton megval s t sa b ben

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


Singleton s memento b ben

imports

sees

Singintface

Ír

State

Usememento

includes/

imports

Originator

Singleton

Kiír

BT_IO

Memento

BT_IO

Singleton és Memento B-ben


Tervmint k megval s t sa b form lis nyelven

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


Tervmint k megval s t sa b ben

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


  • Login