12
<D]ÕOÕP hUQ +DWODUÕQGD Yetenek Modeli ve Üstmodel Senkronizasyonu için bir Yöntem Ferhat Erata 1,2 , Moharram Challenger 2 , Serhat Gezgin 1 $NJQ 'HPLUEDú 1,2 , Mehmet Önat 3 YH *H\ODQL .DUGDú 1,2 1 81,7 %LOLúLP 7HNQRORMLOHUL $U-Ge Ltd., Ar-Ge Bölümü, Urla, ø]PLU {ferhat.erata, serhat.gezgin, akgun.demirbas}@unitbilisim.com 2 (JH hQLYHUVLWHVL 8OXVODUDUDVÕ %LOJLVD\DU (Qstitüsü %RUQRYD ø]PLU {geylani.kardas, moharram.challenger}@ege.edu.tr 3 KoçSistem %LOJL YH øOHWLúLP +L]PHWOHUL $ù Ar-Ge Merkezi, hVNGDU øVWDQEXO [email protected] Özet. YD]ÕOÕP UQ DLOHVL LoHULVLQGHNL RUWDNOÕNODU YH GH÷LúNHQOLNOHU JHQHO RODUDN yetenek modelleri ya da alana özgü diller ile ifade edilirken, ürün ailesi için ROXúWXUXODQ \D]ÕOÕP SODWIRUPODUÕ PRGHO JGPO \D]ÕOÕP JHOLúWLUPH WHNQLNOHUL NXOODQÕODUDN ROXúWXUXODELOPHNWHGLU YH WHPHOGH oHúLWOL VR\XW V|]GL]LPL WDQÕPOD PDODUÕQD GD\DQPDNWDGÕU %X ELOGLUL PRGHO JGPO UQ KDWWÕ \DNODúÕPÕQÕQ DODQ PKHQGLVOL÷L VUHFLQGH SUREOHP X]D\ÕQGD EXOXQDQ RUWDNOÕNODUÕQ YH GH÷Lú NHQOLNOHULQ PRGHOOHQPHVL LoLQ NXOODQÕODQ \HWHQHN PRGHOOHUL YH\D DODQD |]J GLO PRGHOOHUL LOH \D]ÕOÕP UQ PLPDULVL DUDVÕQGD L]OHQHELOLUOL÷L DUWWÕUDQ YH \D]ÕOÕP PLPDULVLQLQ DUWÕPOÕ JHOLúWLULOPHVLQL RODQDNOÕ NÕODQ ELU senkronizasyon yöntemi önermektedir. Yöntemin SAT ve CSP çözücüleri ile entegrasyonu sayesinde alana özgü dilin GR÷UXODPD YH VÕQDQPDVÕ LoLQ de NXOODQÕODELOPHNWHGLU Bu yön- WHPH GD\DOÕ RODUDN JHOLúWLULOHQ DoÕN ND\QDN NRGOX DUDo \DUGÕPÕ\OD \|QWHP ELU endüstriyel ar-ge SURMHVL NDSVDPÕQGD JHOLúWLULOHQ \D]ÕOÕP UQ KDWWÕ PLPDULVLQGH EDúDUÕ\OD X\JXODQPÕú YH NXOODQÕPÕ EX ELOGLULGH J|VWHULOPLúWLU Anahtar Kelimeler: Alana Özgü Diller, Alloy, Clafer, 'H÷LúNHQOLN <|QHWLPL, ECore, 0RGHO '|QúP, <D]ÕOÕP 0LPDULVL YD]ÕOÕP hUQ +DWWÕ 0KHQGLVOL÷L 1 *LULú YD]ÕOÕP UQ KDWWÕ PKHQGLVOL÷L VUHoOHULQGH, \HQLGHQ NXOODQÕODELOLU ELU SODWIRUP YH UQ KDWWÕ PLPDULVLQLQ JHOLúWLULOGL÷L ELU DODQ PKHQGLVOL÷L LOH DODQ PKHQGLVOL÷L VUHFL VRQXFXQGD HOGH HGLOHQ YDUOÕNODUGDQ UQOHULQ JHOLúWLULOGL÷L ELU X\JXODPD PKHQGLVOL÷L VUHFL \HU DOÕU >5]. $ODQ PKHQGLVOL÷L Vrecinde DODQ LoHULVLQGHNL RUWDNOÕNODU YH GH÷Lú kenlikler belirlenmekte ve genellikle bir yetenek modeli ile ifade edilmektedir. Yete- nek ED÷ÕPOÕOÕNODUÕ YH NÕVÕWODUÕ øQJ dependencies and constraints) GLNNDWH DOÕQDUDN EX yeteneklerin ihtiyaca göre bir alt kümesi seçilir ve seçilen yeteneklere sahip yeni bir \D]ÕOÕP HOGH HGLOLU Bu süreçte, Model Güdümlü Mühendislik (øQJ Model Driven Engineering WHNQLNOHUL VÕNOÕNOD NXOODQÕOPDNWD YH |]HOOLNOH $ODQD g]J 'LOOHU øQJ Domain Specific Languages) (DSL) yetenek modelleri gibi \D]ÕOÕP UQ KDWODUÕQGD 2

3].'6/ jholúwluphgh\d\jÕq

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 3].'6/ jholúwluphgh\d\jÕq

Yetenek Modeli ve Üstmodel Senkronizasyonu için bir Yöntem

Ferhat Erata1,2, Moharram Challenger2, Serhat Gezgin1 1,2, Mehmet Önat3 1,2

1 -Ge Ltd., Ar-Ge Bölümü, Urla, {ferhat.erata, serhat.gezgin, akgun.demirbas}@unitbilisim.com

2 stitüsü{geylani.kardas, moharram.challenger}@ege.edu.tr

3 KoçSistem Ar-Ge Merkezi, [email protected]

Özet. Yyetenek modelleri ya da alana özgü diller ile ifade edilirken, ürün ailesi için

senkronizasyon yöntemi önermektedir. Yöntemin SAT ve CSP çözücüleri ile entegrasyonu sayesinde alana özgü dilin de Bu yön-

endüstriyel ar-ge

Anahtar Kelimeler: Alana Özgü Diller, Alloy, Clafer, ,ECore, , Y

1

Y ,

5]. recinde kenlikler belirlenmekte ve genellikle bir yetenek modeli ile ifade edilmektedir. Yete-nek dependencies and constraints)yeteneklerin ihtiyaca göre bir alt kümesi seçilir ve seçilen yeteneklere sahip yeni bir

Bu süreçte, Model Güdümlü Mühendislik ( Model Driven EngineeringDomain Specific Languages) (DSL) yetenek modelleri gibi

2

Page 2: 3].'6/ jholúwluphgh\d\jÕq

3].Eclipse

Modeling Framework) teknolojisidir [7]. Bir tür DSL olan yetenek modelleme dilleri-ni, Pure::Variants [20] ve Gears [21 8] ve Clafer[1]

9]. multiple instantiation

lerin aktivitelerinden biri olan üst modellemeye

Boolean Satisfiability Problem Constraint Satisfaction Problem)çözücüleri ile entegrasyonu sayesinde amümkündür.

Bildirinin takip eden ikinci bölümünde, yöntemimize uygun yetenek modelleme

, Clafer ve ECore dilleri ara-Dördüncü bölümde önerilen yöntemin

gerçek bir endüstriyel ar-ge

Son bölüm ise önerilen yöntemin bir ni ve ileriye yö-nelik

2 Yetenek Modelleme ve Alana Özgü Diller

Clafer (class, feature, reference),l metinsel bir dildir. Dil,

dir. ve ili temel alan söz dizim ve semantik saye-

sinde SAT çözücülerine Alloy [6otomatik analiz edilmesi n . temel alan formal bir Birinci Derece Yüklem M ’ndan

First-Order Predicate Logic) yararlanarak yüklemleri predicate) büyük Boolean ifadelere çevirebilmektedir. Daha sonra da bu ifadeler SAT çözücüleri tara-

ik olarak analiz edilebilmektedirAlloy Analyzer 14

Bu bildiride önerilen yöntem, SAT çözücüsü

Text-based Variabi-lity Language) (TVL) [8

3

Page 3: 3].'6/ jholúwluphgh\d\jÕq

çoklu örnekleme, 9

tenek modelleme dili ise Nesne Yönetim Grubu’nun Object Management Group) (OMG) 1

Common Variability Language) [10 arihte henüz

OMG’nin önerisinde bir model analiz yöntemi ihti-

akademik

3,4]. DSL’ler, yetenek model-leme dilleri ile belirtmesi

[4].

da gramer ya da üstmodel . kaynak kodlu Eclipse Model-Eclipse Modeling Platform soyut

[18].Eclipse EMF teknolojisi, ECore [7]. Bolan Xtext2 ise programlama dilleri ve alana özgü dillerin

Araç, ECore ve EBNF.

3 Yöntem ve Mimari

Yöntemin

analiz edilebilmesidir. Bu sebepleATL [17] gibi bir dil kullanmak yerine

olan Ecore, bir OM Meta-Object Facility) (MOF) alt kümesi olan Essential

1 Object Management Group: http://www.omg.org/2 Xtext framework, http://eclipse.org/Xtext

4

Page 4: 3].'6/ jholúwluphgh\d\jÕq

(ecore.ecore3).

Eclipse Modeling Framework

ClaferConcrete Syntax

(Concise Notation)

SyncAbstract Syntax

(sync.ecore)

ECoreAbstract Syntax(ecore.ecore)

SyncConcrete Syntax

(Xtext)

ClaferAbstract Syntax(Full Notation)

(clafer.bnf)

ClaferAbstract Syntax(clafer.ecore)

AlloyAbstract Syntax

mdd4cca.cfr

mdd4cca.des

mdd4cca.als

<<transforms to>>

ClaferConcrete Syntax(Full Notation)

(Xtext)

mdd4cca.des mdd4cca.sync mdd4cca.ecore

instances.mdd4cca

<<syntax mapping>><<syntax mapping>>

EcoreConcrete Syntax

(Ecore Model Editor)

<<syntax mapping>>

<<conforms to>> <<conforms to>> <<conforms to>>

<<conforms to>>

<<conforms to>>

<<conforms to>>

<<conforms to>>

<<transforms to>> <<syntax mapping>>

AlloyConcrete Syntax

<<syntax mapping>>

<<transforms>> <<transforms>>

<<transforms>>

<<mapping>>

. 1. Yöntem Mimarisi

Eclipse eklentisi, en gün

concise notation .cfr uzan-(Tablo 1 .des

ve tam notasyonu temsil eden desugared notation .b). Bu notasyon bir BNF gramer ile gösterilebilmektedir. Bu durumda, “concise notation” somut söz-dizimini “desugared notation”

-söz dizimine özgü kontrol-

. Clafer somut sözdizimi dili, [2]’den (clafer.bnf4) ile

temsil edilmektedir. Bu gramer, EMF entegrasyonu için bir ECore üstmodeline dö-clafer.ecore 5) ve Xtext

3 Tam ECore üstmodeli: http://www.mdd4cca.com/metamodels/ecore.ecore4 Tam BNF: http://www.mdd4cca.com/grammars/clafer.ebnf5 Tam Clafer üstmodeli: http://www.mdd4cca.com/metamodels/clafer.ecore

5

Page 5: 3].'6/ jholúwluphgh\d\jÕq

. 2. Clafer yetenek modelleme dili soyut sözdizimi (clafer.bnf4)

Tablo 1. Clafer, ü için bir örnek senaryo gösterimi

a. Case1.cfr (Clafer Concise Notation) b. Case1.ecore (ECore Notation)abstract A

name : stringage : integerb : Bc -> C

abstract Babstract C : B

c. Case1.des (Clafer Desugared Notation) d. Case1.des (Alloy Notation)abstract 0..* c1_A : clafer 0..* {

0..* c2_name : string 1..1 { }0..* c3_age : integer 1..1 { }0..* c4_b : c15_B 1..1 { }0..* c5_c ->> c16_C 1..1 { }[all disj x; y:

this.c5_c | x.ref != y.ref]} abstract 0..* c15_B : clafer 0..* { }abstract 0..* c16_C : c15_B 0..* { }

open util/integerpred show {}run show for 1 but 1 c15_Babstract sig c1_A{ r_c2_name : one c2_name, r_c4_b : one c4_b, r_c5_c : one c5_c } { all disj x, y : this.@r_c5_c |(x.@ref) != (y.@ref) }sig c2_name { ref : one Int }{ one @r_c2_name.this } sig c3_age { ref : one Int }{ one @r_c3_age.this } sig c4_b extends c15_B {}{ one @r_c4_b.this } sig c5_c { ref : one c16_C }{ one @r_c5_c.this } abstract sig c15_B {}

abstract sig c16_C extends c15_B {}

m-

string | { } | | | string | string | | | | | | | ? | + | | integer . . | integer

6

Page 6: 3].'6/ jholúwluphgh\d\jÕq

6

Tablo 2.

a. b. Clafer

String, Integer (built-in types) EAttribute (EString, EInt)Clafer Typing EAttribute (EBoolean, EDate, EDouble)

Reference Clafer EReferenceReference Clafer (‘:’ ve ‘->’) EReference.IsContainment: EBooleanReference EReference.IsOpposite: EBoolean

Clafer Inheritance Single InheritanceClafer Merging Multiple InheritanceClafer Nesting Ecore, iç içe EClass’lar yuvalanmaz (inner

Cardinality (lone, some, any, one, interval) (EAttribute | EReference).Multiplicity.(LowerBound and UpperBound)

Group Cardinality (xor, or, mux, opt) üretilir.EClass.IsAbstract: EBoolean

Singleton Concrete Clafers ECore Instances

Temel dbüyük

Örnek bir yetenek modeli, Tablo 1.a’da, otomatik olarak o 1 1.c Clafer

otasyonu gösterirken Tablo 1.d ise bu gösterimden üreti-len Alloy modelidir. a

- (roundtrip) iki

olaraksync.ecore üstmodeli bu dilin soy Bu üstmodel, Xtext

sel somut

6 Xtend Java dialect, http://www.eclipse.org/Xtend/

7

Page 7: 3].'6/ jholúwluphgh\d\jÕq

sync.ecore üstmodeli gösteril-mektedir. ecore.ecore ve clafer.ecore

. 3. senkronizasyon ve izlenebilirlik üstmodeli (sync.ecore)7

4 imarisi

si8 (mdd4cca) isimli endüstriyel ar-ge projesinin tüm alana özgü görsel ve metinsel Projede, e

bir Kur olan Microsoft SharePoint Foun-dation9 (MSF) üzeri 10

etleri yürütül-Alana özgü kavra

gerekli p tür. S Cla-fer yetenek modelleri bu kavramlar üzerinden tur.modeli, örnek konfigürasyonlar

ile tir. Bu yetenek modellerinden

7 Tam sync.ecore üstmodeli: http://www.mdd4cca.com/metamodels/sync.ecore8 Model-driven Development for Composite Content Applications: http://www.mdd4cca.com. 9 Microsoft SharePoint Foundation: http://technet.microsoft.com/library/cc303422.aspx10 Composite Content Applications: https://www.gartner.com/doc/1286414/

8

Page 8: 3].'6/ jholúwluphgh\d\jÕq

ben-

. Önerilen yöntem sayesinde

üzere piçermesi sebebiyle [3]

üstmo-deline . modellerinden ise platforma ait i otomatik üretilebilmektedir.

Tablo 3. i (mdd4cca.cfr)11

a. Clafer Yetenek Modeli b. Clafer Konfigürasyonabstract NamedElement

name: string abstract ContentModel : NamedElement

web -> Web +ownedEntityModel->EntityModel?

abstract Web : NamedElementownedList : List *ownedWeb : Web *

abstract List : NamedElementcontentTypes -> ContentType *xor Type

LibraryList

abstract ContentType : NamedElementisAbstract : integer ?ownedField : Field * lookupEntity -> Entity ?

abstract Field: NamedElementxor Type

NumberBooleanTextReference

contentType -> ContentType

abstract EntityModel : NamedElement database: stringentities: Entity *

abstract Entity: NamedElementbaseType -> Entity ? lookupContent -> ContentType *

EgeLibrary : ContentModel[name = "EGE_Kutuphanesi"][web = LibraryWebSite]

LibraryWebSite : Web[name = "Kutuphane_Web_Sitesi"]TezKitapligi : List

[Library][name="Tez_Kitapligi"][contentTypes= Dissertation, MasterThesis]

OgrenciListesi : List[List][name="Ogrenci_Listesi"][contentTypes = Student]

Student : ContentType[name = "Ogrenci"]studentNo : Field

[Number][name = "Ogrenci_No"]

abstract Thesis: ContentType[name = "Tez"]thesisName: Field

[Text][name = "Tez_Adi"]student: Field

[Reference][name = "Ogrenci"][contentType = Student]

MasterThesis: ThesisDissertation: Thesis

11 Tam yetenek modeli: http://www.mdd4cca.com/features/mdd4cca.cfr

9

Page 9: 3].'6/ jholúwluphgh\d\jÕq

B (yer limitleri sebebiyle) Tablo 3 Bu model,içerik

Örnek bir konfigü-rasyon Tablo 3delleme ile EDM12

Web Web List kadar içerik türü (content type)

. 4. Otomatik üretilen mdd4cca üstmodeli (mdd4cca.ecore)13

modelinde otomatik olarak saklanmakta ve

uygulanabilmektedir. sync.ecoreüstmodeline uygundur. Araç, mdd4caa.cfr yetenek modelinden, ekil 4’da yer limitleri gösterilen mdd4cca.ecore üsttir. Konfigürasyona dair Clafer’leri ise mdd4cca.ecore üstmodeline uygun örnek mo-

instances.mdd4cca14

5

Clafer iyAncak belirtilen sadece Clafer içerisinde alan modelleme ya da

12 Entity Data Model: http://msdn.microsoft.com/library/ee382825.aspx 13 Tam mdd4cca üstmodeli: http://www.mdd4cca.com/metamodels/mdd4cca.ecore14 Tam örnek modeller: http://www.mdd4cca.com/examples/instances.mdd4cca

10

Page 10: 3].'6/ jholúwluphgh\d\jÕq

yöneliktir.MF uyumlu bütün bir süreç ve Dö-

ECore örnek modelle-ri ve ileri yönlü bir d

. Clafer ile UML Cla-fer sözdiziminin MOF üstmodelini

ancak MOF üstmodeli daha önceki bölümdefazla bilgi içermektedir. ECore üstmodelinin

bir ECore mode Bu dabu bir çözüm önermemektedir.

Clafer’i en Kanada, Waterloo Üniversitesi Generative Software Develop-ment Lab, ecore2clafer 15

sadece ECore üstmodellerini Abstract Claferbir Clafer

nabilen Group Cardinalities, Sub-Clafers, Set Partitions gibi dile özgü kavramlar

amaç yönünden , Clafer öneri-Ecore.fmp [12]. , ECore modellerini

Ça-Cardinality-based feature

modeling”) [11] uyumlu araca özel bir üstmodel önermekte-dir. Clafer, bu dili bir semantik kurmak-

1,2]. Araç annotation’lar kullanarak ECore üstmo-delini

Bu sebeple bu yöntem sadece araç ile uyumlu bir ECore üstmodelini yetenek Bu yöntem, senkron

gibi gözükse de iki dilin formalizm Araç modelleme ve konfigürasyon içi

FeatureMapper [15

yeteneklerme-

sine göre, Ecore.fmp ça-destekleyen araca özel bir

Ecore.fmp

gü dillerin (veya

15 Ecore to Clafer Translator: http://gsd.uwaterloo.ca/ecore2clafer

11

Page 11: 3].'6/ jholúwluphgh\d\jÕq

[16

Bu bildiride önerilen yöntem, bu yolla analiz edilebilecek dillerin Alloy dili yerine gereksinim

6

Bu bildiride, metinsel bir yetenek modelleme dili olan Clafer ile bir üstmodelleme dili senkronizasyon Yöntem yete-

nek modelleri ve ile üstmodel ve modelleriü Bu iki gösterim sistemi

ötürü dyönetilebilmekte,

seçim yapabilme ,endüstriyel senaryolarda uygulanmak üzere Eclipse eklentisi olarak 16.

syerine ifade gücü yüksek ve basit Clafer dilini kullanarak bir DSL’in soyut sözdizi-

Clafer’in ECore için yeni bir metinsel somut sözdizimi olarak kullan bilei enteg-

bir DSL’i ye gerek kalma-dan

lerinden gelen belli beklenen

UML ve probleminin [13,19] çözülmesi ve çö-

.

Sanayi Ar-Ge Projeleri Destek

16 Araç Eclipse güncelleme sitesi: http://www.mdd4cca.com/updates/clafer2ecore

12

Page 12: 3].'6/ jholúwluphgh\d\jÕq

7 Kaynakça

1. Czarnecki, K., : Feature and meta-models in Clafer: mixed, specialized, and coupled. In: Software Language Engineering, pp.102-122. Springer Berlin Heidelberg (2011)

2. : Modeling and Analysis of Software Product Line Variability in Clafer. Diss. University of Waterloo (2013)

3. Groher, I., Voelter, M.: Aspect-oriented model-driven software product line engineering.In: Transactions on aspect-oriented software development. Springer Berlin (2009)

4. Voelter, M., Visser, E.: Product line engineering using domain-specific languages. In: 15th

International Software Product Line Conference (SPLC) pp. 70-79. IEEE (2011)5. Tekinerdogan, B.: First Turkish software product line engineering workshop summary.

ACM SIGSOFT Software Engineering Notes 37, no. 6, pp. 30-34 (2012)6. Jackson, D.: Alloy: a lightweight object modelling notation. ACM Transactions on

Software Engineering and Methodology (TOSEM) 11, no. 2, pp 256-290 (2002)7. Steinberg, D., Budinsky, F., Merks, E., & Paternostro, M.: EMF: eclipse modeling

framework. Pearson Education (2008)8. Classen, A., Boucher, Q., Heymans, P.: A text-based approach to feature modelling:

Syntax and semantics of TVL. Science of Computer Programming. pp 1130-1143. (2011)9. Czarnecki, K., Grünbacher, P., Rabiser, R., Schmid, K., : Cool features and

tough decisions: a comparison of variability modeling approaches. In: 6th International workshop on variability modeling of software-intensive systems. pp.173-182. ACM (2012)

10. Haugen, O., Moller-Pedersen, B., Oldevik, J., Olsen, G. K., Svendsen, A.: Adding standardized variability to domain specific languages. In:12th International Software Product Line Conference, 2008, pp. 139-148. IEEE (2008)

11. Czarnecki, K., Helsen, S., Eisenecker, U.: Formalizing cardinality-based feature models and their specialization. Software process: Improvement and practice 10(1) pp 7-29 (2005)

12. Stephan, M., Antkiewicz, M.: Ecore.fmp: A tool for editing and instantiating class models as feature models. University of Waterloo, Technical Report 8, (2008)

13. Kuhlmann, M., Gogolla, M.: From UML and OCL to relational logic and back. In: Model Driven Engineering Languages and Systems. pp. 415-431. Springer Heidelberg (2012)

14. Torlak, E., Jackson, D.: Kodkod: A relational model finder. In: Tools and Algorithms for the Construction and Analysis of Systems, pp. 632-647. Springer Berlin Heidelberg (2007)

15. Heidenreich, F., Kopcsek, J., Wende, C.: FeatureMapper: mapping features to models. In: 30th international conference on Software engineering, pp. 943-944. ACM (2008)

16. Ata, B., , H., Yüceer, R. E.: Alloy Analyzer Kullanarak Emniyet Kritik . In:

Sempozyumu, pp. 51-55, , Turkey (2009) 17. Jouault, F., Allilaire, F., Bézivin, J., Kurtev, I.: ATL: A model transformation tool. Science

of Computer Programming, 72(1-2): pp. 31-39 (2008)18. Gronback, R. C.: Eclipse modeling project: a domain-specific language (DSL) toolkit.

Pearson Education (2009)19. Anastasakis, K., Bordbar, B., Georg, G., & Ray, I.: UML2Alloy: A challenging model

transformation. In: Model Driven Engineering Languages and Systems, pp. 436-450. Springer Berlin Heidelberg (2007)

20. Beuche, D.: Modeling and building software product lines with pure::variants. In: 16th

International Software Product Line Conference-Volume 2, pp. 255-255. ACM (2012)21. Krueger, C. W.: The biglever software gears unified software product line engineering

framework. In: Software Product Line Conference (SPLC 12), pp. 353-353. IEEE (2008)

13