<!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>Yazılım Emniyeti Perspektifinin Görünümler ve Ötesi Mimari Çerçevesine Uygulanması</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Havva Gülay Gürbüz</string-name>
          <email>havva.gurbuz@bilkent.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nagehan Pala Er</string-name>
          <email>nagehan@cs.bilkent.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Bedir Tekinerdogan</string-name>
          <email>bedir@cs.bilkent.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Bilkent Üniversitesi</institution>
          ,
          <addr-line>Bilgisayar Mühendisliği Bölümü, 06800, Ankara</addr-line>
          ,
          <country country="TR">Türkiye</country>
        </aff>
      </contrib-group>
      <fpage>523</fpage>
      <lpage>534</lpage>
      <abstract>
        <p>Özet. Farklı paydaşların farklı ilgilerini gösteren mimari görünümleri modellemek için birçok mimari bakış açısı yaklaşımı ortaya konulmuştur. Mimari bakış açılarında sistem ilgileri ile beraber kalite ilgileri de ele alınmalıdır. Bu bağlamda mimari görünümlerdeki kalite ilgilerini gösterebilmek için mimari perspektifler tanımlanmıştır. Bir mimari perspektif, istenen kalite ilgisinin gerçekleştirilebilmesi için uygulanması gereken aktiviteleri, taktikleri ve ilkeleri içerir. Her bir perspektif, birden fazla mimari görünüm tarafından ele alınabilir. Bazı kalite ilgileri için literatürde farklı mimari perspektifler sunulmuştur. Yazılım emniyeti perspektifi, Rozanksi ve Woods'un perspektif tanımına göre emniyet ilgilerini mimari görünümlerde ele alabilmek için daha önceki bir çalışmamızda tanımlanmıştır. Yazılım emniyeti, emniyet-kritik sistemler için önemli bir ilgi olup, emniyet-kritik durumlardaki risklerin azaltılması ya da ortadan kaldırılması için mimari analiz sürecinin başlangıç aşamasından itibaren değerlendirilmesi gerekir. Bu çalışmada yazılım emniyeti perspektifinin Görünümler ve Ötesi mimari çerçevesine uygulanması sunulmaktadır. Yazılım emniyeti perspektifinin Görünümler ve Ötesi mimari çerçevesine uygulanması, emniyet ilgileriyle alakalı tasarım ve analiz kararlarında sistem ve yazılım mimarlarına yardımcı olmaktadır. Yazılım emniyeti perspektifinin uygulaması gerçek bir endüstriyel uygulama kullanılarak açıklanmaktadır. Anahtar Kelimeler: Yazılım mimari tasarımı, yazılım mimari modelleme, yazılım mimari analizi, emniyet-kritik sistemler</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Giriş</title>
      <p>
        Tasarım aşamasında karar alınırken farklı paydaşlar için mimari görünümlerin
(architectural views) modellenmesi, yazılım mimari tasarımında kullanılan yaygın
pratiklerden birisidir [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Bir mimari görünüm belirli bir ilgiyi desteklemek için
tanımlanan sistem elemanları ve bu elemanlar arasındaki ilişkileri gösterir. Bir sistemin
birden fazla görünüm ile ifade edilmesi ilgilerin ayrıştırılmasını sağlar. Böylelikle her
bir paydaş için yazılım mimarisinin modellenmesine, daha iyi anlaşılmasına ve analiz
edilmesine yardımcı olur. Mimari bakış açıları (architectural viewpoints), mimari
görünümlerin oluşturulması, kullanılması ve analiz edilmesi için tanımlanan kuralları
ve ilkeleri içerir. Mimari bakış açıları bir mimari çerçeve (architectural framework)
tanımlanarak organize edilir ve yapılandırılır. Mimari çerçevelere Kruchten'in 4+1
Görünüm Modeli [7], Rozanski ve Woods'un mimari görünümler yaklaşımı [11] ve
Görünümler ve Ötesi (Views&amp;Beyond) yaklaşımı [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] örnek olarak verilebilir.
      </p>
      <p>Kalite ilgilerini adresleyebilmek için, genel olarak, mimari çerçeve yaklaşımlarında
ayrı birer mimari görünüm sunulmamıştır. Örneğin, ISO/IEC 42010 standardı [6]
farklı ilgileri adreslemek için özel bakış açıları tanımlamamıştır. Görünümler ve Ötesi
yaklaşımında ise tanımlanan her bir görünümde kalite ilgileri dolaylı olarak ifade
edilse de, kalite ilgilerini tanımlamak için ayrı görünümler sunulmamıştır. Bu
kapsamda, mimari görünümlerdeki kalite ilgilerini adreslemek için, Rozanski ve Woods
tarafından mimari perspektif (architectural perspective) yaklaşımı [11] ortaya
konulmuştur. Bir mimari perspektif istenen kalite ilgisini gerçekleştirebilmek için
uygulanması gereken aktiviteleri, taktikleri ve ilkeleri içerir ve birden fazla mimari
görünüm tarafından dikkate alınır. Rozanski ve Woods güvenlik, performans,
ölçeklenebilirlik, erişilebilirlik gibi bazı kalite ilgileri için mimari perspektifler tanımlamıştır.</p>
      <p>Emniyet-kritik sistemlerdeki bir aksama ya da işlev bozukluğu ölümlere, insanlar
üzerinde ciddi yaralanmalara ya da çevresel hasarlara neden olabileceği için, bu
sistemler tasarlanırken yazılım emniyeti önemli bir ilgi haline gelmektedir. Riskleri
azaltmak ya da ortadan kaldırmak için emniyet ilgisinin gerçekleştirim yapılmadan
önce tasarım aşamasının başlangıcından itibaren değerlendirilmesi kritik bir önem arz
etmektedir. Emniyet ilgisini ele alabilmek için birçok standart ve gerçekleştirim
yaklaşımları tanımlanmış, fakat hiçbiri emniyet ilgisini mimari modelleme düzeyinde göz
önünde bulundurmamıştır. Bu sebeple, daha önceki çalışmamızda emniyet ilgisini
mimari düzeyde adresleyebilmek için Rozanski ve Woods yaklaşımındaki kılavuza
göre yazılım emniyet perspektifini tanımlanmıştır [2][3]. Emniyet perspektifi emniyet
ilgileriyle alakalı tasarım ve analiz kararlarının alınmasında sistem ve yazılım
mimarlarına yardımcı olmaktadır. Bu çalışmada yazılım emniyet perspektifinin Görünümler
ve Ötesi mimari çerçevesine uygulaması sunulmaktadır. Yazılım emniyeti
perspektifinin uygulaması gerçek bir endüstriyel örnek uygulama kullanılarak açıklanmaktadır.</p>
      <p>Bu çalışmanın kalanı şu şekilde organize edilmiştir: Bölüm 2'de yazılım mimarisi
modelleme ile ilgili teorik altyapı anlatılmaktadır. Yazılım emniyet perspektifi Bölüm
3'te açıklanmaktadır. Bölüm 4'te yazılım emniyet perspektifinin Görünümler ve Ötesi
yaklaşımına uygulaması sunulmaktadır. Bölüm 5'de gerçek bir endüstriyel uygulama
kullanılarak yazılım emniyet perspektifinin uygulanması anlatılmaktadır. Bölüm 6,
ilgili çalışmaları sunmaktadır. Son olarak Bölüm 7 çalışma sonuçlarını
paylaşmaktadır.
2
2.1</p>
      <p>Yazılım</p>
    </sec>
    <sec id="sec-2">
      <title>Mimarisi Modelleme</title>
      <p>Görünümler ve Ötesi Mimari Çerçevesi</p>
      <p>
        Görünümler ve Ötesi (Views&amp;Beyond) mimari çerçevesi [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] yazılım mimari
tasarımını desteklemek için her biri farklı stiller içeren üç farklı mimari görünümden
oluşmaktadır. Bu yaklaşımda bakış açılarını tanımlamak için görünüm tipi (view type)
ve stil (style) kavramları kullanılmaktadır. Bu yaklaşıma göre sistemin temel
gerçekleştirim birimlerinin tanımlanması için modül görünümü (module view), sistemin
çalışma birimlerinin tanımlanması için bileşen&amp;bağlantılar görünümü (component &amp;
connector view), ve sistemdeki yazılımlar ile yazılım geliştirme ve çalıştırma
ortamları arasındaki ilişkinin tanımlanması için tahsis görünümü (allocation view)
oluşturulmuştur.
      </p>
      <p>Modül görünümünde modüller birbiriyle tutarlı sorumlulukları gerçekleyen birincil
sistem elemanlarıdır. Bu görünüm kapsamında ayrıştırma (decomposition), kullanım
(uses), genelleştirme (generalization), katmanlı (layered), ilgiler (aspects), veri
modeli (data model) stilleri tanımlanmıştır. Ayrıştırma stili sistemdeki gerçekleştirim
birimlerinin modül ve alt-modül olarak nasıl ayrıldığını ve sistemdeki sorumlulukların
modüller ve alt-modüller arasında nasıl paylaştırıldığını gösterir. Kullanım stili
modüller ve alt-modüller arasındaki bağımlılıkları gösterir. Genelleştirme stili modüller
arasındaki kalıtım ilişkisini gösterir. Katmanlı stil, birbiriyle ilgili modülleri katman
adı verilen bir yapıda toplayarak, katmanlar arasındaki kullanılabilirlik ilişkisini
tanımlar. Bir katmandan diğer katmana kullanabilir ilişkisi tanımlanmışsa, birinci
katmandaki herhangi bir modül ikinci katmandaki herhangi bir modülü kullanabilir
demektir. İlgiler stili enine kesen ilgileri gerçekleyen modülleri ve bu modüllerin
sistemdeki diğer modüllerle birlikte nasıl ilişkilendirildiğini gösterir. Veri Modeli stili
ise veri varlıklarının yapılarını ve birbirleri arasındaki ilişkileri tanımlar.</p>
      <p>Bileşen&amp;bağlantılar görünümünde bileşenler sistemdeki çalışma birimleri olarak
ele alınmıştır. Bu görünüm sistemin çalışma zamanı açısından ele alınmasını sağlar.
Bu görünüm kapsamında çağrı-dönüş (call-return), veri akışı (data flow),
olaytabanlı (event-based) ve depo (repository) ana stilleri tanımlanmış ve sıklıkla
kullanılan stiller bu stiller altında kategorize edilerek tanımlanmıştır. Çağrı-Dönüş stili
bileşenler tarafından sağlanan servisleri ve bu servisleri eşzamanlı bir şekilde başlatan
diğer bileşenleri gösterir. Çağrı-Dönüş stili altında istemci-sunucu (client-server),
noktadan noktaya (peer-to-peer) ve servis odaklı mimari (service-oriented
architecture) stilleri tanımlanmıştır. Veri Akışı stili sistemdeki veri akışını modeller.
Veri Akışı stili kapsamında borular ve filtreler (pipe-and-filters) stili tanımlanmıştır.
Olay-Tabanlı stili eşzamanlı olmayan olay ve mesajlar üzerinden etkileşimde bulunan
bileşenleri gösterir. Bu stil kapsamında yayımla-abone ol (publish-subscribe) stili
tanımlanmıştır. Depo stili büyük miktarda kalıcı ve paylaşılan veriler üzerinden
etkileşimde bulunan bileşenleri gösterir. Depo stili kapsamında paylaşılan veri (shared
data) stili tanımlanmıştır. Bütün bu stillerin yanında çok katmanlı (multi-tier) stili de
tanımlanmıştır. Bu stilde bileşenler katman (tier) adı verilen yapılarda
gruplandırılarak gösterilir.</p>
      <p>Tahsis Görünümü'nde sistemdeki yazılım elemanları ve bu yazılım elemanlarının
geliştirme ve çalıştırma ortamları arasındaki ilişkisi tanımlanmıştır. Bu görünüm
kapsamında konuşlandırma (deployment), kurulum (install), iş ataması (work
assignment) stilleri tanımlanmıştır. Konuşlandırma stili yazılım bileşenleri ve
bağlantıları ile yazılımın üzerinde çalıştığı donanımlar arasındaki eşleştirmeyi belirtir.
Kurulum stili mimarideki bileşenler ile çalışma ortamındaki dosya sistem yapıları
arasındaki eşleştirmeyi tanımlar. İş Ataması stili yazılım bileşenleri ile bu bileşenlerin
geliştirilmesinden sorumlu çalışanlar, takımlar ve çalışma birimleri arasındaki eşleştirmeyi
tanımlar.
2.2</p>
      <p>Mimari Perspektifler</p>
      <p>Mimari tasarımı desteklemek için Rozanski ve Woods yedi farklı bakış açısı içeren
bir mimari çerçeve ortaya koymuştur [11]. Rozanski ve Woods kalite ilgilerinin
tanımlanan mimari bakış açılarını çapraz kestiklerini (crosscutting) ve her bir kalite
ilgisi için farklı birer bakış açısı tanımlamanın anlamlı olmadığını belirtmiştir. Bu
sebeple Rozanski ve Woods istenilen kalite ilgilerinin gerçekleştirilebilmek için
uygulanması gereken aktiviteleri, taktikleri ve ilkeleri içeren mimari perspektif kavramını
sunmuştur. Sistem genelinde kalite ilgilerini ele alabilmek için tanımlanan her ilgili
perspektif birden fazla bakış açısına uygulanabilir. Böylelikle mimari görünümler
mimariyi tanımlarken, mimari perspektifler sistemin istenen kalite özelliklerini
sağladığını garantilemek için mimariyi analiz etmeye ve üzerinde değişiklikler yapmaya
olanak sağlar. Rozanski ve Woods güvenlik (security), performans &amp; ölçeklenebilirlik
(performance &amp; scalability), kullanılırlık &amp; dayanıklılık (availability &amp; resilence),
evrim (evolution), erişilebilirlik (accessibility), geliştirim kaynağı (development
resource), uluslararasılaştırma (internationalization), yerleşim (location), düzenleme
(regulation) ve kullanılabilirlik (usability) perspektiflerini tanımlamıştır. Her bir
perspektif ilgili olduğu kalite ilgisini gerçekleştirmektedir.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Yazılım Emniyet Perspektifi</title>
      <p>Daha öncede belirtildiği gibi emniyet-kritik sistemler için emniyet önemli bir
ilgidir. Emniyet ilgisini gerçekleştirebilmek için uygulanması gereken taktikleri ve
ilkeleri mimari tasarım düzeyinde ele alabilmek için daha önceki çalışmamızda [2][3]
Rozanski ve Woods'un perspektif tanımları referans alınarak, literatürde var olmayan
yazılım emniyeti perspektifi tanımlanmıştır.
İstenen Kalite
Uygulanabilirlik
İlgiler
Aktiviteler
Mimari
Taktikler
Problemler ve
Tuzak Noktalar</p>
      <p>Emniyet ile ilgili kararlar hakkında bilgi sağlamak ve ciddi hasarlara ve tehlikelere
yol açabilecek sistem işlevlerini denetlemek ve kontrol etmek
Tehlikeli ve emniyet-kritik işlevler içeren tüm sistemler
Hata (Failure), Tehlike (Hazard), Risk, Hata Toleransı (Fault Tolerance), Kullanılırlık
(Availability), Güvenilirlik (Reliability), Doğruluk (Accuracy), Performans
Tehlikelerin belirlenmesi, Risklerin tanımlanması, Emniyet gereksinimlerinin
belirlenmesi, Emniyet modelinin oluşturulması, Emniyet gereksinimlerine göre
değerlendirme yapılması
Hataları ve tehlikeleri önleme, Hataları tespit etme yöntemlerini tanımlama, Oluşan
hataların sonuçlarını azaltma
Hata Toleransını tanımlama, Emniyet modelinin ya da gereksinimlerinin açık bir
şekilde tanımlanmamış olması, Azımsanmış emniyet problemleri</p>
      <p>Tablo 1. Yazılım Emniyet Perspektifi Tanımı</p>
      <p>
        Tablo 1 emniyet perspektifinin tanımını sunmaktadır. Yazılım emniyet perspektifi
ile emniyet ile ilgili kararlar hakkında bilgi sağlamak ve ciddi hasarlara ve tehlikelere
yol açabilecek sistem işlevlerini denetlemek ve kontrol etmek amaçlanmaktadır. Bu
perspektif tehlikeli ve emniyet-kritik işlevler içeren tüm sistemlerin tasarım
aşamasında bir kılavuz olarak kullanılabilir. Emniyet perspektifi tarafından adreslenen
ilgiler literatür taraması ile belirlenmiş ve Tablo 1'de gösterilmiştir. Mimari tasarım
aşamasında emniyet perspektifinin uygulanması için gereken aktiviteler ise aşağıdaki
gibi sıralanmıştır:
1. Tehlikelerin belirlenmesi: Emniyet gereksinimlerinin belirlenebilmesi için tehlike
analizi gerçekleştirilerek sistemdeki olası tehlikeler, tehlikelere sebep olabilecek
durumlar, tehlikelerin sonuçları ve sistemdeki her bir tehlike için tehlikenin şiddeti
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] (ölümcül, kritik, marjinal, ihmal edilebilir) belirlenmelidir.
2. Risklerin tanımlanması: Tehlikeler belirlendikten sonra, bu tehlikelerle ilgili riskler
tanımlanmalıdır. Risk tanımı belirlenen tehlikenin şiddeti ve oluşma olasılığı (sık
sık, olası, nadiren, çok az, olası olmayan) bilgileri ile ifade edilir. Daha sonra hata
ağacı analizi [
        <xref ref-type="bibr" rid="ref6">8</xref>
        ] (fault tree analysis), olay ağacı analizi, simülasyon gibi metotlarla
risk değerlendirmesi yapılmalıdır.
3. Emniyet gereksinimlerinin belirlenmesi: Emniyet modelinin oluşturulabilmesi için,
tanımlanan tehlikelere dayanılarak emniyet gereksinimlerinin belirlenmesi gerekir.
Emniyet gereksinimleri belirlenirken, sistem gereksinimleri göz önünde
bulundurularak ön tehlike analizi, fonksiyonel tehlike analizi, hata ağacı analizi ve ön sistem
emniyet analizi [14] metotları kullanılabilir.
4. Emniyet modelinin oluşturulması: Sistem tasarımında kullanılan modellerin
yanında, sistemdeki emniyet ilgisinin doğru bir şekilde anlaşılıp geliştirilebilmesi için
emniyet-kritik elemanların ve bileşenlerin de özel olarak gösterildiği emniyet
modelleri de oluşturulmalıdır. Emniyet modeli UML diyagramlarına stereotipiler
eklenerek [10], alana özgü diller ile tanımlanarak [15] ve özdevinirler [17]
kullanılarak emniyet gereksinimlerinden türetilebilir.
5. Emniyet gereksinimlerine göre değerlendirme yapılması: Emniyet modeli
oluşturulduktan sonra, modelin belirlenen emniyet gereksinimleri ile uyumlu olup
olmadığı kontrol edilmelidir. Bunun için bazı örnek emniyet durumları oluşturularak
bunlar üzerinden emniyet modeli kontrol edilebilir. Ayrıca üçüncü otorite
tarafından değerlendirme süreci gerçekleştirilebilir. Eğer oluşturulan model ile emniyet
gereksinimleri arasında çelişki varsa, hatalar giderilene kadar emniyet modeli
gözden geçirilip düzeltmeler yapılmalıdır.
      </p>
      <p>Tanımlanan mimari perspektif tarafından adreslenen kalite özellikleri istenen
düzeyde sağlanmadığında tanımlanan mimari taktikler ile yazılım tasarımına katkıda
bulunulmaya çalışılmıştır. Bu çerçevede, yazılım emniyeti tasarımını
destekleyebilmek için hataları ve tehlikeleri önleme, hataları tespit etme yöntemlerini tanımlama,
oluşan hataların sonuçlarını azaltma taktikleri tanımlanmıştır. Yazılım tasarımı
yapılırken, emniyet ilgisinin gösterilmesi ile ilgili olası sorunlar ve zorluklar hata
toleransının tanımlanması, emniyet modelinin ya da gereksinimlerinin açık bir şekilde
tanımlanmamış olması, azımsanmış emniyet problemleri olarak belirlenmiştir.
4</p>
      <p>Yazılım Emniyet Perspektifinin Görünümler ve Ötesi Mimari
Çerçevesine Uygulanması</p>
      <p>Tablo 2 yazılım emniyeti perspektifinin Görünümler ve Ötesi mimari çerçevesine
uygulamasını göstermektedir.
Mimari Stil
Ayrıştırma
Kullanım
Genelleştirme
Katmanlı
Depo
Konuşlandırma
Kurulum
İş Ataması
İlgiler
Veri Modeli
Çağrı-Dönüş
Veri Akışı
Olay-tabanlı</p>
      <p>Yazılım emniyetinin önemli olduğu alanlardan bir tanesi de aviyonik alanıdır.
Aviyonik sistemlerde oluşan hataların ölümcül sonuçlara neden olan kazalara sebep
olduğu görülmüştür. Aviyonik alanındaki yazılımların geliştirilmesi ve
sertifikalanması için yapılması gereken aktiviteleri anlatan DO-178C [12] gibi çeşitli standartlar
bulunmaktadır. Özellikle ticari aviyonik sistemlerin bu standartlara uygun olarak
geliştirilmesi ve sertifikalanması gerekmektedir. Bu bölümde, yazılım emniyeti
perspektifinin uygulaması gerçek bir endüstriyel aviyonik uygulama kullanılarak
açıklanmaktadır. Endüstriyel aviyonik uygulama gerçekte binlerce gereksinim
içermektedir. Bu bölümde anlatılan uygulama için Tablo 3’de verilen örnek bir gereksinim
kümesi seçilmiştir.
1. Tehlikelerin belirlenmesi:</p>
      <p>Emniyet mühendisliği çalışmaları kapsamında ilk olarak tehlike analizi yapılarak
tehlikeler belirlenir. Bu analiz emniyet mühendisleri, sistem mühendisleri ve ilgili
alandaki uzmanlarla (aviyonik mühendisleri ve pilotlar) beraber gerçekleştirilir.
Örnek uygulamamız için bu analiz sonucunda belirlenen tehlikeler, olası nedenleri,
sonuçları ve tehlikenin şiddeti gibi bilgilerle beraber Tablo 4’de verilmiştir. TH1, TH2,
TH3 ve TH4 olarak numaralandırılan tehlikelerin şiddeti ölümcül olarak
belirlenmiştir. Çünkü bu tehlikelerin olası sonucu hava aracı kazasıdır. Örneğin doğru yakıt
miktarı yerine yüksek bir yakıt miktarının gösterilmesi, pilotları yanlış yönlendirecek ve
gidecekleri yere yakıt miktarı yetersiz olsa bile ulaşabilecekleri gibi yanlış bir izlenim
edinmelerine sebep olabilecektir. TH5 olarak numaralandırılan tehlikenin şiddeti ise
ihmal edilebilir olarak belirlenmiştir çünkü bu hata sadece yer istasyonu ile iletişim
hatasına neden olabilir.</p>
      <p>Gereksinim
Kalan yakıt
miktarının gösterilmesi
Yüksekliğin
gösterilmesi
Konumun
gösterilmesi
Durumun (attitude)
gösterilmesi
Radyo frekansının
gösterilmesi</p>
      <p>Açıklama
Hava aracında kala yakıt miktarı, bütün yakıt tanklarında kalan yakıt miktarlarının
toplamıdır.</p>
      <p>Hava aracının yüksekliği deniz seviyesinden olan yükseklik olarak tanımlanır. Pilotlar
özellikle iniş sırasında gösterilen yükseklik bilgisine güvenerek hareket ederler.</p>
      <p>Hava aracının konumu GPS’den (Global Positioning System) alınan enlem ve boylam
koordinatlarıdır. Hava aracının konum bilgisi rota yönetimi tarafından kullanılır ve
rotadaki diğer noktaların konumları ile beraber pilotlara gösterilir. Rotadan sapma
olupolmadığını veya ne kadar sapıldığını pilotlar bu şekilde görebilirler.</p>
      <p>Hava aracının durumu, hava aracının X, Y ve Z eksenleri ile olan açılarıdır. Bu açılar
yunuslama (pitch), sapma (yaw) ve yuvarlanma (roll) açıları olarak isimlendirilir.
Genellikle, yunuslama ve yuvarlanma açıları Durum Yön Göstergesi (Attitude Director
Indicator) ile gösterilir.</p>
      <p>Radyo frekansı, yer istasyonu ile iletişim kurulan frekanstır.</p>
      <p>Tablo 3. Örnek Uygulama için Seçilen Gereksinimler
Tehlike Olası Nedenleri Sonuçları Şiddeti Olasılığı
[TH1] Yakıt Yakıt sensörünün kaybı/hatası Hava aracı Ölümcül Olası
miktarının yanlış Yakıt sensörü ile iletişim kaybı/hatası kazası olmayan
gösterilmesi Gösterge cihazının hatası
[TH2] Yükseklik Yükseklik cihazının kaybı/hatası Hava aracı Ölümcül Olası
bilgisinin yanlış Yükseklik cihazı ile iletişim kaybı/hatası kazası olmayan
gösterilmesi Gösterge cihazının hatası
[TH3] Konum GPS cihazının kaybı/hatası Hava aracı Ölümcül Olası
bilgisinin yanlış GPS cihazı ile iletişim kaybı/hatası kazası olmayan
gösterilmesi Gösterge cihazının hatası
[TH4] Durum Cayroskop cihazının kaybı/hatası Hava aracı Ölümcül Olası
bilgisinin yanlış Cayroskop cihazı ile iletişim kaybı/hatası kazası olmayan
gösterilmesi Gösterge cihazının hatası
[TH5] Radyo Radyo cihazının kaybı/hatası Yer istasyo- İhmal Nadiren
frekansının yanlış Radyo cihazı ile iletişim kaybı/hatası nu ile ileti- edilebilir
gösterilmesi Gösterge cihazının hatası şim hatası</p>
      <p>Tablo 4. Örnek Uygulama için Tehlikelerin Belirlenmesi ve Risklerin Tanımlanması
2. Risklerin tanımlanması:</p>
      <p>Her bir tehlike için tehlikenin olasılığı ve risk değerlendirmesi de Tablo 4’de
verilmiştir. Genel olarak tasarım kriteri, ölümcül kategoride olan bütün tehlikelerin
olasılığını “olası olmayan” şekilde tasarlamaktır. TH1, TH2, TH3 ve TH4 olarak
numaralandırılan tehlikelerin risk kategorisi orta olarak belirlenmiştir, TH5 olarak
numaralandırılan tehlikenin riski ise düşüktür.</p>
      <p>Riski
Orta
Orta
Orta
Orta
Düşük
3. Emniyet gereksinimlerinin belirlenmesi:</p>
      <p>Tehlike analizi tamamlandıktan sonra emniyet gereksinimleri belirlenir. Örnek
olarak, sonraki aktivitelerde de kullanılmak üzere, TH1 ile ilgili emniyet gereksinimleri
Tablo 5’de listelenmiştir. Benzer emniyet gereksinimleri diğer tehlikeler için de
belirlenebilir. EG1 (Emniyet Gereksinimi) yakıt miktarı bilgisinin en az iki bağımsız yakıt
sensöründen alınmasını, EG2 alınan yakıt miktarı bilgilerinin karşılaştırılmasını ve
karşılaştırma sonucuna göre gösterilmesini veya uyarı verilmesini, EG3 ise yakıt
miktarı bilgisinin en az iki bağımsız göstergede gösterilmesini istemektedir.
No
EG1
EG2
EG3</p>
      <p>Tanım
Yakıt miktarı bilgisi en az iki tane bağımsız sensörden alınmalıdır.</p>
      <p>Eğer iki tane bağımsız sensörden alınan yakıt miktarları arasında belirlenen bir değerden daha fazla
fark varsa, yakıt miktarı bilgisi gösterilmemelidir ve bununla ilgili bir uyarı verilmelidir.
Yakıt miktarı bilgisi en az iki tane bağımsız göstergede gösterilmelidir.</p>
      <p>Tablo 5. Örnek Uygulama için Emniyet Gereksinimleri</p>
      <sec id="sec-3-1">
        <title>4. Emniyet modelinin oluşturulması:</title>
        <p>Bu aktivitede belirlenen emniyet gereksinimlerine uygun olarak tasarım yapılır.
Tasarım süreci yinelemeli bir süreçtir. İlk olarak modeller oluşturulur ve bu
modellerin bir sonraki aktivitede de anlatıldığı gibi emniyet gereksinimlerine uygun
olupolmadığı değerlendirilir. Bu değerlendirme sonuçlarına göre eğer tasarım emniyet
gereksinimlerine uygun değilse modeller güncellenir. Bu yinelemeli süreç, tasarımın
uygun bulunmasına kadar devam eder. Bu bölümde, örnek uygulamamızın mimari
tasarımının iki versiyonu anlatılmaktadır. Birinci versiyon, emniyet gereksinimleri
belirlenmeden önceki versiyondur. İkinci versiyon ise birinci versiyonun emniyet
gereksinimlerine uygun olarak güncellenmesi sonucunda oluşan versiyondur. Yapılan
güncellemeler ve güncellemelerin nedenleri bir sonraki aktivitede anlatılmaktadır.</p>
        <p>Şekil 1. Örnek uygulama mimari modeli birinci versiyon
Örnek uygulamamız için oluşturulan yazılım mimarisi modelinin birinci versiyonu
Şekil 1'de verilmiştir. Birinci versiyonda bir tane yakıt sensörü ve bir tane grafik
cihazı bulunmaktadır. YakitYon, yakıt sensörünün yöneticisidir ve yakıt sensöründen
aldığı yakıt miktarı bilgisini platform yöneticisine sağlar. YukseklikYon, yükseklik
cihazının yöneticisidir ve yükseklik cihazından aldığı yükseklik bilgisini seyrüsefer
yöneticisine sağlar. GpsYon, GPS cihazının yöneticisidir ve GPS cihazından aldığı konum
bilgisini seyrüsefer yöneticisine sağlar. CayroYon, cayroskop cihazının yöneticisidir
ve cayroskop cihazından aldığı durum (attitude) bilgisini seyrüsefer yöneticisine
sağlar. RadyoYon, radyo cihazının yöneticisidir ve radyo cihazından aldığı frekans
bilgisini haberleşme yöneticisine sağlar. PlatformYon isimli yönetici yakıt miktarı bilgisini
yakıt yöneticisinden alır ve grafik yöneticisine sağlar. SeyruseferYon isimli yönetici
yükseklik, durum ve konum bilgilerini ilgili cihaz yöneticilerinden alır ve grafik
yöneticisine sağlar. HaberlesmeYon isimli yönetici frekans bilgisini radyo cihazı
yöneticisinden alır ve grafik yöneticisine sağlar. GrafikYon isimli yönetici grafik cihazının
yöneticisidir. Yakıt miktarı, yükseklik, durum, konum ve frekans bilgilerini ilgili
yöneticilerden alır ve grafik cihazında gösterilmek üzere gönderir.</p>
        <p>Örnek uygulamamız için oluşturulan yazılım mimarisi modelinin ikinci versiyonu
Şekil 2'de verilmiştir. İkinci versiyonda sisteme emniyet gereksinimlerini sağlamak
amacıyla ikinci bir yakıt sensörü ve ikinci bir grafik cihazı eklenmiştir. Yakit1Yon ve
Yakit2Yon isimli yöneticiler yakıt sensörleri 1 ve 2’nin yöneticileridir. Yakıt
yöneticileri, ilgili yakıt sensöründen yakıt miktarı bilgisini alır ve bu bilgileri platform
yöneticisine sağlar. Grafik1Yon ve Grafik2Yon isimli yöneticiler grafik cihazları 1 ve 2’nin
yöneticileridir. Yakıt miktarı, yükseklik, durum, konum ve frekans bilgilerini ilgili
yöneticilerden alır ve grafik cihazlarında gösterilmek üzere gönderir. PlatformYon
isimli yönetici her iki yakıt yöneticisinden gelen yakıt miktarını alacak şekilde
güncellenmiştir. Şekil 2' de emniyet kritik olan modüller SC (Safety Critical) stereotipi ile
işaretlenmiştir. Böylece emniyet kritik modüller ve emniyet kritik olmayan modüller
ayırt edilebilmektedir.</p>
        <p>Şekil 2. Örnek uygulama mimari modeli ikinci versiyon</p>
      </sec>
      <sec id="sec-3-2">
        <title>5. Emniyet gereksinimlerine göre değerlendirme yapılması:</title>
        <p>Son aktivite ile oluşturulan mimari tasarımın emniyet gereksinimlerine uygun
olup-olmadığı değerlendirilir. Örnek uygulamamızın ilk versiyonunda bir tane yakıt
sensörü ve bir tane grafik cihazı bulunduğu için EG1 ve EG3 numaralı emniyet
gereksinimleri sağlanamamaktadır. Bu nedenle tasarıma birer tane daha yakıt sensörü ve
grafik cihazı eklenerek güncelleme yapılmış ve ikinci versiyon oluşturulmuştur.
Böylece EG1 ve EG3 gereksinimleri yedeklilik taktiği kullanılarak ikinci versiyonda
sağlanmaktadır.</p>
        <p>İkinci versiyondaki platform yöneticisi iki ayrı yakıt yöneticisinden yakıt miktarı
bilgisini alacak ve EG2 gereksiniminde belirtildiği gibi iki yakıt miktarını
karşılaştıracak ve aralarındaki fark belli bir miktardan fazla ise yakıt miktarı gösterilmeyecek
ve yakıt miktarı ile ilgili bir uyarı verilecek şekilde güncellenmiştir. Birinci
versiyonda böyle bir karşılaştırma yapılamadığı için birinci versiyon EG2 gereksinimini yerine
getirememektedir. Bu güncelleme ile EG2 gereksinimi de ikinci versiyonda
gerçekleştirilmiştir.
İkinci versiyonda modüllerin çalışmasını kontrol eden bir hata kontrol yöneticisi
(DurumMonitoru) de eklenmiştir. Bu yönetici, diğer modüllerin düzgün
çalışıpçalışmadığını kontrol etmektedir ve çalışmayan modülleri yeniden başlatabilmektedir.
6. Görünümlere uygulanması:</p>
        <p>Bu bölümde, emniyet perspektifinin örnek uygulamamıza uygulanması ile oluşan
stiller anlatılmaktadır. Bu stillerin hangileri olduğu kısa bir açıklama ile beraber Tablo
6'da verilmiştir. Bu stiller bir önceki bölümde anlatılan mimari tasarımın ikinci
versiyonuna göre oluşturulmuştur.</p>
        <p>Stil
Ayrıştırma
Kullanım
Katmanlı
Veri Akışı
Konuşlandırma</p>
        <p>Açıklama
Emniyet kritik modüller ve emniyet kritik olmayan modüller işaretlenmiştir(bkz. Şekil 3)
Emniyet kritik modüllerin kullandığı modüller gösterilmiştir. (bkz. Şekil 3)
Her katmanda emniyet kritik modüller ve emniyet kritik olmayan modüller gösterilmiştir.
(bkz. Şekil 3)
Emniyet kritik bir veri olan yakıt miktarı bilgisinin ele alındığı emniyet kritik modüller
gösterilmiştir. (bkz Şekil 4)
Emniyet kritik bir veri olan yakıt miktarı bilgisinin iki ayrı sensörden alınması ve iki ayrı
göstergeye gönderilmesi. (bkz Şekil 2)</p>
        <p>Tablo 6. Emniyet Perspektifinin Uygulanması
Şekil 3. Örnek Uygulama için Ayrıştırma, Kullanım ve Katmanlı Mimari Stili
Örnek uygulamamız için modül görünümlerinden ayrıştırma, kullanım ve katmanlı
stillere göre olan çizim Şekil 3’de verilmektedir. Sayfa limiti nedeniyle bu üç stil bir
arada gösterilmiştir. Şekil 3’deki modüller arasındaki bağlantılar ve katmanlar
gösterilmediğinde ayrıştırma stili elde edilmektedir. Ayrıştırma stilinde emniyet kritik
modüller ve emniyet kritik olmayan modüller “SC” stereotipi ile işaretlenmiştir. Şekil
3’de modüller arasındaki bağlantılar kullanım durumunu gösteren bağlantılardır ve bu
bağlantılar ile modüller bir arada gösterildiğinde kullanım stili elde edilmektedir. Bu
stilde hangi emniyet kritik modüllerin hangi emniyet kritik modülleri kullandığı
görülmektedir. Emniyet kritik modüller sadece emniyet kritik modülleri kullanabilir.
Örnek uygulamamızda üç katmanlı bir mimari bulunmaktadır. Şekil 3’de gösterildiği
gibi birinci katmanda cihaz/sensör yöneticileri, ikinci katmanda platform, seyrüsefer
ve haberleşme yöneticileri ve üçüncü katmanda da grafik yöneticileri bulunmaktadır.
Katman bilgileri de görünüme eklendiğinde katmanlı stil elde edilmektedir. Bu stilde
hangi katmanlarda hangi emniyet-kritik modüllerin olduğu görülmektedir.</p>
        <p>Bileşen ve bağlantılar görünümünden veri akışı stilinin örnek uygulamamız için
kullanım örneği Şekil 4’de verilmektedir. Bu çizimde yakıt miktarı bilgisinin veri
akışı gösterilmektedir. Yakıt miktarı bilgisi emniyet kritik bir veri olduğu için bu
verinin işlendiği modüllerin de emniyet kritik modül olması gerekmektedir. Ayrıca
veri akışını gösteren oklar da emniyet kritik veri olduğunu belirten “SC” stereotipi ile
işaretlenmiştir.</p>
        <p>Şekil 4. Örnek Uygulama için Veri Akışı Mimari Stili</p>
        <p>Tahsis görünümünden konuşlandırma stili, emniyet modelinin oluşturulması
aktivitesinde de anlatılmakta ve Şekil 2'de verilmektedir. Konuşlandırma stili emniyet kritik
modüller için gerekli olan donanım elemanlarını belirtir. Şekil 2'de emniyet kritik bir
veri olan yakıt miktarı verisinin alındığı yakıt sensörleri ve ilgili yakıt sensörü ile
iletişim kuran yakıt sensör yöneticileri diğer cihazlar ve yöneticiler ile beraber
gösterilmiştir.
6</p>
        <p>İlgili Çalışmalar</p>
        <p>Daha önceki çalışmalarımızda emniyet ve kurtarılabilirlik (recoverability) kalite
ilgileri için mimari bakış açıları tanımlanmıştır. Kurtarılabilirlik ilgisi için yapılan
çalışmada [15] mimarinin farklı şekillerde ayrıştırılmasını gerektirdiği için, bakış açısı
tanımında bu ayrıştırmayı sağlayabilecek ilgili mimari elemanlar ve ilişkiler
tanımlanmıştır. Emniyet ilgisi için yapılan çalışmada [2][4] ise emniyet-kritik sistemlerin
tasarımını analiz etmek ve desteklemek için bir mimari çerçeve sunulmuştur. Böylece
farklı kalite ilgileri tasarım aşamasının başlangıcından itibaren mimari seviyede ele
alınabilmiş ve tasarım ile ilgili kararlar verilirken farklı tasarım alternatifleri
değerlendirilmiştir.</p>
        <p>
          Tasarımı yazılım emniyeti açısından değerlendirmek ve analiz etmek için
literatürde bazı teknikler sunulmuştur. Hata ağacı analizi (fault tree analysis) bu yöntemlerden
birisidir. Hata ağacı analizinde tasarımdaki hangi hataların sistemde hangi hatalara
neden olabileceği analiz edilir ve mantıksal kapılar kullanılarak gerçekleştirilir [
          <xref ref-type="bibr" rid="ref6">8</xref>
          ].
Hata modu ve etkileri analizi [10] (failure mode and effects analysis) kullanılan diğer
yöntemlerden birisidir. Bu yöntem ile tasarımdaki olası zayıflıkların belirlenmesi
amaçlanmıştır. Sistemdeki bileşenler analiz edilerek olası hatalar ve bunların
sebepleri tespit edilir.
        </p>
        <p>
          Yazılım emniyeti planlama ve tasarımı için birçok standart tanımlanmıştır.
RTCA DO-178C [12], MIL-STD-882D [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], IEC 61508 [5] bu standartlardan
bazılarıdır. Bu standartlarda emniyet ilgisi için gerekli olan seviyeyi tanımlanmıştır. Fakat
emniyet-kritik sistemlerin tasarımı belirgin bir şekilde ele alınmamıştır.
        </p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>Kaynaklar 1</article-title>
          .
          <string-name>
            <surname>Clements</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bachmann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bass</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garlan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ivers</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Little</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nord</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stafford</surname>
          </string-name>
          , J.: Docu-
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <source>menting Software Architectures: Views and Beyond</source>
          ,
          <string-name>
            <surname>Addison-Wesley</surname>
          </string-name>
          , Boston (
          <year>2003</year>
          )
          <article-title>2</article-title>
          .
          <string-name>
            <surname>Gurbuz</surname>
            ,
            <given-names>H. G.</given-names>
          </string-name>
          :
          <article-title>Architecture-Driven Fault-Based Testing for Software Safety</article-title>
          , Bilkent University,
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Turkey</surname>
          </string-name>
          (
          <year>2014</year>
          )
          <article-title>3</article-title>
          .
          <string-name>
            <surname>Gurbuz</surname>
            ,
            <given-names>H. G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tekinerdogan</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pala Er</surname>
          </string-name>
          , N.:
          <article-title>Safety Perspective for Supporting Architectural Design</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>of Safety-Critical</surname>
            <given-names>Systems</given-names>
          </string-name>
          ,
          <source>In: Proc. of 8th European Conference on Software Architecture (ECSA</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <year>2014</year>
          ),
          <year>Agust 2014</year>
          4. Gurbuz,
          <string-name>
            <surname>H. G.</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Pala Er N.</given-names>
            ,
            <surname>Tekinerdogan</surname>
          </string-name>
          ,
          <string-name>
            <surname>B.</surname>
          </string-name>
          :
          <article-title>Architecture Framework for Software Safety</article-title>
          ,
          <source>In: Proc.</source>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <source>of 8th System Analysis and Modeling Conference</source>
          ,
          <source>September (SAM</source>
          <year>2014</year>
          ),
          <year>September 2014</year>
          5. IEC 61508 - Functional Safety of Electrical /Electronic/ Programmable Electronic Safety-Related
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>Systems</surname>
          </string-name>
          . International Electrotechnical Commission, (
          <year>1998</year>
          )
          <article-title>6</article-title>
          . [ISO/IEC 42010:2007]
          <article-title>Recommended practice for architectural description of software-intensive</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <source>systems (ISO/IEC 42010)</source>
          . 7.
          <string-name>
            <surname>Kruchten</surname>
            ,
            <given-names>P.:</given-names>
          </string-name>
          <article-title>The 4+1 View Model of Architecture</article-title>
          , IEEE Software,
          <volume>12</volume>
          (
          <issue>6</issue>
          ):
          <fpage>42</fpage>
          -
          <lpage>50</lpage>
          (
          <year>1995</year>
          )
          <article-title>8</article-title>
          .
          <string-name>
            <surname>Leveson</surname>
            ,
            <given-names>N.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harvey</surname>
            ,
            <given-names>P.R.</given-names>
          </string-name>
          :
          <source>Analyzing Software Safety, IEEE Transactions on Software Engineer-</source>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <source>ing 9 (5)</source>
          ,
          <fpage>569</fpage>
          -
          <lpage>579</lpage>
          (
          <year>1983</year>
          )
          <article-title>9. MIL-STD-882D, Standard Practice for System Safety</article-title>
          , Department of Defense (
          <year>2000</year>
          )
          <fpage>10</fpage>
          .
          <string-name>
            <surname>Pataricza</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Majzik</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huszerl</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Várnai</surname>
          </string-name>
          , G.:
          <article-title>UML-based design and formal analysis of a safety-</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <source>ation and Control Systems (FORMS03)</source>
          , pp
          <fpage>125</fpage>
          -
          <lpage>132</lpage>
          , Budapest (
          <year>2003</year>
          )
          <fpage>11</fpage>
          .
          <string-name>
            <surname>Rausand</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoylan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>System Reliability Theory</article-title>
          , Models,
          <string-name>
            <given-names>Statistical</given-names>
            <surname>Methods</surname>
          </string-name>
          , and Applications,
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <surname>Wiley</surname>
          </string-name>
          , USA (
          <year>2004</year>
          )
          <fpage>12</fpage>
          .
          <string-name>
            <surname>Rozanski</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Woods</surname>
          </string-name>
          , E.:
          <source>Software Architecture Systems Working with Stakeholders Using</source>
          View-
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <source>points and Perspectives</source>
          ,
          <string-name>
            <surname>First Edition</surname>
          </string-name>
          , Addison-Wesley,
          <article-title>(</article-title>
          <year>2005</year>
          )
          <article-title>13</article-title>
          .
          <string-name>
            <surname>RTCA DO-178C Standard</surname>
          </string-name>
          ,
          <source>Software Considerations in Airborne Systems and Equipment</source>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <source>Certification 14. Software Safety Guide Book, NASA Technical Standard</source>
          (
          <year>2004</year>
          )
          <fpage>15</fpage>
          .
          <string-name>
            <surname>Sözer</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tekinerdogan</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aksit</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Optimizing Decomposition of Software Architecture for Local</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <surname>Recovery</surname>
          </string-name>
          ,
          <source>Software Quality Journal</source>
          , Vol.
          <volume>21</volume>
          , No:
          <issue>2</issue>
          , pp.
          <fpage>203</fpage>
          -
          <lpage>240</lpage>
          (
          <year>2013</year>
          )
          <fpage>16</fpage>
          .
          <string-name>
            <surname>Wasilewski</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hasselbring</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nowotka</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Defining requirements on domain-specific languages</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          <article-title>in model-driven software engineering of safety-critical systems (</article-title>
          <year>2013</year>
          )
          <fpage>17</fpage>
          .
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          and
          <string-name>
            <given-names>Wei</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <surname>Z.</surname>
          </string-name>
          :
          <article-title>Model-Based Safety Test Automation of Safety-Critical Software</article-title>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>3</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>