Yazılım Kalite Yönetimi - Hızlı Kılavuz

Kaliteli yazılım, makul ölçüde hatasız veya hatasız, zamanında ve belirlenen bütçe dahilinde teslim edilen, gereksinimleri ve / veya beklentileri karşılayan ve bakımı yapılabilen bir yazılımı ifade eder. Yazılım mühendisliği bağlamında, yazılım kalitesi her ikisini de yansıtır.functional quality Hem de structural quality.

  • Software Functional Quality - Fonksiyonel gereksinimlere veya spesifikasyonlara dayalı olarak belirli bir tasarımı ne kadar iyi karşıladığını yansıtır.

  • Software Structural Quality - Sağlamlık veya sürdürülebilirlik gibi işlevsel gereksinimlerin sağlanmasını destekleyen işlevsel olmayan gereksinimlerin ele alınması ve yazılımın doğru üretilme derecesi ile ilgilenir.

  • Software Quality Assurance- Yazılım Kalite Güvencesi (SQA), nihayetinde kaliteli yazılım ürünleri ile sonuçlanan yazılım mühendisliği süreçlerinde kaliteyi sağlamak için bir dizi faaliyettir. Faaliyetler, ürün üreten süreçleri oluşturur ve değerlendirir. Süreç odaklı eylemi içerir.

  • Software Quality Control- Yazılım Kalite Kontrolü (SQC), yazılım ürünlerinde kaliteyi sağlamaya yönelik bir dizi faaliyettir. Bu faaliyetler, üretilen gerçek ürünlerdeki kusurları belirlemeye odaklanır. Ürün odaklı eylemi içerir.

Yazılım Kalitesi Zorluğu

Yazılım endüstrisinde, geliştiriciler, diğer endüstriyel ürün üreticilerinin genellikle yaptığı gibi, yazılımın hatasız olduğunu asla beyan etmezler. Bu fark aşağıdaki nedenlerden kaynaklanmaktadır.

Ürün Karmaşıklığı

Ürünün izin verdiği çalışma modu sayısıdır. Normalde, bir endüstriyel ürün, makine ayarlarının farklı kombinasyonlarıyla yalnızca birkaç binden daha az çalışma moduna izin verir. Bununla birlikte, yazılım paketleri milyonlarca işletim olasılığına izin verir. Bu nedenle, tüm bu operasyonel olanakların doğru bir şekilde sağlanması, yazılım endüstrisi için büyük bir zorluktur.

Ürün Görünürlüğü

Endüstriyel ürünler görünür olduğundan, kusurlarının çoğu üretim sürecinde tespit edilebilir. Ayrıca endüstriyel bir üründe parça bulunmaması üründe kolaylıkla tespit edilebilir. Bununla birlikte, disketlerde veya CD'lerde depolanan yazılım ürünlerindeki kusurlar görünmezdir.

Ürün Geliştirme ve Üretim Süreci

Endüstriyel bir üründe, aşağıdaki aşamalarda kusurlar tespit edilebilir -

  • Product development - Bu aşamada, tasarımcılar ve Kalite Güvence (QA) personeli, kusurlarını tespit etmek için ürün prototipini kontrol eder ve test eder.

  • Product production planning- Bu aşamada üretim süreci ve araçları tasarlanır ve hazırlanır. Bu aşama aynı zamanda geliştirme aşamasında fark edilmeyen kusurları tespit etmek için ürünü inceleme fırsatı sunar.

  • Manufacturing- Bu aşamada, ürünlerin kendi arızalarını tespit etmek için QA prosedürleri uygulanır. Üretimin ilk döneminde tespit edilen üründeki kusurlar, genellikle ürünün tasarımında veya malzemelerinde veya üretim araçlarında, ileride üretilen ürünlerde bu tür kusurları ortadan kaldıracak şekilde bir değişiklik ile düzeltilebilir.

Ancak, yazılım söz konusu olduğunda, kusurların tespit edilebildiği tek aşama geliştirme aşamasıdır. Yazılım olması durumunda, yazılım kopyalarının üretimi ve yazılım kılavuzlarının basımı otomatik olarak yapıldığından ürün üretim planlama ve üretim aşamalarına gerek kalmaz.

Yazılım ürünlerinde diğer endüstriyel ürünlere göre kusurların tespitini etkileyen faktörler aşağıdaki tabloda gösterilmektedir.

Karakteristik Yazılım Ürünleri Diğer Endüstriyel Ürünler
Karmaşıklık Milyonlarca operasyonel seçenek bin operasyonel seçenek
ürünün görünürlüğü Görünmez Ürün Kusurları görerek tespit etmek zor Görünür Ürün Görerek kusurların etkili tespiti
Geliştirme ve üretim sürecinin doğası Kusurları yalnızca bir aşamada kusur edebilir aşağıdaki aşamaların tümünde kusurları tespit edebilir
  • Ürün geliştirme
  • Ürün üretim planlaması
  • Manufacturing

Yazılımın karmaşıklık ve görünmezlik gibi bu özellikleri, yazılım kalite güvence metodolojisinin geliştirilmesini ve başarılı bir şekilde uygulanmasını oldukça profesyonel bir zorluk haline getirir.

Yazılımı etkileyen çeşitli faktörler, yazılım faktörleri olarak adlandırılır. Genel olarak iki kategoriye ayrılabilirler. Faktörlerin ilk kategorisi, mantıksal hataların sayısı gibi doğrudan ölçülebilenlerdir ve ikinci kategori, sadece dolaylı olarak ölçülebilen faktörleri kulüpler. Örneğin, sürdürülebilirlik ancak her bir faktör, içeriği ve kalite kontrolünü kontrol etmek için ölçülecektir.

Yıllar içinde çeşitli yazılım kalite faktörleri modelleri ve bunların sınıflandırılması önerilmiştir. McCall tarafından önerilen klasik yazılım kalite faktörleri modeli 11 faktörden oluşmaktadır (McCall ve diğerleri, 1977). Benzer şekilde 12 ila 15 faktörden oluşan modeller Deutsch ve Willis (1988) ve Evans ve Marciniak (1987) tarafından önerilmiştir.

Tüm bu modeller McCall'ın modelinden önemli ölçüde farklı değildir. McCall faktör modeli, yazılım gereksinimlerini sınıflandırmak için pratik, güncel bir yöntem sağlar (Pressman, 2000).

McCall'ın Faktör Modeli

Bu model, tüm yazılım gereksinimlerini 11 yazılım kalite faktörüne göre sınıflandırır. 11 faktör üç kategoriye ayrılmıştır - ürün operasyonu, ürün revizyonu ve ürün geçiş faktörleri.

  • Product operation factors - Doğruluk, Güvenilirlik, Verimlilik, Bütünlük, Kullanılabilirlik.

  • Product revision factors - Sürdürülebilirlik, Esneklik, Test Edilebilirlik.

  • Product transition factors - Taşınabilirlik, Yeniden Kullanılabilirlik, Birlikte Çalışabilirlik.

Ürün Çalıştırma Yazılım Kalite Faktörleri

McCall'ın modeline göre, ürün çalıştırma kategorisi, yazılımın günlük işleyişini doğrudan etkileyen gereksinimlerle ilgilenen beş yazılım kalite faktörü içerir. Bunlar aşağıdaki gibidir -

Doğruluk

Bu gereksinimler, yazılım sisteminin çıktısının doğruluğu ile ilgilidir. İçerirler -

  • Çıktı görevi

  • Hatalı verilerden veya hatalı hesaplamalardan olumsuz etkilenebilecek gerekli çıktı doğruluğu.

  • Eksik verilerden etkilenebilecek çıktı bilgilerinin tamlığı.

  • Olay ile yazılım sistemi tarafından yanıt arasındaki zaman olarak tanımlanan bilginin güncelliği.

  • Bilgilerin kullanılabilirliği.

  • Yazılım sistemini kodlama ve belgeleme standartları.

Güvenilirlik

Güvenilirlik gereksinimleri servis arızasıyla ilgilenir. Yazılım sisteminin izin verilen maksimum arıza oranını belirlerler ve tüm sisteme veya bir veya daha fazla ayrı işlevine başvurabilirler.

Verimlilik

Yazılım sisteminin farklı işlevlerini yerine getirmek için gereken donanım kaynakları ile ilgilenir. İşlem yeteneklerini (MHz cinsinden verilir), depolama kapasitesini (MB veya GB cinsinden verilir) ve veri iletişim yeteneğini (MBPS veya GBPS olarak verilir) içerir.

Ayrıca, taşınabilir bilgisayarlarda bulunan bilgi sistemi birimleri veya dışarıya yerleştirilmiş meteorolojik birimler gibi sistemin taşınabilir birimlerinin yeniden şarj edilmesi arasındaki süreyi de ele alır.

Bütünlük

Bu faktör, yazılım sistemi güvenliği ile ilgilenir, yani yetkisiz kişilerin erişimini engellemek, ayrıca okuma ve yazma izni verilecek insan grupları arasında ayrım yapmaktır.

Kullanılabilirlik

Kullanılabilirlik gereksinimleri, yeni bir çalışanı eğitmek ve yazılım sistemini çalıştırmak için gereken personel kaynakları ile ilgilidir.

Ürün Revizyonu Kalite Faktörleri

McCall'ın modeline göre, ürün revizyon kategorisine üç yazılım kalite faktörü dahil edilmiştir. Bu faktörler aşağıdaki gibidir -

Sürdürülebilirlik

Bu faktör, yazılım arızalarının nedenlerini belirlemek, hataları düzeltmek ve düzeltmelerin başarısını doğrulamak için kullanıcılar ve bakım personeli tarafından ihtiyaç duyulacak çabaları dikkate alır.

Esneklik

Bu faktör, yazılımın uyarlanabilir bakım faaliyetlerini desteklemek için gereken yetenek ve çabalarla ilgilenir. Bunlar, yazılımı değiştirmeden mevcut yazılımı ek koşullara ve müşterilere uyarlamayı içerir. Bu faktörün gereksinimleri, hizmetini iyileştirmek ve firmanın teknik veya ticari ortamındaki değişikliklere uyarlamak için yazılımda değişiklikler ve eklemeler gibi mükemmel bakım faaliyetlerini de destekler.

Test edilebilirlik

Test edilebilirlik gereksinimleri, yazılım sisteminin test edilmesinin yanı sıra çalışmasıyla ilgilidir. Sistemin tüm bileşenlerinin çalışır durumda olup olmadığını öğrenmek ve tespit edilen hatalar hakkında bir rapor almak için önceden tanımlanmış ara sonuçları, günlük dosyalarını ve ayrıca sistem başlatılmadan önce yazılım sistemi tarafından gerçekleştirilen otomatik teşhisleri içerir. Bu gereksinimlerin bir başka türü, yazılım arızalarının nedenlerini tespit etmek için bakım teknisyenleri tarafından uygulanan otomatik teşhis kontrolleriyle ilgilidir.

Ürün Geçiş Yazılımı Kalite Faktörü

McCall'ın modeline göre, yazılımın diğer ortamlara uyarlanması ve diğer yazılım sistemleriyle etkileşimi ile ilgilenen ürün geçiş kategorisine üç yazılım kalite faktörü dahil edilmiştir. Bu faktörler aşağıdaki gibidir -

Taşınabilirlik

Taşınabilirlik gereksinimleri, bir yazılım sisteminin farklı donanım, farklı işletim sistemleri ve benzerlerinden oluşan diğer ortamlara uyarlanmasına yöneliktir. Yazılım, farklı durumlarda aynı temel yazılımı kullanmaya devam edebilmelidir.

Tekrar Kullanılabilirlik

Bu faktör, halihazırda geliştirilmekte olan yeni bir yazılım projesinde bir proje için orijinal olarak tasarlanmış yazılım modüllerinin kullanımı ile ilgilidir. Ayrıca gelecekteki projelerin belirli bir modülden veya halihazırda geliştirilen yazılımın bir grup modülünden yararlanmasını da sağlayabilirler. Yazılımın yeniden kullanımının geliştirme kaynaklarından tasarruf etmesi, geliştirme süresini kısaltması ve daha kaliteli modüller sunması beklenmektedir.

Birlikte çalışabilirlik

Birlikte çalışabilirlik gereksinimleri, diğer yazılım sistemleri veya diğer ekipman ürün yazılımları ile arayüzler oluşturmaya odaklanır. Örneğin, üretim makinelerinin donanım yazılımı ve test ekipmanı, üretim kontrol yazılımı ile arayüz oluşturur.

Software Quality Assurance(SQA), yazılım mühendisliği süreçlerinde kaliteyi sağlamaya yönelik bir dizi faaliyettir. Geliştirilen yazılımın tanımlanan veya standartlaştırılmış kalite spesifikasyonlarını karşılamasını ve bunlara uymasını sağlar. SQA, Yazılım Geliştirme Yaşam Döngüsü (SDLC) dahilinde, istenen kalite önlemlerini karşıladığından emin olmak için geliştirilen yazılımı rutin olarak kontrol eden devam eden bir süreçtir.

SQA uygulamaları, kullanılan temel yazılım geliştirme modeline bakılmaksızın, çoğu yazılım geliştirme türünde uygulanmaktadır. SQA, yazılımı test etmek için yazılım test metodolojilerini birleştirir ve uygular. Tamamlandıktan sonra kaliteyi kontrol etmek yerine, SQA süreçleri, yazılım tamamlanana kadar geliştirmenin her aşamasında kaliteyi test eder. SQA ile yazılım geliştirme süreci, yalnızca mevcut / önceki aşama gerekli kalite standartlarına uygun olduğunda sonraki aşamaya geçer. SQA genellikle, yazılım kalitesi yönergeleri ve uygulama stratejileri oluşturmaya yardımcı olan bir veya daha fazla endüstri standardı üzerinde çalışır.

Aşağıdaki faaliyetleri içerir -

  • Süreç tanımı ve uygulaması
  • Auditing
  • Training

Süreçler şunlar olabilir -

  • Yazılım Geliştirme Metodolojisi
  • Proje Yönetimi
  • Konfigürasyon yönetimi
  • Gereksinim Geliştirme / Yönetim
  • Estimation
  • Yazılım Tasarımı
  • Test vb.

Süreçler tanımlandıktan ve uygulandıktan sonra, Kalite Güvencesi aşağıdaki sorumluluklara sahiptir:

  • Süreçlerdeki zayıflıkları tespit edin
  • Süreci sürekli iyileştirmek için bu zayıflıkları düzeltin

SQA Sisteminin Bileşenleri

Bir SQA sistemi her zaman çok çeşitli SQA bileşenlerini birleştirir. Bu bileşenler aşağıdaki altı sınıfa ayrılabilir -

Ön proje bileşenleri

Bu, proje taahhütlerinin gerekli kaynaklar, program ve bütçe dikkate alınarak açıkça tanımlandığını garanti eder; geliştirme ve kalite planları doğru bir şekilde belirlenmiştir.

Proje yaşam döngüsü aktiviteleri değerlendirmesinin bileşenleri

Proje yaşam döngüsü iki aşamadan oluşur: geliştirme yaşam döngüsü aşaması ve işletme-bakım aşaması.

Geliştirme yaşam döngüsü aşaması bileşenleri, tasarım ve programlama hatalarını tespit eder. Bileşenleri aşağıdaki alt sınıflara ayrılmıştır: İncelemeler, Uzman görüşleri ve Yazılım testi.

İşletme-bakım aşamasında kullanılan SQA bileşenleri, temel olarak bakım görevlerini iyileştirme işlevselliği için uygulanan özel bakım bileşenlerinin yanı sıra geliştirme yaşam döngüsü bileşenlerini içerir.

Altyapı hatası önleme ve iyileştirmenin bileşenleri

Kuruluşun tamamında uygulanan bu bileşenlerin temel amacı, kuruluşun birikmiş SQA deneyimine dayalı olarak hata oranını ortadan kaldırmak veya en azından azaltmaktır.

Yazılım kalite yönetiminin bileşenleri

Bu bileşen sınıfı, geliştirme ve bakım faaliyetlerinin kontrolü ve esas olarak program ve bütçe hatalarını ve bunların sonuçlarını önleyen veya en aza indiren erken yönetimsel destek eylemlerinin tanıtımı gibi çeşitli hedeflerle ilgilenir.

Standardizasyon, sertifikasyon ve SQA sistem değerlendirmesinin bileşenleri

Bu bileşenler, organizasyon içinde uluslararası profesyonel ve yönetsel standartları uygular. Bu sınıfın temel hedefleri, uluslararası mesleki bilginin kullanılması, örgütsel kalite sistemlerinin diğer kuruluşlarla koordinasyonunun geliştirilmesi ve kalite sistemlerinin başarılarının ortak bir ölçeğe göre değerlendirilmesidir. Çeşitli standartlar iki ana grupta sınıflandırılabilir: kalite yönetim standartları ve proje süreci standartları.

SQA için organizasyon - insan bileşenleri

SQA organizasyon tabanı, yöneticileri, test personelini, SQA birimini ve SQA mütevellileri, SQA komitesi üyeleri ve SQA forum üyeleri gibi yazılım kalitesiyle ilgilenen kişileri içerir. Ana hedefleri, SQA bileşenlerinin uygulanmasını başlatmak ve desteklemek, SQA prosedürlerinden ve metodolojisinden sapmaları tespit etmek ve iyileştirmeler önermektir.

Ön proje Yazılım Kalitesi Bileşenleri

Bu bileşenler, bir projeye başlamadan önce atılan ön adımların iyileştirilmesine yardımcı olur. İçerir -

  • Sözleşme İnceleme
  • Geliştirme ve Kalite Planları

Sözleşme İnceleme

Normalde, bir müşteri ile müzakere edilen bir sözleşme için veya bir donanım ürününün içine yerleştirilecek bir ürün yazılımı geliştirmek için bir dahili sipariş için bir yazılım geliştirilir. Tüm bu durumlarda, geliştirme birimi üzerinde mutabık kalınan bir işlevsel şartnameye, bütçeye ve takvime bağlıdır. Bu nedenle, sözleşme gözden geçirme faaliyetleri proje teklifi taslağının ve sözleşme taslaklarının ayrıntılı bir incelemesini içermelidir.

Özellikle, sözleşme gözden geçirme faaliyetleri şunları içerir:

  • Müşterinin gereksinimlerinin açıklanması

  • Projenin takviminin ve kaynak gereksinimi tahminlerinin gözden geçirilmesi

  • Profesyonel personelin önerilen projeyi gerçekleştirme kapasitesinin değerlendirilmesi

  • Müşterinin yükümlülüklerini yerine getirme kapasitesinin değerlendirilmesi

  • Geliştirme risklerinin değerlendirilmesi

Geliştirme ve Kalite Planları

Bir organizasyonla veya aynı organizasyonun iç departmanıyla yazılım geliştirme sözleşmesi imzalandıktan sonra, projenin bir geliştirme planı ve entegre kalite güvence faaliyetleri hazırlanır. Bu planlar, mevcut teklif ve sözleşmenin temelini oluşturan önceki planlara dayalı olarak ek ayrıntıları ve gerekli revizyonları içerir.

Çoğu zaman, teklifin sunulması ile sözleşmenin imzalanması arasında birkaç ay geçmesi gerekir. Bu dönemlerde personel mevcudiyeti, profesyonel yetenekler gibi kaynaklar değişebilir. Planlar daha sonra, ara dönemde meydana gelen değişiklikleri yansıtacak şekilde revize edilir.

Proje geliştirme planında ele alınan ana konular şunlardır:

  • Schedules
  • Gerekli insan gücü ve donanım kaynakları
  • Risk değerlendirmeleri
  • Örgütsel sorunlar: ekip üyeleri, alt yükleniciler ve ortaklıklar
  • Proje metodolojisi, geliştirme araçları vb.
  • Yazılım yeniden kullanım planları

Projenin kalite planında ele alınan ana konular şunlardır:

  • Uygun ölçülebilir terimlerle ifade edilen kalite hedefleri

  • Her proje aşamasına başlama ve bitirme kriterleri

  • İnceleme listeleri, testler ve diğer planlanmış doğrulama ve doğrulama faaliyetleri

Yazılım ölçümleri üç kategoriye ayrılabilir -

  • Product metrics - Boyut, karmaşıklık, tasarım özellikleri, performans ve kalite seviyesi gibi ürünün özelliklerini açıklar.

  • Process metrics - Bu özellikler, yazılımın geliştirme ve bakım faaliyetlerini iyileştirmek için kullanılabilir.

  • Project metrics- Bu ölçümler, proje özelliklerini ve yürütülmesini tanımlar. Örnekler arasında yazılım geliştiricilerin sayısı, yazılımın yaşam döngüsü boyunca personel düzeni, maliyet, zamanlama ve üretkenlik yer alır.

Bazı ölçümler birden çok kategoriye aittir. Örneğin, bir projenin süreç içi kalite ölçütleri hem süreç ölçütleri hem de proje ölçütleridir.

Software quality metricsürün, süreç ve projenin kalite yönlerine odaklanan yazılım ölçümlerinin bir alt kümesidir. Bunlar, proje metriklerinden çok süreç ve ürün ölçümleriyle daha yakından ilişkilidir.

Yazılım kalitesi ölçümleri ayrıca üç kategoriye ayrılabilir -

  • Ürün kalite ölçümleri
  • İşlem içi kalite ölçümleri
  • Bakım kalitesi ölçütleri

Ürün Kalite Ölçütleri

Bu ölçümler aşağıdakileri içerir -

  • Başarısızlık için ortalama zaman
  • Kusur Yoğunluğu
  • Müşteri Sorunları
  • Müşteri memnuniyeti

Başarısızlık için ortalama zaman

Başarısızlıklar arasındaki zamandır. Bu metrik çoğunlukla havayolu trafik kontrol sistemleri, aviyonikler ve silahlar gibi güvenlik açısından kritik sistemlerde kullanılır.

Kusur Yoğunluğu

Kod satırları veya işlev noktası vb. Olarak ifade edilen yazılım boyutuna göre hataları ölçer, yani birim başına kod kalitesini ölçer. Bu metrik, birçok ticari yazılım sisteminde kullanılmaktadır.

Müşteri Sorunları

Müşterilerin ürünü kullanırken karşılaştıkları sorunları ölçer. Hata problemleri ile birlikte hataya yönelik olmayan problemleri içeren, müşterinin yazılımın problem alanına bakış açısını içerir.

Problemler ölçüsü genellikle şu terimlerle ifade edilir: Problems per User-Month (PUM).

PUM = Total Problems that customers reported (true defect and non-defect oriented 
problems) for a time period + Total number of license months of the software during 
the period

Nerede,

Number of license-month of the software = Number of install license of the software × 
Number of months in the calculation period

PUM, genellikle yazılım piyasaya sürüldükten sonraki her ay için ve ayrıca yıllara göre aylık ortalamalar için hesaplanır.

Müşteri memnuniyeti

Müşteri memnuniyeti genellikle beş puanlık ölçek aracılığıyla müşteri anket verileriyle ölçülür -

  • Çok Menmun Kalmak
  • Satisfied
  • Neutral
  • Dissatisfied
  • Çok memnuniyetsiz

Ürünün genel kalitesinden ve belirli boyutlarından memnuniyet genellikle çeşitli müşteri anketleri yöntemleriyle elde edilir. Beş puanlık ölçekli verilere dayanarak, analizin amacına bağlı olarak küçük farklılıklar içeren birkaç metrik oluşturulabilir ve kullanılabilir. Örneğin -

  • Tamamen memnun müşterilerin yüzdesi
  • Memnun müşteri yüzdesi
  • Memnun olmayan müşterilerin yüzdesi
  • Memnun olmayan müşterilerin yüzdesi

Genellikle bu memnuniyet yüzdesi kullanılır.

Süreç İçi Kalite Ölçütleri

Süreç içi kalite ölçütleri, bazı kuruluşlar için resmi makine testi sırasında kusur gelişinin izlenmesiyle ilgilenir. Bu metrik şunları içerir -

  • Makine testi sırasında kusur yoğunluğu
  • Makine testi sırasında hatalı varış şekli
  • Faz bazlı kusur giderme modeli
  • Kusur giderme etkinliği

Makine testi sırasında kusur yoğunluğu

Biçimsel makine testi sırasındaki hata oranı (kod sistem kitaplığına entegre edildikten sonra test), sahadaki kusur oranıyla ilişkilidir. Test sırasında bulunan daha yüksek kusur oranları, yüksek test hatası oranı olağanüstü bir test çabasından kaynaklanmadıkça, yazılımın geliştirme sürecinde daha yüksek hata enjeksiyonu yaşadığının bir göstergesidir.

KLOC veya işlev noktası başına bu basit hata ölçüsü, yazılım hala test edilirken, kalitenin iyi bir göstergesidir. Aynı geliştirme organizasyonundaki bir ürünün sonraki sürümlerini izlemek özellikle yararlıdır.

Makine testi sırasında hatalı varış şekli

Test sırasındaki genel kusur yoğunluğu, yalnızca kusurların özetini sağlayacaktır. Kusur gelişlerinin modeli, sahadaki farklı kalite seviyeleri hakkında daha fazla bilgi verir. Aşağıdakileri içerir -

  • Test aşaması sırasında zaman aralığına göre (örneğin, hafta) rapor edilen kusur varışları veya kusurlar. Burada bunların tümü geçerli kusurlar olmayacak.

  • Rapor edilen problemler üzerinde problem tespiti yapıldığında geçerli kusur gelişlerinin modeli. Bu gerçek kusur modelidir.

  • Kusur biriktirme fazla mesai kalıbı. Bu metriğe ihtiyaç vardır çünkü geliştirme organizasyonları bildirilen tüm sorunları hemen araştırıp düzeltemez. Bu bir iş yükü beyanı ve aynı zamanda bir kalite ifadesidir. Geliştirme döngüsünün sonunda kusur biriktirme listesi büyükse ve birçok düzeltme henüz sisteme entegre edilmemişse, sistemin kararlılığı (dolayısıyla kalitesi) etkilenecektir. Hedeflenen ürün kalitesi seviyelerine ulaşıldığından emin olmak için yeniden test (regresyon testi) gereklidir.

Faz bazlı kusur giderme modeli

Bu, test sırasında hata yoğunluğu metriğinin bir uzantısıdır. Teste ek olarak, tasarım incelemeleri, kod incelemeleri ve test öncesi resmi doğrulamalar dahil olmak üzere geliştirme döngüsünün tüm aşamalarında kusurları izler.

Programlama hatalarının büyük bir yüzdesi tasarım sorunları ile ilgili olduğundan, ön uçtaki sürecin kusur giderme kapasitesini artırmak için resmi incelemeler veya işlevsel doğrulamalar yapmak, yazılımdaki hataları azaltır. Aşama tabanlı kusur giderme modeli, geliştirme sürecinin genel kusur giderme yeteneğini yansıtır.

Tasarım ve kodlama aşamaları için ölçülerle ilgili olarak, kusur oranlarına ek olarak, birçok geliştirme kuruluşu, süreç içi kalite yönetimi için denetim kapsamı ve denetim çabası gibi ölçütleri kullanır.

Kusur giderme etkinliği

Şu şekilde tanımlanabilir -

$$DRE = \frac{Defect \: removed \: during \: a \: development\:phase }{Defects\: latent \: in \: the\: product} \times 100\%$$

Bu metrik, tüm geliştirme süreci için, kod entegrasyonundan önce ön uç için ve her aşama için hesaplanabilir. Denirearly defect removal ön uç için kullanıldığında ve phase effectivenessbelirli aşamalar için. Metriğin değeri ne kadar yüksekse, geliştirme süreci o kadar etkili olur ve bir sonraki aşamaya veya sahaya geçen kusurlar o kadar az olur. Bu metrik, yazılım geliştirme için kusur giderme modelinin temel bir konseptidir.

Bakım Kalite Ölçütleri

Bu aşamada ürünün kalitesini değiştirmek için pek bir şey yapılamasa da, mükemmel düzeltme kalitesi ile kusurları en kısa sürede ortadan kaldırmak için yapılabilecek düzeltmeler aşağıdadır.

  • Bekleme listesi ve birikim yönetimi dizinini düzeltin
  • Yanıt süresini ve yanıt verme süresini düzeltin
  • Geciken düzeltme yüzdesi
  • Kaliteyi düzelt

Bekleme listesi ve birikim yönetimi dizinini düzeltin

Düzeltme birikimi, hata gelişlerinin oranı ve bildirilen sorunlar için düzeltmelerin kullanılabilir hale gelme hızı ile ilgilidir. Her ayın sonunda veya her haftanın sonunda kalan, bildirilen sorunların basit bir sayısıdır. Bir eğilim grafiği biçiminde kullanan bu metrik, bakım sürecini yönetmek için anlamlı bilgiler sağlayabilir.

Backlog Management Index (BMI), açık ve çözülmemiş sorunların birikmesini yönetmek için kullanılır.

$$BMI = \frac{Number \: of \: problems \: closed \: during \:the \:month }{Number \: of \: problems \: arrived \: during \:the \:month} \times 100\%$$

BMI 100'den büyükse, birikmiş yığının azaldığı anlamına gelir. BMI 100'den azsa, birikim artar.

Yanıt süresini ve yanıt verme süresini düzeltin

Düzeltme yanıt süresi metriği, genellikle tüm sorunların açılıştan kapanışına kadar geçen ortalama süre olarak hesaplanır. Kısa düzeltme yanıt süresi müşteri memnuniyetine yol açar.

Düzeltme duyarlılığının önemli unsurları, müşteri beklentileri, kararlaştırılan düzeltme süresi ve kişinin müşteriye olan bağlılığını karşılama becerisidir.

Geciken düzeltme yüzdesi

Aşağıdaki gibi hesaplanır -

$Percent \:Delinquent\: Fixes =$

$\frac{Number \: of \: fixes \: that\: exceeded \: the \:response \:time\:criteria\:by\:ceverity\:level}{Number \: of \: fixes \: delivered \: in \:a \:specified \:time} \times 100\%$

Kaliteyi Düzelt

Sabit kalite veya hatalı onarım sayısı, bakım aşaması için bir başka önemli kalite ölçüsüdür. Bir düzeltme, bildirilen sorunu çözmediyse veya orijinal sorunu düzelttikten sonra yeni bir kusur enjekte ettiyse kusurludur. Görev açısından kritik yazılımlar için, hatalı düzeltmeler müşteri memnuniyeti açısından zararlıdır. Hatalı düzeltmelerin yüzdesinin ölçüsü, hatalı bir zaman aralığındaki tüm düzeltmelerin yüzdesidir.

Hatalı bir düzeltme iki şekilde kaydedilebilir: Bulunduğu ay kaydedin veya düzeltmenin teslim edildiği ay kaydedin. İlki bir müşteri ölçüsüdür; ikincisi bir süreç ölçüsüdür. İki tarih arasındaki fark, kusurlu düzeltmenin gizli dönemidir.

Genellikle gecikme ne kadar uzun olursa, etkilenen müşteriler o kadar fazla olacaktır. Kusurların sayısı büyükse, yüzde metriğinin küçük değeri iyimser bir resim gösterecektir. Bakım süreci için kalite hedefi, şüphesiz, kusurlu sıfır kusurlu düzeltmedir.

Ölçüm, bir şeyi ölçmek eylemidir. Diğer nesneler veya olaylarla karşılaştırılabilen, bir nesnenin veya olayın bir özelliğine bir sayı atanmasıdır.

Resmi olarak, gerçek dünyadaki varlıkların niteliklerine, onları açıkça tanımlanmış kurallara göre tanımlayacak şekilde, sayıların veya sembollerin atandığı süreç olarak tanımlanabilir.

Günlük Yaşamda Ölçüm

Ölçüm yalnızca profesyonel teknoloji uzmanları tarafından değil, aynı zamanda hepimiz tarafından günlük yaşamda da kullanılır. Bir dükkanda fiyat, bir öğenin değerinin bir ölçüsü olarak hareket eder. Benzer şekilde, boy ve beden ölçüleri de kumaşın tam oturup oturmayacağını garanti edecektir. Böylece ölçüm, bir öğeyi bir başkasıyla karşılaştırmamıza yardımcı olacaktır.

Ölçüm, varlıkların nitelikleri hakkındaki bilgileri alır. Varlık, kişi gibi bir nesnedir veya gerçek dünyadaki bir yolculuk gibi bir olaydır. Bir öznitelik, bir kişinin boyu, bir yolculuğun maliyeti vb. Gibi bir varlığın bir özelliği veya özelliğidir. Gerçek dünyada, şeyleri ölçmeyi düşünsek bile, aslında bu şeylerin özelliklerini ölçüyoruz.

Nitelikler çoğunlukla sayılar veya sembollerle tanımlanır. Örneğin fiyat rupi veya dolar sayısı olarak, giyim bedeni ise küçük, orta, büyük olarak belirtilebilir.

Bir ölçümün doğruluğu, ölçüm cihazına ve ölçümün tanımına bağlıdır. Ölçümleri aldıktan sonra onları analiz etmeliyiz ve varlıklar hakkında sonuçlar çıkarmalıyız.

Ölçüm doğrudan bir nicelemedir, oysa hesaplama, bazı formülleri kullanarak farklı ölçümleri birleştirdiğimiz dolaylı bir işlemdir.

Yazılım Mühendisliğinde Ölçüm

Yazılım Mühendisliği, yazılım ürünlerini yönetmeyi, maliyetlendirmeyi, planlamayı, modellemeyi, analiz etmeyi, belirlemeyi, tasarlamayı, uygulamayı, test etmeyi ve bakımını içerir. Bu nedenle ölçüm, yazılım mühendisliğinde önemli bir rol oynar. Bir yazılım ürününün niteliklerini ölçmek için titiz bir yaklaşım gerekli olacaktır.

Geliştirme projelerinin çoğu için,

  • Yazılım ürünlerimiz için ölçülebilir hedefler belirleyemiyoruz
  • Yazılım projelerinin bileşen maliyetini anlayamıyoruz ve ölçemiyoruz
  • Ürettiğimiz ürünlerin kalitesini ölçmüyor veya tahmin etmiyoruz

Bu nedenle, yazılım ürünlerini kontrol etmek için özelliklerin ölçülmesi gereklidir. Her ölçüm eylemi, açıkça tanımlanmış ve kolayca anlaşılabilir belirli bir hedef veya ihtiyaç tarafından motive edilmelidir. Ölçüm hedefleri spesifik olmalı, yöneticilerin, geliştiricilerin ve kullanıcıların bilmesi gerekenlere göre denenmelidir. Projenin, ürünün, süreçlerin ve kaynakların durumunu değerlendirmek için ölçüm gereklidir.

Yazılım mühendisliğinde ölçüm, aşağıdaki üç temel faaliyet için gereklidir:

  • Geliştirme ve bakım sırasında neler olduğunu anlamak
  • Projede neler olduğunu kontrol etmek için
  • Süreçleri ve hedefleri iyileştirmek için

Temsili Ölçüm Teorisi

Ölçüm, bize her türlü ölçüm hakkında geliştirme ve muhakeme için zemin hazırlayan kuralları anlatır. Bu, deneysel dünyadan biçimsel ilişkisel dünyaya doğru bir haritadır. Sonuç olarak, ölçü, bir varlığı karakterize etmek için bu eşleme tarafından bir varlığa atanan sayı veya semboldür.

Ampirik İlişkiler

Gerçek dünyada, olayları sayı atayarak değil, karşılaştırarak anlarız.

Örneğin, yüksekliği karşılaştırmak için 'daha uzun', daha yüksek 'terimlerini kullanırız. Dolayısıyla, bu "daha uzun", "daha yüksek" yükseklik için ampirik ilişkilerdir.

Aynı küme üzerinde birden fazla ampirik ilişki tanımlayabiliriz.

Örneğin, X, Y'den daha uzundur. X, Y, Z'den çok daha uzundur.

Ampirik ilişkiler tekli, ikili, üçlü vb. Olabilir.

X uzun, Y uzun değil, tekli ilişkiler.

X, Y'den daha uzun bir ikili ilişkidir.

Gerçek dünyadaki ampirik ilişkiler, resmi bir matematiksel dünya ile eşleştirilebilir. Çoğunlukla bu ilişkiler kişisel tercihleri ​​yansıtır.

Bu deneysel ilişkileri matematiksel dünyayla haritalamak için kullanılan bazı haritalama veya derecelendirme tekniği aşağıdaki gibidir:

Likert Ölçeği

Burada, kullanıcılara hemfikir olmaları veya katılmamaları gereken bir ifade verilecektir.

For example - Bu yazılım iyi performans gösteriyor.

Kesinlikle katılıyorum Katılıyorum Ne katılıyorum ne katılmıyorum Katılmıyorum Kesinlikle Disgaree
         

Zorunlu Sıralama

Verilen alternatifleri 1'den (en iyi) n'ye (en kötü) doğru sıralayın.

Örneğin: Aşağıdaki 5 yazılım modülünü performanslarına göre sıralayın.

Modül Adı Sıra
Modül A
Modül B
Modül C
Modül D
Modül E

Sözel Frekans Ölçeği

For example - Bu program ne sıklıkla başarısız oluyor?

Her zaman Sıklıkla Ara sıra Nadiren Asla
         

Sıra Ölçeği

Burada kullanıcılara bir alternatifler listesi verilecek ve birini seçmeleri gerekecek.

For example - Bu program ne sıklıkla başarısız oluyor?

  • Hourly
  • Daily
  • Weekly
  • Monthly
  • Yılda birkaç defa
  • Yılda bir ya da iki kez
  • Never

Karşılaştırmalı Ölçek

Burada kullanıcının farklı seçenekleri karşılaştırarak bir numara vermesi gerekmektedir.

Very superiorAbout the sameVery inferior

12345678910

Sayısal Ölçek

Burada kullanıcının önemine göre bir sayı vermesi gerekmektedir.

UnimportantImportant

12345678910

Haritalama Kuralları

Eşlemeyi gerçekleştirmek için alan, aralık ve eşlemeyi gerçekleştirecek kuralları belirlememiz gerekir.

For example - Etki Alanı - Gerçek dünya

  • Range - Tam sayılar, gerçek sayılar gibi matematiksel dünya

  • Rules - Yükseklik ölçmek için ayakkabı giyilip giyilmeyecek

Benzer şekilde, yazılım ölçümü durumunda, ifadenin kontrol listesi belirtilecek kod satırlarında yer alacaktır.

Temsili Ölçme Koşulu

Temsili koşul, bir ölçüm eşlemesinin (M) varlıkları sayılarla ve deneysel ilişkileri sayısal ilişkilerle, deneysel ilişkiler koruyacak ve sayısal ilişkilerle korunacak şekilde eşlemelidir.

Örneğin: 'Daha uzun' ampirik ilişki '>' sayısal ilişkiyle eşleştirilir. Yani, X is taller than Y, if and only if M(X) > M(Y)

Belirli bir küme üzerinde birçok ilişki olabileceğinden, temsili koşul da bu ilişkilerin her biri için çıkarımlara sahiptir.

Tekli ilişki için 'uzun', sayısal ilişkiye sahip olabiliriz

X > 50

Temsili koşul, herhangi bir önlem için M,

X is tall if and only if M(X) > 50

Resmi Ölçümün Temel Aşamaları

Ölçmenin temel aşamaları şu şekilde özetlenebilir:

Modeller, gerçek dünyadaki varlıkların sayısal öğelerinin davranışını yorumlamak ve bunları ölçmek için kullanışlıdır. Ölçüm sürecine yardımcı olmak için, haritalama modeli, bir eşleme alanı modeli ile desteklenmelidir. Bir model aynı zamanda bu varlıkların özniteliklerle nasıl ilişkili olduğunu ve özelliklerin nasıl ilişkili olduğunu da belirtmelidir.

Ölçüm iki türdendir -

  • Doğrudan ölçüm
  • Dolaylı ölçüm

Doğrudan Ölçüm

Bunlar, başka herhangi bir varlık veya niteliğin katılımı olmadan ölçülebilen ölçümlerdir.

Aşağıdaki doğrudan önlemler genellikle yazılım mühendisliğinde kullanılır.

  • LOC'ye göre kaynak kodun uzunluğu
  • Geçen süreye göre test amacının süresi
  • Kusurları sayarak test sürecinde keşfedilen kusurların sayısı
  • Bir programcının bir programda geçirdiği zaman

Dolaylı Ölçüm

Bunlar, başka herhangi bir varlık veya nitelik açısından ölçülebilen ölçümlerdir.

Aşağıdaki dolaylı önlemler genellikle yazılım mühendisliğinde kullanılır.

$$\small Programmer\:Productivity = \frac{LOC \: produced }{Person \:months \:of \:effort}$$

$\small Module\:Defect\:Density = \frac{Number \:of\:defects}{Module \:size}$

$$\small Defect\:Detection\:Efficiency = \frac{Number \:of\:defects\:detected}{Total \:number \:of\:defects}$$

$\small Requirement\:Stability = \frac{Number \:of\:initial\:requirements}{Total \:number \:of\:requirements}$

$\small Test\:Effectiveness\:Ratio = \frac{Number \:of\:items\:covered}{Total \:number \:of \:items}$

$\small System\:spoilage = \frac{Effort \:spent\:for\:fixing\:faults}{Total \:project \:effort}$

Tahmin için Ölçüm

Projeye uygun kaynakları tahsis etmek için, projeyi geliştirmek için gereken çabayı, zamanı ve maliyeti tahmin etmemiz gerekir. Tahmin için ölçüm her zaman, tahmin edilecek nitelikleri şimdi ölçebileceğimiz başka bir nitelikle ilişkilendiren matematiksel bir model gerektirir. Dolayısıyla, bir tahmin sistemi, bilinmeyen parametreleri belirlemek ve sonuçları yorumlamak için bir dizi tahmin prosedürü ile birlikte matematiksel bir modelden oluşur.

Ölçüm ölçekleri, ampirik ilişki sistemini temsil etmek için kullanılan eşleştirmelerdir. Esas olarak 5 çeşittir -

  • Nominal ölçek
  • Sıra Ölçeği
  • Aralık Ölçeği
  • Oran ölçeği
  • Mutlak Ölçek

Nominal ölçek

Öğeleri bir sınıflandırma şemasına yerleştirir. Sınıflar sipariş edilmeyecektir. Her varlık, özniteliğin değerine göre belirli bir sınıfa veya kategoriye yerleştirilmelidir.

İki ana özelliği vardır -

  • Ampirik ilişki sistemi yalnızca farklı sınıflardan oluşur; sınıflar arasında bir düzen kavramı yoktur.

  • Sınıfların herhangi bir farklı numaralandırma veya sembolik temsili kabul edilebilir bir ölçüdür, ancak sayılar veya sembollerle ilişkili büyüklük kavramı yoktur.

Sıra Ölçeği

Öğeleri sıralı bir sınıflandırma şemasına yerleştirir. Aşağıdaki özelliklere sahiptir -

  • Ampirik ilişki sistemi, niteliğe göre sıralanan sınıflardan oluşur.

  • Sıralamayı koruyan herhangi bir eşleştirme kabul edilebilir.

  • Rakamlar yalnızca sıralamayı temsil eder. Bu nedenle toplama, çıkarma ve diğer aritmetik işlemlerin bir anlamı yoktur.

Aralık Ölçeği

Bu ölçek, sınıflandırmayı ayıran aralıkların boyutu hakkındaki bilgileri yakalar. Bu nedenle, nominal ölçekten ve sıra ölçekten daha güçlüdür.

Aşağıdaki özelliklere sahiptir -

  • Sıralı ölçek gibi düzeni korur.

  • Farklılıkları korur ama oranı korumaz.

  • Bu ölçekte toplama ve çıkarma yapılabilir ancak çarpma veya bölme yapılamaz.

Bir öznitelik aralık ölçeğinde ölçülebilirse ve M ve M’ temsil koşulunu sağlayan eşleşmelerdir, bu durumda her zaman iki sayı bulabiliriz a ve b öyle ki,

M = aM '+ b

Oran ölçeği

Bu, en kullanışlı ölçüm ölçeğidir. Burada oranları yakalamak için ampirik bir ilişki vardır. Aşağıdaki özelliklere sahiptir -

  • Sıralamayı, varlıklar arasındaki aralıkların boyutunu ve varlıklar arasındaki oranı koruyan bir ölçüm eşlemesidir.

  • Özniteliklerin toplam eksikliğini temsil eden bir sıfır öğesi vardır.

  • Ölçüm eşlemesi sıfırdan başlamalı ve birimler olarak bilinen eşit aralıklarla artmalıdır.

  • Tüm aritmetik işlemler uygulanabilir.

Burada haritalama şeklinde olacak

M = aM’

Nerede ‘a’ pozitif bir skalerdir.

Mutlak Ölçek

Bu ölçekte, bir öznitelik için yalnızca bir olası ölçü olacaktır. Dolayısıyla, olası tek dönüşüm kimlik dönüşümü olacaktır.

Aşağıdaki özelliklere sahiptir -

  • Ölçüm, varlık kümesindeki öğelerin sayısı sayılarak yapılır.

  • Öznitelik her zaman "varlıktaki x oluşumlarının sayısı" biçimini alır.

  • Yalnızca bir olası ölçüm eşlemesi vardır, yani gerçek sayım.

  • Tüm aritmetik işlemler elde edilen sayıma göre gerçekleştirilebilir.

Ampirik Araştırmalar, herhangi bir aracın, tekniğin veya yöntemin bilimsel araştırmasını içerir. Bu araştırma esas olarak aşağıdaki 4 ilkeyi içermektedir.

  • Bir araştırma tekniği seçmek
  • Hipotezi belirtmek
  • Değişken üzerindeki kontrolün sürdürülmesi
  • Araştırmayı anlamlı kılmak

Bir Araştırma Tekniği Seçmek

Yazılım mühendisliğinde deneysel araştırmanın temel bileşenleri şunlardır:

  • Survey
  • Vaka Analizi
  • Resmi deney

Anket

Anket, ilişkileri ve sonuçları belgelemek için bir durumun geriye dönük olarak incelenmesidir. Her zaman bir olay meydana geldikten sonra yapılır. Örneğin, yazılım mühendisliğinde, eğilimleri veya ilişkileri belirlemek için kullanıcıların belirli bir yönteme, araca veya tekniğe nasıl tepki verdiklerini belirlemek için anketler yapılabilir.

Bu durumda, elimizdeki durum üzerinde hiçbir kontrolümüz yoktur. Bir durumu kaydedebilir ve benzer bir durumla karşılaştırabiliriz.

Vaka Analizi

Bir faaliyetin sonucunu etkileyebilecek temel faktörleri belirlediğiniz ve ardından etkinliği belgelediğiniz bir araştırma tekniğidir: girdileri, kısıtlamaları, kaynakları ve çıktıları.

Resmi Deney

Sonuç üzerindeki etkilerini belgelemek için kilit faktörlerin belirlendiği ve manipüle edildiği, bir faaliyetin titiz bir kontrollü araştırmasıdır.

Aşağıdaki yönergelere göre belirli bir soruşturma yöntemi seçilebilir -

  • Etkinlik zaten gerçekleşmişse, anket veya vaka çalışması yapabiliriz. Henüz gerçekleşmediyse, vaka çalışması veya resmi deney seçilebilir.

  • Sonucu etkileyebilecek değişkenler üzerinde yüksek düzeyde kontrolümüz varsa, o zaman bir deney kullanabiliriz. Değişken üzerinde herhangi bir kontrolümüz yoksa, vaka çalışması tercih edilen bir teknik olacaktır.

  • Daha yüksek seviyelerde çoğaltma mümkün değilse, o zaman deney yapmak mümkün değildir.

  • Çoğaltma maliyeti düşükse, deney yapmayı düşünebiliriz.

Hipotezin Belirtilmesi

Belirli bir araştırma tekniğinin kararını artırmak için, araştırmanın amacı test etmek istediğimiz bir hipotez olarak ifade edilmelidir. Hipotez, programcının araştırmak istediği davranışı açıkladığını düşündüğü geçici teori veya varsayımdır.

Değişkenler Üzerindeki Kontrolü Sürdürmek

Hipotezi belirttikten sonra, onun gerçeğini etkileyen farklı değişkenlere ve onun üzerinde ne kadar kontrolümüz olduğuna karar vermeliyiz. Bu çok önemlidir, çünkü deney ve vaka çalışmaları arasındaki temel ayırıcı, davranışı etkileyen değişken üzerindeki kontrol derecesidir.

Resmi deneydeki kontrol durumunu deneysel olandan ayırt etmek için projeyi karakterize edebilen ve aynı zamanda değerlendirme sonuçlarını etkileyebilen faktör olan bir durum değişkeni kullanılır. Kontrolü deneyden ayırt edemezsek, vaka çalışması tekniği tercih edilecektir.

Örneğin, programlama dilindeki bir değişikliğin projenin üretkenliğini etkileyip etkilemeyeceğini belirlemek istiyorsak, o zaman dil bir durum değişkeni olacaktır. Şu anda Ada ile değiştirmek istediğimiz FORTRAN'ı kullandığımızı varsayalım. Daha sonra kontrol dili FORTRAN ve deneysel olan Ada olacaktır.

Araştırmayı Anlamlı Hale Getirme

Bir deneyin sonuçları genellikle vaka çalışması veya anketten daha genelleştirilebilir. Örnek olay incelemesinin veya anketin sonuçları normalde yalnızca belirli bir kuruluş için geçerli olabilir. Aşağıdaki noktalar, bu tekniklerin çeşitli soruları yanıtlamadaki etkinliğini kanıtlamaktadır.

Uygun teoriler ve geleneksel bilgelik

Tek bir organizasyonda geleneksel bilgeliğin ve diğer birçok standardın, yöntemin veya aracın etkililiğine ve faydasına uymak için vaka çalışmaları veya anketler kullanılabilir. Bununla birlikte, resmi deney, iddiaların genellikle doğru olduğu durumları araştırabilir.

İlişkileri keşfetmek

Kaynakların ve yazılım ürünlerinin çeşitli özellikleri arasındaki ilişki, bir vaka çalışması veya anket ile önerilebilir.

Örneğin, tamamlanan projelerin araştırılması, belirli bir dilde yazılmış bir yazılımın diğer dillerde yazılmış bir yazılıma göre daha az hatası olduğunu ortaya çıkarabilir.

Bu ilişkileri anlamak ve doğrulamak, gelecekteki tüm projelerin başarısı için çok önemlidir. Bu ilişkilerin her biri bir hipotez olarak ifade edilebilir ve ilişkilerin ne derece geçerli olduğunu test etmek için resmi bir deney tasarlanabilir. Genellikle, belirli bir özelliğin değeri, diğer özellikleri sabit veya kontrol altında tutarak gözlemlenir.

Modellerin doğruluğunun değerlendirilmesi

Modeller genellikle bir faaliyetin sonucunu tahmin etmek veya bir yöntem veya aracın kullanımına rehberlik etmek için kullanılır. Bir deney veya vaka çalışması tasarlarken özellikle zor bir problem sunar çünkü onların tahminleri genellikle sonucu etkiler. Proje yöneticileri genellikle tahminleri tamamlanma hedeflerine dönüştürür. Bu etki, maliyet ve zamanlama modelleri kullanıldığında yaygındır.

Güvenilirlik modelleri gibi bazı modeller sonucu etkilemez, çünkü ortalama arıza süresi olarak ölçülen güvenilirlik, yazılım sahada kullanıma hazır olana kadar değerlendirilemez.

Doğrulama önlemleri

Bir özelliğin değerini yakalamak için birçok yazılım ölçüsü vardır. Bu nedenle, belirli bir önlemin yakalaması beklenen nitelikteki değişiklikleri yansıtıp yansıtmadığını test etmek için bir çalışma yapılmalıdır. Doğrulama, bir ölçümün diğeriyle ilişkilendirilmesiyle gerçekleştirilir. Doğrulamak için aynı zamanda etkileyen faktörün doğrudan ve geçerli bir ölçüsü olan ikinci bir ölçü kullanılmalıdır. Bu tür önlemler her zaman mevcut değildir veya ölçülmesi kolay değildir. Ayrıca, kullanılan ölçümler, ölçülen faktörün insan kavramlarına uygun olmalıdır.

Yazılım ölçümü çerçevesi üç ilkeye dayanmaktadır:

  • İncelenecek varlıkların sınıflandırılması
  • İlgili ölçüm hedeflerinin belirlenmesi
  • Kuruluşun ulaştığı olgunluk düzeyinin belirlenmesi

İncelenecek Varlıkların Sınıflandırılması

Yazılım mühendisliğinde, esas olarak üç sınıf varlık mevcuttur. Onlar -

  • Processes
  • Products
  • Resources

Tüm bu varlıkların hem iç hem de dış varlıkları vardır.

  • Internal attributestamamen süreç, ürün veya kaynakların kendisi açısından ölçülebilenlerdir. Örneğin: Boyut, karmaşıklık, modüller arası bağımlılık.

  • External attributessadece çevre ile ilişkisi açısından ölçülebilenlerdir. Örneğin: Bir kullanıcının yaşadığı toplam arıza sayısı, veritabanında arama yapmak ve bilgi almak için geçen süre.

Varlıkların her biri için ölçülebilen farklı özellikler aşağıdaki gibidir -

Süreçler

Süreçler, yazılımla ilgili faaliyetlerin koleksiyonlarıdır. Aşağıda, bir işlem için doğrudan ölçülebilen bazı dahili özellikler verilmiştir -

  • Sürecin veya faaliyetlerinden birinin süresi

  • Süreç veya faaliyetlerinden biriyle ilişkili çaba

  • Süreç veya faaliyetlerinden biri sırasında ortaya çıkan belirli bir türdeki olayların sayısı

Bir sürecin farklı dış nitelikleri maliyet, kontrol edilebilirlik, etkinlik, kalite ve istikrartır.

Ürün:% s

Ürünler yalnızca yönetimin teslim etmeyi taahhüt ettiği öğeler değil, aynı zamanda yazılım yaşam döngüsü boyunca üretilen herhangi bir yapı veya belgedir.

Farklı dahili ürün özellikleri boyut, çaba, maliyet, belirtim, uzunluk, işlevsellik, modülerlik, yeniden kullanım, fazlalık ve sözdizimsel doğruluktur. Bu boyut, çaba ve maliyetin ölçülmesi diğerlerine göre nispeten kolaydır.

Farklı harici ürün özellikleri, kullanılabilirlik, bütünlük, verimlilik, test edilebilirlik, yeniden kullanılabilirlik, taşınabilirlik ve birlikte çalışabilirliktir. Bu özellikler yalnızca kodu değil, aynı zamanda geliştirme çabasını destekleyen diğer belgeleri de tanımlar.

Kaynaklar

Bunlar, bir süreç aktivitesi için gerekli olan varlıklardır. Yazılım üretimi için herhangi bir girdi olabilir. Personeli, malzemeleri, araçları ve yöntemleri içerir.

Kaynaklar için farklı iç özellikler yaş, fiyat, boyut, hız, bellek boyutu, sıcaklık vb .'dir. Farklı dış özellikler üretkenlik, deneyim, kalite, kullanılabilirlik, güvenilirlik, rahatlık vb.

İlgili Ölçüm Hedeflerini Belirleme

Belirli bir ölçüm, yalnızca süreci veya sonuç ürünlerinden birini anlamaya yardımcı olursa faydalı olacaktır. Süreç veya ürünlerdeki iyileştirme ancak proje süreçler ve ürünler için açıkça tanımlanmış hedeflere sahip olduğunda gerçekleştirilebilir. Süreç olgunluk çerçevesi bağlamında belirli bir proje için önerilen ölçütleri oluşturmak için hedeflerin net bir şekilde anlaşılması kullanılabilir.

Hedef – Soru – Metrik (GQM) paradigması

GQM yaklaşımı, aşağıdaki üç adımı içeren bir çerçeve sağlar:

  • Geliştirme veya bakım projesinin ana hedeflerini listelemek

  • Hedeflere ulaşılıp ulaşılmadığını belirlemek için cevaplanması gereken her hedeften soruları türetmek

  • Soruları yeterince cevaplayabilmek için neyin ölçülmesi gerektiğine karar verin

GQM paradigmasını kullanmak için önce kuruluşun genel hedeflerini ifade ederiz. Ardından, hedeflere ulaşılıp ulaşılmadığını belirleyebilmemiz için cevapları bilinecek şekilde sorular oluştururuz. Daha sonra, her soruyu yanıtlamak için her soruyu hangi ölçüme ihtiyacımız olduğuna göre analiz edin.

Tipik hedefler üretkenlik, kalite, risk, müşteri memnuniyeti vb. Açısından ifade edilir. Hedefler ve sorular hedef kitleleri açısından oluşturulmalıdır.

Basili & Rombach, hedefleri, soruları ve ölçütleri oluşturmaya yardımcı olmak için bir dizi şablon sağladı.

  • Purpose - Anlamak, değerlendirmek, yönetmek, mühendislik yapmak, öğrenmek, iyileştirmek vb. İçin (süreci, ürünü, modeli, metrik vb.) Example: Ürünü öğrenmek için karakterize etmek.

  • Perspective - Geliştirici, yönetici, müşteri vb. Bakış açısından (maliyet, etkinlik, doğruluk, kusurlar, değişiklikler, ürün ölçüleri vb.) Example: Kusurları müşterinin bakış açısından inceleyin.

  • Environment - Ortam şunlardan oluşur: süreç faktörleri, insan faktörleri, problem faktörleri, yöntemler, araçlar, kısıtlamalar vb. Example: Bu yazılımın müşterileri, araçlar hakkında hiçbir bilgisi olmayan kişilerdir.

Ölçüm ve Süreç İyileştirme

Normalde ölçüm aşağıdakiler için yararlıdır:

  • Süreci ve ürünleri anlamak
  • Bir temel oluşturmak
  • Sonuca erişmek ve tahmin etmek

SEI tarafından verilen sürecin olgunluk seviyesine göre ölçüm türü ve ölçüm programı farklı olacaktır. Aşağıda, her bir olgunluk düzeyinde uygulanabilecek farklı ölçüm programları bulunmaktadır.

Level 1: Ad hoc

Bu seviyede girdiler yanlış tanımlanırken çıktılar beklenir. Girdiden çıktıya geçiş tanımsız ve kontrolsüzdür. Bu süreç olgunluğu seviyesi için, ölçüm için bir başlangıç ​​noktası sağlamak üzere temel ölçümlere ihtiyaç vardır.

Level 2: Repeatable

Bu seviyede, sürecin girdi ve çıktıları, kısıtlamaları ve kaynakları belirlenebilir. Tekrarlanabilir bir süreç aşağıdaki diyagramla açıklanabilir.

Girdi ölçüleri, gereksinimlerin boyutu ve değişkenliği olabilir. Çıktı, sistem boyutu, personel çabası açısından kaynaklar ve maliyet ve program açısından kısıtlamalar açısından ölçülebilir.

Level 3: Defined

Bu seviyede ara faaliyetler tanımlanır ve bunların girdileri ve çıktıları bilinir ve anlaşılır. Tanımlanan işlemin basit bir örneği aşağıdaki şekilde açıklanmaktadır.

Ara faaliyetlerin girdisi ve çıktısı incelenebilir, ölçülebilir ve değerlendirilebilir.

Level 4: Managed

Bu düzeyde, erken proje faaliyetlerinden gelen geri bildirimler, mevcut faaliyetler için ve daha sonra proje faaliyetleri için öncelikleri belirlemek için kullanılabilir. Süreç faaliyetlerinin etkinliğini ölçebiliriz. Ölçüm, genel sürecin özelliklerini ve ana faaliyetler arasındaki ve arasındaki etkileşimin özelliklerini yansıtır.

Level 5: Optimizing

Bu seviyede, faaliyetlerden alınan önlemler, ölçüm geri bildirimlerine yanıt olarak süreç etkinliklerini kaldırıp ekleyerek ve süreç yapısını dinamik olarak değiştirerek süreci iyileştirmek için kullanılır. Böylece süreç değişikliği, organizasyonu ve projeyi olduğu kadar süreci de etkileyebilir. Süreç, sensörler ve monitörler olarak hareket edecek ve uyarı işaretlerine yanıt olarak süreci önemli ölçüde değiştirebiliriz.

Belirli bir olgunluk seviyesinde, o seviye ve altındaki tüm seviyeler için ölçümleri toplayabiliriz.

Olgunluk Düzeyini Belirleme

Süreç olgunluğu yalnızca görünür olanı ölçmeyi önerir. Bu nedenle, süreç olgunluğunun GQM ile kombinasyonu en yararlı önlemleri sağlayacaktır.

  • Şurada: level 1, projenin kötü tanımlanmış gereksinimleri olması muhtemeldir. Bu seviyede, ihtiyaç özelliklerinin ölçülmesi zordur.

  • Şurada: level 2, gereksinimler iyi tanımlanmıştır ve her gereksinimin türü ve her türdeki değişiklik sayısı gibi ek bilgiler toplanabilir.

  • Şurada: level 3ara faaliyetler, her faaliyet için giriş ve çıkış kriterleri ile tanımlanır

Hedef ve soru analizi aynı olacaktır, ancak metrik olgunluğa göre değişecektir. Süreç ne kadar olgunlaşırsa ölçümler o kadar zengin olacaktır. GQM paradigması, süreç olgunluğuyla uyumlu olarak, yöneticilere ölçüm programlarının tasarlanmasında yardımcı olan çeşitli araçlar için temel olarak kullanılmıştır.

GQM, özniteliğin ölçülmesi ihtiyacının anlaşılmasına yardımcı olur ve süreç olgunluğu, onu anlamlı bir şekilde ölçüp ölçemeyeceğimizi gösterir. Birlikte ölçüm için bir bağlam sağlarlar.

Yazılım sisteminin ölçümünün doğrulanması iki adımdan oluşur -

  • Ölçüm sistemlerini doğrulama
  • Tahmin sistemlerini doğrulama

Ölçüm Sistemlerini Doğrulama

Ölçüler veya ölçüm sistemleri, bir veya daha fazla niteliğini sayısal olarak karakterize ederek mevcut bir varlığı değerlendirmek için kullanılır. Bir ölçü, ölçmeyi iddia ettiği özniteliği doğru bir şekilde karakterize ediyorsa geçerlidir.

Bir yazılım ölçüm sisteminin doğrulanması, temsil koşulunun karşılandığını göstererek ölçünün iddia edilen özniteliğin uygun bir sayısal karakterizasyonu olmasını sağlama sürecidir.

Bir ölçüm sistemini doğrulamak için hem varlıkları tanımlayan resmi bir modele hem de ölçtüğümüz özelliği koruyan sayısal bir eşlemeye ihtiyacımız var. Örneğin, iki program P1 ve P2 varsa ve bu programları birleştirmek istiyorsak, o zaman herhangi bir ölçününm bunu tatmin edecek uzunlukta,

m (P1 + P2) = m (P1) + m (P2)

Bir program P1 programdan daha uzun P2, sonra herhangi bir ölçü m ayrıca tatmin etmeli,

m (P1)> m (P2)

Programın uzunluğu kod satırları sayılarak ölçülebilir. Bu sayı yukarıdaki ilişkileri karşılarsa, kod satırlarının uzunluk için geçerli bir ölçü olduğunu söyleyebiliriz.

Bir ölçüyü doğrulamak için resmi gereklilik, ölçüm teorisi anlamında belirtilen niteliği karakterize ettiğini göstermeyi içerir. Doğrulama, ölçücülerin doğru bir şekilde tanımlandığından ve kurumun gerçek dünya davranışıyla tutarlı olduğundan emin olmak için kullanılabilir.

Tahmin Sistemlerini Doğrulama

Tahmin sistemleri, ilişkili tahmin prosedürleri ile matematiksel bir modeli içeren gelecekteki bir varlığın bazı özelliklerini tahmin etmek için kullanılır.

Belirli bir ortamda tahmin sistemlerinin doğrulanması, tahmin sisteminin doğruluğunu deneysel yollarla, yani model performansını belirli bir ortamda bilinen verilerle karşılaştırarak oluşturma sürecidir. Deney ve hipotez testini içerir.

Doğrulama için kabul edilebilir doğruluk derecesi, tahmin sisteminin deterministik mi yoksa stokastik mi olduğuna ve değerlendirmeyi yapan kişiye bağlıdır. Bazı stokastik tahmin sistemleri diğerlerinden daha stokastiktir.

Stokastik tahmin sistemlerinin örnekleri, yazılım maliyeti tahmini, efor tahmini, zamanlama tahmini vb. Gibi sistemlerdir. Bu nedenle, bir tahmin sistemini resmi olarak doğrulamak için, ne kadar stokastik olduğuna karar vermeli ve ardından tahmin sisteminin performansını bilinen verilerle karşılaştırmalıyız.

Yazılım ölçütleri, bir dereceye kadar ölçüm içeren birçok faaliyeti içeren bir ölçü standardıdır. Üç kategoriye ayrılabilir: ürün ölçümleri, süreç ölçümleri ve proje ölçümleri.

  • Product metrics Boyut, karmaşıklık, tasarım özellikleri, performans ve kalite seviyesi gibi ürünün özelliklerini tanımlar.

  • Process metricsyazılım geliştirme ve bakımı iyileştirmek için kullanılabilir. Örnekler, geliştirme sırasında kusur gidermenin etkililiğini, hatanın gelişini test etme modelini ve düzeltme işleminin yanıt süresini içerir.

  • Project metricsProje özelliklerini ve yürütülmesini tanımlar. Örnekler arasında yazılım geliştiricilerin sayısı, yazılımın yaşam döngüsü boyunca personel düzeni, maliyet, zamanlama ve üretkenlik yer alır.

Bazı ölçümler birden çok kategoriye aittir. Örneğin, bir projenin süreç içi kalite ölçütleri hem süreç ölçütleri hem de proje ölçütleridir.

Yazılım Metriklerinin Kapsamı

Yazılım ölçümleri, aşağıdakileri içeren birçok etkinliği içerir -

  • Maliyet ve çaba tahmini
  • Verimlilik ölçüleri ve modeli
  • Veri toplama
  • Miktar modelleri ve ölçüler
  • Güvenilirlik modelleri
  • Performans ve değerlendirme modelleri
  • Yapısal ve karmaşıklık metrikleri
  • Yetenek - olgunluk değerlendirmesi
  • Ölçümlere göre yönetim
  • Yöntem ve araçların değerlendirilmesi

Yazılım ölçümü, belirli bir aşamada yazılım proje maliyetlerini tahmin eden modellerden program yapısı ölçümlerine kadar uzanan bu faaliyetlerin çeşitli bir koleksiyonudur.

Maliyet ve Çaba Tahmini

Çaba, programın boyutu, geliştiricilerin kapasitesi ve yeniden kullanım düzeyi gibi bir veya daha fazla değişkenin fonksiyonu olarak ifade edilir. Yazılım yaşam döngüsünün erken aşamalarında proje maliyetini tahmin etmek için maliyet ve iş gücü tahmin modelleri önerilmiştir. Önerilen farklı modeller -

  • Boehm'in COCOMO modeli
  • Putnam'ın ince modeli
  • Albrecht'in fonksiyon noktası modeli

Verimlilik Modeli ve Ölçüler

Verimlilik, değer ve maliyetin bir fonksiyonu olarak düşünülebilir. Her biri farklı ölçülebilir büyüklük, işlevsellik, zaman, para vb. Olarak ayrıştırılabilir. Bir üretkenlik modelinin farklı olası bileşenleri aşağıdaki diyagramda ifade edilebilir.

Veri toplama

Herhangi bir ölçüm programının kalitesi açıkça dikkatli veri toplamaya bağlıdır. Toplanan veriler, yöneticilerin gelişimin ilerlemesini ve problemini anlayabilmesi için basit çizelge ve grafiklere ayrılabilir. Veri toplama, ilişkilerin ve eğilimlerin bilimsel araştırılması için de gereklidir.

Kaliteli Modeller ve Ölçüler

Verimliliğin anlamsız olduğu ürün kalitesinin ölçülmesi için kalite modelleri geliştirilmiştir. Bu kaliteli modeller, doğru üretkenliği ölçmek için üretkenlik modeliyle birleştirilebilir. Bu modeller genellikle ağaç benzeri bir şekilde inşa edilir. Üst dallar, güvenilirlik ve kullanılabilirlik gibi önemli üst düzey kalite faktörlerine sahiptir.

Böl ve yönet yaklaşımı kavramı, yazılım kalitesini ölçmek için standart bir yaklaşım olarak uygulanmıştır.

Güvenilirlik Modelleri

Çoğu kalite modeli, bir bileşen faktörü olarak güvenilirliği içerir, ancak güvenilirliği tahmin etme ve ölçme ihtiyacı, güvenilirlik modellemesi ve tahmininde ayrı bir uzmanlaşmaya yol açmıştır. Güvenilirlik teorisindeki temel sorun, bir sistemin sonunda ne zaman başarısız olacağını tahmin etmektir.

Performans Değerlendirmesi ve Modelleri

Yanıt süreleri ve tamamlanma oranları gibi dışarıdan gözlemlenebilir sistem performans özelliklerini ve algoritmaların verimliliği gibi sistemin dahili çalışmasını içerir. Kalitenin başka bir yönüdür.

Yapısal ve Karmaşıklık Metrikleri

Burada, uygulama öncesinde mevcut olan yazılım temsillerinin yapısal özelliklerini ölçüyoruz. Daha sonra kalite güvencesini, kalite kontrolünü ve kalite tahminini desteklemek için ampirik olarak öngörücü teoriler oluşturmaya çalışıyoruz.

Yetenek Olgunluk Değerlendirmesi

Bu model, araçların kullanımı, standart uygulamalar ve daha fazlası dahil olmak üzere birçok farklı geliştirme özelliğini değerlendirebilir. Her iyi yüklenicinin kullanması gereken temel uygulamalara dayanmaktadır.

Metriklere Göre Yönetim

Yazılım projesini yönetmek için ölçüm hayati bir role sahiptir. Projenin yolunda olup olmadığını kontrol etmek için kullanıcılar ve geliştiriciler ölçüm tabanlı tablo ve grafiğe güvenebilirler. Standart ölçümler ve raporlama yöntemleri seti, müşterilerin genellikle yazılım terminolojisine hakim olmadığı bir ürüne yazılım yerleştirildiğinde özellikle önemlidir.

Yöntem ve Araçların Değerlendirilmesi

Bu, deneysel tasarıma, sonucu etkilemesi muhtemel faktörlerin uygun şekilde tanımlanmasına ve faktör özelliklerinin uygun şekilde ölçülmesine bağlıdır.

Yazılım metrikleri, bir dereceye kadar ölçüm içeren birçok faaliyeti içeren bir ölçü standardıdır. Yazılım ölçümündeki başarı, toplanan ve analiz edilen verilerin kalitesindedir.

İyi Veri nedir?

Toplanan veriler, aşağıdaki soruların yanıtlarını üretebiliyorsa, iyi bir veri olarak kabul edilebilir:

  • Are they correct? - Bir veri, metrik tanımının tam kurallarına göre toplanmışsa doğru kabul edilebilir.

  • Are they accurate? - Doğruluk, veriler ile gerçek değer arasındaki farkı ifade eder.

  • Are they appropriately precise? - Kesinlik, verileri ifade etmek için gereken ondalık basamak sayısıyla ilgilenir.

  • Are they consistent? - Bir ölçüm cihazından diğerine önemli bir fark göstermiyorsa, veriler tutarlı olarak kabul edilebilir.

  • Are they associated with a particular activity or time period? - Veriler belirli bir faaliyet veya dönem ile ilişkilendirilmişse, verilerde açıkça belirtilmelidir.

  • Can they be replicated?- Normalde, anketler, vaka çalışmaları ve deneyler gibi araştırmalar farklı koşullar altında sıklıkla tekrarlanır. Bu nedenle, verilerin kolayca kopyalanması da mümkün olmalıdır.

Veriler Nasıl Tanımlanır?

Ölçüm amacıyla toplanan veriler iki türdendir -

  • Raw data- Ham veriler, süreç, ürün veya kaynakların ilk ölçümlerinden elde edilir. Örneğin: Bir organizasyondaki çalışanların haftalık zaman çizelgesi.

  • Refined data - İyileştirilmiş veriler, öznitelikler için değer türetmek için ham verilerden temel veri öğelerinin çıkarılmasıyla elde edilir.

Veriler aşağıdaki noktalara göre tanımlanabilir -

  • Location
  • Timing
  • Symptoms
  • Sonuç
  • Mechanism
  • Cause
  • Severity
  • Cost

Veriler Nasıl Toplanır?

Verilerin toplanması, insan gözlemi ve raporlamayı gerektirir. Yöneticiler, sistem analistleri, programcılar, testçiler ve kullanıcılar satır verilerini formlara kaydetmelidir. Doğru ve eksiksiz veri toplamak için aşağıdakiler önemlidir:

  • Prosedürleri basit tutun

  • Gereksiz kayıttan kaçının

  • Çalışanları verileri kaydetme ihtiyacı ve kullanılacak prosedürler konusunda eğitin

  • Veri yakalama ve analiz sonuçlarını orijinal sağlayıcılara derhal ve çalışmalarında yardımcı olacak faydalı bir biçimde sunun

  • Merkezi bir toplama noktasında toplanan tüm verileri doğrulayın

Veri toplamanın planlanması birkaç adım içerir -

  • GQM analizine göre hangi ürünlerin ölçüleceğine karar verin

  • Ürünün konfigürasyon kontrolü altında olduğundan emin olun

  • Tam olarak hangi özelliklerin ölçüleceğine ve dolaylı önlemlerin nasıl türetileceğine karar verin

  • Ölçü seti netleştiğinde ve ölçülecek bileşen kümesi belirlendiğinde, ölçüm sürecine dahil olan her bir faaliyeti tanımlamak için bir şema oluşturun

  • Formları işlemek, verileri analiz etmek ve sonuçları raporlamak için bir prosedür oluşturun

Veri toplama planlaması, proje planlaması başladığında başlamalıdır. Gerçek veri toplama, geliştirmenin birçok aşamasında gerçekleşir.

For example - Proje personeli ile ilgili bazı veriler projenin başlangıcında toplanabilirken, efor gibi diğer veri toplama, proje başlangıcında başlar ve işletme ve bakım ile devam eder.

Veriler Nasıl Saklanır ve Çıkarılır

Yazılım mühendisliğinde veriler bir veritabanında depolanmalı ve bir Veritabanı Yönetim Sistemi (DBMS) kullanılarak kurulmalıdır. Aşağıdaki şekilde bir veritabanı yapısı örneği gösterilmektedir. Bu veritabanı, bir organizasyonun farklı departmanlarında çalışan farklı çalışanların ayrıntılarını saklayacaktır.

Yukarıdaki diyagramda, her kutu veri tabanındaki bir tablodur ve ok, bir tablodan diğerine çoktan bire eşlemeyi gösterir. Eşlemeler, verilerin mantıksal tutarlılığını koruyan kısıtlamaları tanımlar.

Veritabanı tasarlandıktan ve verilerle doldurulduktan sonra, verileri analiz için çıkarmak için veri işleme dillerini kullanabiliriz.

İlgili verileri topladıktan sonra uygun bir şekilde analiz etmemiz gerekiyor. Analiz tekniğini seçerken dikkate alınması gereken üç ana öğe vardır.

  • Verinin doğası
  • Deneyin amacı
  • Tasarım konuları

Verinin Doğası

Verileri analiz etmek için, verilerin temsil ettiği daha büyük nüfusa ve bu verilerin dağılımına da bakmalıyız.

Örnekleme, popülasyon ve veri dağıtımı

Örnekleme, büyük bir popülasyondan bir veri kümesi seçme işlemidir. Örnek istatistikler, bir grup deneysel denekten elde edilen ölçümleri açıklar ve özetler.

Popülasyon parametreleri, tüm olası özneler ölçülürse elde edilecek değerleri temsil eder.

Popülasyon veya örnek, ortalama, medyan ve mod gibi merkezi eğilim ölçüleri ve varyans ve standart sapma gibi dağılım ölçüleri ile tanımlanabilir. Aşağıdaki grafikte gösterildiği gibi birçok veri seti normal olarak dağıtılmıştır.

Yukarıda gösterildiği gibi, veriler ortalama hakkında eşit olarak dağıtılacaktır. bu normal bir dağılımın önemli özellikleridir.

Verilerin çarpık olduğu başka dağılımlar da mevcuttur, böylece ortalamanın bir tarafında diğerinden daha fazla veri noktası vardır. Örneğin: Verilerin çoğu ortalamanın sol tarafında mevcutsa, dağılımın sola doğru çarpık olduğunu söyleyebiliriz.

Deneyin Amacı

Normalde deneyler yapılır -

  • Bir teoriyi doğrulamak için
  • Bir ilişkiyi keşfetmek için

Bunların her birine ulaşmak için, hedef resmi olarak hipotez açısından ifade edilmeli ve analiz hipotezi doğrudan ele almalıdır.

Bir teoriyi doğrulamak için

Soruşturma, bir teorinin doğruluğunu keşfetmek için tasarlanmalıdır. Teori genellikle belirli bir yöntem, araç veya tekniğin kullanımının konular üzerinde belirli bir etkiye sahip olduğunu ve onu bir şekilde diğerinden daha iyi hale getirdiğini belirtir.

Dikkate alınması gereken iki veri durumu vardır: normal data ve non-normal data.

Veriler normal bir dağılımdan alınmışsa ve karşılaştırılacak iki grup varsa, öğrencinin t testi analiz için kullanılabilir. Karşılaştırılacak ikiden fazla grup varsa, F-istatistikleri adı verilen genel bir varyans testi analizi kullanılabilir.

Veriler normal değilse, veriler Kruskal-Wallis testi kullanılarak derecelendirilerek analiz edilebilir.

Bir ilişkiyi keşfetmek için

Araştırmalar, bir değişkeni veya birden çok değişkeni tanımlayan veri noktaları arasındaki ilişkiyi belirlemek için tasarlanmıştır.

Bir ilişki hakkındaki soruları yanıtlamak için üç teknik vardır: kutu grafikleri, dağılım grafikleri ve korelasyon analizi.

  • Bir box plot bir dizi veri aralığının özetini temsil edebilir.

  • Bir scatter plot iki değişken arasındaki ilişkiyi temsil eder.

  • Correlation analysis iki öznitelik arasında gerçek bir ilişki olup olmadığını doğrulamak için istatistiksel yöntemler kullanır.

    • Normal dağıtılan değerler için kullanın Pearson Correlation Coefficient iki değişkenin yüksek oranda ilişkili olup olmadığını kontrol etmek için.

    • Normal olmayan veriler için verileri sıralayın ve Spearman Rank Correlation Coefficientbir ilişki ölçüsü olarak. Normal olmayan veriler için bir başka ölçü deKendall robust correlation coefficient, veri noktası çiftleri arasındaki ilişkiyi araştıran ve kısmi bir korelasyonu tanımlayabilen.

Sıralama çok sayıda bağlı değer içeriyorsa, chi-squared testbir olasılık tablosunda değişkenler arasındaki ilişkiyi test etmek için kullanılabilir. Benzer şekilde,linear regression değişkenler arasındaki ilişkiyi tanımlamak için bir denklem oluşturmak için kullanılabilir.

İkiden fazla değişken için, multivariate regression kullanılabilir.

Tasarım Hususları

Analiz teknikleri seçilirken araştırmanın tasarımı dikkate alınmalıdır. Aynı zamanda, analizin karmaşıklığı seçilen tasarımı etkileyebilir. Birden fazla grup, Öğrenci'nin iki gruplu T testi yerine F istatistiklerini kullanır.

İkiden fazla faktör içeren karmaşık faktöriyel tasarımlar için, daha karmaşık bir ilişki ve önem testi gereklidir.

İstatistiksel teknikler, bir değişken setinin diğerleri üzerindeki etkisini hesaba katmak veya zamanlama veya öğrenme etkilerini telafi etmek için kullanılabilir.

Dahili ürün öznitelikleri, yazılım ürünlerini yalnızca ürünün kendisine bağlı olacak şekilde tanımlar. Dahili ürün özelliklerini ölçmenin ana nedeni, geliştirme sırasında ürünlerin izlenmesine ve kontrol edilmesine yardımcı olmasıdır.

Dahili Ürün Özelliklerini Ölçme

Ana dahili ürün özellikleri şunları içerir: size ve structure. Boyut, bunları yürütmek zorunda kalmadan statik olarak ölçülebilir. Ürünün boyutu, onu yaratmak için gereken çabayı bize anlatır. Benzer şekilde ürünün yapısı da ürünün bakımının tasarlanmasında önemli bir rol oynar.

Boyutu Ölçmek

Yazılım boyutu üç özellik ile tanımlanabilir -

  • Length - Ürünün fiziksel ölçüsüdür.

  • Functionality - Ürünün kullanıcıya sağladığı fonksiyonları anlatır.

  • Complexity - Karmaşıklık gibi farklı türlerdendir.

    • Problem complexity - Altta yatan sorunun karmaşıklığını ölçer.

    • Algorithmic complexity - Sorunu çözmek için uygulanan algoritmanın karmaşıklığını ölçer

    • Structural complexity - Algoritmayı uygulamak için kullanılan yazılımın yapısını ölçer.

    • Cognitive complexity - Yazılımı anlamak için gereken çabayı ölçer.

Bu üç özelliğin ölçümü şu şekilde açıklanabilir:

Uzunluk

Tahmin için gereken eforu tahmin etmek için boyut ölçümü yararlı olan üç geliştirme ürünü vardır. Özellikler, tasarım ve kodlardır.

Özellikler ve tasarım

Bu belgeler genellikle metin, grafik ve özel matematiksel diyagram ve sembolleri birleştirir. Tasarımın uzunluğunu tahmin etmek için spesifikasyon ölçümü kullanılabilir ve bu da kod uzunluğunun bir öngörücüsüdür.

Belgelerdeki diyagramlar, etiketli digraflar, veri akış diyagramları veya Z şemaları gibi tek tip sözdizimine sahiptir. Şartname ve tasarım belgeleri metinlerden ve diyagramlardan oluştuğundan, uzunluğu, metin uzunluğunu ve diyagram uzunluğunu temsil eden bir çift sayı ile ölçülebilir.

Bu ölçümler için, atomik nesneler farklı diyagram ve sembol türleri için tanımlanmalıdır.

Veri akış diyagramları için atomik nesneler süreçler, harici varlıklar, veri depoları ve veri akışlarıdır. Cebirsel belirtimler için atomik varlıklar türler, fonksiyonlar, işlemler ve aksiyomlardır. Z şemaları için atomik varlıklar, spesifikasyonda görünen çeşitli çizgilerdir.

Kod

Kod, prosedürel dil, nesne yönelimi ve görsel programlama gibi farklı şekillerde üretilebilir. Kaynak kod program uzunluğunun en yaygın olarak kullanılan geleneksel ölçüsü, Kod Satırlarıdır (LOC).

Toplam uzunluk,

LOC = NCLOC + CLOC

yani

LOC = Non-commented LOC + Commented LOC

Kod satırının yanı sıra, Maurice Halsted tarafından önerilen boyut ve karmaşıklık gibi diğer alternatifler de uzunluğu ölçmek için kullanılabilir.

Halstead'in yazılım bilimi, bir programın farklı özelliklerini yakalamaya çalıştı. Uzunluk, kelime haznesi ve hacim gibi farklı boyut görüşlerini yansıtan üç dahili program özelliği önerdi.

Bir program tanımlayarak başladı Poperatörler veya işlenenler tarafından sınıflandırılan bir simge koleksiyonu olarak. Bu belirteçler için temel metrikler şunlardı:

  • μ1 = Benzersiz operatör sayısı

  • μ2 = Benzersiz işlenenlerin sayısı

  • N1 = Operatörlerin Toplam Oluşumu

  • N2 = Benzersiz operatör sayısı

Uzunluk P olarak tanımlanabilir

$$N = N_{1}+ N_{2}$$

Kelime dağarcığı P dır-dir

$$\mu =\mu _{1}+\mu _{2}$$

Programın hacmi = uzunlukta bir program yazmak için gereken zihinsel karşılaştırma sayısı N, dır-dir

$$V = N\times {log_{2}} \mu$$

Bir programın program seviyesi P hacim V dır-dir,

$$L = \frac{V^\ast}{V}$$

Nerede, $V^\ast$ potansiyel hacim, yani minimum boyut uygulamasının hacmidir. P

Seviyenin tersi zorluktur -

$$D = 1\diagup L$$

Halstead teorisine göre bir tahmin hesaplayabiliriz L gibi

$${L}' = 1\diagup D = \frac{2}{\mu_{1}} \times \frac{\mu_{2}}{N_{2}}$$

Benzer şekilde, tahmini program uzunluğu, $\mu_{1}\times log_{2}\mu_{1}+\mu_{2}\times log_{2}\mu_{2}$

P'yi oluşturmak için gereken çaba,

$$E = V\diagup L = \frac{\mu_{1}N_{2}Nlog_{2}\mu}{2\mu_{2}}$$

Ölçü birimi nerede E anlamak için gerekli olan temel zihinsel ayrımlardır P

Uzunluğu ölçmek için diğer alternatifler şunlardır:

  • Program metni için gereken bilgisayar deposu bayt sayısı açısından

  • Program metnindeki karakter sayısı açısından

Nesneye yönelik geliştirme, uzunluğu ölçmenin yeni yollarını önerir. Pfleeger vd. bir dizi nesnenin ve yöntemin, kod satırlarını kullananlara göre daha doğru verimlilik tahminlerine yol açtığını buldu.

İşlevsellik

Bir ürünün doğasında bulunan işlevsellik miktarı, ürün boyutunun ölçüsünü verir. Yazılım ürünlerinin işlevselliğini ölçmek için pek çok farklı yöntem vardır. Bir sonraki bölümde böyle bir yöntemi ─ Albrecht'in Fonksiyon Noktası yöntemini ─ tartışacağız.

İşlev noktası ölçümleri, bir yazılım uygulamasının çeşitli işlevlerini ölçmek için standartlaştırılmış bir yöntem sağlar. İşlevselliği kullanıcının bakış açısından, yani kullanıcının karşılığında ne istediği ve ne aldığı temelinde ölçer. Fonksiyon noktası analizi, kullanıcının bakış açısından yazılım geliştirmeyi ölçmek için standart bir yöntemdir.

İlk olarak Albrecht tarafından tasarlanan İşlev Noktası ölçüsü, 1986'da Uluslararası İşlev Noktası Kullanıcıları Grubu'nun (IFPUG) başlamasıyla artan popülerlik kazandı. 2002'de IFPUG İşlev Noktaları uluslararası bir ISO standardı oldu - ISO / IEC 20926.

Fonksiyon Noktası nedir?

FP (Function Point)bir yazılım uygulamasını ölçmek için en yaygın işlevsel tip ölçüsüdür. İki veri işlevi türüne ve üç işlem işlev türüne bölünmüş beş kullanıcı tarafından tanımlanabilen mantıksal "işlev" e dayanmaktadır. Belirli bir yazılım uygulaması için, bu öğelerin her biri, dosya referansları veya mantıksal alanlar gibi karakteristik öğeleri sayılarak ölçülür ve ağırlıklandırılır.

Ortaya çıkan sayılar (Ayarlanmamış FP) Eklenen, Değiştirilen veya Silinen işlev kümeleri halinde gruplandırılır ve nihai FP sayısını elde etmek için Değer Ayarlama Faktörü (VAF) ile birleştirilir. Her sayım türü için ayrı bir son formül kullanılır: Uygulama, Geliştirme Projesi veya Geliştirme Projesi.

Albrecht'in Fonksiyon Noktası Yönteminin Uygulanması

Şimdi Albrecht'in Function Point yönteminin nasıl uygulanacağını anlayalım. Prosedürü aşağıdaki gibidir -

Bileşenlerin sayısını belirleyin (EI, EO, EQ, ILF ve ELF)

  • EI- Harici girişlerin sayısı. Bunlar, türetilen verilerin sınırdan dışarıdan içeriye geçtiği temel süreçlerdir. Örnek bir kütüphane veritabanı sisteminde, mevcut bir kullanıcının kütüphane kartı numarasını girin.

  • EO- Harici çıkış sayısı. Bunlar, türetilen verilerin sınırın içinden içeriden dışarıya geçtiği temel süreçlerdir. Örnek bir kütüphane veritabanı sisteminde, bir kullanıcıya ödünç verilen kitapların bir listesini görüntüleyin.

  • EQ- Dış sorguların sayısı. Bunlar, bir veya daha fazla dahili mantıksal dosyadan ve harici arayüz dosyalarından veri alınmasına neden olan hem giriş hem de çıkış bileşenlerine sahip temel süreçlerdir. Örnek bir kütüphane veritabanı sisteminde, şu anda hangi kitapların bir kullanıcıya ödünç verildiğini belirleyin.

  • ILF- Dahili günlük dosyalarının sayısı. Bunlar, tamamen harici girdilerle korunan uygulama sınırları içinde yer alan, mantıksal olarak ilişkili verilerin kullanıcı tarafından tanımlanabilen gruplarıdır. Örnek bir kütüphane veritabanı sisteminde, kütüphanedeki kitapların dosyası.

  • ELF- Harici günlük dosyalarının sayısı. Bunlar, yalnızca referans amacıyla kullanılan ve tamamen sistemin dışında bulunan, mantıksal olarak ilişkili verilerin kullanıcı tarafından tanımlanabilen gruplarıdır. Örnek bir kütüphane veritabanı sisteminde, kütüphanenin faturalama sistemindeki işlemleri içeren dosya.

Ayarlanmamış Fonksiyon Noktası Sayısını (UFC) hesaplayın

  • Her bileşeni şu şekilde değerlendirin: low, average, veya high.

  • İşlemler için (EI, EO, and EQ), derecelendirmeye göre FTR ve DET.

    • FTR - Güncellenen veya başvurulan dosyaların sayısı.

    • DET - Kullanıcı tarafından tanınan alanların sayısı.

    • Aşağıdaki tabloya göre bir EI 2 dosya ve 10 veri öğesi referans olarak average.

FTR'ler DET'ler
1-5 6-15 >15
0-1 Düşük Düşük Ortalama
2-3 Düşük Ortalama Yüksek
>3 Ortalama Yüksek Yüksek
  • Dosyalar için (ILF and ELF), derecelendirmeye göre RET ve DET.

    • RET - Bir dosyadaki kullanıcı tarafından tanınabilen veri öğelerinin sayısı ILF veya ELF.

    • DET - Kullanıcı tarafından tanınan alanların sayısı.

    • Aşağıdaki tabloya göre bir ILF 10 veri öğesi içeren ve 5 alan şu şekilde sıralanır: high.

RET'ler DET'ler
1-5 6-15 >15
1 Düşük Düşük Ortalama
2-5 Düşük Ortalama Yüksek
>5 Ortalama Yüksek Yüksek
  • Derecelendirmeleri şuna dönüştür: UFCs.

Değerlendirme Değerler
EO EQ EI ILF ELF
Low 4 3 3 7 5
Average 5 4 4 10 7
High 6 5 6 15 10

Son Fonksiyon Nokta Sayısını (FPC) hesaplayın

  • Hesaplama değeri ayarlama faktörü (VAF) 14 genel sistem özelliğine göre (GSC).

Genel Sistem Karakteristiği Kısa açıklama
GSC 1 Veri iletişimleri Uygulama veya sistem ile bilgi aktarımı veya değişimine yardımcı olacak kaç iletişim tesisi var?
GSC 2 Dağıtılmış veri işleme Dağıtılmış veriler ve işleme fonksiyonları nasıl ele alınır?
GSC 3 Verim Yanıt süresi veya işlem hacmi kullanıcı için gerekli miydi?
GSC 4 Yoğun olarak kullanılan yapılandırma Uygulamanın yürütüleceği mevcut donanım platformu ne kadar yoğun bir şekilde kullanılıyor?
GSC 5 İşlem oranı İşlemler günlük, haftalık, aylık vb. Ne sıklıkla yapılır?
GSC 6 Çevrimiçi veri girişi Bilgilerin yüzde kaçı çevrimiçi olarak giriliyor?
GSC 7 Son kullanıcı verimliliği Uygulama, son kullanıcı verimliliği için mi tasarlanmış?
GSC 8 Çevrimiçi güncelleme Çevrimiçi işlemle kaç ILF güncellenir?
GSC 9 Karmaşık işlem Uygulama, kapsamlı mantıksal veya matematiksel işleme sahip mi?
GSC 10 Tekrar Kullanılabilirlik Uygulama bir veya daha fazla kullanıcının ihtiyacını karşılayacak şekilde mi geliştirildi?
GSC 11 Kurulum kolaylığı Dönüştürme ve kurulum ne kadar zor?
GSC 12 Operasyonel kolaylık Başlatma, yedekleme ve kurtarma prosedürleri ne kadar etkili ve / veya otomatiktir?
GSC 13 Birden çok site Uygulama, birden çok kuruluş için birden çok siteye kurulmak üzere özel olarak tasarlanmış, geliştirilmiş ve desteklenmiş miydi?
GSC 14 Değişimi kolaylaştırın Uygulama, değişimi kolaylaştırmak için özel olarak tasarlanmış, geliştirilmiş ve desteklenmiş midir?
  • Her birini tartın GSC güçlü etkiye etkisi olup olmadığına göre 0 ile 5 arasında bir ölçekte.

  • Hesaplayın FPC aşağıdaki gibi -

    FPC = UFC * (0.65+ (toplam (GSC) * .01))

Karmaşıklık

Karmaşıklık, boyutun ayrı bir bileşenidir. İki çeşittir -

  • Complexity of a problem - Soruna en uygun çözüm için gereken kaynak miktarıdır.

  • Complexity of a solution- Belirli bir çözümü uygulamak için ihtiyaç duyulan kaynaklardır. İki yönü vardır. Bunlar aşağıdaki gibidir -

    • Time complexity - Kaynak bilgisayar saatidir.

    • Space complexity - Kaynak bilgisayar belleğidir.

Karmaşıklığı Ölçme

Karmaşıklığın bir yönü verimliliktir. Algoritma olarak modellenebilen herhangi bir yazılım ürününü ölçer.

Örneğin: Belirli bir problemin tüm örneklerini çözmek için bir algoritma, f(n) hesaplamalar, o zaman f(n) Karmaşıklığa sahip diğer her algoritma için problemi çözüyorsa, asimptotik olarak optimaldir f dır-dir O(g). O halde, verilen sorunun karmaşıklığı büyüktür -O problemin çözümü için asimptotik olarak optimal algoritmanın.

Bir yazılımın yapısal özelliklerinin ölçülmesi, geliştirme çabasının tahmin edilmesi ve ürünün bakımı için önemlidir. Gereksinimlerin, tasarımın ve kodun yapısı, bir ürünü diğerine dönüştürürken, bir ürünü test ederken veya erken dahili ürün ölçümlerinden harici yazılım özelliklerini tahmin ederken ortaya çıkan zorluğu anlamaya yardımcı olur.

Yapısal Önlem Türleri

Yazılımın yapısı üç bölümden oluşmaktadır. Onlar -

  • Control-flow structure - Bir programda komutların yürütüldüğü sıradır.

  • Data-flow structure - Programla etkileşim halindeki verinin davranışıdır.

  • Data structure - Oluşturma, değiştirme veya silme algoritması ile birlikte listeler, kuyruk, yığınlar veya diğer iyi tanımlanmış yapılar şeklindeki veri öğelerinin organizasyonudur.

Kontrol-Akış Yapısının Ölçülmesi

Kontrol akışı ölçüleri genellikle yönlendirilmiş grafikle modellenir, burada her düğüm veya nokta program ifadelerine karşılık gelir ve her yay veya yönlendirilmiş kenar, bir ifadeden diğerine kontrol akışını gösterir. Bu grafiklere kontrol akış grafiği veya yönlendirilmiş grafik denir.

Eğer ‘m’ akış grafiği modeli açısından tanımlanan yapısal bir ölçüdür ve eğer program A yapısal olarak programdan daha karmaşıktır B, sonra ölçü m(A) daha büyük olmalı m(B).

Veri Akışı Yapısını Ölçme

Veri akışı veya bilgi akışı, modüler (modüller içindeki bilgi akışı) veya modüler (tek tek modüller ve sistemin geri kalanı arasındaki bilgi akışı) olabilir.

Verilerin sistemde hareket etme şekline göre aşağıdaki şekilde sınıflandırılabilir:

  • Local direct flow - Bir modül ikinci bir modülü çağırırsa ve ona bilgi aktarırsa veya çağrılan modül, arayana bir sonuç verirse.

  • Local indirect flow - Çağrılan modül, daha sonra ikinci çağrılan modüle iletilen bilgileri döndürürse.

  • Global flow - Bilgi bir modülden diğerine küresel bir veri yapısı aracılığıyla akıyorsa.

Bilgi akışı karmaşıklığı Henry ve Kafura'ya göre şu şekilde ifade edilebilir:

Information flow complexity (M) = length (M) × fan-in (M) × (fan-out (M))2

Nerede,

  • Fan-in (M) - Bilginin M tarafından alındığı veri yapılarının sayısı M + 'da sonlanan yerel akışların sayısı.

  • Fan–out (M) - M + 'dan kaynaklanan yerel akışların sayısı, M tarafından güncellenen veri yapılarının sayısı.

Veri Yapısını Ölçme

Veri yapısı hem local ve global.

Locally, her veri öğesindeki yapı miktarı ölçülecektir. Tek tek veri yapılarının özelliklerini analiz etmek ve ölçmek için grafik teorik bir yaklaşım kullanılabilir. Tamsayılar, karakterler ve Boole'lar gibi basit veri türleri asal sayılar olarak görülüyor ve daha karmaşık veri yapıları oluşturmamızı sağlayan çeşitli işlemler göz önünde bulunduruluyor. Veri yapısı ölçüleri daha sonra, çeşitli işlemlerle ilişkili asal sayılar ve değerler açısından hiyerarşik olarak tanımlanabilir.

Globally, kullanıcı tanımlı değişkenlerin toplam sayısı ölçülecektir.

SQA standartlarının geliştirilmesinde birkaç ulusal ve uluslararası standart enstitüsü, profesyonel ve endüstri odaklı kuruluşlar yer almıştır.

Aşağıdaki enstitüler ve kuruluşlar, SQA ve yazılım mühendisliği standartlarının ana geliştiricileridir -

  • IEEE (Elektrik ve Elektronik Mühendisleri Enstitüsü) Bilgisayar Topluluğu
  • ISO (Uluslararası Standardizasyon Örgütü)
  • DOD (ABD Savunma Bakanlığı)
  • ANSI (Amerikan Ulusal Standartlar Enstitüsü)
  • IEC (Uluslararası Elektro Teknik Komisyonu)
  • ÇED (Elektronik Endüstrileri Derneği)

Bu kuruluşlar, yazılım geliştirme ve bakım kuruluşlarında gerçekleştirilen profesyonel ve yönetsel faaliyetlerin kalitesine güncel uluslararası standartlar sağlar.

Ayrıca bağımsız profesyonel kalite denetimleri aracılığıyla SQA sertifikası sağlarlar. Bu dış denetimler, SQA sistemlerinin geliştirilmesinde ve bunların uygulanmasındaki başarıları değerlendirir. Periyodik denetimlerden sonra verilen sertifika ancak bir sonraki denetime kadar geçerli olacaktır ve bu nedenle yenilenmesi gerekmektedir. Şu anda, ISO 9000 Sertifikasyon Hizmeti, Avrupa ve diğer ülkelerde SQA sertifikasyonunun en önde gelen sağlayıcısıdır.

Ayrıca bir kuruluşun SQA sistemi ve işleyişinin öz değerlendirmesi için araçlar sağlarlar. Yazılım Mühendisliği Enstitüsü (SEI), Carnegie Mellon Üniversitesi ve ISO / IEC Std 15504 tarafından geliştirilen Kapasite Olgunluk Modeli (CMM) bu yaklaşımın örnekleridir.

SQA Standartları

Yazılım kalite güvence standartları iki ana sınıfa ayrılabilir -

  • Sertifikasyon ve değerlendirme metodolojileri (kalite yönetim standartları) dahil olmak üzere yazılım kalite güvence yönetim standartları

  • Yazılım proje geliştirme süreci standartları (proje süreç standartları)

Kalite Yönetim Standartları

Bunlar, kuruluşun SQA sistemine, altyapısına ve gereksinimlerine odaklanırken, yöntem ve araç seçimini kuruluşa bırakır. Kalite yönetimi standartları ile kuruluşlar, yazılım ürünlerinin kabul edilebilir bir kalite düzeyine ulaşmasını sürekli olarak temin edebilir.

Example - ISO 9000-3 ve Yetenek Olgunluk Modeli (CMM)

Proje Süreç Standartları

Bunlar, yazılım geliştirme ve bakım projelerinin uygulanmasına yönelik metodolojilere odaklanır. Bu standartlar aşağıdakileri içerir -

  • Atılacak adımlar
  • Tasarım dokümantasyonu gereksinimleri
  • Tasarım belgelerinin içeriği
  • Tasarım incelemeleri ve inceleme sorunları
  • Yazılım testi yapılacak
  • Test konuları

Doğal olarak, özellikleri nedeniyle, bu sınıftaki birçok SQA standardı, yazılım mühendisliği standartları olarak hizmet edebilir ve bunun tersi de geçerlidir.

Bu iki standart sınıfının özellikleri aşağıdaki tabloda özetlenmiştir.

Özellikler Kalite Yönetim Standartları Proje Süreç Standartları
Hedef birim Yazılım geliştirme, bakım ve belirli SQA birimlerinin yönetimi Yazılım geliştirme ve bakım proje ekibi
Esas odak SQA sistemlerinin organizasyonu, altyapısı ve gereksinimleri Yazılım geliştirme ve bakım projelerini yürütmek için metodolojiler
Standardın amacı "Ne" başarılacak "Nasıl performans
Standardın hedefi Tedarikçinin yazılım kalitesini sağlamak ve yazılım süreci yeteneğini değerlendirmek Tedarikçinin yazılım kalitesini güvence altına almak ve yazılım süreci kapasitesini değerlendirmek Belirli bir yazılım projesinin kalitesini sağlamak.
Örnekler ISO 9000-3 SEI'nin CMM'si ISO / IEC 12207 IEEEStd 1012-1998

ISO 9001 Sertifikası

ISO (Uluslararası Standardizasyon Örgütü), ulusal standartlar kuruluşlarının dünya çapında bir federasyonudur. ISO teknik komiteleri Uluslararası Standartları hazırlar. ISO, elektroteknik standardizasyonla ilgili tüm konularda Uluslararası Elektroteknik Komisyon (IEC) ile yakın işbirliği içindedir.

Uluslararası Standartlar, ISO / IEC Direktifleri, Bölüm 2'de verilen kurallara göre hazırlanır. Teknik komiteler tarafından benimsenen Uluslararası Standartların Taslağı, oylama için üye kuruluşlara gönderilir. ISO 9001, Teknik Komite ISO / TC 176, Kalite yönetimi ve kalite güvencesi, Alt Komite SC 2, Kalite sistemleri tarafından hazırlanmıştır.

Süreç Yaklaşımı

Bu Uluslararası Standart, müşteri gereksinimlerini karşılayarak müşteri memnuniyetini artırmak için bir kalite yönetim sistemini geliştirirken, uygularken ve iyileştirirken bir süreç yaklaşımının benimsenmesini teşvik eder. Bir kuruluşun etkili bir şekilde çalışması için, birbiriyle bağlantılı çok sayıda faaliyeti belirlemesi ve yönetmesi gerekir. Kaynakları kullanan ve girdilerin çıktılara dönüştürülmesini sağlamak için yönetilen bir faaliyet veya faaliyetler dizisi bir süreç olarak kabul edilebilir.

Çoğunlukla bir işlemin çıktısı doğrudan bir sonrakinin girdisini oluşturur. Bir organizasyon içinde bir süreçler sisteminin uygulanması, bu süreçlerin tanımlanması ve etkileşimleri ile birlikte ve bunların istenen sonucu üretmek için yönetimi olarak adlandırılabilir.“process approach”.

Süreç yaklaşımının bir avantajı, süreçler sistemi içindeki münferit süreçler arasındaki bağlantı üzerinde ve bunların kombinasyonu ve etkileşimi üzerinde sağladığı sürekli kontroldür. Bir kalite yönetim sistemi içinde kullanıldığında, böyle bir yaklaşım aşağıdakilerin önemini vurgular:

  • Gereksinimleri anlamak ve karşılamak
  • Süreçleri katma değer açısından düşünmek gerekiyor
  • Süreç performansı ve etkinliğinin sonuçlarını elde edin
  • Nesnel ölçüme dayalı süreçlerin sürekli iyileştirilmesi

ISO 9001 - Yazılım Uygulaması: TickIT Girişimi

TickIT, ISO 9001'i TickIT girişimi olarak bilinen yazılım endüstrisinin özelliklerine uyarlamak için bir metodolojinin geliştirilmesini teşvik etmek için İngiltere Ticaret ve Sanayi Bakanlığı ile işbirliği içinde İngiltere yazılım endüstrisi tarafından 1980'lerin sonunda başlatıldı.

TickIT ayrıca bilgi teknolojisi (BT) konusunda uzmanlaşmıştır. Ticari yazılım geliştirme ve bakım hizmetlerinin tamamını kapsar. Şu anda BSI DISC Departmanı (İngiliz Standartları Enstitüsü) tarafından yönetilen ve bakımı yapılan TickIT, İngiltere ve İsveç'teki BT kuruluşlarının sertifikasyonu için akredite edilmiştir.

Faaliyetleri şunları içerir:

  • Yazılım endüstrisinin ISO 9001 sertifikasını yayma çabalarını destekleyen TickIT Kılavuzunun yayınlanması. ISO / IEC 12207 ve ISO / IEC 15504 referanslarını içeren mevcut kılavuz (5.0 sürümü, TickIT, 2001) tüm TickIT müşterilerine dağıtılmaktadır.

  • Yazılım kalite sistemlerinin denetime dayalı değerlendirmelerinin gerçekleştirilmesi ve kuruluşlara yönetimlerinin yanı sıra yazılım geliştirme ve bakım süreçlerinin iyileştirilmesi konusunda danışmanlık.

  • ISO 9000 sertifika denetimlerini gerçekleştirin.

Denetime dayalı değerlendirmeler ve sertifika denetimleri gerçekleştiren TickIT denetçileri, Uluslararası Sertifikalı Denetçiler Sicili (IRCA) tarafından kaydedilir. Kayıtlı IRCA denetçilerinin, diğer şeylerin yanı sıra, yönetim ve yazılım geliştirmede deneyime sahip olması gerekir; ayrıca bir denetçinin kursunu başarıyla tamamlamaları gerekir.

Kayıtlı baş denetçilerin, TickIT denetimlerini yürütme ve yönetme konusunda kanıtlanmış bir deneyime sahip olması gerekir.

Bir yazılım süreci değerlendirmesi, bir organizasyon tarafından kullanılan yazılım süreçlerinin bir süreç modeline dayalı olarak disiplinli bir incelemesidir. Değerlendirme, mevcut uygulamaların tanımlanmasını ve nitelendirilmesini, güçlü ve zayıf yönlerin tanımlanmasını ve mevcut uygulamaların, kötü (yazılım) kalite, maliyet ve programın önemli nedenlerini kontrol etme veya bunlardan kaçınma becerisini içerir.

Bir yazılım değerlendirmesi (veya denetimi) üç tipte olabilir.

  • Bir self-assessment (first-party assessment) bir kuruluşun kendi personeli tarafından dahili olarak gerçekleştirilir.

  • Bir second-party assessment harici bir değerlendirme ekibi tarafından gerçekleştirilir veya organizasyon bir müşteri tarafından değerlendirilir.

  • Bir third-party assessment harici bir tarafça veya (örneğin, bir tedarikçinin bir müşteriyle sözleşmelere girme kabiliyetini doğrulamak için üçüncü bir tarafça değerlendirilen bir tedarikçi) tarafından gerçekleştirilir.

Yazılım süreç değerlendirmeleri, açık ve işbirliğine dayalı bir ortamda gerçekleştirilir. Kuruluşun yazılım süreçlerini iyileştirmek için kullanması içindir ve sonuçlar kuruluş için gizlidir. Değerlendirilen kuruluşun değerlendirme ekibinde üyeleri olmalıdır.

Yazılım Süreci Olgunluk Değerlendirmesi

Bir yazılım süreci değerlendirmesinin kapsamı, organizasyondaki tüm süreçleri, yazılım süreçlerinin seçilen bir alt kümesini veya belirli bir projeyi kapsayabilir. Standart tabanlı süreç değerlendirme yaklaşımlarının çoğu, her zaman süreç olgunluğu kavramına dayanmaktadır.

Değerlendirme hedefi kuruluş olduğunda, bir süreç değerlendirmesinin sonuçları, aynı yöntemin birbirini izleyen uygulamalarında bile farklılık gösterebilir. Farklı sonuçların iki nedeni vardır. Onlar,

  • Araştırılan organizasyon belirlenmelidir. Büyük bir şirket için, çeşitli organizasyon tanımları mümkündür ve bu nedenle, gerçek değerlendirme kapsamı, birbirini izleyen değerlendirmelerde farklılık gösterebilir.

  • Aynı organizasyon gibi görünen şeylerde bile, organizasyonu temsil etmek için seçilen proje örnekleri kapsam ve sonucu etkileyebilir.

Hedef değerlendirme birimi proje düzeyinde olduğunda, değerlendirme projenin başarısına veya başarısızlığına katkıda bulunan tüm anlamlı faktörleri içermelidir. Belirli bir süreç olgunluk modelinin yerleşik boyutları ile sınırlı olmamalıdır. Burada, proje verileriyle doğrulanan uygulama derecesi ve etkinliği değerlendirilir.

Bir kuruluş genel bir uzun vadeli iyileştirme stratejisine girişmek istediğinde süreç olgunluğu alakalı hale gelir. Yazılım proje değerlendirmeleri objektif olması için bağımsız değerlendirmeler olmalıdır.

Yazılım Süreç Değerlendirme Döngüsü

Paulk ve meslektaşlarına (1995) göre, CMM tabanlı değerlendirme yaklaşımı altı adımlı bir döngü kullanır. Onlar -

  • Bir ekip seçin - Ekibin üyeleri, yazılım mühendisliği ve yönetimi konusunda bilgili profesyoneller olmalıdır.

  • Değerlendirilecek saha temsilcileri, standart süreç olgunluk anketini doldururlar.

  • Değerlendirme ekibi, anket yanıtlarının bir analizini gerçekleştirir ve CMM kilit süreç alanlarına göre daha fazla araştırmayı gerektiren alanları belirler.

  • Değerlendirme ekibi, sitenin izlediği yazılım sürecini anlamak için bir saha ziyareti gerçekleştirir.

  • Değerlendirme ekibi, kuruluşun yazılım sürecinin güçlü ve zayıf yönlerini tanımlayan bir bulgu listesi oluşturur.

  • Değerlendirme ekibi bir Anahtar Süreç Alanı (KPA) profil analizi hazırlar ve sonuçları uygun hedef kitleye sunar.

Örneğin, değerlendirme ekibi yetkili bir SEI Baş Değerlendiricisi tarafından yönetilmelidir. Ekip, dört ila on ekip üyesinden oluşmalıdır. En az bir ekip üyesi değerlendirilen organizasyondan olmalıdır ve tüm ekip üyeleri SEI'nin CMM'ye Giriş kursunu (veya eşdeğeri) ve SEI'nin CBA IPI ekip eğitim kursunu tamamlamalıdır. Ekip üyeleri de bazı seçim kurallarına uymalıdır.

Veri toplamayla ilgili olarak, CBA IPI dört yönteme dayanır -

  • Standart olgunluk anketi
  • Bireysel ve grup görüşmeleri
  • Belge incelemeleri
  • Taslak bulguların değerlendirmeye katılanlarla birlikte incelenmesinden geri bildirim

İRİ KARİDES

Süreç İyileştirme için Standart CMMI Değerlendirme Yöntemi (SCAMPI), CMMI model gereksinimlerini karşılamak için geliştirilmiştir (Yazılım Mühendisliği Enstitüsü, 2000). Ayrıca CBA IPI'ye dayanmaktadır. Hem CBA IPI hem de SCAMPI üç aşamadan oluşur -

  • Plan ve hazırlık
  • Değerlendirmeyi yerinde gerçekleştirin
  • Sonuçları bildir

Plan ve hazırlık aşamasındaki faaliyetler şunları içerir:

  • Değerlendirme kapsamını belirleyin
  • Değerlendirme planını geliştirin
  • Değerlendirme ekibini hazırlayın ve eğitin
  • Katılımcıların kısa bir değerlendirmesini yapın
  • CMMI Değerleme Anketini yönetin
  • Anket yanıtlarını inceleyin
  • İlk belge incelemesini gerçekleştirin

Yerinde değerlendirme aşamasına yönelik faaliyetler şunları içerir:

  • Açılış toplantısı düzenleyin
  • Röportajlar yapın
  • Bilgileri birleştirin
  • Taslak bulguların sunumunu hazırlayın
  • Taslak bulguları sunun
  • Nihai bulguları birleştirin, derecelendirin ve hazırlayın

Raporlama sonuçları aşamasının faaliyetleri şunları içerir:

  • Nihai bulguları sunun
  • Bir yönetici oturumu düzenleyin
  • Değerlendirmeyi tamamlayın

Yazılım kalite güvencesi için IEEE tanımı aşağıdaki gibidir -

"Bir öğe veya ürünün yerleşik teknik gereksinimlere uyduğuna dair yeterli güven sağlamak için gerekli tüm eylemlerin planlı ve sistematik bir modeli. Ürünlerin geliştirildiği veya üretildiği süreci değerlendirmek için tasarlanmış bir dizi faaliyet."

SQA Faaliyetlerinin Amaçları

SQA faaliyetlerinin hedefleri aşağıdaki gibidir -

Yazılım geliştirmede (süreç odaklı)

  • Yazılımın işlevsel teknik gereksinimlere uyacağına dair kabul edilebilir bir güven düzeyinin sağlanması.

  • Yazılımın yönetimsel planlamaya ve bütçe gereksinimlerine uyacağına dair kabul edilebilir bir güven düzeyinin sağlanması.

  • Yazılım geliştirme ve SQA faaliyetlerinin iyileştirilmesi ve daha verimli hale getirilmesi için faaliyetlerin başlatılması ve yönetilmesi.

Yazılım bakımında (ürün odaklı)

  • Yazılım bakım faaliyetlerinin işlevsel teknik gereksinimlere uygun olacağına dair kabul edilebilir bir güven düzeyi ile garanti etmek.

  • Yazılım bakım faaliyetlerinin yönetimsel planlamaya ve bütçe gereksinimlerine uygun olacağına dair kabul edilebilir bir güven seviyesi ile garanti etmek.

  • Yazılım bakımı ve SQA faaliyetlerinin verimliliğini iyileştirmek ve artırmak için faaliyetler başlatmak ve yönetmek. Bu, maliyetleri düşürürken işlevsel ve yönetsel gereksinimlere ulaşma olasılığını geliştirmeyi içerir.

Kalite Güvencesi için Organizasyon

Organizasyon yapısı içinde faaliyet gösteren kalite güvence organizasyonel çerçevesi aşağıdaki katılımcıları içerir -

Yöneticiler

  • Üst düzey yönetim yöneticileri, özellikle yazılım kalite güvencesinden doğrudan sorumlu yönetici

  • Yazılım geliştirme ve bakım departmanı yöneticileri

  • Yazılım test departmanı yöneticileri

  • Geliştirme ve bakım projelerinin proje yöneticileri ve ekip liderleri

  • Yazılım test ekiplerinin liderleri

Testçiler

  • Yazılım test ekiplerinin üyeleri

SQA uzmanları ve ilgili uygulayıcılar -

  • SQA mütevellileri
  • SQA komite üyeleri
  • SQA forum üyeleri
  • SQA birimi ekip üyeleri

Sadece yazılım test departmanının yöneticileri ve çalışanları, SQA görevlerinin yerine getirilmesinde tam zamanlı olarak görevlendirilir. Diğerleri, zamanlarının bir kısmını, yönetim işlevlerinin veya profesyonel görevlerinin yerine getirilmesi sırasında ya da başkalarında gönüllü olarak, çoğunlukla bir SQA komitesi, bir SQA forumu veya SQA mütevellileri olarak kalite sorunlarına ayırırlar.

Temel olarak, yazılım geliştirme organizasyonlarında üç seviyeli bir yönetim yapısı mevcuttur -

  • Üst yönetim
  • Departman yönetimi
  • Proje Yönetimi

Yazılım Kalitesinde Üst Yönetim Sorumlulukları

Yazılım Kalitesinin sağlanmasında üst yönetimin sorumlulukları şunlardır:

  • Şirketin yazılım ürünlerinin ve yazılım bakım hizmetlerinin kalitesini sağlamak

  • Müşteri memnuniyetinin yanı sıra ürün ve hizmet kalitesinin önemini her kademedeki çalışanlara iletmek

  • Tatmin edici işleyişi ve müşteri gereksinimlerine tam uyumu sağlayın

  • Kuruluşun SQA sistemi için kalite hedeflerinin oluşturulduğundan ve hedeflerine ulaşıldığından emin olun

  • SQA sistemini organizasyonun müşterileri, rekabeti ve teknolojisi ile ilgili büyük iç ve dış değişikliklere uyarlamak için gerekli değişikliklerin planlanmasını başlatmak ve uygulanmasını denetlemek

  • Kriz durumlarının çözümünü desteklemek ve zararları en aza indirmek için doğrudan müdahale edin

  • SQA sistemlerinin gerektirdiği kaynakların kullanılabilirliğini sağlayın

Sorumluluklarını yerine getirmek için üst yönetim tarafından aşağıdaki adımlar atılabilir -

  • Kuruluşun yazılım kalite politikasını oluşturmak ve güncellemek.

  • Yazılım kalitesi konularından sorumlu olmak üzere SQA Başkan Yardımcısı gibi yöneticilerden birini atamak

  • Yazılım kalitesi sorunları ile ilgili olarak performansın düzenli yönetim incelemelerinin yapılması

Yazılım Kalite Politikası

Kuruluşun yazılım kalitesi politikası aşağıdaki gereksinimleri bildirmelidir -

  • Kuruluşun amaç ve hedeflerine uygunluk

  • Genel yazılım kalite güvence kavramlarına bağlılık

  • Kuruluş tarafından benimsenen kalite standartlarına bağlılık

  • Yazılım kalite güvencesi için yeterli kaynakları tahsis etme taahhüdü

  • Kuruluşun kalitesinin ve üretkenliğinin sürekli iyileştirilmesine bağlılık

Yazılım Kalitesinden Sorumlu Yönetici

Yazılım kalitesi konularından sorumlu yöneticinin sorumlulukları şu şekilde sınıflandırılabilir:

  • Yıllık SQA faaliyetleri programı ve bütçesi hazırlama sorumluluğu

  • SQA sistem geliştirme planlarının hazırlanması sorumluluğu

  • Yıllık SQA düzenli faaliyetler programının ve planlanan SQA geliştirme projelerinin uygulamasının genel kontrolü

  • SQA konularının üst yönetime sunumu ve savunuculuğu

Yıllık SQA Faaliyetleri Programının Hazırlanma Sorumluluğu

Bu, yöneticinin şunları yapmasını gerektirir:

  • Önümüzdeki yıl için sistemin SQA hedeflerini belirleyin

  • Yıllık faaliyetler programı için SQA birimi tarafından hazırlanan teklifleri gözden geçirin ve teklifin SQA sistemi için belirlenen hedefleri yerine getirme potansiyelini doğrulayın

  • Faaliyet programının önümüzdeki yıl için planlanan alt yüklenici hizmetleri ve yazılım satın alımlarının özelliklerine ve kapsamına uygun olup olmadığının belirlenmesi

  • SQA programının uygulanması için planlanan insan gücünün ve diğer kaynakların yeterliliğinin belirlenmesi

  • Yıllık SQA faaliyetleri programının ve bütçesinin son halini onaylayın

SQA Sistem Geliştirme Planlarının Hazırlanması Sorumluluğu

Bu planlar teknolojik değişikliklere olduğu kadar müşteri taleplerine ve rekabete uyarlanabilmelidir. Sorumluluklar şunları içerir:

  • Yakın gelecekte kuruluşun yazılım kalitesini etkilemesi beklenen eğilimlerin gözden geçirilmesi

  • Yeni araçlara ve SQA standartlarına uygun yeni prosedürlerin hazırlanması gibi SQA uyarlamaları için önerileri gözden geçirin

  • Deneyimli yazılım geliştirme ekipleri ve yeni işe alınan ekip üyeleri için eğitim programlarının hazırlanması

  • Eğitim programlarının başarısının yanı sıra yeni araç ve standartların değerlendirilmesine uygun yazılım kalitesi ölçütlerinin geliştirilmesi

  • Planları ve bütçeleri dahil planlanan SQA geliştirme projelerinin son versiyonunun onaylanması

Yıllık SQA Programının Uygulanmasının Genel Kontrolü

Sorumlu yönetici şunlardan sorumludur:

  • Yıllık faaliyet programının genel denetimi

  • SQA adaptasyon projelerinin ilerlemesinin gözden geçirilmesi

  • Ekiplerin hedeflerinin belirlediği kalite kazanımlarını gerçekleştirmek için alınan eylemlerin genel denetimi (periyodik raporlara dayalı olarak)

  • İç kalite denetimlerine dayalı olarak SQA prosedürlerine ve standartlarına uygunluğun incelenmesi

  • Yazılım geliştirme proje programlarına ve bütçelerine uyumun genel takibi

  • Dış ve iç müşterilere kaliteli bakım hizmetlerinin sağlanmasının genel takibi

SQA Konularının Üst Yönetime Sunumu ve Savunuculuğu

Kaliteyi artırmak ve SQA sistemi zorluklarını çözmek için gerektirir -

  • Önerilen yıllık faaliyet programı ve bütçesinin nihai onayına ilişkin sunum

  • İlgili bütçelerle birlikte planlanan SQA adaptasyon projelerinin nihai onayına yönelik sunum

  • Kuruluşun yazılım kalitesine adanmış periyodik yönetim gözden geçirme toplantılarının başlatılması ve liderliği

  • Şiddetli kalite hataları, ciddi profesyonel kadro eksiklikleri nedeniyle projelerin başarılı bir şekilde tamamlanmasına yönelik tehditler, SQA birimindeki yönetimsel krizler gibi özel yazılım kalitesi olaylarına adanmış yönetim düzeyinde tartışmaların başlatılması

SQA için Departman Yönetim Sorumlulukları

Orta yönetimin kalite güvence sorumlulukları şunları içerir:

  • Yazılım kalite yönetim sisteminin yönetimi (kalite sistemi ile ilgili görevler)

  • Belirli bir yöneticinin yetkisi altındaki birimler veya ekipler tarafından gerçekleştirilen proje ve hizmetlerle ilgili görevlerin yönetimi (proje ile ilgili görevler)

Kalite sistemi ile ilgili sorumluluklar

Bunlar, departman düzeyinde gerçekleştirilecek SQA faaliyetlerini içerir -

  • SQA birimi tarafından hazırlanan önerilen programa dayalı olarak, departmanın yıllık SQA faaliyetleri programının ve bütçesinin hazırlanması

  • SQA birimi tarafından hazırlanan önerilen plana dayalı olarak departmanın SQA sistemleri geliştirme planlarının hazırlanması

  • Bölümün yıllık SQA faaliyetleri programının ve geliştirme projelerinin performansının kontrolü

  • Departmanın SQA konularının üst yönetime sunumu

Proje ile ilgili Sorumluluklar

Bunlar, kuruluşun prosedürlerine ve yetki dağılımına göre değişir; genellikle içerirler -

  • CAB, SCM ve SCCA organları dahil olmak üzere departmanın birimlerindeki kalite güvence prosedürlerine uygunluğun kontrolü

  • Sözleşme inceleme sonuçlarının ve teklif onaylarının detaylı takibi

  • Planlanan gözden geçirme faaliyetlerinin birim performansının gözden geçirilmesi; proje belgelerinin onaylanması ve proje aşamasının tamamlanması

  • Yazılım testlerinin ve test sonuçlarının takibi; projenin yazılım ürünlerinin onayı

  • Yazılım geliştirme proje programları ve bütçe sapmalarının ilerlemesinin takibi

  • Program, bütçe ve müşteri ilişkileri zorluklarını çözmede proje yöneticilerine tavsiye ve destek

  • Bakım hizmetleri sunumunun kalitesinin takibi

  • Proje risklerinin ve çözümlerinin detaylı takibi

  • Projenin müşteri şartlarına uygunluğunun ve müşteri memnuniyetinin takibi

  • Büyük yazılım değişiklik siparişlerinin ve proje özelliklerinden önemli sapmaların onaylanması

Yazılım kalitesine ilişkin proje yönetimi sorumlulukları

Çoğu proje yönetimi sorumluluğu prosedürler ve çalışma talimatlarında tanımlanmıştır; proje yöneticisi, tüm ekip üyelerinin söz konusu prosedürlere ve talimatlara uymasını sağlamaktan sorumlu kişidir.

Görevleri arasında, özellikle aşağıdakiler olmak üzere, profesyonel uygulamalı ve yönetsel görevler bulunmaktadır:

  • Professional hands-on tasks

    • Proje ve kalite planlarının hazırlanması ve güncellemeleri

    • Ortak müşteri-tedarikçi komitesine katılım

    • İşe alım, eğitim ve talimat dahil olmak üzere proje ekibi kadrosunun yakından takibi

  • Management tasks

    Proje yöneticileri aşağıdaki gibi takip sorunlarını ele alır:

    • Gözden geçirme faaliyetlerinin gerçekleştirilmesi ve sonrasında yapılan düzeltmeler

    • Yazılım geliştirme ve bakım biriminin performans, entegrasyon ve sistem test faaliyetleri ile düzeltme ve regresyon testleri

    • Kabul testlerinin performansı

    • Uzak müşteri sitelerinde yazılım kurulumu ve yazılım sisteminin müşteri tarafından yürütülmesi

    • Proje ekibi üyelerinin SQA eğitimi ve talimatı

    • Proje faaliyetlerine tahsis edilen programlar ve kaynaklar

    • Müşteri istekleri ve memnuniyeti

    • Değişen proje geliştirme riskleri, çözümlerin uygulanması ve sonuçların kontrolü

SQA biriminin yapısı, kuruluşun türüne ve büyüklüğüne göre değişir. Aşağıdaki şekil, standart bir yapı örneğini ve bir SQA ünitesi altındaki tüm bileşenleri göstermektedir. Bu bölümde, her bir alt birimin rollerini ve sorumluluklarını tartışacağız.

SQA Birimi Başkanı Tarafından Yapılan Görevler

SQA biriminin başkanı, SQA birimi ve alt birimleri tarafından gerçekleştirilen tüm kalite güvence görevlerinden sorumludur. Bu görevler aşağıdaki kategorilerde sınıflandırılabilir -

  • Planlama görevleri
  • Birimin yönetimi
  • SQA mesleki faaliyetleri

Planlama Görevleri

  • Birim için önerilen yıllık faaliyet programı ve bütçesinin hazırlanması

  • Kuruluşun yazılım kalite yönetim sistemini planlamak ve güncellemek

  • Yazılım geliştirme ve bakım departmanları için önerilen yıllık SQA etkinlik programlarının ve SQA sistem geliştirme planlarının hazırlanması

Yönetim Görevleri

  • SQA ekibinin faaliyetlerinin yönetimi

  • SQA faaliyet programının uygulanmasının izlenmesi

  • Ekip üyelerinin, SQA komite üyelerinin ve SQA mütevellilerinin atanması

  • Kuruluş içindeki yazılım kalitesi sorunlarının durumu ve aylık performans raporları gibi özel ve periyodik raporların hazırlanması

SQA Profesyonel Faaliyetleri

  • Proje ortak komitelerine katılım
  • Resmi tasarım incelemelerine katılım
  • Spesifikasyonlardan sapmaların gözden geçirilmesi ve onaylanması
  • Proje yöneticileri ve ekip liderleri ile istişare
  • SQA komitelerine ve forumlarına katılım

Proje Yaşam Döngüsü SQA

Proje yaşam döngüsü alt birimiyle ilgili SQA görevleri iki gruba ayrılabilir -

  • "Saf" yönetimsel takip ve onay görevleri (proje yaşam döngüsü kontrol görevleri)

  • Profesyonel katkıların gerekli olduğu proje ekibi SQA faaliyetlerine "uygulamalı" veya aktif katılım (katılım görevleri)

Proje Yaşam Döngüsü Kontrol Görevleri

  • Geliştirme ve bakım ekibinin SQA prosedürlerine ve çalışma talimatlarına uygunluğunun takibi

  • Yazılım ürünlerinin ilgili prosedürlere göre onaylanması veya önerilmesi

  • Yazılım bakım hizmetlerinin iç ve dış müşterilere teslimatının izlenmesi

  • Müşteri memnuniyetini izlemek ve müşterinin kalite güvence temsilcileriyle iletişimi sürdürmek

Katılım Görevleri

Bu görevler şunları içerir:

  • Sözleşme incelemeleri
  • Proje geliştirme ve kalite planlarının hazırlanması ve güncellenmesi
  • Biçimsel tasarım incelemeleri
  • Taşeronların resmi tasarım incelemeleri
  • Müşteri kabul testleri dahil yazılım testi
  • Taşeronların yazılım ürünlerinin yazılım kabul testleri
  • Yeni yazılım ürünlerinin kurulumu

SQA Altyapı İşlemleri Görevleri

SQA sistemleri, sorunsuz bir şekilde çalışmak için çeşitli altyapı bileşenlerini kullanır, yani -

  • Prosedürler ve çalışma talimatları
  • Kaliteli cihazları destekleme (şablonlar, kontrol listeleri)
  • Personel eğitimi, eğitimi ve sertifikasyonu
  • Önleyici ve düzeltici eylemler
  • Konfigürasyon yönetimi
  • Dokümantasyon kontrolü

Daha spesifik olarak, SQA alt biriminin bu bileşenlerle ilgili görevleri şunları içerir:

  • Prosedürlerin, çalışma talimatlarının, şablonların, kontrol listelerinin ve benzerlerinin güncellenmiş versiyonlarının basılı kopya olarak ve / veya elektronik yollarla dolaşımlarıyla birlikte yayınlanması

  • Yeni ve mevcut personele SQA prosedürlerine, çalışma talimatlarına ve benzer öğelere uyma ve bunların uygulanmasına ilişkin eğitim ve talimatların iletilmesi

  • SQA mütevellilerine, diğer bileşenlerin yanı sıra, yeni ve revize edilmiş prosedürlerin yanı sıra geliştirme araçları ve yöntemleri hakkında talimat verilmesi

  • Yeni ve revize edilmiş SQA prosedürlerinin uygulanmasının izlenmesi ve desteklenmesi

  • Personel sertifikasyon faaliyetlerinin takibi

  • CAB komitelerine katılım dahil olmak üzere önleyici ve düzeltici eylemler gerektiren konuların önerisi

  • CCA komitelerine katılım dahil konfigürasyon yönetimi faaliyetlerinin takibi

  • Dokümantasyon prosedürlerine ve çalışma talimatlarına uygunluğun takibi

SQA İç Denetim ve Sertifikasyon Görevleri

Yazılım kuruluşlarında veya yazılım kuruluşlarında gerçekleştirilen SQA denetim türleri aşağıdaki şekilde sınıflandırılabilir:

  • İç denetimler

  • Alt yüklenici ve tedarikçilerin SQA sistemlerini değerlendirmek için denetimleri

  • Belgelendirme kuruluşları tarafından gerçekleştirilen dış denetimler

  • Organizasyonu tedarikçi olarak kabul etmeden önce SQA sistemini değerlendirmek isteyen müşteriler tarafından gerçekleştirilen dış denetimler

İlk iki denetim sınıfı, SQA alt birimi tarafından başlatılır ve gerçekleştirilir, son ikisi ise dış kuruluşlar tarafından gerçekleştirilir.

SQA birimi, dahili SQA denetimleri için aşağıdaki görevleri gerçekleştirir

  • Dahili SQA denetimleri için yıllık programların hazırlanması

  • Dahili SQA denetimlerinin performansı

  • Denetlenen ekipler ve diğer birimler tarafından yapılacak düzeltme ve iyileştirmelerin takibi

  • İyileştirme tavsiyeleri de dahil olmak üzere denetim bulgularının durumuna ilişkin periyodik özet raporların hazırlanması

SQA birimi, taşeron ve tedarikçilerin denetimleri için aşağıdaki görevleri yerine getirir -

  • Taşeron ve tedarikçilerin SQA denetimleri için yıllık programın hazırlanması

  • Alt yükleniciler ve tedarikçilerin SQA denetimlerinin performansı

  • Denetlenen alt yüklenici ve tedarikçiler tarafından yapılacak düzeltme ve iyileştirmelerin takibi

  • Alt yükleniciler ve tedarikçilerin performansına ilişkin verilerin iç ve dış kaynaklardan toplanması

  • Denetim raporlarına ve diğer iç ve dış kaynaklardan toplanan bilgilere dayalı olarak kuruluşun sertifikalı alt yüklenicilerinin ve tedarikçilerin SQA sistemlerinin periyodik değerlendirmesi. Değerlendirme raporu şunları içerir:

    • Taşeron ve tedarikçilerin sertifikalandırılmasına ilişkin öneriler

    • Belgelendirme kuruluşları tarafından gerçekleştirilen dış denetimler aşağıdaki görevleri içerir:

      • Sertifikasyon denetiminin içeriğinin ve programının koordinasyonu

      • Belgelendirme kuruluşları tarafından belirtilen belgelerin hazırlanması

      • Denetlenen ekiplere talimat verilmesi ve belgelendirme denetimleri için gerekli hazırlıkların yapılması

      • Sertifika denetimlerine katılım

      • Gerekli düzeltmelerin ve iyileştirmelerin yapıldığından emin olun

Kuruluşun müşterileri tarafından gerçekleştirilen SQA denetimleri şu görevleri gerektirir -

  • Denetimin içeriğinin ve programının koordinasyonu

  • Müşterinin denetçisi tarafından belirtilen belgelerin hazırlanması

  • Denetlenen ekiplere talimat verilmesi ve SQA denetimleri için gerekli hazırlıkların kuruluşun müşterileri tarafından yapılması

  • Denetimlere katılım

  • Gerekli düzeltmelerin ve iyileştirmelerin yapıldığından emin olun

SQA Destek Görevleri

SQA destek hizmetlerinin tüketicilerinin çoğu kuruluş içinde yer almaktadır. Proje yöneticileri, ekip liderleri ve SQA mütevellilerini içerir. Görevleri şunları içerir:

  • Proje planlarının ve proje kalite planlarının hazırlanması

  • İnceleme ekiplerinde görevlendirme

  • Tanımlanan yazılım geliştirme risklerini çözmek için önlemlerin seçimi

  • Program gecikmelerini ve bütçe aşımlarını çözmek için önlem seçimi

  • SQA ölçümleri ve yazılım maliyeti bileşenlerinin seçimi

  • SQA bilgi sisteminin kullanımı

  • SQA birimi tarafından biriktirilen arıza deneyimi verilerini yansıtan geliştirme metodolojileri ve araçları seçimi

SQA Standartları ve Prosedürleri Görevleri

SQA alt birimi, hangi SQA standartlarının benimseneceğine karar vermenin yanı sıra kuruluşun prosedürlerinin geliştirilmesi ve sürdürülmesinde yakından ilgilenir. Görevli yükümlülüklerini yerine getirmek için, SQA biriminin şunları yapması gerekir:

  • Yeni prosedürlerin ve prosedür güncellemelerinin geliştirilmesi için yıllık bir program hazırlayın

  • Uygun komitelere ve forumlara katılımla yeni prosedürlerin ve prosedür güncellemelerinin geliştirilmesinden sorumlu olun

  • SQA ve yazılım mühendisliği standartlarındaki gelişmeleri ve değişiklikleri takip etmek; organizasyonla ilgili ek prosedürlerin ve değişikliklerin tanıtılması

  • Kuruluş tarafından uygulanan standartların benimsenmesi veya silinmesi dahil olmak üzere, mesleki standartlardaki değişikliklere yanıt olarak prosedürlerin güncellemelerini ve uyarlamalarını başlatmak

SQA Mühendislik Görevleri

Profesyonel ilerlemelerin takibi, operasyonel zorlukların çözümü ve başarısızlıkların uzman analizi bu SQA alt biriminin acil hedefleridir.

Bu nedenle, ana mühendislik görevleri aşağıdakileri içerir -

  • Yeni geliştirme araçları ve şu anda kullanılan geliştirme araçlarının yeni sürümleri ile ilgili olarak kalite ve üretkenlik yönlerinin test edilmesi

  • Yeni geliştirme ve bakım yöntemlerinin ve yöntem iyileştirmelerinin kalite ve verimliliğinin değerlendirilmesi

  • Halihazırda kullanılan yazılım geliştirme araç ve yöntemlerinin uygulanmasında karşılaşılan zorluklara çözüm geliştirilmesi

  • Yazılım kalitesini ve ekip verimliliğini ölçmek için yöntemlerin geliştirilmesi

  • Yazılım geliştirme hatalarının analizi ve önerilen çözümlerin formülasyonu sırasında CAB komitelerine teknolojik destek sağlanması

SQA Bilgi Sistemleri Görevleri

SQA bilgi sistemleri, SQA sistemlerinin işleyişini kolaylaştırmak ve iyileştirmek içindir. İlgili görevler şunları içerir:

  • Yazılım geliştirme ve bakım birimleri için SQA bilgi sistemlerinin geliştirilmesi

    • aktivite verilerinin toplanması

    • Örneğin periyodik raporların, listelerin, istisna raporlarının ve sorguların işlenmesi

    • Örneğin periyodik raporların, listelerin, istisna raporlarının ve sorguların işlenmesi

  • Yazılım kalite ölçütleri ve yazılım kalitesi maliyetleri tahminleri dahil olmak üzere, SQA biriminin yazılım geliştirme ve bakım birimleri tarafından sağlanan bilgileri işlemesini kolaylaştıran SQA bilgi sistemlerinin geliştirilmesi

  • SQA bilgi sistemlerini güncelleme

  • Kuruluşun SQA İnternet / Intranet sitesinin geliştirilmesi ve bakımı

SQA Mütevellileri ve Görevleri

SQA mütevellileri, öncelikle yazılım kalitesinin geliştirilmesinde yer alan üyelerdir. Bu üyeler, SQA bileşenlerinin başarılı bir şekilde uygulanması için gerekli olan dahili desteği sağlar.

Görevleri kuruluşlara göre değişebilir. Buna göre, birimle ilgili ve / veya organizasyonla ilgili görevler olabilir.

Birimle İlgili Görevler

  • Yazılım kalitesi prosedürlerinin ve iş talimatlarının uygulanması sırasında karşılaşılan zorlukları çözmek için meslektaşları destekleyin

  • İlgili SQA görevlerini yerine getirmede birim yöneticisine yardımcı olun

  • Uyumluluğu teşvik edin ve SQA prosedürlerinin ve çalışma talimatlarının meslektaşlar tarafından uygulanmasını izleyin

  • Önemli ve sistematik uyumsuzluk olaylarını SQA birimine bildirin

  • SQA birimine ciddi yazılım kalitesi hatalarını bildirin

Organizasyonla İlgili Görevler

  • Kuruluş çapında SQA prosedürlerinde ve çalışma talimatlarında değişiklikleri ve güncellemeleri tetikleyin

  • Organizasyondaki geliştirme ve bakım süreçlerinde iyileştirmeleri tetikleyin

  • İlgili birimlerde gözlemlenen tekrarlayan arızaların çözümleriyle ilgili CAB'ye başvuruları başlatmak

  • Kuruluş genelinde SQA eğitim ihtiyaçlarını belirleyin ve SQA birimi tarafından yürütülecek uygun eğitim veya talimat programını önerin

SQA Komiteleri ve Görevleri

SQA komiteleri kalıcı veya geçici olabilir. Görevler organizasyondan organizasyona önemli ölçüde değişebilir.

  • Permanent committees genellikle SCC (Yazılım Değişikliği Kontrolü), CA (Düzeltici Eylemler), prosedürler, yöntem geliştirme araçları ve kalite ölçütleriyle ilgilenir.

  • Ad hoc committees Genellikle, belirli bir prosedürün güncellenmesi, bir yazılım arızasının analizi ve çözümü, hedeflenen bir süreç veya ürün için yazılım ölçütlerinin detaylandırılması, belirli bir sorun için yazılım kalite maliyetlerinin ve veri toplama yöntemlerinin güncellenmesi gibi genel ilgi alanına giren özel durumlarla ilgilenir.

Kalıcı SQA komiteleri, SQA organizasyon çerçevesinin ayrılmaz parçalarıdır; görevleri ve operasyonları genellikle kuruluşun SQA prosedürlerinde tanımlanır.

Yazılım kalitesi konularından sorumlu yönetici tarafından atanan üyeler, SQA Birimi başkanı, SQA alt birimleri, kalıcı SQA komiteleri veya başlatan başka herhangi bir organ ile geçici komiteler sorun başına kısa vadeli olarak kurulur. oluşumu ve işle ilgisi vardır. Bu organ aynı zamanda geçici komitenin görevlerini de tanımlar.