<D]ÕOÕPhUQ+DWODUÕQGDYetenek Modeli ve Üstmodel Senkronizasyonu için bir Yöntem Ferhat Erata1,2, Moharram Challenger2, Serhat Gezgin1$NJQ'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, hVNGDUøVWDQEXO mehmet.onat@kocsistem.com.tr Özet. YD]ÕOÕPUQDLOHVLLoHULVLQGHNLRUWDNOÕ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 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ú NHQOLNOHULQPRGHOOHQPHVLLoLQNXOODQÕODQ\HWHQHNPRGHOOHULYH\DDODQD|]JGLO 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÷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ÕPUQKDWWÕ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ÕPhUQ+DWWÕ0KHQGLVOL÷L 1 *LULú YD]ÕOÕP UQ KDWWÕ PKHQGLVOL÷L VUHoOHULQGH, \HQLGHQ NXOODQÕODELOLU ELU SODWIRUP YH UQKDWWÕPLPDULVLQLQJHOLúWLULOGL÷LELUDODQPKHQGLVOL÷LLOHDODQPKHQGLVOL÷LVUHFL VRQXFXQGDHOGHHGLOHQYDUOÕNODUGDQUQOHULQJHOLúWLULOGL÷LELUX\JXODPDPKHQGLVOL÷L VUHFL\HUDOÕU>5]. $ODQPKHQGLVOL÷LVrecinde 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 UQ 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|]JGLOJHOLúWLUPHaktivitelerinden biri olan üst modellemeye JHoLúWHL]OHQHELOLUOL÷LND\EROPDNWDGÕU %XLKWL\DoODUGDQ\RODoÕNDUDNEXELOGLULGHWDQÕ WÕODQ \|QWHP \HWHQHN PRGHOOHUL YH NRQILJUDV\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ÕPRGHOJGPOJHOLúWLUPH\|QWHPOHULNXOOD QÕODQWPSURMHOHUGHUDKDWOÕNODNXOODQÕODELOHFHNG]H\GHGLU Bildirinin takip eden ikinci bölümünde, yöntemimize uygun yetenek modelleme GLOOHULYHDODQD|]JGLOJHOLúWLUPHWHNQLNOHUL DQODWÕOPÕúWÕU6RQUDNLE|OPGHLVH\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 UQ KDWWÕ PLPDULVLQGHNL NXOODQÕPÕJ|VWHULOPLúWLU øOJLOLoDOÕúPDODUNÕVPÕQGDOLWHUDWUGHNLEHQ]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ÕPUQKDWODUÕQÕQPRGHOOHQPHVLYHDQDOL]LLoLQ JHOLúWLULlPLúmetinsel bir dildir. Dil, \HWHQHNPRGHOLQL\D]ÕOÕPUQKDWWÕPLPDULVLQL UQKDWWÕPLPDULúDEORQODUÕQÕYHUQNRQILJUDV\RQXQXELUDUDGDWDULIOH\HELOPHNWH dir. hVWPRGHOLOH\HWHQHNPRGHOOHPH\LLNLGLOLQDQODPEWQO÷QNRUX\DUDNELUOHú WLUPHNWHGLU>@$\UÕFDNPHOHUL 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\ NPH 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ÕNVDOIRUPOOHUDUDFD JLUGLRODUDNYHULOGL÷LQGH Alloy AnalyzerDOWÕQGDNL.RG.RG>14@LOLúNLVHOPRGHOEX OXFXVX\DUGÕPÕ\ODEXIRUPONDUúÕ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 PPNQGU %|\OHOLNOH &ODIHU¶LQ 79/ GLOLQL NDSVDGÕ÷ÕoÕNDUWÕODELOLU <|QWHPEQ\HVLQGHNXOODQÕODELOHFHNYH(0)LOHHQWHJUHGLOHELOHFHNELUEDúND\H tenek modelleme dili ise Nesne Yönetim Grubu’nun øQJ Object Management Group) (OMG) 1 VWDQGDUWODúWÕUPD VUHFLQGH 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 EQ\HVLQGH GH÷HU OHQGLULOPHPLúWLU $\QÕ ]DPDQGD OMG’nin önerisinde bir model analiz yöntemi ihti\DFÕ EHOLUWLOPHPLúWLU <DSÕODQ HQGVWUL\HO oDOÕúPDODU YH akademik DUDúWÕUPDODU '6/¶OHULQ \D]ÕOÕP UQ 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/EQ\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 PlatformEQ\HVLQGHVXQGX÷XVRPXWYHsoyut V|]GL]LPL JHOLúWLUPH DUDoODUÕ LOH EX LNL WHNQL÷LQ NXOODQÕPÕQÕ GHVWHNOHPHNWHGLU [18]. Eclipse EMF teknolojisi, ECore LOHVWPRGHOOHPHVD÷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 |WU 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|]JGLOOHULQNROD\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\QDNVWPRGHOLGLUYH (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Õ\HWHQHNPRGHOOHULQLYHNRQILJUDV\RQODUÕQÕRWRPDWLNRODUDN$OOR\GLOL QHoHYLUHELOPHNWHGLU%XVD\HGHJHOLúWLULOHQELUVWPRGHOYHPRGHO|UQHNOHULRWRPDWLN RODUDN &ODIHU GLOLQH G|QúWUOHUHN VÕQDQDELOPHNWHGLU %X VHEHSOH JHOLúWLUGL÷LPL] Eclipse eklentisi, en günFHO$OOR\YH&ODIHUDUDoODUÕQÕEQ\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|UOPHNWHGLU&ODIHU\RUXPOD\ÕFÕLVHV|]dizimine özgü kontrolOHUL YH LVLP o|]POHPH LúOHPLQGHQ JHoLULOPLú PRGHOOHUL $OOR\ GLOLQH G|QúWUHUHN NPHWHRULVLQHYHLOLúNLVHOPDQWÕ÷D |]JRODUDNDQODPODQGÕ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úWUOPú clafer.ecore 5 ) ve &ODIHU¶LQ ELU ,'( VXQPD\ÕúÕQGDQ |WU 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 {} <HWHQHNPRGHOOHULYHNRQILJUDV\RQODUÕLOHVWPRGHOYHPRGHOOHULDUDVÕQGDLNL\|Q O G|QúP RWRPDWLN RODUDN JHUoHNOHúWLUHELOPHN DGÕQD ELU GL]L G|QúP NXUDOÕQÕQ DUDFÕQEQ\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|WUWDQÕ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\|QOG|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&ODIHUUHWLOLU Reference Clafer Reference Clafer (‘:’ ve ‘->’) Reference &ODIHU¶ODUoLIW\|QOYDUVD\ÕOÕU V\QFHFRUHG|QúPKDWÕUODU Clafer Inheritance Clafer Merging Clafer Nesting V\QFHFRUHG|QúPKDWÕUODU Cardinality (lone, some, any, one, interval) EReference EReference.IsContainment: EBoolean EReference.IsOpposite: EBoolean V\QFHFRUHG|QúPKDWÕUODU Single Inheritance Multiple Inheritance Ecore, iç içe EClass’lar yuvalanmaz (inner (&ODVVV\QFHFRUHG|QúPKDWÕUODU (EAttribute | EReference) .Multiplicity.(LowerBound and UpperBound) dHúLWOL2&/LIDGHOHULüretilir. EClass.IsAbstract: EBoolean V\QFHFRUHG|QúPKDWÕUODU ECore Instances Group Cardinality (xor, or, mux, opt) .DUúÕOÕNJHOHFHNDoÕNELUDQODPÕ\RNWXU V\QFHFRUHG|QúPKDWÕ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|UOPHNWHGLU H÷LN \D]ÕOPÕúRODQODU'|QúPNXUDOODUÕEXJLELE|OJHOHUGH|QHUGL÷LPL]oHúLWOL\|QWHPOH ULNXOODQPDNWDGÕU\HQL&ODIHUWUHWPH&ODIHUELUOHúWLUPH2&/NXUDOODUÕUHWPHJLEL Temel d|QúPNXUDOODUÕQÕQX\JXODQÕúÕ7DEORYH7DEORNDUúÕODúWÕUÕODUDNLQFHOHQH ELOLU'|UGQFE|OPGHVXQXODQ|UQHNVHQDU\RGDEXWDEORGDNLG|QúPOHULQbüyük ELU NÕVPÕ X\JXODQPÕúWÕU Örnek bir yetenek modeli, Tablo 1.a’da, otomatik olarak DUDFÕQUHWWL÷LVWPRGHOLVH7DEOo 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|]JRODUDNHú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úWUOPú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ÕPhUQ+DWWÕ0imarisi *HOLúWLULOHQ\|QWHP%WQOHúLNøoHULN8\JXODPDODUÕQÕQ0RGHO*GPO*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, eQGVWULGH ROGXNoD \D\JÕQ RODUDN NXOODQÕODQ bir KurXPVDO øoHULN <|QHWLP SODWIRUPX olan Microsoft SharePoint Foundation 9 (MSF) üzeriQGHELU%WQOHúLNøoHULN8\JXODPDVÕ 10 &&$\DGDELU\D]ÕOÕP UQKDWWÕ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úWUAlana özgü kavraPODUYHDUDODUÕQGDNLLOLúNLOHULJ|UVHOYHPHWLQVHOPRGHOOHPH DUDoODUÕQDPPNQROGX÷XQFD\DQVÕWPDN LoLQ|QFHDODQNDYUDPODUÕQDGDLUELUNDYUDP V|]O÷ oDOÕúPDVÕ \DSÕOPÕú HQGVWUL\HO VHQDU\RODUGD VÕNOÕNOD NDUúÕODúÕODQ LKWL\DoODU GH÷HUOHQGLULOPLú gerekli pD]DUDQDOL]LoDOÕúPDODUÕ\UWOPú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 WUHWLOPLú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úNHQOLNOHUHDLWWPELOJL\LPRGHOOH\H ELOHFHNELUo|]PX]D\ÕVWPRGHOLUHWLOPLú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(&RUHVWPRGHOLQHJHoLú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]øNLVWPRGHO 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ÕPUQKDWWÕ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, EWQOHúLN içerik X\JXODPDODUÕLoLQELUDODQPRGHOLVXQDUNHQEQ\HVLQGHDQDOL]DPDoOÕELU\DGD ELUGHQ oRN DODQD X\JXQ NRQILJUDV\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 EWQOHúWLUHQ ELU GLOH DLW \HWHQHNOHU J|VWHULOPLúWLU $ODQ X]PDQÕQÕQ LoHULN PRGHOL EQ\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 üstPRGHOLQLUHWPLú 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úQOHELOLU 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úQUVHN EHOLUWWL÷LPL] VHEHSWHQ |WU 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úWUHQ ecore2clafer 15 LVPLQGH ELU DUDo VXQPDNWDGÕU $UDo WHUVL G|QúP GHVWHNOHPHPHNWHGLU dDOÕúPD sadece ECore üstmodellerini Abstract Clafer \HWHQHNOHULQH G|QúWUHELOPHNWHGLU '|QúPNXUDOODUÕNÕVÕWODUÕGHVWHNOHPHPHNWHGLU2\VD bir Clafer PRGHOLQGHWDQÕPOD nabilen Group Cardinalities, Sub-Clafers, Set Partitions gibi dile özgü kavramlar (&RUHGLOLQGHROPDGÕ÷ÕLoLQELUVWPRGHOGHDQFDN2&/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úWUHELOLU 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|]FLOHHQWHJUDV\RQX\RNWXU FeatureMapper [15@ DUDFÕ \D]ÕOÕP UQ KDWODUÕQGD \HWHQHN PRGHOOHUL LOH o|]P X]D\ÕPRGHOOHULQLHúOHúWLUHUHNPRGHOJGPO\D]ÕOÕPPKHQGLVOL÷LVUHFLEQ\HVLQGH \HWHQHN PRGHOOHULQLQNXOODQÕPÕQÕ KHGHIOH\HQELUoDOÕúPDGÕU<HWHQHN PRGHOOHULQGHNL yetenekler LOHRQODUÕQ(&RUHPRGHOOHULQGHNLJHUoHNOHúWLULPOHULQHHúOHúWLUHELOPHNLoLQ ELUVWPRGHO|QHUPHNWHGLU%XVWPRGHO\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\|QQGHQIDUNOÕ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\|QWHPEQ\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 NRQILJUDV\RQODUÕ ile üstmodel ve modelleri DUDVÕQGDLNL\|QOG|Q úPü RWRPDWLN RODUDN JHUoHNOHúWLUHELOPHNWHGLU Bu iki gösterim sistemi DUDVÕQGDNL G|QúPNXUDOODUÕQD|]JRODUDNJHOLú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Õ(&RUHLOHVWPRGHOOHPH\DSPDN yerine ifade gücü yüksek ve basit Clafer dilini kullanarak bir DSL’in soyut sözdiziPLQLQ WDVDUODQPDVÕQÕQ PPNQ 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|]FOHUi entegUDV\RQXVD\HVLQGHJHOLúWLULOHQbir DSL’i D\UÕFDELUo|]FLOHHú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úWUHELOPHNWHGLU %X G|QúP NXUDOODUÕQÕQ beklenen G]H\GH ROPDPDVÕ &ODIHU NÕVÕW GLOLQLQ $OOR\ WDEDQOÕ ROPDVÕQGDQ |WUGU $OOR\ LOH UML ve 2&/ DUDVÕQGDNL oLIW \|QO G|QúP probleminin [13,19] çözülmesi ve çö]PQHQGVWULOHúWLULOPHVLoDOÕúPDODUÕPÕ]GHYDPHWPHNWHGLU 7HúHNNU. %X oDOÕúPD 7UNL\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Õ %WQOHúLN øoHULN 8\JXODPDODUÕQÕQ 0RGHO *GPO *HOLúWLULOPHVL SURMHVL NDSVDPÕQGD\UWOPúWU 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 0KHQGLVOL÷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
© Copyright 2024 Paperzz