<!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 Efor Tahmininde Farklı Bir Yaklaşım: Sınır Değerlerine Göre Tahmin</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ömer Faruk Saraç</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nevcihan Duru</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Bank Asya Katılım Bankası</institution>
          ,
          <addr-line>İstanbul</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Kocaeli Üniversitesi Bilgisayar Mühendisliği</institution>
          ,
          <addr-line>Kocaeli</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Özet. Yazılım efor tahmini, yazılım proje yönetiminde çok önemli bir aşamadır. Tahmin değerinin doğruluğu proje başarı ya da başarısızlığına doğrudan etki eder. Yöneticiler uygun kaynakları tahmin etmeye çalışırlar ve bu yönetim için zorlayıcı bir durumdur. Araç ve tekniklerin yardımıyla tahmin süreci daha iyi gerçekleştirilebilir. COCOMO en çok kullanılan, parametrik modellerden biri olarak ifade edilen yöntemlerdendir. Aynı zamanda, COCOMO tabanlı Yapay sinir ağlarının (YSA) kullanıldığı çalışmalar da mevcuttur. Bu çalışmalarda toplam performansın arttığı gösterilmiştir. Fakat efor tahmini süreci, genelde, tek çıktı üretir: tahmin edilen efor değeri. Bir proje yöneticisinin tahminlerinde bazı üst ve alt limitleri, sınırları dikkate alması gerektiği bilinen bir gerçektir. Bu çalışmada yeni bir metot önerilmiş, COCOMO tabanlı YSA ile K-Means kullanılarak efor tahmini ve olası sınırlar belirlenmiştir. YSA çıktısı K-Means kümelerine girdi olarak sunulmuş, olası küme belirlenmiş ve buna göre olası üst ve alt limit efor tahmin değerleri üretilmiştir. Deneysel çalışma sonuçları sayısal olarak kabul edilebilir düzeyde çıkmış ve kullanılabilir birden çok tahmin değeri üretilerek daha pratik bir efor tahmin sürecinin olabileceğini göstermiştir.</p>
      </abstract>
      <kwd-group>
        <kwd>Anahtar Kelimeler</kwd>
        <kwd>yazılım efor tahmini</kwd>
        <kwd>COCOMO</kwd>
        <kwd>yapay sinir ağları</kwd>
        <kwd>kmeans</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>yöneticileri karar verme süreçlerini destekleyecek araç ve yöntemlere ihtiyaç
duymaktadır.</p>
      <p>
        Efor tahmini yaklaşım itibariyle farklı kategorilere ayrılabilir: uzman
değerlendirmesi, parametrik metotlar ve makine öğrenmesi tabanlı metotlar gibi[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Her bir
kategori altında da belli yöntem ve yaklaşımlar yer alır. En bilinen yöntemlerden biri,
B. Boehm tarafından ortaya konulan ve parametrik model olarak ifade edilen
COCOMO’ dur[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. COCOMO, Constructive Cost Model ifadesinin kısaltılmışıdır ve
basitçe, parametre ve sabit değerleri olan bir formüldür. Özellikle kolay hesaplama
imkânı olmasından tercih edilen metotlardandır.
      </p>
      <p>
        Bir diğer bilinen yöntem, veri madenciliği ve makine öğrenmesi tabanlı, yapay
sinir ağlarıdır(YSA). YSA ile karmaşık lineer olmayan problemler modellenebilir[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
Ek olarak YSA tahmin değerleri üretebilir. Bu nedenlerden dolayı efor tahmini
alanında da kullanılmaktadır. Genelde YSA, COCOMO ile beraber kullanılmaktadır.
Farklı mimari yapılarının ve algoritmalarının olmasıyla beraber, en çok tercih
edilenlerden birinin ileri beslemeli geri yayımlı YSA olduğu söylenebilir[
        <xref ref-type="bibr" rid="ref4 ref5">4,5</xref>
        ]. COCOMO
maliyet faktörleri YSA için girdi katmanını oluşturur ve sonuç olarak efor tahmini
değeri üretilir.
      </p>
      <p>
        COCOMO ve YSA’ nın beraber kullanıldığı ve önemli performans artırımlarının
gösterildiği çalışmalar mevcuttur[
        <xref ref-type="bibr" rid="ref4 ref5 ref6 ref7">4,5,6,7</xref>
        ]. Bununla beraber, efor tahmini halen
çalışma ve iyileştirmelere açık bir alandır. Özellikle performans ölçütlerinin sistem
genelinde olması, yüzde olarak hata oranlarının düşmesine rağmen daha iyi sonuçlara
ulaşma isteği gibi nedenlerle bu alan üzerinde çalışmalar devam etmektedir. Bilindiği
gibi, çoğu model, efor tahmini sonucunda tek bir çıktı üretir. Bu değer belli bir
ölçüme göre verilen (adam/ay gibi) efor tahmin değeridir. Ancak, PMI tarafından da
ifade edildiği şekliyle, proje planlamalarında istenmeyen durumların da göz önünde
bulundurulması ve buna göre planlamada esnekliğin de olması bilinen bir
gerçektir[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Efor tahmini sürecini göz önünde bulundurduğumuzda, tahmin değerinin
yanında olası üst ve alt limitlerin de tahmin edilmesi, karar aşamasında yöneticilere
yardımcı olabilir.
      </p>
      <p>
        Menzies, yazılımın kendisinin de bir veri kaynağı olduğunu ifade etmiştir[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
Yazılım içerisinde yer alan kaynak kodları, hata veri tabanları, yazışmalar, raporlar ve
yazılım geliştirme sürecinde ortaya çıkan diğer bilgiler bu veri kaynaklarından
sayılabilir. Her bir kaynağın, süreci geliştirmede kullanılabileceğini ve bu şekilde sürecin
kendisinin yine kendi ürettiği bilgiden de beslenebileceğini ifade etmiştir. Bu
çalışmada da benzer şekilde, geçmiş veriler kullanılarak, sadece tahmin değeri
üretmek yerine olası esnek değerlerin de sunulması hedeflenmiştir.
      </p>
      <p>Bu çalışmada, COCOMO tabanlı YSA modeli kullanılmış, ek olarak, esnek bir
yapı sunmak için k-means yöntemi de modele dahil edilerek, efor tahmin değeri ile
beraber olası üst ve alt limit değerleri de sunulmuştur. Bu yaklaşımla efor tahmininde
kullanılabilecek olası birden çok değer üretilmiştir. Her ne kadar karar destek
sistemlerinin basitliği önemli olsa da, tahmin sürecini daha verimli yapabilmek için bu
şekilde detaylı bilgilerin sunulması faydalı olacaktır.</p>
      <p>COCOMO modelinin seçilmiş olmasının en önemli nedeni, uygulamada görece
kolaylık sağlamasıdır. Neticede matematiksel formüle dayandığından, irdeleme ve
kontrol olanakları fazladır. Ek olarak, digger olası modellere referans verilmemesinin
nedeni, yaygın olarak kullanılan ve akademik olarak üzerinde çeşitli çalışma ve
iyileştirmelerinin yapıldığı bu model ile, çalışmada ortaya atılan modelin daha rahat
sunulabiliyor olmasıdır. Çalışmada amaç COCOMO modelini geliştirmekten ziyade,
bilindik bir model üzerine bina edilecek şekilde, efor tahmin yöntemlerini esnetme,
olası sınır değerlerini üretme işlemini sürece dahil etme denemesidir.</p>
      <p>Çalışma içerisinde, 2. bölümde önceki araştırmalardan örnek verilmiş ve sonuçları
kısaca belirtilmiştir. Takip eden bölümde ise önerilen model ortaya konulmuştur.
Değerlendirme kriterleri ve test sonuçları çalışmaya dâhil edilmiş ve çıkarımlar
belirtilmiştir. Son olarak bulgular neticesinde ortaya çıkan sonuçlar belirtilmiş ve olası
gelecek çalışma alanları ifade edilmiştir.
2</p>
      <p>İlgili Çalışmalar</p>
      <p>
        Geçen zamanda efor tahmini ile ilgili birçok çalışma yapılmıştır. Jorgensen,
yayınladığı makalede bu çalışmaları belli bir düzende incelemiş ve detaylı bilgi
vermiştir[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Bu yayın ile efor tahminindeki gelişmeler zaman ölçeğinde irdelenebilir.
      </p>
      <p>
        Giriş bölümünde de ifade edildiği şekliyle, birçok araştırmada efor tahmini
gerçekleştiriminde COCOMO tabanlı YSA kullanılmıştır[
        <xref ref-type="bibr" rid="ref4 ref5 ref6 ref7">4,5,6,7</xref>
        ]. Bu çalışmalarda
kendi içinde mimari seçimler farklılık gösterse de genelde tercih edilenin ileri
beslemeli ağ olduğu ifade edilebilir. Bununla beraber, YSA yapısının bir tür kapalı kutu
olarak değerlendirilmesi[
        <xref ref-type="bibr" rid="ref5 ref7">5,7</xref>
        ], model üzerinde bazı ayarlamalar yapmayı da
beraberinde getirmiştir[
        <xref ref-type="bibr" rid="ref4 ref5">4,5</xref>
        ]. Değişiklikler performansı artırmak amacındadır. Aynı zamanda
yapılan düzenlemelerle YSA modelinde, ilgili yapıdaki elemanların hangi işlevi
gördüklerinin daha iyi ifade edilebilmesi sağlanabilir.
      </p>
      <p>Çalışmalarda genelde, açık olarak ulaşılabilen COCOMO tabanlı veri kümeleri
kullanılmaktadır. B.Boehm, COCOMO tanımını da verdiği yayınında bir veri kümesi
de sunmuştur ve birçok yerde bu veri kümesi kullanılmıştır. Çalışmalarda bu veri
kümesinin tercih edilmesi, modelleri birbiri ile kıyaslama imkânını da sunmuştur.</p>
      <p>
        Kaushik COCOMO tabanlı ileri beslemeli bir YSA modeli önermiştir[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Modelde,
parametreler logaritmik bir fonksiyondan geçirilmiş ve buna göre tahmin değeri
üretilmiştir. Modelin çıktılarının gerçekleşen efor değerlerine yakın olduğu ifade
edilmiştir. Çalışmada COCOMO 81 olarak adlandırılan veri kümesi kullanılmıştır.
Değerlendirme kriteri olarak MRE (Mean Relative Error) seçilmiş[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], yüzde olarak
beklenen değer ve tahmin edilen değer arasındaki farkın oranı verilmiştir.
      </p>
      <p>
        Reddy de benzer bir yaklaşıma sahiptir. Çalışmasında yine COCOMO tabanlı YSA
kullanılmıştır[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Modelde farklı olarak, orijinal COCOMO modelini logaritmik şekle
dönüştürülmüş ve bu şekilde 2 temel parçanın olduğu ifade edilmiştir. Bu parçalardan
biri, maliyet faktörlerini ifade eder, diğeri ise formül çarpanlarını oluşturur. Buna göre
gizli katmanda 2 nöron kullanılmış, ilgili girdi nöronları sadece formülde bağlantısı
olduğu nörona sunulmuştur. Çalışma sonuçları, COCOMO tahminleriyle
karşılaştırılmış ve yine MRE değerlendirme kriteri olarak verilmiştir. Modelin daha
başarılı ve dengeli olduğu çıkarımı yapılmıştır.
      </p>
      <p>
        Idri ise çalışmasında YSA’ nın efor tahmini sürecine uydurulup uydurulamayacağı
sorusunu sormuş ve buna göre değerlendirme yapmıştır[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Bu çalışmada ileri
beslemeli, 3 katmanlı YSA kullanılmış, test için de yine COCOMO 81 veri kümesi tercih
edilmiştir. Modelde bulanık mantık kuralları ile YSA modeli eşleştirilmiştir.
COCOMO parametreleri incelenmiş, her bir parametrenin limitleri ölçüsünde kural
kümeleri oluşturulmuştur. Sonuçların kabul edilebilir bir seviyede olduğu ifade
edilmiştir.
      </p>
      <p>
        Kultur, daha farklı bir yaklaşıma sahiptir. Tek bir YSA yerine, bütünleşik, 20 adet
YSA kullanan bir model önermiştir[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Modelde, veri kümesinden küçük alt kümeler
oluşturulmuş, her bir alt küme, YSA’ lara girdi olarak sunulmuştur. Sonuçlar
gruplanmış, en büyük gruptaki sonuçların ortalaması değerlendirilmiştir. Ek olarak,
geçmiş bilgilere göre bias değeri üretilmiş, tahmin edilen değere dâhil edilmiştir.
Bias hesaplamaları k en yakın komşu algoritmasına göre gerçekleştirilmiştir.
COCOMO tabanlı veri kümeleri test için kullanılmış ve her bir küme için hem YSA,
hem de önerilen modelin sonuçları verilmiştir. Önerilen metodun diğerlerinden
başarılı ve daha dengeli olduğu ifade edilmiştir.
      </p>
      <p>Bahsi geçen çalışmalar, temelde COCOMO modelini baz almıştır. Aynı zamanda
bu çalışmaya temel teşkil eden YSA modeli üzerine kurgulanmıştır. Efor tahmini
süreci, doğal olarak, bir sayısal değer üretme amacı güttüğünden, sonuç listeleri
birtakım sayısal değerler ve bu değerlerin belli ölçeklere göre karşılaştırmaları
şeklinde olmaktadır. Çalışmalar genelinde kabul görüm MRE değerini kullanmaktır.
Bu nedenle odak olarak MRE değerleri aktarılmıştır.
3</p>
      <p>Önerilen Model
İlgili çalışmalarda da ifade edildiği gibi, araştırmalar, YSA’ nın efor tahmininde
kullanılabileceğini göstermiştir. YSA efor tahmin başarısını genelde artırmıştır.
Çalışmalarda model yapısı ve değerlendirme metotları değişse de YSA ortak olarak
kalmıştır.</p>
      <p>Bu çalışmada da YSA tabanlı efor tahmin modeli sunulmuştur. Efor tahmin
sürecinin tek çıktı üreten yapısı esnetilerek, olası üst ve alt limit değerleri de tahmin
edilmiştir. YSA, diğer çalışmalardaki gibi COCOMO tabanlıdır. Buna göre
COCOMO parametreleri YSA için girdi oluşturmaktadır. YSA için ileri beslemeli
geri yayımlı yaklaşım tercih edilmiştir. Orta katmanda 5 nöron bulunmaktadır ve çıktı
katmanında 1 nöron vardır. YSA içerisinde herhangi bir bias nöron mevcut değildir.
Çalışmada asıl amaç, tek başına efor tahmin değeri üretmek yerine, olası farklı
değerlerin üretilmesinin yorumlama ve karar vermede daha faydalı olduğunu
göstermektir.</p>
      <p>Geçmiş proje bilgileri ki bu çalışma kapsamında COCOMO 81 veri kümesidir,
eğitim ve test sürecinde kullanılmaktadır. YSA, bu bilgilere göre efor tahmininden
sorumludur. K-means ise, üretilen tahmin değerini destekleyecek üst ve alt limit
değerlerini üretmektedir. Model ile ilgili detaylar ve veri kümesi hakkında bilgi
aşağıdaki bölümlerde verilmiştir.
3.1</p>
    </sec>
    <sec id="sec-2">
      <title>Veri Kümesi</title>
      <p>
        PROMISE sitesi üzerinde, açık olarak ulaşılabilecek efor tahmininde
kullanılabilecek veri kümeleri mevcuttur[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Önerilen model için bu kümelerden COCOMO
81 veri kümesi kullanılmıştır. Küme içerisinde 63 satır bulunmaktadır. Çalışmada
daha sağlıklı sonuç elde edebilmek için tüm değerler normalize edilmiştir.
Normalizasyondan sonra sınır değerlere sahip olan minimum ve maksimum satırları
çıkarılmıştır.
      </p>
      <p>Küme, çalışmalarda 2 bölüme ayrılmış, %75’ lik bölümü eğitim için, kalan ise test
için kullanılmıştır. Kümelerin oluşturulması için bir random fonksiyon kullanılmıştır.
Bu fonksiyona göre, tüm küme içerisinden belli sayıdaki satırlar 2 yeni alt kümeyi
oluşturmuştur. Özellikle eğitim aşamasında veri kümesinin içeriği ile beraber,
verilerin sırası da sonuçları etkileyebileceğinden, daha modüler bir yapıya ulaşmak için
rastgele elemanların seçilmesi önemlidir. Bilhassa k-means algoritmasında bağlangıç
değerleri ve kümeler, sonuçta oluşan alt kümeleri çok fazlaca etkilemektedir. Bu
nedenle eğitim ve test veri kümelerinin oluşturulmasında sıra gözetilmeden,
rastgelelik sağlayan metot tercih edilmiştir.
3.2</p>
      <p>YSA Modeli
İleri beslemeli ve geri yayımlı, 3 katmanlı YSA tercih edilmiştir. Girdi katmanında,
veri kümesindeki gibi, COCOMO parametrelerini karşılayacak şekilde, girdi
nöronları bulunmaktadır. Ek olarak, satır sayısı ölçümünü ifade eden, LOC (Lines Of Code)
değeri de girdilere eklenmiştir. Orjinal COCOMO hesaplamasında yer alan bu
değerin,YSA içerisine de eklenerek daha sağlıklı sonuç alınması hedeflenmiştir.</p>
      <p>Şekil 1’ de gösterildiği gibi, modelde 1 gizli katman mevcuttur ve bu katmanda 5
nöron vardır. Çıktı katmanında ise tek nöron, efor tahmin nöronu vardır. Herhangi bir
dışsal nöron ya da bias değeri mevcut değildir. Aktivasyon fonksiyonu olarak
Sigmoid kullanılmaktadır. Ağırlıklar, -1 ile 1 arasında değişen, rastgele değerler olarak
atanmıştır.</p>
      <p>Şekil üzerinde görülen, modelin basitleştirilmiş bir gösterimidir. Ileri beslemeli bir
ağ olduğu düşünülürse, akışın temelde girdi katmanından çıktı katmanına yöneleceği
anlaşılabilir. Gösterim kolaylığı olması açısından sadece örnek bağlantılar verilmiştir.
Her bir nöron, bir sonraki katmanda ilgili nöronlara bağlanmaktadır. Girdi
katmaındaki etiketler ise, model içerisindeki nitelik isimlendirmelerinden alınmış, referans
olması açısından orjinal isimlendirmelere sadık kalınmıştır.</p>
      <p>Şekil 1. YSA Modelinin Gösterimi
3.3</p>
    </sec>
    <sec id="sec-3">
      <title>K-Means Kümeleri</title>
      <p>Modele esneklik sağlayan, k-means kullanımıdır. YSA hesaplamasında ortaya
konulan tahmin değeri, k-means için kontrol değeri olmaktadır. Sistem tutarlılığını
sağlamak için, YSA’ ya girdi olarak sunulan veri kümesi, aynı şekilde k-means için
de sunulmuştur. Modelin geliştirilmesi sırasında yapılan denemeler sonucu k sayısı,
oluşturulacak küme sayısı 4 olarak belirlenmiştir. Küme eleman sayısının azlığı ve
içerik, diğer değerlerde istenilen sonucu üretmeyi engellemiştir. Bununla beraber 4
değeri tamamen testler neticesinde ortaya konulmuştur.</p>
      <p>Küme oluştururken ölçüm için Öklid uzaklığı kullanılmış, satırların küme
merkezlerine olan yakınlığı baz alınmıştır. YSA’ daki gibi, başlangıç değerleri -1 ve 1
aralığındaki rastgele değerlerden oluşturulmuştur.</p>
      <p>COCOMO parametreleri, karşılığında sabit sayısal değerlerin olduğu kategorik
sınıflandırma belirteçleridir. Bu değerler genelde 0,7 ile 1,5 arasında değişmektedir.
Her bir parametre için ortalama 6 değer olduğu düşünülürse, sayısal değerlerin
birbirine çok yakın ve aynı değerler olduğu anlaşılır. K-means algoritmasıyla
kümeleme yapıldığında, kümeler oluşmaya başladığında, küme merkezleri birbirine
çok yaklaşmakta ve her bir döngüde veri kümesindeki satırlar aynı kümelerde
yoğunlaşmaktadır. Bu sorunu önleyebilmek için doluluk oranı adında yeni bir ölçüm dâhil
edilmiştir. Buna göre sistem içerisinde bir eşik değeri belirlenmiş, bu değere ulaşan
küme olduğunda, kümeye eleman ekleme aşamasında, bir sonraki en olası küme
tercih edilmiştir. Örnek olarak, bir kümede 40 satır varsa ve doluluk oranı %40 olarak
belirlenmişse bir kümenin alabileceği maksimum eleman sayısı 10 olacaktır. Doluluk
oranı basitçe eleman sayısının küme sayısına oranının belli bir katsayısıdır. Buradaki
katsayı ayarlanarak, kümelerin dengesi sağlanabilir.</p>
      <p>K-means algoritmasıyla kümeleme işlemi tamamlandığında, her bir küme için belli
istatistikler kullanılabilir. Bunlar, küme minimum, maksimum ve ortalama efor değeri
gibi verilerdir. Bu değerlerle hem kümelerin homojenliği irdelenebilir hem de küme
içerisindeki dağılıma göre tahmin edilen değer hakkında yorum yapılabilir.
3.4</p>
    </sec>
    <sec id="sec-4">
      <title>YSA ile K-Means Kümelerinin Birleştirimi</title>
      <p>Sistemde, YSA sonucu olarak üretilen değer, temel efor tahmin değeridir. Bu
değer, daha sonra k-means ile oluşturulan kümelere sunulur ve olası en yakın üste ve
alt limitler hesaplanır. Önerilen model esnekliği bu ilişki ile sağlamaktadır.</p>
      <p>Test kümesindeki her bir eleman için YSA efor tahmin değeri üretilir. Benzer
şekilde, bir destek değeri olması için k-means efor değeri hesaplanır. Bu işlem için
test satırının hangi kümeye ait olabileceği bulunur ve bu küme içerisindeki en yakın
değer çıktı olarak verilir. Daha sonra YSA değeri, bulunan olası küme içerisinde
değerlendirilir ve bu değere en yakın üst ve alt satırlar, olası üst ve alt limitler olarak
verilir.</p>
      <p>Küme içerisindeki en yakın değerleri bulabilmek için, kümedeki elemanlar ve YSA
sonuç değeri bir liste olarak tutulur ve sıralanır. YSA değerine en yakın üst ve alt
komşusu, sırası ile üst ve alt limit değerlerini oluşturur. Eğer YSA değeri listede ilk
ya da son eleman olursa, olası değerler için ancak tek sonuç bulunacaktır. Bu
durumda YSA, k-means içerisinde beklenenden daha büyük/küçük değer üretmiş denilebilir.
Bununla beraber, test sonuçlarından da görüleceği gibi, modelden beklenen bu
duruma düşen satır sayısının çok az olmasıdır.</p>
      <p>YSA ile k-means kümelerinin birleşiminden model çıktısı olarak 4 değer üretilir.
Bunlar, COCOMO hesabı ile ortaya çıkan hata oranı, YSA hata oranı, k-means hata
oranı ve üst-alt limit değerleri için ayrı olarak verilen hata oranlarıdır. Model
önerisinde de belirtildiği gibi, sonuç listesinde birden çok değerin bulunması, karar destek
aşamasında proje yöneticisinin daha geniş bir bakış açıya sahip olmasını
sağlayacaktır.
3.5</p>
    </sec>
    <sec id="sec-5">
      <title>Kullanıcı Arayüzü ve Model Aracı</title>
      <p>Önerilen modelin gerçekleştirimi, Visual Studio üzerinde, C# 2.0 dili ile bir Windows
uygulaması olarak yapılmıştır. Kullanıcıya belli değerlerin girilebildiği ve sonuçların
tablo olarak gösterildiği bir arayüz hazırlanmıştır. Bu arayüz ile, test ve eğitim
kümelerindeki eleman sayısı, k-means küme sayısı, YSA öğrenme oranı gibi temel
parametreler verilebilir. Ayrıca, sistem virgülle ayrılmış dosya(csv) girdileri almaktadır.
Bu dosyalarda COCOMO modeline uygun veriler vardır ve program girdi dosyasını
okuyup ilgili oranda eğitim ve test kümelerini oluşturur. Şekil 2, program arayüzünün
örnek bir görüntüsünü sunmaktadır.</p>
      <p>Önerilen model, sadece çalışmayı destekleyecek çapta deneme programına dahil
edilmiştir. Modelin daha güçlü bir şekilde incelenebilmesi için gerçek bir
firma/kurum içerisinde belli bir standard gore uyarlanması gerekmektedir. Mevcut
çalışma için böyle bir imkan oluşmamıştır ancak, model geçerlemesi, tüm parçaları
ilgili dil ve platform içerisinde gerçekleştirilmiş, gerçek bir program ile sağlanmıştır.
Bu şekilde model için istenilen seviyede sektör denemesi yapılamamış olsa da,
program üzerinde gerçek deneyim ve testlerin yapılması sağlanmıştır. Neticede veri
kümeleri açık olarak sunulan, daha önceki gerçek proje niteliklerini içermektedir.</p>
      <p>Şekil 2. Kullanıcı Arayüzünden Bir Görünüm
4</p>
      <sec id="sec-5-1">
        <title>Test Sonuçları</title>
        <p>Bu bölümde, önerilen modelin, COCOMO 81 veri kümesi ile testinin sonucunda
ortaya çıkan sonuçlar belirtilmiş, değerlendirme kriteri olarak kullanılan yöntem ifade
edilmiştir. Test sonuçları üzerinden, model hakkında genel değerlendirmeler de
sunulmuştur.</p>
        <p>Tahmin gerçekleşen sistemlerde temel ölçüm, beklenen değer ile tahmin edilen
değer arasındaki fark, ya da uyumdur. Diğer çalışmalarda olduğu gibi, bu çalışmada
da değerlendirme ölçütü olarak MRE kullanılmıştır. MRE,
(|Beklenen Değer – Tahmin Edilen Değer| / Beklenen Değer) × 100
(1)
bağıntısı ile verilmektedir. MRE değerinin küçük olması, tahmin değerinin başarılı
olduğunu ifade etmektedir. Bu nedenle başarı ölçütünde küçük olan MRE değerleri
önemlidir.</p>
        <p>Tablo 1, COCOMO 81 veri kümesi için ortaya çıkan sonuçları göstermektedir.
Tablodan da görülebileceği gibi, k-means genelde daha başarılıdır. Bununla beraber,
üst ve alt limit değerleri genelde YSA çıktı değerinden daha başarılıdır. Bunun
anlamı, k-means ile bir aralık bulunmasına rağmen, destek değerlerinin YSA değerinden
daha iyi olduğudur. Efor tahmini sürecinde düşünüldüğünde, tek başına YSA
kullanımından çok daha iyi bir başarı elde edileceği çıkarımı yapılabilir. Üst ve alt
değerler, aynı zamanda, proje için olası esneme miktarını verdiklerinden, YSA için
mevcut olabilecek kayma miktarı da azalacaktır.</p>
        <p>MRE%
1
2
3
4</p>
        <p>COCOMO
18.2
28.36
34.6</p>
        <p>Tablodaki bazı satırlarda sonuçların 0 olduğu görülmektedir. Bu satırların sebebi,
veri kümesinde aynı efor değerine sahip farklı proje satırları olmasıdır. Yani, farklı 2
değer için aynı sonucun çıkması durumudur. Bazı satırlar için de alt ve üst limit
değerlerinin aynı olduğu gözlemlenmektedir. Bunun sebebi ise, model tanımında da
belirtildiği gibi, tahmin edilen değerin, ilgili k-means küme içerisindeki değerlerin en
üst ya da en altında çıkmasıdır. Bu durumlarda tek limit değeri olacaktır. COCOMO
hata oranlarının yüksek çıkmış olması ilginç bir durum olmakla beraber, efor
tahmininde model geliştirme üzerinde çalışılmasının gerekçesini de ortaya koymaktadır.</p>
        <p>Test sonuçları incelendiğinde, beklentinin genel olarak gerçekleştiği söylenebilir. 8
numaralı satır göz önünde bulundurulduğunda, COCOMO için 69 çıkan hata oranı,
YSA için de yüksek sayılabilecek seviyede çıkmış, 68 olarak gerçekleşmiştir.
Bununla beraber, alt ve üst limit değerleri ise, 35 ve 12 olarak ölçülmüştür. Bu değerler
ışığında yorum yapılacak olursa, YSA kullanımında olası yüksek hata oranı
mevcutken, bu değere ek olarak limit değerleri kullanıldığında hem hata oranı azalmış hem
de proje karakteristiğine göre yöneticinin seçeceği yöne bağlı olarak olası esneme
miktarı da tahmin edilebilecektir. Sonuç olarak tablodaki değerlere göre modelin
dengeli olduğu çıkarımı yapılabilir.
5</p>
      </sec>
      <sec id="sec-5-2">
        <title>Sonuç ve Gelecek Çalışmalar</title>
        <p>Efor tahmini proje yönetiminde en önemli konulardan biridir. Bu süreci
destekleyecek araç ve yöntemlerin ortaya konması, proje yöneticilerinin daha başarılı
tahmin yapmalarını ve dolayısıyla daha iyi proje yönetimine sahip olmalarını
sağlayacaktır.</p>
        <p>Bu çalışmada, efor tahmininde farklı bir yaklaşım olarak, üst ve alt limitlere göre
efor tahmini yapılmış ve önerilen model, test verileri ile denenmiştir. Sonuçlardan
yapılabilecek çıkarımlara göre önerilen modelin dengeli olduğu, amaca hizmet
edebileceği, karar destek aşamalarında birden çok çıktı ile yorum yapmanın daha sağlıklı
olabileceği gösterilmiştir. Model, COCOMO üzerine bina edilmiş ve YSA ile
kmeans yöntemleri kullanılmıştır. Model sonuçlarının tek başına hem COCOMO hem
de YSA’ dan daha başarılı olduğu gözlemlenmiştir.</p>
        <p>Çalışma, COCOMO 81 adlı veri kümesi ile yapılmıştır ve bu kümede 63 satır
bulunmaktadır. Modelin veri kümesinin büyüklüğünden etkilenip etkilenmediği
bilinmemektedir. Aynı zamanda, limit değerleri basitçe bir sıralama fonksiyonu
sonrası, YSA tahmin değerine en yakın satırların alınması şeklinde hesaplanmıştır. Proje
karakteristiğine göre bu hesaplamanın daha esnek bir yapıya kavuşturulması, sonuç
değerlerini daha anlamlı hale getirebilir. Ek olarak çalışmada standart YSA
kullanılmış ve herhangi bir bias nöron dâhil edilmemiştir. Bias değerinin sisteme
eklenmesi ve limit değerlerinin aralığının daha modüler şekilde hesaplanması olası
gelecek çalışmaları arasında sayılabilir.</p>
      </sec>
      <sec id="sec-5-3">
        <title>Kaynaklar</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Huges</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ve
          <string-name>
            <surname>Cotterell</surname>
          </string-name>
          , M.:
          <string-name>
            <surname>Software Project Management</surname>
          </string-name>
          , 4th Ed.,
          <string-name>
            <surname>McGraw</surname>
            <given-names>Hill</given-names>
          </string-name>
          , ABD. (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Stellman</surname>
          </string-name>
          , A. ve
          <string-name>
            <surname>Greene</surname>
          </string-name>
          ,
          <source>J.: Applied Software Project Management, O'Reilly</source>
          ,
          <string-name>
            <surname>ABD.</surname>
          </string-name>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Boehm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , Software Engineering Economics, Prentice Hall, ABD. (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Kaushik</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chauhan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mittal</surname>
            , D. ve Gupta,
            <given-names>S.: COCOMO</given-names>
          </string-name>
          <string-name>
            <surname>Estimates Using Neural Netwoks</surname>
          </string-name>
          ,
          <source>International Journal of Intelligent Systems and Applications, Cilt</source>
          <volume>4</volume>
          , No 9, pp.
          <fpage>18</fpage>
          -
          <lpage>22</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Reddy</surname>
          </string-name>
          , Ch.S. ve Raju, KVSVN.:
          <article-title>A Concise Neural Network Model for Estimating Software Effort</article-title>
          ,
          <source>International Journal of Recent Trends in Engineering, Cilt</source>
          <volume>1</volume>
          , No 1, pp.
          <fpage>188</fpage>
          -
          <lpage>193</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Idri</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Khoshgoftaar</surname>
            <given-names>T</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abran</surname>
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Can neural networks be easily interpreted in software cost estimation?</article-title>
          ,
          <source>Proceedings of the IEEE International Conference on Fuzzy Systems, FUZZ-IEEE'02</source>
          , Vol.:
          <volume>2</volume>
          , pp.
          <fpage>1162</fpage>
          -
          <lpage>1167</lpage>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Kultur</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Turhan</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ve
          <string-name>
            <surname>Bener</surname>
          </string-name>
          , A.:
          <article-title>Ensemble of neural networks with associative memory (ENNA) for estimating software development costs</article-title>
          ,
          <source>Knowledge-Based Systems, Cilt</source>
          <volume>22</volume>
          , No 6, pp.
          <fpage>395</fpage>
          -
          <lpage>402</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. PMBOK,
          <source>Project Management Body Of Knowledge</source>
          , 4th Ed.,
          <source>Project Management Institute</source>
          , ABD. (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Marcus</surname>
          </string-name>
          , A. ve Menzies,
          <source>T.: Software Is Data Too , International Symposium on Foundations of Software Engineering</source>
          , Santa Fe,
          <string-name>
            <surname>NM</surname>
          </string-name>
          , ADB.,
          <volume>229</volume>
          -
          <fpage>232</fpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>10. PROMISE Veri Kümeleri, http://promise.site.uottawa.ca/SERepository/datasets-page.html</mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Jørgensen</surname>
          </string-name>
          , M. ve
          <string-name>
            <surname>Shepperd</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A Systematic Review of Software Development Cost Estimation Studies, IEEE transactions on software engineering</article-title>
          ,
          <source>Cilt</source>
          <volume>33</volume>
          , No 1,
          <fpage>33</fpage>
          -
          <lpage>53</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Dave</surname>
            , VS. ve Dutta,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Application of Feed-Forward Neural Network in Estimation of Software Effort</article-title>
          ,
          <source>Proceedings on International Symposium on Devices MEMS, Intelligent Systems &amp; Communication, No</source>
          <volume>5</volume>
          ,
          <fpage>5</fpage>
          -
          <lpage>9</lpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>