=Paper= {{Paper |id=Vol-2201/UYMS_YTM_2018_paper_19 |storemode=property |title=Veri Dagitim Servisi Tabanli Dagitik Sistem Test Yaklasimi(Data Distribution Service Based Distributed System Test Approach) |pdfUrl=https://ceur-ws.org/Vol-2201/UYMS_YTM_2018_paper_19.pdf |volume=Vol-2201 |authors=Saniye Asena Artac,Ilker Koyuncu,Aylin Hatip Ipek }} ==Veri Dagitim Servisi Tabanli Dagitik Sistem Test Yaklasimi(Data Distribution Service Based Distributed System Test Approach)== https://ceur-ws.org/Vol-2201/UYMS_YTM_2018_paper_19.pdf
   Veri Dağıtım Servisi Tabanlı Dağıtık Sistem Test
                      Yaklaşımı

       Saniye Asena ARTAÇ[1], İlker KOYUNCU[2], Aylin HATIP IPEK[3]

             1 ROKETSAN A.Ş., saniyetokel@roketsan.com.tr


               2 ROKETSAN A.Ş., ikoyuncu@roketsan.com.tr


                 3 ROKETSAN A.Ş., ahatip@roketsan.com.tr




    Özet. Hızlı ve etkin bir biçimde gelişim gösteren veri iletişimi, geliştirilen
    sistemlerin özgün ve çevik tasarım ihtiyaçlarını ön plana çıkarmaktadır. İlgili
    sistemin kapsamı ve kabiliyeti arttıkça, ortamda bulunan çok sayıda donanım ve
    yazılım bileşeninin hızlı, doğru ve gerçek zamanlı veri paylaşımı gibi ihtiyaçları
    doğmaktadır. Veri Dağıtım Servisi (DDS) teknolojisi, dağıtık sistemlerin
    geliştirilmesinde kullanılan ve son dönemde pek çok sektörde yaygınlaşan bir
    ara katman standardıdır. Bu makale kapsamında, DDS tabanlı bir sistem için
    uygulanan test yaklaşımı incelenmiştir. “Veri Dağıtım Servisi Tabanlı Dağıtık
    Sistem Test Yaklaşımı” olarak adlandırdığımız bu çalışma DDS’in sağladığı
    dinamik ortam tanıma yeteneği ile esnek ve genişlemeye müsait bir test alt
    yapısı sunmaktadır. Ayrıca ilgili sistemin yaşam döngüsü aşamaları model
    tabanlı oluşturulmuş olup, buna paralel yazılım test analiz ve test tasarım
    aşamaları da bu kapsamda model tabanlı olarak hazırlanmıştır. Bu çalışma,
    özellikle dağıtık ve gerçek zamanlı, birden fazla alt sistemin güvenilir bir
    biçimde veri iletişiminin sağlanması ve entegrasyon eforlarını aza indirmesi
    nedeniyle DDS altyapıları üzerine bir hibrid analiz sunmaktadır.



    Anahtar Kelimeler: Yazılım Test, Test Alt Yapısı, Simülatör, Dağıtık Mimari,
    Veri Dağıtım Servisi.




Data Distribution Service Based Distributed System Test
                       Approach

       Saniye Asena ARTAÇ[1], İlker KOYUNCU[2], Aylin HATIP IPEK[3]
               1 ROKETSAN A.Ş., saniyetokel@roketsan.com.tr


                 2 ROKETSAN A.Ş., ikoyuncu@roketsan.com.tr


                   3 ROKETSAN A.Ş., ahatip@roketsan.com.tr




      Abstract. The needs for fast and efficient data communication has been
      progressively bringing original and agile design needs of the developed systems
      today. As the scope and capability of the system increases, the need for rapid,
      accurate and real-time data sharing of a large number of hardware and software
      components in the environment arises. Data Distribution Service (DDS)
      technology is a middleware standard that has been used in the development of
      distributed systems and has become popular in many sectors in recent years. In
      this paper, the test approach applied to a DDS based system is discussed. This
      study, which we call "Data Distribution Based Distributed System Test
      Aprroach", presents a flexible and expandable test infrastructure with the ability
      of dynamic environment recognition provided by DDS. In addition, the life
      cycle stages of the related system are designed as model based, and software
      test analysis and test design phases are also prepared in model based. In this
      study, it will presents a hybrid analysis that reliably delivering data
      communication by reducing efforts especially in distributed and real-time
      systems.



      Keywords: Software Test, Test Engine, Simulator, Distributed Architecture,
      Data Distribution Servisi, DDS.


1     Giriş

Çeşitli platformlar üzerinde kullanmak için geliştirilen komuta kontrol yazılımları
birçok farklı aviyonik sistemler, mühimmatlar ve sensörler gibi birimlerle iletişim
halinde bulunmaktadır. Birimler arası iletişimin gerçek zamanlı, hızlı ve güvenilir
şekilde çalışmasına imkan sağlayacak şekilde kurulmuş olması gerekmektedir. Bu
koşulların sağlanıp sağlanmadığının anlaşılması için her yazılım ve sistem için
uygulanması gereken farklı seviye test aktivitileri bulunmaktadır. Oldukça karmaşık
bir yapıya sahip olan bu sistemlerin test ve entegrasyon süreci uzun zaman
alabilmektedir.
   Sistemlerin sahip olduğu aviyonik birimler teknik ve fiziki açıdan
değerlendirildiğinde, donanım bileşenlerinin kendisinin kullanımı her zaman uygun
olmamaktadır. Bu durumlarda ilgili birime ait simülatör kullanımı tercih edilmekte ve
bazı veriler sanal olarak oluşturulmaktadır. Ayrıca her alt sistemin farklı arayüz
kullanması yerine ortak bir arayüzden konuşması tercih edilebilir bir özelliktir.
Aralarında veri paylaşımı olan dağıtık mimariye sahip sistem ihtiyaçlarını karşılamak
için, Object Management Grup (OMG) tarafından yayınlanan Veri Dağıtım
Servisi’nin (Data Distribution Service-DDS) gerçek zamanlı dağıtık sistemlerin
geliştirilmesinde, ana haberleşme standardı olarak kullanımı yaygınlaşmaktadır [1, 2].
Dağıtık mimaride oluşturulmuş farklı fiziksel iletişim arayüzlerine sahip birimler ile
komuta kontrol yazılımı arasındaki iletişimi modüler bir şekilde desteklemek
amacıyla DDS ara katmanı kullanımı tercih edilmektedir. Aynı zamanda birçok
sistemin aynı anda çalıştığı bir ortamda, veri iletiminin sistem performansını olumsuz
yönde etkilememesi bir diğer önemli husustur. DDS haberleşme protokolü ile
bahsedilen ihtiyaçlar için hem yazılım hem test alt yapısı olarak esnek ve
uyarlanabilen mimariler oluşturulabilmektedir.
   Bu çalışmada, sanal ve gerçek sistemlerin entegre bir şekilde kullanılabildiği, DDS
altyapısı sayesinde farklı konumlarda bulunan alt sistemlerin kullanılarak testlerin
gerçekleştirilebildiği,    sistemin    kullanılırken     karşılaşabileceği   durumların
denenebildiği bir test ortamı ve yazılım test analiz, tasarım aşamalarının model tabanlı
olarak hazırlanması çalışmaları özetlenmiştir.


2      Veri Dağıtım Servisi

Veri Dağıtım Servisi (DDS) temel olarak yayımla-abone ol ve veri merkezli mimari
altyapısına sahip bir ara katman protokolüdür. Bu protokol, dağıtık ortamda çalışan
gerçek zamanlı sistemlerin veri iletim ihtiyaçlarını karşılamak üzere geliştirilmiştir
[3]. Yayımla-abone ol mimarisi ortamda bulunan sistemlerden yayıncı ve abone
katılımcıların birbirini tanımasına, fiziksel adreslerini bilmelerine gerek yoktur. Bu
yapı sayesinde sistemde bir değişiklik yapılmadan yeni birimlerin eklenmesi, ortamda
bulunan verilere abone olunarak istenilen bilgiye erişilebilmesi gibi esneklik
sunmaktadır. DDS servis kaliteleri(QOS) ile verinin nereden nereye hangi servis
kalite parametreleri ile iletileceği önceden belirlenebilmektedir. DDS kullanımının
sisteme sağladığı avantajlar;
  • Esnek ve uyarlanabilen haberleşme mimarisine sahip olması (bu özellik
  sayesinde mevcut alt sistemlerin alternatiflerinin entegrasyonunda, yazılım
  geliştirme ve test faaliyetlerinde ihtiyaç duyulacak zaman ve iş gücünün azalacağı
  değerlendirilmektedir.)
  • Güvenilir veri paylaşımı
  • Veri iletim bant genişliğinin verimli şekilde kullanılması
  • Çoklu katılımcılı haberleşmeleri desteklediği gibi, teke tek haberleşmeye de
  imkân sağlaması
olarak sıralanabilir.


2.1. DDS-Bileşenleri

Domain: Birbiri ile iletişim kuracak uygulamalar için genel veri alanını temsil
etmektedir. Her “domain” bir tamsayı ID ile benzersiz şekilde tanımlanmaktadır. İki
uygulamanın birbiriyle ile iletişim kurması için aynı “domain” de bulunması
gerekmektedir.
Domain Participant: Uygulamaların bir domain’e katılmak için kullandığı yapıdır.
Veri yayımlama ve abone olma işlemleri, veriler için varsayılan servis kalitesi
parametrelerinin ayarlanması bu bileşen üzerinden sağlanmaktadır.
Publisher: Verilerin yayımlanması için kullanılır. Bu nesne bütün yayınlar için ortak
bir ara yüz oluşturmaktadır.
Data Writer: DDS veri bölgesindeki uygulamaların veri yayınlamasını sağlayan
temel erişim noktasıdır.
Subscriber: Verilere abone olmak için kullanılır. Bu nesne bütün abonelikler için
ortak bir ara yüz oluşturmaktadır.
Data Reader: DDS veri bölgesindeki uygulamaların veriyi almasını sağlayan temel
erişim noktasıdır.
Topic(Başlık): Yayıncı ile abone arasındaki iletişim noktasıdır. DDS sisteminde
iletişimin sağlanabilmesi için yayıncı ve abone aynı topic’e sahip olmalıdır.




                              Şekil 1. DDS Bileşenleri


2.2. DDS-Servis Kalitesi(QOS) Özellikleri

DDS arakatmanın sahip olduğu servis kalite desteği, sistemlerin hataya dayanıklılık
ve gerçek zaman ihtiyaçlarının karşılanmasına yardımcı olmaktadır. Aşağıda en
önemli ve sık kullanılan servis kalite özellikleri listelenmiştir [4];
Güvenilirlilik (Reliability): Verinin abonelere dağıtımının ne seviyede garanti
edildiğini belirleyen servis kalitesidir.
Kalıcılık (Durability): Verinin geç katılan alt sistemlere dağıtım biçimini belirleyen
servis kalitesidir.
Geçmiş Bilgisi (History): Gönderilen verinin en son kaç örneğinin alt sistemler için
erişilebilir olacağını tanımlayan servis kalitesidir.
Yaşam Ömrü (Life Span): Veriler için geçerlilik süresini belirleyen servis
kalitesidir, geçerlilik süresi dolan verilere erişim sağlanamaz.
Sahiplik (Ownership): Bir alt sistemin aynı anda birden fazla farklı alt sistemden
veri örneği alıp alamayacağını tanımlayan servis kalitesidir.




           Şekil 2. Bir Başlığa Ait Örnek DDS Servis Kalitesi Özellikleri


3     Veri Dağıtım Servisi Tabanlı Dağıtık Sistem Test Mimarisi

Örnek sistemde yazılım doğrulama ve geçerleme çalışmaları kapsamında kullanılan
test mimarisi                                    (b)
Şekil 4’de verilmiştir. Yazılım test ortamı tanımlanan sistem mimarisi temel alınarak
oluşturulmuştur.




                               Şekil 3. Test Mimarisi

   Test edilecek yazılım ve ilgili simülatörler aynı DDS domaine abone olarak veri
alışverişini gerçekleştirmektedir. Bu yapı sayesinde yazılımların tek bir bilgisayar
üzerinde bulunması yerine dağıtık ortamda farklı bilgisayarlar üzerinden aynı DDS
domaini kullanarak haberleşme sağlanabilmektedir. DDS domain e katılacak her
birim çalıştırıldığı zaman alacağı ve göndereceği başlıklara abone olur.
    Verilerin doğru noktalara iletilmesi, zaman kontrolü, dağıtım biçimi, veriye erişim
gibi DDS altyapısının sahip olduğu servis özellikleri kullanılarak başlıklara özel
servis özellikleri belirlenmiştir.
    Sisteme yeni bir yazılım kalemi eklenmesi ihtiyacı ortaya çıktığında yazılım
kalemine ait altsistem/birim simülatörü sistemdeki diğer mevcut simülatörlerde
değişiklik yapılmadan entegre edilebilmektedir.
    Test edilecek yazılım/donanım kalemi, ortamdaki altsistemlerin istendiğinde
gerçek, istendiğinde simülatör/emülatör şeklinde ayarlanabildiği bir ortamda
kolaylıkla test edilebilmektedir. Örneğin navigasyon ünitesinin bulunmadığı bir
ortamda yada farklı bir konumdaymış gibi test denemeleri yapılmak istendiği
durumda ilgili birimin simülatör yazılımı sisteme entegre edilerek çalışmalar devam
ettirilebilmektedir (                                    (b)
    Şekil 4). Bu yüzden kurulan yapıda her alt sistem için bir test simülatörü
geliştirilmiştir ve DDS’in sağladığı dinamik ortam tanıma yeteneği ile, esnek,
genişletilebilir bir test ve simülatör altyapısı sağlanmıştır.




                     (a)                                     (b)

              Şekil 4. (a) Altsistemler (b) Altsistemler ve Simülatörler

   Yazılım test faaliyetlerinde öncelikle geliştirilen yazılımın tanımlanan yazılım
gereksinimlerini karşıladığının doğrulanması, beklenen çıktılar ile elde edilen çıktılar
arasındaki farkların tespit edilmesi amaçlanmıştır. Temel olarak gerçekleştirilecek
koşullar önceden belirlenmiş test girdi formatına göre oluşturularak simülatörlere
yüklenmektedir. DDS kütüphanesi sayesinde yayınlanacak                verilerin ortama
gönderilmesi, dinlenecek verilerin kaynaktan gelip gelmediğinin kontrolü
gerçekleştirilerek testler icra edilmektedir. Aynı zamanda test yazılımlarının kullanıcı
ara yüzlerinden başlık içeriklerinin değiştirilmesi ve alınan verilerin kontrolü
sağlanabilmektedir. Test girdisi olarak, geliştirilen yazılımın ilgili görevi
gerçekleştirmesine yönelik beklenen pozitif veriler ile alt sistemlerde meydana
gelebilecek bir sorun sebebi ile sistemin gösterebileceği olumsuz davranışlar
belirlenmiş ve kullanılmıştır.
4      Model Tabanlı Yürütülen Test Faaliyetleri

IEEE Std 829-1998 (IEEE Standard for Software Test Documentation) Standardı Test
aktivitelerini, gereksinim tanımlanmasından test icrasına kadar geçen süreçte testin
tasarlanması, test durumları oluşturulması, test prosedürlerinin hazırlanması şeklinde
tanımlamaktadır [5]. Şu an halen oldukça yaygın olarak doküman tabanlı geliştirme
aktiviteleri kullanılıyor olsa da trendlerin model tabanlı geliştirme alanına doğru hızla
kaydığı gözlenmektedir.
   Model, gerçek dünyadaki bir sistemin yapı ve davranışının soyut ve biçimsel
olarak gösterimidir. Bu yöntem ile karmaşık bir sistem ve yazılımın esnek bir şekilde
gösterilmesi ve daha anlaşılır olması amaçlanmaktadır [6]. “Veri Dağıtım Servisi
Tabanlı Dağıtık Sistem Test Altyapısı”nda yukarda bahsedilen standart aktiviteler
çeşitli araçlar yardımıyla modellenerek oluşturulmuştur.
   Bu yaklaşımda test yazılımlarına ait gereksinimler “Kullanım Durumu Diyagramı”
ile tanımlanmıştır. Şekil 5’de verilen Kullanım Durumu Diyagramı ile
simülatörlerden gerçekleştirmesi beklenen durumlar belirtilmiş ve alt sistem akışları
kullanılarak gereksinimler belirlenmiştir.




                        Şekil 5. Kullanım Durumu Diyagramı
   Tanımlanan test meta modeli yardımıyla test durumundan beklenen kabul
kriterleri, beklenen sonuç, ön koşul ve girdi gibi değerler standartlaştırılabilmekte ve
tüm modellere şablon oluşturulabilmektedir. Test meta modeli şablonunda yapılacak
bir değişiklik aynı anda bu modelin kullanıldığı tüm diyagramlarda geçerli hale
gelecek ve yayınlanacaktır. Her bir kullanım durumu için bu meta model şablonları
yardımıyla hangi başlığın hangi değerleri alacağı ve hangi koşullarda test edileceği
test durumlarına yansıtılmaktadır.
   Aynı şekilde test prosedürleri oluşturulurken kullanılan akışlarda da içerisinde
birden fazla test durumu barındıran aktivite diyagramları yer almaktadır. Test durumu
değiştirildiğinde bu test durumunu kullanan tüm prosedürlerde ilgili kısımlar otomatik
olarak güncellenebilmektedir [7 , 8].




                     (a)                                           (b)
                  Şekil 6. (a) Test Durumu (b) Test Prosedür Örnek

   Oluşturulan altyapı ile sisteminde tanımlı her bir “Yapı” öğesi başlıkların hangi
alanları içereceğini, her bir başlığın hangi test durumunda kullanılacağını, her bir test
durumunun hangi kullanım durumunu karşılayacağını ve dolayısıyla ilgili
gereksinimleri etkilediğinden izlenebilirliğin tüm depo kaynak üzerinden
sağlanmasını mümkün kılmaktadır.
   Klasik yöntemlerde uygulanan gereksinim bazlı testlere ek olarak, tanımlanan test
prosedürleri senaryo bazında test tanımlarına sahiptir.
5      Sonuç

Bu makalede, veri dağıtım servisi tabanlı dağıtık bir sistemde uygulanan test alt
yapısından bahsedilmiştir. Uygulanan yaklaşımlar toplu olarak değerlendirildiğinde;
  • Entegrasyon açısından esnek ve genişlemeye müsait bir altyapı elde edilmesine,
  • Yeni eklenecek veya değiştirilecek alt sistem/birimlerin mevcut sistem üzerindeki
  etkileri ile entegrasyon için harcanacak zaman ve efor en aza indirgenmesine,
  • Geliştirilecek yazılımlar, henüz etkileşimde bulunacakları alt sistem unsurları
  ortada yokken rahatlıkla geliştirilip arayüzsel anlamda uyumluluklarının test
  edilebilmesine,
  • “Yayımla-abone ol” mekanizması ile çalıştığı için karmaşık ağ yapılarına ihtiyaç
  duyulmadan test icrası yapılabilmesine,
  • Aynı dili konuşan alt sistemlerin haberleşme ve veri iletimi sorunlarının
  azalmasına,
  • Test mimarisinin, yazılım mimarisi ile olan bağını dokümanlar üzerindeki soyut
  izlenebilirlikten dinamik izlenebilir hale gelmesine,
  • Model, sınıf, akış ve kullanım durumu ilişkilerinin test öğelerine de sirayet
  etmesine,
  • Test durumu ve test prosedürlerinde kullanılacak öğelerin dinamik tanımlanması
  ile kolay güncellenebilir, güvenilir, yönetilebilir bir şekilde tasarlanmasına,
olanak sağlamıştır.
    Kullanılan araçların kabiliyetlerindeki artış doğrudan tasarım sürelerini düşüreceği
gibi yazılım mühendisliği yaklaşımlarında da yeni ihtiyaçların doğmasına öncülük
edecektir.


Referanslar

1. OMG, (2006): “Data Distribution Service for Real-Time Systems Ver 1.2”,
http://www.omg.org.
2. P. Griffioen, TACTICOS CMS: exploitting the full DDS potential, DDS
Information Day, 2006 , Washington, USA.
3. H. Kutluca, İ.E. Çetin, B. Bal (2007), “MilSOFT DDS Arakatmanı ve DDS’in
Savaş Yönetim Sistemlerinde Simülasyon Amaçlı Kullanımı” USMOS 2007, Ankara,
Türkiye
4. Valls M. G., Val P. B., Analyzing Point to Point DDS Communication
Over Desktop Virtualization Software, Computer Sciens and Interfaces, 2017
5. IEEE Std 829-1998, IEEE Standard for Software Test Documentation
6. J. Holt, S.Perry, “SysML for System Engineering: A Model-Based Approach”, The
Institution of Engineering and Technology.
7. B.M. Selvy, C. Claver, G. Angeli (2014), Using SysML for Verification and
Validation Planning on the Large Synoptic Survey Telescope (LSST), LSST Project
Offie, Tuscon, USA
8. R. Hauber (2007), From Use Cases to Test Cases, HOOD Group, Oberhaching,
Germany