<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Özellik Modelleri ve Temsil Ettikleri Ürün Tipleri Arasındaki İlişkilerin Çözümlenmesi</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ahmet Serkan Karataş</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Halit Oğuztüzün</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Orta Doğu Teknik Üniversitesi</institution>
          ,
          <addr-line>Bilgisayar Mühendisliği Bölümü, Ankara</addr-line>
          ,
          <country country="TR">Türkiye</country>
        </aff>
      </contrib-group>
      <fpage>185</fpage>
      <lpage>196</lpage>
      <abstract>
        <p>Ö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şılanabilmesi 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, dinamik 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 etkileyeceğ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</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        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ı,
maliyetin %60’a varan değerlerde azaltılması, gereken iş gücünün %87’ye varan
oranlarda azaltılması, pazara sunum zamanının %98’e varan değerlerde azaltılması [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
gibi yararlar bu yaklaşımın popülaritesini her geçen gün arttırmaktadır.
      </p>
      <p>
        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 [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Yapılan yakın tarihli bir literatür incelemesine göre [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] bu amaç
doğrultusunda kullanılması önerilmiş yöntemler arasında en yaygın olarak kullanılanı
özellik modelleridir [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        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
gruplarına nicelik eklenmesi [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] ve özelliklere öznitelikler eklenmesi [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] olarak sayılabilir.
Modellerdeki özelliklere özniteliklerin eklenmesiyle elde edilen genişletilmiş özellik
modelleri özniteliklerin kullanılmasıyla alan bilgisinin doğal bir şekilde
modellenmesine izin verirler. Ayrıca, özniteliklerin dallar arası karmaşık kısıtlarda yer almasına
izin verilmesiyle birlikte [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] kimi gereksinimlerin genişletilmiş özellik modellerinde
etkili ve doğal bir şekilde ifade edilebilmesinin yolu açılmıştır.
      </p>
      <p>
        Ancak özniteliklerin karmaşık kısıtlarda kullanılmasına izin verilmesi bazı yeni
gereksinimleri 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 [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. 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 [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Bu çeşitlilik farklı
niteliklere sahip farklı ürün tiplerini de içermektedir.
      </p>
      <p>
        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
raporundan [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] 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.
      </p>
      <p>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
performans verileri sunulmuştur. Son bölüm olan 5. Bölümde ise elde edilen sonuçlar
yorumlanmıştır.
2
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>Art Alan</title>
      <p>
        Ö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 [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Özellikler işlevsel
yetenekler olabilecekleri gibi, işlevsel olmayan bağlam, kalite, gerçekleştirim gibi
hususlara da ait olabilirler. Bir özellik modeli ise hiyerarşik olarak düzenlenmiş olan bir
küme özellik, bu özellikler arasındaki dağılma kurallarını tanımlayan ayrışma
ilişkileri, 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 [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>Ö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.</p>
      <p>
        Ş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
herhangi bir karakteristiğidir [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Genişletilmiş özellik modelleri özniteliklerin model
üzerinde tanımlanan kısıtlarda yer alabilmesine izin vermektedir [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Ö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
edilmelidir ve Ö4 özelliğinin n4 özniteliğinin değeri 80-180 aralığında olmalıdır” gibi
kısıtlar tanımlanabilmektedir.
2.2
      </p>
      <p>
        Ö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 [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ],
öznitelikler hakkında ise bir şey söylenmez. Ancak özniteliklerin etkin bir şekilde
kullanı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
bırakılan özelliklere bakılarak yapılamaz, özniteliklerin de değerlerinin denetlenmesi
gerekir.
      </p>
      <p>
        Ö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 [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. 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
olarak belirlidir). Ancak öznitelik açısından farklar içerirler.
      </p>
      <p>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
özniteliklere 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
özniteliklere 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</p>
      <p>
        Ürün Tipleri Arasındaki İlişkiler
Bir özellik modelinin semantik karşılığı modelin temsil ettiği ürün kümesidir [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. 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.
      </p>
      <p>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ürecinde 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.</p>
      <p>Başlangıçta bir araştırma denizaltısı ailesi için örnek bir temel özellik modeli
(Model-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
bulunmadığı varsayılmıştır. Model-0’ı temsil eden özellik çizeneği Şekil 2’de
verilmiştir.
Ş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şletilmiş ö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
Model2’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.</p>
      <p>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 &gt; 1 olmasını şart koşar.
 Eğer İşletim Sistemi.sürüm &lt; 3 ve Analiz özelliği ürüne dahil edilmiş ise İşletim</p>
      <p>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
öznitelikler ve öznitelik içeren dallar arası karmaşık kısıtlardır.</p>
      <p>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üretilebilecek tüm ürünlerin sayısı her bir ürün tipi için Tablo 1’de verilmiştir.</p>
      <p>Tablo 1. Her bir modelin temsil ettiği ürün sayıları</p>
      <sec id="sec-2-1">
        <title>Model-0 Model-1 Model-2 Model-3</title>
        <p>F-ürün
P-ürün
80
200
760
760
0
320
16.280
152.600</p>
      </sec>
      <sec id="sec-2-2">
        <title>Uygun</title>
        <p>P-ürün</p>
        <p>0
240
12.880
135.056
Tablo 1’de sunulan sonuçların analizi iki başlık altında toplanabilecek bir dizi
karakteristik 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.</p>
        <p>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
sunulurken 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ğerlendirileceğ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ünler 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
modelleri P-konfigürasyon ve P-ürün temsil etme yeteneğine sahiptir.</p>
        <p>İ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
incelendiğinde tüm modeller için aşağıdaki ilişkinin geçerli olduğu görülmektedir:
P-ürün sayısı ≥ uygun P-ürün sayısı ≥ C-ürün sayısı
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.</p>
        <p>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.</p>
        <p>Eğer bir özellik belirtilmiş tanım kümesinde n tane değer içeren bir özniteliğe
sahipse, 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ümesinde üç veya daha fazla değer varsa potansiyel P-ürün sayısı potansiyel F-ürün
sayısından daha fazla olacaktır (çünkü n ≥ 3 ise her zaman 2n – n – 1 &gt; n olacaktır).</p>
        <p>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üretilebilecek 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.</p>
        <p>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
sadece 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)
şeklinde görülmektedir. Öznitelik sayısındaki artış A-tanım kümelerinin olası
kombinasyonları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
nedenle, model ne kadar yoğun şekilde öznitelik içeriyorsa bu oranın da o denli yüksek
olacağı sonucuna varılabilir.</p>
        <p>Tartışacağımız son gözlem ikinci alt başlığa aittir. Eğer rasgele bir ürün tipi
seçecek 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
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.</p>
        <p>Örneğin, sadece Model-1 ve Model 2’yi göz önüne alınacak olursa değişim
oranları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.</p>
        <p>Tablo 2. Her bir modeldeki ölü öznitelik değerleri</p>
      </sec>
      <sec id="sec-2-3">
        <title>Model-0 Model-1 Model-2 Model-3</title>
        <p>Gövde.</p>
        <p>tip
∅
∅
∅</p>
        <p>Motor.</p>
        <p>güç
∅
∅
Ölü değerler</p>
        <p>Anten.
frekans
{800}
{800}
İş Sis.
sürüm
{1}</p>
        <p>Analiz.</p>
        <p>tip
∅</p>
        <p>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
özniteliğ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
Model-2 ile aynıdır. Benzer şekilde, yeni elde edilen Model-3´ Anten.frekans
özniteliğinin tanım kümesinin {1600, 1900} olması (yani 800 değerinin orijinal tanım
kümesinden çı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ünlerin sayıları hesaplanmıştır. Elde edilen sonuçlar Tablo-3’te sunulmaktadır.</p>
        <p>Tablo 3. Ölü değerlerin elenmesinden sonraki ürün sayıları
F-ürün</p>
        <p>P-ürün</p>
      </sec>
      <sec id="sec-2-4">
        <title>Uygun P-ürün C-ürün Model-2´ Model-3´</title>
        <p>Göze çarpan ilk nokta yeni modeller tarafından temsil edilen F-ürün sayısının
modellerin 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
nitelendirilebilmesi için, üründeki özniteliklere A-tanım kümelerinden hangi değer
atanırsa 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ından temsil edilen F-ürün veya C-ürün yelpazesini hiçbir şekilde etkilemeyecektir.</p>
        <p>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
paragrafta detaylıca incelenmektedir.</p>
        <p>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ğerler 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
temsil 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</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Gerçekleştirim ve Performans</title>
      <p>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ümkün olmamaktadır. Bu nedenle deneylerde kullanılan modeller üzerindeki analizler de
otomatik bir şekilde yapılmıştır.</p>
      <p>
        Literatürde belirtilmiş çok sayıda analiz operasyonu (tüm ürünleri bulma,
filtreleme, ürün geçerlilik denetimi, modelin değişkenlik faktörünü hesaplama, vs.)
bulunmaktadır [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Klasik yazılım ürün hatları üzerindeki analizler genellikle tasarım
sırası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çilirken dinamik sistemlerde çalışma sırasında gerçekleşebilecek evrim ve yeniden
konfigürasyon işlemleri için ihtiyaç duyulabilecek operasyonlar göz önüne alınmıştır.
      </p>
      <p>
        Analizleri gerçekleştirebilmek için ilk olarak modeller elle bir kısıt mantık
programına eşlenmiştir. Bu işlem sırasında hedef platform olarak SICStus Prolog [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]
kullanılmıştır. Eşleme ve analiz operasyonlarının gerçekleştirimi için SICStus Prolog
tarafı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ılardan 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.
      </p>
      <p>Tablo 4. Seçilmiş analiz operasyonlarına ait performans verileri</p>
      <sec id="sec-3-1">
        <title>Milisaniye cinsinden operasyon süresi</title>
      </sec>
      <sec id="sec-3-2">
        <title>Model-0</title>
        <p>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,
operasyonlar 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</p>
      </sec>
      <sec id="sec-3-3">
        <title>Geçerli Ürün (F)</title>
      </sec>
      <sec id="sec-3-4">
        <title>Geçerli Ürün (P)</title>
      </sec>
      <sec id="sec-3-5">
        <title>Geçerli Ürün (uP)</title>
      </sec>
      <sec id="sec-3-6">
        <title>Geçerli Ürün (C)</title>
      </sec>
      <sec id="sec-3-7">
        <title>Filtre (F)</title>
      </sec>
      <sec id="sec-3-8">
        <title>Filtre (P)</title>
      </sec>
      <sec id="sec-3-9">
        <title>Filtre (uP)</title>
      </sec>
      <sec id="sec-3-10">
        <title>Filtre (C)</title>
      </sec>
      <sec id="sec-3-11">
        <title>Tüm Ürünler (F)</title>
      </sec>
      <sec id="sec-3-12">
        <title>Tüm Ürünler (P)</title>
      </sec>
      <sec id="sec-3-13">
        <title>Tüm Ürünler (uP)</title>
        <p>Tüm Ürünler (C)
1
1
1
1
12
12
13
11
11
13
11
9
1
1
1
1
12
1.024
1.056
1.093</p>
        <p>14
4.265
8.287
8.465
1
1
1
1
12
415
401
416
14
2.091
2.374
2.442
1
1
1
1
12
7.460
8.758
9.213</p>
        <p>14
102.631
109.368
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ştirimler yapmak mümkün olabilir.</p>
        <p>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</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Sonuçlar</title>
      <p>
        Bu bildiride teorik altyapısı [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]’de kurulmuş olan, özellik modellerinde özniteliklerin
etkili bir şekilde kullanılmasıyla ortaya çıkmış öznitelik-tabanlı değişkenliğin
doğurduğ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ırma denizaltısı için inşa edilmiş örnek bir özellik modeli bir evrim sürecine tabi
tutulmuş, evrimleşen modellerin temsil ettikleri farklı tiplerdeki ürün ailelerindeki
değişimler gözlemlenmiştir.
      </p>
      <p>Yapılan deneyler, içerisinde halen öznitelik-tabanlı değişkenlik içeren P-ürün,
uygun P-ürün ve C-ürünlerin sayısındaki artışın çok yüksek hızlara ulaşabileceğini
göstermektedir. Ö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
özniteliktabanlı değişkenlik taşımayan F-ürünlerin sayısı ise sadece 9,5 kat artmıştır. Bu
sonuç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ı
gerektirdiğini göstermektedir.</p>
      <p>Literatürde bu çalışmanın konusu olan ürün tipleri için sentaktik ve semantik
tanı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
problem olarak varlığını sürdürmektedir.</p>
      <p>Bu çalışmadaki deneyler için nispeten küçük ölçekte örnek bir özellik modeli
kullanı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ındaki 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
artması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.
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.</p>
      <p>Referanslar</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>D.</given-names>
            <surname>Benavides</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Segura</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ruiz-Cortés</surname>
          </string-name>
          , “
          <article-title>Automated analysis of feature models 20 years later: a literature review”</article-title>
          ,
          <source>Information Systems</source>
          <volume>35</volume>
          (
          <issue>6</issue>
          ):
          <fpage>615</fpage>
          -
          <lpage>636</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>D.</given-names>
            <surname>Benavides</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Trinidad</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ruiz-Cortés</surname>
          </string-name>
          , “
          <source>Automated Reasoning on Feature Models”, in: Proceedings of CAiSE'05</source>
          , LNCS vol.
          <volume>3520</volume>
          , pp.
          <fpage>491</fpage>
          -
          <lpage>503</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>J.</given-names>
            <surname>Bosch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Florijn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Greefhorst</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kuusela</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Obbink</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Pohl</surname>
          </string-name>
          , “
          <article-title>Variability issues in software product lines”</article-title>
          ,
          <source>in: Proceedings of the 4th international workshop on product family engineering (PFE'01)</source>
          , pp
          <fpage>11</fpage>
          -
          <lpage>19</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>L.</given-names>
            <surname>Chen</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.A.</given-names>
            <surname>Babar</surname>
          </string-name>
          . “
          <article-title>A systematic review of evaluation of variability management approaches in software product lines”</article-title>
          ,
          <source>Information and Software Technology</source>
          <volume>53</volume>
          :
          <fpage>344</fpage>
          -
          <lpage>362</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Helsen</surname>
          </string-name>
          , and U. Eisenecker, “
          <article-title>Formalizing cardinality-based feature models and their specialization”</article-title>
          ,
          <source>Software Process: Improvement and Practice</source>
          <volume>10</volume>
          (
          <issue>1</issue>
          ):
          <fpage>7</fpage>
          -
          <lpage>29</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Bednasch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Unger</surname>
          </string-name>
          , and U. Eisenecker, “
          <article-title>Generative programming for embedded software: An industrial experience report”</article-title>
          ,
          <source>in: Proceedings of the ACM SIGPLAN/ SIGSOFT Conference on Generative Programming and Component Engineering (GPCE</source>
          <year>2002</year>
          ), LNCS vol.
          <volume>2487</volume>
          , pp.
          <fpage>156</fpage>
          -
          <lpage>172</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. https://sicstus.sics.se/,
          <source>son erişim Haziran</source>
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. http://www.sei.cmu.edu/productlines/,
          <source>son erişim Haziran</source>
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>K.</given-names>
            <surname>Kang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Cohen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hess</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Novak</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Peterson</surname>
          </string-name>
          , “
          <string-name>
            <surname>Feature-Oriented Domain Analyses (FODA) Feasibility</surname>
            <given-names>Study”</given-names>
          </string-name>
          ,
          <source>Technical Report CMU/SEI-90-TR-21</source>
          ,
          <string-name>
            <given-names>Software</given-names>
            <surname>Eng</surname>
          </string-name>
          . Inst., Carnegie Mellon Univ., Pittsburgh,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>A.S.</given-names>
            <surname>Karataş</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Oğuztüzün</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Doğru</surname>
          </string-name>
          , “
          <article-title>From extended feature models to constraint logic programming”</article-title>
          ,
          <source>Science of Computer Programming</source>
          <volume>78</volume>
          (
          <issue>12</issue>
          ):
          <fpage>2295</fpage>
          -
          <lpage>2312</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>A.S.</given-names>
            <surname>Karataş</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Oğuztüzün</surname>
          </string-name>
          , “
          <article-title>Attribute-based variability in feature models”</article-title>
          ,
          <source>Requirements Engineering</source>
          <volume>21</volume>
          (
          <issue>2</issue>
          ):
          <fpage>185</fpage>
          -
          <lpage>208</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>F.W.</given-names>
            <surname>Lacroix</surname>
          </string-name>
          et al.,
          <article-title>“A Concept of Operations for a New Deep-Diving Submarine”</article-title>
          ,
          <source>National Defense Research Institute</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>P.</given-names>
            <surname>Schobbens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.C. Trigaux P.</given-names>
            <surname>Heymans</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bontemps</surname>
          </string-name>
          , “
          <article-title>Generic semantics of feature diagrams”</article-title>
          ,
          <source>Computer Networks</source>
          <volume>51</volume>
          (
          <issue>2</issue>
          ):
          <fpage>456</fpage>
          -
          <lpage>479</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>M. Simos</surname>
          </string-name>
          et al.,
          <article-title>“Software Technology for Adaptable Reliable Systems (STARS) Organization Domain Modeling (ODM) Guidebook Version 2</article-title>
          .0”, STARS-VCA025/ 001/00, Manassas,
          <string-name>
            <surname>VA</surname>
          </string-name>
          ,
          <source>Lockheed Martin Tactical Defense Systems</source>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>