Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Az UML kiterjesztési lehetőségei
2
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
3
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.
4
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.
5
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
6
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)
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)
8
Literális konstansok OCL-ben
Set(alma, körte, barack) Bag(alma, alma, körte) Sequence(0, 1, 1, 2, 3, 5, 8)
9
Gyűjteménytípusok (collections)
Öröklődés – alosztály - altípus
10
Collection
11
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
12
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)
14
Az UML metamodellje Az UML fogalmaiból épített UML modell
Osztályai az UML fogalmai Kapcsolatai az UML fogalmai közötti kapcsolatok
15
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)
16
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):
17
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):
18
Metamodell kiterjesztése sztereotípussal
Egy UML fogalom/metaosztály terjeszthető ki
19
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
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.