<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Gömülü Sistemler için Yazılım Mimari Çerçevesi</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Bedir Tekinerdogan</string-name>
          <email>1bedir@cs.bilkent.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Şafak Şeker</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gökhan Kahraman</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Metin Tekkalmaz</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Özgü Özköse Erdoğan</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Anahtar Kelimeler. Yazılım Mimari Modelleme</institution>
          ,
          <addr-line>Mimari Görünümler</addr-line>
          ,
          <country>Mimari Kalite Gerekleri</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Bilkent University, Department of Computer Engineering Bilkent 06800 Ankara</institution>
          ,
          <country country="TR">Turkey</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>PK.</institution>
          <addr-line>1, 06172 Yenimahalle, Ankara</addr-line>
          ,
          <country country="TR">Türkiye</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Ö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 geliş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 hareketle 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 kullanımı ile ilgili yaklaşım da sunulmaktadır.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Giriş</title>
      <p>
        Mimari girdiler paydaşların ihtiyaçlarını tanımlar ve mimariyi şekillendirir. Bir
paydaş 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 [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Mimariyi
tanımlarken paydaşların ilgilerine göre sistemin farklı mimari görünümler ile
modellenmesi ve dokümante edilmesi yaygın bir uygulamadır [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ][
        <xref ref-type="bibr" rid="ref6">6</xref>
        ][
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. 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
modellenmesi, anlaşılması, iletişimi ve analizi için destek olur.
      </p>
      <p>Ş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.</p>
      <p>1..*</p>
      <sec id="sec-1-1">
        <title>Paydaş</title>
        <p>sahip
1..*
İlgi
sahip</p>
      </sec>
      <sec id="sec-1-2">
        <title>Sistem</title>
        <p>adreslenir
1..*
Bakış Açısı
*</p>
      </sec>
      <sec id="sec-1-3">
        <title>Mimari</title>
        <p>Çerçeve
sahip
seçer
sahip 1..*
uyar</p>
      </sec>
      <sec id="sec-1-4">
        <title>Mimari</title>
        <p>tanımlanır</p>
      </sec>
      <sec id="sec-1-5">
        <title>Mimari</title>
      </sec>
      <sec id="sec-1-6">
        <title>Tanımlama</title>
        <p>
          Organize olur
1..*
Görünüm
Ş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 [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]:
        </p>
        <p>“Mimarileri tanımlamak için belirli bir alanda ya da paydaş topluluğu arasında
oluşturulan kurallar, prensipler ve pratikler”</p>
        <p>
          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ı
nedeniyle, 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ı [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] mevcut bakış açılarını uyumlandırma ve yeni bakış açılarını ekleme
konusunda mekanizmalar sağlamaktadır.
        </p>
        <p>Mimari çerçeve, fikirlerin ve bakış açılarının modellenmesinde ve mimarilerin
dokümante edilmesinde önemli rol oynamaktadır. Ancak, mimari modelleme
konusundaki mevcut yaklaşımlar geleneksel masaüstü ve bazen dağıtık geliştirme
platformlarına odaklanıyor gibi görünmektedir. Gömülü sistemler sıklıkla veya açık
olarak ele alınmamaktadır.</p>
        <p>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
ardı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.</p>
        <p>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</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Teorik Altyapı ve Motivasyon</title>
      <p>
        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 [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
faydalanı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
yaklaşı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ı
halihazırda belli mimari stiller tanımlamakla birlikte farklı ihtiyaçlar için yeni stiller de
tanımlanabilir.
      </p>
      <p>
        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. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
hedeflerine göre yaklaşımları iki gruba ayırmışlardır.
      </p>
      <p>
        İ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
mimarisini tanımlayan Eş Zamanlılık Bakış Açısı [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]
─ Sistem elemanları arasında davranışsal konuları dilden bağımsız bir şekilde
tanımlayan Davranışsal Tanım [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
İ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ı [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]
─ Çalışma platformunun parça ve bağlantılara tahsisinin içeren Konuşlandırma Stili
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] ve işlevlerin fiziksel kaynaklarla ve çalışma zamanı özellikleri ile ilişkilendiren
Çalışma Mimarisine [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] ek olarak [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]’de verilen bakış açıları (bkz. Tablo 1.).
      </p>
      <p>
        Tablo 1. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]’den uyarlanan mevcut görünümler
      </p>
      <p>Bakış açısı</p>
      <sec id="sec-2-1">
        <title>Eş Zamanlılık [16]</title>
      </sec>
      <sec id="sec-2-2">
        <title>Davranış Tanımı [3]</title>
      </sec>
      <sec id="sec-2-3">
        <title>Konuşlandırma [16]</title>
      </sec>
      <sec id="sec-2-4">
        <title>Konuşlandırma</title>
        <p>
          Stili [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]
Çalışma
Mimarisi [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]
Çalışma Bakış
Açıları [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]
İlgi alanı
- Görev yapıları ve işlevlerin
görevlere dağılımı
- İşlem (process) arası iletişim ve
durum yönetimi
- Senkronizasyon ve bütünlük
- Açılış, kapanış, görev hataları
- Haberleşme tipleri
- Çalışma sırası ile ilgili kısıtlar
- Zamanlayıcı ile tetiklenen işler
- Donanım (özellikler ve miktar)
- Hazır kullanılan yazılımlar ile ilgili
ihtiyaçlar ve teknoloji uyumlulukları
- Ağ gereksinimleri, fiziksel ve
kapasite kısıtları
- Yazılım elemanları ile donanım
arasında tahsis, göç ve kopyalama
ilişkileri
- Donanım özellikleri, (Örn. bant
genişliği, kaynak kullanımı)
- Çalışma konfigürasyonu ve
donanımsal birimlerle ilişki
- Konfigürasyonun dinamik davranışı
- Haberleşme protokolü
- Çalışma zamanı varlıklarının tanımı
- Sistem çalışması
Sistem Elemanları
İşlem, İşlem grupları,
izlekler(thread),
işlemler arası
haberleşme
Kullanım durumları,
yapısal elemanlar,
işlemler, durumlar,
uygulamalar ve
nesneler
İşlemci ve istemci
düğümleri, ağ
bağlantıları, donanım
birimleri ve işlemler
        </p>
      </sec>
      <sec id="sec-2-5">
        <title>Yazılım elemanları (işlemler) ve donanım (işlemci, bellek, disk, vb.)</title>
      </sec>
      <sec id="sec-2-6">
        <title>Işlemler, görevler,</title>
        <p>izlekler, istemciler,
sunucular, tampon
alanları, mesaj
kuyrukları, ve sınıflar
Parçalar, işlemler,
izlekler, işlemler
arası haberleşme</p>
        <p>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.</p>
        <p>Sistemin anlaşılması: Gömülü sistemin daha iyi anlaşılmasına yönelik bakış
açılarıdır. Çerçeve, farklı paydaşların farklı gereksinimlerine yönelik farklı bakış
açıları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östermeleri açısından da gereklidirler.</p>
        <p>Proje planlama: Görünümler farklı tasarım alternatiflerini tartışmak ve projeyi
buna göre planlamak amacıyla da kullanılabilir.</p>
        <p>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
arası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
amacıyla kullanılabilir.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Gömülü Sistemler için Metamodel</title>
      <p>
        Arias [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], 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
aktiviteleri tanımlamaktadır. Arias, çalışma bileşenleri (executing components)
arasındaki bağımlılıkları analiz eden bir metamodel kullanmıştır. Bu metamodelin
performans yükü ile ilişkili paralelleştirme analizine odaklanan daha rafine edilmiş bir
versiyonu Muhammad ve ark. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] 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 [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] 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
birden 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
bileş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.
Aktiviteler veri ulaşım, kod kullanım, platform kullanım gibi farklılaştırılabilir.
Çalışma
Senaryosu
      </p>
      <p>1..n
Temel
Servis</p>
      <p>Ek
Servis</p>
      <p>Temel
Algoritma</p>
      <p>Ek
Algoritma</p>
      <p>Temel
Birim</p>
      <p>Ek</p>
      <p>Birim
Yazılım Modülü
1..n</p>
      <p>derlenir
aktive eder
aktive eder
0..n
0..n
İzlek
(Task)</p>
      <p>1..n</p>
      <p>Aktivite
gerçekler
kul anır</p>
      <p>Senaryo
adımı
1..n</p>
      <p>gerçeklenir
1..n</p>
      <p>Yazılım
Konfigürasyon</p>
      <p>Birimi</p>
      <p>gerektirir
1..n
Çalışır Yazılım</p>
      <p>Birimi</p>
      <p>kul anır
çalışır
Çalıştırma</p>
      <p>Birimi</p>
      <p>Bellek Modeli
İşlem
Çekirdek</p>
      <p>Temel Yazılım
Konfigürasyon Birimi
1..n</p>
      <p>Arayüz
Sağlanan
Arayüz</p>
      <p>Beklenen</p>
      <p>Arayüz
konuşlandırılır
1..n
İşlemci
Kartı</p>
      <p>Düğüm
İle çalışır
İşlemci
Şekil 2. Gömülü sistemlerin bakış açılarının türetildiği metamodel
4</p>
      <p>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
tariflenmektedir. 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
Allocation) bakış açısı, bileşenler ile işleme birimleri arasındaki eşleşmeyi
tanımlamaktadı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.</p>
      <p>Tablo 2. Gömülü Sistemler Bakış Açıları Kümesi.</p>
      <p>Bakış Açısı
Çalışma Senaryosu – YKB
Tahsis
(Execution Scenario to SCI
Allocation)
YKB Tahsis
(SCI Allocation)
Senaryo Adımı – Modül
Tahsis
(Scenario Step to component
Allocation)
Bileşen – Düğüm Tahsisi
(Component to Node
Allocation)
Bileşen Etkileşim
(Component Interaction)
Bileşen - İzlek Ayrıştırma
(Component-Thread
Decomposition)
Modül – İzlek Tahsis
(Module to Thread Allocation)
İzlek Etkileşim
(Thread Interaction)
Davranış
(Behavior)</p>
      <p>Tanımı
Çalışma senaryolarını ve senaryoları
oluşturan ana adımları ve bu adımların
hangi YKB’de gerçeklendiğini tanımlar
Çalışır bileşenlerin YKB’lere ve
modüllerin çalışır bileşenlere tahsisini tanımlar
Senaryo adımlarının sıralanışını ve
senaryo adımlarının modüllere tahsisini
tanımlar
Çalışır bileşenlerin düğümlere (node)
tahsisini tanımlar
Çalışır bileşenlerin çalışma esnasındaki
birbirleriyle olan ilişkisini tanımlar
İzleklerin ayrışımını çalışır bileşen
tanımlar
Modüllerin izleklere tahsisini tanımlar
İzlekler arasındaki ilişkiyi tanımlar
Tanımlanan bakış açılarındaki
elemanların arasındaki davranış ve etkileşim
tanımlanır</p>
      <p>Tablo 3. “Bileşen – Düğüm Tahsisi” Bakış Açısı
Bölüm
«Bakış Açısı İsmi»
«Genel Açıklama»
«İlgiler»
«Tipik Paydaşlar»
«Mimari Eleman »
«İlişkiler»
«Model tipleri ve gösterim»
&lt;&lt;DCI&gt;&gt;
İsim
&lt;&lt;Processor Card&gt;&gt;</p>
      <p>İsim
&lt;&lt;Card&gt;&gt;</p>
      <p>İsim
&lt;&lt;Processing Unit&gt;&gt;
İsim</p>
      <p>Donanım
Konfigürayon Birimi
İşlemci Kartı
Kart
İşlemci Birimi
(Node)</p>
      <p>Tahsisi” bakış açısı ile üretilmiş bir görünüm
Şekil 3’de
gösterilmektedir.
&lt;&lt;Card&gt;&gt;
FPGA
&lt;&lt;Processor Card&gt;&gt;</p>
      <p>CPU_7448
&lt;&lt;Processing Unit&gt;&gt;</p>
      <p>CPU_0
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.</p>
      <p>Davranış Bakış Açısı
Görünümler arası
tutarlılığı kontrol et</p>
      <p>[tutarlı]
Mimari Tasarım Dokümanını</p>
      <p>hazırla
Mimari Tasarım Dokümanını
gözden geçir
Ş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
seviye 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
modeli 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
sistem 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
bileş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
veya farklı kartlarda çalıştırılabilirler; aynı çalışır bileşen birden fazla düğüm
üzerinde 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üzlerin tanımları ortam, protokol, veri tipi bilgileri içerebilir.</p>
      <p>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.</p>
      <p>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
bilgiler 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üncellenebilir. Güncellenme ihtiyacı yoksa süreç tamamlanır ve sistemin geliştirilmesinde
kullanılmak için doküman hazır duruma gelir.
6</p>
    </sec>
    <sec id="sec-4">
      <title>Sonuçlar</title>
      <p>Yazılım mimarisini modellerken farklı ilgileri ifade edebilmek için çoklu
görünümlerin 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
metamodel tanımlanmıştır. Farklı perspektifler temel alınarak ve ISO/IEC 42010
standardı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
anlatı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</p>
      <p>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.</p>
    </sec>
    <sec id="sec-5">
      <title>Kaynaklar</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Arias</surname>
            ,
            <given-names>T. B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Avgeriou</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>America</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Analyzing the Actual Execution of a Large Software-Intensive System for Determining Dependencies</article-title>
          .
          <source>In Proceedings of the 2008 15th Working Conference on Reverse Engineering</source>
          , pp.
          <fpage>49</fpage>
          -
          <lpage>58</lpage>
          . WCRE. IEEE Computer Society, Washington, DC(
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>P.</given-names>
            <surname>Clements</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Northrop</surname>
          </string-name>
          .
          <source>Software Product Lines: Practices and Patterns</source>
          . Boston, MA:Addison-Wesley,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>P.</given-names>
            <surname>Clements</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Bachmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Garlan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ivers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Little</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Merson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Nord</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Stafford</surname>
          </string-name>
          .
          <article-title>Documenting Software Architectures: Views and</article-title>
          <string-name>
            <given-names>Beyond. Second</given-names>
            <surname>Edition. Addison-Wesley</surname>
          </string-name>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>E. M.</given-names>
            <surname>Dashofy</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. van der Hoek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.N.</given-names>
            <surname>Taylor</surname>
          </string-name>
          .
          <article-title>A comprehensive approach for the development of modular software architecture description languages</article-title>
          ,
          <source>ACM Transactions on Software Engineering and Methodology (TOSEM)</source>
          ,
          <source>v.14 n.2</source>
          , p.
          <fpage>199</fpage>
          -
          <lpage>245</lpage>
          , April 2005
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Eclipse</given-names>
            <surname>Modeling Framework Web Site</surname>
          </string-name>
          , http://www.eclipse.org/emf/,
          <source>accessed on April</source>
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>C.</given-names>
            <surname>Hofmeister</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Nord</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Soni</surname>
          </string-name>
          . Applied Software Architecture. Addison-Wesley, NJ, USA.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. ISO/IEC 10746-2:1996] International Organization for Standardization &amp;
          <string-name>
            <surname>International Electrotechnical Commission. Information Technology - Open Distributed Processing - Reference Model</surname>
          </string-name>
          :
          <source>Foundations (ISO/IEC 10746-2)</source>
          .
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. ISO/IEC 42010:2007]
          <article-title>Recommended practice for architectural description of softwareintensive systems (</article-title>
          <source>ISO/IEC 42010)</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Kolb</surname>
            <given-names>R</given-names>
          </string-name>
          ,
          <string-name>
            <surname>John</surname>
            <given-names>I</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Knodel</surname>
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Muthig</surname>
            <given-names>D</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haury</surname>
            <given-names>U</given-names>
          </string-name>
          , Meier G.
          <article-title>Experiences with product line development of embedded systems at Testo AG</article-title>
          .
          <source>Proceedings of the 10th International Software Product Line Conference</source>
          , Baltimore,
          <string-name>
            <surname>U.S.A.</surname>
          </string-name>
          ,
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>P.</given-names>
            <surname>Kruchten</surname>
          </string-name>
          .
          <article-title>The 4+1 View Model of Architecture</article-title>
          .
          <source>IEEE Software</source>
          ,
          <volume>12</volume>
          (
          <issue>6</issue>
          ):
          <fpage>42</fpage>
          -
          <lpage>50</lpage>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>A.J.</given-names>
            <surname>Lattanze. Architecting Software Intensive Systems: A Practitioner's Guide</surname>
          </string-name>
          , Auerbach Publications,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>N.</given-names>
            <surname>Medvidovic</surname>
          </string-name>
          and
          <string-name>
            <given-names>R. N.</given-names>
            <surname>Taylor</surname>
          </string-name>
          .
          <article-title>A classification and comparison framework for software architecture description languages</article-title>
          ,
          <source>IEEE Trans. Software Eng.</source>
          , vol.
          <volume>26</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>70</fpage>
          -
          <lpage>93</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>N.</given-names>
            <surname>Muhammad</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Boucké</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Berbers</surname>
          </string-name>
          , “
          <article-title>Parallelism viewpoint: An architecture viewpoint to model parallelism behaviour of parallelism-intensive software systems</article-title>
          ,”
          <fpage>Jun2010</fpage>
          . [Online]. Available: https://lirias.kuleuven.be/handle/123456789/272344. [Accessed:
          <fpage>05</fpage>
          -Jun-2012].
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>K.</given-names>
            <surname>Pohl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Böckle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. van der Linden. Software</given-names>
            <surname>Product Line Engineering - Foundations</surname>
          </string-name>
          , Principles, and Techniques, Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>M.</given-names>
            <surname>Rosenmüller</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Siegmund</surname>
          </string-name>
          .
          <article-title>Automating the Configuration of Multi Software Product Lines</article-title>
          .
          <source>In Proceedings of the International Workshop on Variability Modelling of Software-intensive Systems (VaMoS)</source>
          . Linz, Austria, Jan.
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>N.</given-names>
            <surname>Rozanski</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Woods</surname>
          </string-name>
          ,
          <article-title>Software Systems Architecture: working with stakeholders using viewpoints and perspectives:</article-title>
          <source>Addison Wesley</source>
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>J.A.</given-names>
            <surname>Zachman</surname>
          </string-name>
          .
          <article-title>A Framework for Information Systems Architecture</article-title>
          .
          <source>IBM Systems Journal</source>
          , Vol.
          <volume>26</volume>
          . No 3, pp.
          <fpage>276</fpage>
          -
          <lpage>292</lpage>
          ,
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>