Yazılım kalite standartları. Kalite göstergelerinin seçimi. Spesifikasyonlarda müşterinin gereksinimleri tarafından belirtilen ve nihai ürünün özelliklerine yansıtılan dış kalite

  • 22.06.2019
metodoloji İlgili disiplinler

Yazılım kalitesi- gereksinimlere uygunluk derecesi olarak yazılımın (yazılımın) özelliği. Aynı zamanda, gereksinimler oldukça geniş bir şekilde yorumlanabilir, bu da kavramın bir dizi bağımsız tanımına yol açar. En yaygın olarak kullanılan tanım, kalitenin “içsel özelliklerin gereksinimleri karşılama derecesi” olan ISO 9001'dir.

Kaynak kodu kalitesi

Kodun kalitesi çeşitli kriterlere göre belirlenebilir. Bazıları sadece insan bakış açısından anlamlıdır. Örneğin, program metninin nasıl biçimlendirildiği bilgisayarla tamamen ilgisizdir, ancak sonraki bakım için ciddi önem taşıyabilir. Dile özgü kuralları tanımlayan ve kodun okunabilirliğini geliştirmek için bir dizi kural belirleyen mevcut kodlama standartlarının çoğu, hata ayıklama ve yükseltmeler de dahil olmak üzere gelecekteki yazılım bakımını kolaylaştırmak için tasarlanmıştır. Kodun "iyi" yazılıp yazılmadığını belirleyen, yapısallık - kodun mantıksal olarak bir dizi yönetilebilir bloğa ayrılma derecesi gibi başka kriterler de vardır.

  • Kodun okunabilirliği
  • Destek kolaylığı, test etme, hata ayıklama, hata düzeltme, değiştirme ve taşınabilirlik
  • Düşük kod karmaşıklığı
  • Düşük kaynak kullanımı: bellek ve CPU zamanı
  • İstisnaları Doğru Şekilde İşleme
  • Birkaç derleme ve bağlantı uyarısı

Kod kalitesini iyileştirme yöntemleri: yeniden düzenleme.

kalite faktörleri

Yazılım kalite faktörü, genellikle müşteri ile yapılan sözleşmede açıklanmayan, ancak yine de programın kalitesini artıran arzu edilen bir gereklilik olan program için işlevsel olmayan bir gerekliliktir.

Kalite faktörlerinden bazıları:

Anlaşılabilirlik Yazılımın amacı, programın kendisinden ve belgelerden açıkça anlaşılmalıdır. eksiksizlik Programın tüm gerekli bölümleri sunulmalı ve tam olarak uygulanmalıdır. kısalık Gereksiz, mükerrer bilgi eksikliği. Yinelenen kod parçaları, genel bir prosedür çağrısına dönüştürülmelidir. Aynı şey belgeler için de geçerli. taşınabilirlik Bir programı farklı bir ortama uyarlama kolaylığı: farklı mimari, platform, işletim sistemi veya sürümü. Tutarlılık Program ve dokümantasyon boyunca aynı kurallar, formatlar ve kurallar kullanılmalıdır. Sürdürülebilirlik Yeni gereksinimleri karşılamak için bir programı değiştirmenin ne kadar zor olduğu. Bu gereklilik ayrıca programın iyi bir şekilde belgelenmesi, aşırı kafa karıştırıcı olmaması ve kaynak kullanımında (bellek, işlemci) büyüme için yer olması gerektiğini gösterir. test edilebilirlik Programın performans testi yapılmasına izin verip vermediği, performans ölçüm yeteneğinin desteklenip desteklenmediği. kullanılabilirlik Programın sadeliği ve kullanım kolaylığı. Bu gereksinim öncelikle kullanıcı arabirimi için geçerlidir. güvenilirlik programların çalışmasında arıza ve arızaların olmaması ve ayrıca kusurların ve hataların düzeltilmesi kolaylığı: yapılandırılmışlık verimlilik Programın görevlerini yerine getirirken kaynakları (bellek, işlemci) ne kadar rasyonel olarak ele aldığı. güvenlik

Kullanıcının bakış açısından

Yazılım kalitesine teknik bir bakış açısına ek olarak, kullanıcının bakış açısından bir kalite değerlendirmesi de vardır. "Kullanılabilirlik" terimi bazen kalitenin bu yönü için kullanılır. Belirli bir yazılım ürünü için kullanılabilirlik puanı elde etmek oldukça zordur. Değerlendirmeyi etkileyen konulardan en önemlileri:

  • Kullanıcı arayüzü sezgisel mi?
  • Basit, sık yapılan işlemleri gerçekleştirmek ne kadar kolay?
  • Karmaşık işlemler ne kadar kolay?
  • Program net hata mesajları veriyor mu?
  • Program her zaman beklendiği gibi davranıyor mu?
  • Belgeler mevcut mu ve ne kadar eksiksiz?
  • Kullanıcı arayüzü kendini açıklayıcı mı / kendi kendini belgeliyor mu?
  • Program yanıt gecikmeleri her zaman kabul edilebilir mi?

Ayrıca bakınız

Bağlantılar


Wikimedia Vakfı. 2010.

  • NLit
  • gece yarısı mezarlıkta (film)

Diğer sözlüklerde "Yazılım Kalitesi" nin ne olduğunu görün:

    Yazılım kalitesi- Spesifikasyonun kullanıcının elde etmek istediği özelliklere odaklanması şartıyla, bir yazılım ürününün spesifikasyonunu doğrulama yeteneği. Ayrıca bakınız: Yazılım kalitesi Finansal yazılım ... ... finansal kelime hazinesi

    Yazılım geliştirme- Grace Hopper, Harvard Üniversitesi'nde Harvard Mark II bilgisayarıyla çalışırken, meslektaşları bu köstebeğin röleye takılı kaldığını ve böylece cihazın çalışmasına müdahale ettiğini ve ardından sistemde "hata ayıkladıklarını" kaydetti. .. ... Vikipedi

    Yazılım testi- Yazılım Geliştirme Yazılım Geliştirme Süreç Adımları Analiz Tasarım Programlama Doku ... Wikipedia

    Yazılım üreticisi- Yazılım geliştirme (İngilizce yazılım mühendisliği, yazılım geliştirme), bir tür faaliyettir (meslek) ve yazılımın performansını, kalitesini ve güvenilirliğini yaratmayı ve sürdürmeyi amaçlayan bir süreçtir ... Wikipedia

    yazılım krizi“Yazılım Krizi”, bir zamanlar bilgisayar bilimlerinde bilgisayarların bilgi işlem gücündeki hızlı büyümenin etkilerini ve bunlarla çözülebilecek sorunların karmaşıklığını tanımlamak için kullanılan bir terimdir. Özünde, ... ... Wikipedia

    Yazılım Mühendisliği- Yeni Airbus A 380, uçakta modern bir kokpit oluşturmak için oldukça fazla yazılım kullanıyor. Yazılım mühendisliği yöntemi, milyonlarca satırda açıklanan uçak yazılımının oluşturulmasına izin verdi ... Wikipedia

    Yazılım hareketliliği- yazılımın farklı donanım platformlarında veya farklı işletim sistemleri altında çalışabilme yeteneği. Eşanlamlılar: Yazılım Taşınabilirliği Ayrıca bkz.: Yazılım Kalitesinde Açık Sistemler ... ... finansal kelime hazinesi

    Yazılımın rahatlığı- yazılım ürününün, kullanıcıların ilk verileri hazırlama, yazılım ürününü kullanma ve elde edilen sonuçları değerlendirme çabalarını en aza indirmeye ve ayrıca olumlu duygular uyandırmasına izin veren yazılım ürününün özellikleri ... ... finansal kelime hazinesi

    Yazılım bakımı- yazılım ürününün, üzerinde değişiklik yapma çabalarını en aza indirmeye izin veren özellikleri: hataları ortadan kaldırmak; veya kullanıcıların değişen ihtiyaçlarına göre değişiklik için. Ayrıca bakınız: Yazılım kalitesi ... ... finansal kelime hazinesi

    Yazılım işlevselliği- bir yazılım ürününün bir dizi işlevi yerine getirme yeteneği: harici açıklamasında tanımlanır; ve belirtilen veya ima edilen kullanıcı ihtiyaçlarını karşılama. Eşanlamlılar: Yazılım birlikte çalışabilirliği Ayrıca bkz.: Kalite ... ... finansal kelime hazinesi

Kitabın

  • Code Perfect: A Practical Guide to Software Development, McConnell S .. 10 yıldan fazla bir süredir bu kitabın ilk baskısı, programlamada en iyi uygulama kılavuzlarından biri olarak kabul ediliyor. Şimdi bu kitap, mevcut trendler ve teknolojiler dikkate alınarak tamamen güncellendi ...

Modern yazılım komplekslerinin karmaşıklığındaki ve boyutundaki hızlı artış ile gerçekleştirilen işlevlerin sorumluluğundaki eşzamanlı artış, müşterilerin ve kullanıcıların kalite ve kullanım güvenliği konusundaki gereksinimlerini keskin bir şekilde artırdı. Programların ve yazılım sistemlerinin işleyişinin yüksek verimliliğini ve kalitesini sağlamanın kanıtlanmış bir yolu, sektörün önde gelen şirketlerinin temsilcilerinin katılımıyla geliştirilen uluslararası standartlardır.

Bilgi sistemlerinin kullanımı ve karmaşıklığı genişledikçe, hataların veya yetersiz program veya veri kalitesinin, kullanımlarının olumlu etkisini çok aşan zararlara yol açabileceği alanlar ortaya çıkmıştır.

Çoğu durumda, bilgi sistemleri için karmaşık yazılım araçları ve veritabanlarının oluşturulmasına yönelik sözleşmeler ve ön planlar, müşterilerin ve geliştiricilerin bilgi sistemlerinin gerekli işlevleri ve kalite özellikleri hakkındaki resmi olmayan fikirlerine dayalı olarak vasıfsız bir şekilde hazırlanır ve değerlendirilir. Gerekli kalite göstergelerini belirlemede, emek yoğunluğunu, yazılım geliştirme maliyetini ve süresini değerlendirmede önemli sistem hataları oldukça yaygın bir olgudur. Birçok bilgi sistemi, garantili kalite ile gerekli fonksiyonel görevleri tam olarak yerine getiremez ve gerekli kalite ve operasyon güvenilirliğini elde etmek için uzun süre ve bazen başarısız bir şekilde değiştirilmeleri gerekir, ek büyük fonlar ve zaman harcarlar. Sonuç olarak, bilgi sistemleri projeleri genellikle başlangıçtaki, beyan edilen amaç ve kalite özellikleri gereksinimlerine uymaz, geliştirme programlarına ve bütçeye uymaz.

Bilgi sistemlerinin referans ve uygulanan projeleri açısından, bir yazılım ürününün kalitesinin kavramları ve değerleri, hangi özellikleri tanımladıkları, nasıl ölçülmeleri ve sözleşmede yansıtılan gereksinimlerle karşılaştırılması gerektiği, referans şartları hakkında bilgi veya spesifikasyonlar genellikle sessiz bırakılır veya yeterince resmileştirilmez. Ek olarak, yazılım gereksinimlerinden bazı özellikler genellikle eksiktir ve bu da keyfi muhasebeleştirmeye veya testte ihmale neden olur. Yazılımların kalite özellikleri ile ilgili kavramların ve istenen değerlerin belgelerde muğlak beyanı, aynı özelliklerin farklı yorumlanması nedeniyle müşteriler-kullanıcılar ve geliştiriciler-tedarikçiler arasında çatışmalara neden olmaktadır. Bu bağlamda, modern bilgi sistemlerinin yaşam döngüsünde gerekli yazılım ve veritabanlarının kalitesini sağlamak stratejik bir görev haline gelmiştir.

Son birkaç yılda, yazılım araçlarının ve veritabanlarının yaşam döngüsünün süreçlerini ve ürünlerini düzenleyen birçok uluslararası standart oluşturulmuştur. Bu standartların uygulanması, yazılım kalite güvence sistemlerinin temeli olarak hizmet edebilir, ancak bu tür ürünlerin teknolojilerinin temel özellikleri ve özellikleri ile ilgili olarak standartların bazı hükümlerini ayarlamak, uyarlamak veya hariç tutmak gerekir. Aynı zamanda, birçok müşteri tasarım teknolojisinin, üretimin ve ürün kalitesinin, ürünlerin dünya pazarında rekabet gücünü sağlamak için hakim olunması ve uygulanması gereken modern uluslararası standartlara uygun olmasını talep etmektedir.

Kalite özelliklerinin standardizasyonu

Yazılım kalite güvencesinin en önemli sorunlarından biri, kalite özelliklerinin resmileştirilmesi ve bunların değerlendirilmesi için metodolojidir. İşlevsellik kalitesinin yeterliliğini, etkileşim, iyileştirme ve geliştirme için yazılımın teknik yeteneklerinin mevcudiyetini belirlemek için, kalitelerinin özelliklerini değerlendirme alanında standartların kullanılması gerekir. Uluslararası standart ISO 9126: 1991 (GOST R ISO / IEC 9126-93) "Bilgi teknolojisi. Yazılım ürününün değerlendirilmesi. Uygulamaları için kalite özellikleri ve yönergeler", daha önce yazılım kalite göstergelerini düzenlemenin temeliydi. Dört bölümden oluşan ISO 9126-1-4 standardının son taslağı, 1991 yılındaki küçük revizyonun yerini almak üzere son halini almakta ve resmileştirilmektedir. Proje, "Bilgi teknolojisi - yazılım kalitesinin özellikleri ve ölçütleri" genel başlığı altında şu bölümlerden oluşmaktadır: "Bölüm 1. Kalitenin özellikleri ve alt özellikleri" Bölüm 2. Dış kalite ölçütleri "" Bölüm 3. İç kalite ölçütleri "" Bölüm 4. Kullanımdaki kalite ölçütleri".

Rusya'da, karmaşık yazılım komplekslerinin yaşam döngüsünü ve kalitesini sağlama alanında, esas olarak dünya seviyesinin 5-10 yıl gerisinde olan bir grup eski GOST kullanılmaktadır.

Standardın ilk bölümü olan ISO 9126-1, yazılım kalite özelliklerini standardın geri kalanında kullanılan altı karakteristikte sınıflandırır. Temel ölçüm olasılıklarına bağlı olarak, tüm özellikler, farklı metrik kategorilerinin uygulanabileceği üç grupta birleştirilebilir:

  • kategorik veya tanımlayıcı (nominal) metriklere göre, yazılımın işlevselliği en yeterlidir;
  • Karmaşık yazılım paketlerinin güvenilirliğini ve verimliliğini ölçmek için nicel ölçütler uygulanabilir;
  • niteliksel metrikler, yazılım araçlarının kullanılabilirliği, sürdürülebilirliği ve taşınabilirliği ile en tutarlı olanıdır.

ISO 9126-1'in bölümü, yazılımın her bir özelliği ve ayrıca alt kalite özellikleri için geri kalan bölümlerinden açıklamalar içeren tanımlar sağlar.

Son birkaç yılda, yazılım ürünleri için kalite güvence sistemleri için temel teşkil edebilecek yazılım araçları ve veritabanlarının yaşam döngüsünün süreçlerini ve ürünlerini düzenleyen birçok ISO standardı oluşturulmuştur.

Standardın ikinci ve üçüncü bölümleri - ISO 9126-2 ve ISO 9126-3 - karmaşık yazılım araçlarının kalite özelliklerinin sırasıyla dış ve iç metriklerinin resmileştirilmesine ayrılmıştır. Tüm tablolar, metriğin adını ve amacını yansıtan birleşik bir başlık içerir; uygulama yöntemi; ölçüm yöntemi, metrik ölçeğin türü; ölçülen değerin türü; ölçüm ve karşılaştırma için ham veriler; metriğin geçerli olduğu yazılım yaşam döngüsünün (ISO 12207'ye göre) aşamalarının yanı sıra.

Standardın dördüncü bölümü olan ISO 9126-4, alıcılar, tedarikçiler, geliştiriciler, bakımcılar, kullanıcılar ve yazılım kalite yöneticilerine yöneliktir. Yazılım araçlarının kullanımının küresinin (bağlamının) vurgulanan göstergelerini ve kullanıcılar için bir grup seçilmiş metrikleri doğrular ve yorumlar.

Kalite göstergelerinin seçimi

Çoğu durumda kalite göstergelerinin seçimindeki ilk veriler ve en yüksek öncelik, ilgili yazılım aracının amacı, işlevi ve işlevselliğidir. Bu özelliklerin yeterince eksiksiz ve doğru bir açıklaması, diğer özelliklerin ve kalite özelliklerinin çoğunun değerlerini belirlemek için temel teşkil etmelidir. Kalite özelliklerinin niteliklerinin değerlerinin ölçülmesinin temel ve teknik yetenekleri ve doğruluğu her zaman içeriklerine göre sınırlıdır. Bu, sağduyuya dayalı olarak seçilebilecek her bir özellik için rasyonel değer aralıklarının yanı sıra gerçek projelerin gereksinim özelliklerindeki kullanım durumlarını analiz ederek tanımlar.

Yazılımın kalite özelliklerini tanımlamak için metriklerin ve ölçeklerin seçimi ve oluşturulması iki aşamaya ayrılabilir:

  • her biri yazılım paketinin kalitesinin belirli özelliklerini etkileyen bir yazılım projesinin ve tüketicilerinin yaşam döngüsünün genel özelliklerini ve aşamalarını yansıtan bir dizi ilk verinin seçimi ve gerekçesi;
  • yazılım yaşam döngüsünün belirli aşamalarında yeterlilik testi veya sertifikasyon sürecindeki özelliklerin gereksinimleriyle karşılaştırma ve sonraki değerlendirmeler için proje kalitesinin özelliklerini ve niteliklerini ölçmek için belirli ölçü ve ölçeklerin seçimi, oluşturulması ve onaylanması.

İlk aşamada, ISO 9126'da standartlaştırılmış tüm temel özellikler, alt özellikler ve nitelikler temel alınmalı, belirli bir yazılım projesinin amacı ve kapsamı dikkate alınarak açıklamalarının önceliğe göre önceden sipariş edilmesi arzu edilir. . Ayrıca, bir yazılım projesinin kalitesinin belirli göstergelerine ihtiyaç duyan tüketicilerin uzmanlıklarını ve profesyonel ilgi alanlarını dikkate alarak önceliklerini belirlemek ve sıralamak gerekir. İlk verilerin hazırlanması, yazılımın belirli tüketiciler için işlevsel uygunluğunu belirleyen temel, öncelikli kalite göstergelerinin isimlendirilmesinin seçilmesiyle sona erer.

İkinci aşamada, kalite değerlendirmelerinin tüketicisi tarafından gerçekleştirilmesi gereken ilk verileri düzelttikten sonra, belirli bir proje ve tüketicileri için isimlendirme ve metrikleri seçme süreçleri, özelliklerin ve alt özelliklerin sıralanmasıyla başlar. Ayrıca, seçilen göstergelerin her biri için bu uzmanlar, proje ve analiz sonuçlarının tüketicisi için alt özellikleri ve bunların niteliklerini değerlendirmek için bir ölçü ve ölçek oluşturmalı ve üzerinde anlaşmaya varmalıdır. Nitel özelliklerle temsil edilen göstergeler için, bu özelliğin bir yazılım aracında uygulandığının dikkate alınması gereken koşulların spesifikasyon tanımlarında tanımlanması ve düzeltilmesi arzu edilir. Kalite özelliklerinin ve niteliklerinin seçilen değerleri, belirli bir projenin mevcut kaynakları dikkate alınarak geliştiriciler tarafından fizibilite açısından önceden kontrol edilmeli ve gerekirse ayarlanmalıdır.

Kalite kontrol

Altı bölümden oluşan uluslararası standart ISO 14598, yaşam döngüsünün çeşitli aşamalarında bitmiş yazılımın ve bileşenlerinin (yazılım ürünü) kalite özelliklerini değerlendirme metodolojisi ve standardizasyonuna ayrılmıştır. Program kalite özelliklerinin değerlendirilmesine yönelik süreçlerin aşağıdaki genel taslağı önerilir:

  • değerlendirme için ilk gereksinimlerin belirlenmesi - test hedeflerinin belirlenmesi, yazılım metriklerinin türünün belirlenmesi, yeterli göstergelerin ve gerekli kalite nitelikleri değerlerinin vurgulanması;
  • kalite ölçütlerinin seçimi, alt karakteristiklerin ve niteliklerin ölçütlerinin derecelendirme ve öncelik düzeylerinin oluşturulması, inceleme ve ölçümlerin yapılması için ölçütlerin seçimi;
  • bir yazılım aracının yaşam döngüsündeki özellikleri ve kalite niteliklerini değerlendirmek için planlama ve tasarım süreçleri;
  • değerlendirme için ölçümler yapmak, sonuçları kriterler ve gereksinimlerle karşılaştırmak, sonuçları özetlemek ve değerlendirmek.

Her kalite özelliği için, gerekli, izin verilen ve yetersiz değerleri vurgulayan bir ölçü ve bir ölçüm ölçeği oluşturulması önerilir. Değerlendirme süreçlerinin uygulanması, ISO 12207'nin uygulanabilir, uyarlanmış versiyonuna uygun olarak belirli yazılım projesinin yaşam döngüsü aşamaları ile ilişkilendirilmelidir.

Fonksiyonel uygunluk- bir yazılım aracının alt karakteristiğinin değerlendirilmesi en belirsiz ve nesnel olarak zor olanıdır. Program komplekslerinin uygulama alanları, isimlendirmeleri ve işlevleri, insan faaliyetinin o kadar çeşitli alanlarını kapsar ki, çeşitli program komplekslerinde bu alt karakteristiği değerlendirmek ve karşılaştırmak için az sayıda özelliği ayırmak ve birleştirmek imkansızdır.

Yazılım doğruluğunun değerlendirilmesi Uygulanan programların kompleksinin sözleşmenin ilk gereksinimlerine, teknik göreve ve yazılım aracı ve bileşenlerine ilişkin spesifikasyonlara uygunluk derecesinin resmi olarak belirlenmesinden oluşur. Doğrulama, modüllere ve program metinlerine ve veri açıklamalarına kadar program kompleksinin bileşenleri için tüm setin ilk gereksinimlerine uygunluğunu belirlemelidir.

Birlikte çalışabilirliğin değerlendirilmesi Yazılım bileşenlerinin ve veritabanlarının, çeşitli bilgi işlem platformlarındaki diğer uygulama sistemleri ve bileşenleri ile ortak çalışmasının kalitesinin yanı sıra, benzer işlevlere sahip bir bilgisayar sisteminden diğerine geçmek için uygun bir tarzda kullanıcılarla etkileşimin belirlenmesinden oluşur.

Yazılım güvenliğinin değerlendirilmesi Yazılımın olası tehditlerden korunması için mevcut yöntem ve araçların kullanımının eksiksizliğinin ve aynı zamanda bilgi sisteminin işleyişinde sağlanan güvenliğin belirlenmesini içerir. Bilgi sistemlerinin entegre korumasını değerlendirmek için en yaygın ve ayrıntılı metodolojik ve sistemik görevler, ISO 15408: 1999-1-3 standardı "Güvenliği sağlama yöntemleri ve araçları" üç bölümde belirtilmiştir. Bilgi teknolojilerinin güvenliğini değerlendirme kriterleri "

Güvenilirlik değerlendirmesi- kullanımdaki alt karakteristik niteliklerin nicel ölçütlerinin ölçümü: eksiksizlik, kusur direnci, geri kazanılabilirlik ve kullanılabilirlik / kullanılabilirlik.

Bellek kaynakları ve performans gereksinimleri problem çözme sürecinde bilgisayar, ilk verilerin bileşimine ve hacmine bağlı olarak önemli ölçüde değişir. Bu yazılım aracıyla bir bilgi sisteminin maksimum verimini doğru bir şekilde belirlemek için, işlevsel program gruplarının yürütme sürelerinin ve bunlara ulaşıldığı yolların aşırı ve ortalama değerlerini ölçmek gerekir. Bilgisayarın performansı tasarım sürecinde daha önce değerlendirilmediyse, büyük olasılıkla büyük bir revizyon veya bilgisayarın daha hızlı bir bilgisayarla değiştirilmesi gerekecektir.

pratiklik değerlendirmesi yazılım araçlarının tanımı uzmanlar tarafından yapılır ve yazılım aracının anlaşılırlık, kullanım kolaylığı, öğrenilebilirlik ve çekicilik tanımlarını içerir. Temel olarak, bu niteliksel (ve öznel) bir değerlendirmedir, ancak bazı nitelikler, yazılımı kullanırken işlemlerin karmaşıklığı ve süresi ile ve ayrıca bunları incelemek için gereken dokümantasyon miktarı ile nicel olarak değerlendirilebilir.

Bakım onarım Yazılım aracının ve bileşenlerinin durumları, beklenen ve gerçekleştirilen tüm değişiklikler hakkındaki belgelerin eksiksizliği ve güvenilirliği ile değerlendirilebilir, bu da herhangi bir zamanda yazılım sürümlerinin mevcut durumunu ve gelişim tarihlerini belirlemeyi mümkün kılar. Program ve veri belgelerinin oluşturulması, değiştirilmesi ve kullanılması için strateji, standartlar, prosedürler, kaynak tahsisi ve planları tanımlamalıdır.

Hareketlilik değerlendirmesi- Uyarlanabilirlik, kurulum kolaylığı, programların uyumluluğu ve değiştirilebilirliği konusunda uzmanlar tarafından noktalarla ifade edilen niteliksel tanım. Nicel olarak, yazılım aracının bu özelliği ve bir dizi özellik ekonomik göstergeler açısından değerlendirilebilir (ve uygun bir şekilde): maliyet, emek yoğunluğu ve belirli bir program ve veri setini diğer platformlara aktarmak için prosedürlerin uygulanma süresi .

Kalite yönetim sistemi

Yazılımların özelliklerinin seçilmesi ve kalitesinin değerlendirilmesi, yazılım firmaları tarafından üretilen ürünlerin kalitesinin sağlanması alanındaki görevlerden yalnızca biridir. Yazılım kalitesini sağlama sorunlarına kapsamlı bir çözüm, bir veya daha fazla kalite yönetim sisteminin geliştirilmesi ve uygulanması anlamına gelir. Dünya uygulamasında, en yaygın sistem, standart düzenleyici yazılım kalite güvencesi (ISO 9000/3) dahil olmak üzere bir düzineden fazla belgeyi içeren ISO 9000 serisinin uluslararası standartlarına dayanmaktadır. Bu standartlar, özel yazılım şirketlerinde önde gelen profesyoneller için bir kılavuz olarak hizmet etmeyi amaçlamaktadır.

Kalitenin karakteristik tanımları ve alt karakteristikleri (ISO 9126-1)

işlevsellik- bir yazılım aracının, belirli koşullar altında bir karmaşık program kullanırken müşterilerin ve kullanıcıların formüle edilmiş ihtiyaçlarını karşılayan sorunlara çözüm sağlama yeteneği.

Fonksiyonel uygunluk- Müşterinin veya potansiyel kullanıcının gereksinimlerinin teknik görevine ve özelliklerine karşılık gelen, yazılımın amacını, isimlendirmesini, temel, gerekli ve yeterli işlevlerini belirleyen bir alt karakteristiğin ve niteliklerinin bir kümesi ve açıklamaları.

Doğruluk (doğruluk)- yazılımın, kullanıcı için doğru veya kabul edilebilir sonuçlar ve dışsallıklar sağlama yeteneği.

birlikte çalışabilirlik- yazılım araçlarının ve bileşenlerinin, iç ve dış ortamın bir veya daha fazla bileşeniyle etkileşime girme özelliği.

Güvenlik- yazılım bileşenlerinin programları ve bilgileri herhangi bir olumsuz etkiden koruma yeteneği.

Yazılım geliştirme metodolojisi

Elektronik el kitabı Karpovich E.E.

Tanıtım. 1

1. Endüstriyel bir ürün olarak yazılım. 2

1.1 Temel kavramlar. 2

1.2. Yazılım kalite özellikleri. 3

2. Yazılım yaşam döngüsü. 5

2.1. Yazılım yaşam döngüsü kavramı. 5

2.2. Yazılım yaşam döngüsü süreçleri. 6

2.3. Yazılım yaşam döngüsü modelleri. on bir

2.4. Yazılım tasarım stratejileri. 15

3. Yazılım geliştirme metodolojileri. 19

3.1 Yazılım geliştirmeye yapılandırılmış bir yaklaşım. 19

3.2 Modüler programlama. 22

3.3. Yazılım geliştirmeye nesne yönelimli bir yaklaşım. 31

3.3. Görsel programlama metodolojisi. 33

4. Yazılım testi. 34

4.1. Genel Hükümler. 34

4.2. Hedefler ve hedefler. Temel tanımlar. 34

4.3. Yazılım test sürecinin organizasyonu 35

4.4. Yazılım test stratejileri. 36

4.5. Yazılım test seviyeleri. 38

5. Belgeleme yazılımı. 39

5.1. Genel Hükümler. 39

5.2. Test programı ve metodolojisi. 39

5.3. Programın açıklaması .. 40

5.4. Açıklayıcı not. 41

5.5. Program metni .. 42

5.6. Uygulamanın açıklaması. 42

5.7. Sistem Programcısı Kılavuzu. 42

5.8. Programcı kılavuzu. 43

5.9. Kullanım klavuzu. 43

Edebiyat. 44

Tanıtım

Bilgisayar sistemlerinin (CS) yazılımları (yazılımları) giderek daha önemli, karmaşık ve tehlikeli hale geliyor ve onu geliştirmek giderek zorlaşıyor, ancak aynı zamanda yazılım giderek daha basit, daha küçük, yönetimi daha kolay ve geliştirmesi daha kolay hale geliyor.

Bir yandan, işletim sistemlerinin, donanımın ve kullanıcı arayüzünün iyileştirilmesi ve karmaşıklaşması ve başta ağ olmak üzere modern bilgi teknolojilerinin tanıtılması ihtiyacı ile ilişkili olarak yazılım gereksinimleri artmaktadır. Sonuç olarak, programların iç yapısı giderek daha karmaşık hale gelmekte ve güvenilirlikleri için gereksinimler artmaktadır.



Öte yandan, yazılım geliştirmedeki deneyim birikiyor ve genelleşiyor, yazılım geliştirmenin tüm aşamalarını destekleyen daha esnek ve güçlü metodolojiler ve araçlar ortaya çıkıyor. Görsel programlama metodolojisi geliştirilmekte ve programlama dilleri iyileştirilmektedir. Donanımdaki iyileştirmeler derleme işlemlerini hızlandırır ve ayrıca yazdığınız programların verimliliği konusunda sık sık endişelenmenize de izin vermez.

"Yazılım geliştirme metodolojisi" disiplininin amacı, öğrencilere yazılım tasarımının temel ilkelerini öğretmek, kavramları, geliştirme metodolojilerini, yazılımı test etme ve belgelemeyi öğretmektir.

Endüstriyel bir ürün olarak yazılım

Temel konseptler

Bilgi işlem sistemleri için yedi tür yazılımı ayırt etmek gelenekseldir:

· Matematiksel;

· Dilbilimsel;

· Bilgilendirici;

· Yazılım;

· Teknik;

· Metodik;

· Organizasyonel.

Her tür yazılım arasında yazılım (yazılım) özel bir yere sahiptir, çünkü bir uçağın donatılması ve işletilmesi maliyetinin ana payı yazılıma düşer. Program, yazılım paketi, yazılım sistemi, yazılım ürünü ve yazılım gibi temel kavramları tanımlayalım.

Altında program anlayacağız:

1) işlemciler tarafından yürütülmeye uygun bir dizi kod ve veri (yürütülebilir program);

2) yerel bir sorunu çözmek için tasarlanmış nispeten küçük boyutlu bağımsız bir bileşen (sistemin bir bileşeni olarak bir program).

Yazılım paketi veya yazılım sistemi Karmaşık bir sorunu veya birbiriyle ilişkili bir dizi sorunu çözmek için tasarlanmış, ortak kontrol altında sürekli çalışan programların bir koleksiyonudur.

Tamamen satışa (teslimat) hazır ve gerekli tüm belgelerle birlikte verilen test edilmiş bir yazılım paketine denir. yazılım ürünleri (ürün) veya yazılım.

Yazılım- bu terimin kullanım bağlamına bağlı olarak toplu veya ayrı ayrı programlar, yazılım sistemleri veya ürünler olarak anlaşılan en genel kavram.

Yazılım ürünlerini geleneksel olarak küçük, orta ve büyük olarak ayıracağız. Küçük programların kaynak metninin hacmi, üst düzey dilin birkaç yüz operatörü, orta - on binlere kadar ve büyük - bir milyona kadar.

Çoğu durumda, belirli araştırma problemlerini çözmek, hesaplamaları, süreç modellemeyi vb. hızlandırmak için programlar tek bir kopya halinde oluşturulur. Bu tür programlar yaygın olarak kullanılmaz ve yalnızca onları geliştirenlere açıktır. Bilimsel ve teknik yaratıcılığın nesneleridir ve yalnızca istisnai durumlarda endüstriyel ürünler haline gelirler.

Tamamen farklı bir program sınıfı, artık endüstriyel ve teknik amaçlı ürünler olarak kabul edilen tam teşekküllü yazılım araçlarıdır. Bu sıfatla, yazılım ürünleri doğrudan bir üretici güçtür ve diğer hiçbir endüstriyel üründen farklı değildir.

İyi bir yazılım ürünü oluşturmak, çözümü bir kural olarak bir kişinin gücünün ötesinde olan çok zahmetli bir iştir. Yalnız programcılar (“hackerlar”), önemli bir ün kazanırken, önemsiz olmayan sorunları hızlı bir şekilde algoritmikleştirme ve kodlama, yeni yöntemler ve programlama fikirleri yaratma konusunda dahiyane bir yeteneğe sahip olabilirler. Ancak, orta ve büyük ölçekli yazılım ürünleri geliştirmenin tüm karmaşık problemlerini tek başına kabul edilebilir bir zaman çerçevesinde çözemezler.

Bu nedenle, şu anda, herhangi bir önemli ürün, programcı ekipleri tarafından yaratılmaktadır. Bu tür ekiplerde, programcı-geliştiricide okuryazarlık, disiplin, güvenilirlik ve iletişim becerileri gibi niteliklere değer verilir. Okuryazarlık, yazılım geliştirme için gelişmiş yöntemler ve araçlar, bunların amaçları ve özellikleri hakkında bilgi ve anlayış ile bu bilgiyi pratikte uygulama yeteneği olarak anlaşılır.

Yazılım kalite özellikleri

Kullanıcı için tatmin edici yazılımın kalitesini oluşturan yazılımın özellikleri seti, bu yazılımın çalışmasının koşullarına ve doğasına bağlıdır, yani. Bu yazılımın kalitesinin dikkate alınması gereken konumdan. Bu nedenle yazılımın kalitesi tanımlanırken öncelikle gerekli yazılım özelliklerinin seçilmesine yönelik kriterler belirlenmelidir. Şu anda yazılım kalite kriterleri(yazılım kalitesi kriterleri) şu şekilde kabul edilir:

işlevsellik;

Güvenilirlik;

Kullanım kolaylığı;

Yeterlik;

Bakım onarım;

Hareketlilik.

İşlevsellik, yazılımın belirtilen veya ima edilen kullanıcı ihtiyaçlarını karşılayan bir dizi işlevi yerine getirme yeteneğidir. Bu işlevlerin kümesi, harici yazılım açıklamasında tanımlanmıştır.

Yazılımın güvenilirliği (güvenilirliği), belirli bir süre için belirli koşullar altında belirli işlevleri oldukça yüksek bir olasılıkla güvenilir bir şekilde yerine getirme yeteneğidir. Aynı zamanda, bir yazılım reddi, içindeki bir hatanın tezahürü olarak anlaşılır. Bu nedenle, güvenilir yazılım, içindeki hataların varlığını dışlamaz - yalnızca bu yazılımın belirli koşullar altında pratik uygulamasında bu hataların oldukça nadir görünmesi önemlidir. Yazılımı test ederek test ederken, pratik uygulamada da yazılımın bu özelliğe sahip olduğundan emin olabilirsiniz. Böylece aslında doğru değil, sadece güvenilir yazılımlar geliştirebiliriz.

Yazılım güvenilirliğinin derecesi değerlendirilirken, her bir başarısızlığın sonuçları da dikkate alınmalıdır. Yazılımdaki bazı hatalar, kullanımında yalnızca bazı rahatsızlıklara neden olabilirken, diğer hatalar örneğin insan hayatını tehdit etmek gibi feci sonuçlar doğurabilir. Bu nedenle, yazılımın güvenilirliğini değerlendirmek için bazen her arızanın kullanıcı için maliyetini (zararını) hesaba katan ek göstergeler kullanılır.

Kullanım kolaylığı, kullanıcının ilk verileri hazırlama, yazılımı kullanma ve elde edilen sonuçları değerlendirme çabalarını en aza indiren ve belirli veya ima edilen bir kullanıcı için olumlu duygular yaratan bir yazılım özelliğidir.

Verimlilik, belirli koşullar altında yazılımın kullanıcıya sunduğu hizmetlerin düzeyinin kullanılan kaynak miktarına oranıdır.

Sürdürülebilirlik, hataları düzeltmek ve değişen kullanıcı ihtiyaçlarını karşılamak için değiştirmek için değişiklik yapma çabasını en aza indiren yazılımın özellikleridir.

Mobilite, yazılımın bir ortamdan (ortamdan) diğerine, özellikle bir bilgisayardan diğerine aktarılabilmesi yeteneğidir.

İşlevsellik ve güvenilirlik zorunlu kalite kriterleridir Yazılım ve güvenilirliğin sağlanması, yazılım geliştirmenin tüm aşamaları ve süreçleri boyunca kırmızı bir iplik olacaktır. Kriterlerin geri kalanı, yazılım gereksinimlerine uygun olarak kullanıcıların ihtiyaçlarına bağlı olarak kullanılmaktadır. Her bir kriter için yazılımın kalitesini somutlaştırmak için, geliştiriciler tarafından açık bir şekilde yorumlanan standartlaştırılmış oldukça basit yazılım özellikleri seti kullanılır. Bu tür mülkleri arayacağız yazılım kalitesi ilkelleri... İlkellerin bazıları çeşitli kriterlere göre kullanılabilir. Aşağıda kalite kriterlerinin yazılım kalite ilkellerine bağımlılığı yer almaktadır.

İşlevsellik: eksiksizlik.

Güvenilirlik: bütünlük, doğruluk, özerklik, kararlılık, güvenlik.

Kullanım kolaylığı: P-belgelenmiş, bilgilendirici (yalnızca uygulama dokümantasyonu ile ilgili), sosyallik, istikrar, güvenlik.

Verimlilik: Zaman verimliliği, kaynak verimliliği (bellek), cihaz verimliliği.

Bakım onarım. Birçok farklı kalite primitifi bu kriterle ilişkilendirilir. Ancak, kalitenin iki alt kriterini vurgulayarak iki gruba ayrılabilirler: öğrenme ve değiştirilebilirlik.

Öğrenilebilirlik, yazılım ve yazılım belgelerini öğrenme ve anlama çabasını en aza indiren yazılım özellikleridir.

Değiştirilebilirlik, yazılım kullanım koşullarına otomatik olarak uyum sağlamasına veya gerekli değişiklik ve iyileştirmelerin manuel olarak başlatılmasını basitleştirmesine izin veren yazılım özellikleridir.

Öğrenilebilirlik: C-belgelenmiş, bilgilendirici (burada bakım dokümantasyonu ile ilgili), anlaşılabilirlik, yapılandırılmışlık, okunabilirlik.

Değiştirilebilirlik: genişletilebilirlik, değiştirilebilirlik (dar anlamda, kalitenin ilkelliği olarak), yapılandırılmışlık, modülerlik.

Mobilite: cihaz bağımsızlığı, özerklik, yapılandırılmışlık, modülerlik.

Aşağıda, kullanılan yazılım kalitesi ilkellerinin tanımları yer almaktadır.

Tamlık, yazılımın açık ve örtük işlevlerini yerine getirmek için gerekli tüm gerekli parçalara ve özelliklere sahip olma derecesini karakterize eden bir özelliktir.

Doğruluk, yazılım programları tarafından üretilen sonuçlardaki hatanın amaçlanan kullanımları açısından kabul edilebilirliğini karakterize eden bir ölçüdür.

Bağımsızlık, yazılımın diğer yazılım bileşenlerinin yardımı veya desteği olmadan öngörülen işlevleri yerine getirme yeteneğini karakterize eden bir özelliktir.

Sağlamlık, yazılımın hatalı (hatalı) giriş verilerine rağmen doğru şekilde çalışmaya devam etme yeteneğini karakterize eden bir özelliktir.

Güvenlik (savunma) - yazılımın kullanıcının kasıtlı veya kasıtsız yıkıcı (yıkıcı) eylemlerine direnme yeteneğini karakterize eden bir özellik.

P-belgeleri (u. Dokümantasyon) - yazılımın kullanımı için gerekli olan eğitim, öğretim ve referans belgelerinin varlığını, eksiksizliğini, anlaşılabilirliğini, erişilebilirliğini ve açıklığını karakterize eden bir özellik.

Hesap verebilirlik, yazılımın amacını, kabul edilen varsayımları, mevcut kısıtlamaları, giriş verilerini ve bireysel bileşenlerin çalışma sonuçlarını ve ayrıca programların mevcut durumunu anlamak için gerekli ve yeterli olan yazılımdaki bilgilerin varlığını karakterize eden bir özelliktir. operasyonları sırasında.

İletişim (iletişimsellik) - yazılımın girdi verilerinin atanmasını veya tanımlanmasını kolaylaştırma derecesini ve oldukça basit bir biçimde ve anlaşılması kolay içerikle faydalı bilgiler sağlama yeteneğini karakterize eden bir özellik.

Zaman verimliliği, yazılımın belirli bir süre için atanmış işlevlerini yerine getirme yeteneğini karakterize eden bir ölçüdür.

Kaynak verimliliği, bir yazılımın kendisine atanan işlevleri, kullanılan kaynaklar (kullanılan bellek) üzerinde belirli kısıtlamalar altında gerçekleştirme yeteneğini karakterize eden bir ölçüdür.

Cihaza göre verimlilik (cihaz verimliliği) - belirli bir görevi çözmek için bir makinenin cihazlarını kullanmanın ekonomisini karakterize eden bir ölçü.

C-belgeleri, yazılımın gereksinimlerini ve bu yazılımın yetenekleri, sınırlamaları ve diğer özellikleri ve bunların gerekçeleri de dahil olmak üzere bu yazılımın çeşitli geliştirme aşamalarının sonuçlarını yansıtan belgelerin mevcudiyeti açısından karakterize edilen bir özelliktir. .

Anlaşılabilirlik, yazılımın çalışan kişinin amacını, yapılan varsayımları ve kısıtlamaları, programlarının girdi verilerini ve sonuçlarını, bu programların metinlerini ve bunların uygulanma durumunu anlamasına izin verme derecesini karakterize eden bir özelliktir.

Yapısallık, yazılım programlarını, birbirine bağlı parçalarını belirli bir şekilde (örneğin, yapılandırılmış programlama ilkelerine uygun olarak) tek bir bütün halinde düzenleme açısından karakterize eden bir özelliktir.

Okunabilirlik, yazılım programlarının metninin (girinti, parçalama, biçimlendirme) algılanma kolaylığını karakterize eden bir özelliktir.

Genişletilebilirlik (arttırılabilirlik) - yazılımın veri depolamak için daha fazla bellek kullanma veya bireysel bileşenlerin işlevselliğini genişletme yeteneğini karakterize eden bir özellik.

Değiştirilebilirlik, yazılım yaşam döngüsünün tüm aşamalarında ve aşamalarında gerekli değişiklikleri ve iyileştirmeleri yapma kolaylığı açısından yazılımı karakterize eden bir ölçüdür.

Modülerlik, programlarını, bunlardan birinin değiştirilmesinin diğer bileşenler üzerinde en az etkiye sahip olacağı ayrık bileşenlerden organize edilmesi açısından yazılımı karakterize eden bir özelliktir.

Cihaz bağımsızlığı, yazılımın çeşitli donanımlarda (farklı türler, markalar, bilgisayar modelleri) çalışma yeteneğini karakterize eden bir özelliktir.

Bir yazılım aracının geliştirilmesi, sertifikasyonu ile sona erer. Yazılım doğrulama - bu, kalitesinin yetkili bir onayıdır. Kural olarak, sertifikalandırma için bir uzmanlar komisyonu oluşturulur. Bu komisyon, kalitesini değerlendirmek için gerekli bilgileri elde etmek için yazılımın kabul testlerini yapar. Bu durumda sadece belirlenmiş kalite kriterleri ve kalite ilkelleri değerlendirilir.

Yazılım kalitesi, yazılımın gerekli özellik kombinasyonuna sahip olma derecesidir.

Yazılım kalitesi, belirtilen ve ima edilen ihtiyaçları karşılama yeteneği ile ilgili yazılımın özelliklerinin bir toplamıdır.

Yazılım kalite özellikleri

işlevsellik(İşlevsellik) - yazılımın, belirli kullanım koşulları altında, kullanıcının sabit ve beklenen ihtiyaçlarına karşılık gelen sorunları çözme yeteneği ile belirlenir. Onlar. bu özellik, yazılımın doğru ve doğru bir şekilde çalışmasını, birlikte çalışabilir, endüstri standartlarını karşılamasını ve kurcalamaya karşı korumalı olmasını sağlamaktan sorumludur.

Güvenilirlik(Güvenilirlik) - yazılımın belirli koşullar altında belirli bir süre veya belirli sayıda işlem için gerekli görevleri yerine getirme yeteneği. Bu özelliğin nitelikleri, tüm sistemin eksiksizliği ve bütünlüğü, operasyonel arızalardan bağımsız ve doğru bir şekilde kurtarma yeteneği ve hata toleransıdır.

Kullanım kolaylığı(Kullanılabilirlik) - yazılımın kullanıcı için kolayca anlaşılması, incelenmesi, kullanılması ve çekiciliği.

Yeterlik(Verimlilik) - yazılımın, tahsis edilen kaynaklara, zamana ve belirtilen diğer koşullara uygun olarak gerekli performans seviyesini sağlama yeteneği.

eşlik kolaylığı(Sürdürülebilirlik) - yazılımların analiz edilme, test edilme, kusurları düzeltmek, yeni gereksinimleri uygulamak, daha fazla bakımı kolaylaştırmak ve belirtilen ortama uyum sağlamak için değiştirilme kolaylığı.

taşınabilirlik(Taşınabilirlik) - yazılımı bir ortamdan (yazılım / donanım) diğerine taşınabilirlik kolaylığı açısından karakterize eder.

Yazılım kalite modeli

Şu anda en yaygın ve kullanılan çok düzeyli yazılım kalite modeli bir dizi standartta sunulur ISO 9126. En üst düzeyde vurgulanır Yazılım kalitesinin 6 ana özelliği, her biri sonraki değerlendirme için karşılık gelen metriklere sahip bir dizi nitelik tarafından belirlenir ( bkz. şek. 1).

Şekil 1 - Yazılım Kalite Modeli (ISO 9126-1)

29. Yazılım kalitesinin özellikleri (GOST).

GOST ISO 9126-93

Yazılımın kalitesi aşağıdaki özelliklerle değerlendirilebilir:

4.1 İşlevsellik(İşlevsellik) Bir dizi işlevin özü ve bunların belirli özellikleriyle ilgili bir dizi nitelik. İşlevler, belirtilen veya ima edilen ihtiyaçları karşılayan işlevlerdir: Notlar

1 Bu öznitelikler seti, yazılımın ihtiyaçları karşılamak için ne yaptığını karakterize ederken, diğer setler esas olarak ne zaman ve nasıl yapıldığını tanımlar.

4.2 Güvenilirlik(Güvenilirlik) Yazılımın belirtilen koşullar altında belirli bir süre boyunca performans düzeyini koruma yeteneği ile ilgili bir dizi nitelik. Notlar 1 Yazılımda herhangi bir bozulma veya eskime meydana gelmez. Güvenilirlik sınırlamaları gereksinimler, tasarım ve uygulamadaki hatalardan kaynaklanır. Bu hatalardan kaynaklanan arızalar, yazılımın nasıl kullanıldığına ve yazılımın daha önce seçilen sürümlerine bağlıdır. NOT 2 ISO 8402'de güvenilirlik, bir öğenin gerekli bir işlevi yerine getirme yeteneğidir. Bu Uluslararası Standartta işlevsellik, yazılım kalitesinin özelliklerinden yalnızca biridir. Bu nedenle, güvenilirlik tanımı, "gerekli işlevi yerine getirmek" yerine "performans düzeyini korumak" şeklinde genişletilmiştir (ayrıca bkz. 3.4).

4.3 Pratiklik(Kullanılabilirlik) Tanımlanmış veya amaçlanan bir kullanıcı grubu tarafından bu tür bir kullanımın kullanımı ve bireysel değerlendirilmesi için gereken işin kapsamı ile ilgili bir dizi özellik. Notlar 1 "Kullanıcılar", etkileşimli yazılımın doğrudan kullanıcılarının çoğunluğu olarak yorumlanabilir. Kullanıcı çemberi operatörleri, son kullanıcıları ve dolaylı kullanıcıları içerebilir.

Bu yazılımdan etkilenen veya kullanımına bağlı olan. Kullanıma hazırlık ve sonuçların değerlendirilmesi de dahil olmak üzere, yazılımı etkileyebilecek çeşitli kullanıcı çalışma koşulları genelinde pratiklik göz önünde bulundurulmalıdır.

NOT 2 Bu standartta bir yazılım ürününün belirli bir dizi özelliği olarak tanımlanan pratiklik, pratikliğin bir parçası olarak verimlilik ve verimsizlik gibi diğer özellikleri dikkate alan ergonomik tanımdan farklıdır.

4.4 Verimlilik(Verimler) Yazılım performans düzeyi ile belirtilen koşullar altında kullanılan kaynak miktarı arasındaki ilişki ile ilgili bir dizi özellik. NOT Kaynaklar, diğer yazılım ürünlerini, donanımları, malzemeleri (örn. baskı kağıdı, disketler) ve işletme, bakım veya destek personelinin hizmetlerini içerebilir.

4.5 Bakım(Sürdürülebilirlik) Spesifik değişiklikleri (değişiklikleri) gerçekleştirmek için gerekli olan bir dizi kapsamla ilgili nitelikler. NOT Bir değişiklik, yazılımın ortamdaki, gereksinimlerdeki ve çalışma koşullarındaki değişikliklere yönelik düzeltmeleri, geliştirmeleri veya uyarlamalarını içerebilir.

4.6 Hareketlilik(Taşınabilirlik) Yazılımın bir ortamdan diğerine taşınabilme yeteneği ile ilgili bir dizi özellik. NOT Ortam, bir organizasyonel, teknik veya yazılım ortamı içerebilir.

Yazılımın (yazılımın) kalitesi, ürünün dış ve iç özelliklerinin incelenmesi temelinde belirlenir. Dış kalite, gerçek zamanlı olarak nasıl çalıştığı, kullanıcılar için ne kadar verimli olduğu ile tanımlanır. İkinci özellik, yazılı kodun kalitesine bağlı olan dahili yönlere odaklanır. Kullanıcı daha çok yazılımın harici bir düzeyde nasıl çalıştığına odaklanır ve bunun kalitesi ancak bir uzman iyi bir program kodu yazdıysa korunabilir.

Yazılım kalitesi

Şu anda, yazılım kalitesini belirlemek için kullanılan iki önemli yaklaşım vardır:

  1. Kusur yönetimi.
  2. Kalite özelliği.

Müşterinin gereksinimlerini karşılamayan her şey kusur olarak sınıflandırılır. Müşterinin gereksinimlerini tam olarak anlayamayan bir geliştirme ekibi tasarım hataları yapacaktır.

Kusur yönetiminde, kusurlar önem derecesine göre sınıflandırılır. Yazılım sorunlarının sayısı, önem derecesine göre sayılır ve düzeltilir. Geliştirme sürecinin yeteneklerini ölçmek için kontrol çizelgeleri oluşturulabilir.

Yazılımın kalitesi son yirmi yılda önemli ölçüde iyileşmiştir. Bunun bir nedeni, şirketlerin nesneye dayalı geliştirme ve CASE araçları gibi yeni teknolojileri benimsemesidir. Ek olarak, üretimde yönetim uygulamalarının tanıtılmasının artan önemi gözlemlenebilir.

Yazılım kalite yönetimi üç ana alana ayrılır:

  1. Garanti. Organizasyonel önlemlerin ve yazılım kalite standartlarının temellerinin geliştirilmesi.
  2. Planlama. Belirli bir yazılım projesi için uygun standartların seçilmesi ve uyarlanması.
  3. Kontrol. Yazılım geliştirmenin kalite standartlarını karşılamasını sağlayan süreçleri tanımlayın.

SQA Organizasyon Politikası

Kuruluşun yazılım kalite politikası aşağıdaki gereksinimleri karşılamalıdır:

  • Kuruluşun amaç ve hedeflerine uygunluk.
  • Genel kalite güvence kavramlarına bağlılık.
  • Kuruluş tarafından benimsenen kalite standartlarına bağlılık.
  • Yeterli kaynakları tahsis etme taahhüdü.
  • Kuruluşun kalitesinde ve performansında sürekli iyileştirmeyi taahhüt eder.

Standardın tüm gerekliliklerini yerine getirebilmek için firmalar bir kalite sorumlusu görevlendirirler. Bu çalışanın sorumlulukları:

  • SQA'nın yıllık faaliyet programını ve bütçesini hazırlamaktan sorumludur.
  • SQA sisteminin geliştirilmesi için geliştirme planlarının organizasyonu.
  • Yıllık düzenli faaliyetler programının ve planlı kalkınma projelerinin uygulanması üzerinde genel kontrol.
  • Faaliyet programının alt yüklenicinin gelecek yıl için planlanan hizmet ve yazılım alımlarının nitelik ve kapsamına uygunluğunun belirlenmesi.
  • SQA konularının üst yönetime sunulması ve savunulması.
  • SQA departmanı tarafından yıllık etkinlik programı için hazırlanan tekliflerin incelenmesi, teklifin hedeflere ulaşma potansiyelinin kontrol edilmesi.

Üst düzey kavramlar

Niteliksel özellikler, önemli yönleri yansıtan ve yazılım kalitesi için doğrudan değerlendirilmeyen üst düzey kavramlardır. Bunun yerine plan, bir veya daha fazla özelliği tanımlamak için kullanılabilecek uygun ölçümleri tanımlamalıdır.

Örneğin, bir XML ayrıştırıcısını değerlendirirken W3C XML uygunluk test paketini kullanabilirsiniz. Tüm kontrol alanlarını karşılamak için tasarlanmış testleri ve ayrıca XML belgelerinin doğruluğu veya geçerliliği için hata işleme gereksinimlerine özel olarak odaklanan W3C Genişletilebilir İşaretleme Dili (XML) yönergelerini içerir. Bu nedenle, geçen test senaryolarının yüzdesi, dikkate alınan XML ayrıştırıcısının aşağıdaki özelliklerini değerlendirmek için bir metrik olarak kullanılır:

  • Kullanıcı bakış açısı.
  • İşlevsellik.
  • Güvenilirlik ve esneklik.

Kullanıcının bakış açısından, aşağıdaki soruları yanıtlayan birkaç önemli özellik vardır:

  • Amaçlanan amaç için tüm gerekli işlevleri kim sağlar?
  • Yazılım, doğru kullanıldığında istediğiniz sonuçları elde etmek için güvenilir bir şekilde çalışıyor mu?
  • Yanlış giriş durumunda program güvenli ve güvenilir bir şekilde çalışıyor mu?
  • Yazılım ürününün kullanımı kolay mı?
  • Yazılım hızlı mı yoksa gereksiz yere yavaş mı görünüyor?
  • Program, kullanıcının kullandığı başka bir ürünle iyi çalışıyor mu?

Kalite sorunlarının kullanıcı için önemli olduğu göz önüne alındığında, yazılımı dağıtmaktan ve sürdürmekten sorumlu BT ekibi başka zorluklarla karşılaşabilir:

  1. Kötü niyetli saldırılara karşı koruma.
  2. Bilgi işlem kaynaklarının kullanım kalitesi.

Zayıf kaynaklar, gereğinden fazla bellek ve işlem gücü gerektiren kaynaklardır.

ISO, bu modele yazılım kalite güvence teknolojisiyle ilgili iki yeni üst düzey kategori sağlar.

ISO 9126 ürün gereksinimleri

ISO 9126, yazılım değerlendirmesi için uluslararası bir standarttır. Aşağıdaki konuları kapsayan dört bölüme ayrılmıştır:

  • Dış göstergeler.
  • Dahili göstergeler.
  • Kaliteli modeli.
  • Yazılım kalitesinin göstergeleri.

ISO 9126'nın ilk kısmı, bir dizi kalite özelliğinin tanımlanmasında McCall (1977), Boehm (1978) ve FURPS tarafından gerçekleştirilen önceki standardın bir uzantısıdır.

  • İşlevsellik.
  • Güvenilirlik.
  • Kullanılabilirlik.
  • Sürdürülebilirlik.
  • taşınabilirlik

Ürün işlevselliği

İşlevsellik, herhangi bir ürün veya hizmetin ana hedefidir. Bir ürünü kullanma olasılığı ne kadar fazlaysa, işlevselliğini tanımlamak o kadar zor hale gelir. Yazılım için, onun için mevcut olanların bir listesi belirtilebilir.

Listelenen yazılım özelliklerinden bazıları (örneğin, kolaylık) yalnızca belirli bir ölçüde mevcuttur, yani yalnızca "etkin" veya "devre dışı" değildir. Birçok kişi, bir sürecin genel işlevselliğini ve bir yazılım ürününü karıştırır. Bunun nedeni genellikle veri akış diyagramlarının (DFD'ler) ve diğer modelleme araçlarının, veri çıkışına dönüştürülmüş bir dizi veri olarak süreç işlevselliğini temsil edebilmesidir.

ISO 9126-1 ve diğer kalite modelleri, bir sürecin genel maliyetlerini veya faydalarını ölçmeye yardımcı olmaz, yalnızca yazılım bileşenini inceler. Genel iş süreci içindeki yazılım işlevselliği arasındaki ilişki, ISO 9126'nın kapsamı dışındadır.

Aşağıdaki öznitelik yetenekleri, belirli bir ortamda yazılımın faydasını karakterize eder. Her biri ancak ilgili sistem programları mevcutsa ölçülebilir.

Bir yazılım sistemi çalışır hale geldiğinde, bir güvenilirlik özelliği, hizmet sunumunu belirli koşullar altında belirli süreler boyunca sürdürme yeteneğini ölçer. Bu özelliğin bir yönü hata toleransıdır. Örneğin, ağ 20 saniye içinde çökerse, sistem kendini toparlayıp çalışmaya devam edebilmelidir.

Sistemi kullanmayı öğrenme yeteneği (öğrenilebilirlik), kullanılabilirliğin temel özelliklerinden biridir.

Verimlilik, gerekli işlevselliği sağlamak için kullanılan sistem kaynaklarıyla ilgilidir. Disk alanı, bellek ve ağ, verimliliğin iyi göstergeleridir. Diğer birçok kriterde olduğu gibi, aralarında örtüşmeler vardır. Örneğin, bir sistemin kullanılabilirliği performansını etkiler.

Bir yazılım bileşenindeki bir hatayı belirleme ve düzeltme yeteneği, sürdürülebilirlik özelliğinin ifade ettiği şeydir. Performansı, kodun okunabilirliği veya karmaşıklığının yanı sıra modülerlikten etkilenir. Bu, daha sonra düzeltmek için arızanın nedenini belirlemeye yardımcı olur.

Bakım özellikleri:

  • Analiz edilebilirlik - Başarısızlığın temel nedenini tanımlar.
  • Volatilite - Hatayı düzeltmek için kodu değiştirmek için harcanan çabayı tanımlar.
  • Kararlılık - Değişiklik yapıldığında sistemin ne kadar kararlı olduğunu gösterir.
  • Test edilebilirlik - Sistemi test etmek için ne kadar çaba harcanacağını belirler.
  • Taşınabilirlik, bir sistemin çevresindeki değişikliklere uyum sağlama yeteneğidir.
  • Uyarlanabilirlik - Bir sistemin spesifikasyonlarda yapılan değişikliklere ne kadar kolay adapte olduğu.
  • Kurulum hızı - sistemin ne kadar kolay kurulabileceği.
  • Değiştirme - Bir sistem bileşenini değiştirmenin ne kadar kolay olduğu.
  • Yazılım kalitesinin maliyeti. Bu çok önemli. Bir geliştirici ürününü test etmeye karar verdiğinde, aslında onu test etmek için zaman, para ve çaba harcayacaktır.
  • Uygunluk - Yazılım özelliklerinin gereksinimleri karşılayıp karşılamadığını belirler.
  • Doğruluk - işlevlerin uygulanmasının doğruluğunu belirler.
  • Birlikte çalışabilirlik - diğer sistem bileşenleriyle etkileşim.
  • Gerekli yasalara ve yönergelere uygun yazılım.
  • Yazılımın kalite ve güvenliğinin sağlanması ve verilerle ilgili işlemlerin işlenmesi.
  • Güvenilirlik, yazılımın belirli bir süre boyunca belirli koşullar altında çalışabilme yeteneğidir.
  • Olgunluk, yazılım çökmelerinin oranıdır.
  • Kurtarılabilirlik - bir sistemin bir arızadan sonra tam çalışmaya geri dönme yeteneği fikri.

Taşınabilirlik, bir yazılımın ortamındaki veya gereksinimlerindeki değişikliklere ne kadar iyi uyum sağlayabildiğini ifade eder. Nesneye yönelik tasarım ve uygulama yöntemleri, yazılım kalitesinin bu özelliklerinin belirli bir sistemde ne ölçüde mevcut olduğuna katkıda bulunabilir.

Analiz süreci maliyetleri

Kalite maliyeti, uygunluk ve uygunsuzluk maliyetleri analiz edilerek hesaplanır. İlk göstergenin fiyatı aşağıdakilerle ilgilidir:

  1. Önleme maliyetleri. Tüm yöntemlerin doğru bir şekilde takip edilmesini sağlamak için harcanan miktardır. Öğretim ekiplerini, kod incelemelerini ve QA ile ilgili diğer etkinlikleri içerir.
  2. Değerlendirme maliyetleri. Bu, tüm test öğelerini planlamak ve ardından test senaryolarını geliştirmek gibi bunları tamamlamak için harcanan para miktarıdır.
  3. Uygunsuzluk maliyetleri. Bunlar, iç ve dış başarısızlıklardan kaynaklanan maliyetlerdir.

Dahili hatalar, test senaryoları ilk kez dahili olarak yürütüldüğünde ortaya çıkan maliyetlerdir ve bazıları başarısız olur. Maliyet, bir programcının birim veya bileşen testi sırasında bir kod parçasında bulunan herhangi bir kusuru düzeltmesi gerektiğinde ortaya çıkar.

Dış arızalar, bir kusur test eden tarafından değil, müşteri tarafından belirlendiğinde ortaya çıkan maliyetlerdir. Bu maliyetler, dahili olarak görünenlerden çok daha yüksektir. Bu, özellikle bir yazılım hatası güçlendirilirse geçerlidir.

Disiplinli süreç analizi

Bu, bir yazılım ürünü için bir işlemci derecesidir. Mevcut uygulamaları tanımlamayı ve karakterize etmeyi, güçlü ve zayıf yönleri belirlemeyi ve düşük ürün kalitesinin önemli nedenlerini kontrol etme veya bunlardan kaçınma yeteneğini içerir. Üç tür program denetimi vardır:

  1. benlik saygısı. Kurumun kendi personeli bünyesinde gerçekleştirilir.
  2. Üçüncü Taraf Değerlendirmesi.
  3. Üçüncü taraf değerlendirmesi.

Yazılım süreç denetimleri, performansı artırmak ve yazılım kalite güvence programlarını kullanmak için açık, paylaşılan bir ortamda gerçekleştirilir. Böyle bir denetimin sonuçları kuruluş için gizlidir.

Veri toplama ile ilgili olarak dört yöntem kullanılır:

  1. Olgunluk sorularının standart kontrol listesi.
  2. Bireysel ve grup görüşmeleri.
  3. Belgelerin incelenmesi.