=Paper=
{{Paper
|id=None
|storemode=property
|title=Gömülü Sistemler için Yazılım Mimari Çerçevesi
|pdfUrl=https://ceur-ws.org/Vol-1072/submission23.pdf
|volume=Vol-1072
|dblpUrl=https://dblp.org/rec/conf/uyms/TekinerdoganESKT13
}}
==Gömülü Sistemler için Yazılım Mimari Çerçevesi==
Gömülü Sistemler için Yazılım Mimari Çerçevesi
Bedir Tekinerdogan1, Şafak Şeker2, Gökhan Kahraman3, Metin Tekkalmaz4, Özgü
Özköse Erdoğan5
1
Bilkent University, Department of Computer Engineering
Bilkent 06800 Ankara, Turkey
2,3,4,5
Aselsan,
PK. 1, 06172 Yenimahalle, Ankara, Türkiye
bedir@cs.bilkent.edu.tr
1
2,3,4,5
{sseker|gokhank|tkalmaz|ozkose}@aselsan.com.tr
Özet. Tasarım kararları verilirken farklı paydaşlar için mimari görünümlerin
oluşturulması yazılım mimari tasarımında kullanılan yaygın pratiklerden biridir.
Bir mimari çerçeve, önerilen mimari bakış açılarını organize eder ve yapısını
ortaya koyar. Literatürde farklı mimari çerçeveler sunulmuştur. Ancak bunlar
öncelikli olarak geleneksel masaüstü tabanlı alanlara ve bazıları da dağıtık ge-
liştirme platformlarına odaklanmıştır. Bu bildiride Aselsan’da yürütülen çoklu
ürün hattı mühendisliği projesi kapsamında geliştirilen gömülü sistemlerden ha-
reketle bir yazılım mimari çerçevesi tanımlanmaktadır. Gömülü sistemlerin ve
ilgili metamodellerin literatürde incelenmesinin ardından Aselsan’daki gömülü
yazılımlar için bir metamodel oluşturulmuş ve bu metamodel temel alınarak
çerçeve tanımlanmıştır. Çerçeve, her biri metamodel’in belirli bir perspektifini
temel alacak ve farklı paydaşların ihtiyaçlarını adresleyecek şekilde dokuz bakış
açısını içermektedir. Bu bildiride bakış açılarının seçimi ve Aselsan’daki kulla-
nımı ile ilgili yaklaşım da sunulmaktadır.
Anahtar Kelimeler. Yazılım Mimari Modelleme, Mimari Görünümler, Mimari
Kalite Gerekleri
1 Giriş
Mimari girdiler paydaşların ihtiyaçlarını tanımlar ve mimariyi şekillendirir. Bir pay-
daş bir sistem üzerinde ilgisi (concern) olan kişi, ekip ya da organizasyon olarak
tanımlanabilir. Her paydaş’ın ilgisi mimarın verdiği kararlara etki eder [11]. Mimariyi
tanımlarken paydaşların ilgilerine göre sistemin farklı mimari görünümler ile model-
lenmesi ve dokümante edilmesi yaygın bir uygulamadır [3][6][10]. Bir mimari
görünüm,belirli bir ilgiyi desteklemek için sistemi oluşturan elemanların bir alt setinin
ve aralarındaki ilişkilerin gösterimidir. Birden fazla görünümün kullanılması,ilgilerin
ayrıştırılmasını sağlar ve dolayısıyla yazılım mimarisinin farklı paydaşlar için model-
lenmesi, anlaşılması, iletişimi ve analizi için destek olur.
Şekil 1’de, IEEE tarafından önerilen mimari tanımlama standardı temel alınarak
mimari görünümler için kavramsal model gösterilmiştir. Şekil 1’de gösterildiği gibi
bir sistemin kendisiyle ilgisi olan bir ya da daha fazla paydaşı vardır. İlgiler bakış
açılarıyla adreslenir ve görünümler bakış açılarından elde edilir. Her sistemin bir
mimari tanımlama ile elde edilen belli bir mimarisi vardır. Mimari tanımlama bakış
açılarıyla uyumlu bir grup görünümü içerir.
Sistem
sahip sahip
Mimari
1..* tanımlanır
Paydaş
seçer Mimari
sahip Tanımlama
Organize olur
1..*
1..* 1..*
sahip 1..*
adreslenir
İlgi Bakış Açısı Görünüm
uyar
*
Mimari
Çerçeve
Şekil 1. Mimari Görünümler için Kavramsal Model (IEEE Standard)
Bir mimari çerçeve önerilen mimari bakış açılarını organize eder ve yapılandırır. ISO
standardının tanımı şu şekildedir [7]:
“Mimarileri tanımlamak için belirli bir alanda ya da paydaş topluluğu arasında
oluşturulan kurallar, prensipler ve pratikler”
Mimari çerçeveler, ilk zamanlarda, sınırlı sayıda ve belli bakış açılarının kümesi
olarak önerilmiştir. Farklı sistemler için farklı ilgilerin adreslenmesi ihtiyacı nedeni-
yle, bakış açılarının sabitlenmemesi gerektiğinin ve bunun yerine çoklu bakış
açılarının kullanılabileceğinin farkına varılarak bu yöndeki eğilim artmıştır. Örnek
olarak güncel bir mimari çerçeve olan “Görünümler ve Ötesi” (Views and Beyond)
yaklaşımı [3] mevcut bakış açılarını uyumlandırma ve yeni bakış açılarını ekleme
konusunda mekanizmalar sağlamaktadır.
Mimari çerçeve, fikirlerin ve bakış açılarının modellenmesinde ve mimarilerin
dokümante edilmesinde önemli rol oynamaktadır. Ancak, mimari modelleme ko-
nusundaki mevcut yaklaşımlar geleneksel masaüstü ve bazen dağıtık geliştirme plat-
formlarına odaklanıyor gibi görünmektedir. Gömülü sistemler sıklıkla veya açık
olarak ele alınmamaktadır.
Bu bildiride Aselsan’da Çoklu Ürün Hattı Mühendisliği projesi kapsamında
geliştirilen Gömülü Sistemler için Yazılım Mimari Çerçevesi tanımlanmaktadır.
Gömülü sistemler ve ilgili metamodeller ile ilgili yapılan literatür araştırmasının ar-
dından oluşturulan metamodel kullanılarak çerçeve tanımlanmıştır. Çerçeve, her biri
metamodelin belirli bir perspektifi temel alınarak ve farklı paydaş ilgilerini karşılayan
dokuz bakış açısından oluşturulmuştur. Bu çalışmada bu bakış açılarının seçimi ve
Aselsan’daki kullanımı açıklanmaktadır.
Bildirinin kalanı şu şekilde organize edilmiştir: Bölüm 2’de çalışma için teorik
altyapı ve motivasyon sunulmaktadır. Mimari bakış açılarının modellenmesi için
kavramların tanımlandığı metamodel Bölüm 3’te anlatılmaktadır. Bölüm 4 gömülü
sistemler için tanımlanan bakış açılarını sunmaktadır. Bölüm 5’te bakış açılarının
kullanımı incelenmektedir. Son olarak Bölüm 6 çalışma sonuçlarını paylaşmaktadır.
2 Teorik Altyapı ve Motivasyon
Bu çalışmada gömülü sistemlerin gereksinimlerini ifade etmek amacıyla bazı bakış
açıları tanımlanmaktadır. Bunun yanında gömülü sistemlerin diğer yazılım ağırlıklı
sistemler ile ortak özellikleri de bulunmaktadır, bu tip genel ilgilerin ifade edilmesi
için ise güncel bir yaklaşım olan “Görünümler ve Ötesi” yaklaşımından [3] fayda-
lanılmaktadır. “Görünümler ve Ötesi” yaklaşımında bakış açılarının tanımlanması için
görünüm tipi (view category) ve stil (style) kavramları kullanılmaktadır. Bu yak-
laşıma göre üç tip görünüm tipi belirlenebilir: Sistemin temel gerçekleme birimlerinin
tanımlanması için Modül Görünümü (modul), sistemin çalışma birimlerinin
tanımlanması için Birim ve Bağlantılar Görünümü (components and connectors) ve
yazılım ile yazılımın geliştirme ve çalışma ortamları ile ilişkisinin tanımlanması için
Konuşlandırma Görünümü (Deployment). “Görünümler ve Ötesi” yaklaşımı hali-
hazırda belli mimari stiller tanımlamakla birlikte farklı ihtiyaçlar için yeni stiller de
tanımlanabilir.
Son dönemde mimari görünümlerin tanımlanması için genel yaklaşımların yanı
sıra gömülü sistemlere özel yaklaşımlar da göze çarpmaktadır. Arias et al. [1]
hedeflerine göre yaklaşımları iki gruba ayırmışlardır.
İlk grupta aşağıdakiler yer almaktadır:
─ Sistemde eş zamanlı çalışan parçaları açık bir şekilde belirtmek amacıyla, işlevsel
elemanları eş zamanlılık birimleri ile ilişkilendirerek sistemin eş zamanlılık mima-
risini tanımlayan Eş Zamanlılık Bakış Açısı [16]
─ Sistem elemanları arasında davranışsal konuları dilden bağımsız bir şekilde tanım-
layan Davranışsal Tanım [3]
İkinci grupta aşağıdakiler yer almaktadır:
─ Sistemin konuşlandırılacağı ortamın tanımlanması amacıyla ortaya konulan ve
sistemin çalışma zamanı ortamına bağımlılıklarını da içeren Konuşlandırma Bakış
Açısı [16]
─ Çalışma platformunun parça ve bağlantılara tahsisinin içeren Konuşlandırma Stili
[3] ve işlevlerin fiziksel kaynaklarla ve çalışma zamanı özellikleri ile ilişkilendiren
Çalışma Mimarisine [6] ek olarak [1]’de verilen bakış açıları (bkz. Tablo 1.).
Tablo 1. [1]’den uyarlanan mevcut görünümler
Bakış açısı İlgi alanı Sistem Elemanları
Eş Zamanlılık - Görev yapıları ve işlevlerin İşlem, İşlem grupları,
[16] görevlere dağılımı izlekler(thread),
- İşlem (process) arası iletişim ve işlemler arası haber-
durum yönetimi leşme
- Senkronizasyon ve bütünlük
- Açılış, kapanış, görev hataları
Davranış - Haberleşme tipleri Kullanım durumları,
Tanımı [3] - Çalışma sırası ile ilgili kısıtlar yapısal elemanlar,
- Zamanlayıcı ile tetiklenen işler işlemler, durumlar,
uygulamalar ve
nesneler
Konuşlandırma - Donanım (özellikler ve miktar) İşlemci ve istemci
[16] - Hazır kullanılan yazılımlar ile ilgili düğümleri, ağ
ihtiyaçlar ve teknoloji uyumlulukları bağlantıları, donanım
- Ağ gereksinimleri, fiziksel ve kapa- birimleri ve işlemler
site kısıtları
Konuşlandırma - Yazılım elemanları ile donanım Yazılım elemanları
Stili [3] arasında tahsis, göç ve kopyalama (işlemler) ve donanım
ilişkileri (işlemci, bellek, disk,
- Donanım özellikleri, (Örn. bant vb.)
genişliği, kaynak kullanımı)
Çalışma - Çalışma konfigürasyonu ve Işlemler, görevler,
Mimarisi [6] donanımsal birimlerle ilişki izlekler, istemciler,
- Konfigürasyonun dinamik davranışı sunucular, tampon
- Haberleşme protokolü alanları, mesaj
- Çalışma zamanı varlıklarının tanımı kuyrukları, ve sınıflar
Çalışma Bakış - Sistem çalışması Parçalar, işlemler,
Açıları [1] izlekler, işlemler
arası haberleşme
Genel olarak aşağıda verilen ihtiyaçlar gömülü sistemlere yönelik bakış açılarının
oluşmasında etkili olmuştur, bu ihtiyaçlar farklı paydaşların gömülü sistemler için
ilgilerini belirtmektedir.
Sistemin anlaşılması: Gömülü sistemin daha iyi anlaşılmasına yönelik bakış açıla-
rıdır. Çerçeve, farklı paydaşların farklı gereksinimlerine yönelik farklı bakış açıla-
rını içererek sistemin farklı özelliklerinin anlaşılmasını sağlar.
İletişim: Gömülü sistem bakış açıları sistem tasarımı ve gerçeklemesi ile ilgili
teknik bilginin aktarımı açısından faydalıdırlar. Bu sayede tasarımcının geliştirici,
yönetici gibi farklı paydaşlar ile iletişimini sağlar. Gömülü sistemlere yönelik
görünümler yazılımın platform ile nasıl bir etkileşim içerisinde olduğunu göster-
meleri açısından da gereklidirler.
Proje planlama: Görünümler farklı tasarım alternatiflerini tartışmak ve projeyi
buna göre planlamak amacıyla da kullanılabilir.
Gereksinim ile tasarım ve gerçekleme arası uyumluluk: İdealde mimari tanımlama
güvenilirlik, güvenlik, performans gibi işlevsel olmayan gereksinimlerin nasıl kar-
şılandığını da tanımlıyor olmalıdır. Gerçekleme ile hedeflenen gereksinimler ara-
sında farklılıklar oluşması sıklıkla karşılaşılan bir durumdur. Mimari tanım bu
farklılaşmaların belirlenmesi ve gerçeklemeyi uygun şekilde yönlendirmesi ama-
cıyla kullanılabilir.
3 Gömülü Sistemler için Metamodel
Arias [1], koşar yazılım için bir metamodel tanımlamıştır. Bu metamodel, fonksiyonel
bileşenleri koşar zaman elemanlarıyla ilişkilendirmekte ve çalışma zamanındaki ak-
tiviteleri tanımlamaktadır. Arias, çalışma bileşenleri (executing components) arasın-
daki bağımlılıkları analiz eden bir metamodel kullanmıştır. Bu metamodelin perfor-
mans yükü ile ilişkili paralelleştirme analizine odaklanan daha rafine edilmiş bir
versiyonu Muhammad ve ark. [13] tarafından sunulmuştur. Şu anki literatürü temel
alarak ve gömülü sistem tasarımı ihtiyaçlarına da odaklanarak gömülü sistemler için
Şekil 2’de gösterilen bir metamodel önermekteyiz. Metamodelin kavramları aşağıda
tariflenmiştir:
─ Sistemin çalışması, bir kullanıcı etkileşimi veya çalışma senaryosunun koşması ile
başlar.
─ Çalışma senaryosu geliştirici ve son kullanıcı bakış açıları ile hazırlanmış görü-
nümlerle [10] detaylı olarak tanımlanmış normal ve sıra dışı kullanımları tanımlar.
Senaryolar kullanım durumu çizimleriyle tanımlanabilir. Bir senaryo belli bir
işlevin nasıl yerine getirildiğini adım adım açıklar.
─ Yazılım Konfigürasyon Birimi (YKB) (SCI-Software Configuration Item) terimi
yazılım konfigürasyon yönetiminin yapısal bir parçasını ifade eder. Her bir YKB
sistem seviyesinde tanımlı çalışma senaryolarının bir kısmını gerçekler. YKB bir-
den fazla çalışır bileşen ve her bir çalışır bileşen birden fazla modülden oluşabilir.
─ Bir yazılım bileşeni (çalışır bileşen), tariflenmiş arayüzler ve dış bağımlılıklar ile
oluşmuş bir birimdir. Bileşenleri haberleştirebilmek için, bileşenlerin dış dünyadan
beklediği ve dış dünyaya sunduğu arayüzler tanımlanmıştır.
─ Gömülü sistemlerde yazılım bileşenleri çekirdek (kernel) veya işlem (process)
durumlarında çalıştırılabilir. Çekirdek durumda çalışan bileşenler işletim sistemi
ile aynı hafıza bölümünü paylaşırlar. Bununla birlikte, işlem durumunda çalışan bi-
leşenler kendileri için ayrılmış bir korumalı hafıza bölümünde çalışırlar; kod, veri
ve işletim sistemi kaynaklarını bu hafıza bölümünde tutarlar.
─ Bir düğüm (processing node), üzerinde yazılım bileşenlerinin yüklendiği ve çalıştı-
rıldığı bilgisayar veya donanımı tarifler. Düğüm terimi tek çekirdekli bir işlemci
olabileceği gibi, çok çekirdekli bir işlemcinin her bir çekirdeğini de ifade edebilir.
─ Yazılım Konfigürasyon Birimleri içerdikleri bileşen sayısına göre bir veya daha
fazla düğüm üzerinde konumlandırılmaktadır.
─ Bir izlek (thread) bir işletim sistemi tarafından çalışması planlanabilen en küçük
yazılım birimidir. Bir izlek küçük boyutlu bir işlemdir.
─ Bir işlem, ana izleği koşturarak çalışmaya başlar; fakat daha sonra yeni izlekler
oluşturabilir. Bir izlek, bir işlem kapsamında ardışık olarak tanımlı bazı yazlım
kodlarını çalıştırır ve aynı kapsamda bazı işletim sistemi kaynaklarını kullanır.
─ Aktiviteler izlekler tarafından yerine getirilmesi gereken görevleri tanımlar. Aktivi-
teler veri ulaşım, kod kullanım, platform kullanım gibi farklılaştırılabilir.
Çalışma 1..n Senaryo
Senaryosu adımı
1..n
gerçeklenir
1..n
Yazılım
Temel Yazılım
Konfigürasyon
Konfigürasyon Birimi
Birimi
gerektirir
1..n
1..n Çalışır Yazılım 1..n
Yazılım Modülü Arayüz
Birimi
derlenir
kullanır
Sağlanan Beklenen
Temel Ek Temel Ek Temel Ek
Arayüz Arayüz
Servis Servis Algoritma Algoritma Birim Birim
çalışır
0..n
konuşlandırılır
aktive eder Çalıştırma
İzlek aktive eder Düğüm
Birimi 1..n
(Task)
0..n
gerçekler
kullanır İşlemci
İle çalışır İşlemci
Kartı
1..n
Bellek Modeli
Aktivite
İşlem Çekirdek
Şekil 2. Gömülü sistemlerin bakış açılarının türetildiği metamodel
4 Gömülü Sistemler için Bakış Açıları
Önceki bölümde tariflenen metamodel temel alınarak oluşturulan gömülü sistem bakış
açıları Tablo 2 de gösterilmektedir. Mimari çerçeve dokuz adet ilişkili bakış açısından
oluşur. Bu bakış açıları hem Aselsan hem de gömülü sistemlerin genel ihtiyaçlarını
karşılayacak şekilde belirlenmiştir. Bakış açışları standart bir şablon yapısı ile tari-
flenmektedir. Yer sınırlamasından dolayı bütün bakış açıları yerine örnek bir bakış
açısı detaylı olarak verilmiştir. “Bileşen Düğüm Tahsisi” (Component to Node Allo-
cation) bakış açısı, bileşenler ile işleme birimleri arasındaki eşleşmeyi tanımla-
maktadır. Bu bakış açısı Tablo 3’te gösterilmektedir. Bu bakış açısı kapsamında,
gömülü yazılımlarda kullanılan bileşen tipleri de tariflenmektedir.
Tablo 2. Gömülü Sistemler Bakış Açıları Kümesi.
Bakış Açısı Tanımı
Çalışma Senaryosu – YKB Çalışma senaryolarını ve senaryoları
Tahsis oluşturan ana adımları ve bu adımların
(Execution Scenario to SCI hangi YKB’de gerçeklendiğini tanımlar
Allocation)
YKB Tahsis Çalışır bileşenlerin YKB’lere ve modül-
(SCI Allocation) lerin çalışır bileşenlere tahsisini tanımlar
Senaryo Adımı – Modül Senaryo adımlarının sıralanışını ve sen-
Tahsis aryo adımlarının modüllere tahsisini
(Scenario Step to component tanımlar
Allocation)
Bileşen – Düğüm Tahsisi Çalışır bileşenlerin düğümlere (node)
(Component to Node Alloca- tahsisini tanımlar
tion)
Bileşen Etkileşim Çalışır bileşenlerin çalışma esnasındaki
(Component Interaction) birbirleriyle olan ilişkisini tanımlar
Bileşen - İzlek Ayrıştırma İzleklerin ayrışımını çalışır bileşen
(Component-Thread Decom- tanımlar
position)
Modül – İzlek Tahsis Modüllerin izleklere tahsisini tanımlar
(Module to Thread Allocation)
İzlek Etkileşim İzlekler arasındaki ilişkiyi tanımlar
(Thread Interaction)
Davranış Tanımlanan bakış açılarındaki eleman-
(Behavior) ların arasındaki davranış ve etkileşim
tanımlanır
Tablo 3. “Bileşen – Düğüm Tahsisi” Bakış Açısı
Bölüm Tanım
«Bakış Açısı İsmi» Bileşen – Düğüm Tahsisi
«Genel Açıklama» Bileşenlerin düğümlere dağılımı
«İlgiler» İhtiyaç duyulan düğümler nelerdir?
Düğümlerin ayrışımı nasıldır?
Bileşenler düğümlere nasıl dağıtılır?
«Tipik Paydaşlar» Sistem Mühendisleri
«Mimari Eleman » Düğüm, Işlem, Çekirdek
«İlişkiler» Dağılım
«Model tipleri ve gösterim»
<> Donanım
İsim Konfigürayon Birimi Relations
<>
<> İşlemci Kartı
İsim
<>
İsim
<> Kart
İsim
<>
İsim
<> İşlemci Birimi
İsim (Node) <>
İsim
<> Or <> Çekirdek Süreci <> / <> /
<> <>
İşlem (Kullanıcı
<> Or <>
Modu)
“Bileşen Düğüm Tahsisi” bakış açısı ile üretilmiş bir görünüm Şekil 3’de
gösterilmektedir.
<>
Receiver
<>
FPGA
<>
CPU_7448
<>
CPU_0
<> <>
ControlComponent Algorithm
Component
Şekil 3. “Bileşen – Düğüm Tahsisi” bakış açısı için örnek görünüm
5 Bakış Açılarının Kullanımı
Önceki bölümlerde yapısal bakış açıları ve dinamik davranış modelleme
tanımlanmıştı. Bu bölümde mimariyi dokümante ederken bakış açılarının kullanımı
için bazı önemli noktalar anlatılmaktadır. Şekil 4 bakış açılarının seçimi için gerekli
tüm akışı UML aktivite diyagramı kullanarak göstermektedir.
Çalışma Senaryosu –
YKB Tahisis Bakış Açısı
Davranış Bakış Açısı
Senaryo Adımı - Modül
YKB Tahsisi Bakış Açısı
Tahsis Bakış Açısı
Görünümler arası
tutarlılığı kontrol et
[tutarlı değil] Görünümleri
Bileşen Etkileşim Bakış uyumlandır
Açısı
[tutarlı]
Bileşen - Düğüm Tahsis
Mimari Tasarım Dokümanını
Bakış Açısı
hazırla
Bileşen - İzlek Ayrışım
Bakış Açısı Mimari Tasarım Dokümanını
gözden geçir
[zorunlu] Modül – İzlek [iyileştirme
Tahsis Bakış Açısı gerekiyor]
Dokümanı düzelt
[zorunlu değil]
[görüş yok]
İzlek Etkileşim Bakış
Açısı
Şekil 4. Gömülü sistemler bakış açılarının kullanımını gösteren aktivite diyagramı
1. Öncelikle kavramsal ve üst seviye modellerin tanımlanması, ardından daha alt se-
viye koşar-zaman modellerle devam edilmesi fikri süreçte temel alınmıştır. Bu
amaçla ilk olarak “Çalışma Senaryosu – YKB Tahsis” bakış açısı kullanılarak her
bir YKB için sistem seviyesinde tanımlı senaryoların hangilerinin gerçekleneceği
ve bu senaryoların ana adımları belirlenir. Bu bakış açısı sistemin davranışsal mo-
deli ile gerçekleme modeli arasında bağlantıyı sağlar.
2. Bundan sonra YKB’yi oluşturan çalışır bileşenler belirlenerek “YKB Tahsis” bakış
açısı ile gösterilir. Gömülü sistemlerde çalışır bileşenler bir veya birden fazla izlek
içerebilir, YKB Tahsis bakış açısında izlek detayına girilmeden çalışır bileşenler
belirlenir.
3. Bu aşamada daha detay analiz isteniyor ise senaryo adımlarının çalışır bileşenlere
dağılımı “Senaryo Adımı – Bileşen Tahsis” bakış açısı kullanılarak tanımlanabilir.
Böylece her bir modül için atanan senaryo adımları belirlenerek gerçekleme ve sis-
tem entegrasyon testleri için daha detay bilgi sağlanmış olur.
4. Daha sonra çalışır bileşenlerin birbirleri ile ve dış dünya ile olan arayüzleri “Bile-
şen Etkileşim” bakış açısı ile tanımlanabilir. Bu görünüm izlekler arası haberleşme
arayüzlerinin görülmesini ve YKB dış arayüz gereklerinin hangi izlek tarafından
sağlandığının görülmesini sağlar.
5. Bu adımlardan sonra “Bileşen – Düğüm Tahsisi” bakış açısı kullanılarak çalışır bi-
leşenlerin hangi düğümlerde çalışacağı modellenir. Çalışır bileşenler ortak olarak
tek bir düğüm üzerinde çalışabileceği gibi aynı kart üzerinde farklı düğümlerde ve-
ya farklı kartlarda çalıştırılabilirler; aynı çalışır bileşen birden fazla düğüm üzerin-
de de çalışabilir. “Bileşen – Düğüm Tahsisi” bakış açısı düğümlerdeki işlem gücü
ihtiyacı yanında çalışır bileşenler arası iletişim altyapılarının tanımlanmasına da
yardım eder.
6. Akışın son adımı izleklerin detayını göstermektir.
7. İlk olarak “Bileşen - İzlek Ayrıştırma” bakış açısı kullanılarak her bir çalışır bile-
şen içinde yer alan izlekler modellenir.
8. Daha sonra eğer gerekliyse modüllerin izleklere dağılımı gösterilebilir; bu bakış
açısı hangi modüllerin izlek içerisinde yer alacağını gösterir, bir modül birden fazla
izlek içinde yer alarak o izlek içeriğinde çalışabilir.
9. “İzlek Etkileşim” bakış açısı ile izlekler arasındaki arayüzler tanımlanır. Arayüzle-
rin tanımları ortam, protokol, veri tipi bilgileri içerebilir.
Tüm yapısal görünümler modellendikten sonra davranışsal modeller tanımlanabilir.
Bunun ardından bütün görünümler arasındaki tutarlılık kontrol edilir. Bunun için
bakış açılarındaki elemanlar ve söz dizimi incelenir. Eğer herhangi bir tutarsızlık
tespit edilirse buna karşılık gelen adaptasyonlar tanımlanmalıdır. Bu işlem bir kaç
iterasyon gerektirebilir.
Sürecin takip eden adımı daha önceki adımlarda tanımlanan aktivitelerle mimariyi
dokümante etmektir. Görünümleri tanımlamanın yanı sıra ihtiyaç duyulan diğer bilg-
iler de eklenebilir. Mimari dokümanlar tamamlandıktan sonra diğer önemli paydaşlar
tarafından gözden geçirilmelidir. Eğer iyileştirmeler gerekiyorsa doküman güncel-
lenebilir. Güncellenme ihtiyacı yoksa süreç tamamlanır ve sistemin geliştirilmesinde
kullanılmak için doküman hazır duruma gelir.
6 Sonuçlar
Yazılım mimarisini modellerken farklı ilgileri ifade edebilmek için çoklu görünüm-
lerin kullanılmasına ihtiyaç duyulmaktadır. Mevcut mimari görünüm yaklaşımları
gömülü sistemler alanında uygulanmak için yeterli olmamaktadır. Bu bildiride
Aselsan’da gömülü sistemleri modellemek için rehber olarak kullanılan bir mimari
çerçeve anlatılmıştır. Görünümlerin sağlam bir altyapıdan türetilebilmesi için ilk
olarak gömülü sistemlerde kullanılan önemli kavramları gösterecek şekilde bir meta-
model tanımlanmıştır. Farklı perspektifler temel alınarak ve ISO/IEC 42010 stand-
ardının mimariyi tariflemek için gösterdiği yol takip edilerek dokuz farklı bakış açısı
ortaya çıkarılmış ve tanımlanmıştır. Buna ek olarak bakış açılarının kullanımı da an-
latılmıştır. Bu bildiride bahsedilen bakış açılarının tümü çeşitli gömülü sistemlerin
alan mimarisini modellemek için Aselsan’da halen kullanılmaya devam edilmektedir.
7 Teşekkür
Bu süreçte birlikte çalıştığımız iş arkadaşlarımız Selma Dökmen, Rabia Esra Giray ve
Erhan Örümlü’ye katkılarından dolayı teşekkür ederiz.
Kaynaklar
1. Arias, T. B., Avgeriou, P., and America, P.: Analyzing the Actual Execution of a Large
Software-Intensive System for Determining Dependencies. In Proceedings of the 2008
15th Working Conference on Reverse Engineering, pp. 49-58. WCRE. IEEE Computer
Society, Washington, DC(2008)
2. P. Clements, L. Northrop. Software Product Lines: Practices and Patterns. Boston,
MA:Addison-Wesley, 2002.
3. P. Clements, F. Bachmann, L. Bass, D. Garlan, J. Ivers, R. Little, P. Merson, R. Nord, J.
Stafford. Documenting Software Architectures: Views and Beyond. Second Edition. Addi-
son-Wesley, 2010.
4. E. M. Dashofy , A. van der Hoek , R.N. Taylor. A comprehensive approach for the deve-
lopment of modular software architecture description languages, ACM Transactions on
Software Engineering and Methodology (TOSEM), v.14 n.2, p.199-245, April 2005
5. Eclipse Modeling Framework Web Site, http://www.eclipse.org/emf/, accessed on April
2011.
6. C. Hofmeister, R. Nord, and D. Soni. Applied Software Architecture. Addison-Wesley,
NJ, USA.
7. ISO/IEC 10746-2:1996] International Organization for Standardization & International
Electrotechnical Commission. Information Technology - Open Distributed Processing -
Reference Model: Foundations (ISO/IEC 10746-2). 1996.
8. ISO/IEC 42010:2007] Recommended practice for architectural description of software-
intensive systems (ISO/IEC 42010), 2011.
9. Kolb R, John I, Knodel J, Muthig D, Haury U, Meier G. Experiences with product line de-
velopment of embedded systems at Testo AG. Proceedings of the 10th International
Software Product Line Conference, Baltimore, U.S.A.,
10. P. Kruchten. The 4+1 View Model of Architecture. IEEE Software, 12(6):42–50, 1995.
11. A.J. Lattanze. Architecting Software Intensive Systems: A Practitioner’s Guide, Auerbach
Publications, 2009.
12. N. Medvidovic and R. N. Taylor. A classification and comparison framework for software
architecture description languages, IEEE Trans. Software Eng., vol. 26, no. 1, pp. 70–93,
2000.
13. N. Muhammad, N. Boucké, and Y. Berbers, “Parallelism viewpoint: An architecture vi-
ewpoint to model parallelism behaviour of parallelism-intensive software systems,” Jun-
2010. [Online]. Available: https://lirias.kuleuven.be/handle/123456789/272344. [Acces-
sed: 05-Jun-2012].
14. K. Pohl, G. Böckle, F. van der Linden. Software Product Line Engineering – Foundations,
Principles, and Techniques, Springer, 2005.
15. M. Rosenmüller and N. Siegmund. Automating the Configuration of Multi Software Pro-
duct Lines. In Proceedings of the International Workshop on Variability Modelling of
Software-intensive Systems (VaMoS). Linz, Austria, Jan. 2010.
16. N. Rozanski and E. Woods, Software Systems Architecture: working with stakeholders
using viewpoints and perspectives: Addison Wesley 2005.
17. J.A. Zachman. A Framework for Information Systems Architecture. IBM Systems Journal,
Vol. 26. No 3, pp. 276-292, 1987.