=Paper= {{Paper |id=Vol-1980/UYMS17_paper_52 |storemode=property |title=OSGi Cercevesinde ve Urun Hatti Yaklasimi ile Gelistirilmis Bir Radar Kullanici Arayuzu Yaziliminin Ozellik Agaci Ile Yeniden Kullanilabilirliginin Arttirilmasi (Improving the Reusability of an OSGi and Product Line Approach Based Radar User Interface Software by Feature Tree Method) |pdfUrl=https://ceur-ws.org/Vol-1980/UYMS17_paper_52.pdf |volume=Vol-1980 |authors=Ezgi Cankurtaran,Evren Cilden,Ayca Tarhan |dblpUrl=https://dblp.org/rec/conf/uyms/CankurtaranCT17 }} ==OSGi Cercevesinde ve Urun Hatti Yaklasimi ile Gelistirilmis Bir Radar Kullanici Arayuzu Yaziliminin Ozellik Agaci Ile Yeniden Kullanilabilirliginin Arttirilmasi (Improving the Reusability of an OSGi and Product Line Approach Based Radar User Interface Software by Feature Tree Method)== https://ceur-ws.org/Vol-1980/UYMS17_paper_52.pdf
 OSGi Çerçevesinde ve Ürün Hattı Yaklaşımı ile Gelişti-
 rilmiş Bir Radar Kullanıcı Arayüzü Yazılımının Özellik
    Ağacı İle Yeniden Kullanılabilirliğinin Arttırılması
                                      1                 2                 3
                   Ezgi Cankurtaran , Evren Çilden , Ayça Tarhan
          1,3 Bilgisayar Mühendisliği Bölümü, Hacettepe Üniversitesi, Ankara, Türkiye
                {ezgicankurtaran,atarhan}@hacettepe.edu.tr
                                      1,2 Aselsan, REHİS
                    {ecankurtaran,ecilden}@aselsan.com.tr

Özet. Yazılım kalitesini artırma, süreç riskini düşürme ve kaynakları verimli kullanma
ihtiyaçları, yazılım bileşenlerinin veya yazılım ürün hatlarının yeniden kullanımını be-
raberinde getirmektedir. Yeniden kullanım birçok yazılım geliştirme yaklaşımında uy-
gulansa da Yazılım Ürün Hattı Geliştirme yaklaşımının temelini oluşturmaktadır. Lite-
ratürde yeniden kullanılabilirliği değerlendirmek için farklı yöntem ve metrikler sunul-
muştur. Daha önce yaptığımız sistematik araştırma sonuçlarına göre, bileşen tabanlı ve
ürün hattı yaklaşımları ile geliştirilen yazılımlarda, yeniden kullanılabilirliği ölçmek için en
çok kullanılan yazılım faktörünün bağlaşım (İng. Coupling) olduğu görülmüştü. Bu
bildiride, modüler 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.
Yapılan eylem araştırmasında (İng. Action Research) bağlaşım faktörü giriş yelpazesi (İng.
Fan-in) ve çıkış yelpazesi (İng. Fan-out) metrikleri ile sayısallaştırılmış ve yazılımın
yeniden kullanılabilirliği bileşen seviyesinde (İng. Bundle), bağlaşım faktörüne göre
değerlendirilmiştir. Eylem araştırması üç araştırma sorusu ile adreslenmiştir. İlk araştırma
sorusu kapsamında, mevcut yazılımın bağlaşımı ölçülmüştür. İkinci araştırma sorusunda
ise özellik ağacı (İng. Feature Tree) ile bileşenlerdeki ortak ve projeye özel yetenekler
çıkarılarak yazılım yeniden yapılandırıldıktan sonra yazılımın bağlaşımı ölçülmüştür.
Araştırma sorusu 1 ve 2’nin sonuçları karşılaştırıldığında, yeniden yapılandırma
sonrasında, yazılımın yeniden kullanılabilirliğinin arttığı görülmüştür.

Anahtar Kelimeler: Yeniden Kullanılabilirlik, Yazılım Metrikleri, Bağlaşım, Bileşen
Tabanlı Yazılımlar, Ürün Hattı, Özellik Ağacı, OSGi, Giriş Yelpazesi, Çıkış Yelpazesis




                                                                                                   529
 Improving the Reusability of an OSGi and Product Line
   Approach Based Radar User Interface Software by
                 Feature Tree Method
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 paper presents studies to measure software reusability in
component based development and product line development by applying a systematic
analysis of related literature. The reuse of software components and soft-ware product lines
is required for improving the quality of software, lowering the risks of process, and for the
efficient use of resources. Even though many software development approaches have been
applying reuse, software product line approach is based on reusability. Different types of
methods and metrics have been proposed in the literature
for evaluating the level of reusability. The results of our previous systematic research
study showed that coupling is the mostly used software factor for measuring the reusa-
bility of the software that has been developed by using component oriented and soft-
ware product line approaches. This study aims at improving the reusability of a radar
user interface software, which has an architecture based on a software product line ap-
proach, and which has been developed by using a service based platform for modular
software, namely the OSGi Framework. We have performed action research to
evaluate the reusability of software at component level and according to the coupling
measures based on Fan-in and Fan-out metrics. Action research has mapped three
research questions. In the first research question, we have measured the coupling of
the original software. In the second research question, we have measured the coupling
of the soft-ware after the refactoring based on the common and project specific
features in the Feature Tree. The comparison of the results of research question 1 and
2, showed an improvement in the reusability of the software after the refactoring.

Keywords: Reusability, Software Metrics, Coupling, Component Based Software,
Software Product Line, Feature Tree, OSGi, Fan-In, Fan-Out




                                                                                                530
1      Giriş

Yazılım Mühendisliği araştırma çalışmaları, yazılım kalitesinin gelişmesine, geliştirme
sürecinin riskinin azalıp verimliliğinin artmasına ve zaman yönetiminin desteklenme-
sine odaklanmaktadır. Var olan yazılımın yeniden kullanımı geliştirme maliyetini dü-
şürürken güvenilir yazılım üretilmesini sağlamaktadır [1].
   Literatürde yazılımın yeniden kullanımı ve yeniden kullanılabilirliği farklı kavram-
lara karşılık gelmektedir. Yeniden kullanım, Frakes ve Succi’ye göre “var olan yazılım
ve yazılım ürünlerinin yeni yazılım geliştirmede direkt kullanımı” olarak
tanımlanırken aynı araştırmacılara göre yeniden kullanılabilirlik yeniden kullanım
olasılığını gösteren yazılım özelliği olarak tanımlanmaktadır [2].
   Yazılımların yeniden kullanılabilirliğini sağlayabilmek ve karmaşıklığını yönetebilmek
için genel olarak uygulanan yöntem, yazılımı işlevsel olarak sorumlulukları belirlenmiş
birimlere ayrıştırmaktadır [3]. Hızlı ve sürekli teslimatı gerektiren yazılım ihtiyaçları,
yazılım bileşenlerinin ve ürün hattı yaklaşımlarının kullanımlarını beraberinde getirmiştir.
Yeniden kullanım tüm yazılım geliştirme yaklaşımlarında esas olsa bile bileşen tabanlı
yazılım geliştirmenin (İng. Component Based Software Development - CBSD) ve ürün
hattı yaklaşımının (İng. Software Product Line) ana kavramıdır. Bileşen tabanlı yazılım
geliştirme, yeniden kullanılabilir bileşenler kullanarak yazılım tasarlamanın altını
çizmektedir. Yazılım ürün hattı ise belirli bir görevin ihtiyacını karşılamak üzere, ortak
yetenek kümelerinden oluşan sistemlerin kullanımını esas almaktadır [4].
   Bu çalışmanın amacı, bileşen tabanlı ve ürün hattı yaklaşımına dayalı olan, radar
uygulama alanında geliştirilen kullanıcı arayüzü yazılımındaki bileşenlerin yeniden
kullanılabilirliğini arttırmaktır. Ürün hattımızdaki bileşenlerin yeniden kullanılabilirli-
ğini değerlendirip arttırmaya yönelik çalışma yapılmıştır. Yeniden kullanımı söz ko-
nusu olan bileşenlerden ne kadar verim elde edildiğini saptamak, yazılım tasarımına
karar destek sağlayacak gerçekçi ölçüm değerleriyle geleceğe yönelik tahminleme
yapmak ve ortak mimaride yeniden kullanımı arttırmaya yönelik girdi sağlamak
hedeflenmiştir.
   Yazılımın geliştirilmesinde, modülerlik için servis platformu sağlayan OSGi çerçe-
vesi ve radar alanına özel yetenek setlerini bir araya getiren yazılım ürün hattı
yaklaşımı kullanılmıştır. Yapılan eylem araştırmasında bağlaşım faktörü giriş
yelpazesi (İng. Fan-in) ve çıkış yelpazesi (İng. Fan-out) metrikleri ile sayısallaştırılmış
ve yazılımın yeni-den kullanılabilirliği bileşen seviyesinde bağlaşım faktörüne göre
değerlendirilmiştir. Eylem araştırmasını adresleyen ilk araştırma sorusu kapsamında,
mevcut yazılımın bağlaşımı ölçülmüştür. İkinci araştırma sorusu kapsamında ise
özellik ağacı (İng. Feature Tree) ile bileşenlerdeki ortak ve projeye özel yetenekler
çıkarılarak yazılım yeni-den yapılandırıldıktan sonra yazılımın bağlaşımı ölçülmüştür.
   Bildiri’nin 2. Bölümü’nde; OSGi, yazılım ürün hattı gibi temel kavramlar ve yeniden
kullanılabilirliği arttırmaya ilişkin literatür çalışmaları aktarılmakta, 3. Bölümü’nde ça-
lışmada uygulanan metot ve adımları açıklanmakta, 4. Bölümü’nde yapılan eylem araş-
tırması ve eylem araştırmasını adresleyen 3 araştırma sorusunun sonucunun karşılaştı-
rılması anlatılmakta, 5. Bölümü’nde ise çalışmanın sonuçlarına yer verilmektedir.


2      İlişkili Kavramlar ve Çalışmalar

2.1. OSGi Çerçevesi

Yazılımda Java için bir bileşen sistemi olan Equinox tabanlı OSGi teknolojisinden
faydalanılmıştır. OSGi çerçeve yaklaşımı ile Java’daki iş bölümü, soyutlama, bakım,
onarım ve yeniden kullanılabilirlik gibi problemlere çözüm getirilmiştir. Modülün
mantıksal amaca bağlı kalması ve bileşenin etkileşimde olduğu diğer bileşenlerin
gerçekleştirim detaylarına bağlı olmaması sağlanmaktadır. OSGi çerçevesi
kullanılarak geliştirilen yazılımlar, bağımlılıkları gösteren meta-data (MANIFEST-
MF) bilgisine, bileşenler arası bilgi saklama mekanizmasına doğrudan sahip
olmaktadır. OSGi çerçevesi, bileşen yapısının oluşturulması ve bu bileşenlerin çalışma
zamanında birbiri ile etkileşimde bulunabilmesi için yöntem sunmaktadır. Java’da




                                                                                               531
birçok sorunun kaynağı global ve tek olan classpath’e çözüm olarak OSGi her bileşen
için ayrı classpath sunmaktadır. Paylaşılan sınıflar için ise OSGi, paketlerin bileşenler
arasında nasıl paylaşılacağına dair dışardan alma (İng. import) ve dışarı aktarma
(İng.export) mekanizması kullanmaktadır [5].
    OSGi’de bileşen, demet (İng. Bundle) olarak da adlandırılmaktadır. Yığın bir jar
dosyası olup bu jar dosyasına dışardan alınan ve dışarıya aktarılan paketlere dair
bilgileri içeren meta-data dosyası da eklenerek bir yığın haline getirilmektedir. Jar
dosyaları olarak paketlenmiş yığınlar, OSGi’nin sağladığı servis arayüzleri aracılığı ile
birbirleri ile haberleşmektedir. OSGi çerçevesi kullanarak geliştirilen yığınlar, çalışma
zamanı (İng. Runtime) sırasında dinamik olarak keşfettikleri diğer yığınlar tarafından
sunulan servisleri kullanabilmektedir [5]
    OSGi’de her yığın ve paket versiyonlanabilmekte, yığınlar arasındaki kullanımlara
versiyonlara göre kısıtlamalar tanımlanabilmektedir. Sonuç olarak, OSGi teknolojisi
ile dinamik bir modül sistemi oluşturulmakta, Java’daki classpath, versiyonlama ve Jar
problemine çözüm getirilmektedir. OSGi teknolojisi, modülerliği arttırdığı için bağla-
şımı düşük ve yeniden kullanılabilirliği yüksek bileşenler geliştirilmesine yönelik bir
altyapı sağlamaktadır [5].

2.2. Ürün Hattı Yaklaşımı

Eylem araştırmasının yapıldığı radar kullanıcı arayüzü yazılımının geliştiriminde
faydalanılan bir diğer yaklaşım Yazılım Ürün Hattı’dır. Yazılım Ürün Hattı Mühendis-
liği (İng. Software Product Line Engineering) gerçeklenirken tüm ürün hattı için
değişken ve ortak olan yetenekler bir araya getirilerek yeniden kullanımın arttırılması
amaçlanmaktadır.
   Yazılım Ürün Hattı, “özgün bir pazarın özel ihtiyaçlarını karşılamak üzere, ortak
ve değişken yönetilebilir özellik gruplarını destekleyen yazılım yoğun sistemler”
olarak tanımlanmaktadır [6]. Şekil 1’de, yazılım ürün hattının döngüsel süreci
sunulmaktadır [6].
   Yazılım Ürün Hattı yaklaşımı, 1970’lerde Ürün Ailesi kavramı ile ortaya çıkmaya
başlamış 1990’larda ise tamamen tanımlanıp kullanıma geçirilmiş bir yeniden
kullanım yaklaşımıdır. Maliyeti ve proje geliştirim süresini düşürürken yazılım
kalitesini arttırmayı hedeflemektedir. Olgunlaşmış ve doğrulanmış yetenekler ile daha
kaliteli yazılımlar ortaya çıkarılmaktadır. Yaklaşım, yazılım geliştirme süreci boyunca
büyük ölçekli yeniden kullanıma dayanmaktadır [6].
   Yazılım ürün hattı yaklaşımı, yeniden kullanım için geliştirme ve yeniden kulla-
nımla geliştirme kavramları arasındaki farklılığı temel almaktadır. Yeniden kullanım
için yazılım geliştirme, Şekil 1’de üst kısımda akışı verilen Alan Mühendisliği payda-
şına karşılık gelmektedir. Alan mühendisliği ortak yeteneklerin farklı sistemlerde
yeniden kullanımı sürecini kapsamaktadır. Uygulama mühendisliği ise ürün hattında
yeniden kullanım ile yazılım geliştirme paydaşına karşılık gelmektedir. Değişken
yeteneklerin yönetimleri ve geliştirilmesi bu aşamada gerçekleşmektedir [6].
Geliştirilen yazılımlarda ortak varlıkların doğrudan ya da değiştirilerek kullanılması
söz konusu olduğu için yeniden kullanılabilirlik üst seviyeye çıkarılmaktadır [7].
   Özellik Ağacı, Yazılım Ürün Hattı yaklaşımının dayandırıldığı özellik modeli olup
nihai ürünün karakteristik özelliklerini göstermektedir. Model, hiyerarşik olarak sunul-
maktadır. Özellikler; zorunlu, opsiyonel, veyalanmış (İng. ORed) ya da harici veya-
lanmış (İng. XOR) olarak çeşitlenmektedirler. Çoğu özellik modeli, farklı özellik tipi-
lerinin kombinasyonları sonucunda oluşturulmaktadır [8].




                                                                                            532
                           Şekil 1. Yazılım Ürün Hattı Süreci [6]

   Radar ihtiyacına yönelik özel ihtiyaçları karşılamak üzere geliştirdiğimiz radar kul-
lanıcı arayüzü yazılımlarımızda, ortak ve yönetilen bir özellik grubunu destekleyen çe-
kirdek bir varlık kümesinin kullanımını esas alan ürün hattı yaklaşımı kullanılmıştır.
Radar uygulama alanında geliştirilen, operatörün radar ile etkileşimini ve kontrol
etme-sini sağlayan radar kullanıcı arayüzü yazılımları, radar sisteminden elde edilen
tespit ve takip verilerinin sunulmasını ve radarın kontrol edilmesini sağlamaktadır.
Gerçek zamanlı çalışan radar sisteminde, aynı anda farklı arayüzlere sahip olunması
bu yazılımların karmaşıklığını arttırmaktadır. ASELSAN Radar ürün ailesinde yer
alan farklı Radar sistemlerinin kullanıcı arayüzü yazılımlarının yeniden
kullanılabilirliği, yazılım geliştirme sürecinin kısaltılarak eforun düşürülmesi ve riskin
minimize edilmesi için önemli bir kalite gereksinimi olarak görülmektedir [3]. Şekil
1’de sunulan alan gereksinim mühendisliği sonucu Yapıtaşı, uygulama gereksinim
mühendisliği sonucu Projeye Özel olarak tanımlanan bileşenlerimiz geliştirilmiştir.

2.3. Yeniden Kullanılabilirlik Faktör ve Metrikleri

Yazılımların karmaşıklığı ve boyutu sebebi ile yazılımı işlevsel sorumluklara göre
bileşenlere ayırmak önem taşımaktadır. Önemli bir tasarım prensibi, bileşenlerin kendi
içinde yüksek uyumlu (İng. High Cohesion) kendi aralarında düşük bağlaşımlı (İng.
Low Coupling) olarak geliştirilmesi görülmektedir. Bileşenler arasındaki bağlaşımın
yüksek olması o birimin tek başına kullanımını zorlaştırmakta, yeniden
kullanılabilirlik faktörünü düşürmektedir [9,10].
   Yeniden kullanılabilirlik faktörleri için literatür taraması yapılırken eksiksiz ve ta-
rafsız bir makale havuzu oluşturmak için Sistematik Haritalama metodundan yararla-
nılmıştır [11]. Araştırma, sırası ile hedef, soru ve faktörlerin belirlenmesine dayalı ola-
rak yapılandırılmıştır [12]. Literatürde modüler seviyede yeniden kullanılabilirlik ile
yapılan çalışmalar seçilirken; araştırma sorusu, seçim kriterleri, veri çıkarma stratejisi
ve çalışmanın kalite değerlendirme kriterleri belirlenmiştir. Sistematik Haritalama ça-
lışmasında frekansı en yüksek olan faktörü ölçmek için metrik seçilmiştir. Seçilen
metrikler kullanılarak mevcut yazılımın ölçümü alınmıştır.
   “Bileşen-tabanlı ve ürün-hattı yazılım geliştirme yaklaşımlarında yeniden kullanıla-
bilirliği ölçmek için yapılan çalışmalarda, yeniden kullanılabilirliği etkileyen faktörler
nelerdir?” sorusundan yola çıkarak gerçekleştirilen haritalama çalışmasının sonucuna
göre, bileşen tabanlı yazılımlarda yeniden kullanılabilirliği en çok etkileyen ilk üç fak-
tör ile bunların çalışmalara göre dağılım frekansları Tablo 1’de sunulmuştur:

  Tablo 1. Faktörlerin Frekansı ve İlişkili Çalışmalar

                      Faktör                              Makale Sayısı
                      Bağlaşım (İng. Coupling)                17
                      Uyum (İng. Cohesion)                    11
                      Karmaşıklık (İng. Complexity)            7




                                                                                              533
   Yüksek seviyede (İng. High level) OSGi çerçevesindeki bileşenlerin yeniden kulla-
nılabilirliğini ölçmek için Bağlaşım (İng. Coupling) faktöründen faydalanılmıştır.
Bağlaşım faktörü literatürdeki genel geçer giriş yelpazesi (İng. Fan-in) ve çıkış
yelpazesi (İng. Fan-out) metrikleri ile sayısallaştırılmıştır [13, 14, 15].


3     Araştırmanın Amacı ve Yöntemi

Çalışmada uygulanan metodun süreç şeması Şekil 2’de verilmektedir. Yeniden kulla-
nılabilirliğin arttırılması motivasyonu ile eylem araştırması yapılmıştır. Eylem araştır-
masını adresleyen 3 araştırma sorusu geliştirilmiştir. Geliştirilen araştırma
sorularından ilki mevcut durumun yeniden kullanılabilirliğini, ikincisi yeniden
yapılandırılan kodun yeniden kullanılabilirliğini değerlendirmeyi amaçlamaktadır.
Üçüncü araştırma sorusunda ise ilk iki araştırma sorusunun sonuçlarını karşılaştırarak
metodun doğrulanmasını hedeflemektedir.
   OSGi alt yapısını kullanan projelerden ve bu projelerin ana-alt yetenek setlerinden
Özellik Ağacı oluşturulmuştur. Bu çalışmada, Yazılım Gereksinim Özelliği (İng.
Software Requirement Specification) dokümanından özelliklerin tanımlanıp çıkarıl-
ması süreci ile model oluşturulmuştur. Çıkarılan özellik ağacı, iki geliştirici tarafından
karşılıklı olarak gözden geçirilmiştir.
   Yetenek ve projeler eşleştirilmiştir. Özellik Ağacı modelinden, yapılandırılacak ye-
tenek ve pilot proje seçimi yapılmıştır. Kodu yapılandırmak için Parçala-Yönet (İng.
Divide and Conquer) metodundan faydalanılmıştır. Mevcut yazılım yapılandı-rıldıktan
sonra belirlenen metrik ölçüm değerleri alınmıştır. Yapılandırılmış ve yapı-
landırılmamış yazılımların ölçüm sonuçları karşılaştırılarak Özellik Ağacı ile yeniden
kullanılabilirliğin artıp artmadığına karar verilip metot doğrulanmıştır.




                                                                                             534
                                             Hedef- Soru- Faktörlerin
                                                  Belirlenmesi



                                                    Metriklerin
                                                    Belirlenmesi

                                                         Özellik Ağacının Yapılandırılması
                                                         - Projelern Belirlenmesi
                               Mevcut Yazılımın
                                                         - Proje Ana ve Alt Yeteneklerinin
                             Ölçümünün Alınması          Çıkarılması
                                                         - Yetenek ve Proje Eşlemesinin Yapılması
                                                         - Yapılandırmanın Yapılacağı Pilot Proje ve
                                                         Yeteneklerin Belirlenmesi



                                                           Özellik Ağacında Belirlenen Yeteneklerin
                                                                 Pilot Projede Yapılandırılması



                                                                        Yapılandırılmış Yazılımın
                                                                         Ölçümünün Alınması



                                                    Sonuçların
                                                  Karşılaştırılması



                                                   Yapılandırılmış
                                                     Yazılımın
                                                     Bağlaşımı
                                                   Mevcut Yazılım
                                                   Bağlaşımından
                              Hayır                 Daha Düşük                        Evet
                                                        mü?


                          Özellik Ağacı                                            Özellik Ağacı
                         Metodu Başarısız                                         Metodu Başarılı




                          Şekil 2. Uygulanan Metodun Süreç Şeması

   Eylem araştırmasını adreslemek için geliştirilen 3 araştırma sorusu Tablo 2 ‘de su-
nulmaktadır. 4.1., 4.2. ve 4.3. bu araştırma sorularına karşılık gelen yanıtların bulun-
ması hedeflenmiştir.

  Tablo 2. Eylem Araştırmasını adresleyen Araştırma Soruları
                                                  Araştırma Soruları
    Araştırma Sorusu 1        AS1: Mevcut yazılımın bağlaşım analizi sonucundaki giriş - çıkış
                              yelpaze metrik değeri nedir?
    Araştırma Sorusu 2        AS2: Özellik ağacına göre yeniden yapılandırılan yazılımın bağ-
                              laşım analizi sonucundaki giriş - çıkış yelpaze metrik değeri ne-
                              dir?
    Araştırma Sorusu 3        AS3: Karşılaştırılan araştırma sorusu 1 ve 2’nin sonucuna göre
                              yeniden kullanılabilirlik özelliği nasıl değişim gösterir?

   Ölçüm Java programlama dilini destekleyen statik kod analiz aracı olan
SonarGraph Explorer aracı ile çevrim dışı (İng. offline) olarak alınmıştır. Lisanssız
olan bu araç, bileşenler arasındaki bağımlılıkların görsel sunumunu sağlamaktadır.




                                                                                                       535
4      Eylem Araştırması

4.1. Araştırma Sorusu 1 – Mevcut Yazılım Bağlaşım Analizi

Eylem araştırmasını adresleyen araştırma sorusu 1 kapsamında , Tablo 2’deki
araştırma sorularından AS1’in yanıtlanması için mevcut yazılımın bağlaşım metrikleri
ölçülüp mevcut durumun analizinin yapılması hedeflenmiştir.
    SonarGraph aracı kullanılarak yazılımı oluşturan bileşenlerin bağlaşım değerlerine
bakılarak mevcut durum değerlendirmesi yapılmıştır. 5 Radar Kullanıcı Arayüzü Ya-
zılım projemiz için özellik ağacı çıkarılmıştır. 5 Radar Kullanıcı Arayüzü Yazılım
projemizden biri pilot proje olarak seçilmiştir. SonarGraph aracının sağladığı ya-
zılımın genel metrik değerleri, proje büyüklüğünün anlaşılması açısından Tablo 3’te
sunulmaktadır:

Tablo 3. Mevcut Projenin Genel Metrik Değerleri
                                                                   Büyüklük
             Toplam Satır Sayısı (İng. Total Lines of Code):      234.052
             Sınıf Sayısı (İng.Number of Class):                  1.468
             Java Paket Sayısı (İng. Number of Java Package):     240

   Ürün hattı yaklaşımı uygulanarak geliştirilen yazılımlarımızda, ortak kullanılan ye-
teneklerin oluşturduğu bileşenler YAPITAŞI olarak adlandırılmaktadır. YAPITAŞ’ları
ürün hattında, alan mühendisliğinin çıktısı olarak düşünülmüştür. Projeden projeye de-
ğişkenlik gösteren bileşenler ise uygulama mühendisliği adı altında geliştirilmiştir.
   Tablo 4’te PROJE1’deki bileşenlerin giriş ve çıkış yelpaze metrik değerlerini sun-
maktadır.

Tablo 4. PROJE1’deki Bileşenlerin Tipi ve Giriş Çıkış Yelpaze Metrik Değerleri
                                        Alan (A) /       Bileşenin Ba-     Bileşene Ba-
                                        Uygulama(U)      ğımlılık Kur-     ğımlılık Kuran
                Bileşen                 Mühendisliği     duğu Bileşen      Bileşen Sayısı
                                                         Sayısı (Çıkış     (Giriş Yelpa-
                                                         Yelpazesi)        zesi)
      ALARMVERICI                              U                    7              1
      ANAPENCERE                               A                    8              5
      ARAYUZDESTEK                             A                    2              7
      CITSUNUM                                 A                    8              1
      CRAMKKM                                  U                    6              2
      CRAMKKM Sim                              U                    4              1
      DESTEK                                 A+U                    0             25
      DESTEK2                                  U                    3              2
      DURUMMODEL                               A                    3              4
      ERISIMKONTROLCU                          A                    2              2
      EUA                                      U                    1              6




                                                                                            536
       EUG                                  U                    7             1
       HARITASUNUM                          A                    6             1
       KKSARAYUZ                            U                    5             2
       KKSARAYUZ Sim                        U                    4             1
       KONTROLMODEL                         A                    3             13
       OLAYVERIKUTUPHANESI                 A+U                   2             19
       OLAYYONETICI                        A+U                   2             1
       OLAYYONETICI ARAYUZ                 A+U                   1             19
       RADARKABUK                           U                    1             1
       RAPORMODEL                           A                    3             9
       RAPORSUNUM                           U                    8             9
       RSYARAYUZ                            U                    7             2
       RSYARAYUZ Sim                        U                    4             1
       SEMBOLOJI                            A                    4             1
       SKOPSUNUM                            A                    2             3
       SKOPSUNUM ARAYUZ                     A                    2             3
       YARDIM                               A                    3             2

    Tablo 4’te verilen “Bileşenin Bağımlılık Kurduğu Bileşen Sayısı” çıkış yelpazesi,
“Bileşene Bağımlılık Kuran Bileşen Sayısı” ise giriş yelpazesi metrik değerlerine kar-
şılık gelmektedir. Tabloda “Alan Uygulama Mühendisliği” sütununda “A+U” ile gös-
terilen bileşenler, yapılandırma yapılacak bileşen karşılaştırılmasında hariç tutulacak-
tır. Bu bileşenler, radar alanı dışında Elektronik Harp gibi başka alanlarda da kullanıl-
makta ve kesişim alanı olarak tanımlanmaktadır. “Alan Uygulama Mühendisliği” sü-
tununda sadece “A” veya “U” olan bileşenler ise radar alanına özgü olarak
geliştirilmiş olup, “A” ürün ailesi içinde yer alan 5 radar projesinde de ortak kullanımı
olan “U” tek bir projeye özgü olan bileşen olma özelliği taşımaktadır.
    Kesişim alanındaki bileşenler hariç tutulduğunda Tablo 4’deki sonuçlara göre giriş ve
çıkış yelpaze metrik değerleri en yüksek olan bileşen KONTROLMODEL bileşeni olarak
görülmektedir. Eylem araştırmasını adresleyen ilk araştırma sorusunun sonu-cunda mevcut
durum analizi yapılarak en yüksek bağlaşım değerli bileşen saptanmıştır.


4.2 Araştırma Sorusu 2- Yeniden Yapılandırılan Yazılımın Bağlaşım Analizi

Eylem araştırmasını adresleyen ikinci araştırma sorusu kapsamında ise özellik ağacı
(İng. Feature Tree) ile bileşenlerdeki ortak ve projeye özel yetenekler çıkarılarak yazı-
lım yeniden yapılandırıldıktan sonra yazılımın bağlaşımı ölçülmüştür. Yeniden yapı-
landırma ile yazılımın mimarisi değiştirilmiştir. Tablo 2’deki araştırma sorularından
AS2’nin yanıtına karşılık gelmektedir.
   Özellik ağacı, OSGi çerçevesinde geliştirilmiş ortak yapı taşlarından ve projeye
özel bileşenlerden ürün hattı yaklaşımı ile oluşturulmuş PROJE1, PROJE2, PROJE3,
PROJE4 ve PROJE5 projeleri için çıkarılmıştır. Tablo 5’te çıkarılan özellik ağacının
örnek bir kesiti sunulmaktadır. Yetenekler sütunu YGÖ (Yazılım Gereksinim Özellik-
leri - İng. SRS) dokümanı esas alınarak çıkarılmıştır. Özellik ağacı, 46 ana yetenekten,




                                                                                            537
188 alt yetenekten oluşturulmuştur. Projelerin altındaki yetenek hücreleri her bir radar
kullanıcı ara yü z ü y a z ı l ı m ı için YGÖ dokümanı temel alınarak doldurulmuştur.
‘RADAR DURUMU SUNUM YETENEKLERİ’’, yazılımlardaki bağlantı durumu su-
num ve sıcaklık sunum yeteneklerini içeren kök yetenek olarak tabloya eklenmiştir.
Bağlantı ve sıcaklık sunum alt yetenekleri için projelerin altındaki sütun hücrelerinin
işaretlenmiş olması her iki yeteneğinde 5 proje tarafından kullanıldığını
belirtmektedir. Metro Raporu Yeteneği ise sadece PROJE1’de mevcut bir yetenek
olarak tanımlan-maktadır.

Tablo 5. Yetenek Ağacından Örnek Bir Kesit

   Yetenekler      Açıklama         PROJE      PROJE     PROJE PROJE         PROJE
                                      1           2         3     4             5
      RADAR
 DURUMU
 YETENEK
 LERİ
 Bağlantı       Bağlantılar lis-       x           x         x        x          x
 Durum Su- tesi, devam eden
 num      Yete- ve henüz başla-
 neği           mamış olan bağ-
                lantılar
 Sıcaklık Su- Cihaz birim sı-          x           x         x        x          x
 num      Yete- caklıklarının de-
 neği           rece olarak su-
                numu
 MERMİ
 RAPORU
 YETENEĞİ
 Mermi     Ra-                         x
 porunun
 Skoplarda
 Sunulması
 Mermi     Ra-                         x
 porunun Ha-
 ritada    Su-
 nulması
 METRO
 RAPORU
 YETENEĞİ
 Metro     Ra-                         x
 poru Sunum
 Metro     Ra-                         x
 poru’nun
 KKS’den
 Alınması

   Tablo 6’da sunulan “MERMİ RAPORU YETENEĞİ” ve “METRO RAPORU
YETENEĞİ” sadece pilot proje olarak seçilen PROJE1 KGÜ YKB’de (Kontrol Gö-
rüntü Ünitesi- Yazılım Konfigürasyon Birimi) kullanıp diğer projelerde kullanılmayan




                                                                                           538
ancak alan mühendisliği yaklaşımı ile geliştirilen KONTROLMODEL bileşeninde bu-
lunan yeteneklerdir. Bu yetenekler, yapılandırma ile sadece PROJE1 projesine özel
yetenekler olacak şekilde ayrı bileşenler haline getirilmiştir. Yani
“METRORAPORU” ve “MERMIRAPORU” bileşenlerine ayrılmışlardır.

Tablo 6. Yapılandırma Sonrasında PROJE1’deki Bileşenlerin Tipi ve Giriş Çıkış
Yelpaze Metrik Değerleri
    Bileşen                            Alan (A) /          Bileşenin          Bileşene
                                     Uygulama(U)       Bağımlılık Kur- Bağımlılık Ku-
                                     Mühendisliği        duğuBileşen       ran Bileşen Sa-
                                                         Sayısı(Çıkış      yısı (Giriş Yel-
                                                          Yelpazesi)            pazesi)
    KONTROLMODEL                           A                     3                11
    MERMIRAPORU                            U                     1                 1
    METRORAPORU                            U                     1                 1


4.3. Araştırma Sorusu 3 – Yeniden Kullanılabilirlik Bağlaşım Analizi
        Sonuçlarının Karşılaştırılması
Eylem araştırmasını adresleyen üçüncü araştırma sorusu Tablo 2’deki AS3’ün yanıtına
karşılık gelmektedir. Araştırma sorusu 1 ve 2’nin sonuçlarındaki giriş ve çıkış yelpaze
metrik değerlerine bakılarak yapılandırma öncesi ve sonrası yazılımın yeniden kullanı-
labilirliği bağlaşım analizi ile karşılaştırılmıştır. Karşılaştırma sonucunda, yapılan-
dırma sonrasındaki bağlaşım faktörünün düştüğü buna bağlı olarak yeniden kullanıla-
bilirlik özelliğinin arttığı görülmüştür.

5      Sonuçlar

Bu çalışma, modüler 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 ra-
dar kullanıcı arayüzü yazılımının, yeniden kullanılabilirliğinin arttırılması hedeflen-
miştir. Yeniden kullanılabilirliği arttırmaya yönelik olarak Özellik Ağacı modelinden
faydalanılmıştır.
Yapılan eylem araştırma çalışmasında bağlaşım faktörü giriş yelpazesi ve çıkış yelpa-
zesi metrikleri ile sayısallaştırılmış ve yazılımın yeniden kullanılabilirliği bileşen sevi-
yesinde, bağlaşım faktörüne göre değerlendirilmiştir. Eylem araştırmasını adresleyen
ilk araştırma sorusu kapsamında, mevcut yazılımın bağlaşımı ölçülmüştür. İkinci araş-
tırma sorusu kapsamında ise özellik ağacı ile bileşenlerdeki ortak ve projeye özel yete-
nekler çıkarılarak yazılım yeniden yapılandırıldıktan sonra yazılımın bağlaşımı ölçül-
müştür.
   Analiz edilen özellik ağacına göre yapılan yapılandırma sonucunda, yazılımın çıkış
yelpazesinde azalma olmuştur. PROJE1’in KONTROLMODE YAZIT bileşeninden
dışarıya çıkarılıp ayrı bir bileşen haline getirilen MERMIRAPORU ve
METRORAPORU bileşenleri PROJE1’e yani projeye özel hale getirilmiştir. Alan mü-
hendisliği uygulanarak geliştirilen KONTROLMODEL’de bulunan MERMIRAPORU




                                                                                               539
ve METRORAPORU bileşenleri yapılandırma sonrası değişen mimaride uygulama
mühendisliğinin ihtiyacını karşılayacak şekilde projeye özel hale getirilmiştir. Böylece
bu yetenekler, PROJE2, PROJE3, PROJE4 ve PROJE5 gibi bu yeteneği kullanmayan
yazılımların kaynak kodlarından çıkarılmıştır. KONTROLMODEL’e olan bağımlılık
düşmüştür. Eylem araştırmaları için türetilen araştırma 1 ve 2’nin sonuçları karşılaştı-
rıldığında, Özellik Ağacı’na göre gerçekleştirilen yeniden yapılandırma sonrasında,
yazılımın yeniden kullanılabilirliğinin arttığı görülmüştür.
    Gelecek çalışma olarak yapılandırmanın tüm yetenekler için tamamlanıp bağlaşım
analizinin yapılması planlanmaktadır.


Teşekkür
Değerli yorumları ile çalışmaya katkıda bulunan Sn. Baki Demirel’e
teşekkürlerimizi sunarız.


Referanslar
1. Martin R.C.: Clean Code – A Handbook of Agile Software Craftmanship, Pearson Education, (2009).
2. Frakes W., Succi G.: An Industrial Study of Reuse, Quality and Productivity, Journal of
Systems and Software, Vol:57, pp:99-106, (2001).
3. Cilden E., Bayraktar G., Işık G., Demirel B.: OSGİ Çerçevesinde Bir Olay Güdümlü
Mimari Uygulaması, UYMS’13, (2013).
4. Cankurtaran E.,Cilden E., Tarhan A.: Bileşen Tabanlı ve Ürün Hattı Yazılım Geliştirme

5. Bartlett N., OSGi In Practice, Njbartlett, (2009).
6. Liden F.J., Schmid K., Rommes E.: Software Product Lines in Action: The Best Industrial
Practice in Product Line Engineering, Springer –Verlag, (2007).
7. Jones L., Northrop L.: Clearing the Way of for Software Product Line Success, IEEE
Software, (2010).
8. Hamza M., Walker s: Recommending Features and Feature Relationships from Requirement Do-
cuments for Software Product Lines, IEEE/ACM 4th International Workshop on Realizing AI Syner-
gies in Software Engineering, (2015).
9. Ko B., Park J.: Component Architecture Redesigning Approach Using Component Metrics” in
Artificial Intelligence and Simulation, Heidelberg: Springer Berlin Heidelberg Vol. 3397, (2005).
10 Choi M., Lee S.: A Coupling Metric Applying the Characteristics of Components, Computati-onal
Science and Its Applications, Vol. 3983, Berlin, Heidelberg: Springer Berlin Heidelberg, pp. 966–
975, (2006).
11. Kitchenham B.: Procedures for Performing Systematic Reviews, Eversleigh, (2004).
12. Basili V. R., Caldiera G., Rombach H.D.,: The Goal Question Metric Approach, Encyclopedia of
Software Engineering, (1994).
13. Mugia A., Marchesi M., Concas G.: Parameter-Based Refactoring and Relationship with Fan in
Fan out Coupling, 2011 Fourth International Conference on Software Testing, Verification and Vali-
dation Workshop, (2011).
14. Sarala S., Jabbar A.: Information Flow Metrics and Complexity Measurement, Conference
Com-puter Science and Information Technology, (2010).
15. S. Hamza, S. Sandou, R. Fleurquin: Measuring Qualities for OSGi Component Based
Application, 13th International Conference On Quality Software, (2013).




                                                                                                     540