Emniyet kiritik sistemler icin model tabanli yazilim gelistirme (Model based software development for safety critical systems)


Merhabalar bugün ESA-Estec'te "10th ESA Workshop on Avionics, Data, Control and Software Systems" calistayina katilma firsati buldum. Ogleden sonranin konusu, uzun zamandir uzerine yazmak istedigim model tabanli otomatik kod uretimi idi. Avrupanin uzay konusunda onde gelen firmalari model tabanli olarak gelistirdikleri prolerini ve bu konudaki tecrubeleri paylastilar.  Bu yazida sunum yapan firmalarin model tabanli gelistirmeye bakisini, teknoloji seviyesini ve konuyla alakali kendi tecrubelerimi paylasacagim.
  •  1990'li yillarda deneysel projelerde kullanilsada artik neredeyse karmasik kontrol algoritmasi iceren butun ciddi projelerde model tabanli gelistirme yoluna gidiliyor. Bunda etkili olan, kod uretme araclarinin son yillarda ciddi sekilde gelismesi ve model tabanli gelistirme yaklasiminin yazilim gelistirme/verifikasyon maliyetlerini ciddi sekilde dusurmesi. Sunum yapan Thales Alenia Space, OHB Sweden, ESTEC gibi firmalar bu gorusu destekliyorlar. Gunumuzde artan sayida projenin kodu otomatik olarak uretiliyor. Airbus ta bu sekilde gelistirme yapiyor. Hollanda'da calistigim iki sirkette de, universite de kontrol algoritmalari model tabanli olarak gelistiriyoruz.   
  • Matlab/Simulink/Embedded Coder neredeyse piyasada tekel olmus durumda. Gecmiste cesitli farkli araclar kullanilirken giderek Mathworks un pazar payi artiyor. Sunum yapan firmalarin gorusu bu sekilde. Ben de sadece bunu kullandim.
  • Uzay sektoru benim gozlemime gore diger sektorlerden biraz daha geride otomatik kod uretimi konusunda. Havacilik, medikal ve otomotiv sektorlerinde kullanim cok daha yaygin. Ornegin,  artan sayida kullanimla birlikte ESA bunyesinde ECSS yazilim gelistirme standardi uzerinde model tabanli gelistirmeyi duzenleyecek revizyon yapmali miyiz? konusu henuz tartisiliyor. Havacilikla DO-178C standardi seneler once DO-331 (model based) ekiyle birlikte gelmisti.
  • Calistayda ilgimi ceken bir baska konu ise bilgisayarla gorme tabanli navigasyon ve ucus kontrol sistemleri idi. Geleneksel kontrol algoritmalari iceren yazilimlarda model tabanli gelistirme yaklasimi artarken, bilgisayarla goru uygulamalarin elle kodlandigini ogrendim. Sanirim otomatik olarak uretilen kod performans konusunda elle yazilan kod ile henuz rekabet edemiyor. Performans degerlendirmesi icin simulink ile gelen demo uygulamalarinin birisinden C kodu uretmeyi planliyorum, Gerceklestirirsem sonuclarini burada paylasmak isterim. (Eger bu konuda tecrubeniz varsa, paylasirsaniz memnun olurum.)
  • Modeller metin tabanli olmadigi icin geleneksel sekilde "diff" alinamiyor. Birden cok gelistiricinin calistigi projelerde farkli gelistiricilerin gelistirdigi modullerin nasil birlestirilecegi belli degil. Bu nedenle modellerin konfigurasyon yonetimi biraz daha sikintili. Model dogrulama yontemleri(unit tests, test coverage vs.), geleneksel yontemlere gore farkli. Bu konularin proje basinda iyi bir sekilde planlanmasi gerekiyor. Bu konu aslinda blog yazisinda anlatilamayacak olcude detayli...
  • Hem karmasikligi yonetilebilir seviyede tutabilmek icin, hem de uretilen kodun dogrulugundan emin olabilmek icin, modelleme standarti cok onemli. Firmalarin genellikle kendi tecrubeleriyle olusturduklari modelleme standartlari var.
 Cok uzun zaman sonra yazdigim yazinin sonuna geldik. Birilerine faydali olmasi dilegiyle..

0 yorum - yorum yaz:

Yorum Gönder