Geliştirilen yazılımın tanımlanmış gereksinimleri ve kullanıcının ihtiyaçlarını tam olarak sağladığını garanti altına almak adına yürütülen aktiviteler Yazılım Kalite Güvence süreci olarak tanımlanmaktadır. DO-178C açısından bakıldığında, Yazılım Kalite Güvence Süreci “bütünleşik süreç” olarak sınıflandırılmaktadır. Bütünleşik süreç ile anlatılmak istenilen, ilgili sürecin projenin başlangıcından sonuna kadar diğer süreçler ile (planlama, geliştirme, doğrulama gibi) iç içe ve paralel olarak yürütülmesi gereken bir süreç olduğudur. Bu sebeple DO-178C projelerinde, Yazılım Kalite Güvence Süreci projenin planlama aşamasından itibaren başlayıp, yazılımın doğrulama faaliyetleri tamamlanana kadar sürmelidir.
DO-178C amaçları incelendiğinde, Tablo A-9’da tanımlanmış olan Yazılım Kalite Güvence süreci amaçlarının tamamının bağımsız bir şekilde sağlanması gerektiği görülmektedir. Ayrıca gene ilgili amaçlar incelendiğinde, proje planlarının DO-178C ile uyumlu olacak şekilde geliştirildiğinin garanti altına alınması ve proje süreçlerinin (geliştirme, tasarım, doğrulama gibi) bu planlarda anlatıldığı şekilde yürütüldüğünün garanti altına alınmasının Yazılım Kalite Güvence tarafından yapılması gerektiği belirtilmektedir. Bu amaçlardan dolayı, aslında üretilen “yazılımın DO-178C uyumunun sağlandığının garanti altına alınması” Yazılım Kalite Güvence sorumluluğunda gözükmektedir.
Bu noktada vurgulanması gereken bir diğer önemli husus ise, Yazılım Kalite Güvence mühendisinin temel sorumluluğunun DO-178C süreçlerine ve proje planlarında tanımlanan süreçlere uyumu garanti altına almak olduğudur. DO-178C süreçlerine ve proje planlarına uymak, projede çalışan herkesin sorumluluğudur. Yazılım Kalite Güvence Mühendisinin sorumluluğu ise, buna uyulduğunu garanti altına almaktır. Dolayısıyla kaliteli bir yazılım üretilmesinden ve DO-178C amaçlarına uyulmasından herkes sorumludur.
Yazılım Kalitesi ne yazık ki sadece geliştirilen yazılımın projenin sonunda çeşitli test ve analizlere sokulmasıyla garanti altına alınamamaktadır. Bu sebeple, Yazılım Kalite Güvence süreci bütünleşik bir süreç olarak tanımlanmıştır. Projede görevli yazılım kalite güvence mühendisi projenin her aşamasında aktif rol alarak, proaktif şekilde süreçlerde aksayan noktaları, daha önceki aşamalarda tespit edilebileceği halde daha ilerideki aşamalarda tespit edilen hataları analiz ederek, gerekli önleyici faaliyetleri uygulamaya koymalıdır.
DO-178C gereği bu kadar önemli sorumluluklar yüklenmiş olan Yazılım Kalite Güvence fonksiyonunun, bu sorumlulukları yerine getirebilmesi için, yeterli işgücüne sahip olmasının yanı sıra, yazılım kalite güvence mühendisi olarak görev yapan kişilerin de gerekli nitelikleri sağlıyor olması gerekmektedir.
DO-178C standardı, yazılım projelerinde görev alan kişilerin nitelik ve yeterliliklerine ilişkin beklentileri tanımlamamaktadır. Ancak literatür taraması yapıldığında çeşitli değişik kaynaklarda benzer niteliklerin tanımlanmış olduğu görülmektedir. Bunların başlıcaları şunlardır:
3-5 yıl kadar yazılım geliştirme veya yazılım doğrulama tecrübesi
Bilgisayar Bilimleri veya Mühendisliği eğitimi almış olmak
Yazılı ve sözlü iletişim becerilerinin iyi olması
Değişime ve yeniliklere açık olma
Üzerinde baskı olduğu durumlarda bile doğruları savunabilme
Öğrenmeye açık ve araştırmacı bir yapıya sahip olmak
DO-178C uyumlu yazılım geliştirme projelerinde, literatürde tanımlanmış olan nitelikleri sağlamayan kalite güvence mühendislerinin çalıştırılması, kalite güvence fonksiyonunun kendisine atanmış olan amaçlara uyumu garanti altına alamamasıyla sonuçlanacaktır. Bu durum geliştirilen yazılımın emniyeti açısından da ilerleyen dönemlerde sıkıntılara yol açacaktır. Yazılım projelerinde proaktif şekilde gerekli önlemleri alabilecek en etkili rol yazılım kalite güvence mühendisleridir. DO-178C uyumuna ilişkin kontrolleri yapan havacılık otoriteleri, projeye daha geç aşamalarda dahil olmaktadır. Dolayısıyla havacılık otoritelerinin tespit edeceği DO-178C uyumsuzlukları proaktif olmaktan çok reaktif olmakta ve verimsizliğe yol açmaktadır. DO-178C uyumlu yazılım geliştirme projelerinde hem yazılım emniyeti hem de projenin takvim-bütçe verimliliği açısından gerekli nitelikleri sağlayan yeterli sayıda yazılım kalite güvence mühendisi görevlendirilmesi şarttır.
Yazılım geliştirme tecrübesine ve geçmişine sahip mühendisler, genellikle kalite güvence mühendisliği görevi yapmak istememekte ve yazılım geliştirme veya yazılım test mühendisi olarak kariyerlerini devam ettirmeye çalışmaktadırlar. Bu sebeple firmaların yukarıda tanımlanmış niteliklere sahip yazılım kalite güvence mühendisi bulması ciddi bir zorluk teşkil etmektedir. Bu zorluğu aşmak adına aşağıdaki uygulamalar yapılabilir:
Firma içinde 1-2 yıllık rotasyon uygulamaları ile, yazılım geliştirme veya test tecrübesi olan mühendislerin yazılım kalite güvence mühendisi olarak görev yapması sağlanabilir. Böylece hem farklı roller arasındaki empati arttırılacak, hem de yazılım geliştirme/test mühendisleri yeni yetkinlikler öğrenme fırsatı edineceklerdir.
Yazılım Kalite Güvence mühendislerinin özellikle DO-178C projelerindeki yüksek yetki ve sorumluluğu göz önüne alındığında, ücret ve yan haklarının bu yetki ve sorumluluğa uygun olacak şekilde belirlenmesi, yazılım kalite güvence mühendisi rolünün daha cazip hale gelmesini sağlayacaktır.
DO-178C projelerinde kalite güvence süreci, kendisine atanan amaçların oldukça önemli amaçlar olması dolayısıyla, büyük öneme sahiptir. Kalite güvence süreci amaçlarından olası sapmaların DO-178C uyum değerlendirmeleri esnasında tespit edilmesi durumu ciddi bulgu olarak değerlendirilmekte ve ilgili değerlendirmenin başarısız olarak sonuçlanmasına sebebiyet vermektedir. Bu sebeple, DO-178C standardının yüksek önem atfettiği kalite güvence fonksiyonuna gerekli kaynak ve yeterli nitelikte çalışan sağlanması hem yazılım emniyeti hem de projelerin verimliliği açısından şarttır.
Kaynaklar:
[1] Leanna Rierson, “Developing Safety-Critical Software”, CRC Press, 1st Edition, 2013.
[2] G. Gordon Schulmeyer, “Handbook of Software Quality Assurance”, Artech House, 4th Edition, 2008.
[3] Linda Westfall, “The Certified Software Quality Engineer Handbook”, ASQ Quality Press, 1st Edition, 2009.
[4] RTCA, “DO-178C Software Considerations in Airborne Systems and Equipment Certification”, 2011.
Comments