Yazılım Kalite Modeli Cost of Software Quality Model Onur KAYNAK Kalite Güvence Direktörlüğü GATE Elektronik San. ve Tic. A.Ş., Ankara onur.kaynak@gateelektronik.com.tr Gürkan HOŞGİT AR-GE Merkezi GATE Elektronik San. ve Tic. A.Ş., Ankara gurkan.hosgit@gateelektronik.com.tr Özet Bu bildirinin amacı yazılım ağırlıklı projelerde yazılım kalitesinin önemini vurgulamaktır. Yazılım Kalitesinin enstrümanı olan Kalite bir pilot proje üzerinden; Kalitesizlik maliyetini ve kalitenin sağlanmasına yönelik maliyeti esas alarak hesaplanmıştır. Toplanan metrikler Knox un Teorik Yazılım Kalite Modeli ile karşılaştırılmıştır. Abstract The scope of this paper is to emphasize the importance of software quality at software intensive system development project. A pilot project was selected in order to measure the cost of quality which is based on both cost due to lack of quality and cost of achieving quality. The accumulated metrics and experiences were compared with respect to Theoretical Knox Cost of Software Quality Model. 1. Giriş Kalite, üründe hata bulunmadığında toplamda hangi maliyetlerin kaybolacağı ile ilgilenir. Kalite Kalite Yönetiminin öncelikli amacıdır [1]. Kalite, kalite maliyetini kontrol altında tutmak ve kalite maliyetini azaltmak için fırsatları belirlemek için üretim sektöründe kullanılmaktadır. Kalite kalitenin iyileştirilmesinin takibinde ve kuruluşa katkısında bir yönetim aracı olarak görülmektedir. Örnek olarak; süreç iyileştirme faaliyeti Kalite nin hesaplanması ile başlar ve sırasıyla hedef sürecin zayıflıklarının belirlenmesi, iyileştirme konularının önceliklendirilmesi ve bu konular için temel oluşturulması çalışmaları ile devam etmektedir. Hedef süreçteki zayıflıklar maliyetin azaltılması için potansiyel fırsat olarak değerlendirilmektedir. 2. Kalite nin Amacı Kalite nin amacı maliyeti azaltmak ve kaliteyi arttırmaktır. Kalite nin diğer hedefleri; Kaybı para cinsinden belirlemek İyileştirme için fırsatları belirlemek İyileştirme için ölçüm yapmaktır. Kalite, kalitenin iyileştirilmesi yönündeki programların desteklenmesi veya desteklenmemesi konusunda üst yönetimin karar almasını sağlamaktadır. Ayrıca, sorumlu personelin maliyeti azaltmak için düzeltici çalışmalar yapmasını sağlamaktadır. Kalite Maliyet Yönetimi, işletmedeki genel yönetimin performansını kalite maliyeti odaklı olarak analiz eden bir mekanizma olarak görülmektedir. 2.1. Kalite Kategorileri Kalite ; kalitesizlikten kaynaklanan maliyet ve kalitenin sağlanmasında kaynaklanan maliyet olmak üzere iki alt kategoriden oluşmaktadır [2]. Kalitesizlikten kaynaklanan maliyet dâhili hata maliyeti ve harici hata maliyetinden oluşmaktadır. Kalitenin sağlanmasından kaynaklanan maliyet ise değerlendirme maliyeti ve önleme maliyetinden oluşmaktadır (Şekil 1). Bu kategoriler endüstride yaygın olarak kullanılmaktadır. Şekil 1: Kalite Kategorileri Kalite Kalitesizlikten Kaynaklanan Maliyet Kalitenin Sağlanmasından Kaynaklanan Maliyet Dahili Hata Harici Hata Önleme Değerlendirme
Her bir kalite maliyet kategorisi kalite maliyet elemanlarından oluşmaktadır. Bu elemanlar; detaylandırılmış fonksiyonlar, görevler ve giderlerden oluşmaktadır. Örneğin; atıl duruma gelen ürün ve tekrar çalışma başarısızlığın elemanlarıyken; müşteri şikâyetleri, garanti masrafları harici başarısızlıkların; denetleme, test, değerlendire maliyetinin; kalite planlama ve kalite tetkikleri ise önleme maliyetinin elemanlarıdır (Tablo 1). Tablo 1: Kalite Maliyet Kategori Tanımları Kategori Tanım Yazılım için Maliyet Örnekleri Dâhili Ürünün teslimatından Hata yönetimi, test Hata önce tespit edilen tekrarı, tekrar kalite eksiklikleri çalışma Harici Hata Değerlen dirme Önleme Ürünün teslimatından sonra tespit edilen kalite eksiklikleri Ürünün durumunun değerlendirilmesi Ürün kalitesinin sağlanması için harcanan efor 3. Yazılım Kalite Teknik destek, şikâyet araştırma, hata tespit Test ve ilgili aktiviteler, Ürün kalite tetkikleri Yazılım Kalite Güvence yönetimi, denetleme, süreç iyileştirme, ölçme ve analiz çalışmaları Yazılım Kalite, Kalite ni temel olarak almakla beraber yazılım sektöründe düşük kaliteyi önlemek için aynı yaklaşımı benimsemektedir. Yazılım Kalite nin kullanımı önemli maliyet kazanımlarının ve teslimatı yapılan ürünlerin kalitesinin iyileştirilmesi için yapılan harcamaları ortaya çıkartmaktadır. Yazılım kalitesinin ne olduğuna yönelik farklı bakış açıları aşağıda belirtilmiştir [4]: Memnuniyet seviyesi: Yazılımın ürününün müşterinin ihtiyaçlarını karşılama derecesi. Ürün değeri: Geliştirilen ürünün benzer ürünlere göre değeri ve rekabete kattığı değer. Anahtar Özellikler: Yazılım ürününün istenen özelliklerinin kombinasyonuna sahip olma derecesi. (Örneğin; güvenilirlik, taşınabilirlik ve idame ettirilebilirlik.) Hatalardan temizlenmiş olması: Yazılım ürününün müşteri ortamında işletme kusurlarından bağımsız bir şekilde doğru çalışması. Süreç Kalitesi: Ürünün geliştirilme sürecine bağlı olarak etkin bir şekilde doğru işin yapılması. Her bir yazılım geliştirme projesi için; planlama sahasında belirli bir yazılım kalite seviyesi tanımlanmalıdır. Böyle bir tanım kalitenin ilerlemesini ölçmek için temel oluşturmakta ve müşteriye teslim edilecek sürümlerin hazır olmasını sağlamaktadır. 3.1. Yazılım Kalite (CoSQ) Modeli Yazılım Kalite Modeli nin Kalite Model ininkine benzer kategorileri bulunmaktadır. Her bir kategori ve elemanları aşağıda tanımlanmıştır; a. Önleme : Önleme yazılım kalitesinin sağlanması için harcanan efor ve gereksinim tanımları, tasarım, kodlama, test gibi yazılım geliştirme safhalarındaki hataların engellenmesini kapsamaktadır. Ayrıca, kalite planlama, eğitim, standard ve politikalar, konfigürasyon yönetimi, denetleme ve eşli gözden geçirmelerde önleme maliyetinin kalemlerindendir. b. Değerlendirme : Değerlendirme maliyeti yazılım kalitesinin durumunu belirlemek için harcanan eforu kapsamaktadır. Bu maliyetler; doğrulama ve geçerleme faaliyetlerinden, testlerden, ürün kalite tetkiklerinden ve geliştirilen ürünün istenen gereksinimlere uygunluğunu denetleyen diğer faaliyetlerden oluşmaktadır. c. Dahili Hata : Dahili hata maliyetleri müşterinin hataları tespit etmeden önce hataların belirlenmesi ve düzeltilmesi faaliyetlerinden kaynaklanan maliyetleri kapsamaktadır. Bu maliyetler geliştiricinin kontrolü altında gerçekleşmektedir. Hatalar genelde, gereksinim tanımlarında, tasarımda, kodlamada ve testin erken safhalarında gerçekleşmektedir. Hataların düzeltilmesi, düzeltici faaliyetlerin getirdiği maliyet (tekrar çalışma, tekrar test ve doküman güncelleme) dahili hata maliyetinin elemanlarını oluşturmaktadır. d. Harici Hata : Harici hata maliyetleri müşterinin hataları tespit ettikten sonra hataların belirlenmesi ve düzeltilmesi faaliyetlerinden kaynaklanan maliyetleri kapsamaktadır. Harici hata maliyeti kategorisi genelde şirketin görüntüsüne zarar vermekte ve düşük kaliteden dolayı Pazar kaybına sebep olmaktadır. Bakım maliyeti, ürün reddi, hata tespiti, cezalar, hataların giderilmesi için yapılan yazılım yükseltmeleri, pazar kaybı harici hata maliyetinin elemanlarını oluşturmaktadır. Önleme ve Değerlendirme maliyeti kalitenin sağlanmasından kaynaklanan maliyet olarak tanımlandığı gibi Harici ve Dâhili hata maliyetleri de kalitesizlikten kaynaklanan maliyet olarak tanımlanmaktadır. Kalitenin sağlanmasından kaynaklanan maliyet için yatırım yapıldıkça,
kalitesizlikten kaynaklanan maliyet azalmaktadır. 3.2. Knox un Teorik Modeli Knox un Teorik Modeli, Yazılım Kalite Modeli kategorilerinin ve aralarındaki ilişkilerin anlaşılmasını sağlamaktadır. Yazılım Kalite Modeli ile ilgili sınırlı veri bulunmasından dolayı Knox, üretim sektöründe yaygın olarak kullanılmakta olan Kalite Modelini baz almış ve teorik bir Yazılım Kalite Modeli oluşturmak için Software Engineering Institute ün Capability Maturity Model (SEI CMM) üzerine bu modeli uyarlamıştır. Knox un Teorik Modeli iki varsayıma dayanmaktadır. İlk varsayıma göre CMM Seviye 1 olan bir şirkette toplam kalite maliyeti (önleme, değerlendirme, harici ve dâhili hata maliyetlerinin toplamı) toplam geliştirme maliyetinin %60 ını oluşturmaktadır. Dâhili hatalardan kaynaklanan tekrar çalışma maliyeti toplam geliştirme maliyetinin %30 unu oluştururken, harici hatalardan kaynaklanan maliyet bu maliyetin %33 ünü oluşturmaktadır [3]. Dolayısıyla, CMM Seviye 1 olan bir şirketin projelerindeki toplam kalite maliyeti temelde harici ve dâhili hata maliyetlerinin toplamına bir başka deyişle kalitesizlikten kaynaklanan maliyete dayanmaktadır. İkinci varsayıma göre organizasyon CMM Seviye 5 ulaştığında toplam kalite maliyeti %60 oranında azalmaktadır (Şekil 2). Şekil 2: Yazılım Kalite için Knox un Teorik Modeli 3.1.1. Pilot Projenin Seçilmesi Yazılım Kalite ni hesaplamak üzere bir sistem geliştirme projesi kullanılmıştır. Proje ekibi analist, tasarımcı, geliştirici ve test mühendislerinden oluşmaktadır. Projenin büyüklüğü fiziksel kod satır sayısı üzerinden hesaplanmış olup, yazılım geliştirme için harcanan efor adam-ay üzerinden hesaplanmıştır. Projenin yazılım tarafı 5 kişi tarafından 18 ayda geliştirilmiş olup, yazılımın toplam büyüklüğü 150 Fiziksel KLOC dir. Ayrıca proje kapsamında tanımlanan toplam 253 gereksinimin 153 ü yazılım gereksinimiyken, 100' donanım gereksinimidir. Donanım gereksinimlerinin geçerlemesi 49 test durumu ile yapılırken, 153 yazılım gereksinimi 332 test durumu ile geçerlenmiştir 3.1.2. Kalite Kategorilerinin Tanımlanması Pilot proje kapsamında veriler; Knox un modelinde tanımlandığı üzere Kalitesizlikten Kaynaklanan Maliyet ve Kalitenin Sağlanmasından Kaynaklanan Maliyet kategorilerinde toplanmıştır. Ancak, proje kapsamında hataların önlenmesine yönelik herhangi bir faaliyet yürütülmediği için önleme maliyetinin hesaplanmasına yönelik veri toplanması mümkün olamamıştır. Kalite Maliyetlerinin hesaplanmasında iki maliyet elemanı kullanılmıştır: a. Hata Tespit Hata tespit maliyeti değerlendirme maliyetinin hesaplanması için kullanılmıştır. Ayrıca, aynı metrik harici hata maliyetinin hesaplanmasında parametre olarak alınmıştır. Hata tespit maliyetinde harcanan eforun hesaplanması ile ilgili olarak aşağıda belirtilen faaliyet esas alınmıştır: Test b. Hata Giderme Hata giderme maliyeti dâhili ve harici maliyetlerin hesaplanması için kullanılmıştır. Hata giderme maliyetinde harcanan eforun hesaplanması ile ilgili olarak aşağıda belirtilen faaliyetler esas alınmıştır: 3.1 Yazılım Kalite Modeli nin Uygulanması için bir Çalışma Knox un Teorik Modeli üzerinden kurumun Yazılım Kalite ni değerlendirmek üzere yazılım ağırlıklı bir sistem projesi pilot proje olarak ele alınmıştır. Yazılım Kalite ni hesaplamak içinse Yazılım Kalitem kategorileri kuruma uyarlanmıştır. Hata Düzeltme Tekrar Test ve Entegrasyon 3.1.3. Yazılım Kalite nin Hesaplanması Pilot projede veriler test mühendisleri ve kalite mühendisleri ile görüşülerek ve ilgili dokümanlar incelenerek toplanmıştır. Pilot projede 31 adet test
durumu koşulmuştur. Hata tespiti için üç adet personelin harcadığı toplam efor 549 adam/saat olup bulunan hata sayısı 241 dir. Bu hataların 151 iki mühendis tarafından 1088 adam/saat lik efor harcanarak giderilirken, hataların geri kalanının giderilmesi müşteri testlerinin koşulduğu aşamada mümkün olmuştur. Dolayısıyla, geri kalan 90 hata sistem kabul testinde tespit edilmiştir. Ürünün kalite faktörü hata giderme etkinliği (DRE) üzerinden belirlenmiştir. DRE kalitesizlik maliyetini hesaplamak için metrik olarak kullanılmıştır. Her bir hatanın tespit edilmesi için harcanan efor; 30 / 15 = ~1/2 adam-saattir. Her bir hatanın ortadan kaldırılması için harcanan efor; 165 / 30 = ~5.5 adam-saattir. Tablo 2: Pilot Proje için Toplam Kalite ve Parametreleri FT DRE = -------------- * 100 (1) FT + FC FT: Sistem testinde bulunan hatalar FC: Müşteri tarafından bulunan hatalar 241 DRE = -------------- * 100 (1) 241 + 90 Proje nin DRE si %73 olarak hesaplanmıştır. Her bir hatanın tespit edilmesi için harcanan efor; 549 / 241 = ~2.28 adam-saattir. Her bir hatanın ortadan kaldırılması için harcanan efor; 1088 / 151 = ~7 adam-saattir. Pilot proje için toplam geliştirme eforu (testler için harcanan efor hariç) Tablo 2 de gösterilmiştir. 3.1.4. Donanım Kalite nin Hesaplanması Pilot proje, yazılım ağırlıklı olmasına rağmen toplam kalite maliyetinin hesaplanabilmesi amacıyla donanım kısmı içinde kalite maliyetinin hesaplanmıştır. Önleme ve Harici hata maliyetleri bulunmadığı için bu metrikler kalite maliyetinin hesaplanmasında dikkate alınmamıştır. Sistem yeterlilik testleri sırasında bulunan 30 hata için 15 adam-saatlik efor harcanmıştır. Bulunan 30 hatanın giderilmesi için harcanan efor 165 adam-saat olup, üç kişin oluşturduğu ekibin hata giderme etkinliği (DRE) %100 dür. FT DRE = -------------- * 100 (2) FT + FC Pilot projenin geliştirilmesi için harcanan efor 45 adamay olup, projenin toplam kalite maliyeti 17.88 adam-ay olarak hesaplanmıştır (Tablo 2). Sonuç olarak proje için harcanan toplam efor 62.88 adam-ay olarak hesaplanmıştır. Pilot projedeki; Toplam Dâhili Hata (TIFC), Toplam Harici Hata (TEFC), Değerlendirme (AC) ve Toplam Geliştirme Eforu (TDE) oranları Şekil 3 te gösterilmiştir. Şekil 3: Pilot Proje Maliyet Oranları FT: Sistem testinde bulunan hatalar FC: Müşteri tarafından bulunan hatalar 30 DRE = -------------- * 100 (2) 30 + 0
4. Sonuç Bu çalışmada, Yazılım Kalite Modeli bir pilot proje üzerinden tecrübe edilmiştir. Yazılım Kalite nin hesaplanmasında kalitesizlikten kaynaklanan maliyet bu çalışmanın temel noktası olmuştur. Hesaplanan Yazılım Kalite değeri ile CMMi Seviye 1 olarak öngördüğümüz şirketimiz için Knox un teorik modeli nin belirlediği değer karşılaştırıldığında önemli bir sapma olduğu tespit edilmiştir (Tablo 3) Konx un Modeli nin Değer Tablo 3: Toplam Kalite nin Proje ne Oranı Teorik Öngördüğü Toplam Kalite nin Toplam Proje ne Oranı %8.5 maliyeti kategorilerinden metriğe ihtiyaç duyduğunu göstermektedir. 5. Kaynaklar [1] Krasner, H., Using the Cost of Quality Approach for Software, www.stsc.hill.af.mil/crosstalk/1998/nov/krasner.asp. [2] Mandewille, W.A., Software Cost of Quality, IEEE Journal on Selected Areas in Communications, February, 1990, Vol.8, No:2, February, pp. 315-318. [3] Knox, S.T., Modeling the Cost of Software Quality, Digital Technical Journal, 1993, Vol.5, No:4, pp 9-16. [4] Campanella, J., Principles of Quality Costs, 3rd edition, Milwaukee, WI: ASQC Quality Press, 1999. [5] CMMI Product Team, CMMI for Development, Version 1.2 CMMI-DEV, V1.2 CMU/SEI-2006-TR-008, August 2006 [6] Houston, D., Keats J. Bert., Cost of Software Quality: A Means of Promoting Software Process Improvement Pilot Çalışma Kapsamında Bulunan Değer %35 Pilot projenin Harici kalite maliyeti kısmen hesaplanabilmiştir. Bunu sebebi; bakım, kalite kaynaklı pazar kaybı, garanti kapsamında yürütülen faaliyetler gibi parametreler ile ilgili ölçümlerin henüz oluşmamasıdır. Ancak, harici hata maliyeti 5.31 adam-ay olarak, dâhili hata maliyeti ise 9.91 adam-ay olarak hesaplanmıştır. Sonuç olarak, kalitesizlikten kaynaklanan maliyet 15.22 adam-ay olarak hesaplanmıştır. Gerçek sonuçlar Knox un teorik modelinde belirtilen istatistiklerden oldukça farklı olmasına rağmen, bu çalışma pilot projenin şu anki durumunu göstermektedir. Pilot proje müşteri tarafında bakım safhasına girdikten ve entegre lojistik destek süreci başladıktan sonra, yazılım ile ilgili saptanan hata sayısında artış beklenmektedir. Bu sayede, harici hata maliyet oranları Knox un teorik Modeli ndeki istatistikî değerlere yaklaşması beklenmektedir. Bu çalışma sonucunda ortaya çıkan Yazılım Kalite ölçümleri GATE bünyesinde yürütülmekte olan CMMi çalışmaları için motivasyon aracı olarak kullanılacaktır. Son olarak, bu çalışma Yazılım Kalite Modeli nin istikrarlı bir sonuç vermesi için tüm kalite