3.DERS YAZILIMDA KALİTENİN ANLAMI 1
1. KALİTE NEDİR? Kalite kavramı insanların ve sistemlerin "hata yapması" ve "mükemmele ulaşma isteği" gerçeğinden ortaya çıkmıştır. Alıcı tarafından aranılan belirli şartları en iyi karşılayan anlamında kullanılan "Kalite" kısaca "amaçlara uygunluk derecesi" olarak tanımlanabilmektedir. Buradaki amaç kullanıcı kimsenin veya tüketicinin istek ve gereksinimleri olmaktadır. Kalite sınırları devamlı genişleyen bir kavramdır. Teknolojik gelişmeler kaliteye değişik boyutlar kazandırmaktadır. 2
Kalitenin değişik tanımları bulunmaktadır: Kalite; belirlenen şartlar altında ve belirlenen bir zaman süresi içinde istenilen fonksiyonları yerine getirebilme kabiliyetidir. Kalite, bir ürünün kulanım uygunluğunu belirleyen özelliklerinin tümüdür. Kalite, herhangi bir ürün sınıfının özelliklerinin insan topluluklarının istek potansiyelini karşılayabilme derecesidir. Kalite, önceden tespit edilmiş olan standartlara göre üretim yapma olgusudur. 3
2. YAZILIMDA KALİTENİN ANLAMI Bir kuruluşun geliri ürettiği ürünlerin kalitesine bağımlıdır. Kalitenin en üst düzeyde olmasını sağlamak için kalite yönetim sistemine ihtiyaç vardır. Bu sistem; standartlar, prosedürler ve denetimlerden oluşur ki, hataları en aza indiren yazılım sisteminin müşteriye zamanında verilmesini sağlayan en iyi geliştirme pratiğini ortaya koyar. 4
2.1. Kaliteli Yazılım Ne Demektir? Kabullenilebilir hata seviyesinde olmalıdır, Kullanıcı gereksinimleri karşılayacak konumda olmalıdır, Amaçlanan kullanıma sahip olmalıdır, Hedeflenen süre içerisinde tamamlanmış olmalıdır., Belirlenen bütçe sınırları içinde gerçekleştirilmiş olmalıdır, Ulusal veya Uluslararası Standartlara uyumlu olmalıdır, Üretici tarafından bakımı sağlanabilir yapıda olmalıdır, 5
2.2. Yazılımda Kalitesizliği ortaya çıkartan sebepler Müşteri tarafındaki sebepler: Müşteri gereksinimlerin sağlanamayışı Kolay anlaşılabilir ve kullanılabilir olmaması (Yazılımda kullanım, mümkün olan en basit seviyeye indirgenmiş olmalıdır) İhtiyaç duyulan zamanda bakım yapılabilir ve hata giderilebilir olmaması Eğitim desteğinin yetersiz olması 6
Yazılım firması tarafındaki sebepler: Hedeflenen sürede bitmeyen projeler, Yüksek maliyet, Çalışanların tatminsizliği, Firmaya olan güven kaybı, 7
2.3. Yazılımda Kalite neden gereklidir? Tecrübeli bir yazılımcı her 7-10 satırda bir hata üretmektedir. Buda orta ölçekli bir projede binlerce satıra karşılık gelen hatalar yığını demektir. Bundan dolayı hataların çoğunun test aşamasında düzeltilmesi üretici açısından önemlidir. Testler uzadıkça maliyet artmaktadır. Hedeflenen sürede teslim edilemediği için müşteri ile üretici sıkıntılar yaşamaktadır. Ve bu ifade edilen durumlar sonucunda ürün kalitesi düşmekte ve bakım maliyeti geliştirme maliyetini aşmaktadır. 8
3. Yazılım Hatalarını Düzeltme Maliyeti 9
Yazılımda Kalitesizliğinin Proje Zamanına Etkisi 10
4. KALİTE GÜVENCE SİSTEMİ (Quality Assurance System) Günümüzde bilişim teknolojileri projeleri, ISO 9000 QA standardı, IEEE yazılım geliştirme standardı gibi uluslararası standartları takip etmektedir. Busistem ile; Şirketlerin, kurum ve kuruluşların kurumsal bir hüviyete olması istenmektedir, Süreçlerin kontrol altında tutulması, Doğru bilgi iletişimi sağlaması, sahip 11
Doğru bilgi iletişimi sağlaması, Takım ruhu yaratılması, Verimlilik ve üretkenliğin arttırılması, Üretim maliyetlerinin azaltılarak üretim süreçlerinin kısaltılması, Ürün ve hizmet kalitesinde artış ve sürekliliğin sağlanması, Müşteri memnuniyetinin ve güven duygusunun arttırılması, Çalışan memnuniyetinin ve motivasyonunun arttırılması, İş ya da çözüm ortakları ile ilişkilerinin güçlendirilmesi için zemin oluşturulması sağlanır. 12
4.1. Yazılımda Kalite Güvencesinin Amaçları Yazılım geliştirme sürecini kontrol ederek yazılım kalitesinde ilerleme sağlamak, Yazılım süreci için geliştirilmiş tüm standart ve yöntemlere uyum sağladığının güvencesini vermek, Üründe, süreçte veya standartlardaki herhangi bir yetersizliğe yönetimin dikkatini çekmek, böylece düzeltilmelerini sağlamak. 13
Yazılım kalite güvencesi organizasyonu kaliteli ürünler çıkarmaktan sorumlu değildir; bunlar geliştirmeyi yapanların işidir. Yazılım kalite güvencesinin sorumluluğu kalite faaliyetlerini denetlemek ve sapmalardan yönetimi haberdar etmektir. 14
Analiz YKG Tasarım Gerçekleştirme Test HATA Bakım 15
Yazılım Kalite Güvence (YKG): Yazılım, ürünün hedeflenen kalitede olmasını güvence altına alan ve proje geliştirme süreçleri boyunca kontrol mekanizması şeklinde çalışan sistemdir. Doğrulama ve Onaylama (D&O): Yazılım geliştirme sürecinin her aşamasındaki çıkan ürünlerin hedeflenen özelliklere uygunluğunu kontrol etmeye yarayan etkinliklerdir. Test: Bir üründeki hataların ortaya çıkarılmasını sağlayan etkinliklerdir. 16
KALİTE FAKTÖRLERİ Doğruluk: Bir yazılım sisteminin isterler belgesinde yer alan özelliklere sahip olmasıdır. Bakılabilirlik (Maintainability) veya Uygulanabilirlik (Modifiability): Yazılım sisteminin üzerinde kolaylıkla değişiklik yapılabilir olma özelliğidir. Sınanabilirlik (Testability): Sistemin veya bölümün test edilebilir olma özellğini açıklar. Güvenirlik (Reliability): Sistemin işlevlerinde bir kesintiye uğramadan çalışabilme özelliğidir. 17
Bütünlük (Integrity): Bu faktör, sistemin ve verilerin yetkisiz kişilerce kullanıma karşı ne ölçüde korunduğunu ve bozulmaya karşı dayanıklılığını belirtir. Tekrar Kullanılabilirlik (Reusability): Yazılım parçalarının diğer sistemlerde de nederece kolay kullanılabilir olduklarını anlatır. Taşınabilirlik (Portability): Sistemin bir donanım ortamından diğerine kolay taşınabilir olması özellğidir. 18
4.2. Dökümante Edilmiş Kalite Sistemi Standartlar KALİTE KILAVUZU Rehberler Yöntemler 19
Kalite kılavuzunun ilk sayfasında yönetim kurulunun kalite ile ilgili politikası tanımlanmalıdır. Tüm aşamalar raporlar ile dökümante edilmelidir. 20
5. KALİTE SİSTEMİNİN KULLANILMASI Kalite kılavuzunun büyük bir kısmı kalite planının nasıl işleyeceğine ayrılmalıdır. Proje yöneticisine, ileride yapılacak bir projede hangi kalite faktörlerinin yer alacağını ve ne zaman uygulanacağını gösteren bilgiler kılavuzda anlatılmalıdır. Risk analizi ise, bir dizi sorunun yanıtlanmasıyla ortaya çıkan ve uygulama alanı, proje takımının deneyimi, proje organizasyonu, kullanılacak yazılım ve donanım araçlarının yeniliği gibi bir takım faktörleri inceler. 21
6. KALİTE YÖNETİMİ Tüm organizasyon süreçlerinin geliştirilmesi, iyileştirilmesi ve çalışan ve müşteri memnuniyetinin sağlanmasına yönelik çağdaş, katılımcı bir yönetim anlayışıdır. Kalite yönetimi dört ana bölümden oluşmaktadır; Kalite Planlama Kalite Kontrol Kalite Güvencesi Kalite İyileştirme 22
6.1. Yazılım güvence unsurları kullanılmasının sağladığı yararlar Uygun geliştirme metodolojisinin yerleşmiş olması, Proje faaliyetlerinde standart ve yöntemlerin kullanılıyor olması, Bağımsız denetlemelerin yapılıyor olması, Bakım ve geliştirme faaliyetlerini destekleyen dökümantasyon üretilmesi, Dökümantasyonun proje sonunda değil proje süresince geliştiriliyor olması, Değişiklikleri kontrol edebilecek mekanizmaların kurulmuş ve kullanıyor olması, Standart ve yöntemlerden sapmaların derhal ortaya çıkması. 23
7. KALİTE YÖNETİMİNİN GÖREVLERİ Üst Kademe Yöneticileri: Yönetim kurulu, genel müdür ve yardımcıları üst kademe yöneticileri olarak adlandırılır Yönetim Kurulu: Yönetimin en üstünde bulunan şirketin kurucu ortaklarından oluşan bir kuruldur. Aralarından birini başkan seçerler. Başkan yönetim kurulunu temsil eder. Bu kurul tarafından verilen görevleri yapar. Başkan yönetim kuruluna karşı sorumludur. Yönetim kurulu şirketin gelecekte nerede olması gerektiği gibi kararları verir 24
7.1. Yönetim Kurulunun Görevleri şunlardır; Üretim politikalarını oluşturmak. Başka firmalarla işbirliğine karar vermek Şirketin sermayesini oluşturmak ve gerekirse artırmak Yeni yatırımlara karar vermek Üretim kalitesi hakkında karar vermek Şirketin hesaplarını incelemek Alt kademe elamanlarından gelen önerileri inceleyip karara bağlamak Personel ücretlerini belirlemek ve onları motive etmek Şirketin gelişmesi için araştırmalar yaptırmak 25
7.2. Üst Kademe Yöneticilerinin Sorumlulukları; Yönetim kurulu kalite güvencesine yeterli kaynak ayrılmasını ve tüm denetleyici toplantılarına, kalite fonksiyonuyla ilgili raporlar gelmesini sağlar. 26
7.3. Kalite bölüm şefinin günlük sorumlulukları: Kalite sisteminin günlük yönetimi için bir kişi görevlendirilmelidir. Büyük firmalarda bu kişi kalite bölümünün başı durumundadır. Ve görevleri şunlardır Kalite elemanlarının günlük faaliyetlerini kontrol etmek, Kalite güvencesi fonksiyonu için verilen kaynakları takip etmek, Projelerin günlük işleyişlerinde karşılaşılan problemlere çözüm bulmak, 27
Kalite verilerinin alınması ve yönetim kurulu için özet raporlar hazırlanması, Kalite sisteminin etkinliğinin devamlı takibi, Kalite güvencesi fonksiyonuyla ilgili günlük sorumluluk taşıyan kişinin kaliteyle sorumlu yönetim kurulu üyesine rapor vermesini sağlar. 28
8. KALİTE PLANININ HAZIRLANMASI; Proje yöneticileri için başarı bir proje zamanında, bütçesinde ve istenilen kalitede tamamlamalarıdır. Fakat kalite kavramı proje için yeterince iyi tanımlanmadığında sıkıntılar oluşmaktadır. Bundan dolayı projelerde kaliteli sonuca ulaşmak için nasıl bir yol izleneceği anlatılacaktır. Projelerdeki kalitenin asıl kaynağı müşterinin isteklerine uygun ürün oluşturmaktır. Müşterinin isteklerine uygun sonuçlara ulaşmak içinde Kalite Yönetim Planının oluşturulması gerekmektedir. 29
8. 1. ADIM: Kalite hedeflerinin tanımlanması Kalite planlamada, belirli bir kapsam belirlenmezse müşterilerin kalite beklentileri karşılanması güç olacaktır. Bu yüzden müşterilerinizin kalite beklentilerini mutlaka daha projenin başında öğrenmeli ve başarılabilir hedefler ortaya konulmalıdır. Müşterinize projenin ana aşamaları veya teslimatları ile ilgili kalite beklentileri sorulmalıdır. Her teslimat için kalite beklentilerini yazılı hale getirmeli ve sonrasında kalite hedefleri belirlenmelidir. 30
8.2. Adım 2: Kalite Güvence Planının Hazırlanması Müşterilerin kalite beklentilerini gerçekleştirmeyi güvence altına almak için bir plan yapılmasıdır. Örneğin projenin dışından tarafsız bir kişiyi projeye getirip Kalite Güvencesini Gözden geçirmesi sağlanmalıdır. Bu plan uygulanırken de müşteriyi rahatlatacak ve güvenilir bir yöntem seçebilir. Kalite Güvence Planında, teslimatların müşterinin kalite beklentileri doğrultusunda gerçekleştiğini güvence altına almak gerekmektedir. 31
8.3. Adım 3: Kalite Kontrol Planının Hazırlanması Projede, her teslimatın beklenen kalite düzeyinde gerçekleşip gerçekleşmediğini ölçebileceğiniz bir Kalite Kontrol ölçütleri olmalıdır. Projenin çeşitli aşamalarına gözden geçirme noktaları konulmalıdır. (teslimat gözden geçirmesi, dokümantasyon gözden geçirmeleri, aşama bitiş gözden geçirmeleri vb.) Her gözden geçirme o teslimatların olması gerekenle, gerçekleşen arasındaki fark gösterilmelidir. 32
. 33
. 34
. 35