<!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 Hata Kestirimi için Örnek Bir Model</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>R. Burcu Karaömer</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>Onur Kaynak</string-name>
          <email>okaynak@innova.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>İnnova Bilişim Çözümleri A.Ş. Çankaya/Ankara</institution>
          ,
          <country country="TR">Türkiye</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>İnnova Bilişim Çözümleri A.Ş. Çankaya/Ankara</institution>
          ,
          <country country="TR">Türkiye</country>
        </aff>
      </contrib-group>
      <fpage>197</fpage>
      <lpage>206</lpage>
      <abstract>
        <p>Özet. İNNOVA Bilişim Çözümleri A.Ş. bir Türk Telekom Grup şirketi olup; TSE-ISO-EN ISO 9001, ISO/IEC 20000, ISO/IEC 27001 ve TS ISO/IEC 15504 SPICE Seviye 2 uluslararası sertifikasyonlarına sahiptir. Bu model ve standartlara uygun olarak uygulama geliştirme süreçleri yürütülmektedir. Uygulama geliştirme süreçlerinden yazılım güvenilirliği; yazılımın başarısını gösteren en önemli kalite faktörlerindendir. Yazılım güvenilirliği, yazılımın belirli koşullar altında, yazılımdan beklenen özellikleri yerine getirebilmesi olasılığıyken, yazılım güvenilirliğinin modellenmesi, yazılım hata kayıt verilerinin davranışlarının modellenerek yazılım güvenilirliğinin tahmin edilmesidir. Yazılım güvenilirliğinin modellenmesi, proje yönetiminin projelerinin planlamasını doğru yapabilmesi için gerekli kaynakları en iyi şekilde planlaması ve müşteri ihtiyaçlarını karşılayacak ürünü en az hata içerecek şekilde müşteriye teslim etmesi açısından önemli bir unsurdur. Bu unsur dikkate alınmadığı durumda müşterinin firma ve ürüne olan güveni azalacağı gibi projenin geriye dönük kalite maliyetleri de artacaktır. Geliştirmesi tamamlanmış ancak aylık benzer büyüklüklerde iterasyonlar bazında ek geliştirme yapılan, yazılım ürün hattı gibi yeniden kullanımın etkin olduğu, regresyon test kümesine sahip projelerde hata değerlerinin ölçülmesi, değerlendirilip kontrol altında tutulması için yazılım güvenilirlik modellerinde özelleşmeye gitme ihtiyacı vardır. Bu çalışma kapsamında yukarıdaki özellikleri taşıyan bir projeye ait hata kayıt verileri kullanılarak bu hata kayıt verilerine en uygun yazılım güvenilirlik modeli belirlenmeye çalışılmış ve belirlenen model yardımı ile bir sonraki iterasyon da oluşabilecek hata miktarı %95 güven aralığında tahmin edilmeye çalışılmıştır. Anahtar Kelimeler: Yazılım Güvenilirliği, Lineer Regresyon Modeli, Homojen Olmayan Poisson Süreci Goel-Okumoto Modeli, Geciktirilmiş S-Şekilli Homojen Olmayan Poisson Süreci Modeli</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Günümüzde her alanda hayatımıza giren yazılımlar, teknoloji ilerledikçe çeşitlenmiş ve
karmaşıklaşmıştır. Teknolojinin diğer alanlarına göre daha soyut bir kavram olan
yazılım ve yazılım teknolojilerinin idame edilmesi zamanla zor bir hal almış ve üzerinde
çalışmalar yapılmasına neden olmuştur. Yapılan çalışmalar sonucu yazılım sektörü;
yazılım geliştirme yöntemlerinden, test yöntemlerine, ölçme ve planlama yöntemlerinden,
sürüm alma yöntemlerine kadar birçok alanda kendine has yöntemler geliştirerek diğer
tüm sektörlerden ayrışmaktadır. Yazılım; finans, sağlık, maliye, savunma sanayii gibi
sektörlere hakim olmaya başladıkça yazılım güvenilirliğinin insan hayatındaki rolü de
her geçen gün artmaktadır [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Ancak yazılım güvenilirliğinin nasıl ölçüleceği ile ilgili
yöntemlerin yeterince tecrübe edilmemiş olması uygulanacak modellerin belirlenmesi
için yeterli büyüklükte bir ölçüm havuzunun oluşamamasına neden olmaktadır. Bu
çalışmada örnek olarak seçilen üç yazılım güvenilirlik modellerinin elde bulunan projenin
güvenilirliğini ölçmede başarılı olup olmadıkları ve birbirlerine göre performanslarının
nasıl olduğu sorusunun cevabı araştırılmıştır. Çalışma kapsamında yazılım
güvenilirliğini belirlemede kullanılan yazılım güvenilirlik modellerinin karşılaştırılması ve
kullanılabilirliklerinin ölçülmesi amacıyla bir durum çalışması yapılmış olup, toplanan
ölçümler kurumsal veri havuzuna yerleştirilmiştir.
Çalışma kapsamında belirlenen proje de iterasyon bazında tespit edilen hata sayıları
kayıt altına alınmıştır. Seçilen Lineer Regresyon Modeli, Homojen Olmayan Poisson
Süreci Goel-Okumoto Modeli (Goel-Okumoto NHPP) ve Geciktirilmiş S-Şekilli
Homojen Olmayan Poisson Süreci Modeli olmak üzere üç yazılım güvenilirlik modeli ile
kayıt altına alınan hata kayıt verileri için modelleme yapılmıştır. Yapılan modellemede
8 iterasyon sonucu kayıt altına alınan hata kayıt verileri kullanılmış ve 9. İterasyon için
tahmin yapılmıştır. Aynı şekilde 9. iterasyon hata kayıt verileri modele dâhil edilerek
yapılan modelleme ile 10. İterasyon da oluşabilecek hata sayısı tahmin edilmiştir. Her
bir model için yapılan tahminleme sonuçlarına göre modeller karşılaştırılmıştır. Bu
çalışmanın, gelecekte yazılım güvenilirlik modelleri hakkında yapılacak çalışmalara yol
gösterici olacağı düşünülmektedir.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Yazılım Güvenilirlik Modelleri</title>
      <p>
        Yazılım güvenilirliği, yazılım ve yazılım bileşenlerinin belli ortamda, belirli zaman
içerisinde kendisinden beklenen özellikleri yerine getirebilme olasılığıdır. Başka bir
deyişle bir yazılıma ne kadar güvenilebileceğinin ölçümüdür [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Yazılımda ortaya çıkan
hatalar yazılıma olan güveni azaltırken yazılımın kullanılabilirliğini de
engellemektedir. Uzun süre hata vermeden, kendisinden beklenen özellikleri yerine getiren bir
yazılım ise ona olan güveni arttırmaktadır. Bu durum, dolaylı olarak yazılımı geliştiren
şirkete olan güveni de artırmaktadır.
      </p>
      <p>
        Yazılıma ne kadar güvenebileceğimiz yazılımda ortaya çıkan hataların sayısına,
kategorisine ve yoğunluğuna bağlıdır. Günümüzde yapılan çalışmalarda, hatalar ortaya
çıkmadan bir yazılımda bulunan hata miktarı tahmin edilerek yazılım güvenilirliği
ölçülmeye çalışılmaktadır. Bu maksatla yazılım güvenilirlik modelleri sıklıkla kullanılan
bir yöntemdir [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Yazılım güvenilirlik modelleri, yazılımda önceden ortaya çıkan
hataların davranışlarını inceleyerek ilerde oluşabilecek hata durumlarının matematiksel
olarak ifade edilmiş halleridir. Yazılım güvenilirlik modelleri, özellikle hataların
oluşum zamanları veya belirli aralıklarda ortaya çıkan toplam hata sayısı gibi verileri
kullanarak yazılımda gelecekte birim zamanda ne kadar hata oluşabileceğini tahmin
ederler [4]. Bu şekilde farklı varsayımlar öngörülerek oluşturulmuş farklı yazılım
güvenilirlik modelleri ortaya çıkmıştır. Ayrıca yapılan çalışmalarda önceden geliştirilmiş
birçok yazılım güvenilirlik modeli farklı projeler için test edilmiş, birbirleri ile
karşılaştırılmış ve kullanışlılıkları ölçülmüştür.
      </p>
      <p>Bu çalışma kapsamında üç ayrı yazılım güvenilirlik modelinin “X” projesinde
göstermiş oldukları performanslar ölçülmüş ve modeller bu performanslara göre
karşılaştırılmıştır. Model seçiminde, birbirine göre farklı davranış gösteren modellerin
seçilmesine özen gösterilmiş, bunun neticesinde Lineer Regresyon Modeli, Homojen
Olmayan Poisson Süreci Goel-Okumoto Modeli (Goel-Okumoto NHPP) ve Geciktirilmiş
SŞekilli Homojen Olmayan Poisson Süreci Modelinin (Geciktirilmiş S-Şekilleri NHPP)
kullanılmasına karar verilmiştir. Seçilen bu üç modelin temel özelliği; belirli bir
zamana kadar gözlemlenmesi muhtemel hataların, kümülatif toplamının ortalama değer
fonksiyonunu tahmin ederken, bu üç modelin her biri bu fonksiyonun davranışını farklı
bir şekle sahip grafikle modellemektedir. Bu modellerin herhangi bir projede hata kayıt
verilerine uygulanabilmesi için hata kayıt verilerinin her test faaliyetinden sonra
düzenli olarak kayıt altına alınması ve kümülatif toplamlarının hesaplanmasına ihtiyaç
vardır.
2.1</p>
      <p>Homojen Olmayan Poisson Süreci Goel-Okumoto Modeli</p>
      <sec id="sec-2-1">
        <title>Homojen Olmayan Poisson Süreci Goel-Okumoto Modeli’ne göre yazılım da var olan hatalar nedeniyle yazılımda zaman içerisinde rastgele bozulmalar yaşanır [5,6].</title>
      </sec>
      <sec id="sec-2-2">
        <title>Bu modelin varsayımları;</title>
        <p>- Yazılımda bulunan tüm hatalar, hataları tespit etme yönteminden bağımsızdır.
- Tespit edilen hatalar, bir sonraki teste kadar kaldırılır.
- Hataların kaldırılması sırasında yeni hata oluşmasına sebep olunmaz.
- Hataların oluşma ve tespit edilme olasılığı eşittir</p>
      </sec>
      <sec id="sec-2-3">
        <title>Modelin ortalama değer fonksiyonu aşağıdaki gibidir;</title>
        <p>=  (1 −  −
)</p>
      </sec>
      <sec id="sec-2-4">
        <title>Fonksiyonda, a parametresi yazılımda tespit edilen hata sayısını gösterirken b parametresi hata tespit oranını göstermektedir.</title>
        <p>2.2</p>
        <p>Geciktirilmiş S-Şekilli Homojen Olmayan Poisson Süreci
Modeli</p>
      </sec>
      <sec id="sec-2-5">
        <title>Geciktirilmiş S-Şekilli Homojen Olmayan Poisson Süreci Modeli’ne göre yazılımı test</title>
        <p>
          edecek test ekibinin yazılımı tanıması zaman alacağından, hata tespit oranı test ekibinin
yazılımı tanıması ile artmaya başlar [
          <xref ref-type="bibr" rid="ref4 ref5">5,6</xref>
          ].
        </p>
        <p>Bu modelin varsayımları;
- Her hata birbirinden bağımsızdır ve her hatanın tespit edilme olasılığı eşittir.
- Yazılımda hata tespit etme oranı yazılımın barındırdığı hata sayısı ile doğru
orantılıdır.
- Hata tespit etme olasılığı zamandan bağımsızdır.
- Yazılımda bulunan toplam hata sayısı rasgele değişkendir.
- Yazılımda bulunan herhangi bir hata herhangi bir zamanda ortaya çıkabilir.
- (i-1). ve i, hatalar arasındaki süre (i-1). hatanın zamanına bağlıdır.
- Hataların kaldırılması sırasında yeni hata oluşmasına sebep olunmaz.</p>
      </sec>
      <sec id="sec-2-6">
        <title>Modelin ortalama değer fonksiyonu aşağıdaki gibidir;</title>
        <p>= (1 − (1 +  ) − )</p>
      </sec>
      <sec id="sec-2-7">
        <title>Fonksiyonda, parametreler Homojen Olmayan Poisson Süreci Goel-Okumoto Modelindeki gibi a parametresi yazılımda tespit edilen hata sayısını gösterirken b parametresi hata tespit oranını göstermektedir.</title>
        <p>2.3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Lineer Regresyon Modeli</title>
      <sec id="sec-3-1">
        <title>Lineer Regresyon Modeli, bir bağımlı değişkenin bir ya da daha çok bağımsız değişkenle ilişkilendirilip aralarında bağıntı kurulması ve bu bağıntının çözümlendirilmesidir [7].</title>
      </sec>
      <sec id="sec-3-2">
        <title>Bu modelin varsayımları; - Bağımsız değişken ile bağımlı değişken arasındaki ilişki lineerdir. - Bağımsız değişken değerleri rastgele ya da tahmin edilmiş değerler değil ölçülmüş değerlerdir.</title>
      </sec>
      <sec id="sec-3-3">
        <title>Modelin ortalama değer fonksiyonu aşağıdaki gibidir;</title>
        <p>=  +</p>
      </sec>
      <sec id="sec-3-4">
        <title>Fonksiyonda, a parametresi başlangıçta bulunan hata sayısı iken b parametresi her bir iterasyon sonucunda tespit edilebilecek ortalama hata sayısını göstermektedir.</title>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Yapılan Uygulama</title>
      <p>Bu çalışma kapsamında ilk olarak yazılım güvenilirlik modellerinin uygulanacağı pilot
proje belirlenmiş ardından belirlenen projede yazılım güvenilirlik modellerinin
parametreleri tahmin edilerek modeller oluşturulmuştur. Son olarak ise oluşturulan
modellerin performansı analiz edilmiştir.
3.1</p>
      <p>Çalışma Kapsamında Pilot Projenin Belirlenmesi
Çalışma kapsamında belli olgunluk seviyesinde ölçümleri düzenli olarak toplanan ve
analiz edilen, geliştirilmesi tamamlanmış, aylık iterasyonlar bazında ek geliştirme
yapılan, proje yönetim, tasarım, geliştirme, test, kalite ve konfigürasyon ekibine sahip
aynı sektörde müşterisi olan regresyon test kümesi ve otomasyon test altyapısı olan
projeye ait hata kayıt verilerine ihtiyaç duyulmuştur. Bu kapsamda İnnova Bilişim
Çözümleri Telco Çözümleri bünyesinde geliştirilen aynı sektörde 7 farklı müşteriye sahip
“X” Projesine ait 01.06.2015-28.03.2016 tarih aralığındaki hata kayıt verileri
kullanılmıştır. “X” Projesi, proje yönetimi, tasarım, geliştirme, test, kalite güvence ve
konfigürasyon yönetimi ekipleri olmak üzere 30 kişilik bir proje ekibinden oluşmakta ve farklı
müşterilerden gelen talepleri aylık “Kapsam Belirleme” çalışmaları ile belirleyerek</p>
      <sec id="sec-4-1">
        <title>Scrum uygulama geliştirme yaşam döngüsü ile geliştirilen yazılımları müşterilerin istediği özellikler doğrultusunda teslimatını gerçekleştirmektedir.</title>
        <p>3.2</p>
        <p>
          Yazılım Güvenilirlik Modellerinin Oluşturulması
Yazılımda oluşan hata davranışlarını matematiksel olarak ifade eden yazılım
güvenilirlik modelleri, her bir projeye göre uygulanabilmesi için parametrelere sahiptir. Yazılım
güvenilirlik modellerinin projelerde uygulanabilmesi için ilk olarak bu parametrelerin
tahmin edilmesi gerekmektedir [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. Model parametrelerinin doğru tahmin edilmesi
model performansı açısından kritik öneme sahiptir. Bu çalışma kapsamında Lineer
Regresyon, Goel-Okumoto NHPP ve Geciktirilmiş S-Şekilli NHPP modelleri içerisinde
bulunan ve Tablo 1, Tablo 2 ve Tablo 3 de bulunan parametreler, modellenmesi
yapılacak proje için Scrum uygulama geliştirme yaşam döngüsünün planlama aşamasında
tahmin edilerek projeye uygulanmıştır. Parametrelerin tahmin edilmesinde Lineer
Regresyon modeli için SPSS istatistiksel paket programı yardımıyla regresyon analizi
yapılmış, Goel-Okumoto NHPP ve Geciktirilmiş S-Şekilli NHPP modelleri için ise
MATLAB programı kullanılarak uygulanan en çok olabilirlik yöntemi ile model
parametreleri tahmin edilmiştir. Tahmin edilen parametreler model denklemlerine
yerleştirilerek yazılım güvenilirliğini ölçmede kullanılacak model denklemleri elde edilmiştir.
        </p>
        <p>Çalışma sırasında yazılım güvenilirlik modellerinin, yazılımda bir sonraki
iterasyonda oluşabilecek hataların %95 güven aralığında alabileceği değerler ve tahmin
değerinin gerçek değere yakın tahmin edilmesi amaçlanmıştır. Bu kapsamda hata kayıt
verilerinin belirli bir iterasyona kadar olan verileri kullanılarak tahmin edilen model
parametreleri ile modeller oluşturulmuştur. Oluşturulan modellerin sıradaki
iterasyonda ortaya çıkacak hataları tahmin etmedeki performansları ölçülürken bir sonraki
iterasyonda kullanılacak modeller için yeni hata kayıt verileri de kullanılarak model
parametrelerinin tahmin edilmesi güncellenmiş ve yeni modeller oluşturulmuştur. Bu
döngü iki iterasyon için tekrarlanmış ve elde edilen model denklemleri Tablo 1, Tablo</p>
      </sec>
      <sec id="sec-4-2">
        <title>2 ve Tablo 3’te verilmiştir.</title>
      </sec>
      <sec id="sec-4-3">
        <title>Tablo 1. Lineer Regresyon Modelleri</title>
        <sec id="sec-4-3-1">
          <title>Tahmin Dönemi</title>
        </sec>
      </sec>
      <sec id="sec-4-4">
        <title>9. İterasyonu 10. İterasyonu</title>
        <sec id="sec-4-4-1">
          <title>Alt Sınır Tahmin Modeli</title>
          <p>y=11,44+17,836x
y=16,338+17,040x
Üst Sınır Tahmin</p>
          <p>Modeli
y=45,199+24,521x
y=48,717+22,794x</p>
        </sec>
      </sec>
      <sec id="sec-4-5">
        <title>Tablo 2. Goel-Okumoto NHPP Modelleri</title>
        <sec id="sec-4-5-1">
          <title>Kullanılan veri dönemi</title>
        </sec>
      </sec>
      <sec id="sec-4-6">
        <title>9. İterasyonu 10. İterasyonu</title>
        <sec id="sec-4-6-1">
          <title>Alt Sınır Tahmin Modeli</title>
          <p>y=201,687(1- e0,101x )
y=222,172(1- e0,112 x )
Üst Sınır Tahmin
Modeli
y= 317,493(1- e0,216 x )
y= 307,584(1- e0,196 x )</p>
        </sec>
      </sec>
      <sec id="sec-4-7">
        <title>Tablo 3. Geciktirilmiş S-Şekilli NHPP Modelleri</title>
        <sec id="sec-4-7-1">
          <title>Kullanılan veri dönemi</title>
        </sec>
      </sec>
      <sec id="sec-4-8">
        <title>9. İterasyonu 10. İterasyonu</title>
        <sec id="sec-4-8-1">
          <title>Alt Sınır Tahmin Modeli</title>
          <p>y=162,93(1+0,465x)
e0,465 x
3.3 Model Performansının Analiz Edilmesi</p>
        </sec>
      </sec>
      <sec id="sec-4-9">
        <title>Yazılım güvenilirlik modelleri oluşturulduktan sonra tahmin edilen modellerin gerçek</title>
        <p>hata kayıt verilerine ne kadar yakın sonuç verdiğinin değerlendirilmesi gerekmektedir.
Literatürde tahmin modellerinin performansını değerlendirmek için pek çok yöntem
vardır. Bu çalışma kapsamında elimizde bulunan hata kayıt verilerinin tahmin edilen
güven aralıklarının içerisinde bulunup bulunmadığı ve tahmin değerlerinin ne kadar
gerçek değere yakın sonuç verdiği değerlendirmede kullanılmıştır. Model
performanslarının değerlendirilmesi Scrum uygulama geliştirme yaşam döngüsünün gözden
geçirme aşamasında JİRA hata kayıt aracı yardımıyla elde edilen gerçek hata verileri
kullanılarak yapılmıştır.</p>
      </sec>
      <sec id="sec-4-10">
        <title>Tahmin modellerinin %95 güven aralıklarında bulduğu değerler Şekil 1, Şekil 2 ve Şekil 3’teki gibidir;</title>
        <p>1
2
3
4
7
8
9
10
5 6
İterasyon Sayısı
Gerçek Değer
Tahmin Üst Sınır Değeri</p>
        <p>Tahmin Alt Sınır Değeri
Tahmin Değeri
Şekil 1. Lineer Regresyon Modeline Göre Güven Aralığı</p>
        <p>Güven Aralığı
1
2
3
4
7
8
9
10
5 6
İterasyon Sayısı
Gerçek Değer
Tahmin Alt Sınır Değeri</p>
        <p>Tahmin Değeri
Tahmin Üst Sınır Değeri
Şekil 2. Goel-Okumoto NHPP Modeline Göre Güven Aralığı
300
ı
ısy250
a
S200
a
t
a150
H
am100
l
po 50
T
0
1
2
3
4
5
6
7
8
9
10
İterasyon Sayısı
Gerçek Değer</p>
        <p>Tahmin Değeri
Tahmin Alt Sınır Değeri</p>
        <p>Tahmin Üst Sınır Değeri
Şekil 3. Geciktirilmiş S-Şekilli NHPP Modeline Göre Güven Aralığı</p>
        <p>Tablo 4. Gerçek Değer ve Tahmin Değeri Arasındaki Fark</p>
        <sec id="sec-4-10-1">
          <title>Model</title>
        </sec>
      </sec>
      <sec id="sec-4-11">
        <title>Lineer Regresyon</title>
      </sec>
      <sec id="sec-4-12">
        <title>Modeli</title>
      </sec>
      <sec id="sec-4-13">
        <title>Goel-Okumoto</title>
      </sec>
      <sec id="sec-4-14">
        <title>NHPP</title>
      </sec>
      <sec id="sec-4-15">
        <title>Geciktirilmiş S-Şekilli NHPP</title>
        <sec id="sec-4-15-1">
          <title>9. İterasyon için</title>
          <p>Tahmin ve Gerçek
Değer Arasında
Bulunan Fark
10. İterasyon için
Tahmin ve Gerçek
Değer Arasında
Bulunan Fark</p>
        </sec>
        <sec id="sec-4-15-2">
          <title>Tahmin ve Gerçek Değer Arasındaki Ortalama Fark</title>
          <p>18,932
1,361
11,434
10,302
33,907
50,496
14,617
17,634
30,965
Şekil 1, Şekil 2 ve Şekil 3’te görüldüğü gibi Lineer Regresyon, Goel-Okumoto
NHPP ve Geciktirilmiş S-Şekilli NHPP yazılım güvenilirlik modelleri ile %95 güven
aralığı tahminleri yapılmıştır. Bu işlem sırasında elde bulunan on iterasyon verisi
arasında ilk olarak sekiz iterasyon verisi model parametrelerinin belirlenmesi ve model
oluşturmak için kullanılmıştır. Bu modellerle dokuzuncu iterasyon da oluşabilecek hata
sayısı tahmin edilmiştir. Daha sonra dokuzuncu iterasyon hata kayıt verisi de model
tahmin etmede kullanılarak yapılan modelleme ile onuncu iterasyon da oluşabilecek
hata sayısı için tahmin yapılmıştır. Tablo 4 incelendiğinde ise 9. ve 10. iterasyonlar için
tahmin edilen ve gerçekleşen hata sayıları arasındaki farklar hesaplanmıştır.</p>
          <p>İlk olarak dokuzuncu iterasyon için yapılmış olan tahminleri ve dokuzuncu iterasyon
sonucunda oluşan toplam hata sayısı incelenirse, gerçekleşen toplam hata sayısının her
üç modelde belirtmiş olan güven aralıkları içerisinde bulunduğu gözlemlenmiştir. Bu
bakımdan gerçekleşen hata kayıt verisinin tahminlerde belirtilmiş olan tahmini güven
aralıklarının içerisinde bulunduğu görülmüştür. Modellerin yapmış oldukları tahminler
ve gerçekleşen hata sayıları arasındaki farklar incelendiğinde ise Goel-Okumoto NHPP
modelinin gerçek değere daha yakın tahmin bilgisi verdiği söylenebilir. Bu açıdan
Geciktirilmiş S-Şekilli NHPP ve Lineer Regresyon modeli sırasıyla Goel-Okumoto NHPP
modelini takip etmektedir.</p>
          <p>Onuncu iterasyon için yapılan alt ve üst sınır tahminleri ve gerçekleşen toplam hata
sayısı incelendiğinde ise gerçekleşen toplam hata sayısının Lineer Regresyon modeli
ve Goel-Okumoto NHPP modelinin yapmış oldukları alt ve üst sınırlar içerisinde
bulunduğu görülebilir. Ancak bununla birlikte Geciktirilmiş S-Şekilli NHPP modelinin
yapmış olduğu üst sınır tahmininin gerçekleşen toplam hata miktarından az olduğu
gözlemlenmektedir. Bu durum projede Geciktirilmiş S-Şekilli NHPP yazılım güvenilirlik
modelinin kullanılamayacağını belirtmektedir. Onuncu iterasyon için diğer iki modelin
tahmin edilen ve gerçekleşen hata sayısı incelendiğinde ise Lineer Regresyon
modelinin Goel-Okumoto modeline göre gerçeğe daha yakın tahmin yaptığı görülür.</p>
          <p>Bu çalışma özelinde iki iterasyon sonucuna göre gerçek hata kayıt verilerinin güven
aralığı içinde olması ve tahmin edilen hata sayısı ile gerçekleşen hata sayısındaki
ortalama fark incelendiğinde Lineer Regresyon modelinin diğer modellere oranla daha
başarılı olduğu söylenebilir. Lineer Regresyon modelinin diğer modellere göre başarılı
sonuç vermesinin sebebi diğer modellerin projede belirli olgunluğa erişildikten sonra
projedeki değişimin ve dolayısıyla yeni tespit edilen hata sayısının zamanla azalacağını
varsaymasıdır. Ancak projenin iteratif olarak ek geliştirmelerinin devam etmesi ve her
iterasyon da yapılan değişiklikte bir azalma olmaması tespit edilen toplam hata
sayısında artışa sebep olmaktadır.</p>
        </sec>
      </sec>
      <sec id="sec-4-16">
        <title>Bu çalışmanın geçerliliğini etkileyebilecek faktörler olarak; çalışmada kullanılan hata kayıt verilerinin tek bir projeye ait olması, var olan birçok yazılım güvenilirlik modellerinden sadece üç modelin performansının incelenmesi ve model performanslarının yalnızca iki iterasyon sonucu için değerlendirilmesi düşünülmektedir.</title>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>4 Gelecek Çalışmalar</title>
      <p>Bu çalışma kapsamında Lineer Regresyon, Goel-Okumoto NHPP ve Geciktirilmiş
SŞekilli NHPP yazılım güvenilirlik modelleri incelenmiş ve model performansı
açısından Lineer Regresyon Modelinin tahminleme bakımından gerçekleşene en yakın
sonucu verdiği görülmüştür.</p>
      <p>Çalışma kapsamında sadece ön kabul de koşulan testler sonucu bulunan hata
sayısının iterasyona göre değişimi kullanılarak, hata oluşumları modellenmeye çalışılmıştır.
İterasyon bazlı projede yapılan değişiklikler farklılaşacağı için her iterasyonda hata
oluşumu farklılık gösterir ve her iterasyonda yapılması planlanan değişime göre hata
oluşumu modellenmelidir. Bu sebeple bir iterasyon kapsamında değişebilecek kod satır
sayısı, yeni geliştirilecek gereksinimlerin sayısı ve zorluğu gibi değişkenlerde
eklenerek yeni model oluşturup her iterasyon başında eldeki verilere dayanarak iterasyon
boyunca oluşabilecek hata sayısının tahmin edilmesi hedeflenmektedir.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Karaömer</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>B.</surname>
          </string-name>
          ,
          <article-title>"Web Yazilim Projelerinde Homojen Olmayan Poisson Süreci Yazılım Güvenilirlik Modellerinin Karşılaştırılması" Yüksek Lisans, Endüstri Mühendisliği</article-title>
          , Hacettepe Üniversitesi,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Kurtel</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ve Eren, Ş.,
          <article-title>"Quality Requirements for Software Architecture: Software Reliability,"</article-title>
          <source>Journal of Computer Science and Engineering</source>
          , vol.
          <volume>4</volume>
          , pp.
          <fpage>75</fpage>
          -
          <lpage>83</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Sarı</surname>
            ,
            <given-names>Ö.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kalıpsızı</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>“Yazılım Hata Kestirimi İçin Veri Analizi Yöntemlerinin Kullanılması” 2014 Ulusal Yazılım Mühendisliği Sempozyumu</surname>
          </string-name>
          ,
          <year>2014</year>
          [4]
          <string-name>
            <surname>Quyoum</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dar</surname>
            , M. U. D. ve Quadri,
            <given-names>S. M. K.</given-names>
          </string-name>
          ,
          <article-title>"Improving Software Reliability using Software Engineering Approach-A Review,"</article-title>
          <source>International Journal of Computer Applications</source>
          , vol.
          <volume>10</volume>
          (
          <issue>5</issue>
          ), pp.
          <fpage>41</fpage>
          -
          <lpage>47</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Pham</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <source>System Software Reliabililty London: Springer</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Sugüneş</surname>
            ,
            <given-names>Ö.</given-names>
          </string-name>
          ,
          <article-title>"Yazılımda İstatiksel Süreç Kontrolü ve Güvenilirlik Kestirim Modelleri,"</article-title>
          <source>Yüksek Lisans</source>
          , İstatistik Bölümü, Ankara Üniversitesi,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Aydın</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <article-title>"İteratif Yazılım Geliştirme için Hata Tahminleme Modeli Araştırması: Bir Durum Çalışması,"</article-title>
          <source>Yüksek Lisans</source>
          , Bilgisayar Mühendisliği, Hacettepe Üniversitesi,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>