Yazılım Kalitesi ve Ölçütleri PDF

Document Details

SleekBongos4857

Uploaded by SleekBongos4857

Yıldız Teknik Üniversitesi

Tags

yazılım kalitesi yazılım ölçütleri risk yönetimi yazılım mühendisliği

Summary

Bu belge, yazılım kalitesi, ölçütleri, risk yönetimi ve yazılım konfigürasyonu konularını kapsamaktadır. Yazılım geliştirme süreçlerinde kullanılan farklı yaklaşımları ve değerlendirme yöntemlerini içerir. Çeşitli ölçütler, risk kategorileri ve konfigürasyon yönetimi konularında bilgiler sunmaktadır.

Full Transcript

7.2.1. Yazılım Bakımı Geniş bir programın kullanımı sırasında, sınama aşamasında bulunamamış olan çeşitli işlem, yetenek ve tasarım hataları ortaya çıkabilmektedir. Yazılımın yeteneğini iyileştirmek ve kullanımını kolaylaştırmak üzere, programa bazı eklemeler gerekebilmektedirBu durumda,...

7.2.1. Yazılım Bakımı Geniş bir programın kullanımı sırasında, sınama aşamasında bulunamamış olan çeşitli işlem, yetenek ve tasarım hataları ortaya çıkabilmektedir. Yazılımın yeteneğini iyileştirmek ve kullanımını kolaylaştırmak üzere, programa bazı eklemeler gerekebilmektedirBu durumda, birkaç modül üzerinde değişiklik yapmak gerekmektedir. Ayrıca, günün koşullarına göre yeterli bulunmayan bir yazılımın; gereksinim analizi, tasarım, tamamlama ve sınama basamakları halinde yeniden geliştirilmesi ve böylece onarılması da söz konusudur. 7.2.3. Bakım Maliyetlerinin Azaltılması Bakım ve onarım giderini en aza indirmek için, yazılım ürününün "bakım ve onarıma elverişli" nitelikte oluşturulması gerekmektedir (maintainability). Bunun için de; Yetenekli ve deneyimli yazılım mühendisleri görevlendirmek Anlaşılabilir bir sistem yapısı ve kolay işletilebilir bir sistem tasarlamak Standart programlama dilleri, işletim sistemleri kullanmak ve belgeleri standart biçimde düzenlemek Test programlarından yararlanmak Tasarım aşamasında, hata bulma ve düzeltme kolaylıkları sağlamak gerekmektedir. Yazılımın bakım ve onarıma elverişliği Yazılımın bakım ve onarıma elverişliği; yazılımın diğer kalite faktörlerinden olan, Sınama kolaylığı Basitlik Değiştirilebilirlik Taşınabilirlik Güvenirlik Esneklik özeliklerinin bir bileşkesi olarak ortaya çıkmaktadır. 7.2.2. Yazılım Konfigürasyonu Yazılım mühendisliğinin ürünleri, programlar, belgeler ve veri yapılarıdır. Bu ürünlere ait bütün maddelere topluca, yazılım konfigürasyonu denir. Yazılım Konfigürasyon Maddesi (Software Configuration Item), ise, YKY işlemlerinin uygulandığı yazılım modülüdür. YKY etkinlikleri: Konfigürasyon tanımı (Configuration Identification), Konfigürasyon değişiklik kontrolu (Configuration Control), Konfigürasyon denetimi (Configuration Auditing), ve Konfigürasyon raporlama (Configuration Status Accounting) olmak üzere dört aşamada gerçekleştirilmektedir. Yazılım Konfigürasyon yönetimi YKY sürecinde herhangi bir işlemin yada ürünün değerlendirilmesi için bir standart gerekmektedir. Örneğin YKY planı standardı, YKY planının ne içermesi gerektiğini tanımlar YKY ile ilgili standartlara örnek, IEEE-STD-828 IEEE Standart For SCM Plans IEEE-STD-1042 IEEE Guide For SCM Plans ISO 9004 Quality Management & Quality System Elements Part 6 YAZILIM RİSK YÖNETİMİ Risk ile uğraşma taktikleri: – Sonradan (Reactive): Risk gerçekleşince çaresine bakmak. – Önceden (Proactive): Riskleri daha gerçekleşmeden önlemeye çalışmak. – Proactive yaklaşımları işleyeceğiz. Risk tanımı Olasılık: Belirli bir risk ortaya çıkabilir veya çıkmayabilir, risk %100 olasılıkla ortaya çıkacak diye bir şey yoktur. Kayıp: Risk ortaya çıktığında istenmeyen sonuçlar ve kayıplar doğurur. Genel risk çeşitleri: Proje riskleri Teknik riskler İş riskleri Farklı risk sınıflandırmaları ve risk işleme önerileri için bkz. SEI, ISO, ANSI, makaleler, kitaplar, vb. RİSK YÖNETİMİ Proje riskleri: – Proje planını tehdit eder. – Gerçekleşirse zamanlama ileri tarihlere sarkar ve maliyet artar. Örnekler: Bütçe riskleri, Zaman riskleri, Personel riskleri, vb. Teknik riskler: – Üretilen yazılımın kalitesini ve zamanında bitirilmesini etkiler. – Gerçekleşirse yazılımı gerçekleme zorlaşır veya imkansızlaşır. – Çözümleme, tasarım, gerçekleme ve bakım aşamaları ile ilgili risklerdir. Örnek: 'Son teknoloji' ürünler yüksek teknik riske sahiptir. Bug'lar var mı? Dokümantasyonu tam mı? Tam anlayabildik mi bu teknolojiyi? Yarın da bu teknoloji hayatta olacak mı? İşletme riskleri: Pazar riskleri: Ürüne talep olur mu? Satış riskleri: Pazarlama ekibi ürünü nasıl satacağını biliyor mu? RİSK TABLOSU Risk tablosu oluşturma: Tüm ekip veya risk işleme ekibinin tüm üyeleri olası riskleri adlandırsın. Risklerin çeşitlerini belirleyin (proje, teknik, iş) Herkes kendi uzmanı olduğu risk alanında riskleri alt türlere ayırsın. Ör. Teknik: Planlanandan daha düşük yeniden kullanım, kullanılan gereçlerde deneyimsizlik, vb. Risklerin gerçekleşme olasılıklarını belirleyin. Düşük, orta, yüksek gibi kategoriler. Risklerin etkilerinin büyüklüğünü değerlendirin Bu bilgilerden bir tablo yapın. ID, ad, çeşit, olasılık, etki. Listeyi bir yerden sonra kesin (Düşük olasılık ve etkileri atın). Ele alacağınız riskler için risk bilgi sayfaları oluşturun. Bu sayfa risk hakkında bilgiler ve önleme yollarını içersin. YAZILIM KALİTESİ VE YAZILIM ÖLÇÜTLERİ Ölçme (Measuring): Somut veya soyut bir varlığın sahip olduğu bir özelliğini, sayısal veya derecelendirilmiş bir veri olarak ifade etmek. İlk ara sınav çok zordu. Ölçüt (Metric): Varlığın ölçülecek özelliğini ölçme biçimi. Sıcaklık ölçütü: Santigrat ve Fahrenhayt Ölçüm (Measurement): Belli bir ölçüte göre yapılan ölçme eyleminin sonucu. Neden ölçeriz? Gerçek dünya ile ilgili, işimize yarayacak, anlamlı sonuçlar elde etmek için. Yazılım ölçümü Yazılım ölçümü zordur: yorumlama engeli yüksektir. Zorluğun nedenleri: – Yazılımın karmaşıklığı – Ölçütlerin nicel doğası Yazılımı neden ölçeriz? Ne kadar iyi bir ürün ortaya çıkardığımızı anlamak – Ne kadar iş yapacağımızı kestirmek – Böylece ne kadar zaman ve para harcayacağımızı anlamak Ölçülemeyen ilerleme yönetilemez: YAZILIM KALİTE ÖLÇÜTLERİ Nicel kalite ölçütleri farklı kişilerce farklı şekillerde öbeklenmekte ve farklı dallara ayrılmaktadır. ISO 9126 kalite ölçütleri: İşlevsellik Uygunluk, doğruluk, güvenlik, … Güvenilirlik Olgunluk, hata bağışıklığı, … Kullanılabilirlik … Verimlilik/Etkinlik … Bakım kolaylığı … Taşınabilirlik … McCall ve arkadaşlarının kalite ölçütleri: İşlevsel ölçütler Doğruluk, Güvenilirlik, Bütünlük, Kullanılabilirlik, Verimlilik Değiştirilme ölçütleri Bakım kolaylığı, Esneklik, Sınanabilirlik Taşınma ölçütleri Taşınabilirlik, Yeniden Kullanılabilirlik, Birlikte Çalışabilirlik McConnell'a göre kalite ölçütleri: İç kalite ölçütleri Dış kalite ölçütleri YAZILIM KALİTE ÖLÇÜTLERİ Dış kalite ölçütleri: Yazılımı kullananları ilgilendiren ölçütler. Doğruluk(Correctness): Yazılımın hatalar içermemesi, gereksinimlerde belirtildiği şekilde çalışması. Etkinlik(Efficiency): Bellek ve işlemci gibi sistem kaynaklarının en az oranda kullanımı. Güvenilirlik(Reliability): Sistemin her koşulda istenildiği gibi çalışması, hatalar arasındaki ortalama zaman aralığının (MTBF) yüksek olması. Güvenlik(Security): İzinsiz ve yetkisiz işlemler mümkün olmamalı. Bütünlük(Integrity): Veriler ve işlemler arasındaki tutarlılığın korunması. Uyarlanabilirlik(Adaptability): Sistemin değişik uygulamalar veya ortamlarda kullanılabilmesi için mümkün olduğunca az değişiklik gerektirmesi. Hassaslık (Accuracy): Sistemin kendisinden beklenen işi mümkün olduğunca iyi yapabilmesi. Sağlamlık(Robustness): Aykırı girişlere veya güç çalışma ortamlarına karşılık sistemin çalışmayı sürdürebilmesi. Kullanılabilirlik(Usability): Yazılım kolay kullanılabilir olmalıdır. … Bu ölçütler örtüşebilir, bazı durumlarda birbirinden daha iyi veya daha zor ayrılabilir. YAZILIM KALİTE ÖLÇÜTLERİ İç kalite ölçütleri: Yazılımı geliştirenleri ilgilendiren ölçütler. Yeniden kullanılabilirlik(Reusability): Sistemin parçalarının başka sistemlerde kullanılabilmesinin kolaylığı. Bakım kolaylığı (Maintainability): Yazılıma yeni yetenekler eklemenin, yazılımdaki hataları gidermenin veya yazılımın başarımını attırmanın mümkün olduğunca kolay olması. Esneklik(Flexibility): Yazılımın orijinal olarak tasarlandığı uygulamanın dışında çalışabilmesi için gerekli olan değişikliklerin olduğunca az olması. Taşınabilirlik(Portability): Yazılımın farklı donanım ve işletim sistemleri gibi değişik çalışma ortamlarına kolaylıkla aktarılabilmesi. Okunabilirlik(Readability): Kodun kaynak kodunun incelenmesinin kolay olması. Anlaşılabilirlik(Understandablility): Yazılımın sistem, bileşen ve kod düzeylerinde anlaşılabilirliğinin mümkün olduğunca kolay olması. Okunabilirlik sadece kod düzeyinde anlaşılabilirliği sağlar. Sınanabilirlik(Testability): Sistemin istenen gereksinimleri karşılayıp karşılamadığının sınanabilmesinin bileşen ve tüm sistem çapında mümkün ÖLÇME İLKELERİ Ölçme eyleminin içermesi gereken adımlar: Tanımlama (Formulation): Ölçütler ölçülecek yazılıma uygun bir şekilde tanımlanır Kullanılan yaklaşım: Yapısal programlama, NYP, vb. Yazılımın türü: Gerçek zamanlı, gömülü, uygulama, vb. Toplama (Collection): Tarif edilen ölçütlerin gerektirdiği verileri elde etme. Hesaplama (Analysis): Ölçütlerin hesaplanması = Ölçümlerin elde edilmesi. Matematiksel araçlar kullanılabilir. Hesaplama mümkün olduğunca otomatik yapılmalıdır. Yorumlama (Interpretion): Elde edilen ölçüm değerlerinden yararlı anlamlar çıkartılması. Geri besleme/Kullanma (Feedback): Çıkartılan sonuçların yazılım ekibine bildirilmesi ve ekibin sonuçları kullanarak yazılımı iyileştirmesi. Nesneye yönelik ölçütler Nesneye yönelik ölçütler: Kaliteli bir yazılıma götüren tasarım ilkelerine yöneliktirler. NYP'de çözümleme ve tasarım arasında kopukluk olmadığı için, aynı ölçütler çözümleme ve kodlama aşamalarında da kullanılabilir. Chidamber ve Kemerer'in ölçütleri (CK metrics suite): WMC: Sınıftaki ağırlıklı metot sayısı (Weighted Methods per Class). DIT: Kalıtım ağacının derinliği (Depth of Inheritance Tree). NOC: Alt sınıf sayısı (Number of Children) RFC: Sınıfın yanıt kümesinin eleman sayısı (Response For a Class) CBO: Sınıflar arası bağlaşım (Coupling Between Objects) LCOM: Uyum eksikliği (Lack of COhesion in Methods) CK ÖLÇÜTLERİ CK ÖLÇÜTLERİ ÖRNEĞİ: WMC: C1 sınıfının M1…Mn metotlarının karmaşıklıkları c1..cn. Eleştiriler: Metot karmaşıklığı neye göre belirlenecek? Belirlemedeki öznellik güçlü yön mü, zayıf yön mü? Ölçütün rehberliği: Bir sınıfın karmaşıklığını belirler. Çok sayıda metodu olan sınıf: Çok fazla sorumluluk yüklenmiştir, dağıtılması uygun olabilir. Yüksek uyumun olup olmadığına tekrar bakılmalıdır. Uygulamaya özeldir, yeniden kullanılabilirliği düşüktür.

Use Quizgecko on...
Browser
Browser