<!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>Türkiye'de DO-178B Uyumlu Yazılım Sertifikasyon Projelerinde Planlama Sürecinde Yaşanan Problemler</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>M. Umut Pişken</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Burak Ata</string-name>
          <email>bata@stm.com.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Savunma Teknolojileri ve Mühendislik A.Ş., Mühendislik ve Sertifikasyon Müdürlüğü</institution>
          ,
          <addr-line>Ankara</addr-line>
          ,
          <country country="TR">Türkiye</country>
        </aff>
      </contrib-group>
      <fpage>478</fpage>
      <lpage>487</lpage>
      <abstract>
        <p>DO-178B, which is a de facto standard for developing avionics software systems, defines objectives for the entire phases of software lifecycle. Turkey's avionic industry has shown strong growth over the last decade and as a result of this trend every day new software development companies are involved in the DO-178B compliant software development projects. The certification authorities perform “Stage of Involvement (SOI)” audits at various stages of the project such as planning, development and verification to assess compliance to DO-178B. In this study, the results of SOI-1 audits in 2015 which are performed to assess planning phase of project, are analyzed. Main problem areas in planning phase are determined according to this analyze and recommendations are given to prevent these problems.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>1970’li yılların sonlarına doğru yazılım ağırlıklı ekipmanların havacılıkta yerlerini
almaya başlaması beraberinde uçuşa elverişlilik açısından yazılımların nasıl
değerlendirilmesi gerektiği sorusunu gündeme getirmiştir. Zaman içerisinde bu tarz
ekipmanların değerlendirilmesi esnasında laboratuvar ortamında ya da hava aracı
üzerinde yapılan fonksiyonel doğrulamaların yeterli olmadığı, yazılım geliştirme
sürecine ilişkin incelemelerin de yapılması gerektiği anlaşılmıştır.</p>
      <p>
        Bu durumun tetiklemesiyle RTCA tarafından bir komite kurulmuş ve bu komite
tarafından hazırlanan DO-178, “Software Considerations in Airborne Systems and
Equipment Certification” isimli rehber doküman 1982 yılında yayımlanmıştır [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Bu
doküman DO-178A, DO-178B ve DO-178C olmak üzere üç kez versiyon atlamış
olup, en güncel versiyonu DO-178C’dir [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Federal Aviation Administration (FAA)
tarafından DO-178C AC NO:20-115C ile kabul edilebilir bir uyum yöntemi olarak
kabul edilmiş olmasına rağmen yürümekte olan bir çok proje, “Advisory
Circular(AC)”’nin yayım tarihinden önce başladığı için şimdilik DO-178B
versiyonuna uyum sağlayacak şekilde yürütülmektedir [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        Yazılım hataları, yazılım geliştirme esnasında ortaya çıkan sistematik hatalardan
kaynaklanmaktadırlar [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Yazılım hataları, fiziksel parçalarda görülebilen ve
kullanıma bağlı yıpranma-aşınma kaynaklı oluşan rastsal hatalardan(Random Failure)
farklıdırlar. Diğer emniyet kritik yazılım geliştirme standartları gibi DO-178B
standardı da bu durumu göz önüne alarak, sistematik hataları önlemek üzere yazılım
geliştirme süreçlerine yönelik belirli gereksinim ve kısıtlamaları tanımlayacak şekilde
geliştirilmiştir [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Bu yaklaşıma göre, öncelikle sistem emniyet analizleri yapılarak
yazılımın içinde çalışacağı sistem açısından emniyet kritiklik seviyesi belirlenmekte,
sonrasında ise bu kritiklik seviyesini sağlamak üzere kullanılacak olan standardın
istediği yazılım yaşamdöngüsü süreçleri işletilmektedir. Bu yaklaşım, tasarım
teminatı yaklaşımı olarak adlandırılmaktadır.[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Tasarım teminatı ile gereksinim,
tasarım ve geliştirme aşamalarında ortaya çıkabilecek hataların sistem emniyeti
açısından kabul edilebilir seviyeye indirildiğini garanti altına almak için uygulanan
planlı ve sistematik aktiviteler kastedilmektedir [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Tasarım teminatı yaklaşımı,
yazılım geliştirme esnasında uygulanacak süreçler ne kadar titiz ve sıkı olursa
yazılımda o derece az hata kalacağı varsayımına dayanmaktadır [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Bu yaklaşımda,
yazılımın kritiklik seviyesi yükseldikçe, uygulanan geliştirme ve doğrulama
aktiviteleri(gözden geçirme, analiz, test gibi) nicelik ve nitelik açısından artmaktadır.
DO-178B standardı da tasarım teminatı yaklaşımını temel alan bir standarttır. Örnek
vermek gerekirse, DO-178B standardında tasarım teminatı seviyesi DAL A olarak
belirlenmiş olan yazılımlar için, kod yapısal kapsama analizi yapılırken “Modified
condition/decision coverage” (MC/DC) sağlanması gerekirken, tasarım teminatı
seviyesi DAL B olarak belirlenen yazılımlarda “Decision Coverage” sağlanması
yeterlidir.
      </p>
      <p>DO-178B standardında, standardın son bölümünde verilmiş olan A-1’den A-10’a
kadar olan tablolarda yazılım kritiklik seviyelerine göre karşılanması gereken amaçlar
ve üretilmesi gereken süreç çıktıları listelenmektedir. Bu tablolara göre, yazılım
kritiklik seviyesine göre karşılanması gereken toplam amaç sayısı Tablo 1’de
verilmiştir.</p>
      <p>Tablo 1. DO-178B Standardı Yazılım Seviyelerine Göre Karşılanması Gereken Amaç Sayısı</p>
    </sec>
    <sec id="sec-2">
      <title>Yazılım Seviyesi</title>
    </sec>
    <sec id="sec-3">
      <title>Karşılanması İstenilen Amaç Sayısı</title>
      <p>A
B
C
D
E</p>
      <p>
        DO-178B uyumu otoriteler tarafından “Stages of Involvement” (SOI) adı verilen
gözden geçirme aktiviteleri vasıtasıyla değerlendirilmektedir [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. İdeal durumlarda
toplamda dört adet SOI gözden geçirmesi planlanmaktadır. Bu çalışmada, Türkiye’de
2015 yılı içerisinde farklı yüklenicilere yapılan 6 adet SOI#1 denetiminin verileri
incelenerek, SOI#1 gözden geçirmelerinde en çok karşılaşılan sıkıntılar ortaya
konulmaya çalışılacaktır. Çalışmanın hedefi sektörün ortak yaptığı hataları ortaya
koyup, yürümekte olan ya da yeni başlayacak projelere alınan dersleri
aktarabilmektir.
      </p>
      <p>Bu çalışmanın ikinci kısmında DO-178B uyumlu geliştirilmesi gereken
yazılımların değerlendirilmesi esnasında kullanılan “Stages of Involment (SOI)”
süreci hakkında genel bilgi verilecektir. Çalışmanın üçüncü kısmında, 2015 yılında
ülkemizde çeşitli projeler kapsamında DO-178B uyumlu yazılım geliştirme
projelerinin planlama sürecini değerlendirmeye yönelik olarak gerçekleştirilmiş olan
SOI-1 değerlendirme faaliyetleri esnasında tespit edilmiş olan bulguların
kaynaklandığı Job Aid soru listesi soruları irdelenecektir. Çalışmanın son bölümünde
ise sonuç ve önerilere yer verilecektir.
2</p>
      <sec id="sec-3-1">
        <title>SOI Gözden Geçirmeleri</title>
        <p>
          FAA’in “JobAid: Conducting Software Reviews Prior to Certification” isimli
dokümanında, kendi yetkisini kısmen delege ettiği uzmanlarının DO-178B uyumu
amacıyla yapacakları değerlendirmelerde nasıl bir yol izlemeleri gerektiğine yönelik
tavsiyeler yer almaktadır [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. Benzer bir şekilde EASA’nın yayımladığı “CM
SWCEH – 002 Software Aspects of Certification” sertifikasyon bilgi notu da SOI
gözden geçirmelerini geçerli bir DO-178B değerlendirme yöntemi olarak
tanımlamaktadır [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
        </p>
        <p>Her iki kaynak dokümanda da dört adet SOI aktivitesinden bahsedilmektedir. İlk
yapılan değerlendirme olan SOI#1, projenin sertifikasyon uyum çalışmalarının
planlanma fazını içermektedir. SOI#2 gözden geçirmesi projenin geliştirme
aşamalarına yoğunlaşır. Üst seviye yazılım gereksinimlerinin geliştirilmesinden
başlayarak, tasarımın, alt seviye yazılım gereksinimlerinin, ve kaynak kodun
DO178B’ye uygun üretilip üretilmediğini sorgular. SOI#3 gözden geçirmesi doğrulama
aşamalarına odaklanmaktadır. Sadece test aktiviteleri değil, doğrulama amacıyla
gerçekleştirilen tüm aktiviteler (gözden geçirmeler, analizler vs) mercek altına
yatırılır. SOI#4 ise projenin sonlanmasına yakın yapılan, açıkta yapılmamış bir
aktivitenin kalıp kalmadığını ve bir önceki değerlendirmelerden bu yana yeni bir
sorunun ortaya çıkıp çıkmadığını sorgulayan kapanış değerlendirmesidir.</p>
        <p>
          Bu çalışma kapsamında SOI#1 gözden geçirmeleri ele alınacağı için bu
değerlendirmeye dair daha detaylı bilgi aktarmak faydalı olacaktır. DO-178B
kapsamında yüklenicilerin beş adet plan üç adet standart hazırlaması beklenmektedir
[
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. DO-178B gereği yüklenicilerden istenilen beş adet yazılım planı, Yazılım
Sertifikasyon Konuları Planı (PSAC), Yazılım Geliştirme Planı, Yazlım Kalite
Güvence Planı, Yazılım Doğrulama Planı ve Yazılım Konfigürasyon Yönetim
Planından oluşmaktadır [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. Üç adet standart ise Yazılım Gereksinimi Standardı,
Yazılım Tasarım Standardı ve Yazılım Kodlama Standardıdır [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
        </p>
        <p>DO-178B’nın planlama aşamasında üretilen yazılım ürünlerinden beklentisi
projeyi değerlendiren ile yapan taraf arasında ortak bir kural kümesinin üzerinden
anlaşılması ve proje süresince bu kural setine uyulmasıdır. Bir başka deyişle yüklenici
planlarını ve standartlarını yazarken sadece kendi süreçlerini belirlemek ile kalmaz,
aynı zamanda sertifikasyon irtibat süreci boyunca otoritenin kendisini nasıl
değerlendireceğinin de kurallarını yazmış olur. İşte bu sebepledir ki sertifikasyon
otoriteleri plan ve standartları incelerken oldukça titiz davranmaktadırlar. JobAid:
Conducting Software Reviews Prior to Certification dokümanındaki SOI#1
değerlendirme sorularından olan “Plan ve standartların takip edilmesi tüm
uygulanabilir DO-178B amaçlarının karşılanmasını garanti ediyor mu?” sorusu
(1.1.11 numaralı soru) bu sebeple çok kritiktir. Yüklenicinin planlarını inceleyen ve
uygun bulan bir otorite temsilcisi 1.1.11 sorusuna “evet” cevabını vererek
yüklenicinin planlarına ve standartlarına bir anlamda kefil olmuş demektir.
Dolayısıyla 1.1.11 ve benzeri sorular uygun bulunmadan önce tüm DO-178B
isterlerinin mevcut planlama ile karşılandığının net ispatı, değerlendirenler tarafından
dikkatlice sorgulanmalıdır.</p>
        <p>Yukarıdaki açıklamalardan da tahmin edileceği üzere SOI#1 değerlendirmesi
esnasında planlar ve standartlarda yazılanların otorite temsilcisi ve yükleniciler
tarafından aynı şekilde anlaşılıyor olması önem arz etmektedir. Bu sebeple planlama
esnasında üretilen dokümanların yanlış anlamaya mahal vermeyecek netlikte yazılıyor
olması, sadece yerel bilgiler ile anlaşılıyor olmaması gerekmektedir.</p>
        <p>Otorite temsilcisi, SOI#1 değerlendirmesi sonunda yüklenicinin planlama süreci
ürünlerinin, projenin DO-178B’ye uyumu sağlayacak adımları ve kontrolleri
içerdiğine ikna olması durumunda değerlendirme başarı ile tamamlanmaktadır. Eğer
eksiklikler fark edilmiş ise eksikliklerin değerlendirilmesi yapılarak, ortaya çıkan
kritiklik durumuna göre gözden geçirmenin başarım durumu belirlenmektedir.
3</p>
      </sec>
      <sec id="sec-3-2">
        <title>SOI-1 Planlama Sürecinde Sık Karşılaşılan Problemler</title>
        <p>Bu bölümde, ülkemizde DO-178B uyumlu yazılım sertifikasyon projelerinde
planlama sürecinde yaşanan problemleri tespit edebilmek adına, 2015 yılında emniyet
kritiklik seviyesi B olan çeşitli projelerde gerçekleştirilen SOI-1 değerlendirmeleri
sırasında tespit edilen bulgular analiz edilmiştir. Değerlendirilmelerde “Job
AidConducting Software Reviews Prior To Certification”(bundan sonra kısaca “Job Aid”
olarak adlandırılacaktır) dokümanının ekinde verilen soru listeleri kullanılmakta ve
tespit edilen bulguların hangi sorudan kaynaklandığı kaydedilmekte ve
raporlanmaktadır. SOI-1 denetimine ait soru listesinde planlama sürecinin DO-178B
amaçlarını karşılayıp karşılamadığını belirlemek amacıyla toplamda 94 adet soru
bulunmaktadır. 2015 yılı içerisinde, farklı firmalar tarafından geliştirilen toplam 6
adet yazılım konfigürasyon parçasına SOI-1 değerlendirme aktivitesi
gerçekleştirilmiştir. Bu yazılım konfigürasyon parçalarının tamamı DO-178B uyumlu
olması gereken yazılımlardır.</p>
        <p>Veriler analiz edildiğinde, gerçekleştirilen 6 adet SOI-1 değerlendirmesi
sonucunda toplam 289 adet bulgu tespit edildiği görülmüştür. Bulgular ilişkili
oldukları soru listesi maddesine göre sınıflandırıldığında ise, toplam bulgu sayısının
%48’ine karşılık gelen 141 tanesinin 7 adet sorudan kaynaklandığı tespit edilmiştir.
Veriler incelendiğinde geriye kalan 148 adet bulgunun ise 53 adet sorudan
kaynaklandığı görülmektedir. Bulguların yaklaşık yarısının tespit edilmesine yol açan
7 adet soru, ilişkilendirildikleri bulgu sayısına göre büyükten küçüğe sıralı olacak
şekilde Tablo 2’de verilmiştir.</p>
        <p>Tablo 2. SOI-1 Değerlendirmelerinde En Fazla Bulguya Sebep Olan Sorular
Job Aid
Soru No
1.1.3
1.4.3
1.7.1
1.9.2
1.6.2
1.5.2
1.7.5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Job Aid Sorusu</title>
      <sec id="sec-4-1">
        <title>Plan ve standartlar tam, açık ve tutarlı mı?</title>
      </sec>
      <sec id="sec-4-2">
        <title>Yazılım geliştirme süreçleri yazılım yaşam</title>
        <p>döngüsü süreçlerinin ve modelinin başarıyla
uygulanmasını garanti altına alacak detay
seviyesinde tanımlanmış mı? Geçiş kriterleri
açık ve zorlayıcı mı?
Yazılım Doğrulama Planının takip edilmesiyle
DO-178B Tablo A-3, A-4, A-5, A-6 ve A-7
amaçlarının karşılandığı garanti ediliyor mu?</p>
      </sec>
      <sec id="sec-4-3">
        <title>Yazılım geliştirme standartları planlarla uyumlu</title>
        <p>ve planların uygulanmasını destekler nitelikte
mi?
Yazılım Kalite Güvence süreci DO-178B bölüm
8.0’da tanımlanan süreçlerin içeriğini yeterli
detayda karşılıyor mu?
Yazılım Konfigürasyon Yönetimi süreçleri
DO178B bölüm 7.0’da tanımlanan süreçlerin
içeriğini yeterli detayda karşılıyor mu?
Yazılım Doğrulama Planı içerisinde her bir
doğrulama aktivitesinde kullanılacak doğrulama
metodu belirtilmiş mi?
İlgili
Amaçlar
A-1, #1,7
A-1, #1-4
A-3 to A-7
(bütün
amaçlar)
A-1, #5
A-1, #1
A-8, #1-6
A-1, #1-3</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Bulgu</title>
      <p>Sayısı
55
17
17
17
15
10
10</p>
      <p>SOI-1 değerlendirme faaliyetleri esnasında yukarıdaki tabloda verilmiş olan Job
Aid sorularına ilişkin tespit edilen bulguların dağılımı Şekil 1’de yer almaktadır.</p>
      <p>Diğer
52%</p>
      <p>En fazla
bulguya
yol açan
ilk 7
soru
48%
1.4.3
6%</p>
      <p>Veriler incelendiğinde, SOI-1 değerlendirmeleri esnasında tespit edilen bulguların
en fazla Job Aid dokümanının ekinde yer soru listesinde bulunan “Plan ve standartlar
tam, açık ve tutarlı mı?” sorusundan kaynaklandığı görülmektedir. Burada veriler
daha ayrıntılı incelendiğinde, tespit edilen bulguların genelde planlar arası
uyumsuzluk ve tutarsızlıklardan kaynaklandığı görülmektedir. Bu uyumsuzluk ve
tutarsızlıkların başlıcaları aşağıda listelenmektedir:



</p>
      <p>Planlarda aynı rollerin farklı şekilde ifade edilmesi
Bir planda kullanılacağı belirtilen aracın(geliştirme veya doğrulama) diğer
ilgili planlarda geçmemesi
Planlar arası bölüm referanslarındaki hatalar</p>
      <p>Planlarda “daha sonra belirlenecek” gibi ifadelerin geçmesi</p>
      <p>DO-178B uyumlu yazılım geliştirme projelerinde temel olarak beş adet plan
geliştirilmesi beklenilmektedir. Bu planlar projede rol alan farklı taraflar tarafından
geliştirildiği için kendi aralarında tutarsızlıkların oluşması sık rastlanan bir
problemdir. DO-178B uyumlu yazılım geliştiren firmaların, bu problemi önlemek
adına çeşitli mekanizmalar geliştirmesi gerekmektedir. Bunlardan ilk akla gelen, plan
gözden geçirmelerinin tamamına aynı ekibin katılmasıdır. Bu şekilde, sabit bir ekip
tüm planları inceleyip olası tutarsızlıkları gözden geçirme sürecinde
yakalayabilecektir. Ayrıca bu mekanizma sayesinde, projenin tüm paydaşları görev ve
sorumluluklar hakkında hemfikir olacaktır.</p>
      <p>
        SOI-1 değerlendirmelerinde en çok bulgu tespit edilmesine yol açan ikinci soru ise
“Yazılım geliştirme süreçleri yazılım yaşam döngüsü süreçlerinin ve modelinin
başarıyla uygulanmasını garanti altına alacak detay seviyesinde tanımlanmış mı?
Geçiş kriterleri açık ve zorlayıcı mı?” sorusudur. Burada bulgular ayrıntılı olarak
incelendiğinde, ilgili soruya ait bulguların önemli kısmının “geçiş kriterlerindeki
eksikliklerden” kaynaklı olduğu görülmektedir. DO-178B standardı geçiş kriterini,
yazılım yaşamdöngüsünde yer alan herhangi bir alt sürece başlamak için sağlanması
gerekli asgari koşullar olarak tanımlamaktadır [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. DO-178B standardının geçiş
kriterlerini zorunlu tutmasının başlıca sebebi, bir sürece başlamadan önce
tamamlanması gereken diğer süreçlerin yeterli olgunlukta olduğunun teminat altına
alınmak istenmesidir. Dolayısıyla geçiş kriterleri belirlenirken, mutlaka DO-178B’nin
ilgili süreçlere ilişkin amaçları da göz önünde alınmalıdır. Geçiş kriterleri sadece
standart istediği için konulmamalı, gerçekten ilgili süreçteki aktivitelerin düzgün
şekilde ilerlemesine engel olabilecek konular geçiş kriteri olarak belirlenmelidir. Bu
sorudan kaynaklı diğer bulgular ise genelde planlarda işin yapılmasına ilişkin yeterli
detay verilmemesinden kaynaklanmaktadır. Her ne kadar, projenin başlangıcında
gerçekleştirilecek faaliyetleri en ince detayına kadar planlamak mümkün olmasa da,
aktivitelerin otorite temsilcisi dahil tüm paydaşlarca aynı şekilde anlaşılabilmesine
yetecek detayda planlanması gerekmektedir. Örneğin planlarda DO-178B’nin
beklediği kod ile gereksinimler arasındaki izlenebilirlik konusunda planlarda bu
izlenebilirliğin hangi seviyede(method-fonksiyon seviyesi, sınıf seviyesi gibi)
kurulacağı mutlaka belirtilmelidir. Aksi takdirde, sadece izlenebilirlik kurulacaktır
şeklinde yazılacak genel bir ifade, otorite temsilcisi ve proje çalışanları tarafından
farklı şekillerde yorumlanabilir. Otorite temsilcisinin bu cümleden beklentisi, kod
satırı bazında bir izlenebilirlik olması iken, proje çalışanlarının aklındaki izlenebilirlik
seviyesi modül bazında olabilir. Bu muğlak ifade SOI-1 değerlendirmesi esnasında
gözden kaçarsa, ileriki değerlendirmelerde otorite ile firma arasında ciddi fikir
ayrılıklarına yol açacak, projenin takvim ve bütçesini modül bazlı izlenebilirlik
kurmak üzerine inşa eden firma, otoriteyi tatmin edebilmek için, önceden
planlamadığı ek çalışmalar yapmak durumunda kalabilecektir. Burada
sergilenebilecek en tehlikeli yaklaşım, konuyu öteleyip, ilgili aşama gelince mevcut
duruma göre bir yöntem seçmektir. Bu durum hem planlamanın ruhuna hem de SOI-1
sonunda otorite ile varılması gereken mutabakata aykırılık teşkil etmektedir [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>SOI-1 değerlendirmeleri esnasında üçüncü en çok bulgu tespit edilmesine yol açan
soru “Yazılım Doğrulama Planının takip edilmesiyle DO-178B Tablo A-3, A-4, A-5,
A-6 ve A-7 amaçlarının karşılandığı garanti ediliyor mu?” sorusudur. Bu soruya
ilişkin tespit edilen bulgular detaylı şekilde incelendiğinde, bulguların genelde
standardın istediği “en kötü çalışma zamanı analizi (worst case execution time
analysis)”, “bellek kullanım analizi(memory usage analysis)” gibi bazı analizlere
ilişkin Yazılım Doğrulama Planında planlama yapılmamış olmasından kaynakladığı
görülmektedir. DO-178B standardının amaç tablolarında bu analizlerin istenildiğine
dair net ifadeler bulunmamaktadır, ancak standardın ilgili bölümlerine ayrıntılı bilgi
için referanslar verilmektedir. Bu çalışma kapsamında ele alınan projelerde planlar
hazırlanırken genellikle sadece amaç tabloları üzerinden hareket edildiği görülmüştür.
Bu tarz problemlerin yaşanmaması adına, planlar hazırlanırken DO-178B
dokümanının tamamının dikkatli şekilde okunması ve ayrıca SOI
değerlendirmelerinde temel alınan Job Aid dokümanındaki soru listelerinin de
incelenmesi gerekmektedir. Bu sayede planlamanın standart tarafından istenilen ancak
çok açık şekilde ifade edilmemiş konuları da kapsaması sağlanabilecektir.</p>
      <p>
        SOI-1 değerlendirmeleri esnasında proje planlarının yanısıra, geliştirme
aşamasında kullanılacak kodlama, tasarım ve gereksinim standartları da
incelenmektedir. SOI-1 değerlendirmelerinde en çok bulgu tespit edilen dördüncü
soru da bu standartlara ilişkin “Yazılım geliştirme standartları planlarla uyumlu ve
planların uygulanmasını destekler nitelikte mi?” sorusudur. Bu soruya ilişkin bulgular
incelendiğinde; genelde bulguların emniyetli bir yazılım geliştirmek adına kural
olarak belirlenmesi gereken kısıtların, tavsiye olarak nitelenmesinden kaynaklı olduğu
görülmektedir. Yazılım geliştirme standartları hazırlanırken, katı kurallar koymak
yazılım geliştiricileri kısıtlamakta ve ayrıca bu kuralların uygulandığından emin
olmak için de ciddi bir işgücü harcanmaktadır. Bu sebeple, geliştirme standartları
hazırlanırken gerçekten kural olması gereken konular kural olarak belirlenmeli, kalan
konular ise tavsiye olarak sınıflandırılmalıdır. Kısıtlayıcılığı azaltmak adına,
standartlar hazırlanırken yazılımın deterministik olmayan davranışlar sergilemesine
yol açabilecek bazı kullanımların tavsiye olarak sınıflandırılabilmektedir. Bu durum
SOI-1 değerlendirmelerinde bulgu açılmasına yol açmaktadır. Örneğin tip
dönüştürmeye ilişkin (type casting) Misra C standardında yer alan 10.3 numaralı
kuralı [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], hazırlanan kodlama standardında tavsiye olarak sınıflandırmak yazılımın
hatalı çalışmasına sebebiyet verebilir. Bu sebeple Misra C gibi standartların kural
olarak sınıflandırdığı sınırlamalar, gerçekten çok geçerli bir sebebi ve mantıklı bir
açıklaması yoksa proje kapsamında yazılan kodlama standartlarında tavsiye olarak
sınıflandırılmamalıdır. Yazılım geliştirme standartları hazırlanırken, kurallar ve
tavsiyeler belirlenirken bu bakış açısı ile bakılmalı ve kurallar belirlenmelidir.
      </p>
      <p>Job Aid soru listesinde yer alan “Yazılım Kalite Güvence süreci DO-178B bölüm
8.0’da tanımlanan süreçlerin içeriğini yeterli detayda karşılıyor mu?” sorusu ise SOI-1
değerlendirmeleri esnasında en fazla bulgu tespit edilmesine yol açan beşinci sorudur.
Bu soruya ilişkin bulgular incelendiğinde, problemlerin kaynağının planda işlerin
nasıl yürütüleceğine dair yeterli detay verilmemesi olduğu görülmektedir. Örneğin
Kalite Güvence Mühendisinin projedeki test, gözden geçirme gibi bazı aktivitelere
hangi oranda katılacağı, Kalite Güvence Mühendisinin projede yapacağı iç
denetimlerde kullacağı örneklem oranları gibi bazı detaylardan planlarda hiç
bahsedilmediği sıklıkla görülmektedir. Bu durum işgücü planlamasının sağlıklı
şekilde yapılamamasına yol açacaktır. Bu sebeple planlamada bu detayların verilmesi
gerekmektedir. Ayrıca planlar onaylanırken, sertifikasyon otoritesinin bu tarz
detayları bilmesi ve onaylaması gerekmektedir. Planlar hazırlanırken bu hususlar
mutlaka dikkate alınmalı ve planlarda açık şekilde ifade edilmelidir.</p>
      <p>SOI-1 değerlendirmelerinde en fazla bulgu tespit edilmesine yol açan altıncı soru
ise “Yazılım Konfigürasyon Yönetimi süreçleri DO-178B bölüm 7.0’da tanımlanan
süreçlerin içeriğini yeterli detayda karşılıyor mu?” sorusudur. Buradaki problemler de
gene bir önceki paragrafta anlatılan probleme benzemekte ve konfigürasyon
yönetimine ilişkin aktivitelerdeki detay eksikliğinden kaynaklanmaktadır. Bulgular
incelendiğinde, konfigürasyon kontrol kurulu üyelerinin ve karar verme
mekanizmasının net olarak anlatılmaması, üst ya da alt yükleniciden nasıl hata
bildirimi alınacağı ve/veya verileceğine ilişkin detaylı sürecin tanımlanmaması gibi
konfigürasyon yönetimine dair detayların yeterli seviyede anlatılmamış olmasının
temel sıkıntı olduğu görülmektedir. Bu detayların, projede çalışan kişilerin işlerini
rahatlıkla yürütebilmelerini sağlayacak seviyede verilmesi gerekmektedir. Örneğin,
konfigürasyon kontrol kurulunda kararlar verilirken, bir anlaşmazlık olması
durumunda nasıl bir yöntem izlenerek (oy çokluğu, konfigürasyon kontrol kurulu
başkanının nihai kararı vermesi gibi) nihai kararın verileceği planlarda net olarak
açıklanmalıdır.</p>
      <p>SOI-1 değerlendirmelerinde en fazla bulgu tespit edilmesine yol açan en son soru
ise “Yazılım Doğrulama Planı içerisinde her bir doğrulama aktivitesinde kullanılacak
doğrulama metodu belirtilmiş mi?” sorusudur. DO-178B yazılım projelerinde
doğrulama aktivitelerinden birisi olan gözden geçirmelerde soru listeleri kullanılması
zorunludur. Projelerde kullanılan bu soru listeleri genelde Yazılım Doğrulama
Planının eki olarak verilmektedir. Bu soruya ilişkin bulgular incelendiğinde,
bulguların çoğu zaman Yazılım Doğrulama Planının ekinde verilen ve projede gözden
geçirme aktivitlerinde kullanılacak olan soru listelerinin DO-178B amaçlarını tam
olarak sağlayacak yeterlilikte olmamasından kaynaklandığı görülmektedir. Bunun
haricinde gene gözden geçirme gibi bazı doğrulama aktivitelerinin nasıl
yürütüleceğine ilişkin yeterli detayın verilmemiş olması da bir başka ana problem
kaynağı olarak görülmektedir. Bu tip bulguların önüne geçebilmek adına, planlama
aşamasında kontrol listeleri DO-178B standardında yer alan amaçları tam olarak
karşılayabilecek şekilde geliştirilmelidir. Hazırlanan soru listeleri ile karşılanması
gereken DO-178B amaçlarının arasında izlenebilirlik kurmak ve karşılanmayan
amaçların kalmadığına dair bir analiz yapmak bu sıkıntıyı çözebilecek yöntemlerden
biridir. Ayrıca diğer aktivitelerde olduğu gibi yazılım doğrulama aktivitleri için de
yeterli detay planlarda verilmelidir.
4</p>
      <sec id="sec-5-1">
        <title>Sonuç ve Öneriler</title>
        <p>Bu çalışmada, ülkemizde DO-178B uyumlu yazılım sertifikasyon projelerinde
planlama sürecinde yaşanan problemleri tespit edebilmek adına, 2015 yılında çeşitli
projelerde gerçekleştirilen SOI-1 değerlendirmeleri sırasında tespit edilen bulgular
analiz edilmeye çalışılmıştır. Ülkemizde havacılık alanında yapılan sistem ve
platform geliştirme çalışmaları gittikçe yoğunlaşmaktadır. Milli Muharip Uçak(TF-X)
geliştirme projesi ve Yerli Bölgesel Uçak gibi projeler de göz önüne alındığında,
ülkemizde ileriki yıllarda daha fazla aviyonik yazılım geliştirmesi yapılacağı
öngörüsünde bulunmak yanlış olmayacaktır. Bu sebeple, özellikle bu alana yeni
girecek olan yazılım üreticisi firmaların uymaları gereken DO-178B yazılım
geliştirme standardına hakim olmaları büyük önem arz etmektedir. DO-178B
standardını kullanarak yazılım geliştirecek olan firmaların, bu çalışmada ortaya
konulmuş olan planlama sürecine ilişkin problemleri önceden görmeleri, standardın
istediği planlama amaçlarını sağlamalarında katkı sağlayacaktır.</p>
        <p>DO-178B uyumlu yazılım geliştirme projelerinde, planlama sürecinin amaçlarının
oldukça iyi anlaşılması gereklidir. Bu noktada sadece standartta yer alan amaç
tablolarını okumak yeterli olmayacaktır. Standardın tamamı dikkatli şekilde
incelenmelidir. Buna ek olarak, mutlaka DO-178B standardına yardımcı doküman
olarak düşünülebilecek SOI değerlendirmelerinde kullanılan soru listelerini içeren Job
Aid dokümanı, Certification Authorities Software Team (CAST) tarafından
hazırlanmış olan “CAST Position Paper”’lar ve EASA’nın yayımladığı “CM
SWCEH–002 Software Aspects of Certification” sertifikasyon bilgi notu gibi
dokümanlar da göz önüne alınıp detaylı şekilde incelenmelidir. Bu şekilde, DO-178B
amaç tablolarında oldukça genel olarak yazılmış ifadelerin, aslında neyi anlatmak
istediği daha iyi şekilde anlaşılabilecektir. Sonrasında bu amaçları sağlayacak şekilde
bir proje planlaması yapılıp ilgili çıktılar oluşturulmalıdır.</p>
        <p>DO-178B uyumlu yazılım geliştirme yapan firmaların, otoriteler tarafından yapılan
SOI uyum değerlendirmeleri sonrasında, tespit edilen bulgulara ilişkin bir kök neden
analizi çalışması yapmaları ve buradan çıkan sonuçları “alınan dersler” şeklinde
dokümante ederek, firmada ilerideki projelerinde kullanılmak üzere saklamaları da
önerilmektedir. Bu yolla, firmalar daha önceden yaşadıkları sıkıntı ve problemleri,
ileriki dönemde yaşamayacak ve aynı hataları tekrarlamayacaklardır.</p>
        <p>Gelecek dönemde, bu çalışmanın devamı olarak benzer şekilde Yazılım
Gereksinimleri, Tasarımı ve Kodlama için yapılan SOI-2 ile Doğrulama faaliyetleri
için yapılan SOI-3 uyum değerlendirmeleri sonuçlarının analiz edilmesinin faydalı
olacağı değerlendirmektedir. Bu vesileyle, DO-178B standardına uyumlu yazılım
gelişterecek olan firmalara dikkat etmeleri gereken hususlar konusunda faydalı bir
literatür kaynağı sunulması ve firmaların SOI uyum değerlendirmelerinde
yaşayabilecekleri olası başarısızlıkların önüne geçilmesi hedeflenmektedir.
5</p>
        <p>Teşekkür
Bu bildirinin yazılması sırasındaki değerli desteklerinden dolayı SSM Sertifikasyon
Müdürü Mehmet Yetiş Uysal’a, STM A.Ş. Mühendislik ve Sertifikasyon Müdürü
Reşat Erhan Yüceer’e ve aynı bölüm çalışanlarından Sinem Yalçınkaya ile D. Gizem
Pektaş’a teşekkür ederiz.
6</p>
      </sec>
      <sec id="sec-5-2">
        <title>Kaynakça</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Leanna</given-names>
            <surname>Rierson</surname>
          </string-name>
          , “
          <article-title>Developing Safety-Critical Software”</article-title>
          ,
          <source>CRC Press, 1st Edition</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. FAA, “
          <source>Advisory Circular Number 20-115C - Airborne Software Assurance”</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Ian</given-names>
            <surname>Dodd</surname>
          </string-name>
          , Ibrahim Habli, “
          <article-title>Safety Certification of Airborne Software:An Empirical Study”</article-title>
          ,
          <source>Reliability Engineering and System Safety</source>
          ,
          <volume>98</volume>
          , Sayfa 7-
          <issue>23</issue>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Aircraft</given-names>
            <surname>Certification</surname>
          </string-name>
          <string-name>
            <given-names>Service</given-names>
            , “
            <surname>Job</surname>
          </string-name>
          Aid-Conducting
          <source>Software Reviews”, Rev 1</source>
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>EASA</surname>
          </string-name>
          ,
          <string-name>
            <surname>"</surname>
            <given-names>CM</given-names>
          </string-name>
          <source>- SWCEH - 002 Software Aspects of Certification”, Rev</source>
          <volume>01</volume>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. RTCA, “DO-178B
          <source>Software Considerations in Airborne Systems and Equipment Certification”</source>
          ,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. MISRA, “
          <article-title>MISRA-C: 2004 Guidelines for the use of the C language in critical systems”</article-title>
          ,
          <source>MIRA Limited, Edition</source>
          <volume>2</volume>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>