Yapay sinir ağları ile yazılım projesi maliyet tahmini
Software project cost estimation with artificial neural networks
Yazar: ELİF KARTAL KARATAŞ
Danışman: DOÇ. DR. SEVİNÇ GÜLSEÇEN
İstanbul Üniversitesi / Fen Bilimleri Enstitüsü / Enformatik Ana Bilim Dalı
Derece: Yüksek Lisans, 2011
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Maliyet tahmini = Cost estimation ; Yapay sinir ağları = Artificial neural networks ; Yapay zeka = Artificial intelligence ; Yazılım = Software

Özet:
Bu tezin amacı, insan beynindeki sinir ağlarının çalışmasından yola çıkılarak oluşturulan ve Yapay Zeka'nın (YZ) bir alt dalı olan Yapay Sinir Ağları (YSA)'nın, yazılım projesi maliyet tahmininde nasıl kullanılabileceğini araştırmak ve yazılım projelerinin maliyet tahminini yapmak için en uygun YSA modeline ilişkin bir örnek sunmaktır.Bir yazılım projesini yürütme sürecinde; işgücü analizi ve proje süresi tahmini ile bu iki unsuru kapsar nitelikte olan proje maliyet analizi projenin kaderini belirlemektedir. Yazılım geliştirme maliyetlerini, ölçüm ve tahmin yöntemlerinin azlığından dolayı genellikle kontrol altında tutmak zordur. Yazılım projesi maliyet tahmini COCOMO, SLIM gibi algoritmik yöntemlerle yapılmasına rağmen, doğru maliyet tahmini için son zamanlarda YSA modellerinden çokça yararlanılmaktadır. YSA, girdiler ve çıktılar arasında karmaşık bir ilişki olduğunda iyi sonuçlar verebilen bir YZ yöntemi olarak bilinmektedir.Bu çalışmada öncelikle YZ ve YSA'ları konularına ayrıntılı bir şekilde değinilmiştir. Daha sonra tezin amacı doğrultusunda oluşturulan model YSA'ı anlatılmış ve bu ağın yazılım şirketleri tarafından kullanılabilmesi için, ağın da içine entegre edildiği bir web sitesi oluşturulmuştur. Model YSA'ı COCOMO veri seti ile eğitilmiş ve tahminde bulunması sağlanmıştır.Elde edilen sonuçlar; oluşturulan modelin kabuledilebilir tahminler ortaya koyduğunu göstermiştir. Yazılım şirketleri YSA teknolojisinin kullanımına olumlu yaklaştıkları taktirde, benzer modellerin kamuda ve özel sektördeki yazılım projesi yöneticilerine yol gösterici nitelikte olacağı ve fayda sağlayacağı düşünülmektedir. Yöneticilerin, karar vermekte oldukça zorlandıkları yazılım projelerinin maliyetini tahmin ederken, YSA gibi yeni bir yöntemi kullanarak, gerçek proje maliyetlerine çok yakın tahminler elde etmesi mümkün olacaktır. Üstelik YSA'ları ile maliyet tahmininin yanı sıra, yazılım projesi süresi ve projedeki işgücü gibi yine yazılım projeleri için önemli iki temel unsur için de tahmin yapmak kolaylaşacaktır.

Abstract:
The aim of this thesis is to find out how can Artificial Neural Networks (ANN) - one of the methods of Artificial Intelligence (AI) - be used in software projects cost estimation and to give an example for one of the most appropriate models of ANN used for this purpose.The estimation of effort for software projects, which includes both time estimation and cost estimation, determines the project‟s destiny in a project management process. Generally costs of software development are out of control because of the lack of measuring and estimation methods. Although software project cost estimation is usualy done by algorithmic methods such as COCOMO (Constructive Cost Model) and SLIM (Software Life Cycle Management), recently researchers tend to use ANN to make more accurate estimation. ANNs can be thought of as functions in the sense that they map a set of inputs to outputs.After a detailed information about AI and ANNs, we present the proposed ANN model that will be used as estimator and give explanation for the web site that integrate both the model and the user interface created to be used for the input of companies project data.The results of this study show that the proposed ANN produce acceptable estimations. If it will be trained and tested in order to be more precise, the results will be very close to the actual project costs.When this study was shared with some software companies, we saw that there is a resistance in applying every new technology even among the software companies. But, we believe that this study will be a starting point in applying AI and ANN methods to real life applications, especially in software industry, in order to simplify the hard work of project managers by reducing the time and effort in project cost estimation.