Use-Case tabanlı yazılım emek kestirim modeli
Use-Case based software effort estimation model
Yazar: FATİH YÜCALAR
Danışman: PROF. DR. FUAT İNCE ; YRD. DOÇ. DR. ERDEM UÇAR
Trakya Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Doktora, 2011
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Başarılı bir yazılım projesinin temel hedefi, müşteri gereksinimlerine ilişkin beklentileri karşılayan, önceden belirlenmiş bütçe ve zaman içinde tamamlanan bir yazılım projesi geliştirmektir. Ne yazık ki, birçok durumda bu üç hedefi bir araya getirmek mümkün olmamaktadır. Bu başarı kıstaslarını sağlamak için, yazılım projelerinde yazılım ölçüm yöntemleri kullanılmaktadır.Bir yazılım projesinin bütçesini ve süresini proje tamamlanmadan belirleyebilmek için harcanacak emeğin tahmin edilmesi gerekmektedir. Yazılım emek kestirimi, başarılı bir proje yönetiminin kilit unsurlarından biridir. Emeği tahmin etmek önemlidir çünkü bir yazılım projesine fazladan insan atamak gelir kaybına yol açabileceği gibi, gereğinden az insan atamak yazılım ürününün bitirilmesinde gecikmeye yol açacaktır. Zaman planı ve bütçeyi dengelemek için emek değerinin önceden belirlenmesi gerekir.Harcanan emeği tahmin edebilmek için ise projenin büyüklüğü kestirilmelidir. Ne yazık ki, proje yöneticileri, yazılım büyüklüğü ve emek ile ilgili tahminleri doğru yapamamaktadırlar. Proje yöneticileri genelde gerekli emeği tahmin etmek için uzman yargısını kullanırlar, ancak tatmin edici sonuçlar almaktan uzaktadırlar.Yazılım projelerinin büyüklüğünü ve iş gücünü tahmin etmek için birçok metot bulunmaktadır. Bu yöntemlerden en fazla bilinen ve yaygın olarak kullanılanları; İşlev Puanı Analizi, COSMIC Tam İşlev Puanı ve Geliştirici Maliyet Modeli II'dir. Ancak bu yöntemler birtakım ciddi kısıtlamalara sahiptir. Örneğin, işlev puanlarının sayılması uzman gerektirir. Bu metotların dışında özellikle nesne-tabanlı yazılım geliştiren organizasyonların kullandığı Use-Case Puanı (UCP) yöntemi vardır. UCP yöntemi, bir projenin teknik ve çevresel karmaşıklığına ilişkin iki ayarlama faktörü ile use-case modelini temel alan bir yazılım proje emek kestirim tekniğidir.Bu çalışmanın amacı bütçe ve süre aşımlarına bağlı problemlerin üstesinden gelmek için yeni bir emek kestirim yöntemi ortaya koymak ve yazılım emek tahmininin bir analizini gerçekleştirmektir. Bu bağlamda, UCP yöntemi ayrıntılı olarak ele alınmıştır. UCP yönteminden yola çıkarak, yazılım emek kestirimi için çoklu doğrusal regresyon analizi tabanlı yeni bir emek kestirim yöntemi ortaya konulmuştur. Önerilen çözüm hem yazılım emek kestirim yöntemlerine farklı bir bakış açısı getirmekte hem de yazılım emek kestirim sürecini geliştirmeye çalışmaktadır. Bu yöntem Türkiye'deki dört farklı yazılım firmasından toplanmış on yazılım projesi üzerinde denenmiştir ve elde edilen sonuçlar oldukça başarılıdır.

Abstract:
The main objectives of a successful software project are developing it to meet the expectations of the customer's needs, completing it within a planned time and within the planned budget. Unfortunately, it is impossible to fulfill all of these three objectives in most cases. To ensure the success criteria, software measurement methodologies have been used in software projects.It is necessary to estimate the effort needed to determine the cost and the time of a software project before it is completed. Software effort estimation is one of key elements of project management. Estimating effort is crucial since hiring more people than actually needed leads to loss of income and likewise hiring less people than actually needed leads to delay in software product delivery. To balance schedule and budget, the effort needs to be correctly predetermined.Project size should be estimated to determine the effort. Unfortunately, project managers are not very successful at predicting the related to software size and effort. Software managers usually use expert judgment to estimate the required effort; however, they are far from getting satisfactory results.There are many of methods to estimate project size and effort. The most common and known methods are Function Point Analysis (FPA), COSMIC Full Function Point and Cost Constructive Model II (COCOMO II). But these methods have some serious limitations. For example, counting function points requires experts. Apart from these methods there is Use-Case Points (UCP) method. The UCP method is a software project effort estimation technique based on a use-case model and two sets of adjustment factors related to the environmental and technical complexity of a project.The objectives of this study are making an analysis of software effort estimation techniques and presenting a new software effort estimation method to overcome problems related to budget and time overruns. In this context, UCP method is discussed in detail. Using the UCP method as a base, new effort estimation method based on multiple linear regression analysis is proposed for software effort estimation. Our proposed method does not only bring another point of view into software effort estimation methods but it also tries to improve the software effort estimation process. This method have been tried on 10 software projects which were collected from four different software development companies located in Turkey and the obtained results are quite successful.