=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)==
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