=Paper=
{{Paper
|id=Vol-1721/UYMS16_paper_81
|storemode=property
|title=Ozellik Modelleri ve Temsil Ettikleri Urun Tipleri Arasindaki Iliskilerin Cozumlenmesi
|pdfUrl=https://ceur-ws.org/Vol-1721/UYMS16_paper_81.pdf
|volume=Vol-1721
|authors=Ahmet Serkan Karatas,Halit Oguztuzun
|dblpUrl=https://dblp.org/rec/conf/uyms/KaratasO16
}}
==Ozellik Modelleri ve Temsil Ettikleri Urun Tipleri Arasindaki Iliskilerin Cozumlenmesi==
Özellik Modelleri ve Temsil Ettikleri Ürün Tipleri
Arasındaki İlişkilerin Çözümlenmesi
Ahmet Serkan Karataş, Halit Oğuztüzün
Orta Doğu Teknik Üniversitesi, Bilgisayar Mühendisliği Bölümü, Ankara, Türkiye
{karatas, oguztuzun}@ceng.metu.edu.tr
Öz. Özellik modellerinde özniteliklerin etkin bir şekilde kullanılması yeni bir
değişkenlik türü olan öznitelik-tabanlı değişkenliğin doğmasına yol açmıştır.
Literatürde, bu değişkenlik türünün ortaya çıkardığı gereksinimlerin karşılana-
bilmesi için yazılım ürün hatlarındaki ürün kavramı yeniden yorumlanmış ve
yeni ürün tipleri tanımlanmış durumdadır. Bu bildiride, özellik modelleri ve
temsil ettikleri yeni ürün tipleri arasındaki ilişkiler incelenmektedir. Bu amaç
doğrultusunda tasarlanan bir dizi deney aracılığıyla, örnek bir özellik modeli
evrim sürecine tabi tutulduğunda modeldeki değişikliklerin temsil edilen ürün
yelpazesini oluşturan farklı tiplerdeki ürünleri nasıl etkilediği tartışılmaktadır.
Bunun yanı sıra, ürün tiplerindeki farklılaşmanın yol açacağı dallanmanın, di-
namik sistemlerde gereksinim duyulan model ve temsil ettiği ürünler üzerindeki
analizlerin hızlı ve verimli bir şekilde gerçekleştirilmesi ihtiyacını nasıl etkile-
yeceği hakkında fikir sağlaması için çeşitli analiz operasyonlarının performans
verileri sunulmaktadır.
Anahtar Kelimeler: Yazılım ürün hatları, özellik modelleri, öznitelik-tabanlı
değişkenlik, ürün tipleri
1 Giriş
Yazılım ürün hatları gün geçtikçe daha çok şirket tarafından kullanılmakta ve elde
edilen başarı hikâyeleri sayesinde kendisine daha sağlam bir yer edinmektedir. Yazı-
lım ürün hatlarının sağladığı; üretkenliğin ve kalitenin 10 kata kadar arttırılması, ma-
liyetin %60’a varan değerlerde azaltılması, gereken iş gücünün %87’ye varan oran-
larda azaltılması, pazara sunum zamanının %98’e varan değerlerde azaltılması [8]
gibi yararlar bu yaklaşımın popülaritesini her geçen gün arttırmaktadır.
Yazılım ürün hatları yaklaşımındaki en önemli konulardan biri, ürün ailesini oluş-
turan ürünler arasındaki ortaklık ve değişkenliklerin verimli bir şekilde modellenmesi
ve yönetilmesi hususudur. Bir yazılım ürün hattının başarısı büyük ölçüde bu noktaya
bağlıdır [3]. Yapılan yakın tarihli bir literatür incelemesine göre [4] bu amaç doğrul-
tusunda kullanılması önerilmiş yöntemler arasında en yaygın olarak kullanılanı özel-
lik modelleridir [9].
1990’da önerilmesinden bu yana özellik modelleri üzerinde pek çok geliştirme ve
ekleme yapılmıştır. Bu eklemelerin arasında öne çıkanlar özelliklere ve özellik grup-
185
larına nicelik eklenmesi [5] ve özelliklere öznitelikler eklenmesi [6] olarak sayılabilir.
Modellerdeki özelliklere özniteliklerin eklenmesiyle elde edilen genişletilmiş özellik
modelleri özniteliklerin kullanılmasıyla alan bilgisinin doğal bir şekilde modellenme-
sine izin verirler. Ayrıca, özniteliklerin dallar arası karmaşık kısıtlarda yer almasına
izin verilmesiyle birlikte [10] kimi gereksinimlerin genişletilmiş özellik modellerinde
etkili ve doğal bir şekilde ifade edilebilmesinin yolu açılmıştır.
Ancak özniteliklerin karmaşık kısıtlarda kullanılmasına izin verilmesi bazı yeni ge-
reksinimleri doğurmuştur. Bu gereksinimler, önceden temel değişkenlik birimi olarak
sadece özellikler göz önüne alınırken, özniteliklerin de bir değişkenlik kaynağı olarak
ele alınması ihtiyacını ortaya çıkarmıştır. İhtiyacın karşılanabilmesi için ise yeni bir
değişkenlik türü olan öznitelik-tabanlı değişkenlik kavramı tanımlanmıştır [11]. Bu
yeni değişkenlik türünün getirdiği yenilikler ışığında özellik, konfigürasyon ve ürün
gibi temel kavramlar yeniden yorumlanmış ve bu kavramlar yeniden tanımlanarak
farklı alt tiplerden oluşan bir dizi çeşitliliğe gidilmiştir [11]. Bu çeşitlilik farklı nitelik-
lere sahip farklı ürün tiplerini de içermektedir.
Bu çalışmada yeni ürün tiplerinin temsil edildikleri modellerle ve birbirleriyle olan
ilişkilerinin incelenmesi amaçlanmıştır. Bu doğrultuda bir araştırma denizaltısı için
örnek bir özellik modeli inşa edilmiştir. Modelin gerçekçi nitelikler taşıması için fikir
sağlaması açısından A.B.D. Deniz Kuvvetleri için hazırlanmış bir araştırma raporun-
dan [12] yararlanılmıştır (ancak bu model anılan dokümanda tarif edilen denizaltının
tam bir modeli değildir). Elde edilen model bir evrim sürecine tabi tutulmuş, süreç
boyunca modele yeni öznitelikler ve karmaşık kısıtlar eklenerek daha zengin modeller
elde edilmiştir. Bu sırada yapılan gözlemler kullanılarak şu iki soruya yanıt aranmış-
tır: 1) Belli bir modelin temsil ettiği farklı ürün tiplerine ait ürün kümeleri arasındaki
ilişkiler nelerdir? 2) Bir modelle, bu modelin temsil ettiği belli bir ürün tipine ait ürün
kümesinin arasındaki ilişkiler nelerdir ve model evrim geçirdiğinde bu ilişkiler temsil
edilen ürün kümelerini nasıl etkiler? Bu soruların yanıtının verilebilmesi için modeller
üzerinde çeşitli analizlerin yapılmasına gereksinim duyulmuştur. Analizler yapılırken
performans verileri de kaydedilmiş ve çalışmanın bir yan sonucu olarak elde edilen bu
veriler de incelenmiştir.
Bu bildirinin geri kalanı şu şekilde düzenlenmiştir. 2. Bölümde bu çalışmaya zemin
oluşturan kavramlar sunulmuştur. 3. Bölümde evrim sürecinde elde edilen modeller
ve bu modellerden elde edilen farklı tiplerdeki ürün kümelerinin arasındaki ilişkiler
incelenmiştir. 4. Bölümde deney sürecinde gerçekleştirilen kimi analizlerin perfor-
mans verileri sunulmuştur. Son bölüm olan 5. Bölümde ise elde edilen sonuçlar yo-
rumlanmıştır.
2 Art Alan
2.1 Özellik Modelleri
Bir özellik bir kavrama (sistem, bileşen, vb.) ait olan ve o kavramla ilgili paydaşlar
için ayırt edilebilir durumdaki her türlü karakteristiktir [14]. Özellikler işlevsel yete-
nekler olabilecekleri gibi, işlevsel olmayan bağlam, kalite, gerçekleştirim gibi husus-
lara da ait olabilirler. Bir özellik modeli ise hiyerarşik olarak düzenlenmiş olan bir
186
küme özellik, bu özellikler arasındaki dağılma kurallarını tanımlayan ayrışma ilişkile-
ri, rasgele özellikler arasındaki ilişkileri tanımlayan dallar arası kısıtlar ve özellik
tercihi için gerekçeler, çeşitli problemlerin/kararların alt yapısını açıklayan notlar gibi
ek bilgileri içeren bir yapıdır [9].
Özellik modellerinde bir anne özellik ile çocukları arasındaki ilişkileri tanımlayan
dört çeşit ayrışma ilişkisi bulunur: zorunlu, seçmeli, alternatif, veya. Bunların yanı
sıra farklı dallarda bulunan rasgele özellikler arasındaki ilişkileri tanımlayan iki çeşit
kısıt bulunmaktadır: gerektirir, dışlar. Şekil 1’de bu ilişkileri içeren farazi bir özellik
modelini gösteren bir özellik çizeneği verilmiştir.
Şekil 1. Örnek bir özellik modeline ait çizenek
Genişletilmiş özellik modelleri öznitelikler aracılığıyla özellikler hakkında ekstra
bilgi sağlanmasına olanak verir. Bir özelliğe ait bir öznitelik özelliğin ölçülebilir her-
hangi bir karakteristiğidir [2]. Genişletilmiş özellik modelleri özniteliklerin model
üzerinde tanımlanan kısıtlarda yer alabilmesine izin vermektedir [10]. Örneğin, geniş-
letilmiş özellik modellerinde “Eğer Ö1 özelliğine ait n1 özniteliğinin değeri 50’den
fazla ise ve üründe Ö2 özelliği bulunuyorsa, o zaman Ö3 özelliği de ürüne dahil edil-
melidir ve Ö4 özelliğinin n4 özniteliğinin değeri 80-180 aralığında olmalıdır” gibi
kısıtlar tanımlanabilmektedir.
2.2 Öznitelik-tabanlı Değişkenlik ve Ürün Tipleri
Klasik ürün tanımı içerilen ve dışarıda bırakılan özellikler üzerinden verilir [1], özni-
telikler hakkında ise bir şey söylenmez. Ancak özniteliklerin etkin bir şekilde kulla-
nılmasıyla doğan öznitelik-tabanlı değişkenlik bu tanımın yetersiz kalmasına neden
olmuştur. Örneğin, bir modelde “Ö1 özelliğinin n1 özniteliğinin değeri 6’dan fazlaysa
Ö2 özelliği üründe içerilsin, değilse dışarıda bırakılsın” şeklinde bir kısıt varsa, elde
edilen ürünlerin modele göre geçerliliğinin denetlenmesi sadece içerilen ve dışarıda
187
bırakılan özelliklere bakılarak yapılamaz, özniteliklerin de değerlerinin denetlenmesi
gerekir.
Öznitelik-tabanlı değişkenliğin getirdiği gereksinimlerin karşılanabilmesi için ürün
kavramı yeniden yorumlanmış ve öznitelikler de hesaba katılarak ürün tanımı yeniden
yapılmıştır [11]. Yeni tanımla birlikte ürünler dört tipe ayrılmıştır: F-ürünler, P-
ürünler, uygun P-ürünler ve C-ürünler. Bu tiplerin hiçbirisi özellik-tabanlı değişkenlik
içermez (yani hangi özelliklerin içerildiği, hangilerinin dışarıda bırakıldığı kesin ola-
rak belirlidir). Ancak öznitelik açısından farklar içerirler.
F-ürünler hiçbir değişkenlik içermezler, yani sahip oldukları tüm özniteliklerin de-
ğerleri kesin olarak belirlenmiştir. P-ürünlerde ise en az bir özniteliğin alabileceği
değer henüz tam olarak belirlenmemiştir (yani üründe belirtilen ve özniteliğe hangi
değerlerin atanabileceğini belirten A-tanım kümesindeki birden fazla değerden istedi-
ği birini seçmesine halen izin verilmektedir). Uygun P-ürünler, P-ürünlerin bir alt
kümesini oluşturur. Bir ürünün bu kategoriye dâhil olabilmesi için üründeki öznitelik-
lere atanmasına izin verilen değerler kullanıldığında bu üründen en az iki farklı ve
geçerli F-ürün türetebilmek mümkün olmalıdır. C-ürünler de P-ürünlerin bir alt kü-
mesini oluştururlar. Bir ürünün bu alt kümeye dâhil olabilmesi için üründeki öznite-
liklere atanmasına izin verilen değerlerden hangisi seçilirse seçilsin türetilen F-ürün
modele göre geçerli bir ürün olmak zorundadır.
3 Ürün Tipleri Arasındaki İlişkiler
Bir özellik modelinin semantik karşılığı modelin temsil ettiği ürün kümesidir [13]. Bu
nedenle, genişletilmiş özellik modellerinin yeni ürün tiplerinin ortaya çıkmasından
semantik seviyede nasıl etkilendiğini anlayabilmek için bir grup deney tasarlanmıştır.
Bu bölümde gerçekleştirilen deneyler ve sonuçları sunulacaktır.
Deneylerin amacı sadece öznitelik-tabanlı değişkenliğin etkilerini analiz etmektir.
Bu nedenle öznitelik içermeyen değişkenler (örnek modeldeki özellikler, özellikler
arasındaki hiyerarşik ayrışma ilişkileri ve öznitelik içermeyen kısıtlar) deney sürecin-
de sabit tutulmuştur. Deneylere örnek bir temel özellik modeli ile başlanmış ve deney
adımları sırasında bu örnek model bir evrim sürecine tabi tutulmuştur. Ancak evrim
sırasında sadece öznitelikler ve öznitelik içeren kısıtlar bazında değişiklikler yapılmış-
tır. Bu sayede modelin temsil ettiği ürün kümesi üzerinde özniteliklerin kullanımdan
kaynaklanmayan farklar oluşması önlenmiştir.
Başlangıçta bir araştırma denizaltısı ailesi için örnek bir temel özellik modeli (Mo-
del-0) inşa edilmiştir. Model-0 genişletilmiş bir özellik modeli değildir, dolayısıyla
herhangi bir öznitelik içermemektedir. Bu modelde herhangi bir dallar arası kısıt bu-
lunmadığı varsayılmıştır. Model-0’ı temsil eden özellik çizeneği Şekil 2’de verilmiş-
tir.
188
Şekil 2. Araştırma denizaltısı ailesi için temel özellik modeli, Model-0
İkinci adımdan başlayarak bir evrim süreci başlatılmış, ilgili modele her bir adımda
yeni öznitelik(ler) ve öznitelik içeren karmaşık kısıt(lar) eklenerek model bir genişle-
tilmiş özellik modeline dönüştürülmüştür. İkinci adımda bu modeldeki Gövde isimli
özelliğe tip isminde, tanım kümesi {1, 2, 3} olan bir öznitelik eklenmiştir. Elde edilen
genişletilmiş özellik modeli Model-1 olarak adlandırılmıştır. Ayrıca Model-1’e aşağı-
daki öznitelik içeren dallar arası karmaşık kısıt eklenmiştir:
Eğer Gövde.tip = 3 ise Gövde özelliği Tekerlek özelliğine gereksinim duyar.
Sonraki adımda Model-1’e güç ve frekans isimli iki yeni öznitelik eklenerek Model-2
elde edilmiştir. güç isimli öznitelik Motor özelliğine aittir ve tanım kümesi {200, 300,
400} olarak belirlenmiştir. frekans özniteliği ise Anten özelliğine aittir ve tanım kü-
mesi {800, 1600, 1900} değerlerini içermektedir. Bu özniteliklerin yanı sıra Model-
2’ye üç adet öznitelik içeren dallar arası karmaşık kısıt eklenmiştir:
Eğer Gövde.tip = 3 ise Gövde özelliği Motor.güç ≥ 300 olmasını şart koşar.
Çelik özelliği Motor.güç ≥ 400 olmasını şart koşar.
Navigasyon özelliği Anten.frekans ≥ 1600 olmasını şart koşar.
Son adımda Model-3’ü elde etmek için Model-2’ye iki öznitelik daha eklenmiştir. Bu
özniteliklerden birincisi olan sürüm özniteliği İşletim Sistemi özelliğine, ikincisi olan
tip özniteliği ise Analiz özelliğine eklenmiştir. sürüm özniteliğinin tanım kümesi {1,
2, 3}, tip özniteliğinin tanım kümesi ise {0, 1, 2} olarak belirlenmiştir. Son olarak
Model-3’e aşağıdaki kısıtlar eklenerek modelin son hali oluşturulmuştur:
Navigasyon özelliği İşletim Sistemi.sürüm > 1 olmasını şart koşar.
189
Eğer İşletim Sistemi.sürüm < 3 ve Analiz özelliği ürüne dahil edilmiş ise İşletim
Sistemi özelliği Analiz.tip ≤ 2 olmasını şart koşar.
Organik örnekleme Analiz yazılımının tip’inin 3 veya daha yüksek bir değerde
olmasını gerektirir.
Sıvı örnekleme Analiz yazılımının tip’inin 2 veya daha yüksek bir değerde olmasını
gerektirir.
Özellikler ve ayrışma ilişkileri ilk modelden itibaren değişmeden korunduğu için tüm
modeller aynı hiyerarşik yapıya sahiptir. Modeller arasındaki tek fark içerilen öznite-
likler ve öznitelik içeren dallar arası karmaşık kısıtlardır.
Dört özellik modeli oluşturulduktan sonra etkilerin incelenebilmesi için her bir
modelin semantik karşılığı olan ürün kümeleri hesaplanmıştır. Modellerden türetilebi-
lecek tüm ürünlerin sayısı her bir ürün tipi için Tablo 1’de verilmiştir.
Tablo 1. Her bir modelin temsil ettiği ürün sayıları
Ürün Sayısı
Uygun
F-ürün P-ürün C-ürün
P-ürün
Model-0 80 0 0 0
Model-1 200 320 240 200
Model-2 760 16.280 12.880 3.080
Model-3 760 152.600 135.056 9.608
Tablo 1’de sunulan sonuçların analizi iki başlık altında toplanabilecek bir dizi karak-
teristik niteliğin gözlemlenebilmesine olanak tanımaktadır. Bir modelin temsil ettiği
farklı ürün tipleri arasındaki ilişkiler ilk başlıkta, belli bir tipteki ürünler için evrim
sürecine tabi tutulmuş farklı modeller tarafından temsil edilme durumları arasındaki
ilişkiler ise ikinci başlıkta toplanabilir. İlerleyen paragraflarda her bir başlık altındaki
ilişkilerden seçilmiş örnekler incelenecektir.
Yukarıda anılan ilk başlık altında sayılabilecek basit bir gözlem temel bir özellik
modelinin temsil ettiği ürün sayıları üzerinedir. Sonuçlar Model-0’dan herhangi bir P-
ürün, uygun P-ürün ya da C-ürün türetilemediğini göstermektedir. Ürün tipleri sunu-
lurken verilen tanımlar herhangi bir özniteliğe sahip olmayan bir özelliğin, özelliği
içeren konfigürasyon veya ürün ne olursa olsun, her zaman F-özellik olarak değerlen-
dirileceğini belirtmektedir. Model-0 gibi temel özellik modelleri öznitelik içeren hiç-
bir özellik içermedikleri için, bu modellerden türetilebilecek tüm konfigürasyon ve
ürünler sadece F-özellikler içerecek, dolayısıyla türetilen tüm konfigürasyon ve ürün-
ler F-tipinde olacaktır. Bu nedenle Model-0’ın durumu bir tesadüf değildir ve tüm
temel özellik modelleri aynı durumda olacaktır, zira sadece genişletilmiş özellik mo-
delleri P-konfigürasyon ve P-ürün temsil etme yeteneğine sahiptir.
İlk başlıkta görülmesi beklenen bir başka ilişki de her bir model tarafından temsil
edilen P-ürün, uygun P-ürün ve C-ürünlerin sayıları arasındaki ilişkidir. Tablo ince-
lendiğinde tüm modeller için aşağıdaki ilişkinin geçerli olduğu görülmektedir:
190
P-ürün sayısı ≥ uygun P-ürün sayısı ≥ C-ürün sayısı (1)
Bu ilişki sadece bu deneyde kullanılan modeller için değil, tüm temel ve genişletilmiş
özellik modelleri için geçerli olacaktır, çünkü ürün tipi tanımları şu iki sonucu do-
ğurmaktadır: (i) her C-ürün aynı zamanda bir uygun P-üründür, (ii) her uygun P-ürün
aynı zamanda bir P-üründür.
Bir sonraki gözlemimiz de ilk başlığa aittir ve bir genişletilmiş özellik modelinin
temsil ettiği F-ürün ve P-ürün sayıları üzerinedir. Sonuçlar deneyde kullanılan tüm
modeller için temsil edilen P-ürün sayısının F-ürün sayısını aştığını göstermektedir.
Bu durumun nedeni, bir sonraki paragrafta detaylı bir şekilde tartışıldığı üzere, tanım
kümelerinde üç veya daha fazla değer bulunduran özniteliklere sahip özelliklerin
bulunmasıdır.
Eğer bir özellik belirtilmiş tanım kümesinde n tane değer içeren bir özniteliğe sa-
hipse, bu özelliği içeren potansiyel F-ürün sayısı n kadar artacaktır (yani belirtilmiş
tanım kümesi n tane tek elemanlı alt küme içerecektir ve bu alt kümelerin her biri
farklı bir F-üründe A-tanım kümesi olarak kullanılabilir). Öte yandan, potansiyel P-
ürün sayısı en kötü durumda (örneğin, öznitelik içeren başka hiçbir özellik yoksa ve
söz konusu özellik başka hiçbir öznitelik içermiyorsa) 2n – n – 1 kadar artacaktır
(çünkü n tane eleman içeren bir kümenin 2n – n – 1 tane iki veya daha fazla eleman
içeren alt kümesi vardır ve bu alt kümelerin her biri farklı bir P-üründe A-tanım kü-
mesi olarak kullanılabilir). Bu en kötü durumda bile, eğer özniteliğin tanım kümesin-
de üç veya daha fazla değer varsa potansiyel P-ürün sayısı potansiyel F-ürün sayısın-
dan daha fazla olacaktır (çünkü n ≥ 3 ise her zaman 2n – n – 1 > n olacaktır).
Bir genişletilmiş özellik modelinde, belirlenmiş tanım kümesinde üç veya daha
fazla değer içeren öznitelikler varsa o modelden türetilebilecek P-ürün sayısı türetile-
bilecek F-ürün sayısından genellikle fazla olacaktır. Ancak bu öngörü bazen doğru
olmayabilir. Örneğin, böyle öznitelikler nadiren bir ürüne dâhil olan özelliklere aitse
etkileri de sınırlı olacaktır; dolayısıyla zaman zaman türetilen F-ürün sayısı P-ürün
sayısından fazla olabilir, ancak bu durumun özniteliklerin yoğun olarak kullanıldığı
modellerde pek ortaya çıkmayacağı öngörülmektedir.
Ayrıca genişletilmiş özellik modelindeki öznitelik sayısı arttıkça F-ürün sayısıyla
P-ürün sayısı arasındaki oranın büyüdüğü gözlemlenmektedir. Örneğin, bu oran sade-
ce bir öznitelik içeren Model-1 için 1:1,6 (200:320), üç öznitelik içeren Model-2 için
1:21,4 (760:16.280), beş öznitelik içeren Model-3 için ise 1:200,8 (760:152.600) şek-
linde görülmektedir. Öznitelik sayısındaki artış A-tanım kümelerinin olası kombinas-
yonlarının sayısında artışa neden olacağı ve olası tüm kombinasyonlardaki artış olası
tek elemanlı alt kümelerin sayısındaki artıştan daha hızlı olacağı için özniteliklerin
birleşik etkisi oranlardaki P-ürünler lehindeki değişimlere yol açmaktadır. Bu neden-
le, model ne kadar yoğun şekilde öznitelik içeriyorsa bu oranın da o denli yüksek
olacağı sonucuna varılabilir.
Tartışacağımız son gözlem ikinci alt başlığa aittir. Eğer rasgele bir ürün tipi seçe-
cek ve bu ürün tipi için her bir modelin temsil ettiği ürün sayısını inceleyecek olursak
sayıların hemen hemen her defasında değiştiği görülmektedir. Örneğin, C-ürünler ele
alınacak olursa Model-0’ın 0, Model-1’in 200, Model-2’nin 3.080 ve Model-3’ün
9.608 adet C-ürün temsil ettiği görülmektedir. Evrim sürecinde modellere her bir
191
adımda yeni öznitelik ve dallar arası kısıtlar eklendiği için bu durum şaşırtıcı değildir.
Ancak değişimlerdeki oranların farklı ürün tipleri için farklı değerlerle ortaya çıkması
ilginç bir davranış olarak gözlenmektedir.
Örneğin, sadece Model-1 ve Model 2’yi göz önüne alınacak olursa değişim oranla-
rının F-ürünler için 1:3,8, P-ürünler için 1:50,1, uygun P-ürünler için 1:53,7, C-
ürünler içinse 1:15,4 olduğu görülmektedir. Yani oranlar ürün tiplerinde farklılık
göstermektedir. Model-2 ve Model-3 için bu oranlara bakıldığında değerlerin 1:1,
1:9,4, 1:10,5 ve 1:3,1 şeklinde olduğu görülmektedir. Dolayısıyla, bir özellik modeli
evrim geçirdiğinde farklı ürün tiplerinin evrimden farklı oranlarda etkilenebileceği
görülmektedir.
Tablo 2. Her bir modeldeki ölü öznitelik değerleri
Ölü değerler
Gövde. Motor. Anten. İş Sis. Analiz.
tip güç frekans sürüm tip
Model-0 - - - - -
Model-1 ∅ - - - -
Model-2 ∅ ∅ {800} - -
Model-3 ∅ ∅ {800} {1} ∅
Deneyin sonraki aşamasında örnek modellerde ölü öznitelik değeri olup olmadığı
irdelenmiştir. Tablo 2’de sunulan sonuçlar Model-3’teki İşletim Sistemi.sürüm öznite-
liğinin tanım kümesindeki 1 değerinin ve Model-2 ve Model-3’teki Anten.frekans
özniteliğindeki 800 değerinin ölü öznitelik değerleri olduğuna işaret etmektedir. Bir
özellik modelinde ölü öznitelik değerlerinin bulunması kullanıcıya yanlış izlenim
vermek gibi istenmeyen durumlara yol açacağından anılan değerler ilgili modellerden
çıkarılmış ve Model-2´ ve Model-3´ olarak isimlendirilen yeni modeller elde edilmiş-
tir. Model-2´ Anten.frekans özniteliğinin tanım kümesinin {1600, 1900} olması (yani
800 değerinin orijinal tanım kümesinden çıkarılmış olması) haricinde atası olan Mo-
del-2 ile aynıdır. Benzer şekilde, yeni elde edilen Model-3´ Anten.frekans özniteliği-
nin tanım kümesinin {1600, 1900} olması (yani 800 değerinin orijinal tanım küme-
sinden çıkarılmış olması) ve İşletim Sistemi.sürüm özniteliğinin tanım kümesinin {2,
3} olması (yani ölü değer olan 1’i içermemesi) haricinde atası olan Model-3 ile aynı-
dır. Yeni modeller elde edildikten sonra bu modellerin temsil ettiği farklı tipteki ürün-
lerin sayıları hesaplanmıştır. Elde edilen sonuçlar Tablo-3’te sunulmaktadır.
Tablo 3. Ölü değerlerin elenmesinden sonraki ürün sayıları
Ürün Sayısı
F-ürün P-ürün Uygun P-ürün C-ürün
Model-2´ 760 7.760 6.440 3.080
Model-3´ 760 37.580 33.764 9.608
192
Göze çarpan ilk nokta yeni modeller tarafından temsil edilen F-ürün sayısının mo-
dellerin ataları tarafından temsil edilen F-ürün sayısına eşit olmasıdır. Ölü öznitelik
değerleri hiçbir F-üründe kullanılmayan değerler olarak tanımlanmış olduğu için bu
beklenen bir durumdur. Buna ek olarak, yeni modeller ve ataları tarafından temsil
edilen C-ürünlerin sayılarının da eşit olduğu görülmektedir. Bu eşitlik F-ürünlerle C-
ürünler arasındaki sıkı ilişkiden kaynaklanmaktadır. Bir ürünün C-ürün olarak nite-
lendirilebilmesi için, üründeki özniteliklere A-tanım kümelerinden hangi değer atanır-
sa atansın geçerli bir F-ürün elde edilebilmesi gerekmektedir. Dolayısıyla, eğer bir C-
üründeki herhangi bir A-tanım kümesi bir değer içeriyorsa, o değer mutlaka en az bir
F-üründe de bulunmak zorundadır. Ancak, ölü bir öznitelik değeri herhangi bir F-
üründe bulunmayan değerdir, dolayısıyla bir C-üründe de bulunamaz. Sonuç olarak,
bir modelde ölü öznitelik değerlerinin bulunması ya da bulunmaması model tarafın-
dan temsil edilen F-ürün veya C-ürün yelpazesini hiçbir şekilde etkilemeyecektir.
Ancak, P-ürün ya da uygun P-ürünlere bakıldığında durum farklıdır. Model-2 ve
Model-2´ göz önüne alındığında temsil edilen P-ürünlerin sayısının 16.280’den
7.760’a düştüğünü (%52.4’lük bir düşüş), uygun P-ürünlerin sayısının ise 12.880’den
6.440’a düştüğü (%50’lik bir düşüş) görülmektedir. Model-3 ile Model-3´ arasındaki
durum benzer olmakla birlikte daha da şiddetlidir; temsil edilen P-ürün sayısı
152.600’den 37.580’e (%74.6’lık bir fark), temsil edilen uygun P-ürün sayısı ise
135.056’dan 33.764’e (%75’lik bir fark) düşmüştür. Bu sonuçlar bir sonraki paragraf-
ta detaylıca incelenmektedir.
P-ürünler (ve benzer şekilde uygun P-ürünler) üründe içerilen A-tanım kümelerine
katı kısıtlamalar koymazlar. Örneğin, bir P-ürün ya da uygun P-üründeki bir A-tanım
kümesi, bu üründen türetilebilecek hiçbir F-üründe bulunmayacak değerler içerebilir.
Bu esneklik P-ürün ve uygun P-ürünlerin içerdikleri A-tanım kümelerinde ölü değer-
ler bulunmasına izin verir, dolayısıyla kabul edilebilir tanım kümelerinin sayısını
arttırır. Örneğin, Anten.frekans özniteliğini ele alalım. Eğer Model-3´ tarafından tem-
sil edilen P-ürünlerden n tanesi Anten özelliğini içeriyorsa, Model-3 tarafından temsil
edilen P-ürünlerden 2n tanesi Anten özelliğini içerecektir (yani Model-3´ tarafından
temsil edilen her bir ürün için Model-3 tarafından temsil edilen iki ürün olacaktır;
ürünün tam bir kopyası ve bu üründeki Anten.frekans özniteliğinin ölü değer olan 800
değerini içeren bir kopyası). Aynı sav uygun P-ürünler için de geçerlidir. Dolayısıyla,
ölü öznitelik değerlerinin çıkarılması temsil edilen P-ürün ve uygun P-ürünlerin sayı-
sında ciddi düşüşlere olanak sağlayabilir. Bu durum, temsil edilen ürün sayısı çok
fazla olduğunda ve analizler için ayrılabilecek kaynaklar (zaman, işlem gücü, kayıt
kapasitesi, vb.) sınırlı olduğunda ürün hattındaki değişkenliğin yönetiminde önemli
farklar yaratabilir.
4 Gerçekleştirim ve Performans
Bir önceki bölümde de sunulduğu gibi deneylerde kullanılan özellik modelleri çok
fazla özelliğe sahip olmamasına rağmen çok yüksek sayılarda ürün temsil etmektedir.
Dolayısıyla özellik modelleri üzerindeki analizleri elle gerçekleştirmek pratikte müm-
193
kün olmamaktadır. Bu nedenle deneylerde kullanılan modeller üzerindeki analizler de
otomatik bir şekilde yapılmıştır.
Literatürde belirtilmiş çok sayıda analiz operasyonu (tüm ürünleri bulma, filtrele-
me, ürün geçerlilik denetimi, modelin değişkenlik faktörünü hesaplama, vs.) bulun-
maktadır [1]. Klasik yazılım ürün hatları üzerindeki analizler genellikle tasarım sıra-
sında yapıldığı için zaman ve kaynak açısından önemli kısıtlamalara tabi değildirler.
Ancak dinamik yapılı sistemler söz konusu olduğunda, bu analizler çalışma sırasında
yapılacağı için, analizlere ayrılacak işlem gücü, bellek, zaman gibi kaynaklar kısıtlı
olabilir. Bu nedenle, bu çalışmada performans değerleri sunulacak operasyonlar seçi-
lirken dinamik sistemlerde çalışma sırasında gerçekleşebilecek evrim ve yeniden kon-
figürasyon işlemleri için ihtiyaç duyulabilecek operasyonlar göz önüne alınmıştır.
Analizleri gerçekleştirebilmek için ilk olarak modeller elle bir kısıt mantık progra-
mına eşlenmiştir. Bu işlem sırasında hedef platform olarak SICStus Prolog [7] kulla-
nılmıştır. Eşleme ve analiz operasyonlarının gerçekleştirimi için SICStus Prolog tara-
fından sunulan sonlu tanım kümeleri, yani clp(FD) kütüphanesi kullanılmıştır. Bu
amaçla kısıt mantık programlama dillerinin sunduğu listeler ve kümeler gibi yapılar-
dan yoğun bir şekilde yararlanılmıştır. Ayrıca probleme özgü arama stratejilerinin
belirlenebilmesi için findall ve labeling gibi geriye dönük aramalar yapabilen yüksek
seviye yapılar kullanılmıştır.
Tablo 4. Seçilmiş analiz operasyonlarına ait performans verileri
Milisaniye cinsinden operasyon süresi
Model-0 Model-1 Model-2 Model-2´ Model-3 Model-3´
Geçerli Ürün (F) 1 1 1 1 1 1
Geçerli Ürün (P) 1 1 1 1 1 1
Geçerli Ürün (uP) 1 1 1 1 1 1
Geçerli Ürün (C) 1 1 1 1 1 1
Filtre (F) 12 11 12 12 12 13
Filtre (P) 12 24 1.024 415 7.460 1.378
Filtre (uP) 13 24 1.056 401 8.758 1.384
Filtre (C) 11 24 1.093 416 9.213 1.418
Tüm Ürünler (F) 11 11 14 14 14 14
Tüm Ürünler (P) 13 54 4.265 2.091 102.631 20.679
Tüm Ürünler (uP) 11 61 8.287 2.374 109.368 22.125
Tüm Ürünler (C) 9 63 8.465 2.442 123.620 22.345
Analiz operasyonları temelde bir kısıt sağlama problemi olduğu için, kısıt mantık
programlama dillerinde birçok farklı şekilde modellenebilir, diğer bir ifadeyle, ope-
rasyonlar farklı algoritmalar kullanılarak gerçekleştirilebilir. Bu çalışma sırasında
modeller tarafından temsil edilen P-ürün, uygun P-ürün ve C-ürünler bulunurken kaba
kuvvet yaklaşımı kullanılmıştır (olası tüm ürünler türetilmiş, daha sonra bu ürünler
194
arasından geçerli olanlar ayıklanmıştır). Bu nedenle otomatik analiz için bu çalışmada
kullanılan gerçekleştirimlerden daha verimli ve hızlı bir şekilde çalışacak gerçekleşti-
rimler yapmak mümkün olabilir.
Analiz operasyonları Intel Core i7 6700HQ işlemciye sahip ve Windows 10 çalıştı-
ran bir bilgisayarda koşturulmuştur. Ancak kullanılan SICStus Prolog sürümü bir
deneme sürümü olduğu için bazı kısıtlamalara sahiptir (örneğin sadece 256 MB bellek
ve işlemcinin tek bir çekirdeğini kullanmaktadır). Seçilmiş analiz operasyonları olan
tüm ürünler, filtreleme ve geçerli ürün operasyonlarına ait performans verileri Tablo
4’te verilmiştir.
5 Sonuçlar
Bu bildiride teorik altyapısı [11]’de kurulmuş olan, özellik modellerinde özniteliklerin
etkili bir şekilde kullanılmasıyla ortaya çıkmış öznitelik-tabanlı değişkenliğin doğur-
duğu gereksinimleri karşılamak için tanımlanmış farklı ürün tiplerinin, pratikte temsil
edildikleri modelle ve birbirleriyle olan ilişkileri incelenmiştir. Bu amaçla bir araştır-
ma denizaltısı için inşa edilmiş örnek bir özellik modeli bir evrim sürecine tabi tutul-
muş, evrimleşen modellerin temsil ettikleri farklı tiplerdeki ürün ailelerindeki deği-
şimler gözlemlenmiştir.
Yapılan deneyler, içerisinde halen öznitelik-tabanlı değişkenlik içeren P-ürün, uy-
gun P-ürün ve C-ürünlerin sayısındaki artışın çok yüksek hızlara ulaşabileceğini gös-
termektedir. Örneğin, Model-1’den Model-3’e geçişte modellerdeki toplam öznitelik
sayısı sadece 5 kat artmışken, P-ürün sayısı 477 kat, uygun P-ürün sayısı 563 kat, C-
ürün sayısı ise 48 kat artmıştır. Bu nedenle, belirtilen tipteki ürünlerin yönetiminde
kullanılacak yaklaşımlarda bu durum mutlaka göz önüne alınmalıdır. İçinde öznitelik-
tabanlı değişkenlik taşımayan F-ürünlerin sayısı ise sadece 9,5 kat artmıştır. Bu so-
nuçlar, ürünlerdeki öznitelik-tabanlı değişkenliğin ürün çeşitliliğine olanak sağlayarak
bir esneklik sağladığını, ancak bunun karşılığında daha fazla kaynak kullanımı gerek-
tirdiğini göstermektedir.
Literatürde bu çalışmanın konusu olan ürün tipleri için sentaktik ve semantik ta-
nımlar verilmiş durumdadır, ancak bu yeni ürün tiplerine ait ürünlerin bir modelden
verimli bir şekilde türetilmesini sağlayacak yöntemler veya algoritmalar sunulmamış-
tır. Bu çalışmada, içinde öznitelik-tabanlı değişkenlik içeren ürünleri türetme işlemi
için kullanılan algoritmalar kaba kuvvet stratejileri kullanmakta, bu da sonuçlara
olumsuz olarak yansımaktadır. İlgili ürünleri türetmek için daha verimli algoritmalar
geliştirilmesi ihtiyacı gelecekteki araştırmalar tarafından çözülmesi gereken bir prob-
lem olarak varlığını sürdürmektedir.
Bu çalışmadaki deneyler için nispeten küçük ölçekte örnek bir özellik modeli kul-
lanılmıştır. Ancak endüstriyel ölçülerdeki özellik modellerinin daha büyük olabildiği,
yüzlerce özellik, öznitelik ve karmaşık kısıt içerebildiği bilinmektedir. Ayrıca, farklı
özellik modelleri farklı biçimlere ve farklı karakteristik niteliklere sahip olabilirler.
Bu çalışmada sunulan sonuçlar özellik modelleri ve temsil ettikleri ürün tipleri arasın-
daki ilişkilerin çözümlenmesine dair ilk izlenimleri aktarmaktadır. Farklı deneysel
örnekler ve gerçek sistemler üzerinde yapılan benzer çözümlemelerin sayısının artma-
195
sıyla elde edilen verinin hacmi de artacak, bunun sonucunda da daha detaylı ve kesin
sonuçlar elde edilebilecektir. Ana hatları bu bildiride çizilmiş olan çözümlemelerin
farklı modellere uygulanması gelecekte yapılacak araştırmaların konusu olabilecek bir
problemdir.
Teşekkür
Bu çalışma TÜBİTAK ARDEB 1001 - Bilimsel ve Teknolojik Araştırma Projelerini
Destekleme Programı çerçevesinde, 215E188 kodlu proje kapsamında desteklenmiş-
tir.
Referanslar
1. D. Benavides, S. Segura, and A. Ruiz-Cortés, “Automated analysis of feature models 20
years later: a literature review”, Information Systems 35(6): 615–636, 2010.
2. D. Benavides, P. Trinidad, and A. Ruiz-Cortés, “Automated Reasoning on Feature Mod-
els”, in: Proceedings of CAiSE’05, LNCS vol. 3520, pp. 491–503, 2005.
3. J. Bosch, G. Florijn, D. Greefhorst, J. Kuusela, H. Obbink, and K. Pohl, “Variability issues
in software product lines”, in: Proceedings of the 4th international workshop on product
family engineering (PFE’01), pp 11–19, 2001.
4. L. Chen and M.A. Babar. “A systematic review of evaluation of variability management
approaches in software product lines”, Information and Software Technology 53: 344–362,
2011.
5. K. Czarnecki, S. Helsen, and U. Eisenecker, “Formalizing cardinality-based feature mod-
els and their specialization”, Software Process: Improvement and Practice 10(1): 7–29,
2005.
6. K. Czarnecki, T. Bednasch, P. Unger, and U. Eisenecker, “Generative programming for
embedded software: An industrial experience report”, in: Proceedings of the ACM
SIGPLAN/ SIGSOFT Conference on Generative Programming and Component Engineer-
ing (GPCE 2002), LNCS vol. 2487, pp. 156–172, 2002.
7. https://sicstus.sics.se/, son erişim Haziran 2016
8. http://www.sei.cmu.edu/productlines/, son erişim Haziran 2016
9. K. Kang, S. Cohen, J. Hess, W. Novak, and S. Peterson, “Feature-Oriented Domain Anal-
yses (FODA) Feasibility Study”, Technical Report CMU/SEI-90-TR-21, Software Eng.
Inst., Carnegie Mellon Univ., Pittsburgh, 1990.
10. A.S. Karataş, H. Oğuztüzün, and A. Doğru, “From extended feature models to constraint
logic programming”, Science of Computer Programming 78(12): 2295–2312, 2013.
11. A.S. Karataş and H. Oğuztüzün, “Attribute-based variability in feature models”, Require-
ments Engineering 21(2): 185-208, 2016.
12. F.W. Lacroix et al., “A Concept of Operations for a New Deep-Diving Submarine”, Na-
tional Defense Research Institute, 2002.
13. P. Schobbens, J.C. Trigaux P. Heymans, and Y. Bontemps, “Generic semantics of feature
diagrams”, Computer Networks 51(2): 456–479, 2007.
14. M. Simos et al., “Software Technology for Adaptable Reliable Systems (STARS) Organi-
zation Domain Modeling (ODM) Guidebook Version 2.0”, STARS-VCA025/ 001/00,
Manassas, VA, Lockheed Martin Tactical Defense Systems, 1996.
196