<!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>DOOB: RAHAT U run Olarak Komuta Kontrol Yaz l m ve Gelistirme Deneyimleri</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Murat Sahin</string-name>
          <email>muratsahin@havelsan.com.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Betul Bostanc</string-name>
          <email>bbostanci@havelsan.com.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tuba Yagl</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>ve Turgay Y lmaz</string-name>
          <email>tyilmaz@havelsan.com.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Havelsan A.S. Komuta Kontrol ve Savas Sistemleri Ankara</institution>
          ,
          <addr-line>Turkiye</addr-line>
        </aff>
      </contrib-group>
      <fpage>376</fpage>
      <lpage>381</lpage>
      <abstract>
        <p>O zet. Komuta kontrol bilgi sistemleri (KKBS), askeri organizasyonlar taraf ndan her turlu planlama, gorevlendirme ve hareka^t faaliyetlerinin butunlestirilmesi ve gerceklestirilmesinin kolaylast r lmas amac yla kullan lmaktad r. Her ne kadar farkl askeri organizasyonlar kendi KKBS'leri icin farkl gereksinim kumeleri ortaya koysa da, tum organizasyonlar icin ortaklast r labilecek bir tak m gereksinimler tespit edilebilmektedir. Bu dogrultuda, HAVELSAN taraf ndan NATO destekli JC3IEDM veri modeli baz al narak bir \komuta kontrol ortak gereksinim kumesi" belirlenmis, bu gereksinimler dogrultusunda RAHAT (Rafta Haz r Ticari Urun) urun olarak piyasaya surulebilecek bir KKBS gelistirilmistir (DOOB { Defence Out Of Box). Bu makalede, DOOB urunu kapsam nda gerceklestirilen yaz l m gelistirme faaliyetleri, urune ait sistem mimarisi, faydalan lan uygulama gelistirme cat lar ile yaz l m desenleri anlat lmakta, ayr ca sistemin gerceklemesine dair kazan lm s olan deneyimler ve kars las lan sorunlar paylas lmaktad r. Anahtar Kelimeler: komuta kontrol uygulamalar , rahat urun gelistirme, komuta kontrol, tasar m desenleri, apache wicket, spring</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Komuta kontrol (KK) kavram genel olarak komutan veya diger karar vericilerin
harekatlar yurutebilmek icin gerekli her turlu kaynag n duzenlenmesi ve organize
edilmesi olarak tan mlanmaktad r. Bu baglamda Komuta Kontrol Bilgi
Sistemleri (KKBS) tum komuta kademeleri (milli, stratejik, operasyonel ve taktik) icin
tum askeri harekatlar n planlanmas , yurutulmesi ve bu harekatlar kapsam nda
yap lacak gorevlendirme faaliyetlerinin esgudum icinde gerceklestirilebilmesi ve
otomasyonunda kullan lmaktad r.</p>
      <p>Her askeri organizasyonun istihbarat, hava savunma, levaz m gibi farkl ilgi
alanlar oldugundan, bu ilgi alanlar na gore ozellesmis KKBS'ler beraberinde
farkl ihtiyaclar getirmektedir. Askeri ilgi alanlar ve kullan lan KKBS'lerin farkl
ihtiyac ve ozellikleri bulunmas na ragmen, tum ilgi alan kullan c lar n n
kulland g KKBS'den bekledigi temel fonksiyonaliteler bulunmaktad r. Entegre
olmus bir CBS (Cogra Bilgi Sistemi) bulundurmas , temel askeri mesajlasma
standartlar n desteklemesi, muharebe alan elemanlar n goruntulemesi, detay
bilgilerinin gosterilmesi ve semboloji standard destegi gibi ihtiyaclar temel KKBS
fonksiyonlar na ornek olarak gosterilebilir.</p>
      <p>Bircok farkl askeri ilgi alan na yonelik olarak uzun y llard r kara, deniz ve
hava kuvvetleri icin KKBS uygulamalar gelistirmekte olan bir kurum olarak
HAVELSAN, yukar da anlat lan ortak isterleri analiz etmis ve kullan c ya ilk
etapta bu ortak isterleri sunup, kullan c istegine gore farkl ilgi alanlar na gore
genisletilebilecek bir urun saglama plan n ortaya koymustur. Bu dogrultuda,
sirket ici Ar-Ge (Arast rma-Gelistirme) ve Ur-Ge ( Urun-Gelistirme) faaliyetleri
kapsam nda RAHAT (Rafta Haz r Ticari) urun olarak piyasaya surulebilecek,
\DOOB { Defence Out Of Box" ismi verilen, bir KKBS gelistirilmistir.</p>
      <p>Bu makalede, DOOB urunu kapsam nda gerceklestirilen yaz l m gelistirme
faaliyetleri, urune ait yaz l m mimarisi, ortaya konan bilesenler, faydalan lan
uygulama gelistirme cat lar ile yaz l m desenleri anlat lmakta, ayr ca sistemin
gerceklemesine dair kazan lm s olan deneyimler paylas lmaktad r.
2
DOOB urunu, savunma sanayi sektorundeki diger bircok projeden farkl olarak,
herhangi bir musteri ile sozlesme yap lmadan, RAHAT urun olarak gelistirilmeye
baslanm st r. Bu durum proje yonetim surecinin al s lm s sureclerden farkl
olarak yurutulmesini gerektirmistir.</p>
      <p>
        Urun gelistirme icin Yal n Girisim (I_ng. The Lean Startup) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] modeli
benimsenmistir. Bu model, ozet olarak, en az butce ile ihtiyaclar tam olarak
netlesmemis bir urunun gelistirilmesi olarak tan mlanmaktad r. Yal n Girisim
modelinde, oncelikli olarak (potansiyel) musterinin ihtiyac n kars layacak en
yal n ve sade urunu yaparak (I_ng. Minimum Viable Product, MVP), en k sa
surede musteriden geri donus al nmas hede enmektedir. Bu ac dan DOOB'un
gelistirme kosullar Yal n Girisim modeli ile ortusmektedir. Zira, DOOB
projesi herhangi bir musteri ihtiyac olmadan baslam s, ihtiyaclar sirketin gecmis
tecrubeleri kullan larak belirlenmistir. Ayr ca en k sa surede urun ortaya konup,
potansiyel musterilere bu urun tan t larak geri donusleri al nmas hede enmistir.
      </p>
      <p>DOOB urunu isterleri HAVELSAN' n gecmis KKBS uygulamalar
tecrubeleriyle, bircok farkl askeri ilgi alan n n ortak isterleri analiz edilerek belirlenmis, ve
bu ihtiyaclar DOOB icin MVP olarak tan mlanm st r. Belirlenen bu ihtiyaclarla
ortaya c kan urunun, ilk etapta erken musterilere (I_ng. early adaptors)
sunulmas , daha sonra ise kullan c isteklerine gore genisletilmesi hede enmistir. Bu
bak s ac s dogrultusunda DOOB uygulamas bir RAHAT urun ailesinin ilk uyesi
olarak gelistirilmistir. Orta ve uzun vadede, DOOB urununun kullan c
isterlerine gore ozellestirilerek genis bir urun ailesi elde edilmesi amaclanm st r.</p>
      <p>
        DOOB urun isterleri, iterasyon surelerini ve say s n dogrudan etkilediginden,
gelistirme surecinin en onemli asamas ortak KKBS isterlerinin belirlenmesi
olmustur. I_sterlerin belirlenmesi asamas nda ise en onemli kaynag n, uygulama
genelinde ve diger sistemlerle entegrasyon kapsam nda paylas lacak veri oldugu
degerlendirilerek, HAVELSAN' n da gelistirme surecine dahil oldugu, bircok ulke
taraf ndan kullan lan ve NATO taraf ndan standart bir veri degisim modeli
olarak kabul edilen JC3IEDM [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] modelinin ortak isterleri belirleme konusunda
      </p>
      <p>Sekil 1. DOOB Yaz l m Mimarisi
onemli bir kaynak oldugu karar na var lm st r. Bu sebeple, DOOB urununun
isterleri JC3IEDM temel al narak belirlenmistir. Buna ek olarak HAVELSAN
kapsam nda gerceklestirilen ve farkl ilgi alanlar na yonelik projeler incelenmis
ve tum bu projelerin ortak noktalar analiz edilmistir.</p>
      <p>Yal n Girisim modeline paralel olacak sekilde, yaz l m gelistirme sureci olarak
Art r msal Modelin uyarlanm s bir hali olan Dongusel Model kullan lmas
tercih edilmistir. Bu modele uygun sekilde her dongu icinde gerceklenecek hede er
belirlenerek bu hede ere uygun gereksinimler belirlenmekte, belirlenen
gereksinimlere gore tasar m yap lmakta, yap lan tasar ma uygun olarak gercekleme
yap ld ktan sonra dogrulama surecine girilmektedir. Her dongu sonucunda bir
uygulaman n cal san yeni bir surumu c kar lmakta ve potansiyel kullan c lar ile
paylas labilmektedir. Takip eden donguler eski dongude elde edilen surume yeni
fonksiyonaliteler kazand r larak devam etmektedir.
3
DOOB urunu, guncel egilimler ve talepler de dikkate al narak, bir web
uygulamas olarak tasarlanm st r. Ortaya konan yaz l ma ait mimari Sekil 1'de
verilmistir. Yaz l m n mimarisine dair al nan kararlar, deneyimler kars las lan
problemlerle beraber asag da belirtilmistir.</p>
      <p>
        { HAVELSAN' n gecmis projelerdeki deneyimleri dolay s yla, kodun yeniden
kullan m ve ekibin etkinligi ac s ndan programlama dili olarak Java tercih
edilmistir. Boylece gelistirme sureci daha h zl baslam s, ilerlemis, ve proje
uyelerinin degisikligi durumlar ndaki riskler minimize edilmistir.
{ Daha once gelistirilen projelerdeki operasyonel veritaban (VT) JC3IEDM
veri modeli uzerinde gelistirildiginden yine bu veri modeli tercih edilmistir.
Boylece bu veri modelini kullanan NATO kapsam ndaki diger ulkeler ile
beraber cal sabilirlik kabiliyeti saglanm st r.
{ Gelistirme surelerinin artmas na sebep olan onemli nedenlerden birisi,
kullan lan nesneler ile iliskisel veritabanlar ndaki gosterimleri aras ndaki
farkl l klard r. Bu soruna getirilen en kullan sl cozumlerden biri I_liskisel Nesne
Esleme (I_NE, Object/Relational Mapping, ORM) cozumudur. Bu yontem
sayesinde nesnenin model ve iliskisel veri gosterimleri aras nda iki yonlu
donusum mumkun olmaktad r. DOOB sisteminde, Hibernate[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] cercevesinin
kullan m nesnelerin VT tablolar na eslenmesini kolaylast rd g gibi
verilerin kaydedilmesi, guncellenmesi ve silinmesi gibi islemlerin SQL sorgular na
ihtiyac duymadan kolayca gerceklestirilmesini saglam st r.
{ Yaz l mda, VT tablolar na kars l k Plain Old Java Objects (POJO) nesneleri
kullan lmaktad r. POJO 'lar, VT katman ile iletisim kurmakla gorevli olan
Veri Erisim Katman (VEK) taraf ndan kullan lmaktad r. VEK, is sureclerinin
yonetildigi is mant g s n ar na ilgili veri nesnelerini saglamakla
sorumludur.Veri erisimi ve yonetimi organize ve katmanl bir sekilde yap ld g ndan,
uygulama gelistirilirken hatalar en aza indirilmekte, problemler kolayca
cozumlenebilmekte ve kod tekrarlar ndan kac n lmaktad r.
{ I_s mant g katman nda gelistirilecek s n ardaki bag ml l klar azaltmak ve
gelistirme surecini kolaylast rmak icin Spring [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] cercevesinin kullan m tercih
edilmistir. Spring 'in onemli ozelliklerinden olan ve kodun birbirine bag ml
l g n onleyen Dependency Injection (DI) ve modulerligi destekleyen Aspect
Oriented Programming (AOP) ozelliklerinden gerektigince faydalan lm st r.
Bunun yan nda kullan c dogrulamas ve yetkilendirilmesi gereksinimlerinin
kars lamas nda da Spring - Guvenlik cercevesi kullan lm st r.
{ Arayuz tasar m nda Apache Wicket [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] cercevesi kullan larak sunum katman
olusturulmustur. Wicket cercevesi, arayuz gelistirilirken HTML (gorsel
tasar m) ve Java (gerceklestirim) k s mlar n n ayr lmas n saglayarak daha
okunabilir ve kolay anlas labilir arayuz s n ar gelistirilmesine olanak saglam st r.
Wicket ; kolay tasarlanabilir ve gelistirilebilir olmas sebebiyle arayuz
gelistirilme surecini k saltm st r. Ayr ca CSS (Cascading Style Sheets) dosyalar
kullan larak ozellestirilebilir gorsel tasar mlar gerceklestirilebilmektedir.
{ Cogra Bilgi Sistemi (CBS) bileseni olarak, HAVELSAN' n mevcut bir urunu
TMAP kullan lm st r. TMAP, Java ile gelistirilen bir urun oldugundan,
web uygulamas na applet olarak dahil edilmistir. Bu durum, applet ve web
uygulamas aras nda, DOOB nesnelerinin JSON format na donusturulerek
Javascript cagr lar arac l g yla cal san bir mekanizma kurulmas n
gerektirmistir. Her ne kadar web tabanl bir CBS urunu kullan lmas gelistirme
suresini k saltabilecek olsa da, HAVELSAN' n mevcut bir urununu
kullanman n maliyetsiz olmas ve olas hatalarda cozumun daha kolay
saglanabilecek olmas , TMAP uygulamas n n tercih edilmesini saglam st r.
4
      </p>
      <p>Tasar m O runtuleri
Projenin gelistirme surecinde bir cok tasar m oruntusunden faydalan lm st r.
Kullan lan tasar m oruntuleri, kullan m alanlar , saglad g kazan mlar, pratikte
kars las lan sorunlar ve cozumleri uc ana basl k alt nda asag daki gibi
incelenmistir.
4.1</p>
    </sec>
    <sec id="sec-2">
      <title>Yarat m O runtuleri</title>
      <p>Yegane (Singleton) Tasar m O runtusu. Bu oruntu, uygulama genelinde
tek olmas gereken gunluk tutma (I_ng. logging) ve oturum (session) nesnelerinin
yarat lmas ve ulas lmas icin kullan lm st r. Boylece, bu nesnelerin cok say da
yarat lmas engellenerek tekilligi garanti edilmis, ve haf za kullan m ac s nda
etkili bir cozum saglanm st r. Ayr ca, gunluk ve oturum icin kullan lan global
s n ara ulas m kolaylast r lm st r.</p>
      <p>Sorunlar: Zaman icerisinde, kolay ulas labilir olmas ve dikkatsiz kodlama
sonucunda oturum nesnesi icinde gereksiz veriler tutulmaya baslanm s, bu durum
oturum nesnesinin boyutunun buyumesine sebep olmustur. Gozden gecirmeler
sonucunda tespit edilen gereksiz veri kullan mlar temizlenmistir.
Soyut Fabrika (Abstract Factory) Tasar m O runtusu. Kullan lan POJO
ve veri nesneleri derin bir hiyerarsik yap da ve nesne tipi cesitliligi de fazla
oldugundan, POJO ve veri nesnelerin yarat lmas islemlerini kolaylast rmak icin
Soyut Fabrika tasar m oruntusu kullan lm st r. Boylece, yarat m kodlar n n is
mant g s n ar icinden ayr l p soyutlanmas ve yaz l m bilesenleri aras ndaki
bag ml l g n azalt lmas saglanm st r.</p>
      <p>Sorunlar: Yarat lacak gercek s n ara karar verilmesi asamas nda kullan lan
yap n n (if/else) buyuklugu kodu karmas k hale getirdigi gorulmus, cozum olarak
da Java yans ma (I_ng. re ection) kutuphanesi kullan larak s n f tipine gore
uygun gercek s n ar yarat lmas n saglayacak bir altyap haz rlanm st r.
Yap c (Builder) Tasar m O runtusu. Askeri formatl mesajlar n giris ve
goruntulenmesi icin gerekli ekranlar n ve bu ekranlar icindeki panellerin say s
cok fazla oldugundan, bunlar n otomatik olarak yarat labilmesi icin Yap c
tasar m oruntusu kullan lm st r. Boylece, degisik panel tiplerinin ortak bir yap
kullanmas saglanm s, formatl mesajlar icin tan mlanm s xsd semalar kullan larak
panellerin kendilerini yarat p bagl oldugu ust panele ekledigi otomatik bir
ekran olusturma altyap s kurgulanm st r. Bu oruntu kullan larak, yuzlerce ekran
ve binlerce panelin elle gerceklestirilmesi maliyetinden kurtulunmustur.
4.2</p>
      <p>Yap sal O runtuler
Veri Erisim Nesnesi (Data Access Object) Tasar m O runtusu. POJO
s n ar n n ve alt seviye VT sorgulama islemlerinin, ust seviye is mant g s
n flar ndan ayr st r labilmesi icin bu tasar m oruntusu kullan lm st r. Boylece,
POJO nesneleri, veri erisim s n ar , veri nesneleri ve is mant g s n ar aras nda
bag ml l klar azalt lm s ve duzenli bir hale getirilmistir.</p>
      <p>Sorunlar: POJO'lar, is mant g s n ar ndan ayr st r ld g ndan, is mant g
icerisinde POJO'lar n veri s n ar na donusturulmesi ihtiyac olusmus, bu amacla
uyumlay c (I_ng. adapter) s n ar olusturulmustur.</p>
      <p>Uyumlay c (Adapter) Tasar m O runtusu. POJO nesneleri ve is mant g
veri yap s aras ndaki donusturme islemleri icin Uyumlay c tasar m oruntusu
kullan lm st r. Boylece, veri erisim (I_ng. DAO) s n ar ile is mant g s n ar
birbirinden soyutlanm st r.</p>
      <p>Cephe (Facade) Tasar m O runtusu. Web Applet olarak gelistirilen CBS
uygulamas ile DOOB ekran s n ar aras ndaki Javascript cagr lar n n tek bir
s n fta toplanmas icin Cephe tasar m oruntusunden faydalan lm st r. Boylece,
DOOB ekran s n ar ndan CBS uygulamas na yap lacak cagr lar tek bir s n f
uzerinden yap larak, kullan lan CBS altyap s DOOB taraf ndan soyutlanm st r.</p>
    </sec>
    <sec id="sec-3">
      <title>Davran s O runtuleri</title>
      <p>Ziyaretci (Visitor) Tasar m O runtusu. Veri yap s olarak kullan lan model
(JC3IEDM) karmas k ve derin hiyerarsik yap lar icerdiginden; uretilen POJO
s n ar da ayn derin hiyerarsi ve karmas kl ga sahip olmustur. Hibernate ile
yap lan sorgulama islemlerinde, sorgu sonucu elde edilen ata s n f tipine
sahip POJO nesnelerinin uygun sekilde kullan labilmesi icin s n f tipi
(instanceOf ) kontrolu ihtiyac ortaya c km st r. Buna ek olarak Hibernate cercevesinin
saglad g gec yukleme (I_ng. lazy-loading) kullan ld g durumlarda, Hibernate
vekil (I_ng. proxy) nesneler dondugunden, cogu zaman s n f tipi kontrolu dahi
yap lamamaktad r. Bu problemlerden kurtulabilmek icin Ziyaretci oruntusu
kullan lm st r. Boylece, gec yukleme sonucunda donen vekil nesnelerden gercek
POJO nesnelerine ulas m geregi ortadan kald r labilmis, ayr ca s n f tipi
kontrollerinin ortadan kalkmas sonucu kolay okunabilir temiz bir kod elde edilmistir.
Sorunlar: Ziyeretci metodu icindeki gerceklestirimin kapsam n n iyi belirlenmesi
ve dogru tasarlanmamas sonucunda moduller aras gereksiz bag ml l klar n
ortaya c kt g gozlemlenmistir.</p>
      <sec id="sec-3-1">
        <title>5 Sonuc</title>
        <p>Bu makalede, HAVELSAN taraf ndan gelistirilen, farkl ilgi alanlarina sahip
askeri organizasyonlar taraf ndan kullan labilecek, temel KKBS islevlerine sahip
bir RAHAT urun olan DOOB yaz l m anlat lm st r. DOOB, Yal n Girisim ve
MVP stratejisiyle gelistirilmis, yaz l m gelistirme sureci olarak Art r msal
Model'in uyarlanm s bir hali olan Dongusel Model uygulanm st r. Yaz l m, Java
programlama dili ile, Apache Wicket, Spring ve Hibernate cerceveleri kullan larak
gerceklestirilmistir. Yaz l m gelistirme esnas nda yarat m, yap sal, davran s
deseni olarak bircok desen uygulanm st r. Halihaz rda DOOB urununun 4.
versiyonu icin cal smalar devam etmekte, proje basar l sekilde surdurulmektedir.</p>
      </sec>
      <sec id="sec-3-2">
        <title>Kaynaklar</title>
        <p>Bu makale HAVELSAN A.S. taraf ndan sirket ici Ar-Ge projesi olarak yurutulen
DOOB projesi kapsam nda yap lan cal smalar n sonucu olarak uretilmistir.
Yazarlar, DOOB projesinin tum gecmis ve su anki cal sanlar na degerli katk lar
dolay s yla tesekkurlerini sunmaktad r.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Apache wicket. https://wicket.apache.org, accessed:
          <fpage>2015</fpage>
          -05-01
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. Hibernate orm. http://hibernate.org/orm/, accessed:
          <fpage>2015</fpage>
          -05-01
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. Spring. http://spring.io, accessed:
          <fpage>2015</fpage>
          -05-01
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Multilateral</given-names>
            <surname>Interoperability</surname>
          </string-name>
          <string-name>
            <surname>Programme</surname>
          </string-name>
          , Greeding, Germany:
          <article-title>The Joint C3 Information Exhange Data Model (JC3IEDM</article-title>
          ),
          <source>ver.3.1.4 edn. (February</source>
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Ries</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>The lean startup : how today's entrepreneurs use continuous innovation to create radically successful businesses</article-title>
          .
          <source>Crown Business</source>
          , New York (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>