Yazılım Ürün Hatlarında Yetenek Modeli ve - CEUR

<D]ÕOÕPhUQ+DWODUÕQGDYetenek Modeli ve Üstmodel
Senkronizasyonu için bir Yöntem
Ferhat Erata1,2, Moharram Challenger2, Serhat Gezgin1$NJQ'HPLUEDú1,2,
Mehmet Önat3 YH*H\ODQL.DUGDú1,2
1 81,7%LOLúLP7HNQRORMLOHUL$U-Ge
Ltd., Ar-Ge Bölümü, Urla, ø]PLU
{ferhat.erata, serhat.gezgin, akgun.demirbas}@unitbilisim.com
2
(JHhQLYHUVLWHVL8OXVODUDUDVÕ%LOJLVD\DU(Qstitüsü%RUQRYDø]PLU
{geylani.kardas, moharram.challenger}@ege.edu.tr
3
KoçSistem %LOJLYHøOHWLúLP+L]PHWOHUL$ù Ar-Ge Merkezi, hVNGDUøVWDQEXO
mehmet.onat@kocsistem.com.tr
Özet. YD]ÕOÕPUQDLOHVLLoHULVLQGHNLRUWDNOÕNODUYHGH÷LúNHQOLNOHUJHQHORODUDN
yetenek modelleri ya da alana özgü diller ile ifade edilirken, ürün ailesi için
ROXúWXUXODQ \D]ÕOÕP SODWIRUPODUÕ PRGHO JGPO \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 JGPO UQ KDWWÕ \DNODúÕPÕQÕQ
DODQ PKHQGLVOL÷L VUHFLQGH SUREOHP X]D\ÕQGD EXOXQDQ RUWDNOÕNODUÕQ YH GH÷Lú
NHQOLNOHULQPRGHOOHQPHVLLoLQNXOODQÕODQ\HWHQHNPRGHOOHULYH\DDODQD|]JGLO
PRGHOOHUL LOH \D]ÕOÕP UQ 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÷UXODPDYHVÕQDQPDVÕLoLQ de NXOODQÕODELOPHNWHGLUBu yönWHPH GD\DOÕ RODUDN JHOLúWLULOHQ DoÕN ND\QDN NRGOX DUDo \DUGÕPÕ\OD \|QWHP ELU
endüstriyel ar-ge SURMHVLNDSVDPÕQGDJHOLúWLULOHQ\D]ÕOÕPUQKDWWÕPLPDULVLQGH
EDúDUÕ\ODX\JXODQPÕúYHNXOODQÕPÕEXELOGLULGHJ|VWHULOPLúWLU
Anahtar Kelimeler: Alana Özgü Diller, Alloy, Clafer, 'H÷LúNHQOLN<|QHWLPL,
ECore, 0RGHO'|QúP, <D]ÕOÕP0LPDULVL YD]ÕOÕPhUQ+DWWÕ0KHQGLVOL÷L
1
*LULú
YD]ÕOÕP UQ KDWWÕ PKHQGLVOL÷L VUHoOHULQGH, \HQLGHQ NXOODQÕODELOLU ELU SODWIRUP YH
UQKDWWÕPLPDULVLQLQJHOLúWLULOGL÷LELUDODQPKHQGLVOL÷LLOHDODQPKHQGLVOL÷LVUHFL
VRQXFXQGDHOGHHGLOHQYDUOÕNODUGDQUQOHULQJHOLúWLULOGL÷LELUX\JXODPDPKHQGLVOL÷L
VUHFL\HUDOÕU>5]. $ODQPKHQGLVOL÷LVrecinde DODQLoHULVLQGHNLRUWDNOÕNODUYHGH÷Lú
kenlikler belirlenmekte ve genellikle bir yetenek modeli ile ifade edilmektedir. Yetenek ED÷ÕPOÕOÕNODUÕ YHNÕVÕWODUÕøQJdependencies and constraints) GLNNDWHDOÕQDUDNEX
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 UQ KDWODUÕQGD
2
SUREOHP X]D\ÕQÕ WDQÕPODPDGD NXOODQÕOPDNWDGÕU >3]. '6/ JHOLúWLUPHGH \D\JÕQ RODUDN
NXOODQÕODQ DoÕN ND\QDN NRGOX YH JHOLúPLú oDWÕODUGDQ ELUL (FOLSVH (0) øQJ Eclipse
Modeling Framework) teknolojisidir [7]. Bir tür DSL olan yetenek modelleme dillerini, JHOLúPLú ED÷ÕPOÕOÕNYHNÕVÕW\|QHWLPLDoÕVÕQGDQGH÷HUOHQGLUGL÷LPL]GHWLFDULRODQODUÕ
Pure::Variants [20] ve Gears [21@DoÕNND\QDNNRGOXRODQODUÕLVH79/>8] ve Clafer[1]
GLOOHULROXúWXUPDNWDGÕU>9]. %XQODUÕQDUDVÕQGD &ODIHU VD÷ODGÕ÷ÕoRNOX|UQHNOHPHøQJ
multiple instantiationLOLúNLVHOUHIHUDQVNXUPDYHNDOÕWÕPGHVWH÷LLOH|QHoÕNPDNWDGÕU
$QFDN &ODIHU DUDFÕQÕQ (FOLSVH (0) WHNQRORMLOHUL LOH HQWHJUDV\RQX \RNWXU YH (FOLSVH
0RGHOOHPHDOW\DSÕVÕLOHJHOLúWLULOPHPLúWLU%XVHEHSOHEXDUDoLOHJHOLúWLULOHQ\HWHQHN
lerin (0)WDEDQOÕ DODQD|]JGLOJHOLúWLUPHaktivitelerinden biri olan üst modellemeye
JHoLúWHL]OHQHELOLUOL÷LND\EROPDNWDGÕU %XLKWL\DoODUGDQ\RODoÕNDUDNEXELOGLULGHWDQÕ
WÕODQ \|QWHP \HWHQHN PRGHOOHUL YH NRQILJUDV\RQODUÕ LOH VWPRGHO YH PRGHOOHUL DUD
VÕQGD LNL \|QO G|QúP RWRPDWLN RODUDN JHUoHNOHúWLUHELOPHNWHGLU <|QWHPLQ 6$7
øQJBoolean Satisfiability ProblemYH&63øQJConstraint Satisfaction Problem)
çözücüleri ile entegrasyonu sayesinde aODQD |]J GLOLQ GR÷UXODPD YH VÕQDQPDVÕ GD
mümkündür. $UDo(FOLSVH(0)WDEDQOÕPRGHOJGPOJHOLúWLUPH\|QWHPOHULNXOOD
QÕODQWPSURMHOHUGHUDKDWOÕNODNXOODQÕODELOHFHNG]H\GHGLU
Bildirinin takip eden ikinci bölümünde, yöntemimize uygun yetenek modelleme
GLOOHULYHDODQD|]JGLOJHOLúWLUPHWHNQLNOHUL DQODWÕOPÕúWÕU6RQUDNLE|OPGHLVH\DSÕ
ODQoDOÕúPDQÕQ PLPDULELOHúHQOHULYH \|QWHPL WDQÕWÕOPÕú, Clafer ve ECore dilleri araVÕQGDNL G|QúPOHULQ GHWD\ODUÕ DNWDUÕOPÕúWÕU Dördüncü bölümde önerilen yöntemin
gerçek bir endüstriyel ar-ge SURMHVL oÕNWÕVÕ RODQ ELU \D]ÕOÕP UQ KDWWÕ PLPDULVLQGHNL
NXOODQÕPÕJ|VWHULOPLúWLU øOJLOLoDOÕúPDODUNÕVPÕQGDOLWHUDWUGHNLEHQ]HUOHULLOHoDOÕúPD
NÕ\DVODQPÕúWÕU Son bölüm ise önerilen yöntemin bir GH÷HUOHQGLUPHVLni ve ileriye yönelik oDOÕúPDODUÕLoHUPHNWHGLU
2
Yetenek Modelleme ve Alana Özgü Diller
Clafer (class, feature, reference), \D]ÕOÕPUQKDWODUÕQÕQPRGHOOHQPHVLYHDQDOL]LLoLQ
JHOLúWLULlPLúmetinsel bir dildir. Dil, \HWHQHNPRGHOLQL\D]ÕOÕPUQKDWWÕPLPDULVLQL
UQKDWWÕPLPDULúDEORQODUÕQÕYHUQNRQILJUDV\RQXQXELUDUDGDWDULIOH\HELOPHNWH
dir. hVWPRGHOLOH\HWHQHNPRGHOOHPH\LLNLGLOLQDQODPEWQO÷QNRUX\DUDNELUOHú
WLUPHNWHGLU>@$\UÕFDNPHOHUL ve iliúNLOHUL temel alan söz dizim ve semantik sayesinde SAT çözücülerine Alloy [6@ DUDFÕ ]HULQGHQ G|QúP VD÷ODQDUDN PRGHOOHULQ
otomatik analiz edilmesi VD÷ODnPDNWDGÕU. $OOR\ NPH WHRULVLQL YH LOLúNLVHO PDQWÕ÷Õ
temel alan formal bir \DSÕVDOPRGHOOHPHGLOLGLU Birinci Derece Yüklem MDQWÕ÷Õ’ndan
øQJ First-Order Predicate Logic) yararlanarak yüklemleri øQJ predicate) büyük
Boolean ifadelere çevirebilmektedir. Daha sonra da bu ifadeler SAT çözücüleri taraIÕQGDQRWRPDWik olarak analiz edilebilmektedir'ROD\ÕVÕ\ODPDQWÕNVDOIRUPOOHUDUDFD
JLUGLRODUDNYHULOGL÷LQGH Alloy AnalyzerDOWÕQGDNL.RG.RG>14@LOLúNLVHOPRGHOEX
OXFXVX\DUGÕPÕ\ODEXIRUPONDUúÕOD\DFDNPRGHOOHULEXOPD\DoDOÕúPDNWDGÕU
Bu bildiride önerilen yöntem, SAT çözücüsü GHVWH÷LRODQYHELUPHWLQVHO\HWHQHN
PRGHOOHPHGLOLRODQ0HWLQ7DEDQOÕ'H÷LúNHQOLN'LOLLOHGHøQJText-based Variability Language) (TVL) [8@ JHUoHNOHúWLULOHELOLUGL &ODIHU¶LQ WHUFLK HGLOPHVLQGH GLOLQ
3
79/¶HJ|UHVD÷ODGÕ÷Õçoklu örnekleme, LOLúNLVHOUHIHUDQVNXUPDYHNDOÕWÕPGHVWH÷LURO
R\QDPÕúWÕU>9@%X\|QGHQLNLGLOLQV|]GL]LPLLQFHOHQGL÷LQGH79/¶GHQ&ODIHU¶HG|Q
úP RODQDNOÕ LNHQ WHUVL NÕVPL RODUDN PPNQGU %|\OHOLNOH &ODIHU¶LQ 79/ GLOLQL
NDSVDGÕ÷ÕoÕNDUWÕODELOLU
<|QWHPEQ\HVLQGHNXOODQÕODELOHFHNYH(0)LOHHQWHJUHGLOHELOHFHNELUEDúND\H
tenek modelleme dili ise Nesne Yönetim Grubu’nun øQJ Object Management
Group) (OMG) 1 VWDQGDUWODúWÕUPD VUHFLQGH RODQ *HQHO 'H÷LúNHQOLN 'LOL¶GLU øQJ
Common Variability Language) [10@%XELOGLUL\D]ÕOGÕ÷ÕWarihte henüz EDúODQJÕoVX
QXúX \DSÕOPÕú YH DUDo GHVWH÷L VD÷ODQPDGÕ÷Õ LoLQ |QHULOHQ \|QWHP EQ\HVLQGH GH÷HU
OHQGLULOPHPLúWLU $\QÕ ]DPDQGD OMG’nin önerisinde bir model analiz yöntemi ihti\DFÕ EHOLUWLOPHPLúWLU
<DSÕODQ HQGVWUL\HO oDOÕúPDODU YH akademik DUDúWÕUPDODU '6/¶OHULQ \D]ÕOÕP UQ
KDWODUÕQGDNL \HWHQHN PRGHOOHPH GLOOHUL LOH SURJUDPODPD GLOOHUL DUDVÕQGDNL ERúOX÷X
NDSDWPDGD ROGXNoD |QHPOL ROGX÷XQX J|VWHUPHNWHGLU >3,4]. DSL’ler, yetenek modelleme dilleri ile belirtmesi ]RUX\JXODPDPDQWÕ÷ÕQÕLIDGHHWPHGHSUREOHPX]D\ÕVHYL\H
VLQGHNXOODQÕODELOLU [4]. $\QÕ]DPDQGDELU'6/EQ\HVLQGHJHOLúWLULOHQSURJUDP\DGD
PRGHOOHULQGH÷LúNHQOL÷LQL\|QHWPHNWH\HWHQHNPRGHOOHULLOHELUOLNWHNXOODQÕODELOLUOHU
%LU '6/ ROXúWXUPDN LoLQ GLOLQ VRPXW YH VR\XW V|]GL]LPOHULQLQ WDQÕPODQPDVÕ JH
UHNPHNWHGLU<D\JÕQRODUDNEDúYXUXODQVR\XWV|]GL]LPLROXúWXUPD\|QWHPOHUL DUDVÕQ
da gramer ya da üstmodel JHOLúWLUPHJHOPHNWHGLU. $oÕNkaynak kodlu Eclipse ModelOHPH3ODWIRUPXøQJEclipse Modeling PlatformEQ\HVLQGHVXQGX÷XVRPXWYHsoyut
V|]GL]LPL JHOLúWLUPH DUDoODUÕ LOH EX LNL WHNQL÷LQ NXOODQÕPÕQÕ GHVWHNOHPHNWHGLU [18].
Eclipse EMF teknolojisi, ECore LOHVWPRGHOOHPHVD÷ODU [7]. BLUEDúND(FOLSVHSURMHVL
olan Xtext 2 oDWÕVÕise programlama dilleri ve alana özgü dillerin JHOLúWLULOHELOPHVLLoLQ
(%1)JUDPHUROXúWXUPDWHNQL÷LVXQPDNWDGÕUAraç, ECore ve EBNF DUDVÕQGDG|Q
úP \DSDELOPHNWHGLU. %X VHEHSOHUGHQ |WU ROXúWXUGX÷XPX] \|QWHPOHU LoLQ (FOLSVH
0RGHOOHPH3URMHVLQLQNXOODQÕPÕWHUFLKHGLOPLúWLU
3
Yöntem ve Mimari
Yöntemin EDúDUÕVÕJHQHORODUDN&ODIHUYH(FRUHGLOOHULDUDVÕQGD\DWD\G|QúPNXUDO
ODUÕQÕQ HWNLQ ELU úHNLOGH WDQÕPODQPDVÕQD ED÷OÕGÕU $\QÕ ]DPDQGD ELU EDúND |QHPOL
NRQXLVHL]OHQHELOLUOL÷LQVD÷ODQPDVÕYHJHOLúWLULOHQDODQD|]JGLOOHULQNROD\OÕNOD&OD
IHUDUDFÕLOH analiz edilebilmesidir. Bu sebeple PRGHOGHQPRGHOHELUG|QúPGLOLRODQ
ATL [17] gibi bir dil kullanmak yerine LNL GLO DUDVÕQGD VHQNURQL]DV\RQ VD÷ODPDN
DPDFÕ\OD ùHNLO ¶GHNL PLPDUL JHOLúWLULOPLúWLU %LU VÕQÕI PRGHOOHPH J|VWHULP VLVWHPL
olan Ecore, bir OM*VWDQGDUGÕRODQhVW1HVQH%LQDVÕ¶QÕQ øQJMeta-Object Facility)
(MOF) PRGHOOHPH GLOOHULQLQ VWPRGHOOHULQL LIDGH HWPHN LoLQ JHOLúWLULOHQ YH ELU alt
kümesi olan Essential 02)¶XQ HúOHQL÷LGLU (&RUH VWPRGHOL NHQGL NHQGLQL WDQÕPOD
1
2
Object Management Group: http://www.omg.org/
Xtext framework, http://eclipse.org/Xtext
4
\DELOHQELU\DSÕGDGÕU'|QúPOHULPL]LoLQKHPKHGHIKHPGHND\QDNVWPRGHOLGLUYH
(FOLSVH(0)SURMHVLLoHULVLQGHQHOGHHGLOPLúWLU(ecore.ecore 3).
zĞƚĞŶĞŬDŽĚĞůŝǀĞmƐƚŵŽĚĞů^ĞŶŬƌŽŶŝnjĂƐLJŽŶƌĂĐŦ
ůĂĨĞƌƌĂĐŦ
<<conforms to>>
mdd4cca.cfr
<<transforms to>>
Clafer
Concrete Syntax
(Full Notation)
(Xtext)
Sync
Concrete Syntax
(Xtext)
Ecore
Concrete Syntax
(Ecore Model
Editor)
<<syntax mapping>>
<<syntax mapping>>
<<syntax mapping>>
<<syntax mapping>>
Clafer
Abstract Syntax
(clafer.ecore)
Sync
Abstract Syntax
(sync.ecore)
ECore
Abstract Syntax
(ecore.ecore)
<<conforms to>>
<<conforms to>>
<<conforms to>>
mdd4cca.des
mdd4cca.sync
mdd4cca.ecore
Clafer
Abstract Syntax
(Full Notation)
(clafer.bnf)
<<mapping>>
<<conforms to>>
mdd4cca.des
Eclipse Modeling Framework
Clafer
Concrete Syntax
(Concise Notation)
<<transforms to>>
ůůŽLJĂƌĂĐŦ
<<conforms to>>
mdd4cca.als
Alloy
Abstract Syntax
<<transforms>>
<<transforms>>
<<conforms to>>
<<syntax mapping>>
instances.mdd4cca
Alloy
Concrete Syntax
<<transforms>>
ùHNLO. 1. Yöntem Mimarisi
&ODIHUDUDFÕ\HWHQHNPRGHOOHULQLYHNRQILJUDV\RQODUÕQÕRWRPDWLNRODUDN$OOR\GLOL
QHoHYLUHELOPHNWHGLU%XVD\HGHJHOLúWLULOHQELUVWPRGHOYHPRGHO|UQHNOHULRWRPDWLN
RODUDN &ODIHU GLOLQH G|QúWUOHUHN VÕQDQDELOPHNWHGLU %X VHEHSOH JHOLúWLUGL÷LPL]
Eclipse eklentisi, en günFHO$OOR\YH&ODIHUDUDoODUÕQÕEQ\HVLQGHWHNUDUGD÷ÕWPDNWD
GÕU .XOODQÕFÕ EX DUDoODUÕQ HQWHJUDV\RQX LOH X÷UDúPDPDNWDGÕU &ODIHU DUDFÕ LNL J|VWH
ULPNXOODQPDNWDGÕULONLNÕVDYH|]V|]GL]LPLLoHUHQconcise notation¶GÕUYH.cfr uzanWÕOÕGRV\DODUGDVDNODQPDNWDGÕU(Tablo 1D'L÷HULLVH.des X]DQWÕOÕGRV\DODUGDVDNODQDQ
ve tam notasyonu temsil eden desugared notation¶GÕU 7DEOR .b). Bu notasyon bir
BNF gramer ile gösterilebilmektedir. Bu durumda, “concise notation”¶ÕQ somut sözdizimini “desugared notation”¶ÕQ LVH VR\XW V|] GL]LPLQL ROXúWXUGX÷X oÕNDUWÕODELOLU
&ODIHUDUDFÕNHQGL\RUXPOD\ÕFÕVÕQD³FIU´X]DQWÕOÕELUPRGHOLLOHWPHGHQ|QFHRQX³GHV´
X]DQWÕOÕ ELU PRGHOH |Q-LúOHPGHQ JHoLUHUHN YHUPHNWHGLU .ÕVÕW GLOL LoHUPH\HQ VR\XW
sözGL]LPLùHNLO¶GHJ|UOPHNWHGLU&ODIHU\RUXPOD\ÕFÕLVHV|]dizimine özgü kontrolOHUL YH LVLP o|]POHPH LúOHPLQGHQ JHoLULOPLú PRGHOOHUL $OOR\ GLOLQH G|QúWUHUHN
NPHWHRULVLQHYHLOLúNLVHOPDQWÕ÷D |]JRODUDNDQODPODQGÕUÕU. Clafer somut sözdizimi
YH NÕVÕW dili, oDOÕúPDPÕ]GD [2]’den HOGH HWWL÷LPL] ELU %1) JUDPHUL (clafer.bnf 4) ile
temsil edilmektedir. Bu gramer, EMF entegrasyonu için bir ECore üstmodeline döQúWUOPú clafer.ecore 5 ) ve &ODIHU¶LQ ELU ,'( VXQPD\ÕúÕQGDQ |WU Xtext DUDFÕ
\DUGÕPÕLOH(FOLSVHX\XPOXELUPHWLQVHOVRPXWV|]GL]LPLROXúWXUXOPXúWXU
3
4
5
Tam ECore üstmodeli: http://www.mdd4cca.com/metamodels/ecore.ecore
Tam BNF: http://www.mdd4cca.com/grammars/clafer.ebnf
Tam Clafer üstmodeli: http://www.mdd4cca.com/metamodels/clafer.ecore
5
‫ ۧ݀ݎܽܥܩۦ ۧݏܾܣۦ ֜ ۧݎ݂݈݁ܽܥۦ‬string ‫ۧݏݐ݈݊݁݉݁ܧۦ ۧ݀ݎܽܥۦ ۧݐ݁݃ݎܽܶۦ ۧݎ݁݌ݑܵۦ‬
‫ܜ܋܉ܚܜܛ܊܉ | ֜ ۧݏܾܣۦ‬
‫ۧݐݏ݅ܮܫܧۦ ۧݐ݈݊݁݉݁ܧۦ | ֜ ۧݐݏ݅ܮܫܧۦ } ۧݐݏ݅ܮܫܧۦ { ֜ ۧݏݐ݈݊݁݉݁ܧۦ‬
‫ۧݐ݊݅ܽݎݐݏ݊݋ܥۦ | ۧݎ݂݈݁ܽܥۦ ֜ ۧݐ݈݊݁݉݁ܧۦ‬
‫ ׷ | ֜ ۧݎ݁݌ݑܵۦ‬string
‫ ۧ݀݊݅ܭۦ | ֜ ۧݐ݁݃ݎܽܶۦ‬string
‫ ֜ ۧ݀݊݅ܭۦ‬՜ | ժ
‫ۧ݀ݎܽܥܰۦ | ܜܘܗ | ܠܝܕ | ܚܗ | ܚܗܠ | ֜ ۧ݀ݎܽܥܩۦ‬
‫ | ? | ֜ ۧ݀ݎܽܥۦ‬+ | ‫ۧ݀ݎܽܥܰۦ | כ‬
‫ ֜ ۧ݀ݎܽܥܰۦ‬integer . . ‫ۧݎ݁݃݁ݐ݊ܫݔܧۦ‬
‫ | כ ֜ ۧݎ݁݃݁ݐ݊ܫݔܧۦ‬integer
ùHNLO. 2. Clafer yetenek modelleme dili soyut sözdizimi NÕVÕWGLOLLoHUPH\HQ>@ (clafer.bnf4)
Tablo 1. Clafer, $OOR\YH(FRUHG|QúPü için bir örnek senaryo gösterimi
a. Case1.cfr (Clafer Concise Notation)
b. Case1.ecore (ECore Notation)
abstract A
name : string
age : integer
b : B
c -> C
abstract B
abstract 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/integer
pred show {}
run show for 1 but 1 c15_B
abstract 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 {}
<HWHQHNPRGHOOHULYHNRQILJUDV\RQODUÕLOHVWPRGHOYHPRGHOOHULDUDVÕQGDLNL\|Q
O G|QúP RWRPDWLN RODUDN JHUoHNOHúWLUHELOPHN DGÕQD ELU GL]L G|QúP NXUDOÕQÕQ
DUDFÕQEQ\HVLQGHJHUoHNOHúWLULOPLúROPDVÕJHUHNOLGLUøNLQRWDV\RQXQVR\XWV|]GL]LmOHUL NÕ\DVODQGÕ÷ÕQGD (0) oDWÕVÕ ELU PRGHOOHPH DOW \DSÕVÕ ROXúWXUDELOPHN DGÕQD &OD
IHU¶LQ \HWHQHN PRGHOOHPH GLOLQH J|UH GDKD JHOLúPLúWLU gWH \DQGDQ &ODIHU LVH $OOR\
GLOLQGHQ HVLQOHQGL÷L %LULQFL 'HUHFHGHQ <NOHP 0DQWÕ÷Õ NÕVÕW GLOL VHEHEL\OH ROGXNoD
NDUPDúÕNWÕU%XIDUNOÕOÕNODUGDQ|WUWDQÕPODQDQG|QúPNXUDOODUÕQGDIDUNOÕ\|QWHP
6
OHUNXOODQÕOPDVÕLKWL\DFÕGR÷PXúWXU&ODIHUYH(&RUHGLOOHULDUDVÕ\DWD\YHoLIW\|QO
G|QúPOHU;WHQG 6 GLOLNXOODQÕODUDNJHUoHNOHúWLULOPLúWLU
Tablo 2. &ODIHUYH(FRUHJHQHOHúOHúWLUPHWDEORVXoLIW\|QOG|QúPNXUDOODUÕ
a. &ODIHU.DYUDPODUÕ
Clafer
b. (&RUH.DYUDPODUÕ
(&ODVV((QXP('DWD7\SH&ODIHUKL\HUDUúL
\DSÕVÕQDJ|UHGH÷LúNHQOLNJ|VWHUPHNWHGLU
EAttribute (EString, EInt)
EAttribute (EBoolean, EDate, EDouble)
String, Integer (built-in types)
Clafer Typing
µDEVWUDFW(7\SH¶úHNOLQGH&ODIHUUHWLOLU
Reference Clafer
Reference Clafer (‘:’ ve ‘->’)
Reference &ODIHU¶ODUoLIW\|QOYDUVD\ÕOÕU
V\QFHFRUHG|QúPKDWÕUODU
Clafer Inheritance
Clafer Merging
Clafer Nesting
V\QFHFRUHG|QúPKDWÕUODU
Cardinality (lone, some, any, one, interval)
EReference
EReference.IsContainment: EBoolean
EReference.IsOpposite: EBoolean
V\QFHFRUHG|QúPKDWÕUODU
Single Inheritance
Multiple Inheritance
Ecore, iç içe EClass’lar yuvalanmaz (inner
(&ODVVV\QFHFRUHG|QúPKDWÕUODU
(EAttribute | EReference)
.Multiplicity.(LowerBound and UpperBound)
dHúLWOL2&/LIDGHOHULüretilir.
EClass.IsAbstract: EBoolean
V\QFHFRUHG|QúPKDWÕUODU
ECore Instances
Group Cardinality (xor, or, mux, opt)
.DUúÕOÕNJHOHFHNDoÕNELUDQODPÕ\RNWXU
V\QFHFRUHG|QúPKDWÕUODU
Singleton Concrete Clafers
øNLGLOHDLWNDYUDPODUÕQHúOHúWLULOGL÷L7DEOR LQFHOHQGL÷LQGHED]ÕNDYUDPODUÕQGL÷H
ULQGH WDP NDUúÕOÕ÷ÕQÕQ ROPDGÕ÷Õ \D GD ELU DQODP LIDGH HWPHGL÷L J|UOPHNWHGLU H÷LN
\D]ÕOPÕúRODQODU'|QúPNXUDOODUÕEXJLELE|OJHOHUGH|QHUGL÷LPL]oHúLWOL\|QWHPOH
ULNXOODQPDNWDGÕU\HQL&ODIHUWUHWPH&ODIHUELUOHúWLUPH2&/NXUDOODUՁUHWPHJLEL
Temel d|QúPNXUDOODUÕQÕQX\JXODQÕúÕ7DEORYH7DEORNDUúÕODúWÕUÕODUDNLQFHOHQH
ELOLU'|UGQFE|OPGHVXQXODQ|UQHNVHQDU\RGDEXWDEORGDNLG|QúPOHULQbüyük
ELU NÕVPÕ X\JXODQPÕúWÕU Örnek bir yetenek modeli, Tablo 1.a’da, otomatik olarak
DUDFÕQUHWWL÷LVWPRGHOLVH7DEOo 1E¶GHJ|VWHULOPLúWLUgWH\DQGDQ7DEOR1.c Clafer
\RUXPOD\ÕFÕVÕQDJ|QGHULOHQQotasyonu gösterirken Tablo 1.d ise bu gösterimden üretilen Alloy modelidir. &ODIHUYH(&RUHGLOOHULNDYUDPODUÕDUDVÕQGa WDPELUHúOHPHROPD
\ÕúÕED]ÕGXUXPODUGD GLOLROXúWXUDQ\DSÕODUÕQVÕUDODQÕúGHVHQOHULQH|]JRODUDNHúOHPH
DOJRULWPDODUÕ NXUJXODQPDVÕQD VHEHS ROPXúWXU '|QúPOHUGHNL JLGLú-JHOLúOHUGH (øQJ
roundtrip) ELOJLND\ÕSODUÕ\DúDQPDNWDiki LWHUDV\RQVRQUDVÕLON PRGHOHXODúÕODPDPDN
WDGÕU %X VHEHSOH EX LNL GLOLQ G|QúPOHULQH |]J olarak ELU GLO JHOLúWLULOPLúWLU
sync.ecore üstmodeli bu dilin soyXWV|]GL]LPLQLROXúWXUPDNWDGÕU Bu üstmodel, Xtext
DUDFÕ\DUGÕPÕ\OD(%1)JUDPHULQHG|QúWUOPúYH(FOLSVHX\XPOXPHWLQsel somut
6
Xtend Java dialect, http://www.eclipse.org/Xtend/
7
V|]GL]LPL ROXúWXUXOPXúWXU ùHNLO ¶WH EDVLWOHúWLULOPLú sync.ecore üstmodeli gösterilmektedir. .LPL PRGHO HOHPDQODUÕ ecore.ecore ve clafer.ecore VWPRGHOOHULQGHQ oD÷
UÕOPDNWDGÕU
ùHNLO. 3. %DVLWOHúWLULOPLú senkronizasyon ve izlenebilirlik üstmodeli (sync.ecore) 7
4
<|QWHPLQ.XOODQÕOGÕ÷ÕELU<D]ÕOÕPhUQ+DWWÕ0imarisi
*HOLúWLULOHQ\|QWHP%WQOHúLNøoHULN8\JXODPDODUÕQÕQ0RGHO*GPO*HOLúWLULOPH
si 8 (mdd4cca) isimli endüstriyel ar-ge projesinin tüm alana özgü görsel ve metinsel
GLOOHULQLQ JHOLúWLULOPHVLQGH NXOODQÕOPÕúWÕU Projede, eQGVWULGH ROGXNoD \D\JÕQ RODUDN
NXOODQÕODQ bir KurXPVDO øoHULN <|QHWLP SODWIRUPX olan Microsoft SharePoint Foundation 9 (MSF) üzeriQGHELU%WQOHúLNøoHULN8\JXODPDVÕ 10 &&$\DGDELU\D]ÕOÕP
UQKDWWÕROXúWXUDELOHFHN&&$úDEORQXJHOLúWLULOPHVLLoLQIDUNOÕEDNÕúDoÕODUÕLOHPR
GHOOHPHQLQ VD÷ODQDELOHFH÷L J|UVHO ELU DUDo VHWLQLQ KD]ÕUODQPDVÕ IDDOL\etleri yürütülPúWUAlana özgü kavraPODUYHDUDODUÕQGDNLLOLúNLOHULJ|UVHOYHPHWLQVHOPRGHOOHPH
DUDoODUÕQDPPNQROGX÷XQFD\DQVÕWPDN LoLQ|QFHDODQNDYUDPODUÕQDGDLUELUNDYUDP
V|]O÷ oDOÕúPDVÕ \DSÕOPÕú HQGVWUL\HO VHQDU\RODUGD VÕNOÕNOD NDUúÕODúÕODQ LKWL\DoODU
GH÷HUOHQGLULOPLú gerekli pD]DUDQDOL]LoDOÕúPDODUÕ\UWOPútür. SRQUDVÕQGDLVH Clafer yetenek modelleri bu kavramlar üzerinden ROXúWXUXOPXútur. *HOLúWLULOHQ \HWHQHN
modeli, oHúLWOLörnek konfigürasyonlar HúOL÷LQGH&ODIHUDUDFÕQÕQVD÷ODGÕ÷Õ$OOR\GLOLQH
G|QúPile DQDOL]HGLOPLútir. Bu yetenek modellerinden|QHULOHQ\|QWHP\DUGÕPÕ\OD
7
8
9
10
Tam sync.ecore üstmodeli: http://www.mdd4cca.com/metamodels/sync.ecore
Model-driven Development for Composite Content Applications: http://www.mdd4cca.com.
Microsoft SharePoint Foundation: http://technet.microsoft.com/library/cc303422.aspx
Composite Content Applications: https://www.gartner.com/doc/1286414/
8
SUREOHP X]D\ÕQÕ VÕQÕUODQGÕUDFDN oHúLWOL VWPRGHOOHU WUHWLOPLúWLU 3URMHQLQ JHOLúWLUPH
oHYULPOHULQGH VWPRGHOOHUGH \DSÕODQ GH÷LúLNOLNOHU RWRPDWLN RODUDN |QHULOHQ \|QWHP
\DUGÕPÕ\OD \HWHQHN PRGHOOHULQH \DQVÕWÕODELOPLúWLU gWH \DQGDQ IDUNOÕ DODQODUGDNL oH
úLWOL&&$|UQHNOHULQHDLWSURMHNRGODUÕLQFHOHQPLúYHEHOLUOHQHQPLPDUL]HULQGHben]HUOLNYHGH÷LúNHQOLNDQDOL]L\DSÕOPÕúWÕUYHGH÷LúNHQOLNOHUHDLWWPELOJL\LPRGHOOH\H
ELOHFHNELUo|]PX]D\ՁVWPRGHOLUHWLOPLúWLU. &ODIHUGLOL\DOÕQOÕ÷ÕVD\HVLQGHo|]P
X]D\Õ VR\XW V|]GL]LPLQLQ WDVDUÕPÕQGD GD NXOODQÕOPÕúWÕU Önerilen yöntem sayesinde
&ODIHUPRGHOOHULQGHQ(&RUHVWPRGHOLQHJHoLúRWRPDWLNRODUDNVD÷ODQPÕúWÕU %LOLQGL÷L
üzere pUREOHPX]D\ÕDODQX]PDQODUÕQD\DNÕQLNHQo|]PX]D\ÕLVHPLPDUL\H\|QHOLN
UHWLOHFHNELOHúHQOHU içermesi sebebiyle JHOLúWLULFLOHUHGDKD\DNÕQGÕU [3]øNLVWPRGHO
DUDVÕQGDNL VR\XWODPDERúOX÷XLVHSUREOHPX]D\ՁVWPRGHOLQGHQ o|]PX]D\Õ üstmodeline PRGHO G|QúP NXUDOODUÕ LOH RWRPDWLNOHúWLULOHUHN NDSDWÕOPÕúWÕU. d|]P X]D\Õ
modellerinden ise platforma ait oHúLWOL \D]ÕOÕP ELOHúHQOHUi otomatik üretilebilmektedir.
Tablo 3. <D]ÕOÕPUQKDWWÕQÕQLoHULNEDNÕúDoÕVÕQDDLW\HWHQHNOHUi (mdd4cca.cfr) 11
a. Clafer Yetenek Modeli
b. Clafer Konfigürasyon
abstract NamedElement
name: string
EgeLibrary : ContentModel
[name = "EGE_Kutuphanesi"]
[web = LibraryWebSite]
abstract ContentModel : NamedElement
web -> Web +
ownedEntityModel->EntityModel?
LibraryWebSite : Web
[name = "Kutuphane_Web_Sitesi"]
TezKitapligi : List
[Library][name="Tez_Kitapligi"]
[contentTypes
= Dissertation, MasterThesis]
OgrenciListesi : List
[List][name="Ogrenci_Listesi"]
[contentTypes = Student]
abstract Web : NamedElement
ownedList : List *
ownedWeb : Web *
abstract List : NamedElement
contentTypes -> ContentType *
xor Type
Library
List
abstract ContentType : NamedElement
isAbstract : integer ?
ownedField : Field *
lookupEntity -> Entity ?
Student : ContentType
[name = "Ogrenci"]
studentNo : Field
[Number][name = "Ogrenci_No"]
abstract Field: NamedElement
xor Type
Number
Boolean
Text
Reference
contentType -> ContentType
abstract Thesis: ContentType
[name = "Tez"]
thesisName: Field
[Text][name = "Tez_Adi"]
student: Field
[Reference][name = "Ogrenci"]
[contentType = Student]
abstract EntityModel : NamedElement
database: string
entities: Entity *
MasterThesis: Thesis
Dissertation: Thesis
abstract Entity: NamedElement
baseType -> Entity ?
lookupContent -> ContentType *
11
Tam yetenek modeli: http://www.mdd4cca.com/features/mdd4cca.cfr
9
øoHULNPRGHOOHPHGLOL6KDUH3RLQWSODWIRUPX]HULQGHNRúDFDNELUSURMHQLQLoHUL÷L
QLQ WDQÕPODQGÕ÷Õ PRGHOGLU BX GLOLQ &ODIHU WDEDQOÕ \HWHQHN PRGHOLQLQ (yer limitleri
sebebiyle) EDVLWOHúWLULOPLú ELU KDOL Tablo 3D¶GD VXQXOPXúWXU Bu model, EWQOHúLN
içerik X\JXODPDODUÕLoLQELUDODQPRGHOLVXQDUNHQEQ\HVLQGHDQDOL]DPDoOÕELU\DGD
ELUGHQ oRN DODQD X\JXQ NRQILJUDV\RQ LOH ELUOLNWH WDVDUODQPÕúWÕU Örnek bir konfigürasyon Tablo 3E¶GHJ|VWHULOPLúWLU%XEDVLWOHúWLULOPLú|UQHNWH6KDUH3RLQWøoHULNPR
delleme ile EDM 12 IRUPDOL]PLQL EWQOHúWLUHQ ELU GLOH DLW \HWHQHNOHU J|VWHULOPLúWLU
$ODQ X]PDQÕQÕQ LoHULN PRGHOL EQ\HVLQGH ELU Web YDUOÕ÷Õ WDQÕPODPDVÕ ]RUXQOXGXU
Web LoHULVLQGH LVWHGL÷L NDGDU List YDUOÕ÷Õ HNOH\HELOLU +HU ELU OLVWH LoHULVLQGH LVWHGL÷L
kadar içerik türü (content type) WDQÕPOD\DELOPHNWHGLU
ùHNLO. 4. Otomatik üretilen mdd4cca üstmodeli (mdd4cca.ecore) 13
'|QúP L] ELOJLOHUL DUDo WDUDIÕQGDQ VHQNURQL]DV\RQ modelinde otomatik olarak
saklanmakta ve JHOLúWLULOHQ PHWLQVHO VRPXW V|]GL]LPL \DUGÕPÕ\OD G|QúP
NXUDOODUÕQGDGH÷LúNHQOLN uygulanabilmektedir. 2UWD\DoÕNDQ|UQHN PRGHOsync.ecore
üstmodeline uygundur. Araç, mdd4caa.cfr yetenek modelinden, ùekil 4’da yer
limitleri VHEHEL\OHEDVLWOHúWLULOPLúKDOL gösterilen mdd4cca.ecore üstPRGHOLQLUHWPLú
tir. Konfigürasyona dair Clafer’leri ise mdd4cca.ecore üstmodeline uygun örnek moGHOOHURODUDNDOJÕODPÕúYHinstances.mdd4cca 14 GRV\DVÕLoHULVLQGH;0,VHULOHúWLUPLúWLU
5
øOJLOLdDOÕúPDODU
>@oDOÕúPDODUÕQGDClafer \DSÕODUÕ80/VÕQÕIGiyDJUDP\DSÕODUÕLOHNDUúÕODúWÕUÕOPÕúWÕU
Ancak belirtilen G|QúP NXUDOODUÕ sadece Clafer içerisinde alan modelleme ya da
12
13
14
Entity Data Model: http://msdn.microsoft.com/library/ee382825.aspx
Tam mdd4cca üstmodeli: http://www.mdd4cca.com/metamodels/mdd4cca.ecore
Tam örnek modeller: http://www.mdd4cca.com/examples/instances.mdd4cca
10
ELOHúHQPRGHOLWDQÕPODPD\HWHQH÷LQLQJ|VWHULOPHVLQH yöneliktir. 6XQGX÷XPX]\|QWH
PLQDPDFÕQDX\JXQRODUDN(MF uyumlu bütün bir süreç ve DUDoVXQPDPDNWDGÕUDöQúPNXUDOODUÕVDGHFHVWDWLN\DSÕVDOOÕ÷ÕNDSVDPDNWDGÕU$\UÕFDECore örnek modelleri ve ileri yönlü bir d|QúPVRQUDVÕ(&RUHPRGHOLQGHROXúPDVÕJHUHNHQ 2&/NÕVÕWOD
UÕEXoDOÕúPDODUGDLQFHOHQPHPLúWLU. Clafer ile UML \DNODúÕPÕ NDUúÕODúWÕUGÕ÷ÕQGD Clafer sözdiziminin 80/VÕQÕIGL\DJUDPGLOLQLQVR\XWV|]GL]LPLRODQ MOF üstmodelini
NDSVDGÕ÷ÕGúQOHELOLU ancak MOF üstmodeli daha önceki bölümde J|VWHULOGL÷LJLEL
\DSÕVDO PRGHOOHPH NRQXVXQGD GDKD fazla bilgi içermektedir. ECore üstmodelinin
02)¶XQ ELU JHUoHNOHúWLULPL ROGX÷XQX GúQUVHN EHOLUWWL÷LPL] VHEHSWHQ |WU bir
ECore modeOLQGHQ&ODIHUPRGHOLQHJHoLúWH ELOJLND\ÕSODUÕ \DúDQDFDNWÕU Bu DoÕGDQ da
bu oDOÕúPDODU bir çözüm önermemektedir.
Clafer’i JHOLúWLUen Kanada, Waterloo Üniversitesi Generative Software Development Lab, D\QÕ ]DPDQGD (&RUH VWPRGHOOHULQL &ODIHU¶H G|QúWUHQ ecore2clafer 15
LVPLQGH ELU DUDo VXQPDNWDGÕU $UDo WHUVL G|QúP GHVWHNOHPHPHNWHGLU dDOÕúPD
sadece ECore üstmodellerini Abstract Clafer \HWHQHNOHULQH G|QúWUHELOPHNWHGLU
'|QúPNXUDOODUÕNÕVÕWODUÕGHVWHNOHPHPHNWHGLU2\VD bir Clafer PRGHOLQGHWDQÕPOD
nabilen Group Cardinalities, Sub-Clafers, Set Partitions gibi dile özgü kavramlar
(&RUHGLOLQGHROPDGÕ÷ÕLoLQELUVWPRGHOGHDQFDN2&/NÕVÕWODUÕHúOL÷LQGHDQODPODQGÕ
UÕODELOLUOHU
gQHUGL÷LPL]\|QWHPH amaç yönünden HQ\DNÕQ oDOÕúPD, D\QÕHNLELQ Clafer öneriOHULQGHQ |QFH JHOLúWLUGLNOHUL Ecore.fmp DUDFÕGÕU [12]. <DNODúÕP, ECore modellerini
\HWHQHN PRGHOOHULJLELHOHDOÕSG]HQOHPHYH|UQHNOHPHRODQD÷ÕVD÷ODPDNWDGÕU ÇaOÕúPD HOHPDQ VD\ÕVÕ WHPHOOL \HWHQHN PRGHOOHPH øQJ ³Cardinality-based feature
modeling”) [11] \DNODúÕPÕQD uyumlu JHOLúWLULOHQaraca özel bir üstmodel önermektedir. Clafer, bu dili NDSVDPDNODEHUDEHUGDKDDQODúÕOÕU|]YHWDP bir semantik kurmakWDGÕU>1,2]. Araç(&RUHPRGHOOHULQGHoHúLWOLannotation’lar kullanarak ECore üstmodelini JHQLúOHWPHVL\OHPRGHOHOHPDQODUÕQD\HWHQHNPRGHOLHOHPDQÕJLELGDYUDQPDNWD
GÕU Bu sebeple bu yöntem sadece araç ile uyumlu bir ECore üstmodelini yetenek
PRGHOOHULQH G|QúWUHELOLU Bu yöntem, senkronL]DV\RQ SUREOHPOHULQL o|]\RUPXú
gibi gözükse de iki dilin formalizmLQLYHDQODPÕQÕHúLWOHPHNWHGLUAraç modelleme ve
konfigürasyon içiQNÕVÕWODUÕGHVWHNOHPHPHNWHROXSELUo|]FLOHHQWHJUDV\RQX\RNWXU
FeatureMapper [15@ DUDFÕ \D]ÕOÕP UQ KDWODUÕQGD \HWHQHN PRGHOOHUL LOH o|]P
X]D\ÕPRGHOOHULQLHúOHúWLUHUHNPRGHOJGPO\D]ÕOÕPPKHQGLVOL÷LVUHFLEQ\HVLQGH
\HWHQHN PRGHOOHULQLQNXOODQÕPÕQÕ KHGHIOH\HQELUoDOÕúPDGÕU<HWHQHN PRGHOOHULQGHNL
yetenekler LOHRQODUÕQ(&RUHPRGHOOHULQGHNLJHUoHNOHúWLULPOHULQHHúOHúWLUHELOPHNLoLQ
ELUVWPRGHO|QHUPHNWHGLU%XVWPRGHO\DUGÕPÕLOHELU\HWHQH÷LQVHoLOLSVHoLOPHmesine göre, HúOHúWLULOHQ o|]P X]D\Õ PRGHOLQGH HNVLOWPH \DSPDNWDGÕU Ecore.fmp çaOÕúPDVÕQGDNLJLELHOHPDQVD\ÕVÕWHPHOOL\HWHQHNPRGHOOHULQL destekleyen araca özel bir
VWPRGHO NXOODQPDNWDGÕU %X VHEHSOH Ecore.fmp LOH EHQ]HU ]D\ÕIOÕNODUÕ SD\ODúPDNWD
GÕU$\QÕ]DPDQGD|QHUGL÷LPL]\|QWHPSUREOHPX]D\Õ\DGDo|]PX]D\ÕQGDJHOLúWL
ULOHQ (0) WDEDQOÕ DODQD |]gü dillerin &ODIHU GLOLQH HúOHúWLUHUHN JHOLúWLULOPHVL (veya
WDPWHUVLQLQVD÷ODQDELOPHVL\|QQGHQIDUNOÕOÕNJ|VWHUPHNWHGLU
15
Ecore to Clafer Translator: http://gsd.uwaterloo.ca/ecore2clafer
11
[16@oDOÕúPDVÕQGDHPQL\HWNULWLNELUDYL\RQLN\D]ÕOÕPÕQGR÷DOGLOGH\D]ÕOPÕúJHUHN
VLQLPOHUL PDQWÕNVDO LIDGHOHUH oHYULOPLú SUREOHP DODQÕ $OOR\ GLOL LOH PRGHOOHQPLú
WXWDUVÕ]OÕNODUYHHNVLNOLNOHUEDNÕPÕQGDQDQDOL]HGLOPLúWLU6XQXODQ\|QWHPEQ\HVLQGH
NDUúÕODúÕODQ ]RUOX÷XQ $OOR\ GLOL LOH PRGHOOHPHGH KDUFDQDQ HIRU ROGX÷X EHOLUWLOPLúWLU
Bu bildiride önerilen yöntem, bu yolla analiz edilebilecek dillerin Alloy dili yerine
gereksinim PRGHOOHPH\HGDKD\DNÕQRODQ&ODIHULOH\DSÕOPDVÕQÕRODQDNOÕNÕOPDNWDGÕU
6
6RQXoYHøOHUL\H<|QHOLNdDOÕúPDODU
Bu bildiride, metinsel bir yetenek modelleme dili olan Clafer ile bir üstmodelleme dili
RODQ(&RUHDUDVÕQGDsenkronizasyon VD÷OD\DQELU\|QWHP|QHULOPLúWLU Yöntem yetenek modelleri ve NRQILJUDV\RQODUÕ ile üstmodel ve modelleri DUDVÕQGDLNL\|QOG|Q
úPü RWRPDWLN RODUDN JHUoHNOHúWLUHELOPHNWHGLU Bu iki gösterim sistemi DUDVÕQGDNL
G|QúPNXUDOODUÕQD|]JRODUDNJHOLúWLULOHQGLO\DUGÕPÕ\ODELU|QFHNLG|QúPNXUDO
ODUÕKDWÕUODQDELOPHNWHGLU%|\OHOLNOH&ODIHUYH(&RUHDUDVÕQGDNLDQODPVDOIDUNOÕOÕNWDQ
ötürü d|QúPOHUVRQXFXRUWD\DoÕNDQELOJLND\EÕ JLGHULOPLúWLU$\QÕ]DPDQGDG|Q
úP NXUDOODUÕQGDNLGH÷LúNHQOLND\QÕ PRGHO \DUGÕPÕ\OD yönetilebilmekte, JHOLúWLULFL\H
G|QúP NXUDOODUÕQGD seçim yapabilme RODQD÷Õ VD÷ODPDNWDGÕU *HOLúWLULOHQ DUDo VHWL,
endüstriyel senaryolarda uygulanmak üzere Eclipse eklentisi olarak GD÷ÕWÕOPDNWDGÕU 16.
dDOÕúPDPDODUÕPÕ]&ODIHUGLOLQLQ'6/JHOLúWLULPLQGH|QHPOLLNLNDWNÕVÕQÕQGDDUDúWÕ
UÕOPDVÕQÕYHJHoHUOHPHVLQLsD÷ODPÕúWÕU%LULQFLNDWNÕ(&RUHLOHVWPRGHOOHPH\DSPDN
yerine ifade gücü yüksek ve basit Clafer dilini kullanarak bir DSL’in soyut sözdiziPLQLQ WDVDUODQPDVÕQÕQ PPNQ ROGX÷XQXQ J|VWHULOPHVLGLU <DSWÕ÷ÕPÕ] G|QúPOHU
Clafer’in ECore için yeni bir metinsel somut sözdizimi olarak kullanÕODbileFH÷LQLGH
J|VWHUPHNWHGLUøNLQFL|QHPOLNDWNÕLVH&ODIHUGLOLQLQ6$7YH&63o|]FOHUi entegUDV\RQXVD\HVLQGHJHOLúWLULOHQbir DSL’i D\UÕFDELUo|]FLOHHúOHPHye gerek kalmadan GR÷UXODPDYHNRQWUROHWPHRODQD÷ÕVD÷OD\DELOPHVLQLQJ|VWHULOPHVLGLU
gQHUGL÷LPL] \|QWHP &ODIHU \HWHQHN PRGHOlerinden gelen belli ELU WDNÕP NÕVÕWODUÕ
(&RUH 2&/ LIDGHOHULQH G|QúWUHELOPHNWHGLU %X G|QúP NXUDOODUÕQÕQ beklenen
G]H\GH ROPDPDVÕ &ODIHU NÕVÕW GLOLQLQ $OOR\ WDEDQOÕ ROPDVÕQGDQ |WUGU $OOR\ LOH
UML ve 2&/ DUDVÕQGDNL oLIW \|QO G|QúP probleminin [13,19] çözülmesi ve çö]PQHQGVWULOHúWLULOPHVLoDOÕúPDODUÕPÕ]GHYDPHWPHNWHGLU
7HúHNNU. %X oDOÕúPD 7UNL\H %LOLPVHO YH 7HNQRORMLN $UDúWÕUPD .XUXPX
7h%ø7$. 7HNQRORML YH <HQLOLN 'HVWHN 3URJUDPODUÕ %DúNDQOÕ÷Õ 7(<'(% Sanayi Ar-Ge Projeleri DestekOHPH 3URJUDPÕ¶QFD GHVWHNOHQHQ QXPDUDOÕ
%WQOHúLN øoHULN 8\JXODPDODUÕQÕQ 0RGHO *GPO *HOLúWLULOPHVL SURMHVL
NDSVDPÕQGD\UWOPúWU
16
Araç Eclipse güncelleme sitesi: http://www.mdd4cca.com/updates/clafer2ecore
12
7
Kaynakça
1. %ąN . Czarnecki, K., :ąVRZVNL $: Feature and meta-models in Clafer: mixed,
specialized, and coupled. In: Software Language Engineering, pp.102-122. Springer Berlin
Heidelberg (2011)
2. %ąN .: 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., :ąVRZVNL$: 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., 2÷X]W]Q, H., Yüceer, R. E.: Alloy Analyzer Kullanarak Emniyet Kritik
$YL\RQLN <D]ÕOÕP *HUHNVLQLPOHULQLQ øQFHOHQPHVL. In: 8OXVDO <D]ÕOÕP 0KHQGLVOL÷L
Sempozyumu, pp. 51-55, øVWDQEXO, 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