DO-330’a Göre TQL-5 Yazılım Araç Kalifikasyonu Nasıl Yapılır?
- Umut Pisken

- 12 saat önce
- 8 dakikada okunur
DO-178C, hava araçlarında yer alan emniyet kritik yazılımların geliştirilmesi esnasında kullanılan bir rehber dokümandır. Tasarım teminatı yaklaşımını temel alan DO-178C rehber dokümanında, 5 farklı yazılım kritiklik seviyesi tanımlanmış ve her bir kritiklik seviyesi için sağlanması gereken amaçlar listelenmiştir. DO-178C gereği bu amaçları sağlamak için yapılan yazılım geliştirme ve doğrulama aktivitelerini otomatikleştiren yazılım programlarının, DO-330 rehber dokümanı temel alınarak kalifiye edilmesi gerekmektedir.
DO-178C dokümanında “yazılım aracı (software tool)”; “bir başka yazılımı veya üretilen dokümanları geliştirmek, test etmek, analiz etmek veya güncellemek için kullanılan yazılımlar” olarak tanımlamaktadır [1]. DO-178C dokümanına göre, bir yazılım aracının DO-178C dokümanında listelenen amaçları gerçekleştirmek üzere yapılan süreçleri otomatikleştirmesi ve aracın ürettiği çıktıların ayrıca bir doğrulamaya tabi tutulmadan kullanılması durumunda, ilgili aracın kalifiye edilmesi gerekmektedir [1]. Araç kalifikasyonu ile yazılım geliştirme veya doğrulama esnasında kullanılan yazılım araçlarının, geliştirilen üründe hata oluşturmayacağı veya mevcut hataların tespit edilmesinde başarısız olmayacağı garanti altına alınmış olmaktadır [2]. Araç kalifikasyonu için, öncelikle ilgili aracın “Araç Kalifikasyon Seviyesi (Tool Qualification Level – TQL)” ‘nin belirlenmesi gerekmektedir.
DO-178C projede kullanılacak olan araçlara ilişkin üç adet kriter tanımlamakta ve bu kriterler aracılığıyla araç türlerini belirlemektedir. Bu kriterler ve aracın kullanılacağı yazılım projesinin DAL (Design Assurance Level) seviyesi dikkate alınarak Araç Kalifikasyon Seviyesi (TQL) belirlenmektedir. DO-178C tarafından yazılım araç kalifikasyonu için tanımlanan üç kriter şu şekildedir [1]:
Kriter 1: Ürettiği çıktı uçacak olan platforma yüklenecek olan ve bu sebeple sisteme bir hata girmesine yol açabilecek araçlar
Kriter 2: Doğrulama süreçlerini otomatikleştiren ve çıktıları bazı doğrulama ve/veya geliştirme süreçlerinin tam olarak uygulanmamasına, bu sebeple bazı hataların tespit edilemeyip gözden kaçmasına yol açabilecek araçlar
Kriter 3: Kullanım amacı içerisinde kullanılmak kaydıyla, bir hatanın tespit edilemeyip gözden kaçmasına yol açabilecek araçlar
Kriter 2 ile Kriter 3 arasındaki farklılık, ilgili aracın kullanımı ile bir veya birden fazla DO-178C amacının karşılanmasının hedeflenip hedeflenmediğiyle ilgilidir [3]. Bir örnek vermek gerekirse, kod gözden geçirmelerinde, kodun kodlama standardına uyumunu kontrol etmek için bir araç kullanılırsa ve kodlama standardına uyum haricinde kodlamaya ilişkin diğer amaçlar başka aktivitelerle (gözden geçirme gibi) sağlanırsa, bu durumda araç Kriter 3 kapsamında değerlendirmektedir. Ancak tüm kod gözden geçirme aktivitesi araç vasıtasıyla yapılır ve buna ek başka hiçbir kontrol yapılmazsa, bu durumda araç Kriter 2 kapsamında değerlendirilmektedir.
Yazılım araçları yukarıdaki kriterlere göre değerlendirilirken, eğer herhangi bir DO-178C amacını otomatikleştirmiyorlar ise araç kalifikasyonu kapsamına alınmamalıdır. Aşağıda çeşitli örnekler üzerinden araç kalifikasyon kriterleri değerlendirmeleri verilmiştir.
Örnek 1:
Araç: Üst seviye yazılım gereksinimlerini yazmak için kullanılan bir metin editörü
Geliştirilen Yazılım DAL Seviyesi: A, B, C veya D
Kriter Sınıfı: Üst seviye yazılım gereksinimleri gözden geçirme sürecinde incelenecekleri için, bu araç herhangi bir DO-178C amacını otomatik hale getirmemekte, bu sebeple de araca herhangi bir kriter sınıfı atanamamaktadır. Aracın kalifiye edilmesine gerek yoktur.
Örnek 2:
Araç: Karmaşık bir algoritma veya formül içeren bir yazılım gereksiniminin test senaryolarını geliştirirken beklenen sonuçları tespit etmek için kullanılan python scripti
Geliştirilen Yazılım DAL Seviyesi: A, B veya C
Kriter Sınıfı: Eğer test senaryo gözden geçirmelerinde, beklenen sonuç değerleri gereksinimlerde yazan algoritma veya formüllere göre gözden geçirme katılımcıları tarafından el ile hesaplanıp kontrol edilmiyor ve scriptin hesapladığı beklenen sonuç değerleri doğru olarak kabul ediliyor ise bu python script'inin kriter 3 olarak sınıflandırılıp kalifiye edilmesi gerekmektedir.
Örnek 3:
Araç: Karmaşık bir algoritma veya formül içeren bir yazılım gereksiniminin test senaryolarını geliştirirken beklenen sonuçları tespit etmek için kullanılan python scripti
Geliştirilen Yazılım DAL Seviyesi: A, B veya C
Kriter Sınıfı: Eğer test senaryo gözden geçirmelerinde, beklenen sonuç değerleri gereksinimlerde yazan algoritma veya formüllere göre gözden geçirme katılımcıları tarafından el ile hesaplanıp kontrol ediliyor ise bu python script'i herhangi bir DO-178C amacını otomatik hale getirmemekte, bu sebeple de araca herhangi bir kriter sınıfı atanamamaktadır. Aracın kalifiye edilmesine gerek yoktur.
DO-178C uyumlu yazılım geliştirme ve doğrulama esnasında, kullanılacak olan araçların yukarıda verilen kriterlere göre sınıflandırılması ve ardından geliştirilmekte olan yazılımın DAL seviyesi de dikkate alınarak, araca bir Araç Kalifikasyon Seviyesi (TQL) atanması gerekmektedir. Bu atama aşağıdaki tabloya göre yapılmalıdır [1]:

DO-178C'de yer alan yukarıdaki tablo kullanılarak TQL seviyesi belirlendikten sonra, yazılım aracını ilgili TQL seviyesine göre kalifiye etmek için yürütülmesi gereken araç kalifikasyon süreçleri DO-330 rehber dokümanında detaylandırılmaktadır. “DO-330 Software Tool Qualification Considerations” dokümanında, TQL seviyesine göre karşılanması gereken amaçlar tanımlanmıştır. Burada TQL-1 olarak sınıflandırılan araçlar için tanımlı amaçlar incelendiğinde, DO-330 dokümanında listelenen amaçların tamamının karşılanmasının beklenildiği görülmektedir. Bu sebeple DO-330 dokümanı, seviye A yazılımlar için kullanılacak olan otomatik kod üreticisi gibi araçların kalifikasyonunda büyük bir titizlik beklemektedir. Bu yazıda Araç Kalifikasyon Seviyesi (TQL) TQL-5 olarak sınıflandırılan araçlar için DO-330 rehber dokümanında tanımlanmış olan kalifikasyon beklentileri üzerinde durulacaktır.
DO-330 Rehber Dokümanında Araç Kalifikasyon Seviyesi TQL-5 Olan Araçlar İçin Beklentiler
Araç Kalifikasyon Seviyesi TQL-5 olan araçlar için DO-330 rehber dokümanında yer alan amaç tablolarına bakıldığında aşağıdaki tabloda verilen şekilde bir dağılım olduğu görülmektedir [4]:

Tabloda görüldüğü üzere; araç kalifikasyon seviyesi TQL-5 olan araçlar için, DO-330 rehber dokümanında yer alan T-1, T-2, T-3, T-4, T-5, T-6 ve T-7 numaralı tablolardaki amaçlar uygulanabilir değildir. TQL-5 seviyesindeki araçlar için toplamda 14 adet amacın sağlanması gerektiği, bunlardan sadece 2 tanesinin bağımsızlık gerektirdiği görülmektedir. Bağımsızlık gerektiren amaçların tamamı Araç Kalite Güvence sürecine aittir. Sonuç olarak, DO-330 rehber dokümanında, TQL-5 seviyesindeki araçlar için, araç kalifikasyonunun araç operasyonel süreçleri odaklı olduğu görülmektedir [5]. Ayrıca TQL-5 seviyesinde karşılanması beklenilen amaçlar detaylı olarak incelendiğinde, tamamının araç kullanıcısı tarafından karşılanabileceği, dolayısıyla araç üreticisinden herhangi bir ek çıktıya ihtiyaç olmadan aracın kalifikasyonunun tamamlanabileceği görülmektedir [6].
Araç kalifikasyonu için yapılması gereken ilk işlem, aracın kullanılacağı projeye ait “Yazılım Sertifikasyon Konuları Planı (Plan for Software Aspects of Certification – PSAC)” dokümanında, araca yönelik bilgilerin ve kalifikasyon ihtiyacı olup olmadığının belirtilmesidir. DO-178C rehber dokümanı gereği, bu bilgilerin PSAC dokümanında yer alması gereken başlıklardan birisi olan “Ek Hususlar (Additional Considerations)” başlığı altında yer alması gerekmektedir. Bu başlık altında projede kullanılan her bir yazılım aracı listelenmeli ve kalifikasyon gerektirip gerektirmedikleri analiz edilmelidir. DO-330 rehber dokümanına göre, yazılım araçları için asgari olarak aşağıdaki bilgiler aracın kullanılacağı projenin PSAC dokümanında verilmelidir [4]:
Kullanılacak olan yazılım aracının tanımlanma bilgileri ve yazılım yaşam döngüsü süreçleri üzerindeki etkileri
Yazılım aracı kullanımı ile hangi süreçlerin otomatize hale getirildiği veya kaldırıldığının açıklanması
Yazılım aracı için öngörülen Araç Kalifikasyon Seviyesi (TQL) ve buna ilişkin gerekçelendirme
Yazılım aracının kaynağı (şirket içi geliştirilen bir araç mı? / hazır satın alınan bir araç mı?)
Araç kalifikasyonu için gerçekleştirilmesi planlanan faaliyetlerde görev alacak rol ve paydaşların görev ve sorumlulukları
Yazılım aracının kullanılacağı ortamın tanımı
Yazılım aracı önceden kalifiye edilmiş ve bundan kredi alınması planlanıyor ise buna ilişkin detaylar
Araç kalifikasyonu esnasında işletilecek olan “Araç Operasyonel Süreçleri”, “Araç Operasyonel Entegrasyon Süreci” ve “Araç Operasyonel Doğrulama ve Geçerli Kılma Süreci” için açıklamalar
Yazılım aracının “Araç Kalifikasyon Planı (Tool Qualification Plan-TQP)” dokümanına referans veya TQL-5 seviyesindeki araçlar için TQP yazılmayacak ise araç kalifikasyonuna yönelik verilere referans
Yukarıdaki listelenen maddelerde görüldüğü üzere, DO-330 rehber dokümanı TQL-5 araçlar için ayrı bir TQP hazırlanmasını mecbur kılmamaktadır. Yazılım aracının kullanılacağı projeye ait PSAC dokümanı TQP yerine geçebilmektedir.
TQL-5 araç kalifikasyon seviyesindeki araçlar için, araç kalifikasyon sürecindeki ikinci aşama ise “Araç Operasyonel Gereksinimlerinin (Tool Operational Requirements – TOR)” tanımlanmasıdır. TOR’da tanımlanan gereksinimleri, aracın sistem gereksinimleri gibi düşünmek yanlış olmayacaktır [4]. DO-330 rehber dokümanına göre, TOR’da tanımlanan gereksinimlerin, aracın davranışlarını kullanıcı bakış açısından tanımlaması beklenmektedir [4]. TQL-5 seviyesindeki bir araç için, TOR dokümanının aşağıdaki bilgileri içermesi gerekmektedir [4]:
Yazılım yaşam döngüsü açısından aracın kullanımının bağlamı, varsa aracın diğer araçlar ile arayüzlerinin tanımı
Aracın operasyonel ortamının tanımı (aracın kullanımı esnasında hangi ortamda kurulu olacağı bilgisi)
Aracın girdi ve çıktı dosyalarının tanımlanması (dosya içerikleri, formatı vs.)
Aracın fonksiyonel gereksinimleri
Eğer araca ait ayrı bir kullanıcı ve kurulum kılavuzu yoksa, buna yönelik bilgiler (aracın ayrı bir kullanıcı ve kurulum kılavuzu mevcut ise, buna referans verilebilir)
Aracın nasıl çalıştırılacağına yönelik bilgiler (kullanıcı seçenekleri, komut satırı komutları, parametre değerleri gibi)
Yazılım kaynak kod dosyalarında, kodlama standardına yönelik kontroller yapan TQL-5 seviyesindeki bir araçta, aşağıdaki örnekte verilen bir TOR gereksinimi olabilir [5]:
TOR-010: Araç, yazılım kaynak kodunda aynı ifadede artırma veya azaltma operatörünün diğer operatörlerle bir arada kullanıldığı her durumu tespit edip, satır numarası ve dosya adıyla birlikte belirtecektir.
DO-330 rehber dokümanı, TOR’da yer alan gereksinimlerin, doğrulanabilir ve tutarlı olması gerektiğini belirtmektedir. Gereksinimlerin, aracın yazılım yaşam döngüsü esnasında kullanıldığı aktivitelerdeki fonksiyonalitesini ve çıktılarını yeterli detayda vermesi gerekmektedir.
“Araç Operasyonel Entegrasyon Süreci”, TQL-5 araç kalifikasyon seviyesindeki araçlar için, araç kalifikasyon sürecindeki üçüncü aşamadır. Bu aşamada öncelikle, aracın kullanılacağı operasyonel ortama kullanıcı kılavuzu gibi dokümanlarda tariflenen adımlara uygun olarak kurulumu gerçekleştirilmektedir [4]. Bu kurulum sonrasında, aracın operasyonel ortamında kullanıcı beklentilerine uygun şekilde çalışıp çalışmadığı değerlendirilmektedir. “Araç Operasyonel Entegrasyon Süreci” esnasında, aracın kurulum adımlarına yönelik problemler veya eksiklikler tespit edilmesi durumunda, ilgili kurulum kılavuzu tarzı çıktılara geri bildirim verilip, çıktıların düzeltilmesi beklenmektedir. Ayrıca kurulum sonrasında bir “Araç Kurulum Raporu” oluşturulması gerekmektedir [4]. Bu raporda şu bilgiler yer almalıdır:
Aracın kurulduğu ortama ait donanım, yazılım (işletim sistemi vs.) ve kurulum esnasında seçilen kullanıcı seçenekleri
Kurulan aracın ve varsa kullanılan konfigürasyon ile parametre veri dosyalarının sürüm bilgileri
Eğer mevcut ise dış bileşenlerin sürümleri
Aracın nasıl çalıştırılacağına dair bilgiler (komut satırı komutları, betik dosyaları (script files) gibi) (eğer bu bilgiler kullanıcı kılavuzu gibi ayrı bir çıktıda ayrıntılı şekilde mevcut ise, bu çıktıya referans verilebilir)
TQL-5 seviyesindeki araçların kalifikasyon sürecindeki bir sonraki aşama ise “Araç Operasyonel Doğrulama ve Geçerli Kılma Süreci”’dir. TQL-5 seviyesindeki araçlar için bu sürecin temel girdileri; TOR ve Araç Çalışabilir Nesne Kodu’dur. Sürecin çıktıları ise; “Araç Operasyonel Doğrulama Prosedürleri” ile “Araç Doğrulama ve Geçerli Kılma Sonuçları”’dır. Bu aşama esnasında temel amaç; gözden geçirme, analiz ve testler ile, TOR gereksinimlerinin tutarlılığını, doğruluğunu ve tam olduğunu garanti altına alıp, Araç Çalışabilir Nesne Kodu’nun aracın çalışma ortamında bu gereksinimleri sağladığını göstermektir [4]. Bu noktada, TQL-5 harici kalifikasyon seviyelerinde TOR gereksinimlerinin gözden geçirme sürecine sokularak, gereksinimlerin tutarlı, doğru ve eksiksiz olduklarının garanti altına alınması beklenirken, TQL-5 seviyesinde bu işlemin yapılması DO-330 rehber dokümanı amaçları açısından zorunlu değildir [4]. Ancak TOR gereksinimleri temel alınarak test senaryoları geliştirileceği için, bu gereksinimlerin istenilen olgunlukta olduğunu garanti altına almak adına, zorunlu olmamasına rağmen bu tip bir gözden geçirmenin yapılması faydalı olacaktır. TOR gereksinimleri temel alınarak test senaryolarının geliştirilmesi ve bu test senaryolarının aracın kullanılacağı ortamda test edilmesi gerekmektedir. Test senaryoları koşturulduktan sonra, test sonuçlarının gözden geçirilerek, test sonuçlarının doğru olduğu ve kalan adımlar mevcutsa bunlara yönelik gerekli işlemlerin yapıldığı garanti altına alınmalıdır. Doğrulama faaliyetlerine ek olarak beklenen geçerli kılma faaliyeti için ise, aracın gerçek kullanım senaryolarını temsil eden bir alt senaryo kümesi seçilerek, TOR gereksinimlerinin doğru ve tam olduğu gösterilmelidir. Yapılan bu doğrulama ve geçerli kılma faaliyetlerine ilişkin sonuçların “Araç Doğrulama ve Geçerli Kılma Sonuçları” olarak raporlanması beklenmektedir.
TQL-5 araçların kalifikasyonu esnasında yukarıda özetlenen süreçlere paralel olarak yürütülmesi beklenilen “Araç Konfigürasyon Yönetim Süreci”, “Araç Kalite Güvence Süreci” ve “Araç Kalifikasyon İrtibat Süreci” isimli üç adet bütünleşik süreç mevcuttur. TQL-5 seviyesindeki araçlar için, “Araç Konfigürasyon Yönetim Süreci” açısından temel beklentiler, konfigürasyon parçalarının tanımlanması ve gerekli arşivleme ve yayınlama süreçlerinin işletilmesidir. “Araç Kalite Güvence Süreci” ise TQL-5 araçlar için, araç kalifikasyon sürecinin planlara uygun şekilde yürütüldüğünün garanti altına alınması ile araç uygunluk gözden geçirmesinin yapılası şeklindedir. Bu noktada kalite güvence mühendisinin araç kalifikasyon süreci esnasında planlara uyum konusunda gerçekleştireceği iç denetimler ve kayıtları ilgili DO-330 amaçlarını sağlamak adına yeterli olacaktır. Araç kalifikasyon süreci sonunda kalite güvence mühendisi tarafından içeriği DO-330 dokümanında tariflenen araç uygunluk gözden geçirmesinin de gerçekleştirilip kayıt altına alınması gerekmektedir. Araç kalifikasyon irtibat süreci kapsamında TQL-5 seviyesindeki araçlar için ayrı çıktılar oluşturulması zorunlu tutulmamıştır. Aracın kullanılacağı projeye ait PSAC, SAS ve SCI dokümanlarında araca yönelik DO-330 dokümanında anlatılan bilgilerin verilmesi yeterlidir. TQL-5 seviyesindeki araçlar için, aracın kullanıldığı projenin “Yazılım Başarım Özeti (Software Accomplishment Summary -SAS)” dokümanında araca ilişkin aşağıdaki bilgilerin verilmesi gereklidir:
Yazılım aracının tanımı
Yazılım aracı kullanımı ile hangi süreçlerin otomatik hale getirildiği veya kaldırıldığının açıklanması
Araç kalifikasyon verilerine referans
TQL-5 seviyesindeki araçların kalifikasyonu esnasında, DO-330 rehber dokümanında tanımlı beklentileri karşılamak için araç üreticisinden herhangi bir ek çıktının temin edilmesine ihtiyaç yoktur. Bu sebeple dışarıdan hazır olarak temin edilen araçlar için, araç kalifikasyon işlemi araç kullanıcısı tarafından araç kalifikasyon paketi satın alınmadan da tamamlanabilir. DO-178C uyumlu yazılım geliştirme projelerinde TQL-5 seviyesi hazır araç kullanılacak olması durumunda, zaman ve kaynak kısıtları da göz önüne alınarak, kalifikasyon paketi satın alınması veya kalifikasyon işleminin araç kullanıcısı tarafından yapılmasına yönelik karar verilmelidir.
Kaynaklar:
RTCA, DO-178C Software Considerations in Airborne Systems and Equipment Certification, Radio Technical Commission for Aeronautics, 2011.
Marques, J.; Marques da Cunha, A.: COTS tool qualification using RTCA DO-330: Common pitfalls. In: 2017 IEEE/AIAA 36th Digital Avionics Systems Conference (DASC). pp. 1–6, 2017
L. Rierson, Developing Safety Critical Software, CRC Press, 2013.
RTCA, DO-330 Software Tool Qualification Consideration, 2011.
Gustafson C. ve Florin S., "Qualification of Tool for Static Code Analysis Processes and Requirements for Approval of Static Code Analysis in the Aviation Industry", Stockholm, 2020.
F. Pothon, "DO-330/ED-215 Benefits of the New Tool Qualification Document", https://www.adacore.com/books/do-330-ed-215-benefits accessed on 30 November 2025, 2013.




Yorumlar