Yazılım Kalite Güvencede Ara Tasarım Değerlendirme Yaklaşımı İlgi Keskin Kaynak Programlar ve Tasarım Kalite Yönetimi Müdürlüğü, Kalite Yönetim Dir., REHİS Sektör Bşk. ASELSAN A.Ş. ikkaynak@aselsan.com.tr Özet. ASELSAN Radar ve Elektronik Harp Sistemleri (REHİS) Sektör Başkanlığı; AQAP-2310, AS9100C, CMMI-DEV v1.3 ve ISO 20000 uluslararası sertifikasyonlarına sahiptir. Bu model ve standartların gereği olarak; ASELSAN REHİS Yönetim Sistemi’nde tanımlı olan tüm süreçler gibi tasarım, geliştirme ve ilgili kalite güvence faaliyetleri de etkinleştirilmektedir. ASELSAN REHİS’te yürütülen kalite güvence faaliyetlerinin etkinliğini art- tırmak amacıyla; mevcut yazılım kalite güvence faaliyetlerine ilaveten Ara Tasarım Değerlendirme (ATAD) faaliyetleri tanımlanmıştır. ATAD faaliyetleri ile yazılım kalite güvencesinin yazılım geliştirme yaşam döngüsüne paralel olarak yürütülmesi; böylece süreç ve ürün ile ilgili muhtemel uygunsuzlukların daha erken tespit edilerek gerekli düzeltici faaliyetlerin daha erken aşamalarda başlatılıp tamamlanması hedeflenmektedir. Sonuç olarak; yazılım kalite güvence faaliyetlerinin etkinliğinin artması beklenmektedir. Yazılım se- viyesinde gerçekleştirilecek pilot çalışmanın sonucu değerlendirilerek, bu bakış açısı sistem ve donanım geliştirme süreçlerinde de dikkate alınabilecektir. Anahtar Kelimeler: Yazılım Kalite Güvencesi, Ara Tasarım Değerlendirme, Yazılım Geliştirme Süreci, Yazılım Geliştirme Yaşam Döngüsü, İşlevsel Kon- figürasyon Tetkiki, Fiziksel Konfigürasyon Tetkiki 1 Giriş ASELSAN REHİS tarafından geliştirilmekte olan sistemlerde kullanılan Yazılım Konfigürasyon Birimlerinin (YKB) işlevselliği ve etkinliği, müşteriye teslim edilen sistemlerin niteliğini önemli ölçüde etkilemektedir. Bu nedenle geliştirilen sistemlerde kullanılan yazılım ürünlerinin ve yazılım geliştirme sürecinin takibi de önem ka- zanmaktadır. Bu çalışma, ASELSAN REHİS Kalite Yönetim Direktörlüğü bünyesinde gerçekleştirilen yazılım kalite güvence faaliyetlerinin etkinleştirilmesi amacıyla yapılmıştır. Çalışmanın amacı; yazılım geliştirme ve yazılım test faaliyetlerinin etkinliğini değer- lendirerek tasarım ekibini projenin erken safhalarından itibaren yönlendirmek için 725 yazılım geliştirme sürecinin belirli aşamalarında ara değerlendirmeler yapılması ve proje yaşam döngüsü boyunca yürütülen yazılım kalite güvence faaliyetlerinin sağladığı katma değerin arttırılmasıdır. Yapılan pilot çalışmada Yazılım Kalite Güvence faaliyetleri ile olası bulguların daha erken aşamalarda tespit edilmesi ve daha kısa sürede bulguların çözülmesi hedeflenmiştir. Bu amaçla toplanan ölçümler analiz edilerek çıkarımlarda bulunulmuştur. ATAD faaliyetleri; ilk olarak yazılım geliştirme ve yazılım test faaliyetlerine uygu- lanacak, başarılı görülmesi durumunda sistem/donanım geliştirme ve tasarım tedarik süreçleri için de dikkate alınabilecektir. Makalenin organizasyonu şu şekilde özetlenebilir; Giriş bölümünde çalışmanın amacı ve kapsamına ilişkin açıklama yapılmıştır. Girişin ardından gelen Literatür Araştırması Bölümü’nde bu konuda daha önce gerçekleştirilmiş olan ve incelenen örnek uygulamalar hakkında bilgi verilmiştir. Daha sonra bu örneklerin incelenmesi üzerine mevcut yazılım kalite güvence faaliyetlerine ek olarak yazılım geliştirme süreci boyunca uygulanan ATAD faaliyetleri açıklanmış ve yapılan pilot çalışma anlatılarak sonuçları değerlendirilmiştir. 2 Literatür Araştırması Yazılım kalite güvencesi faaliyetleri ile ilgili literatür taraması yapıldığında bu ko- nuda yapılan pek çok uygulama incelenmiş ve bunlar arasından aşağıda verilen iki örnek için anlatıma yer verilmiştir. ATAD faaliyetleri tanımlanırken literatürde karşılaşılan iyi uygulamalar dikkate alınmıştır. Örnek Uygulama-1: AT&T Bell Laboratuvarları Kalite Güvence Merkezi tarafın- dan Yazılım Geliştirme Süreç Denetimleri için gerçekleştirilen çalışmada, bir proje yaşam döngüsü boyunca incelenmiş ve proje yeterince erken denetlendiğinde bulgu- lara verilen yanıtların, geliştirilen ürünün kalitesini ve yazılım geliştirme sürecinin işleyişini iyileştirebileceği değerlendirilmiştir. Denetimlere yazılım mühendisleri ve yöneticileri katılmıştır. Bu çalışmada projenin, yazılım geliştirme sürecinin ve yazılım ürünlerinin iyileştirilerek kalitesinin arttırılması için öneriler sunulmuştur. Bunun yanı sıra denetimlere verilen yönetim desteğinin söz konusu kalite güvence faaliyetlerinin proje ekibi tarafından tehdit unsuru olarak anlaşılmamasını sağladığı değer- lendirilmiştir.[1] Örnek Uygulama-2: STR LLC and Hilary Benoit, W R Systems, Limited Şir- keti’nde “Kalite Güvence Fonksiyonunu Yazılım Geliştirme Yaşam Döngüsü’ne En- tegre Etme” konusunda yapılan bir çalışmada ise kalite güvence fonksiyonunun ger- eksinim yönetimine gereksinimlerin tanımlanması aşamasından itibaren katılım sağlamasının ve kalite güvence, konfigürasyon yönetimi ve teknik birimlerin yöneti- cileri arasında iş birliği sağlanmasının önemi vurgulanmıştır.[2] 726 3 Yazılım Kalite Güvence Faaliyetlerini Etkinleştirme Çalışması Bölüm 2’deki örnek uygulamalar dikkate alınarak, kalite güvence fonksiyonu tarafın- dan değerlendirilen tasarım faaliyetlerinin sadece olumsuz yönlerinin değil, olumlu yönlerinin de raporlanması kararı alınmıştır. Bunun yanı sıra çalışmaya tasarım ekibi de dahil edilerek ATAD faaliyetlerinin tanımlanması aşamasında sunulan iyileştirme önerileri dikkate alınmıştır. Literatür araştırmasında yer verilen örnekler incelendiğinde yazılım geliştirme sü- recinin başından itibaren bağımsız bir bakışla tasarım faaliyetlerinin daha yakından takip edilmesinin, kalite fonksiyonunun tasarım süreçlerine dahiliyetini arttıracağı öngörülmüştür.[3] 3.1 ATAD Faaliyetleri Yazılım kalite güvence faaliyetlerinin etkinliğini arttırmak amacıyla mevcut yazılım kalite güvence faaliyetlerine ek olarak önerilen ATAD faaliyetleri Şekil-1’de gösterilmektedir. Şekil-1’deki gösterim Yazılım Geliştirme Süreci üzerinden ver- ilmiştir. Sürecin her bir adımının sonunda yatay/dikey oklar ile belirtilen ATAD faaliyetleri YKGM tarafından bağımsız olarak yürütülmektedir. “Yazılım Tasarımını Tanımla” adımı mevcut Yazılım Geliştirme Süreci’nde ayrı bir adım olarak tanımlı değildir. Yazılım İyileştirme Ekibi tarafından kabul edilen süreç iyileştirme önerisine istinaden yapılacak pilot çalışma için gösterimde yer verilmiştir. Şekil 1: Yazılım ATAD Faaliyetleri Şekildeki gösterim Şelale Modeli’ne göre hazırlanmıştır. SCRUM gibi çevik yazılım geliştirme yöntemleri uygulanan yazılım geliştirme faaliyetlerinde, ATAD faaliyetleri herhangi bir sürüm için gerçekleştirilecektir. ATAD faaliyetleri ile koşu- larda (iterasyon) gerçekleştirilen yazılım geliştirme yaşam döngüsü adımları detaylı olarak değerlendirilmiş olacaktır. Böylece sistem entegrasyon testine girecek olan yazılım sürümleri ile ilgili olası eksiklikler yazılım geliştirme faaliyetlerine paralel olarak saptanabilecektir. ATAD faaliyetleri şu aşamalardan oluşur: 727 Planlama. Yılın her çeyreği için proje takvimine ve tasarım ekibinin iş planına uy- gun olarak yapılır. ATAD planı, yazılım geliştirme ve yazılım test ekipleri ile paylaşılır. Hazırlık. ATAD planında değerlendirme dönemine giren proje kapsamında yazılım geliştirme süreci ve ilgili diğer süreç varlıkları incelenir. Projede uygulanan yazılım geliştirme yöntemi analiz edilir. ATAD hazırlık sorularına yanıt aranır. (Örnek için bkz. Tablo-1 Yazılım Gerçekleme ATAD Soru Listesi Bölüm A.) Değerlendirme ve Raporlama. Bu aşamada soru listesinin B bölümünde yer alan değerlendirme soruları sorulur. (Örnek için bkz. Tablo-1 Yazılım Gerçekleme ATAD Soru Listesi Bölüm B.) Tasarım faaliyetlerinin iyileştirmeye açık yönleri ile birlikte güçlü yönleri de raporlanır.. YKGM tarafından yapılan değerlendirme neticesinde (varsa) iyileştirme önerileri ilgili paydaşlara sunulur. Değerlendirmede kullanılan soru listesinin bir örneği Tablo-1’de verilmiştir. ATAD # YAZILIM GERÇEKLEME Elektronik Dosya İçeriği, Yazılım Versiyon İş Ürünleri Tanımı, Medya İŞLEM MADDESİ Yazılım/Yazılım Test Ekip Liderleri, YKB AÇIKLAMA Katılımcılar TERMİN DURUM KANIT Sorumlusu Yazılım Geliştirme Planı (YGP)/Sürüm Planı, Yazılım Gereksinim Özellikleri (YGÖ), Yazılım Tasarım Tanımı (YTT), Girdiler (varsa) Veritabanı Tasarım Tanımı (VTTT), Yazılım Beyaz Kutu Testleri Kayıt Formu, Birim Test Tanımı (BTET), Birim Test Raporu (BTER) ATAD İşlem Daha önce yapılan ATAD faali- Maddeleri 1 yet(ler)inde saptanan ve bu faaliyete girdi Listesi, oluşturan uygunsuzluk(lar) kapatılmış mı? Bildirim Takip Dosyası YGP, Gözden A. HAZIRLIK Yazılım geliştirme faaliyetleri planlanmış 2 Geçirme Tu- ve tüm paydaşların katılımı sağlanmış mı? tanağı (GGT) Yazılım gerekleri tanımlanarak temeli YGÖ, DOORS, 3 alınmış ve tüm paydaşların katılımı GGT sağlanmış mı? YTT ve/veya VTTT temeli alınmış ve tüm paydaşlara duyurulmuş mu? YTT, VTTT, 4 Yazılım tasarımı ve veri tabanı tasarımı DOORS, GGT tanımlamaları yapılarak temeli alınmış ve 728 tüm paydaşların katılımı sağlanmış mı? Elektronik Dosya İçeriği, Tasarım elektronik dosya, medya ve Yazılım yazılım versiyon tanımı içerikleri sürüm 1 Versiyon planına uygun olarak hazırlanmış ve tüm Tanımı, Medya, paydaşların katılımı sağlanmış mı? YGP/Sürüm Planı B. DEĞERLENDİRME YGP'de kullanılması öngörülen kodlama YGP, Kaynak 2 standartlarına uygun olarak geliştirme Kod yapılmış mı? YGP’de gözden geçirileceği belirtilen kod 3 Kod GGT, YGP kesimleri gözden geçirilmiş mi? Yazılım Beyaz- Kutu Test For- Beyaz kutu/birim test yapılacak YKB’ler mu, 4 seçilmiş ve yazılım beyaz kutu/birim YGÖ, Birim testleri yapılmış mı? Test Tanımı, Birim Test Raporu Tablo 1. Örnek (Yazılım Gerçekleme) ATAD Soru Listesi a. Takip Etme. Katılımcılardan gelen öneriler ve görüşler dikkate alınarak işlem maddeleri takip edilir ve gerekli düzeltici faaliyetlerin tamamlandığı teyit edildiğinde ATAD faaliyeti sonlandırılır. Son olarak ATAD performansı değerlendirilerek ATAD faaliyetlerinin etkinleştirilmesine yönelik önlemler de alınabilir. Bu önlemler bir sonraki çeyrek yılın planlamasına girdi oluşturur.[4] 4 Pilot Çalışma ATAD faaliyetleri Mayıs 2014’te tanımlanmış ve radar, elektronik destek ve el- ektronik taarruz alanlarında faaliyet gösteren dört projede uygulanmıştır. ATAD faaliyetlerinde tespit edilen bulgular ile ASELSAN REHİS Yönetim Sistemi’nde halihazırda tanımlı olan işlevsel/fiziksel konfigürasyon tetkiklerinde tespit edilen bulgular kategorilere ayrılarak kapatılma süreleri karşılaştırıldığında Şekil-2’deki veriler elde edilmiştir. Bulgu kategorileri grafiğin yatay ekseninde belirtilmiştir. 729 300 95% 266 91% 250 88% 199 75% 72% 205 200 165 58% 171 165 155 143 54% 152 150 45% 38% 100 82 79 93 95 50 40 50 23 20 8 0 İKT/FKT Bulguları ATAD Bulguları Yüzde Farkı Şekil 2: Bulguların sınıflarına göre ortalama kapatılma süresi (gün sayısı) Şekil-2’de karşılaştırılan İKT/FKT faaliyetleri YKB’ye ait tüm yazılım geliştirme süreci çıktılarının toplu olarak değerlendirildiği konfigürasyon tetkikleri iken ATAD faaliyetleri yazılım geliştirme sürecine paralel olarak gerçekleştirilen ara değer- lendirmelerdir. Pilot çalışmadan toplanan veriler ATAD faaliyetlerinde açılan bulgu- ların kapatılması için geçen gün sayısının, yazılım geliştirme sürecinin sonunda gerçekleştirilen İşlevsel/Fiziksel Konfigürasyon Tetkikleri’nde (İKT/FKT) açılan bulgulara göre yukarıda verilen oranlarda kısaldığını göstermiştir. Örneğin “Sis- tem/Arayüz Tasarımı” kategorisindeki bulgular İKT/FKT’lerde 155 günde kapa- tılırken ATAD faaliyetlerinde saptandığında 8 günde kapatılabilmiştir. Bu durum önemli ölçüde iyileşme olduğunu göstermektedir. Şekil-2’den de görülebilediği gibi bulguların kapatılma sürelerindeki iyileştirme yazılım geliştirme sürecinin ilk adımları için %75-95 civarında iken sonraki adımları için %38-58 aralığındadır. Bunun nedeni şu şekilde yorumlanmıştır: ATAD faaliyetleri yazılım geliştirme sü- recine paralel olarak gerçekleştilirken İKT/FKT tetkikleri süreç sonlandıktan sonra gerçekleştirilmektedir. Kalite faaliyetlerinin yazılım geliştirme sürecine paralel olarak yapılması tasarım faaliyetlerinin planlanmasına ve takibine katkı sağladığı için tasarım ekibinden hızlı yanıt alınarak bulguların daha kısa sürede kapatılması sonu- cunu doğurmuştur. Ortaya çıkan bu sonucun, projenin son aşamalarında yapılan İKT/FKT’lerde tasarım ekibinin birden fazla projede görev alması nedeniyle, tetkik edilen projeye geri dönüp bulguları kapatmaya yoğunlaşmasının vakit almasından kaynaklandığı değerlendirilmiştir. Şekil-2’de ATAD faaliyetlerinde tespit edilen bul- guların kapatılma sürelerinin özellikle yazılımın detaylı tasarımı, gerçeklenmesi ve doğrulanması aşamaları sırasında artış gösterdiği görülmektedir. ATAD’larda tasarım ekibine açılan işlem maddeleri SCRUM koşuları boyunca kapatılmakta ve iş takibinin 730 yapıldığı koşu dosyalarına girdi oluşturmaktadır. ATAD faaliyetlerinde tespit edilen bulguların planlanan İKT/FKT faaliyetlerine göre kaç gün öncesinde saptandığı ise Şekil-3’te verilmiştir. Şekil 3: Bulgu tespitindeki iyileşme (gün sayısı) Bulguların ortalama tespit zamanı ve kapatılma sürelerinde görülen iyileşmeler doğrultusunda ATAD faaliyetlerinin ASELSAN REHİS Yönetim Sistemi’ne katma değer sağladığı sonucuna varılmıştır.[5] 5 Değerlendirme ve Gelecekteki Çalışmalar Bölüm-4’te değinildiği gibi ATAD ve İKT/FKT’lerde saptanan bulgular aynı kate- gorilerdeki bulgular olmuştur. Böylece aynı tipteki veriler karşılaştırılarak nicel bir analiz yapma fırsatı doğmuştur. Bulgu kategorileri yazılım geliştirme sürecinin çıktıları ile örtüşmektedir. Söz konusu çalışmada yapılan analiz sırasında ATAD bul- guları ile birlikte mevcut İKT/FKT bulguları da daha detaylı olarak incelenmiştir. Buna göre yazılım/yazılım test planlama, yazılım mimari tasarımı ve test yazılımı doğrulama gibi sürecin başında yapılması gereken işlem maddelerinin İKT/FKT’ler sonucunda ortalama olarak 200 günden daha uzun sürelerde kapatılabildiği göze çarpmaktadır. ATAD faaliyetleri ile bu süre yaklaşık olarak 50 gün civarına düşmüştür. Buradan aynı tipteki bulguların daha erken tespit edilmesinin bulguların kapatılma süresine olan etkisi de görülebilmektedir. Bu durum yazılım kalite güvence faaliyetlerinin etkinliğinin arttığını göstermiştir. Pilot çalışmada toplanan ölçümlerin analizi ve çalışmaya dâhil olan tasarım ekiplerinden alınan geri dönüşler neticesinde ATAD faaliyetlerinin kurumsal seviyede yaygınlaştırılmasının uygun olacağı değer- lendirilmiştir. ATAD faaliyetlerinin sırasıyla sistem ve donanım geliştirme süreçlerine de uygulanması planlanmaktadır. 731 Yapılan pilot çalışma kapsamında seçilen iki adet tasarım altyüklenici firmanın ASELSAN REHİS için geliştirdikleri ürünler de değerlendirilmiş ve ilgili firmalara bulgular açılarak takip edilmiştir. Tasarım altyüklenicileri ile koordinasyonu arttır- ması ve teslim alınan ürünlerin kalitesinin arttırılması açısından da ATAD faaliyetle- rinin fayda sağlayacağı değerlendirilmiştir. Bu amaçla ATAD soru listelerinin tasarım altyüklenici faaliyetleri için uyarlanarak kullanılması uygun görülmüştür.[6] Kaynaklar [1] Software Development Process Audits - A General Procedure, Stewart G. Crawford & M. Hosein Fallah, AT&T Bell Laboratories, New Jersey USA [2] Integrating Quality Assurance into the Software Development Life Cycle, Leslie Tierstein, STR LLC and Hilary Benoit, W R Systems, Ltd. [3] IEEE 1028-2008 IEEE Standard for Software Reviews and Audits [4] Survey on Impact of Software Metrics on Software Quality, Mrinal Singh Rawat, Arpita Mittal, Sanjay Kumar Dubey, Boeing. USA [5] Software Quality & Productivity, E. Fuchs & S.G. Chappell, AT&T Bell Labora- tories New Jersey USA [6] A Theory of Quality Management Underlying The Deming Management Method, John. C. Anderson, Manus Rungtusanatham, Roger G. Schroeder, University of Min- nesota 732