Bir önceki bölümde Simulink’in ne olduğu anlatmıştık. Bu bölümümüzde ise Simulink kullanarak çözebileceğimiz problem türlerinden bahsedeceğiz. Simulink, güvenlik açısından kritik ürünler üreten ya da yazılım geliştiren genellikle üç farklı aşamaya ayrılan büyük şirketlerin gerçek bir hayat kurtarıcısıdır:
- Tanımlama aşaması: Algoritma, şartname ekibi tarafından planlanır veya güncellenir ve yeni bir özellik yayımlanır.
- Geliştirme aşaması: Algoritma geliştirme ekibi tarafından uygulanır ve bir yazılım sürümü yapılır.
- Test aşaması: Yazılım hem simüle hem de gerçek donanım üzerinde kapsamlı bir test aşamasına girer; Ancak test sonuçları olumlu olduğunda test ekibi, yazılımın üretime hazır olduğunu belirtir.
Not: Bu bölümde anlatacaklarımız daha çok yazılım ile uğraşan kişilerin anlayabilceği düzeydedir.
Yazılım Tanımlama
Güvenlik konusu olan her yazılım projesinde, yazılım geliştirme ancak kararlı bir spesifikasyon çıktığında başlar. Tanımlamalar genellikle her bir cümlenin en düşük gereksinimi tanımladığı ve çok detaylı olması gereken metin belgeleri şeklinde yazılır.
Metin dokümanları olarak spesifikasyonlarla ilgili sorun, geliştirme aşamasına ve hatta test aşamasına kadar belirtilen mantığın doğruluğunu doğrulamak için herhangi bir yol bulunmamasıdır.
Belirtimin yanlış veya eksik olduğu bulgulanırsa, tanımlama ekibine bildirilmeli ve yeni bir sürüm sağlamalıdır. Geliştirme ekibi yeni sürümü geliştirmeli ve test ekibi yeni yazılımı test etmelidir. Tanımlama hatası, büyük bir imalat şirketinde meydana gelebilecek en kötü şeylerden biridir ve genellikle üretim gecikmelerine neden olurken, belirsiz yazılımlar istenmeyen davranışlara neden olabilir.
Simulink, okunabilirlikte hiçbir şey kaybetmeden, doğru ve eksiksiz tanımlamaları yazma amacına ulaşmak için kullanılabilir. Şu küçük gereksinimi göz önüne alalım:
Eğer InputSignal değeri 0’dan büyükse InputSignalFlag değişkeni set edilmelidir.
Buna karşılık gelen Simulink bloğu aşağıdaki gibi olacaktır:
Gerçek ödül nedir? İhtiyacın piyasaya sürülmeden önce test edilebilmesidir. Simulink ile, giriş sinyallerini oluşturmak ve çıktıyı aşağıdaki diyagramda gösterildiği gibi kaydetmek kolaydır:
Görüntüyü Scope‘da izlerken, sonuç aşağıdaki diyagrama benzeyecektir:
Fakat bekle! Metin gereksinimini inceleyelim; Bayrak çekilmesi gerektiğini söylüyor. InputSignalFlag değişkeninin InputSignal 0 olduğunda veya 0’dan küçük olduğunda sıfırlanıp ayarlanmayacağını belirsiz (belirtilmemiş).
Fakat bu fark, Simulink ile yapılan bir tanımlamada çok açıktır. Aşağıdakiler, InputSignalFlag değişkeninin yürütme çevriminin sonuna kadar ayarlanmış olarak kalmasını şart koşan blok diyagramıdır:
Aşağıdaki diyagramda görüldüğü gibi simülasyon sonucunun önceki modelden çok farklı olduğunu görebiliriz:
Metinsel ifadeler ve insan dilinin zenginliklerine rağmen bir Boolean mantığını tarif etmede sorun yaşaması gerçeğinden dolayı her zaman gri bir alan vardır. Üstelik piyasaya sürülmeden önce şartları test etmek imkansız olmasa da, son derece zor.
Simulink sayesinde programcı olmayan kişiler tarafından eksiksiz ve anlaşılabilir nitelikte bir ön test yapabilir. Benzer şekilde yazılımcı ekipte aynı sıfır çabayla bunu yapılabilir.
Bir sonraki konumuzda Simulink’in avantaj ve dezavantajlarından bahsedeceğiz.
Kaynak: Getting Started with Simulink By Luca Zamboni