File - Muaz Gultekin

Download Report

Transcript File - Muaz Gultekin

Yazılım Projelerinde Use Case
Nokta Modeliyle Maliyet Tahmini
12501207 Said Aydemir
12501213 Adem Güçlü
Giriş
• Yazılım proje yönetiminde geliştirme maliyeti tahmini proje
yaşam sürecinin en kritik aşamalardan biridir.
• Proje yöneticilerinin gözünü korkutan ana adımlardan biridir.
Literatür
•
Literatürde bir çok maliyet tahmin modeli sunulmuştur fakat
bu modeller yazılım geliştirme teknolojisindeki hızlı gelişime
ayak uyduramadığı için kullanışsız hale gelmiştir.
•
Önceleri maliyet tahmin modelleri yazılım ürününün son
halinin büyüklüğünü esas parametre olarak kullanmıştır. Fakat
proje başlangıcında bu parametreyi düzgün belirlemek,
tecrübe ve bilgi birikimi sahibi olunsa dahi zor bir işlemdir.
Literatür
• Önceleri kullanılan yazılım maliyet tahmin modelleri yazılım
ürününün son halinin büyüklüğü esas parametre olarak kullanmıştır.
Fakat proje başlangıcında bu parametreyi düzgün belirlemek,
tecrübe ve bilgi birikimi sahibi olunsa dahi zor bir işlemdir.
• COCOMO
• Literatürde geçen bu modeller genel olarak satır sayısı bazlı (LOC Line of Codes), veya fonksiyonelite bazlı (FP - Function Point)
ölçütleri kullanmışlardır.
• Bu ölçütlerin iki ana problemi vardır.
• Tanımlanmalarındaki zorluklar
• Eldeki metodoloji ile önceden tahmin zorlukları
Literatür
• LOC(Line of Codes) ve FP(Function Point) prosedürel yaklaşım
ile gerçeklenen ürünlerin maliyet tahminine elverişli
yöntemler olduğu için yeni nesil nesne yönelimli programlama
(OOP) bazlı dillerin maliyet tahminini hesaplamada yetersiz
kalmışlardır.
• Günümüzde ürünlerin ortaya konulmasındaki nesne tabanlı
çözümleme yönelimleri ile birlikte yeni bir yazılım maliyet
tahmin ölçütüne ihtiyaç duyulmuştur ve Use Case Point
maliyet tahmin ölçütü bu eksikliğin giderilebilmesi için ortaya
konulmuştur.
UCP
• UCP esas parametre olarak nesne yönelimli programlamanın
dizayn aşamasında ihtiyaç duyduğu UML ile oluşturulan use
case diyagramlarını maliyet çıkarımında esas faktör olarak
kullanır.
UCP
• UCP ile maliyet tahmin analizinde şu dört metot
kullanılmaktadır:
•
•
•
•
Unadjusted Use Case Weight (UUCW)
Unadjusted Actor Weight (UAW)
Technical Complexity Factor (TCF)
Environmental Complexity Factor (ECF)
• Bu dört adımın hesabı sonucundaki çıktılar kullanılarak UCP
hesaplanır.
Unadjusted Use Case Weight (UUCW)
• UUCW yazılımın boyutuna katkıda bulunan esas elemandır.
Hesaplanmasında use case’lerin adet ve karmaşıklıkları
kullanılır. Bir sistemin UUCW hesabında, her bir use case önce
tanımlanır ve işlem adetine paralel olarak Basit – Orta –
Karmaşık olarak sınıflandırılır.
Use Case
Classification
No. of Transactions
Weight
Simple
1 to 3 transactions
5
Average
4 to 7 transactions
10
Complex
8 or more transactions
15
UUCW = (Total No. of Simple Use Cases x 5) + (Total No. Average Use
Case x 10) + (Total No. Complex Use Cases x 15)
Unadjusted Actor Weight (UAW)
• UAW yazılımın büyüklüğünü etkileyen bir diğer etmendir. Sistemdeki
aktörlerin adet ve karmaşıklığına bağlı olarak hesaplanır. Her bir
aktör, aktör tipine bağlı olarak Basit – Orta – Karmaşık olarak
sınıflandırılır.
Actor
Classification
Type of Actor
Weight
Simple
External system that must interact with the
system using a well-defined API
1
Average
External system that must interact with the
system using standard communication protocols
(e.g. TCP/IP, FTP, HTTP, database)
2
Complex
Human actor using a GUI application interface
3
UAW = (Total No. of Simple actors x 1) + (Total No. Average actors x 2)
+ (Total No. Complex actors x 3)
Technical Complexity Factor (TCF)
• TCF sistemin teknik değerlendirmesinde kullanılmak üzere
ürünün boyut tahmini üzerine işlemler yapılarak hesaplanır.
• Alakasız(0) ile Gereklilik(5) derecesi arasında 13 teknik etmen
ile ağırlıklandırılır ve teknik faktör(TF) denilen ara toplam elde
edilir. TCF hesaplanan TF değeri kullanılarak elde edilir.
TCF = 0.6 + (TF/100)
Technical Complexity Factor (TCF)
Factor
Description
Weight
T1
Distributed system
2.0
T2
Response
time/performance
objectives
1.0
T3
End-user efficiency
1.0
T4
Internal processing
complexity
1.0
T5
Code reusability
1.0
T6
Easy to install
0.5
T7
Easy to use
0.5
T8
Portability to other
platforms
2.0
T9
System maintenance
1.0
T10
Concurrent/parallel
processing
1.0
T11
Security features
1.0
T12
Access for third parties
1.0
T13
End user training
1.0
Environmental Complexity Factor (ECF)
• ECF sistemin çevresel değerlendirmesinin hesaplanmasında
kullanılan parametredir.
• Tecrübesiz(0) ve Uzman(5) aralığın 8 adet çevresel etmen
değerlendirilir ve çevre faktörü (EF) elde edilir. ECF elde edilen
bu EF değeri ile hesaplanır.
ECF = 1.4 + (-0.03 x EF)
Environmental Complexity Factor (ECF)
Factor
Description
Weight
E1
Familiarity with development
process used
1.5
E2
Application experience
0.5
E3
Object-oriented experience of
team
1.0
E4
Lead analyst capability
0.5
E5
Motivation of the team
1.0
E6
Stability of requirements
2.0
E7
Part-time staff
-1.0
E8
Difficult programming language
-1.0
UCP
• UCP değeri:
• Proje büyüklüğü değerleri:
• Unadjusted Use Case Weight (UUCW)
• Unadjusted Actor Weight (UAW)
• Teknik etmenler değeri
• Technical Complexity Factor (TCF)
• Çevresel etmenler değeri
• Environmental Complexity Factor (ECF)
kullanımı ile hesaplanır.
UCP = (UUCW + UAW) x TCF x ECF
EXTENDED UCP (e-UCP)
• Use case diyagramlarını tüm yönleriyle inceler.
•
•
•
•
•
•
Aktörler
Use caseler
Aktörler arasındaki iş birlikleri ve use case’leri
Aktörler arasındaki ilişkileri
Use case’ler arasındaki ilişkileri
Use case’lerin detaylı akışı (UC Narrative)
Use Case Narrative
• E-UCP metodu UCP’deki TCF and EF hesaplamalarını aynen
kullanır.
• Getirdiği yenilik ise UCP’deki boyut büyüklüğü hesaplamaları
olan UUCW, UAW adımlarını (unadjusted hesap adımları)
iyileştirmektedir ve bu değişiklik ile daha gerçekçi bir maliyet
tahmini yapılabileceğini öngörür.
E-UCP Use Case Ağırlıklandırma
• Use case’ler kullanım ve bağlılık derecesine göre basitten
karmaşığa göre sınıflandırılır ve ağırlıklandırma bu şekilde
gerçekleştirilir.
E-UCP Aktör Ağırlıklandırma
• Aktörler kullanım ve bağlılık derecesine göre çok basitten çok
karmaşığa göre sınıflandırılır ve ağırlıklandırma bu şekilde
gerçekleştirilir.
E-UCP Use Case Narrative Ağırlıklandırma
• Use Case Narrative hesaplamasında ise use case’lerin
kullanım, gereksinim, amaç ve hedef öykülendirmeleri çıkarılır
ve ağırlıklandırma bu adımlar üzerinden gerçekleştirilir..
E-UCP
• UUCP ağırlıklandırılmış use case, aktör ve use case narrative
değerlerin toplamıdır ve E-UCP hesaplamasındaki temel
değişkeni belirler. E-UCP daha sonra UUCP, TCF ve EF
değerlerinin çarpımı ile bulunur.
E-UCP = UUCP * TCF * EF
• E-UCP hesabı sonucu bulunan değer yazılımın geliştirilmesi
sürecindeki gerekli use case sayısını bulmaktadır. Gerçekçi bir
adam/saat hesabı için ise bu sayı Karner‘in* önerisiyle E-UCP
değeri 20 ile çarpılır. (Karner testlerinde bu değeri bir use
case’in gerçeklenmesi için gereken ortalama adam/saat değeri
olarak gözlemlemiştir)
*Karner, G. Metrics for Objectory. Diploma thesis, University of Linköping, Sweden. No. LiTHIDA- Ex-9344:21.
Sonuç
• Ürün maliyet tahmini proje planlamasının en temel ve belki de
sonuca direkt etki konusunda en önemli yapıtaşlarından biridir. Fakat
ne yazık ki yazılım projeleri zaman planına ve bütçe planına uymama
yönünde kötü ün salmış projelerdir.
• Bunun temel nedeni gereken iş gücünü baştan yanlış tahmin
etmektir.
• COCOMO, FP gibi prosedürel düzlemde yapılan proje maliyet analizi
yeni nesil OOP bazlı projelerde gerçekçi maliyet tahmini yapılmasını
zorlaştırmaktadır.
• UCP bu eksikliği giderme odaklı olarak ortaya konmuştur ve bu
çalışmada ayrıcaUCP’nin nasıl iyileştirebileceği üzerinde
durulmuştur.
• E-UCP ile günümüz hızlı gelişen teknoloji dünyasında ürün ve maliyet
tahmini arasında bir köprü oluşturulmuştur. Elbette ki bütün bu
proje değerlendirme-derecelendirme süreçlerinin temel hedefi
gerçekçi bir maliyet tahmin analizi ile başarılı proje sayısında gözle
görülür bir artış ortaya koymaktır ve E-UCP OOP için sayılabilir
maliyet tahmin modeli olduğu için gerçekçi bir yöntemdir.
Kaynakça
• Alwidian, J.; Hadi, W., "Enhancing the results of UCP in cost estimation using new external
environmental factors," Information Technology and e-Services (ICITeS), 2012 International
Conference on , vol., no., pp.1,11, 24-26 March 2012.
• Periyasamy, K.; Ghode, A., "Cost Estimation Using Extended Use Case Point (e-UCP)
Model," Computational Intelligence and Software Engineering, 2009. CiSE 2009. International
Conference on , vol., no., pp.1,5, 11-13 Dec. 2009.
• Wang Fan; Yang Xiaohu; Zhu Xiaochun; Chen Lu, "Extended Use Case Points Method for Software
Cost Estimation," Computational Intelligence and Software Engineering, 2009. CiSE 2009.
International Conference on , vol., no., pp.1,5, 11-13 Dec. 2009.
• Zheng-Wei Huang, "Cost Estimation of Software Project Development by Using Case-Based
Reasoning Technology with Clustering Index Mechanism," Innovative Computing, Information and
Control (ICICIC), 2009 Fourth International Conference on , vol., no., pp.1049,1052, 7-9 Dec. 2009.
• Keung, J., "Software Development Cost Estimation Using Analogy: A Review," Software
Engineering Conference, 2009. ASWEC '09. Australian , vol., no., pp.327,336 14 - 17 April 2009.
• Hamdan, K.; El Khatib, H.; Shuaib, K., "Practical software project total cost estimation methods,"
Multimedia Computing and Information Technology (MCIT), 2010 International Conference on ,
vol., no., pp.5,8, 2-4 March 2010.
• Al Khalidi, N.; Saifan, A.A.; Alsmadi, I.M., "Selecting a standard set of attributes for cost estimation
of software projects," Computer, Information and Telecommunication Systems (CITS), 2012
International Conference on , vol., no., pp.1,5, 14-16 May 2012.