Az UML kiterjesztési lehetőségei

Slides:



Advertisements
Hasonló előadás
Összefoglalás Hardver,szoftver,perifériák Memóriák fajtái
Advertisements

Programozás III KOLLEKCIÓK 2..
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Microsoft Access V. Készítette: Rummel Szabolcs Elérhetőség:
Adatbányászati technikák (VISZM185)
Készítette: Vadász Péter
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Programozás alapjai.
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.
OBJEKTUMORIENTÁLT PROGRAM
Bevezetés a Java programozásba
Osztályok Garbage collection.  általában minden osztálynak vannak adattagjai és/vagy metódusai ◦ adattagok megadása:  [láthatóság] [static] [final]
Vizuális modellezés Uml és osztálydiagram UML eszközök
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 7. Gyakorlat Operator overloading.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 8. Gyakorlat Operator overloading II.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 5. Gyakorlat Öröklődés, virtuális függvények,
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.

Hernyák Zoltán XML validálás.
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
6. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
5. előadás Parametrikus polimorfizmus. Generikus programozás
5. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
Alphabet is a type specification = sorts: alphabet oprs: a:  alphabet,...,z:  alphabet end alphabet; nat is a type specification = sorts:nat oprs:zerus:
Az UML 4 rétegű metamodell szerkezete
Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék
Bevezetés a C++ programozási nyelvbe
Objektumorientált tervezés és programozás II. 3. előadás
Karakterláncok Páll Boglárka.
Kifejezések a Pascalban Páll Boglárka. Ismétlés: Ahogy algoritmikából láttuk, a kifejezések a Pascal nyelvben is operátorokból és operandusokból állnak.
Operátorok Értékadások
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.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
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ú,
Objektumorientált tervezés Út az objektumig Az objektum fogalma, jellemzői Objektummal kapcsolatos fogalmak Hardverfogalmak A rendszer modell nézetei Objektumorientált.
Java programozási nyelv Metódusok
Java programozási nyelv Adatbekérés konzolról
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
Egyenesvonalú (lineáris) adatszerkezetek
1 Objektum orientált programozás Öröklődés: többszörös öröklődés, konstruktorok, destruktorok, overloading Nagy Szilvia.
Webprogramozó tanfolyam
1 Mivel foglalkoz(t)unk a laborokon? 1.hét: Word dokumentumok 1.hét: Word dokumentumok tagolása, tartalomjegyzék, ábrák számozása, hivatkozások, egyenlet-szerkesztő.
Programozás III CSOMAG. CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van.
Ficsor Lajos CPP2 / 1 Származtatási mechanizmus a C++ nyelvben Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék.
Algoritmizálás, adatmodellezés
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.
1 Mivel foglalkoz(t)unk a laborokon? 1.Labor: Word alapok Excel alapok: Excel alapok: Cellahivatkozás, munkalapfüggvény, diagram varázsló, trendvonal 2.
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.
5. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás I. 3. gyakorlat.
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.
Krizsán Zoltán, iit C# osztályok 2 Adattagok  Osztály hatáskörben definiált változó.  Formája: [attribútum] [módosító] típus azonosító [=kezdő érték][,
A modell-ellenőrzés gyakorlata UPPAAL Uppsalai Egyetem + Aalborgi Egyetem közös fejlesztése; első verzió megjelenése; részei: - grafikus modellt.
A szoftver mint komplex rendszer: objektumorientált megközelítés.
UML használata a fejlesztésben, illetve a Visual Studio 2010-ben
Programozás C# -ban Elágazások.
Típusok Halmaz (a világ objektumai közül néhány) Neve van
Bevezetés a programozásba Algoritmikus gondolkodás
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Web programozás és haladó fejlesztési technikák – C#
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Előadás másolata:

Az UML kiterjesztési lehetőségei

Kiterjesztések: megszorítások, név-érték párok, sztereotípusok, profilok A szabványhoz képest eltéréseket fogalmaznak megóvatosan a kódgenerálással Metamodell kiterjesztés/módosítás Profilokban tároljuk a kiterjesztéseket: egyes szakterületeken különálló metamodell kiterjesztések elérhetők. Pl. SPEM: Software Process Engineering Metamodel

Object Constraint Language (OCL) Tisztán kifejezésközpontú nyelv: nincsenek mellékhatások Modellezési nyelv: nincsenek megvalósítási kérdések Nem programozási nyelv: nem végrehajtható, nincsen vezérlés Predikatív nyelv: minden kifejezés kiértékelhető, logikai eredménnyel Erősen típusos nyelv: minden jól formált OCL kifejezésnek típusa van, a típusegyeztetés kötelező Objektumorientált nyelv: ezért használható az UML rendszerekben Megszorító nyelv: valamilyen példányhalmazhoz kapcsoljuk, megszorítja a halmazt olyan egyedekre, amelyekre a kifejezés igazra értékelődik ki.

Az OCL használati környezetei Osztályok, típusok és kapcsolatok invariánsai Sztereotípusok típusinvariánsai Műveletek elő- és utófeltételei Tevékenység- és állapotdiagramok őrfeltételei Navigációt leíró nyelv Műveletek megszorításai A grafikus nyelv is megfogalmazható OCL megszorításként.

nor(x:Boolean):Boolean=or(x).not(); - Műveletleíró megszorítás addInterest(sum:Real,int:Real):Real pre: sum>=0 and int>0 post: addInterest>sum - Művelet elő és utófeltétele

Az OCL felépítése Egy OCL feltétel egy Boolean típusú kifejezés Egy OCL kifejezésből navigációval egy másik kifejezés képezhető. Az új kifejezés típusát a navigáció határozza meg. Navigálhatunk az alapkifejezés típusmeghatározásában megadott tulajdonsággal. Az eredmény típusa a tulajdonság típusa lesz. (Employee.salary) Navigálhatunk az alapkifejezés típusához rendelt kapcsolattal. Az eredmény típusa a navigációban használt kapcsolatvég típusa lesz (Person.child) Navigálhatunk műveletkifejezéssel. Az eredmény típusa a művelet eredményének típusa lesz. Egyes műveletek operátorok, vagyis nem kötelező a zárójeles kifejezés használata. (Person.doMarry) Gyűjtemény-művelet navigációhoz a „->” operátort használjuk (hétVezér->size=7)

Az OCL típusai Alaptípusok: Boolean, Integer, Real, String Típusmegfelelés: egy típus megfelel az őstípusainak tranzitíven is OclAny: minden típus őstípusa OclType: amelynek a típusok a példányai Collection Set, Bag, Sequence Set(T), Bag(T), Sequence(T)

Literális konstansok OCL-ben Set(alma, körte, barack) Bag(alma, alma, körte) Sequence(0, 1, 1, 2, 3, 5, 8)

Gyűjteménytípusok (collections) Öröklődés – alosztály - altípus

Collection

Felsorolástípusok Osztályok <<enumeration>> , <<enum>> sztereotípussal Értékeik: attribútumnevek OCL nyelvtan: sex{male,female} Hivatkozás felsorolásértékre: sex=#female

Metaműveletek OclAny::oclType: OclType OclAny::oclIsTypeOf(t:OclType):Boolean OclAny::oclIsKindOf(t:OclType):Boolean OclType::name:String OclType::attributes:Set(String) OclType::associationEnds:Set(String) OclType::allInstances:Set(OclAny) OclType::operations:Set(String) OclType::supertypes:Set(OclType) OclType::allSupertypes:Set(OclType)

Az UML metamodellje Az UML fogalmaiból épített UML modell Osztályai az UML fogalmai Kapcsolatai az UML fogalmai közötti kapcsolatok

Metamodell: Class metaosztály Az „osztály” fogalom leírása. Háttérben tárolt-e/létrejöhet-e példánya Minden osztály a Class metaosztály egy példánya (Halmazok halmaza) Jelölés: <<metaclass>> sztereotípus Többszörösség (multiplicity): [1..3] példányok számára korlát Egypéldányú (singleton)

Osztályjellemzők (Feature) Láthatóság (visibility): „+” nyilvános (public), „#” (protected) védett, „-” rejtett (private) Az osztály szintű attribútumot aláhúzással jelöli az UML (A Rose-ban $ jel jelöli) Többszörösség (multiplicity): [1..3], vektormegadás Rendezettség {ordering} Tulajdonságok (attribute): Eljárások (method):

Osztályfüggvények Paraméterek: rendezettek, sorszámmal indexelhetők Mellékhatása van-e? ‘isQuery’ Kimenő/bemenő/átmenő/(visszatérő) {ordered} Alapérték (attribute): Típus (method):

Metamodell kiterjesztése sztereotípussal Egy UML fogalom/metaosztály terjeszthető ki

Hogyan olvassuk ki? Egy sztereotípus definíció megfelel egy új metaosztálynak, ami a „baseClass” tulajdonságával megadott UML fogalom kiterjesztése Egy név-érték párt egy sztereotipizált osztályhoz adunk. Megfelel egy metatulajdonság-értékpárnak, amely a sztereotípus alaposztályához tartozik