<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>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ı</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ezgi Cankurtaran</string-name>
          <email>ecankurtaran@aselsan.com.tr</email>
          <email>ezgicankurtaran@hacettepe.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Evren Çilden</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ayça Tarhan</string-name>
          <email>atarhan@hacettepe.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Anahtar Kelimeler: Yeniden Kullanılabilirlik</institution>
          ,
          <addr-line>Yazılım Metrikleri, Bağlaşım, Bileşen Tabanlı Yazılımlar, Ürün Hattı, Özellik Ağacı, OSGi, Giriş Yelpazesi, Çıkış Yelpazesis</addr-line>
        </aff>
      </contrib-group>
      <fpage>529</fpage>
      <lpage>540</lpage>
      <abstract>
        <p>Ö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ı beraberinde getirmektedir. Yeniden kullanım birçok yazılım geliştirme yaklaşımında uygulansa da Yazılım Ürün Hattı Geliştirme 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. 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.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Improving the Reusability of an OSGi and Product Line</title>
    </sec>
    <sec id="sec-2">
      <title>Approach Based Radar User Interface Software by</title>
    </sec>
    <sec id="sec-3">
      <title>Feature Tree Method</title>
      <p>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
desteklenmesine 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].</p>
      <p>Literatürde yazılımın yeniden kullanımı ve yeniden kullanılabilirliği farklı
kavramlara 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].</p>
      <p>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].</p>
      <p>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
konusu 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.</p>
      <p>Yazılımın geliştirilmesinde, modülerlik için servis platformu sağlayan OSGi
çerçevesi 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.</p>
      <p>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
çalış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</p>
      <p>İlişkili Kavramlar ve Çalışmalar</p>
      <sec id="sec-3-1">
        <title>2.1. OSGi Çerçevesi</title>
        <p>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
(MANIFESTMF) 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
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].</p>
        <p>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]</p>
        <p>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].</p>
      </sec>
      <sec id="sec-3-2">
        <title>2.2. Ürün Hattı Yaklaşımı</title>
        <p>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ühendisliğ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.</p>
        <p>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].</p>
        <p>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].</p>
        <p>Yazılım ürün hattı yaklaşımı, yeniden kullanım için geliştirme ve yeniden
kullanı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].</p>
        <p>Ö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
sunulmaktadır. Özellikler; zorunlu, opsiyonel, veyalanmış (İng. ORed) ya da harici
veyalanmış (İng. XOR) olarak çeşitlenmektedirler. Çoğu özellik modeli, farklı özellik
tipilerinin kombinasyonları sonucunda oluşturulmaktadır [8].</p>
        <p>Radar ihtiyacına yönelik özel ihtiyaçları karşılamak üzere geliştirdiğimiz radar
kullanıcı arayüzü yazılımlarımızda, ortak ve yönetilen bir özellik grubunu destekleyen
çekirdek 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.</p>
      </sec>
      <sec id="sec-3-3">
        <title>2.3. Yeniden Kullanılabilirlik Faktör ve Metrikleri</title>
        <p>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].</p>
        <p>Yeniden kullanılabilirlik faktörleri için literatür taraması yapılırken eksiksiz ve
tarafsız bir makale havuzu oluşturmak için Sistematik Haritalama metodundan
yararlanılmıştır [11]. Araştırma, sırası ile hedef, soru ve faktörlerin belirlenmesine dayalı
olarak 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
çalış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.</p>
        <p>“Bileşen-tabanlı ve ürün-hattı yazılım geliştirme yaklaşımlarında yeniden
kullanılabilirliğ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 üç
faktö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</p>
        <sec id="sec-3-3-1">
          <title>Faktör</title>
          <p>Bağlaşım (İng. Coupling)
Uyum (İng. Cohesion)
Karmaşıklık (İng. Complexity)</p>
        </sec>
        <sec id="sec-3-3-2">
          <title>Makale Sayısı</title>
          <p>17
11
7</p>
          <p>Yüksek seviyede (İng. High level) OSGi çerçevesindeki bileşenlerin yeniden
kullanı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</p>
          <p>Araştırmanın Amacı ve Yöntemi
Çalışmada uygulanan metodun süreç şeması Şekil 2’de verilmektedir. Yeniden
kullanılabilirliğin arttırılması motivasyonu ile eylem araştırması yapılmıştır. Eylem
araştırması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.</p>
          <p>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ılması 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.</p>
          <p>Yetenek ve projeler eşleştirilmiştir. Özellik Ağacı modelinden, yapılandırılacak
yetenek 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.
Mevcut Yazılımın
Ölçümünün Alınması</p>
          <p>Hayır
Özellik Ağacı
Metodu Başarısız</p>
          <p>Eylem araştırmasını adreslemek için geliştirilen 3 araştırma sorusu Tablo 2 ‘de
sunulmaktadır. 4.1., 4.2. ve 4.3. bu araştırma sorularına karşılık gelen yanıtların
bulunması hedeflenmiştir.</p>
          <p>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
nedir?
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.</p>
          <p>Eylem Araştırması</p>
        </sec>
      </sec>
      <sec id="sec-3-4">
        <title>4.1. Araştırma Sorusu 1 – Mevcut Yazılım Bağlaşım Analizi</title>
        <p>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.</p>
        <p>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ü
Yazı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ığı
yazı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</p>
        <sec id="sec-3-4-1">
          <title>Toplam Satır Sayısı (İng. Total Lines of Code):</title>
          <p>Sınıf Sayısı (İng.Number of Class):
Java Paket Sayısı (İng. Number of Java Package):
Büyüklük
Ürün hattı yaklaşımı uygulanarak geliştirilen yazılımlarımızda, ortak kullanılan
yeteneklerin 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.</p>
          <p>Tablo 4’te PROJE1’deki bileşenlerin giriş ve çıkış yelpaze metrik değerlerini
sunmaktadır.
EUG
HARITASUNUM
KKSARAYUZ
KKSARAYUZ Sim
KONTROLMODEL
OLAYVERIKUTUPHANESI
OLAYYONETICI
OLAYYONETICI ARAYUZ
RADARKABUK
RAPORMODEL
RAPORSUNUM
RSYARAYUZ
RSYARAYUZ Sim
SEMBOLOJI
SKOPSUNUM
SKOPSUNUM ARAYUZ
YARDIM</p>
          <p>U
A
U
U</p>
          <p>A
A+U
A+U
A+U</p>
          <p>U
A
U
U
U
A
A
A
A
7
6
5
4
3
2
2
1
1
3
8
7
4
4
2
2
3
1
1
2
1
13
19
1
19
1
9
9
2
1
1
3
3
2</p>
          <p>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österilen bileşenler, yapılandırma yapılacak bileşen karşılaştırılmasında hariç
tutulacaktır. Bu bileşenler, radar alanı dışında Elektronik Harp gibi başka alanlarda da
kullanılmakta 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.</p>
          <p>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.</p>
        </sec>
      </sec>
      <sec id="sec-3-5">
        <title>4.2 Araştırma Sorusu 2- Yeniden Yapılandırılan Yazılımın Bağlaşım Analizi</title>
        <p>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.</p>
        <p>Ö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
Özellikleri - İng. SRS) dokümanı esas alınarak çıkarılmıştır. Özellik ağacı, 46 ana yetenekten,
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
sunum 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.</p>
        <sec id="sec-3-5-1">
          <title>Tablo 5. Yetenek Ağacından Örnek Bir Kesit</title>
        </sec>
        <sec id="sec-3-5-2">
          <title>PROJE 1</title>
        </sec>
        <sec id="sec-3-5-3">
          <title>PROJE 2</title>
        </sec>
        <sec id="sec-3-5-4">
          <title>PROJE 3</title>
        </sec>
        <sec id="sec-3-5-5">
          <title>PROJE 4</title>
        </sec>
        <sec id="sec-3-5-6">
          <title>PROJE 5 Yetenekler Açıklama</title>
          <p>RADAR
DURUMU
YETENEK
LERİ
Bağlantı
Durum
num
neği</p>
          <p>Bağlantılar
lis</p>
          <p>Su- tesi, devam eden
Yete- ve henüz
başlamamış olan
bağlantılar
Sıcaklık Su- Cihaz birim
sınum Yete- caklıklarının
deneği rece olarak
su</p>
          <p>numu
MERMİ
RAPORU
YETENEĞİ
Mermi
Raporunun
Skoplarda
Sunulması
Mermi
Raporunun
Haritada
Sunulması
METRO
RAPORU
YETENEĞİ
Metro
Raporu Sunum
Metro
Raporu’nun
KKS’den
Alınması
x
x
x
x
x
x
x
x
x
x
x
x
x
x</p>
          <p>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
KONTROLMODEL
MERMIRAPORU</p>
          <p>METRORAPORU
ancak alan mühendisliği yaklaşımı ile geliştirilen KONTROLMODEL bileşeninde
bulunan 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</p>
          <p>Bileşen</p>
          <p>Alan (A) /
Uygulama(U)
Mühendisliği</p>
          <p>A
U
U</p>
        </sec>
        <sec id="sec-3-5-7">
          <title>Bileşenin</title>
          <p>Bağımlılık
KurduğuBileşen
Sayısı(Çıkış
Yelpazesi)
3
1
1</p>
        </sec>
        <sec id="sec-3-5-8">
          <title>Bileşene</title>
          <p>Bağımlılık
Kuran Bileşen
Sayısı (Giriş
Yelpazesi)
11
1
1</p>
        </sec>
      </sec>
      <sec id="sec-3-6">
        <title>4.3. Araştırma Sorusu 3 – Yeniden Kullanılabilirlik Bağlaşım Analizi</title>
      </sec>
      <sec id="sec-3-7">
        <title>Sonuçlarının Karşılaştırılması</title>
        <p>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ılandırma sonrasındaki bağlaşım faktörünün düştüğü buna bağlı olarak yeniden
kullanılabilirlik özelliğinin arttığı görülmüştür.
5</p>
        <p>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
radar kullanıcı arayüzü yazılımının, yeniden kullanılabilirliğinin arttırılması
hedeflenmiştir. Yeniden kullanılabilirliği arttırmaya yönelik olarak Özellik Ağacı modelinden
faydalanılmıştır.</p>
        <p>Yapılan eylem araştırma çalışmasında bağlaşım faktörü giriş yelpazesi ve çıkış
yelpazesi metrikleri ile sayısallaştırılmış ve yazılımın yeniden 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ı 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.</p>
        <p>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</p>
        <p>Teşekkür
Değerli yorumları ile çalışmaya katkıda bulunan Sn. Baki Demirel’e
teşekkürlerimizi sunarız.</p>
        <p>Referanslar</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>