Gerçek zamanlı sistemler için yüksek güvenirlikli çoklu yazılım sentezi
The high-reliability multi-version software synthesis for real time systems
Yazar: NADİR SUBAŞI
Danışman: DR. ÖĞR. ÜYESİ İLKER ÜSTOĞLU
Yıldız Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Kontrol ve Otomasyon Mühendisliği Ana Bilim Dalı / Kontrol ve Otomasyon Mühendisliği Bilim Dalı
Derece: Doktora, 2020
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control ; Mühendislik Bilimleri = Engineering Sciences
Dizin: Gerçek zamanlı sistemler = Real time systems ; Çok kriterli karar verme = Multi criteria decision making

Özet:
Teknolojik gelişmeler ile birlikte, emniyet tedbirlerine duyulan ihtiyaç insan hayatının önemli bir parçası haline gelmiştir. Emniyet-kritiklik günlük yaşantıda sıklıkla karşılaşılan bir kavramdır. Bu çalışmada, emniyet-kritiklik hususunda sektördeki birçok standardın taban olarak kullandığı IEC61508 standardı ile bu standardın önerdiği yöntemler ve araçlar incelenmiştir.

Bölüm 1'de literatür taraması yapılarak tezin amacından ve literatürde görülen açık noktalardan bahsedilmiştir. Emniyet-kritik sistemler tanıtılarak IEC61508 standardının önemini vurgulayan literatür bilgileri değerlendirilmiştir.

Bölüm 2'de IEC61508 stardardının genel yapısı anlatılmış ve bu standarda ihtiyaç duyulma sebebi hakkında bilgi verilmiştir. Güvenlik ve emniyet kavramları üzerinde durulmuştur. Emniyet taktikleri incelenmiş ve standart ile ilişkilerinden söz edilmiştir. IEC61508 standardının 3. bölümü olan yazılım bölümü incelenmiştir. Emniyet-kritik bir uygulama içerisinde, IEC61508-3 bölümünde önerilen yöntemler ile, C/C++ kullanılarak oluşturulan kodlar, V-model metoduna göre PC-lint programı aracılığıyla analiz edilmiştir. IEC61508-3 standart parçasının önerilerinden olan senkron ve asenkron programlamalar hakkında bilgiler verilmiştir. Ayrıca standardın uygulanmasını önerdiği yöntemler benimsenerek yazılmış bir programlama dili olan SCADE Suit incelenmiştir.

Bölüm 3'de, IEC61508-3 standardında önerilen yöntemlerden biri olan NVP tekniği açıklanmış ve çeşitleri hakkında bilgi verilmiştir. n sayıda farklı versiyondan gelen verileri analiz eden ve bu konuda karar veren, ayrıca NVP'nin başarısını belirleyen NVP seçicileri hakkında bilgi verilmiştir. SCADE programlama dili içerisinde örnek bir NVP uygulaması tasarlanmış ve davranışları incelenmiştir.

Bölüm 4'de, uygulama sahasında karşılaşılan sorunlardan biri olan, n versiyon sayısını oluştururken hangi n tanesinin seçilmesi gerektiği sorununa çözüm aranmıştır. MCDM yöntemlerinden biri olan TOPSIS yöntemi ile örnek bir veri seti üzerinde uygulama yapılmıştır.

Bölüm 5'de gerçek-zamanlı bir test ortamı oluşturulmuştur. Bu test ortamı, tilt-rotor ile dengede durması kontrol edilen bir yapıdadır. Matlab ortamında simule edilen kontrolcü, bu test ortamında gerçeklenmiştir. Ana motivasyon kaynağımız olan NVP-MV ile çoğunluk kararının sistemi kararsızlığa götürmesinin önüne nasıl geçilebilir sorusuna cevap aranmıştır. Geliştirilen algoritma ile bunun önüne geçilmiştir. Test senaryosunun sonuçları yorumlanmıştır.

Son olarak, Sonuç ve Öneriler bölümünde, çalışma boyunca elde edilen sonuçlar sunulmuştur. IEC61508 ve IEC61508-3 standartları açıklanmıştır. SCADE programlama ortamında NVP yöntemi ile tasarlanan emniyet-kritik uygulama sonuçları verilmiştir. TOPSIS algoritması kullanılarak hangi n versiyonunun seçileceği, tartışılmıştır. Son olarak ise gerçek-zamanlı bir uygulama üzerinde NVP-MV seçicisine göre daha yetenekli bir tasarım açıklanmıştır.

Abstract:
With technological developments, the need for safety measures has become an important part of human life. Safety-criticality is a frequently encountered concept in daily life. In this study, the IEC61508 standard used by many other standards in the sector in terms of safety-critical issues and the methods and tools proposed by this standard are examined.

In Chapter 1, the literature review is done and the purpose of the thesis and the open points in the literature are mentioned. By introducing safety-critical systems, literature information emphasizing the importance of the IEC61508 standard was evaluated.

In Chapter 2, the general structure of the IEC61508 standard is explained and information is given about the reason why this standard is needed.  Security and safety concepts were emphasized. Safety tactics were examined and their relationship with the standard was mentioned. The software part, which is the 3rd part of the IEC61508 standard, has been examined. In a safety-critical application, codes created using C/C++ were analyzed using the PC-lint program according to the V-model method using the methods proposed in the IEC61508-3 part. Information on synchronous and asynchronous programming, which is one of the recommendations of IEC61508-3 standard part, is given.  In addition, SCADE Suit, a programming language written by adopting the methods recommended by the standard, was examined. 

In Chapter 3, NVP technique, which is one of the methods recommended in the IEC61508-3 standard, is explained and information about its types is given. Information was given about NVP selectors, which analyzed and decided on data from n different versions and also determined the success of NVP. A sample NVP application is designed in SCADE programming language and its behaviors are examined.

In Chapter 4, a solution was sought for one of the problems encountered in the field of application, which n to choose when creating the number of n versions. The application was made on a sample dataset with the TOPSIS method, which is one of the MCDM methods.

A real-time test environment has been created in Chapter 5. This test environment is in a structure that is controlled to balance with the tilt-rotor. The controller simulated in Matlab environment was implemented in this test environment. With our main motivation source, NVP-MV, an answer was sought to the question of how to prevent the majority decision from bringing the system to instability. This has been prevented with the developed algorithm. The results of the test scenario are interpreted.

Finally, the results obtained during the study are presented in the Results and Recommendations section. IEC61508 and IEC61508-3 standards are described. Safety-critical application results designed by NVP method in SCADE programming environment are given. Which n version to choose using the TOPSIS algorithm is discussed. Finally, a more capable design is explained over a real-time application than the NVP-MV selector.