Tervminták megvalósítása B formális nyelven Papp Olga Vadász Péter.

Slides:



Advertisements
Hasonló előadás
Osztály leszármaztatás
Advertisements

Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék 5.5. Model Based Architecture módszerek BelAmI_H Spring.
Tervezési minták és a PHP 5
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.
3D képszintézis fizikai alapmodellje
Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek Domain specifikus nyelvek Eclipse Modeling.
Bevezetés a tárgyakhoz Tárgyak  Objects are the containers for values of a specified type  Objects are either signals, variables or constants  Once.
Adatbányászati technikák (VISZM185)
Készítette: Vadász Péter
K id’s P rogramming L anguage V 1.1 Gödöny Péter  Veres Ádám  ELTE IK, Pataky Szakközép.
TRANZIENS ADATTÁROLÁS State objektum Egy alkalmazásszintű gyűjtemény (Dictionary), mely Tombstone esetén megőrzi tartalmát a memóriában kulcs/érték párokként.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Bevezetés a Java programozásba
Vizuális modellezés Uml és osztálydiagram UML eszközök
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Hálózati Operációs Rendszerek TMForum Dr. Bilicki Vilmos.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.

Szintézis Keresztes Péter, 2005 A GAJSKI-KUHN DIAGRAM Alapelv: Rendezzük a digitális- rendszerek leírásait célok és szintek szerint.
A C++ programozási nyelvSoós Sándor 1/17 C++ programozási nyelv Gyakorlat - 7. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
Java programozási nyelv 5. rész – Osztályok III.
LabView használata PTE PMMK MIT Nagyváradi Anett
Delegátumok C#-ban Krizsán Zoltán iit 1.0.
A virtuális technológia alapjai Dr. Horv á th L á szl ó Budapesti Műszaki Főiskola Neumann János Informatikai Kar, Intelligens Mérnöki Rendszerek.
Felső tagozatosok programozás oktatása
Gazdasági informatika II.
Reprezentációs függvény. Adva egy adattípus absztrakt és konkrét specifikációja: d a = ( A, F, E a ); d c = ( C, G, E c ); A = {A 0,..., A n };C = {C 0,...,
Oracle multimédia Kiss Attila Információs Rendszerek Tanszék
Tökéletes Hash függvények keresése Kasler Lóránd-Péter.
Az UML kiterjesztési lehetőségei
WEB MES (webes gyártásirányító rendszer) Kiss Miklós (G-5S8)
Oracle – ORDMS lehetőségek UDT:- objektum típusok - kollekció típusok SQL> CREATE TYPE SZEMELY AS OBJECT ( 2 NEV VARCHAR2(20), 3 TEL VARCHAR2(14)); SQL>
VFP xBase adatkezelés - munkaterületek - DML - DDL - navigáció - eljárások, függvények - vezérlési szerkezetek - változók - képernyő IO - mintaprogram.
Ficsor Lajos Template-ek CPP8/ 1 Template-ek. Ficsor Lajos Template-ek CPP8/ 2 A template fogalma Kiindulási probléma: tetszőleges típusokon kellene ugyanolyan.
ESzabványok Workshop 1. előadás: Bevezető, eAdatmodell október 13.
PHP V Osztályok, Objektumok. Osztály class Person { var $name; // tulajdonság, változó function getName() { // metódus, tagfüggvény return $this->name;
1 Informatikai Szakképzési Portál Adatbázis kezelés DML – Adat manipuláló nyelv.
Tervminták megvalósítása B formális nyelven Papp Olga Vadász Péter Témavezető: Fóthi Ákos egyetemi tanár.
Gábor Dénes Főiskola (IAI)Programozási technológia (Java) - III. / 1 13.Állományok, bejegyzések 14.Folyamok 15.Közvetlen hozzáférésű állomány.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
SzgLab 3. Java. I. labor Alapok, OOP váz, megjelenítés konzolon.
User interface Szécsi László. Egg projectben DXUTgui.cpp – CDXUTDialogResourceManager::CDXUTDialogReso urceManager() m_SpriteBufferBytes11 = 0; ezt kihagyták,
Objektumorientált tervezés
UML Unified Modelling Language Szabványos jelölésrendszer elemeivel írja le diagramok formájában a rendszer működését a különböző modell-nézetek szempontjából.
FÖKIR Integrált Elektronikus Közoktatási Információs Rendszer A FÖKIR rendszer szoftverkomponensei FÖKIR Iskolaadminisztrációs Rendszer FÖKIR Fenntartói.
SICStus Objects Objektum orientált kiterjesztés a SICStus Prolog nyelvhez Pereszlényi Attila Az előadás.
XML fejlesztések TSQL fejlesztések Tábla paraméter SQLCLR fejlesztések 8k limit feloldása Több paraméteres UDA-ek Ordered UDF-ek Entity Framework ADO.NET.
Objektumvezérelt rendszerek tervezése
A Visual Basic nyelvi elemei
Szoftver születik Eötvös Konferencia Köllő Hanna.
Gyurkó György. Az OO programozás és tervezés története 1960-as évek: SIMULA (véletlen folyamatokat szimuláló programok írása) az OO nyelvek őse 1970-es.
Unified Modeling Language
Tervminták megvalósítása B formális nyelven Papp Olga Vadász Péter Témavezető: Fóthi Ákos.
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
Paraméter továbbítás. (parameter passing) Paraméteres specifikációk: Pl.: string(spec) : hasonló specifikációk családja; string(nat); string(data); string(integer);
.NET FRAMEWORK Röviden Krizsán Zoltán 1.0. Tulajdonságok I Rövidebb fejlesztés 20 támogatott nyelv (nyílt specifikáció) 20 támogatott nyelv (nyílt specifikáció)
Paraméterátadó-morfizmus diagramja: p: tartalmazás SPEC SPEC 1 h : SPEC  SPEC' h 1 : SPEC 1  SPEC 1 ' SPEC' SPEC 1 ' p': tartalmazás SPEC: paraméter.
Példa. Az ábrázolás szemléltetése.  = ({stack, elem },{ create :  stack; push : stack elem  stack}),  = ( {vector, nat, elem}, { create c :  vector.
Reverse Engineering Rendszerfejlesztés II. 2. óra.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 4. gyakorlat.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
UML használata a fejlesztésben, illetve a Visual Studio 2010-ben
Hibernate / EclipseLink / OpenJPA összehasonlítás
Rendszerfejlesztés gyakorlat
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
B M Java Programozás 4. Gy: Java GUI IT A N Tipper, MVC kalkulátor
B M Java Programozás 9. Gy: Java alapok IT A N Adatkezelő 5.rész
MySQL története, részei, felhasználhatóság, PHPMyAdmin
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Hatványozás azonosságai
Függvénysablonok használata
Előadás másolata:

Tervminták megvalósítása B 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

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

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

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

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

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

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

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

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