You are on page 1of 6

Gerçek Zamanlı Gömülü Sistem ve Yazılım Tasarımı’nda

ASELSAN Yaklaşımı
Evrim Kahraman1 Vedat Ünal2
1,2
ASELSAN A.Ş Mikrodalga ve Sistem Teknolojileri Grubu
1 2
e-posta: ekahraman@aselsan.com.tr e-posta: unal@aselsan.com.tr

çözümlerinin piyasadan çekilme durumu dikkate


Özetçe alınmalıdır.
Gömülü sistemler, özel amaçlarla geliştirilen, amaca özel Bildiri akışı içerisinde, 2.bölümde gerçek zamanlı
ve genellikle kısıtlı donanımlar üzerinde, güç gömülü yazılımlara ait tanımlar verilerek, 3.bölümde
sınırlamalarına uyan, gerçek zaman ihtiyacını karşılayan,
çevre koşulları ile uyumlu ve özel çevre birimleri ile ASELSAN MST grubunun - özellikle Silah Sistemleri
yüksek etkileşimli olarak çalışan sistemlerdir. Bu projeleri - tecrübelerine dayanılarak, gerçek zamanlı
bildiride, gerçek zaman ihtiyacı ve donanım ve çevre gömülü sistem ve yazılım tasarımı aşamalarında izlenen
birimleri ile yüksek etkileşimin, gömülü sistemler yöntemler verilecektir.
üzerinde çalışan gömülü yazılımlara etkileri incelenecek
ve çözüm yöntemleri sunulacaktır.
2. Gerçek Zamanlı Gömülü
ASELSAN A.Ş. Mikrodalga ve Sistem Teknolojileri Sistem/Yazılım Özellikleri
(MST) Grubu projelerinin gömülü sistemleri kapsamında
belirlenen sistem ve yazılım mimarisinden, uygulanan 2.1. Gerçek Zamanlı Gömülü Sistem / Yazılım nedir?
tasarım yöntemleri ve alınan tasarım kararlarından Özel bir amaca yönelik işlemleri yapan, kaynakları diğer
bahsedilecek, gerçek zamanlılık ihtiyacının yazılım bilgisayar sistemlerine göre kısıtlı olabilen sistemler
tasarımına etkileri irdelenecektir. “gömülü” olarak tanımlanabilir.

1. Giriş Kritik görevler üstlenen sistemler için görevin yerine


Haberleşme, tıp, savunma, otomotiv ve havacılık getirilme zamanı da önemli bir nokta olabilmektedir.
uygulamaları gibi geniş bir yelpazede yer alan gömülü Yerine getirilmesi gereken işlemin doğru olabilmesi için
sistemler ile günümüzde sıkça karşılaşmaktayız. Bu sadece mantıksal olarak doğru olmasının yeterli olmadığı,
sistemler, geliştirilme amaçları doğrultusunda oluşturulan doğru zamanda yerine getirilmiş olmasının da gerektiği
özel bilgisayar donanımları üzerinde çalışan gömülü sistemler “gerçek zamanlı” sistemler olarak
yazılımlar ile sorumlu oldukları görevleri yerine tanımlanabilir [2]. Gerçek zamanlı sistemler iki ana alt
getirirler. Bu açıdan, genel amaçlı kullanılan kişisel grupta düşünülebilir;
bilgisayarlardan ayrılmakta ve sistem tasarımının sadece
yeterli donanımları içermesiyle boyut ve maliyette kazanç Katı Gerçek Zamanlı: Doğru zamanda
sağlanmasına imkan vermektedirler [1]. Çoğunlukla gerçekleştirilmeyen bir davranış felaketle sonuçlanan
kullanıcı arayüzü içermeyen bu tür sistemlerde, hata olaylara götürebilir, ölüm veya kazalara neden olabilir.
tespit ve hataya dayanıklılık önemli bir faktör olarak Silah sistemleri, uçuş kontrolü, tren kontrolü sistemleri
karşımıza çıkmaktadır; hata kaynaklarının erken tespit katı gerçek zamanlı sistemlere örnek olarak verilebilir.
edilebilmesi, hata oluştuğunda ise sistemin mümkün
olduğunca görevini aksatmamak üzere çalışması Gevşek Gerçek Zamanlı: Doğru zamanda
beklenmektedir. gerçekleştirilmeyen davranış, istenmemesine rağmen,
oluşması durumunda herhangi bir mal veya can kaybına
Gömülü sistemlerde, çoğunlukla gerçek zamanlılık yol açmaz. Sistem, servis kalitesi düşük olarak, görevini
isterleri de bulunmakta ve bu tür sistemler “Gerçek yerine getirmeye devam eder. Görüntü ve ses işleme,
Zamanlı Gömülü Sistem” olarak tanımlanmaktadır. Bu haberleşme uygulamaları gevşek gerçek zamanlı
sistemlerde doğruluk için sadece görevin yapılması sistemlere örnek olarak verilebilir.
yetmemekte, bu görevin belirli bir zaman penceresi
içinde tamamlanmış olması beklenmektedir. Gerçek Gömülü sistemlerde yer alacak yazılımlar “gömülü
zamanlılık, çok yüksek hız performansı değil, zaman yazılım” olarak adlandırılırken, sistemin gerçek
performansının kararlılığını gerektirir; yani temel kriter zamanlılık gereksinimi var ise, geliştirilecek yazılımının
planlanabilirlik ve öngörülebilirliktir. ek özellikler taşıması gerekir ve bu tür yazılımlar “gerçek
zamanlı gömülü yazılım” olarak adlandırılır.
Gömülü sistemler, özel donanımlar ile çalıştıkları için,
donanım bağımlılıkları yüksektir. Bu nedenle, gelişen Gömülü yazılımlar doğrudan donanım üzerinde
teknolojilerin ya da seçilen ve kullanılan donanım çalışabilecekleri gibi, bir işletim sistemi üzerinde de
çalışabilirler. Bu işletim sistemleri, gerçek zamanlılık,
küçük alan kaplama (small footprint), gelişmiş donanım – yazılım görev paylaşımı kararlarıdır. Günümüzde
erişim yetenekleri gibi gömülü yazılımların temel FPGA yeteneklerindeki gelişmelerin sonucu olarak
ihtiyaçlarını karşılayabilirler. Çok küçük boyutlu yazılım ile yapılan birçok işlem FPGA kullanılarak
yazılımlarda işletim sistemi kullanmamak tercih yapılabilmektedir.
edilebilmekle beraber, yazılımdan beklenenler arttıkça
işletim sistemi tarafından sunulan yeteneklerin kullanımı Gerçek zaman performansı da sistem tasarımı
tasarım sürecini kolaylaştırmaktadır. aşamasından itibaren çözülmesi gereken bir problem
olarak karşımıza çıkar. Özellikle görüntü işleme
2.2. Gerçek zamanlı işletim sistemleri sistemleri gibi karmaşık algoritmalar içeren sistemlerde
donanım – yazılım paylaşımında gerçek zaman
Bir işletim sisteminin gerçek zamanlı işletim sistemi
gereksinimleri de değerlendirilmelidir.
olarak değerlendirilebilmesi için taşıması gereken ana
özellikler şu şekilde sıralanabilir;
Gömülü sistem yazılımı, kendisine verilen görevleri
• Önceden kestirilebilir (deterministic) davranış
yerine getirmek üzere, bünyesinde işlemci ve giriş /çıkış
sağlamalı
amaçlı arayüzleri bulunduran ve “işlemci kartı” olarak
• Eş zamanlı birden fazla görevi icra edilebilmeli adlandırılan donanımlar üzerinde koşacak şekilde
(multitasking) tasarlanmaktadır. Sistem gereksinimlerinin karşılanması
• Görevler istenen sıra ile icra edilmeli için tek bir işlemcinin kapasitesinin ve kaynaklarının
(scheduling) yeterli olamayacağı durumlar da söz konusudur. Birkaç
• Görevler önceliklendirilebilmeli (priority) işlemcinin bir arada çalıştığı sistemlerde işlemciler arası
• Periyodik görevler için ayarlanabilen yüksek yük paylaşımı da iyi analiz edilmesi gereken bir konudur.
çözünürlüklü sistem saati olmalı (clock tick) Donanım arabağlantılarının sistem tasarımı aşamasında
• Zamana bağlı işlevler için zamanlayıcı (timer) kesinleşiyor olması nedeni ile, işlemciler arası görev
içermeli paylaşım kararlarının doğru alınmış olması, daha ileriki
• Giriş/Çıkış erişimi desteği olmalı aşamalarda gerçekleştirilecek olan yazılım geliştirme ve
(Input/Output) entegrasyon çalışmalarının sorunsuz geçmesini
sağlayabilir. Hazır ticari donanımların kullanılması
Günümüzde bu özellikleri sağlayan işletim sistemleri durumunda bazı görev paylaşımları bir zorunluluk olarak
yaygınlaşmıştır; vxWorks, Integrity, LinuxRT bunlar karşımıza çıkabilir. Örneğin, ihtiyaç duyulan bağlantı
arasında sayılabilir. sayısı bir ek kartın sağlayabileceğinden fazla ise ve de
üzerinde bir ek kart bağlantı yeri bulunan bir hazır ticari
Gömülü sistemlerde kullanılan özel donanımlarda işletim donanım kullanılıyorsa; bu bağlantılar iki ayrı kart
sistemlerinin çalıştırılabilmesi için işletim sistemi ile üzerinde yer almak zorunda kalırlar. Bu durumun
uyumlu arayüzleri sağlayan donanım destek yazılım oluşturacağı sıkıntılar sistem tasarımı aşamasında
paketi (BSP) geliştirilmektedir. Donanım destek yeterince incelenmezse ileride çözümü daha zor
yazılımlarının geliştirilmesi ilave bir yük getirdiği için, problemler haline dönüşebilirler.
işletim sistemi kullanılan uygulamalarda çoğunlukla bu
paketin hazır sunulduğu hazır ticari ürünler (COTS) Yazılım – donanım arasındaki görev paylaşımında en
kullanılmaktadır. önemli karar nedenlerinden biri de esnekliktir.
Çoğunlukla en esnek tutulması istenen, geliştirmeye açık
İşletim sistemleri “Görev” (task) ve “Öncelik” kalması istenen görevler yazılımlar tarafından
belirlemelerine ilişkin altyapı içermekte ve çeşitli görev gerçekleştirilir. Bu da yazılım gereksinimlerinin donanım
sıralaması mekanizmalarını sağlamaktadır. Bu tür gereksinimlerinden daha geç olgunlaşmasına yol açar. Bu
mekanizmalar çalışma zamanının başında belirlenerek aşamadaki en kritik konu yazılım ile sağlanabilecek
yazılımın çalıştığı süre boyunca uygulanabildiği gibi, esnekliğin de bir sınırı olduğudur. Sınırları önceden
yazılım çalışırken de değiştirilebilmektedir. doğru kestirilememiş esneklik kararları da ileride
yazılımın yetersiz kalmasına yol açabilmektedir.
3. Gerçek Zamanlı Gömülü
Hazır ticari ürün kullanabilmek için en önemli alt yapı
Sistem/Yazılım Tasarımı standart bir veri yolu üzerinden birbirine bağlanmış
Gerçek zamanlı gömülü sistem/yazılım tasarımı kendine donanımlar ile çalışmaktır. VME, PCI gibi uluslararası
özgü bir yaklaşım gerektirir. Hem sistem, hem de yazılım kabul görmüş, hazır ürünlerin yaygın olarak bulunabildiği
geliştirme aşamalarında donanım bilgisi önemli ölçüde veri yollarının tercih edilmesi ile hem hazır seçenekler
gereklidir. Çoğu zaman yazılım ve donanım geliştirme oluşturulurken, hem de ileri aşamalar için (özellikle ürün
çalışmaları iç içe yürür; problemin kaynağının desteği aşaması) çözüm seçenekleri hazırlanmış olacaktır.
anlaşılması da en az çözümü kadar zor bir problem olarak
karşımıza çıkar. Geliştirilen sistemin çalışacağı ortamın zorlu çevre
koşulları ihtiyaçlarını karşılamak üzere sağlamlaştırılmış
Diğer yazılımlarda hiçbir zaman düşünülmeyen konular çözümler için de dünyada standart yapılar tanımlanmıştır.
gömülü yazılımlarda çözümlenmesi gereken problemlere Özellikle silah sistemleri gibi her türlü koşulda çalışması
dönüşebilir. Örneğin pille beslenen bir cihazın beklenen sistemler için yüksek sıcaklıklara dayanıklı, toz,
yazılımında pil ömrünü uzun tutmak önemli bir problem nem gibi problemlere karşı çözüm oluşturan seçenekler
olarak öncelik kazanır. de hazır donanım olarak temin edilebilmektedir. Bu
ürünlerin pazarı daha dar olmasına karşın son yıllarda
3.1. Gerçek zamanlı gömülü sistem tasarımı ülkemizde alternatif donanımlar geliştirilmiş ve başarısı
Gömülü sistem tasarımında en önemli ve geri dönüşü en ispat edilmiştir. Bunlara örnek olarak ASELSAN’ın silah
zor kararlar sistem tasarımı aşamasında verilen donanım sistemleri verilebilir.
3.2. Gömülü Yazılım Tasarımı 3.2.2. Gömülü Yazılım Mimarisi ve Yazılım Tasarımı
Sistem tasarımı aşamasında gömülü yazılımdan Karmaşık görevler üstlenen gömülü sistemlerde,
beklentiler tanımlanmaya başlanmasına karşın, yazılım yazılımın beklenilen görevleri yerine getirmesinin yanı
geliştirme sürecindeki analiz ve tasarım aşamalarında sıra anlaşılır bir mimari yapı içerisinde esneklik,
alınacak birçok önemli karar vardır. Özellikle yazılım gelişmeye açıklık, test edilebilirlik, uyumluluk gibi kalite
tasarımında alınan kararlar, yazılımın görevini doğru kriterlerini en iyi şekilde karşılayabilecek olması da
şekilde yerine getirmesi üzerinde çok etkilidir. önemli olmaktadır. Katmanlı mimari [5][6], görev
dağılımını sağlamaya ve katmanlar arası soyutlamaya
3.2.1. Gömülü Yazılım Ön Tasarımı olanak verir nitelikte olması nedeniyle bu kriterleri
sağlamaya yardımcı olabilmekte, dolayısıyla da gömülü
Gömülü yazılımlar genellikle küçük boyutlu olarak
yazılımlar için uygun bir mimari olarak
düşünüldüğü için basit geliştirme teknikleri ile
değerlendirilmektedir.
geliştirilebileceği görüşü hakimdir. Ancak, uçuş kontrol
sistemi veya silah sistemi gibi daha karmaşık görevler
ASELSAN’da geliştirilen silah sistemleri için katmanlı
üstlenen ve genellikle büyük boyutlu birkaç yazılım
mimari benimsenmiş ve katmanlar Şekil-1’de gösterilen
içeren gömülü sistemler düşünüldüğünde bu görüşün
şekilde belirlenmiştir.
başarıdan uzak olduğu açıktır.

Günümüz yazılım teknolojisinde öne çıkmış olan UML SİSTEME


[3] gibi tasarım yaklaşımlarının gömülü ÖZEL
sistem/yazılımlarda da uygulanması mümkündür. KISIM KONTROL KATMANI
Özellikle UML kullanan araçlar hızla yaygınlaşmaktadır.
Bu araçlarla yazılım modeli tanımlanmakla beraber
otomatik kod üretiminin de yapılabilmesi popülerliğini FONKSİYON KATMANI
artırmaktadır. Gerçek zamanlı gömülü yazılımlarda UML
kullanımı anlaşılırlığı artırırken gerçek zaman
performansını bir miktar düşürebilmektedir. Katı gerçek GENEL
zaman gerektiren kod bölümlerinin daha çok KISIM BİRİM KATMANI
tasarımcı/programcı katkısı ile geliştirmesine de olanak
veren bu araçlar tüm kritik sistemlerde
kullanılabilmektedir. ASELSAN’da geliştirilen silah
DONANIM KATMANI
sistemleri, füze ikaz ve kendini koruma sistemleri bu
duruma örnek teşkil etmektedir.

C dili, özellikle donanım erişiminde sağladığı Şekil 1. Yazılım katmanları


yeteneklerle, gömülü sistemler için ideal geliştirme dili
olarak düşünülmekle beraber, günümüzde C++, Java, Katmanların görev dağılımı ise şu şekilde yapılmıştır;
Ada gibi nesne yönelimli diller giderek önem Donanım Katmanı: Donanıma erişim için tanımlanacak
kazanmışlardır. Nesne yönelimli tasarım ile sağlanan bileşenler (seri kanal, soket haberleşmesi, paralel
modülerlik, UML araçlarıyla desteklenerek model tabanlı giriş/çıkış kartı erişimi vb.),
yazılım geliştirme yaklaşımı ile yazılım tasarım kalitesi Birim Katmanı: Donanım katmanı üzerinde çalışan
artırılabilmektedir. Bu yöntemlerle, anlaşılabilirlik, test birimlerin arayüz bileşenleri (TV Kamera, Sistem
edilebilirlik, tekrar kullanılabilirlik, değişikliklere karşı Kumanda Birimi Arayüzü vb.),
uyumlanabilirlik artırılmaktadır. Gereksinim ve Fonksiyon Katmanı: Fonksiyonel görevleri sağlayan
senaryolar, UML “Kullanım Durum Diyagram”’ları kısım (Elektro-optik Fonksiyonlar, Balistik Hesap vb.)
(Use-Case Diagram) ile ifade edilerek paydaşlar arası Kontrol Katmanı: Ana yönetim işlevlerinin ve
görüş alış-verişi kolaylaştırılmaktadır. [4] senaryoların sağlandığı kısım

Yazılım geliştirme altyapısına ilişkin gereksinimler de bu Belirlenen mimari doğrultusunda, yazılım tasarımının
aşamada değerlendirilmelidir. Gömülü yazılımlarda UML ile gerçekleştirilmesi sağlanabilmektedir. Mimaride
kaynak kısıtları nedeni ile yazılım geliştirme ve derleme yer alan öğeler ve ilişkileri “Nesne Model Diyagram”’ları
hedef platformda yapılamamakta, yazılım geliştirme (Object Model Diagram) ile, öğeler arası etkileşimler
altyapısının bulunabileceği yüksek kabiliyetli ve geniş “Ardıl Etkileşim Diyagram”’ları (Sequence Diagram) ile,
kaynaklara sahip bir başka bilgisayar üzerinde öğelerin iç işleyişi ise “İşleyiş Diyagram”’ları (State
gerçekleştirilmektedir. Böylece oluşturulan çalıştırılabilir Diagram) ile modellenebilmektedir. [4]
yazılım, kaynakları kısıtlı hedef platforma
yüklenebilmektedir. Yazılımın hedef platforma Katmanlar arası soyutlamalar sayesinde değişen/eklenen
yüklenebilmesini sağlayacak altyapının önceden birim ya da donanımlara uyumluluk hızlıca
değerlendirilmiş olması, gerekli bağlantıların sağlanabilmektedir. ASELSAN Silah Sistemleri projeleri
(ethernet/seri kanal gibi) sistem tasarımında yer almış kapsamında katmanlı mimaride uygulanan birim
olması gerekmektedir. Hedef platform ile bağlantıyı soyutlama ve donanım soyutlama örnekleri sırası ile
sağlayan bu altyapılar, yazılım geliştirme aşamasında, Şekil-2 ve Şekil-3’te görülebilmektedir.
yazılımın test edilmesi ve hataların çözümlenmesi
amacıyla da kullanılacak arayüzler olmaktadır.
• Asenkron olarak veri gelebilen dış arayüzlere
FONKSİYON
KATMANI ELEKTRO-OPTİK yönelik tüm bileşenler “Görev” olarak
FONKSİYONLAR belirlenir.
• Kendi içinde işleyişe sahip olan nesneler
Yönlü ilişki
“Görev” olarak belirlenir.
BİRİM
SOYUT KAMERA
• Sistem görevleri arasında daha önemli olanlar
KATMANI
ARAYÜZÜ yüksek öncelikli olarak atanır. Örneğin bir silah
sistemi için ateşleme ve stabilizasyona ilişkin
kalıtım kalıtım kısımlar yüksek öncelikli olarak belirlenirken,
navigasyon yeteneğine ilişkin kısımların
TV KAMERA TERMAL KAMERA önceliği düşük olarak atanabilir.
ARAYÜZÜ ARAYÜZÜ
• Önceliklendirme – çalışma süresi ilişkisi için
eşit önceliklilerin eşit zamana sahip olacağı
mekanizma seçilir.
Şekil 2. Fonksiyon Katmanı - Birim Katmanı arası • Periyodik işler için periyotta kabul edilebilir
soyutlama sapmalar bilinmeli ve tasarım ona göre
şekillendirilmelidir.
• Hata tespit için eklenen işlevler sistemin
BİRİM
KATMANI TERMAL KAMERA ARAYÜZÜ yeteneklerini bozmayacak şekilde düşük olarak
önceliklendirilir.
Yönlü ilişki
UML standardında gerçek zamanlılığa ilişkin tanımlar
SOYUT SERİ KANAL
içerilmektedir. (UML-RT). UML-RT tabanlı bir yazılım
DONANIM
KATMANI
ARAYÜZÜ geliştirme aracı kullanıldığında, “Görev”’lerin ve
“Öncelik”’lerin belirlenmesi model üzerinde
kalıtım kalıtım
yapılabilmekte, otomatik kod üretme yeteneği ile
WİNDOWS İŞLETİM VXWORKS İŞLETİM
belirlenen özelliklerde gerçek zamanlı çalışacak
SİSTEMİ SİSTEMİ yazılımın üretilmesi sağlanabilmektedir. [8]
SERİ KANAL ARAYÜZÜ SERİ KANAL ARAYÜZÜ

3.2.4. Gerçek Zaman Gereksinimlerinin Kodlamaya


Etkileri
Şekil 3. Birim Katmanı – Donanım Katmanı arası Gömülü yazılımlarda, gerçek zamanlılık ve donanım
soyutlama kaynak kısıtları doğrultusunda yazılımın dinamik ve
statik davranışı şekillendirilmektedir. Örneğin, çalışma
Gömülü yazılım tasarımında, hata tespit ve hataya zamanında oluşturulacak nesnelerin yaratılışının dinamik
dayanıklılık, bir diğer önemli faktör olarak karşımıza ya da statik olmasında bu iki nokta belirleyici olmaktadır;
çıkmaktadır. Kritik görevler için gerekli veri gerçek zamanlılık isterleri yüksek olan görevlere ilişkin
kaynaklarının yedeklenmesi sistem tasarımı kapsamında nesneler yazılımın başlangıcında bir kez yaratılarak,
ele alınırken, hatanın tespiti ve bir kaynakta hata sürekli görevleri yerine getirmeye çalışırken, bellek kısıtı
oluştuğunda yedek kaynağa geçişin – varsa gerçek nedeni ile, gerçek zamanlılık isteri yüksek olmayan ve
zamanlılık isterlerine uygun olarak – yerine getirilmesi sürekli çalışması gerekmeyebilecek nesnelerin görevin
yazılım tasarımında ele alınmalıdır. Bu kapsamda, icra edilmesi gerektiğinde oluşturulması,
yazılım tasarımında, yazılımın çalışmaya başlarken tamamlandığında yok edilmesi, böylelikle bellek
yapabileceği testlere ve sürekli olarak kullandığı donanım kullanımının optimum olarak sağlanması benimsenebilir.
kaynaklarını test etmeye yönelik kısımlar yer almalıdır.
Örneğin, ASELSAN Silah Sistemi projelerinde, açılış Kullanılan programlama dilinin sunduğu yüksek seviye
sırasında işlemci kaynaklarının (bellek v.s) testi yapılarak kütüphanelerin içerisindeki bazı hazır fonksiyonların
olası problemler erken aşamada tespit edilebilirken, kullanımı gerçek zamanlılık performansını olumsuz
yazılımın çalıştığı süre boyunca da çevre birimlerle olan yönde etkileyebilmektedir. Örneğin, C++ dilinde STL
bağlantısı kontrol edilmekte ve hata oluşturabilecek kullanımı ve üs alma işlemi için hazır fonksiyon
durumlar belirlenebilmektedir. kullanımının performans açısından olumsuz etkileri
gözlenmiştir.
3.2.3. Gerçek Zaman Gereksinimlerinin Yazılım
Tasarımına Etkileri 3.2.5. Gerçek Zaman Gereksinimlerinin Teste Etkileri
Gömülü gerçek zamanlı yazılımların tasarımında, gerçek Gömülü sistemlerde, hata oluşması durumunda,
zamanlılık isterlerini sağlayacak şekilde “Görev”’ olacak etkileşimin yüksek olması nedeni ile, hatanın donanım mı
kısımlarının tespiti, bu görevlerin “öncelik”lendirilmesi, yazılım mı kaynaklı olduğu bulmak çok kolay
“Önceliklendirme” ile “Çalışma Süresi” ilişkisinin olmamaktadır. Özellikle gerçek zamanlılık da söz konusu
kurulmasına yönelik belirlemelerin yapılması ise, durum daha karmaşık bir hal alabilmektedir. Böyle
gerekmektedir. [7] bir hata oluştuğunda, yazılım tasarımcısı/kodlayıcısı
tarafından eklenmiş olan hata ayıklama amaçlı kod
Gerçek zamanlılık isterlerini sağlayabilmek için parçaları ya da geliştirme ortamının hata ayıklama
ASELSAN MST grubu Silah Sistemlerinin yaklaşımı şu (debug) altyapısı, yazılımın çalışmasını etkileyerek,
şekilde olmuştur; hatanın ortadan kalkmasına bile sebep olabilmekte,
dolayısıyla tespit edilmesini engelleyebilmektedir.
Hatanın tespitinin böylesine zor olduğu gerçek zamanlı • Katmanlı mimari, görev dağılımını
gömülü sistemlerde, yazılımın sisteme entegrasyonu kolaylaştırması ve katmanlar arası soyutlamaya
sırasında ve öncesinde yapılan testler oldukça önem olanak sunması nedeniyle gömülü yazılımların
kazanmaktadır. “Beyaz kutu” ya da “Birim testi” olarak anlaşılırlık ve esneklik kalite faktörlerini
bilinen, yazılımı oluşturan alt birimlerin ayrı ayrı testleri karşılayabilmek açısından tercih edilmektedir.
ve “Kara kutu” olarak bilinen yazılımın tamamının
testleri, olası yazılım hatalarının mümkün olduğunca • UML tabanlı araçlar kullanılarak, nesne
erken safhalarda tespitini sağlayabilir. Beyaz kutu testi yönelimli tasarımla sağlanan modülerlik
kapsamında, yazılım tasarımcısı/kodlayıcısı tarafından desteklenmiştir. Model tabanlı yazılım
koda yapılan müdahalelerle yazılımı oluşturan tüm alt geliştirme yaklaşımı ile özellikle
parçaların testi tamamlanmalı ve bu parçalarda anlaşılabilirlik, test edilebilirlik, tekrar
değişiklikler oldukça testlerin tekrarlanması (gerileme kullanılabilirlik ve değişikliklere karşı
testleri) sağlanmalıdır. Beyaz kutu testleri tamamlanmış uyumlanabilirlik yönlerinden tasarım kalitesi
birimlerin yazılımı oluşturacak şekilde entegrasyonu artırılmıştır.
sonrası, kara kutu testi kapsamında, bağımsız bir şekilde
test senaryoları belirlenerek, belirlenen girdiler • Kullanılan UML tabanlı araçlarla yazılım
doğrultusunda yazılımın çıktılarının incelenebileceği modeli tanımlanmakla beraber otomatik kod
düzenekler kurulmalıdır. üretiminin de yapılabilmesi ile yazılım
tasarımcısına büyük kolaylıklar sağlanmıştır.
4. Sonuç Modelden başlayarak koda kadar aynı yazılım
geliştirme aracının kullanımının, yazılım
ASELSAN MST grubu kapsamındaki projelerin
geliştirme sürecinin her aşamasında tasarımın
ihtiyaçları gereği, kritik görevler icra eden sistem ve
güncel olarak denetlenebilmesi nedeni ile
altsistem tasarımları yapılmakta olup, bu sistemler gerçek
yazılım kalitesini artırıcı etkisi vardır.
zamanlı ve gömülü sistem özelliklerini içermektedir.
Uzun yıllardır bu teknolojiler doğrultusunda çalışmalar
ortaya koyan firmamız, bu alanda teknolojik gelişmeleri • Gerçek zamanlı gömülü yazılımların “Görev”’
takip etmekte ve sistem çözümlerine yansıtmaktadır. ve “Önceliklendirme” tasarımında, asenkron
Özellikle, yazılım tasarımı kapsamında, esneklik, olarak veri gelebilen arayüzlere yönelik
gelişmeye açıklık, uyumluluk, test edilebilirlik gibi kalite bileşenler ve kendi içinde işleyişe sahip
faktörleri değerlendirilerek, mimari ve tasarım çalışmaları bileşenler “Görev” olarak belirlenmiş, önemi
yönlendirilmektedir. Bu bildiride, gerçek zamanlı gömülü yüksek olan sistem yetenekleri ile bağlantılı
sistem ve yazılım tasarımı kapsamında elde edilen görevlerin öncelikleri daha yüksek olarak
tecrübeler paylaşılmaya çalışılmış, benzer çalışmalara verilmiştir. Bu sayede gerçek zamanlılık
ışık tutulması hedeflenmiştir. Elde edilen tecrübeler isterlerinin maksimum seviyede karşılanması
aşağıdaki şekilde özetlenebilir; sağlanmıştır.

• Gerçek zamanlı gömülü sistemlerin, sistem • Gerçek zamanlılık ve donanım kaynak kısıtları
tasarımı aşamasında, gerçek zaman performansı kodlama aşamasında da dikkate alınmıştır.
gözönünde bulundurularak, donanım – yazılım Örneğin, programlama dilinin sunduğu yüksek
görev paylaşımı ve işlemciler arası yük seviye kütüphanelerin içerisindeki bazı hazır
dağılımı analiz edilerek doğru kararların fonksiyonlar gerçek zamanlılık performansını
alınması sağlanmış; bu sayede yazılım olumsuz yönde etkilemesi nedeniyle
geliştirme ve entegrasyon çalışmaları sorunsuz kullanılmamıştır.
halledilebilmiştir.
• Hata tespitinin oldukça zor olduğu gerçek
• Standart bir veri yolu üzerinden birbirine zamanlı gömülü sistemlerde, yazılımın sisteme
bağlanmış donanımlar ile çalışılarak hem hazır entegrasyonu öncesinde yapılan “Beyaz kutu”
ürünler kullanılabilmiş hem de ileri aşamalar ve “Kara kutu” testleri sayesinde entegrasyon
için (özellikle ürün desteği aşaması) çözüm sırasında çıkabilecek problemlerin mümkün
seçenekleri oluşturulmuştur. olduğunca erken tespit edilmesi sağlanmış ve
doğruluğu yüksek yazılımlar elde edilmiştir.
• Gömülü yazılımlarda geliştirme faaliyetleri ayrı
bir platformda gerçekleştirildiğinden, yazılımın 5. Kaynakça
hedef platforma yüklenebilmesini sağlayacak [1] “Embedded System” Wikipedia,
altyapı sistem tasarımı aşamasında belirlenerek, http://www.wikipedia.org/wiki/Embedded_system
gerekli bağlantıların sistem tasarımında yer
alması sağlanmıştır. Bu sayede yazılım [2] “Real Time System” Wikipedia,
geliştirme ve ürün desteği aşamalarında http://www.wikipedia.org/wiki/Real-time_systems
sorunsuz bir altyapı hazır olabilmiştir.
[3] http://www.uml.org/
• Gerçek zamanlı gömülü yazılımların, gerçek
zamanlılık ve gelişmiş donanım erişim [4] Martin Fowler, Kendall Scott, “UML Distilled-
yetenekleri gibi temel ihtiyaçları karşılayabilen Applying The Standard Object Modeling
işletim sistemleri üzerinde geliştirilmesi Language”, Addison-Wesley, 1997
yazılım tasarım sürecini kolaylaştırmıştır.
[5] F. Buschmann, R. Meunier, H. Rohnert, P.
Sommerlad, M. Stal, “Pattern-Oriented Software
Architecture, Volume 1: A System Of Patterns” ,
John Wiley and Sons, 2000

[6] Jeff Garland, “Representing Software Architectures


for Large Scale Systems”, CrystalClear Software
Inc, 2001

[7] Bruce Powel Douglass, “Doing Hard Time –


Developing Real-Time Systems With UML,
Objects, Frameworks, and Patterns”, Addison-
Wesley, 1999

[8] Bruce Powel Douglass, “Real-Time UML –


Developing Efficient Objects For Embedded
Systems”, Addison-Wesley, 1998

6. Kısaltmalar
BSP : Board Support Package
COTS : Commercial Of The Shelf
FPGA : Field-Programmable Gate Array
PCI : Peripheral Component Interconnect
STL : Standard Template Library
UML : Unified Modeling Language
UML- : Unified Modeling Language Real Time
RT
VME : Versa Module Eurocard

You might also like