Yazılım ürün hattındaki modüllerin özellik ağacı analizi ile yeniden kullanılabilirliğinin arttırılması: OSGi çerçeveli radar kullanıcı arayüzü örneği
Improving reusability of modules in software product line by feature tree analysis: The case of an OSGi-framed radar user interface
Yazar: EZGİ CANKURTARAN
Danışman: DR. ÖĞR. ÜYESİ AYÇA TARHAN
Hacettepe Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Derece: Yüksek Lisans, 2018
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Yazılımı yeniden kullanma, kısalttığı geliştirme zamanı ile maliyeti düşürmesi ve yazılım kalitesinde artış sağlaması ile yazılım geliştirmede önemli bir  pratik olarak görülmektedir. Yeniden kullanım birçok yazılım geliştirme yaklaşımında uygulansa da Bileşen Tabanlı Yazılım Geliştirme ve Yazılım Ürün Hattı yaklaşımının temelini oluşturmaktadır. Literatürde yeniden kullanılabilirliği değerlendirmek için farklı yöntem ve metrikler sunulmuştur. Bu tez çalışmasında, yazılım geliştirme için servis platformu sağlayan OSGi çerçevesi kullanılarak geliştirilmiş ve Yazılım Ürün Hattı yaklaşımına dayalı mimarisi olan bir radar kullanıcı arayüzü yazılımının, yeniden kullanılabilirliğinin arttırılması hedeflenmiştir. Çalışmada, bileşen tabanlı geliştirmede ve ürün hattı geliştirmede yeniden kullanılabilirliği ölçmek için yapılmış çalışmalar, sistematik yöntemle araştırılmıştır. Araştırma sonucunda yeniden kullanılabilirliği ölçmek için en çok kullanılan yazılım faktörleri ve bu faktörleri sayısallaştıran metrikler belirlenmiştir. Belirlenen metriklerle edinilen ölçüm sonuçlarına göre, yazılım Özellik Ağacı metoduna göre yeniden yapılandırılmıştır. Tez çalışmasında önerilen metot, Java dilinde geliştirilmiş dört kullanıcı arayüzü yazılımının yeniden kullanılabilirliğinin arttırılması için uygulanmıştır. Yapılandırma sonrasında ölçümü alınan LCOM, CC, WMC ve ACD (Ortalama Çevrimsel Bağımlılık)  metrik değerlerinin her proje için düştüğü görülmüştür. Yapılandırma öncesi ve sonrasında ölçülen Ortalama Çevrimsel Bağımlılık metriğinin değerindeki değişimin anlamlılığını değerlendirmek için istatistiksel anlamlılık analizi uygulanmıştır. Elde edilen sonuçlara göre uygulanan metodun Proje-1, Proje-2, Proje-4 için anlamlı Proje-3 için ise anlamlı olmadığı sonucuna ulaşılmıştır.

Abstract:
Software reuse is an important practice in software development because of its potential to reduce costs by shortening development time and increasing software quality. Although software reuse is applied in different development methodologies, it is the main concept in Component Based Software Development and Software Product Line Development approaches. The academia has proposed different methods and metrics to analyze software reusability. This study aims at improving the reusability of a radar user interface software, which has an architecture based on a software product line approach and service based platform for modular software, namely the OSGi Framework. Studies that measure reusability of OSGi and product line based software have been searched systematically. According to the results of systematic research study, software reusability factors and software reusability metrics are determined.  According to software reusability measurement results, software is refactored based on Feature Tree method. The method, which is proposed in this study, has been used to refactor for four radar user interface software that have been developed using Java to improve reusability. The method has been used to refactor for four radar user interface software that have been developed using Java to improve reusability. After refactoring, it's observed that LCOM, CC, WMC and ACD metrics were dropped down. Statistical significance analysis is used to evaluate change of significance of ACD metrics that were measured before refactoring and after refactoring. Accordingt to results, it's observed that method proposed is significance for Project-1, Project-2 and Project-4 while it's insignificant for Project-3.