<!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>Son Kullanıcı Tabanlı Yazılım Geliştirme Aracı</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Cengiz TOĞAY</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Volkan AKKUŞ</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ali Hikmet DOĞRU</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Anahtar Kelimeler: Son Kullanıcı, Yazılım Geliştirme Süreci, Yazılım Geliş- tirme Aracı</institution>
          ,
          <addr-line>Nitelik Modeli</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Netaş Telekomünikasyon A.Ş</institution>
          ,
          <addr-line>İstanbul</addr-line>
          ,
          <country country="TR">Türkiye</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Orta Doğu Teknik Üniversitesi</institution>
          ,
          <addr-line>Bilgisayar Mühendisliği Bölümü, Ankara</addr-line>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Yalın</institution>
          ,
          <addr-line>Bursa</addr-line>
        </aff>
      </contrib-group>
      <fpage>26</fpage>
      <lpage>34</lpage>
      <abstract>
        <p>Özet. Son kullanıcılar sahip oldukları uygulamalara gereksinimleri doğrultusunda çeşitli düzeylerde üreticiden bağımsız olarak müdahale etme eğilimindedirler. Wordpress gibi uygulamalarda, veri içerik yönetimi kapsamında çok kısıtlı bir şekilde yapılan tanımlamalar aracılığı ile özelleştirilmiş (başlık isimleri, logolar vb.) ürün elde edilebilmektedir. Sunulan çalışma ise; son kullanıcıların web ortamında sunulan geliştirme ortamı aracılığı ile yeni ürün geliştirme, mevcut ürünü değiştirme ya da ürünü kullanan diğer kullanıcıların da faydasına olacak bir bileşeni geliştirme yeteneğini kazanmasını sağlanmaktadır. Böylece, çalışmada sunulan projede tanımlı üç farklı tip son kullanıcı gereksinimleri doğrultusunda satın aldıkları ürüne müdahale edebilmektedirler. Son kullanıcıların etkide bulundukları/tanımladıkları ürün tasarımı, sunulan motor aracılığı ile Web ve Microsoft Windows işletim sistemi olmak üzere aynı ürünün iki farklı çözümünün otomatik olarak üretilmesi sağlamaktadır. Web ortamında ürütilen ürün bulut üzerinde çalıştırılabilir.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>şeklinde oluşturulması gerekmektedir. Sunulan çalışmada amacımız temelleri [20]’de
atılan yöntem ile son kullanıcıların mümkün olduğunca fazla bir şekilde yazılım
süreçlerine dâhil olmasının sağlanmasıdır. Bu amaçla detayları ikinci bölümde
verilmekle birlikte, üç tip kullanıcı tipi tespit edildi. Böylece, kullanıcıların yetkinlikleri
düzeyinde yazılım süreçlerine dâhil olabilmesi sağlanmıştır. Birinci tip kullanıcıların
nitelik modeli üzerinde yapacakları seçimler ışığında gereksinimlere uygun yazılımın
otomatik olarak üretilmesi sağlanmaktadır. İkinci tip kullanıcılar, mevcut akış
diyagramları üzerinde değişiklik yapmak, yeni akış diyagramları tanımlamak ve ürünün
arayüzünde görünecek olan bilgileri eklemek ya da çıkartmak suretiyle uygulamaya
doğrudan müdahale edebilmektedir. Son olarak üçüncü tip kullanıcılar, üründe
kullanılmak üzere yeni bileşenlerin (örnek olarak bir SMS hizmetinin sağlanması) dll
olarak gelişirilerek projeye dahil edilmesi ya da tamamen yeni bir alanda (domain)
uygulama geliştirilebilmesi için veritabanının tasarlanması gibi görevleri yerine
getirebilmtekdirler.
1.1</p>
      <p>Nitelik Modeli</p>
      <p>
        Model, bir alan mühendisi ile birlikte yeni bir alanda kullanıcının bilgileri, kitaplar,
mevcut farklı çözümler vb. kaynaklardan toplanarak oluşturulması sureti ile havuzda
hiç bileşen olmasa da gerçekleştirilebilir. Bu durum için amaç, son kullanıcının
isteklerinin en iyi şekilde algılanmasıdır. Ancak, ürün hattı mimarilerinde (product line
architecture) nitelik modelleri yaygın şekilde kullanılmaktadır. Nitelik en geniş
anlamı ile tüm paydaşlar (kullanıcı, müşteri, geliştirici, alan uzmanı, vb.) tarafından
bilinen ve ürünler arasında benzerlik ve farkındalık yaratan bağlamlar (aspect) ile
karakteristikler olarak bilinir [1][
        <xref ref-type="bibr" rid="ref1">2</xref>
        ][
        <xref ref-type="bibr" rid="ref2">3</xref>
        ][
        <xref ref-type="bibr" rid="ref4">5</xref>
        ]. Nitelik modelinde nitelikler genellikle bir ağaç
yapısı ile ifade edilmektedir. Ancak, nitelikler arasındaki karmaşık (bir yaprak nitelik
bir başka daldaki yaprak niteliğe ‘gerektirir/hariç’ ilişkisi ile bağlı olabilir)
bağlantıların bulunması nedeni ile arka planda çizge şeklinde bir oluşum meydana
gelebilmektedir. Anlaşılabilirliliğin arttırılması amacı ile ağaç üzerinde tekrarlı yapılar ile ifade
edilebilir. Gösterim konusunda ihtilaflar bulunmakla birlikte Czarnecki’nin gösterimi
[
        <xref ref-type="bibr" rid="ref5">6</xref>
        ] en çok tercih edilen gösterimlerdendir. Nitelik modelleri pek çok sahada
hâlihazırda kullanılmaktadır; örnek olarak; “bulletin board system domain” [
        <xref ref-type="bibr" rid="ref1">2</xref>
        ], “the private
branch exchange domain” [
        <xref ref-type="bibr" rid="ref6">7</xref>
        ], “web services domain” [
        <xref ref-type="bibr" rid="ref7">8</xref>
        ], “elevator control systems”
[
        <xref ref-type="bibr" rid="ref8">9</xref>
        ] verilebilir [
        <xref ref-type="bibr" rid="ref3">4</xref>
        ]. Bunlarla birlikte yazılım mühendisliği kapsamında; tekrar
kullanılabilir yazılım geliştirme [
        <xref ref-type="bibr" rid="ref9">10</xref>
        ], bağlam yönelimli programlama [
        <xref ref-type="bibr" rid="ref10">11</xref>
        ], üretimsel
(generative) programlama [
        <xref ref-type="bibr" rid="ref11">12</xref>
        ], ürün hattı yazılım mühendisliği [
        <xref ref-type="bibr" rid="ref1">2</xref>
        ][
        <xref ref-type="bibr" rid="ref12">13</xref>
        ], nesneye yönelik
yazılım mühendisliği [
        <xref ref-type="bibr" rid="ref6">7</xref>
        ], bileşen yönelimli sistemler [
        <xref ref-type="bibr" rid="ref13">14</xref>
        ][
        <xref ref-type="bibr" rid="ref14">15</xref>
        ][16][17] ve nitelik
yönelimli programlama [18] örnek olarak gösterilebilir [
        <xref ref-type="bibr" rid="ref3">4</xref>
        ]. Nitelik modelinde yer alan
niteliklerin kendi aralarındaki ve çözüm uzayındaki bileşenler ile bağlantılarının kural
tabanlı sistemler aracılığı ile ifade edilmesi ve kontrol edilmesi mümkündür [19]. Bu
şekilde gereksinim dünyasında yapılacak seçimlerin gerçek dünyada bir karşılığının
olup olmadığı, uyumsuzluk yaratan niteliklerin tespit edilmesi sağlanabilmektedir.
      </p>
      <p>Nitelik modeli, farklı kullanıcı tipleri (son kullanıcı, yazılım mühendisi, sistem
mühendisi vb.) için farklı düzeyde (nitelik, işletim sistemi, donanım vb.) olarak
hazırlanabilmektedir. Bu çalışmada Şekil 1’de gösterildiği üzere sadece son kullanıcı
temelli nitelik modeli oluşturulmuş ve kullanılmıştır. Alan mühendisi tarafından
hazırlanan model, bileşen havuzunda yer alan bileşenlerin bir araya getirilerek ürün
üretmesinde farklılık yaratacak nitelikleri içermektedir. Birinci tip kullanıcı, yapacağı
seçimler ile istediği ürünü tanımlama imkânına sahip olmaktadır. Çalışmada sunulan
proje ile Şekil 1’de gösterilen “Araştırma Projeleri Yönetimi” niteliğinin seçilmesi
durumunda üretilecek uygulamada ilgili nitelik ile bağlantılı tüm yapılar (veri tabanı,
kod düzeyinde vb.) otomatik olarak üretilecektir. Dolayısı ile projede “Erasmus”,
“Leonardo”, “Öğretim Üyesi Yetiştirme” ve “SanTez” ile ilgili varlıklar projede yer
alacaktır. Nitelik modeli üzerinde çalışan kural tabanlı sistemler aracılığı ile hangi
niteliklerin birlikte seçilebileceği/seçilemeyeceği, seçimler sırasında ayrıca önerilerin
verilmesi, nitelik modeli üzerinde yapılan seçimlerin tutarlı olup olmadığı vb.
sonuçlar otomatik olarak çıkarılabilmektedir.</p>
      <p>Şekil 1. Üniversite Öğrenci İşleri Otomasyonu Nitelik Modeli</p>
      <p>Son kullanıcıların ürünleri teslim aldıktan sonra çeşitli düzeylerde üründe
değişiklik ihtiyacı ortaya çıkmaktadır. Ürünün kaynak kodlarına sahip son kullanıcılar dahi
üründe değişiklik yapılması için bakım ya da mühendisin şirket bünyesine dâhil
edilmesi gibi ihtiyaçlar ortaya çıkmaktadır. Dolayısı ile son kullanıcılar, ürünün tüm
yaşam döngülerinde yer alırken özellikle küçük müdahaleler şeklindeki istekler için bir
yaklaşıma ihtiyaç bulunmaktadır. Sunulan yaklaşım ile son kullanıcıların nitelik
modeli ile ürünün niteliklerini seçme/belirleme, üründe akış diyagramları dâhil olmak
üzere yenilikler veya değişiklikler yapmak ve yazılım geliştirme yetkinliği var ise
geliştirilecek bileşenler aracılığı ile bileşen havuzunu genişleterek yeni bir ürünün
oluşturulmasına katkı sağlaması hedeflenmektedir.
2</p>
      <p>Önerilen Yaklaşım
Son kullanıcılar aldıkları eğitimler veya şirket içi pozisyonlarına bağlı olarak
kullandıkları yazılımlara müdahale etmek eğilimindedirler. Bu müdahale uygulamanın satın
alınması sırasında dahi olabilmektedir. Kullanıcı, ürünün tamamı yerine sadece belirli
niteliklere sahip olan şeklini satın almak isteyebilmektedir. Ürün bazında hangi
niteliğin hangi başka nitelikleri gerektirdiği ya da karşı olduğu gibi nitelikler arasındaki
ilişki ağı, özellikle ürünü satmaya çalışan personel için dahi karmaşık bir hal
alabilmektedir. Dolayısı ile bileşenlerin bir araya gelmesi ile çeşitlilik kazanan bir ürün
havuzunun oluşturulması yerine, müşteri isteklerine göre otomatik olarak ürün üreten
bir uygulama, farklı tip kullanıcı beklentilerini karşılamak üzere ürünleri otomatik
olarak geliştirilebilir.</p>
      <p>Şekil 2: Geneu Mimarisi
Mimarisi Şekil 2’de gösterilen “Geneu” isimli proje, kullanıcı tarafından tanımlanmış
niteliklere uygun bir yazılımın otomatik olarak geliştirilmesini sağlamaktadır. Geneu
ile web tarayıcıları ve Windows işletim sisteminde çalışacak uygulamanın aynı anda
geliştirilmesi mümkün olmaktadır. Kullanıcı aynı yetkiler ile iki farklı uygulamada
aynı özelliklere sahip olabilmektedir. Son kullanıcıların bu isteklerini karşılamaya
yönelik olarak; Geneu ile üç farklı kullanıcı tipi için uygulamaya müdahale ve yeni
bir uygulama geliştirilmesine olanak tanımaktayız:</p>
      <p>Birinci tip: Nitelik Modeli üzerinde ihtiyaçlarına yönelik seçimler ışığında istediği
niteliklere sahip ürünü elde eder. Bu tip kullanıcı web ortamında istediği ürünü
nitelik modeli üzerinde seçebilen bir kullanıcı ya da bir satış temsilcisi olabilir.
Kullanıcılar, seçimleri sırasında mümkün olmayan seçimler konusunda sistem
tarafından uyarılmak sureti ile yönlendirilirler. Sistem, nitelik modeli üzerinde çalışacak
motorlar aracılığı ile daha akıllı yönlendirmelerin yapılması sağlayabilir. Yapılan
seçimler, Geneu tarafından üretilecek kodun hangi bileşenlere ihtiyacı olduğunu
belirler. Dolayısı ile son kullanıcının doğrudan ürünün özelliklerini belirleme
yetkisi vardır. Bu tip kullanıcı bir satış temsilcisi de olabilir. Geneu’nun kod üretme
yeteneği sayesinde satış temsilcilerinin müşteri ile gerçekleştirecekleri iletişim
sonucunda doğrudan çözümün anlık üretilmesi ve müşteriye gösterilmesi imkânı
bulunmaktadır. Şekil 2’de yer alan “SANTEZ” niteliğinin seçilmesi durumunda,
Şekil 3’te gösterilmekte olan nitelik ile ilişkilendirilmiş varlıklar otomatik olarak
ürünün üretilmesi safhasında veritabanına Şekil 4’ de gösterilen özelliklerle birlikte
hazırlanacaktır.</p>
      <p>Şekil 3: SANTEZ ile ilgili varlıklar
Şekil 4: Başvuru varlığı ve özellikleri
x İkinci tip: Birinci tip kullanıcının tüm yeteneklerine sahip olmakla birlikte, bu tip
kullanıcılar, yeni tablo oluşturma/değiştirme ve sürükle bırak temelli iş akışı
modeli oluşturma/değiştirme ile ürüne yeni özellikler katma yeteneklerine de sahiptirler.
Şekil 5’te bir öğrencinin aldığı toplam kredi sayısının mezuniyet için gerekli
minimum değer ile kontrolü yapılmaktadır. Belirli bir rakamın aşılması durumunda
ders alması engellenebilir. Bu tip kullanıcılar projede yeni varlıklar ve özellikleri
tanımlamak sureti ile arka planda otomatik olarak oluşturulacak veri tabanı
tablolarının oluşturulmasına yol açar. Yine arayüz üzerinde yapılan seçimler ile varlıklar
arasında ilişkiler kurulur. Örnek olarak bir üniversitede yer alan öğrenciler,
hocalar, dersler ve aralarındaki ilişkiler ele alındığında, bir öğrencinin alabileceği
toplam ders sayısına kısıt getirme gibi temel özellikler Geneu arayüzü ile doğrudan
gerçekleştirilebilir. Benzer şekilde, eğer böyle bir sistem var ise, kullanıcı,
öğrenciye yeni bir özellik (öğrenci boyu/kilosu vb.) eklemek sureti ile sisteme katkıda
bulunabilir. Bu kullanıcı tipinin bir miktar yazılım bilgisinin olması ya da kısa bir
eğitim sürecine tabi tutulmasına ihtiyaç olabilir.</p>
      <p>Şekil 5. Akış Diyagramı
Son kullanıcıların sadece isterleri belirlemediği, doğrudan ürüne müdahale edebilme
yeteneğinin kazandırılması çalışmaları her geçen gün önem kazanmaktadır. Web
tabanlı kurulum arayüzü sonrasında, kurulum sırasında aldığı verilerden yola çıkarak
kullanıcıya özel ürünün otomatik olarak oluşmasını sağlayan ürünler bulunmaktadır.
Bu tip içerik belirleme sistemlerine örnek olarak Wordpress ya da Joomla
gösterilebilir. Bu çalışmada ise içerik belirleme sistemlerinden farklı olarak son kullanıcının
(özellikle ikinci ve üçüncü tip) bir adım daha öteye giderek, sadece ürünü özelleştirme
değil; web tabanlı ortamda sürükle bırak tabanlı yeni uygulama geliştirme,
uygulamaya eklentiler yapma ve ürünün davranışlarını değiştirme yeteneği kazandırılmış
olmaktadır.</p>
      <p>Gelinen noktada nitelik modeli editörü ve iş akış editörü birimleri ile birlikte bir
tümleştirilmiş geliştirme ortamı hazırlanmıştır. Ortaya çıkan araç ile farklı kullanıcı
tipleri ile test uygulamaları geliştirilmiştir. Uygulama aynı zamanda olgunlaşmış
alanlarda hızlı uygulama geliştirmenin önünü açmaktadır. Ürün web ortamında
tanımlanması nedeni ile build işlemi farklı bir makine da gerçekleştirilmektedir. Dolayısı ile
özellik büyük projelerde geliştirici bilgisayarlarının yerine daha kapasiteli sunucular
üzerinde günlük build işlemlerinin otomatik olarak gerçekleştirilmesi projenin
doğasından kaynaklı olarak sunulmaktadır.</p>
      <p>Teşekkürler</p>
      <p>Bu çalışmada adı geçen Geneu projesi TÜBİTAK-Teknoloji ve Yenilik Destek
Programları TEYDEB tarafından desteklenmiştir.</p>
      <p>Üçüncü tip: İkinci tip kullanıcının tüm yeteneklerinin yanı sıra ürüne yeni bir
bileşenin kodlanarak ekleme yeteneğine sahip olan kullanıcıdır. Örneğin, e-posta
atabilme yetkinliği kazandırılması için hazırlanacak dinamik kütüphane (dll dosyası)
Geneu bileşen havuzuna eklenmek sureti ile ilk iki tip kullanıcının hizmetine
sunulur. Burada yapılan geliştirim faaliyetleri tamamen Geneu ortamının dışında
meydana gelir. Mevcut sistemin, Microsoft .NET kütüphanelerine dayanması nedeni ile
bu ortamda geliştirilmesi daha iyi sonuçlar verecektir. Ayrıca bu tip kullanıcıların
yeni bir alanda uygulama geliştirilmesi için gerekli alt yapı çalışmalarını da
gerçekleştirilmesi beklenmektedir.</p>
      <p>Kaynaklar
K. C. Kang, S. G. Cohen, J. A. Hess, W. E. Novak, and A. S. Peterson,
“Feature-Oriented Domain Analysis (FODA) Feasibility Study,” Carnegie-Mellon
University Software Engineering Institute, Nov. 1990.
[16] C. Togay, “HLA Tabanli Bilesenler ile Otomatik Uygulama Geliştirme,” in
Proceedings of the Ulusal Yazilim Muhendisligi Sempozyumu, Ankara, Turkey,
2005.
[17] C. Togay and A. H. Dogru, “Federasyonların HLA Tabanlı Simulasyonlara
Tümleştirilme Otomasyonu için bir Mekanizma,” in 26. Proceedings of the 1.
Ulusal Savunma Uygulamaları Modelleme Simülasyon Konferansı, Ankara,
Turkey, 2005.
[18] D. Batory, “Feature-Oriented Programming and the AHEAD Tool Suite,” in
Proceedings of the 26th International Conference on Software Engineering,
Washington, DC, USA, 2004, pp. 702–703.
[19] C. Togay, “Systematic Component-Oriented Development with Axiomatic
Design,” Dissertation, Middle East Technical University, Ankara, Turkey,
2008.
[20] A. H. Dogru and Togay, Cengiz, “Son Kullanıcı Geliştirme Ortamı için
Aksiyomatik Tasarım Esinli Mimari,” presented at the UYMK 2012 Ulusal Yazılım
Mimarisi KonferansıUYMK 2012, İzmir, 2012.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>K. C.</given-names>
            <surname>Kang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Shin</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Huh</surname>
          </string-name>
          , “
          <article-title>FORM: A featureoriented reuse method with domain-specific reference architectures</article-title>
          ,” Ann Softw Eng, vol.
          <volume>5</volume>
          , pp.
          <fpage>143</fpage>
          -
          <lpage>168</lpage>
          , Jan.
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>K. C.</given-names>
            <surname>Kang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Lee</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Donohoe</surname>
          </string-name>
          , “
          <article-title>Feature-oriented product line engineering,” Softw</article-title>
          . IEEE, vol.
          <volume>19</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>58</fpage>
          -
          <lpage>65</lpage>
          , Aug.
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Togay</surname>
          </string-name>
          , Cengiz, “
          <article-title>Nitelik Modeli Tabanlı Ürün Uygunluk Değerlendirme Yöntemi,” presented at the Ulusal Yazılım Mühendisliği Kongresi 2012 (UYMK 2012)</article-title>
          , İzmir,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Deursen</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Klint</surname>
          </string-name>
          , “
          <article-title>Domain-specific language design requires feature descriptions,”</article-title>
          <string-name>
            <given-names>J.</given-names>
            <surname>Comput</surname>
          </string-name>
          . Inf. Technol., vol.
          <volume>10</volume>
          , p.
          <year>2002</year>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [6]
          <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. W. Eisenecker, “
          <article-title>Formalizing cardinality-based feature models and their specialization</article-title>
          .,” Softw. Process Improv. Pract., vol.
          <volume>10</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>7</fpage>
          -
          <lpage>29</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>K.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. C.</given-names>
            <surname>Kang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kim</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Lee</surname>
          </string-name>
          , “
          <article-title>Feature-oriented engineering of PBX software</article-title>
          ,” in Software Engineering Conference,
          <year>1999</year>
          .
          <source>(APSEC '99) Proceedings. Sixth Asia Pacific</source>
          ,
          <year>1999</year>
          , pp.
          <fpage>394</fpage>
          -
          <lpage>403</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S.</given-names>
            <surname>Robak</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Franczyk</surname>
          </string-name>
          , “
          <article-title>Modeling Web Services Variability with Feature Diagrams,” in Revised Papers from the NODe 2002 Web and Database-Related Workshops on Web</article-title>
          ,
          <source>Web-Services, and Database Systems</source>
          , London, UK, UK,
          <year>2003</year>
          , pp.
          <fpage>120</fpage>
          -
          <lpage>128</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>K.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. C.</given-names>
            <surname>Kang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Chae</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B. W.</given-names>
            <surname>Choi</surname>
          </string-name>
          , “
          <article-title>Featured-based approach to object-oriented engineering of applications for reuse,” Softw Pr</article-title>
          .
          <source>Exper</source>
          , vol.
          <volume>30</volume>
          , no.
          <issue>9</issue>
          , pp.
          <fpage>1025</fpage>
          -
          <lpage>1046</lpage>
          , Jul.
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [10]
          <string-name>
            <surname>M. L. Griss</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Favaro</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <article-title>d'Alessandro, “Integrating Feature Modeling with the RSEB,”</article-title>
          <source>in Proceedings of the 5th International Conference on Software Reuse</source>
          , Washington, DC, USA,
          <year>1998</year>
          , p.
          <fpage>76</fpage>
          -
          <lpage>.</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>K.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. C.</given-names>
            <surname>Kang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kim</surname>
          </string-name>
          , and S. Park, “
          <article-title>Combining Feature-Oriented Analysis and Aspect-Oriented Programming for Product Line Asset Development,”</article-title>
          <source>in Proceedings of the 10th International on Software Product Line Conference</source>
          , Washington, DC, USA,
          <year>2006</year>
          , pp.
          <fpage>103</fpage>
          -
          <lpage>112</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          and
          <string-name>
            <given-names>U. W.</given-names>
            <surname>Eisenecker</surname>
          </string-name>
          ,
          <article-title>Generative programming: methods, tools, and applications</article-title>
          . New York, NY, USA: ACM Press/Addison-Wesley Publishing Co.,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>P. C.</given-names>
            <surname>Clements</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Northrop</surname>
          </string-name>
          ,
          <source>Software Product Lines: Practices and Patterns. Addison-Wesley</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>J.</given-names>
            <surname>Kalaoja</surname>
          </string-name>
          , E. Niemelä, and
          <string-name>
            <given-names>H.</given-names>
            <surname>Perunka</surname>
          </string-name>
          , “
          <article-title>Feature Modelling of ComponentBased Embedded Software</article-title>
          ,”
          <source>in Proceedings of the 8th International Workshop on Software Technology and Engineering Practice (STEP '97) (including CASE '97)</source>
          , Washington, DC, USA,
          <year>1997</year>
          , p.
          <fpage>444</fpage>
          -
          <lpage>.</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>X.</given-names>
            <surname>Peng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Zhao</surname>
          </string-name>
          , “
          <article-title>A Feature-Oriented Adaptive Component Model for Dynamic Evolution</article-title>
          ,”
          <source>in Proceedings of the 11th European Conference on Software Maintenance and Reengineering</source>
          , Washington, DC, USA,
          <year>2007</year>
          , pp.
          <fpage>49</fpage>
          -
          <lpage>57</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>