<!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>Yazılım Test Simülatörleri Geliştirilmesinde Yazılım Ürün Hattı Yaklaşımının Kazanımlarına Dair Bir Eylem Araştırması</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>M. Erdem ERGÜL</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>H. İbrahim BALCI</string-name>
          <email>2ibalci@aselsan.com.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Anahtar Kelimeler: Yazılım Test, Yazılım Ürün Hattı</institution>
          ,
          <addr-line>Simülatör</addr-line>
          ,
          <country>Yazılım Geliştirme İyileştirmesi</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Radar Elektronik Harp ve İstihbarat Sistemleri (REHİS) Grubu, ASELSAN A.Ş. Ankara</institution>
        </aff>
      </contrib-group>
      <fpage>494</fpage>
      <lpage>501</lpage>
      <abstract>
        <p>Software Product Line approach enables improved variability management by handling similar software products as a whole and expressing commonalities and variabilities implicitly which leads to high software reuse levels. This approach increases product quality, decreases costs and time-tomarket. In this work, firstly, problems encountered in software development efforts performed in scope of simulator development for software testing of RADAR projects are discussed. Later, SPL approach is proposed to deal with these problems. It is observed that having much similarities between software products enabled increased SPL benefits. Reuse levels and quality of products are improved, costs are reduced and common look-and-feel is ensured. In this paper, convenience of SPL approach to the software development for software testing and its benefits are examined by measurements and analysis.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Yazılım pazarı her geçen gün biraz daha büyümekte ve üreticiler artan rekabete ayak
uydurabilmek için ürün yelpazelerini genişletme çabası içine girmektedirler. Bu
durum YÜH yaklaşımının da önemini artırmaktadır. YÜH, belirli bir amaç veya
pazara yönelik ihtiyaçları karşılayan yüksek benzerlikteki yazılım bileşenleri
grubudur [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Klasik yazılım geliştirme yaklaşımında, fırsatçı (oppurtunistic) yeniden
kullanım hakimken, yazılım ürün hatlarında ise önceden planlanmış (predictive)
yeniden kullanım yaklaşımı hakimdir.
      </p>
      <p>
        Literatürde YÜH kazanımlarının şu başlıklarda toplandığı görülmektedir: Yüksek
yeniden kullanım oranı [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ], düşük maliyet ve işçilik [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ], planlama ve markete
çıkış hızında iyileşme [
        <xref ref-type="bibr" rid="ref4 ref6">6, 4</xref>
        ], yüksek ürün kalitesi [
        <xref ref-type="bibr" rid="ref2 ref7">7, 2</xref>
        ], yüksek ürün çeşitliliği ve
rekabet gücü [
        <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
        ], bakım ve değiştirilebilirlikte iyileşme [
        <xref ref-type="bibr" rid="ref10 ref2">2, 10</xref>
        ]. Fakat YÜH
uyarlaması her yazılım ürünü için uygulanabilir değildir. Öncelikle uygun bir market
ve ürün ailesinin belirlenmesi gerekmektedir. Birbirine yakın özellikteki ürünlerden
oluşan ürün ailesindeki yazılımlar arasındaki benzerlik ve farklılıklar açıkça ortaya
konulup değişkenliğin en üst seviyede yönetilebilmesi sağlanmalıdır. Bu durum ürün
hattından çıkan ilk yazılımlar ele alındığında daha fazla efor harcanmasına neden olsa
da uzun vadede ürün hattından çıkan ürünlerin gerektirdiği toplam iş gücü önemli
ölçüde azalmaktadır [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>Yazılım test faaliyetleri sırasında ihtiyaç duyulan simülatör yazılımları geniş bir
yelpazede fazlaca ortaklık barındıran ürün çeşitliliği gerektirmektedir. Bu ürünler
arasındaki ortaklık ve farklılıkların daha üst düzeyde yönetilmesini sağlamak
amacıyla yazılım ürün hattı yaklaşımının uygun olacağı öngörülmüştür.</p>
      <p>Bu bildirinin 2. bölümde REHİS Yazılım Test Mühendisliği bölümünde
geliştirilen yazılımların özellikleri ve bu yazılımları hazırlama aşamasındaki
zorluklardan bahsedilecek, 3. bölümde YÜH yaklaşımının nasıl uygulandığı
anlatılacaktır. 4. bölümde ise ölçüm ve analizler ortaya konulacak ve 5. bölümde
yapılan çalışma değerlendirilecektir.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Yazılım Test için Yazılım Geliştirme</title>
      <p>ASELSAN REHİS Sektörü Yazılım Test Mühendisliği Müdürlüğü’nde kara kutu
test yöntemi ile yazılım ürünleri fonksiyonel gereksinimler üzerinden test
edilmektedir. Yazılım gereksinimlerinin çoğunun doğrulanması için yazılım test
simülatörlerinin kullanılması gerekir ve bu yazılımlar da yazılım test mühendisleri
tarafından geliştirilir. Yazılım gereksinimleri genellikle sistemdeki diğer birimlerle
yapılan mesajlaşma senaryolarını içerir. Bu mesajlaşmaların doğru şekilde test
edilebilmesi için yazılım konfigürasyon biriminin (YKB) haberleştiği yazılım veya
donanım konfigürasyon birimlerinin (DKB) benzetimi hazırlanan simülatörler yoluyla
yapılır. Bu arayüzlerde haberleşme seri kanal, ethernet, PCI-Express veya
MIL-STD1553 gibi protokoller üzerinden gerçekleştirilir.</p>
      <p>Geçmiş tecrübelerden yararlanarak her yazılım ürününün birbirinden bağımsız
olarak ele alınıp, geliştirildiği tekil sistem yazılım geliştirme (TSYG) yönteminde
karşılaşılan sorunlar şu şekilde belirlenmiştir:
 Fazla Efor: TSYG yönteminde geliştirilen yazılımlarda geliştiriciler tarafından
farklı geliştirme yöntemleri kullanılması ve programlama stillerinin farklı olması
nedeniyle yazılımların geliştirilmesi, test edilmesi, uygulanması ve idame
edilmesine fazladan efor harcanması gerekiyordu.
 Kalite: Yazılım ürünleri diğer yazılımların testinde kullanıldığından ürün
kalitesinin yüksek olması gerekmektedir. Simülatör yazılımının kullanıldığı bir test
sırasında görülen uyumsuzluk simülatör kaynaklı olduğunda hatanın bulunması ek
iş yükü getirmektedir ve genel yazılım geliştirme sürecinde gecikmeye yol
açmaktadır.
 Farklı Görünüm: Simülatörlerin zaman zaman farklı test ve yazılım mühendisleri
tarafından kullanılması ihtiyacı nedeniyle kullanılabilirliğini artırmak için benzer
kullanıcı arayüzlerine sahip olması önemlidir. TSYG yöntemiyle simülatörlerin
benzer bir görünüme sahip olması sağlanamamıştır.
 Düşük Yeniden Kullanılabilirlik: Tekil sistemde geliştirilen yazılımlarda yeniden
kullanım oranı düşüktür. Yeniden kullanım ancak sistematik olmayan bir şekilde
kod parçalarının kopyala-yapıştır yapılmasıyla sağlanmaktadır. Ayrıca bu kod
parçalarının idamesi de fazladan efor gerektirmektedir.
3
3.1</p>
    </sec>
    <sec id="sec-3">
      <title>Yazılım Geliştirmede Yapılan İyileştirmeler</title>
      <p>Önceki Çalışmalar</p>
      <p>
        Yazılım Test Mühendisliği Bölümünde simülatör yazılımlarının altyapısını
geliştirmek için daha önceden yapılan çalışmalar kapsamında COBALT
(Communication Basics Library for Testing) çerçevesi (framework) oluşturulmuştur
[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Bu çalışmada en önemli amaç yeniden kullanılabilirlik oranını artırmaktır.
COBALT altyapısı, YÜH için miras sistem olmuştur ve yeniden kullanılabilir yazılım
bileşenlerinin çoğu ve YÜH referans mimarisi bu çerçeveyi temel almıştır.
3.2
      </p>
      <sec id="sec-3-1">
        <title>Yazılım Test Simülatörleri-Yazılım Ürün Hattı İş-Merkezcil Yaklaşım.</title>
        <p>YÜH kurulmadan önce hitap edilen pazarı doğru analiz etmek gerekmektedir. Bu
çalışmada yazılımı geliştirenler ayrıca yazılımın müşterisi olduğundan diğer
pazarlardan farklıdır. Geliştirilen simülatör yazılımları arasındaki benzerliklerin çok
fazla olması ve ihtiyaçların önceden yüksek oranda belirli olması ürün portföyünün
rahatça belirlenebilmesini sağlamıştır. YÜH ürün portföyü; bir haberleşme arayüzü
üzerinden mesaj alıp gönderebilen, aldığı ve gönderdiği mesajları kayıt edebilen, bir
kullanıcı arayüzü ile gönderilen mesajların parametrelerinin değiştirilmesine izin
veren ve alınan ve gönderilen mesajları anında gösterebilen Java tabanlı yazılım test
simülatör yazılımları olarak tanımlanmıştır.
Ürünler arasındaki benzerlikler ve farklılıklar net olarak ortaya konulabildiğinden
ve ürünlerin hepsi aynı amaca hizmet ettiğinden kısa vadeli iş stratejisi olarak YÜH
kurulumu avantajlı görülmüştür. Uzun vadede ise alan potansiyeli analizleri yapılarak
yazılım test faaliyetlerinde kullanılan simülatör yazılımlarının çoğunun YÜH
kapsamına alınması hedeflenmiştir.</p>
      </sec>
      <sec id="sec-3-2">
        <title>Gereksinimlerin Belirlenmesi.</title>
        <p>YÜH gereksinimleri, değişkenlik ve sınırlayıcı bağlılık etiketleri olarak ikiye
ayrılmıştır. Gereksinimler belirtilirken, değişkenliğin gösterimi için etiketleme
yöntemi kullanılmıştır:</p>
        <p>Değişkenlik etiketleri aşağıdaki gibi kullanılmıştır:
 &lt;Zorunlu&gt;: Her yazılımda olması gereken gereksinimleri belirtir.
 &lt;DN(X)_Seçenek(N)&gt;: X numaralı değişkenlik noktası (DN)’nın N numaralı
seçeneğini ifade eder. İsteğe bağlı olarak uygulamalarda yeniden kullanılabilecek
bileşenlerdir.
 &lt;DN(X)_Alternatif(N)&gt; : X numaralı değişkenlik noktası (DN)’nın N numaralı
alternatifini ifade eder. Uygulama mühendisleri var olan alternatiflerden birini
seçerek yeniden kullanmalıdır.</p>
        <p>Sınırlayıcı bağlılık etiketleri aşağıdaki gibi kullanılmıştır:
 &lt;DN(X)_Seçenek(N):Gerektirir_DN(Y)_Seçenek(M)&gt;: Eğer X değişkenlik
noktasına bağlı N seçeneği varsa Y değişkenlik noktasına bağlı M seçeneği de
olmalıdır.
 &lt;DN(X)_Seçenek(N):Dışlar_DN(Y)_Seçenek(M)&gt;: Eğer X değişkenlik noktasına
bağlı N seçeneği varsa Y değişkenlik noktasına bağlı M seçeneği olmamalıdır.</p>
      </sec>
      <sec id="sec-3-3">
        <title>Referans Mimari.</title>
        <p>
          YÜH mimarisi MVC (Model-View-Controller) mimarisine benzer yapıdadır [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
Her soyutlama katmanı kodlama detaylarını bir diğerinden saklayacak şekilde
hazırlanmıştır. YÜH yeniden kullanılabilir bileşenleri kullanıcı arayüzü ve veri
katmanlarında yer alır. Haberleşme ve kontrol katmanları projeye özel olarak
hazırlanır. Haberleşme katmanında seri kanal, Ethernet ve MIL-STD-1553 gibi
haberleşme standartları kodlanmaktadır. Veri katmanı mesajları giriş ve çıkış
akıntıları (input and output streams) üzerinden ve haberleşme katmanının kodlama
detaylarından bağımsız olarak alır/gönderir.
        </p>
        <p>Veri katmanında mesaj sınıfları veri ağacı gösterimi (VAG) şeklinde tanımlanır.
Mesajların yapısı ürüne özel olduğundan uygulama mühendisi tarafından tanımlanır.
Bu katmanda yeniden kullanım, kalıtım adaptasyonu mekanizmasıyla sağlanır.
Uygulama mühendisinin COBALT’tan miras alınan soyut mesaj sınıflarını türeterek
oluşturduğu mesaj sınıfları, içerdiği parametreleri haberleşme kanalına gönderip
alabilmek için mesaj çözümleme ve mesaj oluşturma yeteneklerine otomatik olarak
sahip olur.</p>
        <p>
          COBALT’tan miras alınan yeniden kullanılabilir kod bileşenleri olan kayıt tablosu
ve ağaç gösterimi kullanıcı arayüzü katmanında yer alır. Ağaç gösterimi, VAG
formundaki mesajın ağaç yapısında gösterilmesini ve parametrelerinin kullanıcı
tarafından çalışma zamanında değiştirilebilmesini sağlar. Kayıt tablosu ise gönderilen
ve alınan mesajları saklayıp çalışma zamanında karşılaşılan tüm olayların zaman ve
kaynak bilgisi ile listelenip kullanıcıya sunulmasını sağlar [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>Değişkenlik noktalarının belirlenmesi YÜH kurulumunun önemli bir safhasıdır. Bu
çalışmada ürün hattının ilk değişkenlik noktasını veri katmanında yer alan mesaj
sınıfları oluşturur. Olası her mesaj yapısı bu değişkenlik noktasının opsiyonları olarak
tanımlanmıştır. Kullanıcı arayüzü kullanımı YÜH’ün otomatikleştirilmiş test
yapabilecek yazılım ürünlerinde istenilmeyen bir özelliktir. Bu yüzden Ağaç
Gösterimi ve Kayıt Tablosu bileşenlerinin kullanımı da isteğe bağlı değişkenlik
noktaları olarak tanımlanmıştır.</p>
      </sec>
      <sec id="sec-3-4">
        <title>Varlık Kapsama.</title>
        <p>
          Miras sistemde [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] sadece ürünler arasındaki benzerlikler dikkate alınarak alan
bileşenleri geliştirilmişti. YÜH yaklaşımı ile sadece zorunlu bileşenler değil değişken
bileşen (variants) sayısı da arttırılmaya çalışılmıştır. Varlık kapsama (asset scoping)
ile hedeflenen de YÜH altyapısındaki bileşen sayısının artırılmasıdır. Genel geçer bir
kural olarak, 3 farklı üründe bulunan bir özelliğin ürün hattı yapısında yer almasına
karar verilmiştir. Bu kapsamda haberleşme kanalında kullanılan protokollerden seri
kanal ve Ethernet iki yazılım bileşeni olarak ele alınıp, haberleşme değişkenlik
noktası şeklinde belirlenmiştir.
4
        </p>
        <p>Ölçüm ve Analizler
Bu çalışmada gerçek dünyada kullanılan altı simülatör (A, B, C, D, E, F) ve kontrollü
olarak geliştirilen dört simülatör (K, L, M, N) ele alınmıştır. A, B, C, K ve L
simülatörleri TSYG yöntemi ile geliştirilmiştir. D, E, F, M ve N simülatörleri YÜH
yaklaşımı ile geliştirilmiştir. A, B, C, D, E ve F simülatörleri seçilirken benzer
yeteneklere sahip olmalarına önem verilmiştir. Tüm simülatörler aynı kişi tarafından
geliştirilmiştir. A, B ve C simülatöründe C# programlama dili, diğer üçünde ise Java
programlama dili kullanılmıştır. K, L, M ve N simülatörlerinin hepsi kısa zaman
içerisinde aynı geliştirici tarafından ve Java programlama dili ile geliştirilmiştir. K ve
M simülatörünün, L ve N simülatörlerinin mesaj yapıları ve gereksinimleri aynıdır.
Bu simülatörler için yeniden kullanım oranı, uygulama/idame eforları, hata yoğunluk
oranı ve müşteri memnuniyeti ölçülerek nicel ve nitel veriler toplanmıştır.
 Yeniden Kullanım Oranı</p>
        <p>
          Yeniden kullanım oranı; yeniden kullanılan kod satır sayısının toplam kod satır
sayısına bölünmesi ile hesaplanmıştır. Bu işlem için yeniden kullanım seviyesi
hesaplama aracı geliştirilmiştir. Araç her üç uygulamada yeniden kullanılmış olan her
bir satır kodu yeniden kullanılmış kabul etmektedir [
          <xref ref-type="bibr" rid="ref12 ref13">12,13</xref>
          ]. Ulaşılan sonuçlar Tablo
1’deki gibidir;
        </p>
        <p>Tablo 1. Yeniden Kullanım Oranı ve Uygulama Eforu
Simülatör
Adı</p>
        <p>A
B
C
K
L
D
E
F
M
N</p>
        <p>Geliştirme
Yöntemi</p>
        <p>TSYG
TSYG
TSYG
TSYG
TSYG
YÜH
YÜH
YÜH
YÜH</p>
        <p>YÜH
 Uygulama Eforu</p>
        <p>Kaynak Kodu
Kullanım Oranı
%6
%14
%22
%55
%79
%85
%89
%94
%96
%97</p>
        <p>Yeniden</p>
        <p>
          Her bir simülatörün geliştirilmesi için harcanan zaman ile uygulama eforu
ölçülmüştür. Sonuçlar Tablo 1’deki gibidir [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. Kontrollü deneylerdeki (K, L, M, N)
ölçülen uygulama eforlarının küçük çıkması kodlanan mesaj sayısının azlığından
kaynaklanmaktadır. Gerçek uygulamalarda kodlanan mesaj sayısı bu örneklerin
yaklaşık 40-50 katına çıkabilmekte ve uygulama eforu da bu durumla bağlantılı olarak
büyük miktarda artış göstermektedir.
 İdame Eforu
        </p>
        <p>
          Geliştirici haricinde iki uygulama mühendisinden K, L, M ve N simülatörlerine
yeni özellikler eklemeleri ve mesaj yapılarını değiştirmeleri istenmiştir. Her biri için
harcanan zaman Tablo 2’teki gibidir [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
        <p>Tablo 2. İdame Eforu
Simülatör
Adı</p>
        <p>Geliştirme</p>
        <p>Yöntemi
K
L
M
N</p>
        <sec id="sec-3-4-1">
          <title>TSYG TSYG YÜH YÜH</title>
          <p>Uygulama
Mühendisi 1’in
İdame Eforu
(dakika)
33
29
9
26</p>
          <p>Uygulama
Mühendisi 2’nin
İdame Eforu
(dakika)
47
75
30
45</p>
          <p>Hata
Sayısı</p>
          <p>Ayrıca 4 uygulama mühendisi ile yapılan ankette katılımcıların hepsinin TSYG
yöntemi ile geliştirilen bir yazılımın gereksinimlerinin %50’si değiştiğinde, yazılımı
sıfırdan yazmayı tercih edeceklerini belirtmişlerdir. Yine aynı katılımcılar YÜH
yaklaşımı ile hazırlanan bir yazılımın gereksinimlerinin %50’si değiştiğinde veya
mesaj yapılarının %50’si değiştiğinde, yazılımı güncellemeyi tercih etmektedirler.
 Hata Yoğunluk Oranı</p>
          <p>
            K, L, M ve N yazılımlarının sistem testlerinde karşılaşılan hata sayıları ve bu
hataların toplam kod satır sayısına bölünmesiyle elde edilen hata yoğunluk oranları
Tablo 2’de verilmiştir [
            <xref ref-type="bibr" rid="ref12">12</xref>
            ].
          </p>
          <p>Ayrıca geliştiricilerle yapılan ankete göre geliştiricilerin büyük çoğunluğu YÜH
yaklaşımı ile hata sayısında azalma olduğu fikrine katılmaktadır.
 Müşteri Memnuniyeti</p>
          <p>
            Üç kullanıcıya müşteri memnuniyetini ölçmek amacıyla SUS (System Usability
Scale) anketi [
            <xref ref-type="bibr" rid="ref12">12</xref>
            ] uygulanmıştır. Alınan sonuçlar YÜH yaklaşımının kullanılabilirliği
artırdığını göstermektedir.
          </p>
        </sec>
        <sec id="sec-3-4-2">
          <title>Tablo 3. Simülatörlerin Kullanılabilirliği</title>
          <p>Yazılım Geliştirme Yaklaşımı</p>
          <p>Tekil Sistem (K ve L)
Ürün Hattı (M ve N)</p>
          <p>Ortalama SUS Skoru
51
91</p>
          <p>Ayrıca katılımcıların hepsi YÜH kurulumu ile simülatörlerin benzer görünüme
sahip olduğunu, bunun da kullanım kolaylığını arttırdığını belirtmiştir. Ayrıca
katılımcılar YÜH ile beraber simülatörlerinin kalitesinin arttığından bahsetmiştir.
Bunun en önemli nedeni azalan hata sayısıdır.
5</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Sonuç</title>
      <p>Bu çalışmada Aselsan’ın REHİS Yazılım Test Mühendisliği bölümünde
gerçekleştirilen YÜH deneyimi üzerine bir eylem araştırması anlatılmıştır.
Araştırmanın amacı yazılım test simülatörlerinin geliştirilmesinde YÜH yaklaşımının
uygunluğunun incelenmesidir. Bunun için ilk olarak geleneksel tekil sistem geliştirme
yöntemlerinde karşılaşılan sorunlar; aşırı iş yükü, daha yüksek kalite ihtiyacı,
heterojen görünüm ve düşük yeniden kullanılabilirlik olarak belirlenmiştir.
Karşılaşılan bu sorunlara çözüm olarak COBALT altyapısı miras alınarak
genişletilmiş ve Yazılım Test Simülatörleri Yazılım Ürün Hattı (YTS-YÜH)
kurulmuştur. Kısa ve uzun vadeli iş stratejisi ve YÜH ürün portföyü tanımlanmıştır.
YTS-YÜH gereksinim özellikleri, referans mimarisi ve değişkenlik modeli
belirlenmiştir. Daha sonra varlık kapsamı çalışmaları ile YÜH geliştirilmiştir.
Kullanılan etiketleme sistemi ile gereksinimlerin yeniden kullanımının daha kontrollü
ve kolay olması sağlanmıştır. Yapılan ölçüm ve analizler ile YÜH yaklaşımının
önemli ölçüde daha az işçilik, daha yüksek ürün kalitesi, homojen görünüm ve daha
yüksek yeniden kullanılabilirlik oranları sağladığı görülmüştür. Uzun vadede daha
fazla kontrollü deney yapılarak YÜH kazanımları üzerine nicel veriler toplamak
hedeflenmektedir. Ayrıca ürün hattı yönetimi için araç desteğinin önemi düşünülerek
yeniden kullanılabilir değerlerin yönetimi için araç desteği sağlanması, YTS-YÜH’ün
otomasyon yeteneği ile genişletilmesi ve test verilerinin otomatik oluşturulması için
veri oluşturucu bir bileşen geliştirilmesi hedeflenmektedir.
6</p>
    </sec>
    <sec id="sec-5">
      <title>Kaynaklar</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. “http://www.sei.cmu.edu.tr/productlines/index.cfm”,
          <source>Erişim tarihi: 07.05</source>
          .2015
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. F. v. d. Linden,
          <string-name>
            <given-names>K.</given-names>
            <surname>Schmid</surname>
          </string-name>
          , E. Rommes, “Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering” Springer-Verlag New York, Inc., Secaucus, NJ, USA,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>P.</given-names>
            <surname>Clements</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. K.</given-names>
            <surname>Bergery</surname>
          </string-name>
          , “
          <article-title>The U.S. Army's Common Avionics Architecture System (CAAS) Product Line: A Case Study</article-title>
          ”
          <source>Technical Report</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>L.</given-names>
            <surname>Liang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Wang</surname>
          </string-name>
          , “
          <article-title>An Open Architecture for Medical İmage Workstation”</article-title>
          ,
          <source>sayfa 470-479</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>A.</given-names>
            <surname>Jaaksi</surname>
          </string-name>
          ,
          <article-title>"Developing Mobile Browsers in a Product Line,"</article-title>
          <source>IEEE Software 19</source>
          ,
          <issue>4</issue>
          , July/August,
          <year>2002</year>
          , p
          <fpage>73</fpage>
          -
          <lpage>80</lpage>
          . Institute of Electrical and Electronics Engineers Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>S.</given-names>
            <surname>Cohen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Dunn</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Soule, “
          <source>Susccesful Product Line Development and Sustainment: A DOD Case Study” Technical Report</source>
          , Carnegie Mellon University,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>K.</given-names>
            <surname>Pohl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Böckle</surname>
          </string-name>
          , F. v. d. Linden, “Software Product Line Engineering”, Springer 2005, ch.
          <volume>21</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>L.</given-names>
            <surname>Brownsword</surname>
          </string-name>
          , P. Clements, “
          <source>A Case Study in Successful Product Line Development” Technical Report</source>
          , Carnegie Mellon University,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>M.</given-names>
            <surname>Vierhauser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Holl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Rabiser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Grünbacher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Lehofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Stürmer</surname>
          </string-name>
          , U. Sturner, “
          <article-title>A Deployment Infrastructure for Product Line Models and Tools,”</article-title>
          <source>Proceedings SPLC</source>
          <year>2011</year>
          , Munich, pp.
          <fpage>287</fpage>
          -
          <lpage>294</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>D.</given-names>
            <surname>Pech</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Knodel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Carbon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Schitter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Hein</surname>
          </string-name>
          ,
          <article-title>"Variability Management in Small Development Organizations - Experiences and Lessons Learned from a Case Study,"</article-title>
          <source>Proceedings SPLC</source>
          <year>2009</year>
          , San Francisco,
          <year>August 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. U. Zöngür, S.T. Erdoğan, “
          <article-title>Cobalt: Test Uygulamaları için Protokol Kütüphanesi”</article-title>
          ,
          <source>UYMS'14</source>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>M. E. Ergül</surname>
          </string-name>
          , “
          <article-title>An Action Research of Achievements in a Software Product Line Implementation”</article-title>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Sc</surname>
          </string-name>
          . Thesis, METU, Ankara,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>W.</given-names>
            <surname>Frakes</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Terry</surname>
          </string-name>
          ,
          <article-title>"</article-title>
          <source>Software Reuse: Metrics and Models." ACM Computing Surveys</source>
          <volume>28</volume>
          (
          <issue>2</issue>
          ), pp.
          <fpage>415</fpage>
          -
          <lpage>435</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>