Java iş uygulamaları için yazılım işlevsel büyüklüğünün işletim izlerinden ölçülmesi
Measuring functional size of java business applications from execution traces
Yazar: MUHAMMET ALİ SAĞ
Danışman: YRD. DOÇ. DR. AYÇA TARHAN
Hacettepe Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2014
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Yazılım büyüklüğünün ölçülmesi, geliştirme sürecinin tüm evrelerinde, artan yazılım büyüklükleri sebebiyle giderek karmaşıklaşan proje yönetim süreçleri için büyük önem taşımaktadır. Manuel olarak gerçekleştirilen büyüklük ölçme işlemlerinde ölçüm yapan uzmanın bireysel etkisi ölçümlerde farklı sonuçlara yol açabilmektedir. Diğer yandan ölçümlerin gerektirdiği maliyet ve zaman gibi problemlerin yanı sıra ölçmeye girdi olabilecek dokümantasyon eksikliği göz önüne alındığında, ölçme işleminin otomatikleştirilmesi konusu ön plana çıkmıştır.
Çalışma kapsamında; COSMIC işlevsel büyüklük yöntemi kuralları çerçevesinde, Java iş uygulamalarının işlevsel süreçlerinin tespiti ve yazılım işlevsel büyüklüğünün otomatik olarak hesaplanması hedeflenmiştir. Yöntem işlevsel büyüklüğü, çalışma zamanında yapılan dinamik analiz yöntemiyle yazılımdan elde edilecek UML Dizge Diyagramları üzerinden hesaplamaktadır. Dinamik analiz için bağlam yönelimli programlama yönteminin Java platformundaki gerçekleştirimi olan AspectJ kullanılmaktadır. Yöntem, yazılım kodunda herhangi bir değişiklik gerektirmeden uygulanabilmektedir. Büyüklüğü hesaplanacak yazılımın işlevsel süreçleri arayüzden tetiklenen olaylar aracılığıyla tespit edilmektedir. Tetiklenen olayların işletim izleri AspectJ ile metin biçeminde dizge diyagramlarına dönüştürülmektedir. Daha sonra bu dizge diyagramları üzerinden veri hareketleri tespit edilerek COSMIC işlevsel büyüklük hesaplanmaktadır. 
Önerilen yöntemi desteklemek için 'COSMIC Solver' adlı bir prototip araç geliştirilmiştir. Hedefler çerçevesinde yöntemin işe yararlılığı örnek bir ön uygulama ve bir durum çalışması üzerinden doğrulanmıştır. Durum çalışmasında çerçevesi prototipe uygun olarak seçilen Java uygulamasının işlevsel büyüklüğü manuel olarak ve önerilen yöntem/araç kullanarak ölçülmüş ve elde edilen sonuçlar değerlendirilmiştir. Ölçümlerde elde edilen sonuçların birbirine yakınsadığı ve hesaplamada otomasyonla tezde hedeflenen oranın (%80+) üstünde netlik elde edilebildiği görülmüştür. Ayrıca otomatikleştirmenin doğal bir sonucu olarak zaman maliyetinde büyük kazanç (1/10 oranında) sağlanabildiği gözlemlenmiştir.

Abstract:
During all phases of software development, software size measurement has great importance for project management processes that are gradually becoming more complex because of growing sizes of software. Due to individual effect of measurement specialist, manually operated size measurements might lead to different results in measured values. On the other hand, considering the cost and time problems and the lack of documentation to input to size measurement, the issues of automatizing process of measurement came to the front. 
In this study, it is aimed to automatically compute software functional size within the scope of COSMIC functional size methodology in case of detecting functional processes and measuring the size of Java business applications. The method measures functional size using UML Sequence Diagrams that are produced from software with dynamic analysis method at runtime. For dynamic analysis, AspectJ as an implementation of aspect oriented programming methodology on Java platform is being used. The method could be applied without any changes in software code. Functional processes are detected by interactions that are produced by using graphical user interfaces of the software. With the help of AspectJ, execution traces are converted to sequence diagrams which are in text format. Then, using that sequence diagrams, the COSMIC functional size is measured by using data movements. 
In order to support proposed method, a prototype tool called ' COSMIC Solver', was developed. Considering the goals, the proposed method's usefulness was tested with an example application and a case study. In the case study, in addition to using manual measurement, proposed method/tool was used to measure the size of a Java application that is chosen from a public library as conformant to the prototype, and results are evaluated. It is observed that the results of measurements are converging to each other and that the accuracy of the value calculated by the prototype exceeds the targeted value in this study (80%+). Moreover, it is observed that a natural result of automatizing is a great time saving which is about 10 times.