=Paper= {{Paper |id=Vol-1980/YTM_2017_paper_7 |storemode=property |title=Askeri Kara Araclarinda Test Amacli Hizli Kullanici Arayuzu Yazilimi Gelistirme(Development of Rapid Software User Interface for Testing on Military Land Vehicles) |pdfUrl=https://ceur-ws.org/Vol-1980/YTM_2017_paper_7.pdf |volume=Vol-1980 |authors=Cankat Aykurt |dblpUrl=https://dblp.org/rec/conf/uyms/Aykurt17 }} ==Askeri Kara Araclarinda Test Amacli Hizli Kullanici Arayuzu Yazilimi Gelistirme(Development of Rapid Software User Interface for Testing on Military Land Vehicles)== https://ceur-ws.org/Vol-1980/YTM_2017_paper_7.pdf
Askeri Kara Araçlarında Test Amaçlı Hızlı Kullanıcı
           Arayüzü Yazılımı Geliştirme

                              Cankat AYKURT 1, 2
                1 FNSS Savunma Sistemleri A.Ş., Ankara, Türkiye
 2 Bilgisayar Mühendisliği Bölümü, Orta Doğu Teknik Üniversitesi, Ankara, Türkiye



cankat.aykurt@fnss.com.tr                       cankat.aykurt@metu.edu.tr



  Özet. Askeri kara araçları üzerindeki elektronik sistemler ve bu sistemlerin en-
  tegrasyonu yoğun test gerektirmektedir. Araçların tasarım ve test aşamalarında
  gerek bu sistemlerin fiziksel olarak erişilebilir olmaması, gerekse güvenlik se-
  beplerinden, testlerin gerçekleştirilmesi çoğu zaman mümkün olmamaktadır.
  Hem sistem maliyetleri hem de mühendislik maliyetleri göz önüne alındığında;
  bu testlerde, tek bir sistemin veya sistemlerin benzetimini yapabilen yazılımlara
  ihtiyaç duyulmaktadır. Farklı projelerdeki ve farklı varyantlardaki araçlarda
  tekrarlanan bu mühendislik eforunu azaltmak üzere gerçekleştirilen bu çalışma-
  da kullanılan haberleşme protokolleri üzerinde karmaşık veri tipleri için otomat-
  ik kullanıcı arayüzleri oluşturan bir yazılım çerçevesi tasarlanmıştır. Bu ma-
  kalede, belirtilen amaç doğrultusunda geliştirilen yazılım çerçevesine ilişkin
  projenin gerçekleştirilmesindeki motivasyon, yazılım çerçevesinin teknik de-
  tayları ve proje çıktısının kullanımı ile elde edilen kazanımlar sunulmaktadır.


  Anahtar Kelimeler: test uygulamaları, sistem test, haberleşme protokolleri,
  simulatör, test yazılımı, yazılım çerçevesi


 Development of Rapid Software User Interface for
        Testing on Military Land Vehicles

                              Cankat AYKURT 1, 2
                1 FNSS Savunma Sistemleri A.Ş., Ankara, Türkiye
 2 Bilgisayar Mühendisliği Bölümü, Orta Doğu Teknik Üniversitesi, Ankara, Türkiye



cankat.aykurt@fnss.com.tr                       cankat.aykurt@metu.edu.tr



  Abstract. Electronics systems and their integration on the military land vehicles
  requires intensive testing. Most of the times required test are hardly conducted
  because of both the unavailability of the target systems and the importance of




                                                                                      217
        the safety factors. While cost of these electronics systems and engineering ef-
        forts are taken into account; the required tests need test software which can
        simulate a system or most of the unavailable systems. In an attempt to decrease
        the repetitive engineering effort spent on different vehicle projects and different
        vehicle variants, a software framework is designed to create automated graph-
        ical user interfaces for complex data types on frequently used data buses in the
        vehicles. This article presents the purpose, motivation and technical develop-
        ment details of the software framework and the gained achievements of the pro-
        ject realization.


        Keywords: test applications, system test, communication protocols, simulators,
        test software, software framework


1       Giriş

1.1     Problem Tanımı
Endüstride; sistem tasarımı, yazılım geliştirme ve test aşamalarında, alt sistemlerin
haberleştiği gerçek sistemlerin benzetimini yapabilen yazılımlara ihtiyaç duyulmak-
tadır. Askeri kara araçları üzerindeki veri yollarına bilgisayar üzerinden bağlanarak alt
sistemlerin anlık durumlarını görüntüleyip komuta etme ihtiyacı, tasarım ve test aşa-
malarında sürekli olarak gerekmektedir. Elektronik ve bağlı mekanik birimlerin tes-
tlerinde, diğer sistemlerden izole ve güvenli bir test ortamı sağlamak için çevre bi-
rimlerin davranışlarını taklit eden haberleşme uygulamalarının geliştirilmesi gerek-
mektedir. Grafiksel kullanıcı arayüzüne (GUI 1) sahip bu yazılımların geliştirilme
sürecindeki mühendislik eforunu azaltmak için askeri kara araçlarında sıklıkla
kullanılan haberleşme protokolleri (CAN2 Bus, seri haberleşme) öncelikli olarak be-
lirlenmiş ve çalışma bu doğrultuda gerçekleştirilmiştir.


1.2     Çalışmanın Hedefi ve Yöntem
Askeri kara araçları operasyonel görevleri (komuta, haberleşme, istihkam, v.b.) ve
fiziksel özellikleri (paletli, tekerlekli, amfibi v.b.) doğrultusunda birbirlerinden farklı
donanımlarda tasarlanmaktadır. Bu çeşitlilik, tasarım ve test aşamasında yazılım ger-
eksinimlerinin de çeşitlenmesini beraberinde getirmektedir.
   Bu çalışmada, her araç projesi ve her araç varyantı için ayrı ayrı test arayüz
yazılımları geliştirmek yerine hızla haberleşme ve grafiksel kullanıcı arayüzlerinin
oluşturulmasına olanak sağlayacak bir yazılım çerçevesi geliştirmek hedeflenmiştir.
Araç üzerinde haberleşme protokollerine bağlı sistemlere ait mesajların basit bir
kullanıcı arayüzü üzerinden tanımlanmasıyla, durum görüntüleme ve komuta kontrol
amaçlı grafiksel kullanıcı arayüzlerinin otomatik oluşturularak haberleşmenin
sağlanması amaçlanmıştır. Bu sayede sistem tasarım, geliştirme ve test aşamalarında

1   Graphical User Interface
2   Controller Area Network




                                                                                              218
hızlı bir test ve doğrulama çözümü elde edilmiştir. Protokol üzerindeki verilerin anlık
tanılanması, sistemlerin durumlarının gösterimi ve kontrolü, grafik gösterimi ve ra-
porlanması yazılım üzerinden hazırlanmıştır. Aynı zamanda, bu çalışma ile araçlara
özel mesajların da tasarlanması ve arayüz kontrol dokümanlarının yazılım üzerinden
otomatik oluşturulması sağlanmıştır.
   Çalışma sonucunda ortaya çıkan yazılımın, ihtiyaç duyulduğunda yeni veri tipleri,
yeni kullanıcı arayüz komponentleri ve yeni haberleşme protokolleri tanımlanmasına
imkan verecek esneklikte modüler olarak tasarlanması sağlanmıştır.


2      Uygulama

Bu çalışmada yazılımın geliştirilmesi için Microsoft Visual C# dili [6] ve LINQ
metodolojisi [7], sistem mesaj dosyalarının hazırlanması için XML dili [8] ve alter-
natif olarak JSON formatı [9] kullanılmış, raporlar HTML5 [10] ile dışa aktarılmış,
dokümanların ve yazılımın konfigürasyon kontrolü SVN sürüm takip sisteminde [11]
sağlanmıştır.
    Yazılım çerçevesi, geliştirilebilir yapıda olup bu çalışma kapsamında yerine
getirmeyi amaçladığı beş temel fonksiyona ait modüllerden ve haberleşme
arayüzlerinden oluşmaktadır.Haberleşme arayüzleri için ilk etapta askeri kara
araçlarında sıklıkla kullanılan CAN [12]-[15] protokolü ve RS-232 [16] seri haber-
leşme protokolü arayüzleri tasarlanmıştır. Amaçlanan beş temel fonksiyon; sistem
tanımlama, durum görüntüleme, komuta kontrol, grafiksel gösterim ve raporlamadır.




             Şekil 1. Geliştirilen yazılım çerçevesine ait fonksiyonel modüller




                                                                                          219
2.1     Sistem Tanımlama
Sistem Tanımlama modülünde, araç üzerindeki haberleşme protokollerine bağlı sis-
temlere ait mesajların yazılım çerçevesi üzerinde kolayca tanımlanması
amaçlanmıştır. Bağlı sistemlere ait arayüz mesajları için genelleyici bir model oluştu-
rulmuştur. Bu model vasıtasıyla sistem mesajlarına ait özelliklerin uygulama üzerin-
den basit bir şekilde tanımlanarak XML3 ve/veya JSON4 dosyalarında saklanması
hedeflenmiştir. Veri yolu üzerindeki akış aşağıdaki şekilde modellenmiştir:




              Şekil 2. Veri yolu üzerindeki mesajların en üst seviyeden modeli

    Veri yolu üzerindeki mesajlar, belirleyici alanları ile tanımlanmış ve bunlara birer
isim ataması yapılmıştır. Mesajların belirleyici alanları dışında en az bir adet anlamlı
bölüm içereceği kabullenmesiyle yola çıkılarak mesajlar, alanlara bölünmüştür.
Mesajın belirleyici alanı ve ismine ek olarak mesaja ait diğer alanlar bir liste olarak
alt düğümlerde kaydedilmiştir.
    Mesaj alanlarına ait kaydedilecek bilgiler; alan isimlerini, başlangıç ve bitiş ko-
numlarını (bit sıraları), varsayılan değerlerini, veri tiplerini ve (varsa) çarpan katsayısı
ile offset miktarını içermektedir. Alan isimleri, mesajları anlaşılır parçalara bölmek
için kullanıcının tanımlaması veya arayüz kontrol dokümanında belirlenen ismin
kullanılması için planlanmıştır. Bu alanın mesaj içindeki konumu başlangıç ve bitiş
bit numaraları ile tanımlanmıştır. Varsayılan değerler, sistemin başlangıç durumunda

3   eXtensible Markup Language
4   JavaScript Object Notation




                                                                                               220
bu veri alanında görülmesi beklenen değeri içermektedir. Belirtilen başlangıç ve bitiş
konumları arasındaki bit diziliminin nasıl ayrıştırılacağı da veri tipi bilgisi olarak
saklanmaktadır.
   Alanların alabileceği potansiyel değerler listesi aşağıdaki veri tiplerinden oluşmak-
tadır:
─ Enum5:         Kullanıcının tanımladığı veya arayüz kontrol dokümanında belir-
  lenmiş tanımlı değerleri içeren veri,
─ Byte:          8 bit uzunluğunda tamsayı içeren veri,
─ UInt16:        16 bit uzunluğunda işaretsiz tamsayı içeren veri,
─ UInt32:        32 bit uzunluğunda işaretsiz tamsayı içeren veri,
─ UInt64:        64 bit uzunluğunda işaretsiz tamsayı içeren veri,
─ Int16:         16 bit uzunluğunda işaretli tamsayı içeren veri,
─ Int32:         32 bit uzunluğunda işaretli tamsayı içeren veri,
─ Int64:         64 bit uzunluğunda işaretli tamsayı içeren veri,
─ Float:         32 bit uzunluğunda işaretli reel sayı içeren veri,
─ Double:        64 bit uzunluğunda işaretli reel sayı içeren veri,
─ None:          Henüz anlamlandırılmamış veri; mesaj içerisinde rezerve olarak
  bırakılmış boş bit dizilimleri için kullanılabilir.




                       Şekil 3. Mesaj, Alan ve Değer Tanımlamaları

   Mesaj alanlarının alabileceği değerler, yukarıda verilen veri tiplerine göre belir-
lenmiştir. Değerler, bit dizilimleri ve değer isimlerini içermektedir. Veri tipi enum
olarak tanımlanan alanların olası değerleri, sisteme bit dizilimleri ile ilişkilendirilerek
isimlendirilir. Bu pratik üst seviye ayrıştırma metoduyla veri yolu üzerindeki test
edilecek sistem veya sistemler, yazılım çerçevesi üzerinde tanımlanır ve kaydedilir.
Böylece sistemlerin veri arayüzlerinin kayıt altında tutulması ve ilerleyen zamanlarda
arayüz kontrolleri üzerinde yapılacak olası değişikliklerin kolayca güncellenmesi de
sağlanmaktadır.




5   Enumerated Type




                                                                                              221
2.2    Durum Görüntüleme
Durum Görüntüleme modülünde, araçta bağlanılan veri yolu üzerindeki sistemlere ait
mesajların grafiksel kullanıcı arayüzlerinin otomatik olarak hazırlanması
amaçlanmıştır. Sistem Tanımlama modülü ile tanımlanan kayıt dosyaları bu modül ile
açıldığında yazılım çerçevesi mesajlar için sekme sayfaları hazırlamakta ve bu say-
faları mesajlara bölerek, önceden tanımlanmış alternatifler arasından veri tiplerine
uygun grafiksel kullanıcı arayüz araçlarını (metin kutusu, çoktan seçmeli kutu,
doğrusal gösterge, dairesel gösterge, vb.) yerleştirmektedir.




              Şekil 4. Durum Görüntüleme ekranları düşük duyarlıklı modeli

   Bağlanılan haberleşme protokolü üzerindeki veriler anlık minimum gecikmeyle
ayrıştırılarak alanlara ait değerler otomatik olarak oluşturulan grafiksel kullanıcı
arayüzleri üzerinde görüntülenmekte ve güncellenmektedir.


2.3    Komuta Kontrol
Komuta Kontrol modülünde, araçta bağlanılan veri yolu üzerindeki sistemlere ait
mesajların diğer sistemlere ilgili mesajları gönderebilmesi için gerekli grafiksel
kullanıcı arayüzlerinin otomatik olarak hazırlanması amaçlanmıştır. Sistem Tanımla-
ma modülü ile tanımlanan kayıt dosyaları bu modül ile açıldığında yazılım çerçevesi
gönderilecek olası mesajlara, bu mesajların alabileceği olası değerlere göre sekme
sayfaları ve önceden tanımlanmış alternatifler arasından veri tiplerine uygun grafiksel
kullanıcı arayüz araçlarını (metin kutusu, çoktan seçmeli kutu, doğrusal gösterge,
dairesel gösterge vb.) yerleştirmektedir.
   Bağlanılan haberleşme protokolü üzerinde ilgili mesajlar, oluşturulan grafiksel
kullanıcı arayüzü üzerinden seçimler yapılarak kullanıcı isteğine göre veya arayüz




                                                                                          222
kontrol dokümanında tanımlandığı şekilde tek seferlik veya belirlenen periyotlarda
gönderilebilmektedir.


2.4     Grafiksel Gösterim
Grafiksel Gösterim modülünde, araçta bağlanılan veri yolu üzerindeki sistemlere ait
mesajların kullanıcı tarafından seçilen alanlarının zamana bağlı grafiklerinin
çizdirilmesi amaçlanmıştır. Farklı mesajların bir arada gösterilmesiyle sistem içi
ve/veya sistemler arası ilişkilerin test edilmesi, gecikmelerin, durum ve değer değişi-
kliklerinin görüntülenmesi sağlanarak kullanıcıya görsel bir araç daha sağlanmıştır.
   Bu modül üzerinde, grafiklerin serileştirilerek saklanması ve daha sonra yeniden
çizdirilerek test durumlarının gerektiğinde tekrar görselleştirilmesi amaçlanmıştır.


2.5     Raporlama

Raporlama modülünde, araçta bağlanılan veri yolu üzerindeki sistemlere ait mesaj-
ların kullanıcı tarafından seçilen alanlarının istenilen zaman aralıkları içinde
dokümante edilerek gösterilmesi ve raporlama amacıyla kaydedilmesi amaçlanmıştır.
Bu modül sayesinde sistem içi ve/veya sistemler arası ilişkilerin test edilmesi, durum
ve değer değişikliklerinin zamanlarının kayıt altına alınması ve geriye dönük
incelenmesi sağlanmıştır.
    Bu modül üzerinde hazırlanan raporlar Microsoft Word, PDF ve HTML5 olarak
dışa aktarılabilmektedir.


3       Kazanımlar

Proje sonunda ortaya çıkan yazılımın sağladığı kazanımın ölçülebilmesi için kurumsal
ERP6 yazılımındaki verilerden yardım alınmıştır. Buna göre, hedef test platformu
olarak seçilen M113 aracı için önceden hazırlanan durum görüntüleme ve komuta
kontrol amaçlı simulator yazılımının tasarımı için sisteme giren adam saat bilgisi
çekilmiştir. Yazılımı hazırlayan aynı personelden proje sonucunda ortaya çıkan
yazılımı kullanarak M113 ICD7’sine göre tekrar tasarım yapması istenmiştir. Bu bilg-
iler ışığında proje ile elde edilen kazanımları sayısal olarak aşağıdaki şekilde ifade
edebiliriz:

 M113 aracı için daha önce 80 adam saatlik (2 haftalık) bir çalışma sonucunda
  ortaya çıkan grafiksel kullanıcı arayüzü yazılımı, bu çalışma sonucu elde edilen
  yazılım çerçevesi ile 2 adam saatte hazırlandı.
 M113 aracı için 4445 satır kod ile hazırlanan grafiksel kullanıcı arayüzü yazılımı,
  bu çalışma sonucu elde edilen yazılım çerçevesi ile kod yazılmadan sadece veri
  yolundaki mesajlara ait parametrelerin girilmesiyle otomatik olarak elde edildi.

6   Enterprise Resource Planning
7   Interface Control Document




                                                                                          223
   Bu çalışma ile her araç ve her varyant için tekrarlanan grafiksel kullanıcı arayüzü
yazılımı geliştirme aşamalarını hızlandıracak ve harcanan mühendislik eforunu ciddi
ölçekte azaltacak bir yazılım ve çerçeve oluşturuldu.


4      Sonuçlar ve Gelecek Çalışmalar

Sistem tasarımı, yazılım geliştirme ve test aşamalarında, alt sistemlerin haberleştiği
gerçek sistemlerin benzetimini yapabilen yazılımlara duyulan ihtiyacı karşılamak ve
harcanan mühendislik eforunu azaltmak amacıyla geliştirilen bu yazılım çerçevesi
sayesinde operasyonel görevleri (komuta, haberleşme, istihkam, v.b.) ve fiziksel özel-
likleri doğrultusunda (paletli, tekerlekli, amfibi v.b.) birbirlerinden farklı donanımlar-
da tasarlanan askeri araçlarda grafiksel kullanıcı arayüzüne sahip test ve benzetim
yazılımları ihtiyacının hızlı bir şekilde karşılanması sağlanmıştır.
    Araçlar üzerinde haberleşme protokollerine bağlı sistemlere ait mesajların basit bir
kullanıcı arayüzü üzerinden tanımlanmasıyla, durum görüntüleme ve komuta kontrol
amaçlı grafiksel kullanıcı arayüzlerinin otomatik oluşturularak sistemlerle haber-
leşmenin sağlanması; bu sayede sistem tasarım, geliştirme ve test aşamalarında hızlı
bir test ve doğrulama çözümünün elde edilmesi sağlanmıştır. Protokol üzerindeki
verilerin anlık tanılanması, sistemlerin durumlarının gösterimi ve kontrolü, grafik
gösterimi ve raporlanması ile farklı amaçlarda tasarım ve test mühendislerinin har-
cayacağı efor azaltılmış, insan bilgisayar etkileşimi yüksek [17], [18] bir yazılım
çözümü sunulmuştur.




    Şekil 5. Geliştirilen yazılım çerçevesinden testler esnasında alınan bir ekran görüntüsü

  Çalışma sonucunda ortaya çıkan yazılımın, ihtiyaç duyulduğunda yeni veri tipleri,
yeni kullanıcı arayüz araçları ve yeni haberleşme protokolleri tanımlanmasına imkan




                                                                                               224
verecek esneklikte modüler olarak tasarlanması sağlanmıştır. Doğacak gereksinimler
doğrultusunda yeni yetenekler kazandırılacaktır. Öngörülen yetenekler arasında; hali-
hazırda eklenen haberleşme arayüzlerine ek olarak TCP/IP ve UDP ulaşım katman-
larının ilave edilmesi ve testler esnasında araçlara kablosuz erişim bulunmaktadır.


5      Teşekkür

Proje süresince desteğini esirgemeyen ve emeği geçen yöneticilerime, test sü-
reçlerinde katkı sağlayan başta Burak Arısoy olmak üzere tüm çalışma arkadaşlarıma
teşekkür ederim.


Kaynakça
 1. IEEE Std 1058-1998, IEEE Standard for Software Project Management Plans, The Insti-
    tute of Electrical and Electronics Engineers, Inc., December 1998
 2. IEEE Std 830-1998, IEEE Recommended Practice for Software Requirements Specifica-
    tions, The Institute of Electrical and Electronics Engineers, Inc., June 1998
 3. Wiegers, K., Beatty, J. 2013. Software Requirements. 3rd ed. Microsoft Publishing.
 4. IEEE Std 1016-2009, IEEE Standard for Information Technology—Systems Design—
    Software Design Descriptions, The Institute of Electrical and Electronics Engineers, Inc.,
    July 2009
 5. IEEE Std 829-2008, IEEE Standard for Software and System Test Documentation, The In-
    stitute of Electrical and Electronics Engineers, Inc., July 2008
 6. C# Guide
    https://docs.microsoft.com/en-us/dotnet/csharp/csharp
 7. Language Integrated Query
    https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/
 8. Extensible Markup Language (XML)
    https://www.w3.org/XML/
 9. Introducing JSON
    http://www.json.org/
10. HTML5
    https://www.w3.org/TR/html5/
11. Apache Subversion
    https://subversion.apache.org/
12. BOSCH CAN Specification, Version 2.0, Robert Bosch GmbH, 1998
13. Di Natale, M., Zeng, H., Giusto, P., Ghosal, A. Understanding and Using the Controller
    Area Network Communication Protocol: Theory and Practice. 1st ed., 2012
14. SAE Vehicle Application Layer, J1939-71, Society of Automotive Engineers, 2003
15. PCAN-USB User Manual, CAN Interface for USB, Peak-System Technik GmbH, 2016
16. EIA standard RS-232-C: Interface between Data Terminal Equipment and Data Communi-
    cation Equipment Employing Serial Binary Data Interchange, Electronic Industries Asso-
    ciation. Engineering Dept., 1969
17. Mayers, B. A., Rosson M. B., Survey on User Interface Programming, 1992
18. Gajos, K. Z., Czerwinski, M., Tan, D. S., Weld, D. S., Exploring the Design Space for
    Adaptive Graphical User Interfaces, 2006




                                                                                                 225