Yazılım kalitesi (yazılım kalitesi). Yazılım kalitesi kavramı. Yazılım kalitesi yaklaşımları

  • 21.05.2019

Yazılımın gelişimi, tasarımının sonuçlarını LCC'nin tüm aşamalarında değerlendirmeyi, planlı performans göstergelerinin ve metrik analizlerini, risk değerlendirmelerinin gerçekleştirilmesinin derecesini kontrol etmek için mühendislik yöntemlerini kullanmak için gerekli bir gelişme seviyesine ulaşmıştır. Yeni bir proje geliştirme maliyetini azaltmak için hazır bileşenlerin kullanım derecesi. Programlamada mühendislik yöntemlerinin temeli gelişmiş kalitedir.Kalite gereksinimlerini belirlemek için hangi yöntemleri elde etmek için, kalite göstergelerinin metrik analizi modellerinin seçimine yaklaşımları ve iyileştirilmesi ve LCC'nin tüm aşamalarında kalite göstergelerinin ölçülmesi için yöntemler oluşturulur. Statik donanım değerlendirme teknikleri, Şekil 2'de sunulmuştur. 9.1. Dinamik teknikler bir şekilde test yazılımı ile ilgilidir.

Kalite gereksinimlerine göre elde edilen rıza, elde edilen ürünün kalitesini oluşturan mühendislere özellikle reddedilir, tartışma ve birçok yönün resmi tanımını gerektirir. Mühendisler, kalite, özellik ve kalite değeri kavramındaki anlamını, geliştirilen veya yazılım eşliğinde eşlik eden anlamını anlamalıdır. Program gereksinimlerinin gerekli yazılımın gerekli özelliklerini belirlediği ve ayrıca bu özellikleri ilgili kabul kriterlerini tahmin etmek için nicel tahminin yöntemlerini etkiler ve formüle edilmiştir.

Kalite yazılımı, standardizasyon konusudur. GOST 2844-94'e göre kalite Randevu uyarınca müşterinin ihtiyaçlarını karşılama yeteneğini sağlayan bir dizi özellik (kalite göstergeleri) vardır. Bu standart, aralarında güvenilirlik olan temel kalite modelini ve göstergelerini düzenler. Standart 180 / 1E12207

İncir. 9.1.

delil, yalnızca JC'nin yazılımın geliştirilmesinin temel süreçleri değil, aynı zamanda yazılımın mühendislik, planlama ve kalite yönetimini düzenleyen örgütsel ve ek süreçler.

ICP geliştirmenin tüm aşamalarında bu standarda göre, aşağıdaki kalite kontrolü aşağıdakiler tarafından yapılmalıdır:

  • öngörülen yazılım ürününün gereksinimlerine ve başarılarının kriterlerine uyumu kontrol etmek;
  • LCC'nin aşamalarında yazılımın ara sonuçlarının doğrulanması ve sertifikalandırılması (doğrulanması) ve elde edilen göstergelerin memnuniyet derecesinin ölçülmesi;
  • Bitmiş yazılımın testi, hatalar, kusurlar ve sistemde bulunan diğer hatalar hakkında veri toplamak;
  • Test sonuçları için güvenilirliği değerlendirmek için güvenilirlik modellerinin seçimi (kusurlar, arızalar vb.);
  • Yazılım geliştirme gereksinimlerinde belirtilen kalite göstergelerinin değerlendirilmesi.

Kalite Muayene - Bu, kalite odaklı geliştiricileri test etme sürecidir. PP'nin gelişiminin tüm aşamalarında kullanılır.

Doğruluk kanıtı - Bu, kendinizi ve başkalarını programın ne yapması gerektiğini ikna etmek için kullanılan matematiksel veya mantıksal bir tekniktir. Bu kanıt resmi (katı) bir yöntemdir.

Herhangi bir mühendislik ürünü için, kalitenin birçok yorumu vardır. Kalite göstergelerinin bulunması gerekebilir, yok olabilir, tüketicinin ve diğer paydaşların bazı gereksinimlerini (tamamen "kabul edilebilir kalite" anlaşılmasıyla tamamen yankılanan bazı gereksinimlerini yansıtabilir. Mükemmelliğin bir başarısı olarak kalite güvencesi üzerinde daha az sert bakış açısı).

Kalite Kalitesi Kusurları, değerlendirme maliyetini, dahili maliyetinin yanı sıra dış hataların önlenmesinin maliyeti için farklılaştırılabilir. Program projelerinin itici gücü, belirli bir değere sahip bir yazılım oluşturma arzusudur (belirli görevleri çözmek veya hedeflere ulaşmak için önemli). Yazılımın değeri, değeri veya başka bir form biçiminde ifade edilebilir. Müşterinin genellikle, yazılım yaratma temel hedeflerinin başarısı durumunda beklenen maksimum maliyet yatırımları fikrine sahiptir. Müşteri ayrıca kalite yazılımıyla ilgili bazı beklentileri de olabilir. Bazen müşteriler kalite sorunları ve ilgili maliyetler hakkında düşünmezler, bu nedenle bu aşamada tartışma konusu, bir veya başka bir kalitenin başarısı ile ilgili maliyet ve faydalar ile ilgili maliyet ve faydalar tarafından tam bir anlayış konusu olabilir. karar alma sürecine müşteri katılımının. İdeal olarak, bu tür çözümlerin çoğu, gerekliliklerle çalışma aşamasında yapılmalıdır, ancak bu konular LCC'de yükselebilir (ve olmalıdır). Bu kararları nasıl gerekli olduğu için "standart" kuralları yoktur. Bununla birlikte, mühendisler, çeşitli kalite seviyelerinin ve maliyetlerinin başarısına farklı alternatifler sunabilmelidir.

Yazılımın kalitesi, yalnızca başvurusu için gerçek koşulları dikkate alırken anlamlı bir kavramdır ve kalite gereklilikleri bu koşullar ve uygulamalarının belirli alanlarıyla ilgili olmalıdır.

Yazılımın kalitesi, üç yönü ile karakterizedir: PP kalitesi, ZHC'nin işlemlerinin kalitesi ve eskort veya uygulama kalitesi (Şekil 9.2).

Kalite Kalite Kalitesi

Ürün eşliğinde işlemi

İncir. 9.2.

İle ilişkili yönü sergi işlemleri Formalizasyonun derecesini, yazılım geliştirme geliştirilmesinin yanı sıra, bu işlemlerin ara sonuçlarının doğrulanması ve doğrulanması (kısaca - v ve v) süreçlerinin güvenilirliğini belirler. Hazır yazılımdaki hataların arama ve ortadan kaldırılması, hataların sayısını azaltan ve bu ürünün kalitesini artıran yöntemleri test ederek gerçekleştirilir.

PP kalitesi Ara ürünleri LCC'nin her aşamasında kontrol etme prosedürlerinin kullanılmasıyla, gerekli kaliteyi elde etmenin yanı sıra PP destek yöntemlerini kullanmalarını sağlar. Uygulamanın Etkisi Yazılım, büyük ölçüde ürün işlevlerinin ve kurallarının servis personeli hakkındaki bilgilerine bağlıdır.

Kalite modeli tarafındandört tanıtım seviyesine sahiptir.

İlk seviye Her biri, kullanıcının kalitesinin ayrı bir bakış açısını yansıtan yazılım kalitesinin (göstergeleri) tanımlanmasına uygundur. Mevcut standartlara göre (ISO / IEC9126, DTU 2844-1994, DTU 2850-1994, DTU 3230-1995) Kalite model altı özellik veya altı kalite göstergesi (Şek. 9.3): işlevsellik (işlevsellik), güvenilirlik (güç), rahatlık (kullanılabilirlik), verimlilik (verimlilik), eşlik (maitainnability), taşınabilirlik (taşınabilirlik).

Açık ikinci seviye Farklı yönlerini detaylandıran her bir özel kalite özelliği için nitelikleri belirleyin. PP kalitesini değerlendirirken bu özelliklerin bir dizi kullanılır.

Üçüncü seviye Kalitesini ölçmek için tasarlanmıştır metrikler Her biri, 1SO / IEC9126'ya göre, öznitelik ölçüm yönteminin bir kombinasyonu ve değerlerinin ölçme ölçeğinin bir kombinasyonu olarak tanımlanır. ELC-Software aşamalarındaki kalite niteliklerini değerlendirmek için (belgeleri ve programları ve program testi sonuçlarını görüntülerken), belirli bir tahminde bulunurken metrikler kullanılır.

Özellik göstergeleri

Öznitellikler

belirli bir gösterge ve kalitenin toplam özniteliklerinin metrik analizinin sonuçlarını bir bütün olarak tesviye etmek için tartım. Kalite özelliği, ELC aşamalarında bir veya daha fazla değerlendirme tekniği kullanılarak ve gelişiminin son aşamasında belirlenir.

Açık dördüncü seviye Ayrı bir özelliğin nicel veya nitel değerini tahmin etmek için, tahmini bir metrik eleman kullanılır - ağırlık. Desteğin amacına, özelliklerine ve koşullarına bağlı olarak, en önemli kalite özellikleri ve öznitelikleri seçilir (bkz. Şekil 9.3).

Seçilen özellikler ve öncelikleri, sistem geliştirme gereksinimlerine veya bunun için kullanılan sınıf yazılımı sınıfının uygun önceliklerine yansıtılır.

Daha fazla ayrıntı düşünün İçin kalite göstergeleri.

İşlevsellik.Bu, belirli bir ortamdaki işlevlerin bir listesini gerçekleştirme yeteneğini belirleyen bir mülkdür, işleme ve sistem genelinde gereklilikler için gerekliliklere uygun olarak. İşlevsellik, yazılımın tüketici özelliklerini karşılayacak bazı eylemler dizisi olarak anlaşılmaktadır. İşlevler hedeflenir (ana) ve yardımcıdır. İşlevsellik ile ilgili nitelikler veriyoruz.

Fonksiyonel dolgunluk - Yazılımın amacına uygun olarak problemleri çözmek için temel işlevlerin yeterliliğinin derecesini gösteren özelliğin özelliği.

Sağ (doğruluk) - Doğru sonuçların elde edilmesinin derecesini gösteren öznitelik.

Birlikte çalışabilirlik - Yazılımın bileşenlerinin özel sistemler ve ortamlarda (işletim sistemi, ağ vb.) Etkileşimi olasılığını gösteren bir özellik.

Koruma - Programlara ve verilere izinsiz erişimi (rastgele veya kasıtlı olarak) önleme yeteneğini belirleyen bir özellik.

Güvenilirlik.Bu, ilk verileri yaşam süresi (aşınma ve yaşlanma dikkate alınmaz) bağlı olarak, ilk verileri koşullar altındaki sonuçlara dönüştürme yeteneğini belirleyen bir özelliktir. Yazılımın güvenilirliğini azaltmak, gereksinimlerin, tasarım ve yürütmedeki hatalardan kaynaklanmaktadır. Programlardaki başarısızlıklar ve hatalar belirli bir süre içinde görünür.

Aşağıdakilerin prefabrikleri, belirleyicilere (subkrackers) için aşağıdaki gibidir.

Güvenilirlik - Arızasız işlev görme yeteneğini belirleyen bir özellik (hem programlar hem de ekipman).

Hatalara Direnç - Anormal koşullar altında fonksiyonları gerçekleştirme yeteneğini gösteren nitelik (arıza hataları, veri ve arayüzlerdeki hatalar, operatörün eylemlerinde ihlal, vb.).

Retailability - Başarısızlıktan sonra verileri yeniden yürütmek ve kurtarmak için yeniden başlatmayı gösteren öznitelik.

Yüksek güvenilirliği sağlamak için bazı "kritik sistemler" (gerçek zamanlı, radar, güvenlik sistemleri, iletişim vb.) (Gerçek zamanlı, radar, güvenlik sistemleri, iletişim vb.) Sunulur (hataların, doğruluk, doğruluk, kullanım kolaylığı vb.). Yazılımın güvenilirliği büyük ölçüde, Eds aşamalarındaki gelişimi sürecinde kalan ve reaktif hataların sayısına bağlıdır. Operasyon sırasında, hatalar tespit edilir ve ortadan kaldırılır. Eğer, hataları düzeltirse, yeni veya en azından yeni hatalar ortadan kaldırıldığından daha az yapılırsa, işlem sırasında güvenilirlik sürekli artmaktadır. Daha yoğun çalışma yapılır, daha yoğun hata tespit edilir ve yazılımın güvenilirliği daha hızlı büyüyor.

Aşağıdaki faktörler, yazılımın güvenilirliğini etkiler:

  • Olumsuz sonuçlara yol açan tehditlerin bir kombinasyonu ve işletmesinin sistemin veya ortamına zarar vermesi;
  • güvenlik ihlallerinin tezahürü olarak tehdit;
  • Sistemin işin istikrarını koruması ve risk sahibi olmadığı gibi bütünlük.

Tespit edilen hatalar, dış veya başarısızlıklardan bir tehdit sonucu olabilir, riski artırır ve sistemin güvenilirliğinin bazı özelliklerini azaltır.

Güvenilirlik, modern yazılım sistemlerinin kilit sorunlarından biridir ve bilgisayar sistemlerinin kalitesinin sürekli artması nedeniyle rolü sürekli artmaktadır. Yeni yön - mühendislik Yazılım GüvenilirliğiYazılım Güvenilirlik Mühendisliği - Sistemin güvenilir şekilde çalışmasını bekleyen ve aşağıdaki yönleri içeren kullanıcıya göre sistem bileşenlerinin operasyonel davranışının nicel bir çalışmasına odaklanmış ve aşağıdaki yönleri içerir:

güvenilirlik ölçme. Tahminleri kullanarak kantitatif değerlendirmesini yapmak, sistemin davranışına ilişkin verileri toplama

operasyon sırasında, modern güvenilirlik modellerinin yanı sıra;

  • stratejiler ve Metrikler Hazır bileşenlerin oluşturulması ve seçilmesi, bir bileşen sistemi geliştirme işleminin yanı sıra sistemin güvenilirliğini etkileyen işleyen ortamın;
  • Modern uygulaması muayene Yöntemleri, doğrulama, doğrulama ve Test Bir sistem geliştirirken, çalışması sırasında olduğu gibi.

Doğrulama Hazır özelliklerin uyumunu belirlemek için kullanılır ve doğrulama - Müşteri tarafından getirilen kullanıcı gereksinimlerine bir sistem uyumluluğu oluşturmak.

Mühendislik güvenilirlik döneminde tek pervane (Güvenilirlik), sistemin gereksinimlerde belirtilen işlevlerin nitel olarak yürütülmesinde kendinden emin olan kullanıcı için arzu edilen, sistemin özelliklerine sahip olmasını gösterir. Bu terim, sistemin sahip olması gereken ek bir nitelik nitelikleri ile belirlenir:

  • Kullanılmaya hazır olma (kullanılabilirlik);
  • sürekli işleyen (güvenilirlik) için hazır olma;
  • Çevre için güvenlik, yani. Sistemin yetenekleri, reddetme durumunda (güvenlik), felaket sonuçlarına neden olmaz;
  • gizlilik ve bilgi güvenliği (gizli);
  • sistemi ve istikrarı kendiliğinden değişimine (bütünlük) kaydetme yeteneği;
  • Yazılımı, bakım işlemlerini kolaylaştırmanın yanı sıra hataları ortadan kaldırma, ortadan kaldırdıktan sonra sistem restorasyonu (bakım);
  • Bilgi (güvenlik) ve diğerlerinin hazırlanması ve güvenliği. Sistemin güvenilirliğini elde etmek sağlandı reddetme önlenmesi (Hata önleme) veya onun eliminasyon (Temizleme hatası), yanı sıra, bunlarla mücadele etmek için yeni başarısızlık ve önlemlerin ortaya çıkması olasılığının bir değerlendirmesi.

Sayısal güvenilirlik değerlendirmesi için olasılık teorisi yöntemleri kullanılır. Her program bileşeni, operasyonları ve verileri, örneğin 5, 28, ...,, zamanın ayrık anlarıyla işlenir. pd.

Almasına izin ver T. Sistemin ilk başarısız olan işlenmiş bileşeninden sonra, ifadenin doğru olduğu bir reddetme

P (t\u003e pj) \u003d (1 - L.) ve L.'nin başarısız olasılığı olduğu, ortalama

bekleme süresi eşit olacak T \u003d -.

5 değerinin azaldığını ve zamanın azaldığını varsayıyoruz. T. sabit kalır, sonra sahibiz

R (t\u003e t) \u003d

nerede t - Başarısızlık zamanı, bu durumda, katlanarak dağıtılan sürekli bir değerdir.

Dolayısıyla, yazılımın güvenilirliğinin sağlanması, başarısızlıklarla ilgili sistemin sürdürülebilir bir işleminin oluşturulmasını gerektiren zahmetli bir süreçtir, yani. Sistemin, başarısızlıkta meydana geldikten sonra bir noktada kendiliğinden restore edeceği yeterince yüksek bir ihtimal sağlama (hata).

Kullanım kolaylığı.Bu gösterge, ilgili sonuçları elde etmek için yazılımı (örneğin, bir iletişim kutusu, yerel olmayan) bir kullanıcı tanımlı aralık kullanmak için gerekli uygun koşulları belirleyen çok sayıda nitelik ile karakterize edilir. Standart DSTU 2850-1994'te, kullanım kolaylığı, ergonomisini karakterize eden birçok PP nitelik olarak tanımlanır:

  • anlayış - Yazılımın uygulanmasının mantıksal kavramlarının ve koşullarının tanınması için harcanan çabaları belirleyen bir özellik;
  • düşünmek (Çalışma Kolaylığı) - Kullanıcıların, operasyonel kontrol, teşhis, teşhis ve kurulmuş prosedürler, belgelerde belirtilen kuralları kullanarak uygulanabilirlik tanımına göre harcanan kullanıcıların çabalarını belirleyen bir özellik;
  • verimlilik - İşlemleri ve operasyonel kontrolü gerçekleştirirken sistemin reaksiyonunu tanımlayan bir özellik;
  • tutarlılık - Standartların, anlaşmaların, kuralların, yasaların ve düzenlemelerin gelişiminin uyumunu gösteren bir özellik.

Verimlilik.Bunlar, yazılım performans seviyelerinin ilişkisini, kaynak kullanım derecesini (baskı cihazının fonları, ekipman, kağıt malzemeleri vb.) Ve standart servis personeli tarafından gerçekleştirilen hizmetler belirleyen bir özelliktir. Etkinlik nitelikleri şunları içerir:

  • reaktivite - İşlevlerin yanıt süresini, işlenmesini ve yürütülmesini gösteren öznitelik;
  • kaynak Verimliliği - Yazılımın işlevlerini gerçekleştirirken kullanılan kaynakların sayısını ve süresini gösteren nitelik;
  • tutarlılık - Bu özelliğin belirtilen standartlara, kurallara ve düzenlemelere uyumu gösteren öznitelik. Eşlik.Bunlar, ortamı, gereksinimleri veya fonksiyonel özellikleri değiştirirken, yazılımın ayarlanması, iyileştirilmesi ve uyarlanmasını içeren değişikliklerin yapılması için harcanması gereken çabaları belirleyen birçok mülkdür. Eşlik, aşağıdaki özelliklerle belirlenir:
  • analiz edildi - arızaları teşhis etmek veya değiştirilecek parçaları tanımlamak için gerekli çabaları belirleyen nitelik;
  • değişilebilirlik - Yazılımdaki hataları giderme veya onları ortadan kaldırmak için değişiklik yapma yeteneğini belirleyen nitelik, yazılımda veya işleyen ortamda yeni özelliklerin tanıtılması;
  • İstikrar - modifikasyonun yapısının ve riskinin sabitliğini gösteren nitelik;
  • test edilebilirlik - Gereksinimlere uymak için yazılımın doğrulanması ve doğrulanması sırasında, yazılımın ve sertifikaların değiştirilmesine olan ihtiyacı olduğu gibi bir nitelik belirleyen bir özellik;
  • tutarlılık - Bu özellik sözleşmelerinin, kuralların ve gerekliliklerin uyumunu gösteren bir özellik. Taşınabilirlik.Bu, çalışma zamanının yeni koşullarında çalışmaya adapte olma yeteneğini belirleyen birçok göstergedir. Çarşamba organizasyon, donanım ve yazılım olabilir. Yazılımın yeni bir uygulama ortamına aktarılması, yeni bir yazılım, organizasyonel ve teknik yetenekleri göz önünde bulundurularak, oluşturulduğu bir ortamda çalışmasını sağlamayı amaçlayan belirli bir eylem kümesi ile ilişkilendirilebilir. Taşınabilirlik aşağıdaki özellikleri içerir:
  • adaptasyon - çeşitli ortamlara adaptasyon için harcanan çabaları belirleyen nitelik;
  • Özelleştirilebilirlik (Kurulumun basitliği) - Bu yazılımı özel bir ortamda başlatmak için gerekli çabayı tanımlayan bir nitelik;
  • birlik olmak - Mevcut sistemin ortamında özel yazılım kullanma olasılığını belirleyen nitelik;
  • değiştirilebilirlik - Yazılımın gerekli kurulumuna veya uyarlanmasıyla birlikte diğer programlarla birlikte çalışırken birlikte çalışabilirlik için bir fırsat sağlayan bir özellik;
  • tutarlılık - Standartlara ve transfer anlaşmalarına uyumu tanımlayan öznitelik.

Yazılım işlevlerini yerine getirmeli, belirtilen kalite, güvenlik, güvenilirlik kriterlerini karşılamalıdır. Ürünün değerlendirilmesi, bunun için gereksinimler, proje belgeleri - kalite mühendisleri veya QA mühendisleri.

Kalite güvence yazılımı, gelişiminin her aşamasında gerçekleştirilen etkinlikleri içerir. Amaç, ürünün fonksiyonel ve işlevsel olmayan gerekliliklerle eşleştiğini garanti etmektir.

Yazılım Kalitesi Kavramı

İlk bakışta, "kaliteli yazılım" soyut kavram görünebilir. Bununla birlikte, proje yöneticileri, programcılar, test uzmanları, QA-mühendisler ve diğer katılımcıların kalite kriterlerinin ürün geliştirmesi sürecinde saydam ve ölçülebilirdir. İlk önce genel tanımını düşünün.

Yazılımın kalitesi, atanan işlevleri gerçekleştirme yeteneğini belirleyen bir yazılım ürününün bir özelliğidir.

Şu anda, bu gösterge Uluslararası Standart ISO / IEC 25010: 2011 tarafından yönetilir. Bu standart, sekiz temel özelliğe dayalı çok seviyeli bir kalite değerlendirme sistemi oluşturur.

İçinde kalite parametreleri

ISO / IEC 25010: 2011'e göre yazılım kalitesinin ana özellikleri:

  1. İşlevsellik. Bu, belirtilen kullanıcı ihtiyaçlarını karşılayan görevler karşılanırsa, işlevsel olarak kabul edilir. Bu özellik, bileşenlerin bir parçası olan tüm bileşenlerin doğru ve doğru çalışmasını, uyumluluğunu ifade eder.
  2. Güvenilirlik. Güvenilirlik altında, belirli bir süre için belirtilen koşullarda atanan görevlerin kesintisiz performansını anlarlar.
  3. Kullanılabilirlik (kullanım kolaylığı). Bu parametre, kullanıcılar için yazılım kolaylığı, görünürlüğü, çalışma kolaylığı ve çalışma derecesini karakterize eder.
  4. Verimlilik. Parametre, ürüne belirtilen koşullar altında gerekli performansı sağlama derecesine karşılık gelir.
  5. Escort kolaylığı. Bu gösterge, analiz, test, yazılımın bileşenlerinin, bakımının düzeltilmesinin yanı sıra yeni koşullara uyum derecesinin basitliğini karakterize eder.
  6. Taşınabilirlik. Transferinin başka bir platforma için kolaylık derecesi. Kalite güvencesi, listelenen parametrelerin her birinde, zayıf yönleri tanımlamayı ve sorun gidermeyi içerir.
  7. Uyumluluk. Yazılım bileşenlerinin birbirleriyle etkileşime girme yeteneği.
  8. Koruma, yani Yetkisiz okuma, bilgi değişikliği, vb.

Kalite Güvencesi ve Test

"Test" ve "kalite desteği" terimleri kesinlikle birbirleriyle ilişkilidir, ancak aynı değildir. Fark ne?

Kalite güvencesi Tüm geliştirme sürecinden sorumludur ve tüm aşamalarına entegre olur: Test etmeden önce gelecekteki çözüm için gereklilikler oluşturmaktan, ürün salınımı ve dış mekan sonrası servis.

QA uzmanlarının görevleri şunlardır:

  • kalite kriterlerinin oluşumu;
  • Ürün gelişiminin her aşamasında kriterlere uygunluk için önlemler planlama;
  • test Araçları Seçimi;
  • ürün testi;
  • hesaplama KPI;
  • hataların ortaya çıkmasını ve sürecin iyileştirilmesini önleyin.

Test yapmak - Gereksinimlere uygunluk için yazılımı kontrol edin.

Böylece, kalite güvencesinin test çalışmalarını içeren daha geniş bir konsept olduğunu görüyorsunuz.

Test otomatikleştirilebilir ve manuel olarak gerçekleştirilebilir; Tam bir döngü olabilir veya kalitenin ayrı bir yönünü kontrol etmeyi amaçlamaktadır (güvenlik, performans, kullanım kolaylığı vb.).

Test mühendisleri, proje ve çözümlerin özelliklerine dayanarak test etme ve planlama stratejilerini hazırlar ve gelecekte test durumlarının testini optimize edin, hataları arayın, Geliştiricilere algılanan kusurlara ilişkin raporlar oluşturun ve gönderme, kusurun ortadan kaldırılmasını kontrol edin .

Kalite güvence işlevi, Şirket'in iç bölümü tarafından gerçekleştirilebilir ve kararın kendisini nesnel olarak takdir ederek, kalite güvence süreçlerini yapılandıracak ve böylece yüksek kaliteli bir ürün yayınlanmasına izin verecek olan bağımsız bir yükleniciye devredilebilir. İş gereksinimlerini ve kullanıcı beklentilerini karşılayan pazar.

Yazılım geliştirme metodolojisi

Elektronik El Kitabı Karpovich E.E.

Giriş bir

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

1.1 Temel kavramlar. 2.

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

2. Yazılım ömrü döngüsü. beş

2.1. Yaşam döngüsü yazılımı kavramı. beş

2.2. Yazılım Yaşam Döngüsü İşlemleri. 6.

2.3. Yazılım Yaşam Döngüsü Modelleri. onbir

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ısal yaklaşım. 19

3.2 Modüler programlama. 22.

3.3. Yazılım geliştirme için nesneye yönelik yaklaşım. 31.

3.3. Görsel Programlama Metodolojisi. 33.

4. Test yazılımı. 34.

4.1. Genel. 34.

4.2. Amaçlar ve hedefler. Ana tanımlar. 34.

4.3. Yazılım Test Süreci Örgütü 35

4.4. Yazılım test stratejileri. 36.

4.5. Yazılım test seviyeleri. 38.

5. Yazılımı belgeleme. 39.

5.1. Genel. 39.

5.2. Program ve test tekniği. 39.

5.3. Program Açıklama .. 40

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

5.5. Program metni .. 42

5.6. Uygulama Açıklaması. 42.

5.7. Sistem programcısının rehberi. 42.

5.8. Programcı Kılavuzu. 43.

5.9. Kullanım klavuzu. 43.

Edebiyat. 44.

Giriş

Bilgi İşlem Sistemlerinin (Güneş) yazılımı (yazılım) giderek daha önemli, karmaşık ve tehlikeli hale geliyor ve gelişmesi giderek daha zor, ancak aynı zamanda her zaman basitleştirildi, boyut olarak azalır, her şeyin kontrol edilmesi daha kolaydır. ve her şey geliştirmek daha kolaydır.

Bir yandan, işletim sistemlerinin, donanım ve kullanıcı arayüzünün iyileştirilmesi ve komplikasyonu ile ilgili yazılım gereklilikleri ve modern bilgi teknolojilerini tanıtma ihtiyacına, her şeyden önce, ağlar artmaktadır. Bununla bağlantılı programların iç cihazı giderek daha zor hale geliyor ve güvenilirlikleri için gereksinimler.



Öte yandan, yazılım geliştirme deneyimi, daha fazla ve daha esnek ve güçlü metodolojileri biriktirir ve özetlemekte ve özetlenir ve yazılım geliştirmenin tüm aşamalarını destekleyen anlamına gelir. Görsel programlamanın metodolojisi gelişmekte ve dilleri programlamaktır. Donanımın iyileştirilmesi, derleme işlemlerini hızlandırır ve ayrıca oluşturulan programların etkinliği konusunda endişelenmemesine izin verir.

Disiplinin amacı "Yazılım Geliştirme Metodolojisi" - Öğrencilere yazılımın tasarımı için temel ilkeleri öğretmek, yazılımın geliştirme, test edilmesi ve belgelendirilmesi için kavramları, metodolojilerini tanımak.

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

Temel konseptler

Yedi bilgi işlem sistemi türünü tahsis etmek için gelenekseldir:

· Matematiksel;

· Dilbilim;

· Bilgi;

· Yazılım;

· Teknik;

· Metodik;

· Organizasyonel.

Her türlü yazılım, yazılım (yazılım) özel bir yer kaplar, çünkü ekipman maliyetinin ana payı ve uçağın işletimi yazılım üzerindedir. Bu temel kavramları bir program, yazılım paketi, yazılım sistemi, yazılım ve yazılım olarak tanımlarız.

Altında programanlayacağız:

1) İşlemcileri (yürütülebilir program) için uygun bir dizi kod ve veri;

2) Yerel bir görevi çözmek için tasarlanmış nispeten küçük bir boyutun bağımsız bir bileşeni (sistem bileşeni olarak program).

Yazılım kompleksi veya yazılım sistemi - Bu, genel yönetim altındaki kararlaştırılan çalışma programlarının bir kombinasyonudur, karmaşık bir görevi veya çok sayıda ilişkili görevi çözmek için tasarlanmıştır.

Geçmiş test yazılımı kompleksi, tamamen satılmaya hazır (tedarik) ve gerekli tüm belgelerle birlikte verilir, yazılım ürünleri (ürün) veya yazılım.

Yazılım - Hangi programların anlaşıldığı en yaygın kavram, bu terimi kullanmanın bağlamına bağlı olarak, toplamda veya ayrı ayrı yazılım sistemleri veya ürünleri.

Yazılım ürünlerini şartlı olarak küçük, orta ve büyüklere ayıracağız. Küçük programların kaynak metninin kapsamı, üst düzey dilin birkaç yüz operatörü, orta ila on binlerce ve büyük, bir milyona kadardır.

Çoğu durumda, programlar özel araştırma görevlerini çözmek, hesaplamaları, modelleme işlemlerini vb. Hızlandırmak için tek bir kopyada oluşturulur. Bu tür programların kitlesel kullanımı yoktur ve yalnızca onları geliştirenler için kullanılabilir. Onlar bilimsel ve teknik yaratıcılık nesneleridir ve sadece istisnai durumlarda endüstriyel ürünler haline gelir.

Tamamen farklı bir program sınıf sınıfı, şu anda üretim ve teknik ürün olarak nitelendirilecek tam teşekküllü yazılımdır. Bu kapasitede, yazılım ürünleri doğrudan üretken güçtür ve diğer herhangi bir endüstriyel üründen farklı değildir.

İyi bir yazılım ürünü oluşturmak çok zaman alıcı bir görevdir, çözümü genellikle bir kişi yapamaz. Tek programcılar ("Hacker'lar"), önemsiz sorunların, yeni yöntemlerin oluşturulmasını, yeni yöntemlerin oluşturulması ve programlama fikirlerinin oluşturulması, önemli bir şöhret kazanması için mükemmel bir hediyeye sahip olabilir. Bununla birlikte, güçlerinde tek başına güçlerinde değil, kabul edilebilir terimler için orta ve büyük yazılım ürünlerinin geliştirilmesinin tüm problemlerini çözer.

Böylece şu anda, herhangi bir önemli ürünler programcıların ekipleri tarafından oluşturulur. Bu gruplarda, bu tür nitelikler, okuryazarlık, disiplin, güvenilirlik ve iletişim kabiliyeti olarak geliştirici programcısında takdir edilir. Okuryazarlık, yazılımın, randevularını ve özelliklerinin gelişmiş yöntemlerini ve geliştirilmelerinin gelişmiş yöntemlerini ve geliştirilmelerinin bilgi ve anlayışı, bu bilgiyi uygulamada uygulama becerisi olarak anlaşılmaktadır.

Yazılım Kalite Özellikleri

Tatmin edici bir kalite oluşturan yazılım özellikleri kümesi PS, 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 göz önünde bulundurulması gereken konumdan. Bu nedenle, kalite kalitesini tanımlarken, her şeyden önce, yazılımın gerekli özellikleri için seçim kriterleri sabitlenmelidir. Şu anda İçin Kalite Kriterleri (Yazılım kalitesi kriterleri) Gelenekseldir:

İşlevsellik;

Güvenilirlik;

Kullanım kolaylığı;

Verimlilik;

Eşlik;

Hareketlilik.

İşlevsellik, belirtilen veya ima edilen kullanıcı ihtiyaçlarını karşılayan bir dizi işlevi gerçekleştirme yeteneğidir. Belirtilen işlevler kümesi, yazılımın harici açıklamasında belirlenir.

Yazılımın güvenilirlik (güvenilirlik), belirli koşullar altında belirli koşullar altında belirli bir süre boyunca belirli bir süre boyunca belirli bir süre için yeterince büyük bir olasılıkla güvenilir bir şekilde gerçekleştirebilme kabiliyetidir. Aynı zamanda, içindeki hataların tezahürünü anlamayı reddetmek. Böylece, güvenilir yazılım, içindeki hataların varlığını dışlamaz - bu hataların bu hataların bu hataların belirtilen koşullarda nadiren tezahür ettiği önemlidir. Yazılımın test ederek ve pratik olarak test ederken böyle bir özelliğe sahip olduğundan emin olun. Böylece, aslında, yalnızca güvenilir ve doğru bir yazılım olmayabiliriz.

Güvenilirlik derecesini değerlendirirken, her bir arızanın sonuçlarını dikkate almak da gereklidir. Yazılımdaki bazı hatalar uygulandığında yalnızca bazı rahatsızlıklara neden olabilir, diğer hatalar, örneğin insan hayatını tehdit ettiler. Bu nedenle, ek göstergeler, her arızanın kullanıcısı için maliyet (zarar) dikkate alınır, bazen güvenilirlik kullanır.

Kullanım kolaylığı, kullanıcının kaynak verilerini hazırlama, yazılımın kullanımını, yazılımın kullanımını ve elde edilen sonuçların değerlendirilmesini ve belirli veya zımni bir kullanıcının olumlu duygularına neden olma çabalarının kullanımını en aza indirmenize olanak tanıyan yazılım özellikleridir.

Verimlilik, kullanıcı tarafından verilen hizmetlerin sağladığı hizmet seviyesinin, kullanılan kaynakların hacmine oranıdır.

Eşlik, hataları ortadan kaldırmak için değişiklikler yapmak ve kullanıcıların değişen ihtiyaçlarına uygun olarak değiştirilecek değişiklikleri en aza indirmenize izin veren yazılım özellikleridir.

Mobilite, bir ortamdan (ortamdan) bir başkasına, özellikle de bir bilgisayardan diğerine aktarılabilme yeteneğidir.

İşlevsellik ve güvenilirlik zorunlu kalite kriterleridir. Göre, güvenilirliğin, tüm aşamalardan ve yazılım geliştirme süreçlerinden geçmek için kırmızı bir iplik olacaktır. Kalan kriterler, kullanıcıların yazılım gereksinimlerine uygun olarak ihtiyaçlarına bağlı olarak kullanılır. Her kriterlerin her biri için yazılımın kalitesini belirtmek için, yazılımın yeterince basit bir özelliğinin standart bir seti, geliştiriciler tarafından benzersiz bir şekilde yorumlanır. Arayacağımız gibi özellikler kalite ilkelleri. Bazı ilkelerden bazıları birkaç kriterde kullanılabilir. Aşağıdakiler kalite kriterlerinin kalite ilkellerinden bağımlılığıdır.

İşlevsellik: Tamamlama.

Güvenilirlik: Tamamlanma, doğruluk, özerklik, istikrar, güvenlik.

Kullanım Kolaylığı: P-Vafseler, Bilişim (yalnızca uygulama belgeleri ile ilgili olarak), Sosyallik, Sürdürülebilirlik, Güvenlik.

Verimlilik: Zaman verimliliği, kaynaklar için verimlilik (hafıza), cihaz verimliliği.

Eşlik. Bu kritere sahip birçok farklı kalitede ilkel bağlanır. Bununla birlikte, iki grupta iki grupta dağıtılabilirler, iki kalite condroduvterini tahsis edilebilirler: yorulma ve değiştirilebilirlik.

Düzenlik, programları ve yazılım için belgeleri inceleme ve anlama çabalarını en aza indiren yazılımın özellikleridir.

Değişiklik, yazılımın kullanım koşullarını otomatik olarak ayarlamanıza veya manuel olarak gerekli değişikliklerin ve iyileştirmelerin tanıtımını basitleştirmenize olanak tanıyan yazılımın özellikleridir.

Keşfetmek: C-DocuMenance, Bilişim (BURADA KABUL EDİLEN DOKÜMANLARA UYGULANACAK), Net, Yapı, Okunabilirlik.

MOBİLİMLİLİK: Genişletilebilirlik, Değişebilirlik (Dar anlamda, ilkel bir kalite olarak), yapı, modülerlik.

Mobilite: Cihazlardan bağımsızlık, özerklik, yapı, modülerlik.

Aşağıdakiler, kullanılan yazılım ilkelerinin tanımlarıdır.

Tamamlanma (eksiksizlik), açık ve örtük işlevlerini yerine getirmek için gereken tüm gerekli parçalar ve özellikler boyunca sahip olma derecesini karakterize eden bir özelliktir.

Doğruluk (Doğruluk) - Hatanın büyüklüğünün, sonuçlar tarafından verilen programlarda, kullanım amaçlarının bakış açısıyla verilen programlarda kabul edilebilirliğini karakterize eden bir önlem.

Özerklik (kendi kendine yeten (kendi kendine yeten), başka yazılım bileşenlerine yardımcı olmadan veya desteklemeden öngörülen işlevleri takip etme yeteneğini karakterize eden bir özelliktir.

Sürdürülebilirlik (Sağlamlık) - Yanlış (hatalı) giriş verilerine rağmen, doğru çalışmaya devam etme yeteneğini karakterize eder.

Savunma, kasıtlı veya belirtilmemiş yıkıcı (yok edici) kullanıcı eylemlerine direnme yeteneğini karakterize eden bir özelliktir.

U-dokümanları (U. Dokümantasyon) - Yazılımın kullanımı için gerekli eğitim, öğretici ve referans belgelerinin varlığını, eksiksizliğini, anlaşılabilirliğini, kullanılabilirliğini ve netliğini karakterize eder.

Bilgilendirme (Hesap Verebilirlik) - İstenilen ve yeterli ve bireysel bileşenlerin sonuçları, giriş verileri ve bireysel bileşenlerin sonuçlarını ve işlemdeki geçerli programların durumunu anlamak için gereken bilgilerin varlığını karakterize edin. operasyonlarından.

İletişim kabiliyeti (iletişimsellik), yazılımın kolaylaştırdığı bir dereceyi veya giriş verilerinin bir tanımını ve faydalı bilgiler üretme yeteneğini ve içeriği anlamak için basit bir şekilde faydalı bilgiler üretme yeteneğini karakterize eden bir özelliktir.

Zaman verimliliği, belirli bir süre için atanan işlevleri gerçekleştirme yeteneğini karakterize eden bir ölçüdür.

Kaynak Verimliliği - Ölçme (Kaynak Verimliliği) - Kullanılan kaynaklara (kullanılan hafıza) belirli kısıtlamalarla atanan işlevleri gerçekleştirme yeteneğini karakterize eden bir ölçü.

Cihazın verimliliği verimliliği, görevi çözmek için makinenin cihazlarının verimliliğini karakterize eden bir ölçüdür.

C-Documentation (Dokümantasyon), fırsatlar, kısıtlamalar ve diğer özellikler de dahil olmak üzere, bu yazılımın gelişiminin gereksinimlerini ve bu yazılımın gelişmesinin çeşitli aşamalarının sonuçlarını yansıtan belgelerin kullanılabilirliği açısından karakterize edici bir özelliktir.

Anlaşılabilirlik, yazılımın ödevini, varsayımları ve kısıtlamaları, giriş verilerini ve programlarının sonuçlarını, bu programların metinlerini ve uygulamalarının durumlarını anlamasını sağlayan dereceyi karakterize eden bir özelliktir.

Yapısallık, program yazılımını birbirine bağlı parçaların organizasyonu açısından tek bir tamsayı (örneğin, yapısal programlama prensiplerine göre) karakterize eden bir özelliktir.

Okunabilirlik (Okunabilirlik) - Yazılım yazılımı metni algısını karakterize eden bir özellik (girintiler, parçalanma, biçimlendirme).

Genişletilebilirlik (artırılabilirlik), verileri depolamak veya bireysel bileşenlerin işlevselliğini genişletmek için daha büyük bir bellek kullanma yeteneğini karakterize eden bir özelliktir.

İşlemsellik - Yazılım ömrü döngüsünün tüm aşamalarında ve aşamalarında gerekli değişiklikleri yapma ve iyileştirmeyi kolaylaştırma açısından karakterize edici bir ölçü.

Modülerlik (Modülerlik), programlarını bu tür ayrık bileşenlerden organize etme açısından karakterize edici bir özelliktir. Bunlardan birinde değişikliğin diğer bileşenler üzerinde minimum bir etkisi olduğu için

Cihaz Bağımsızlık, çeşitli donanımlar üzerinde çalışma yeteneğini karakterize eden bir özelliktir (çeşitli türler, pullar, bilgisayar modelleri).

Yazılım geliştirme sertifikası ile tamamlanır. Yazılımın sertifikası - bu, kalitesinin yetkili bir onaydır. Kural olarak, uzmanların komisyonu sertifikasyon için oluşturulur. Bu Komisyon, kalitesini değerlendirmek için gerekli bilgileri elde etmek için yazılımın kabul testi gerçekleştirir. Aynı zamanda, yalnızca kurulan kalite kriterleri ve kalite ilkelleri değerlendirilir.

Bilgi tabanında iyi çalışmanızı göndermeniz basittir. Aşağıdaki formu kullanın

Öğrenciler, lisansüstü öğrenciler, bilgi tabanını çalışmalarında kullanan genç bilim adamları ve çalışmaları size minnettar olacak.

tarafından gönderildi http://www.allbest.ru/

tarafından gönderildi http://www.allbest.ru/

Modern Yazılım Kalite Modelleri

Giriş

yazılım Kalitesi Döngüsü

Modern yazılım endüstrisi, çok yüksek bir rekabet derecesi ile karakterize edilir, bu nedenle şirketin yazılım pazarındaki rekabet gücünü sağlayan koşullardan biri, yüksek kaliteli programlar konusudur.

Modern yazılımın karmaşıklığındaki ve büyüklüğündeki hızlı artış, fonksiyonların sorumluluğunu arttırmak, yazılımın verimliliği ve güvenilirliği için kullanıcının güvenilirliği için keskin bir şekilde artan kullanıcı gereksinimlerini arttırır.

Yazılım ürününün kalitesinin değerlendirilmesinde kullanılan ana kriterlerden biri, kullanıcıların beklentilerinin uygunluğunun, kurulan veya iddia edilen ihtiyaçlarını uygulayabileceği gerçeğine uygunluğunun derecesidir.

Bu ifadelerin eşit olmadığından emin olmak için, iki yaklaşımı projenin başarısının tanımına göre karşılaştırıyoruz:

Program projesinin başarısının yukarıdaki tanımı, genel olarak projenin başarısının belirlenmesinden biraz farklıdır, çünkü daha pragmatiktir. "Tüketici toplantıları" kelimelerinin tanımında ifade edilen başarılı bir sonucu elde etmeyi amaçlayan kuruluşun yönetimine odaklanmıştır. Nihai yazılım ürününün başlangıçta planlanan tüm yeteneklere sahip olmadığı gerçeği, şirketin yönetim, pazarlama ve satış departmanlarını ve en önemlisi kullanıcıları karşıladığı önemli değildir.

Bu sloganın pratik uygulaması için, Program projesinin başı ve katılımcıları tüketicilerin ihtiyaçlarını anlamalı, yazılım kalitesinin seviyesini değerlendirebilmeli, projeyi belirlenen geçici ve finansal çerçeveler içinde nasıl tutacağınızı bilmek.

Herhangi bir program projesindeki katılımcılar, yazılım geliştiricilerine ek olarak, üç ana kategori içerir. Bunlar alıcılar, kullanıcılar ve yatırımcılardır. Bu partilerin her biri çıkarlarını takip ediyor. Bu durumda, her birey veya bir kuruluşun hem birini hem de birkaç kategoride girebilir (örneğin, bir kullanıcı bir alıcı olabilir ve alıcı bir yatırımcı olabilir) ve projenin kendisi türlerinden birinin gelişmesini ima edebilir. Proje katılımcıları açısından sınıflandırma:

· Perakendecilik (örneğin, bilgisayar oyunları, eğitim programları) uygulamak için tasarlanmış programlar tarafından hangi programların anlaşıldığı tüketici yazılımı. Bu durumda kullanıcılar genellikle alıcılardır ve şirket - geliştirici bir yatırımcıdır.

· Üretim Yazılımı, yani. Herhangi bir değişiklik olmadan şirketler ve kuruluşlar tarafından satın almak için tasarlanmış büyük sistemler (örneğin, CAD veya Yayınlama sistemleri). Genellikle alıcı, bilgi teknolojisi yapan bir kuruluşdur ve geliştirici şirketi bir yatırımcıdır.

· Özelleştirilmiş sistemler belirli bir sözleşmeye uygun olarak geliştirilmiştir. Hükümet organizasyonları veya büyük şirketler müşteri olarak hareket edebilir. Özel siparişe bağlı olarak, yatırımcının rolü hem Şirketi hem de geliştirici hem de şirket - bu tarafların her ikisinin de müşteriyi oynayabilir.

· Belirli müşteri spesifikasyonlarına kurulu olan kullanılan bileşenlerden oluşan patentli sistemler oluşturmayı mümkün kılan özel siparişlerle yapılan bileşenler. Alıcılar şirketin bilgi teknolojisi departmanlarıdır - müşteri, tüketiciler diğer bölümlerin çalışanlarıdır. Yatırımcı şirkettir - geliştiricidir.

· Dahili yazılım. Bu yazılımın alıcıları en sık bu programı ürünlerine tanıtmak isteyen tüketim malları, oyuncaklar vb. Üreticileridir. Bu ürünün alıcılarının her iki kullanıcısı aynı anda.

Halen, müşteri ile yazılım geliştiricisi arasında birkaç etkileşim şeması vardır.

"Müşteriniz"

Geliştirici ekibinin uzun süredir tek müşteriye hizmet verdiği durum. Kural olarak, bu seçenek müşteri ile geliştiriciler arasında iyi kurulmuş ilişkiler ile karakterizedir. Genellikle, bu tür takımlar müşterinin topraklarında bulunur. Bu tür bir projenin temel özellikleri:

· İstediğiniz zaman müşterinin kullanılabilirliği;

· İşbirliği yılları boyunca oluşturulan müşterinin ihtiyaç ve ihtiyaçları hakkında sürdürülebilir bir fikir;

· Oldukça esnek yazılım kalite gereksinimleri;

· Ürünlerinin sürekli bakımı, iyileştirilmesi ve iyileştirilmesi;

· Müşteri ve geliştiriciler arasında sürdürülebilir finansal ilişki;

· Uzun vadeli işbirliği planları.

Siparişin altında Ürün

Geliştirici ekibinin üçüncü şahıs bir müşteriyi bulduğu ve müşterinin belirli sorunlarını çözmek için tasarlanmış bir yazılım ürününün geliştirilmesinde kabul ettiği durum. Bu tür bir projenin temel özellikleri:

· Müşterinin mevcudiyeti "periyodik" olarak tanımlanabilir;

· Müşterinin ihtiyaç ve ihtiyaçları fikri anket temelinde oluşturulur;

· Bitmiş ürünün kabul edilmesinin yapıldığı yazılım gereksinimlerini önceden olumsuzlayın;

· Bir kerelik sözleşme biçiminde finansal ilişkiler;

· Daha fazla işbirliği için planlar, geliştiricinin müşteriyi belirlediği ürünün kalite ve sürdürülebilirliğine büyük ölçüde bağlıdır.

Çoğaltılabilir Ürün

Geliştirici ekibinin ya ("kutulu ürün") ya da aynı üründe oldukça önemli sayıda müşteri yoktur. Bu tür bir projenin temel özellikleri:

· Ürün gereksinimlerini oluşturan özel müşteri mevcut değildir;

· Gerçek ve potansiyel kullanıcıların ihtiyaç ve ihtiyaçları hakkında bir fikir, piyasa analizi ve tipik kullanıcı temsilcileri ile temaslar temelinde oluşturulur. Ürün kullanıcılarından gelen geri bildirimler, esas olarak e-posta veya yardım hattıyla gerçekleştirilir;

· Yazılım kalitesi, yalnızca iç kalite departmanı tarafından izlenir + kullanıcılardan gelen geri bildirimler. Beta testi yaygın olarak kullanılır;

· Önceden belirlenmiş bir süre için geliştirici, teslim edilen ürünü desteklemektedir;

· Ürün için sabit bir fiyat biçiminde finansal ilişkiler;

· Ürün geliştirme planları, piyasa analizi temelinde oluşturulur.

Dış kaynak kullanımı

En genç yazılım üretim modeli. Batı meslektaşlarına kıyasla, Rus programcılarının yüksek nitelikleri ve mümkün olan en düşük işçiliği nedeniyle ortaya çıktı ve daha sonra büyük Rus şirketleri tarafından kullanılmaya başlandı - yazılım üreticileri. Böyle bir modelin özü, büyük bir yazılım üretim şirketi ile küçük ölçekli kuruluşlar arasında taşeronluk konusunda bir anlaşma olmasıdır. Bu tür bir projenin temel özellikleri:

· Geliştirici, ürünlerinin son kullanıcısı ile temas etmemektedir. Tüm bilgiler, büyük bir yükleniciden teknik bir görev biçiminde elde edilir;

· Müşterinin ihtiyaç ve ihtiyaçları fikri ancak yüklenici tarafından sağlanan bilgiler temelinde oluşturulmuştur;

· Yüklenici, yazılım üretim süreci ve kalitesi için gerekliliklerini sağlar;

· Kural olarak ürün desteği, bir yüklenici yürütür;

· Geliştiricinin ekibi ve yüklenicinin üyeleri arasındaki bireysel sözleşmeler biçiminde finansal ilişkiler var. Bir seçenek, Yüklenici ile geliştirici ekibinin adına etki eden tüzel kişilik arasında bir anlaşma yapmaktır.

Yazılım kalitesinin sağlanmasının en önemli sorunlarından biri, kalite özelliklerini ve değerlendirmelerinin metodolojisini resmileştirmektir. Aynı zamanda, yazılım geliştirmek için teknik atamaları hazırlarken, genellikle Sessizlik ile karşılaştırıldığında veya yazılım ürününün kalitesinin özellikleri için gereklilikleri açıkça belirtilmemektedir, ölçülmeleri gerektiği gibi tanımlanmamıştır ve sözleşme ve özellikler. Sonuç olarak, aynı özelliklerin farklı yorumlanmasından dolayı müşteriler / kullanıcılar ve geliştiriciler / tedarikçiler arasında çatışmalara neden olur.

Bu çelişkileri ortadan kaldırmak için, süreçleri ve ürün yaşam döngüsü ürünlerini yöneten uluslararası standartların bilgisini ve uygun kullanımını bilmek gerekir. Bununla birlikte, bu standartların ardından tamamen mekanik olmamalıdır: belirli bir program projesinin koşullarına uyarlanmaları gerekir.

1. Yazılım Kalite Standartları

Şu anda, genellikle birbirleriyle uyumlu birkaç kalite tanımları vardır. En yaygın olanı verelim:

ISO Tanımı: Kalite, talep edilen veya ima edilen ihtiyaçları karşılayabilme yeteneği sağlayan ürün, işlem veya hizmetlerin özellikleri ve özelliklerinin eksiksizdir.

IEEE tanımı: Yazılım kalitesi, istenen özelliklerin birleşimine sahip olduğu derecedir.

Yazılım mühendisliği alanındaki ana kalite standardı şu anda ISO / IEC 9126: 1-4: 2002 (GOST R ISO / IEC 9126-93). Buna ek olarak, kalite özelliklerini değerlendirme yöntemlerini düzenleyen bir ISO / IEC 14598 standartları verilir. Toplamda, kare olarak bilinen bir kaliteli model oluştururlar (yazılım kalitesi gereksinimleri ve değerlendirmesi).

ISO 9126 standardına uygun olarak, yazılımın kalitesi (PS) genel fikri, yansıtan üç etkileşimli ve birbirine bağlı kalite özelliği ile tarif edilmesi önerilir:

· Spesifikasyonlarda müşteri gereksinimleri tarafından belirtilen ve nihai ürünün özelliklerine yansıtılan dış kalite;

· Geliştirme sürecinde ve PS yaşam döngüsünün diğer ara aşamalarında iç kalite;

· Normal çalışma sürecinde kullanıldığında kalite ve kaynak maliyetlerini dikkate alarak kullanıcı ihtiyaçlarının etkinliği.

Dış ve iç kalite özellikleri, yazılım sisteminin kendisinin özellikleri ile ilgilidir ve müşterinin ve geliştiricinin görünümünü yansıtır. Bununla birlikte, nihai kullanıcı, PS'nin kullanımından elde edilen maksimum agrega etkisini bekliyor - artan verimlilik ve yazılım ürünüyle genel memnuniyet. Böyle bir bakış, yazılım sisteminin kalitesine, "kullanırken kalite" veya yazılımın "çalışma kalitesi" terimi ile gösterilir.

Yazılım sisteminin nitelikleri, kalitesini karakterize eden, kaliteli bir metrik kullanılarak ölçülür. Metrik, belirli bir ölçüm yönteminin (değer elde etme yöntemi), özün ve ölçme ölçeğinin niteliği (elde edilen değerleri mücadele etmek için kullanılan araçlar). Metrik, özelliğin ölçülmesini belirler - ölçüm sonucu değeri atanan değişken (bkz. Şekil 3.1).

Kalite gereksinimlerinin belirlenmesi, genellikle işleyen bir yazılım ürünü için gereksinimleri yansıtan dış kalite özellikleri listesiyle başlar. Ayrıca, yazılım sisteminin gereksinimlerinin, Niteliklerin tahmini olan, PS ve ilişkili metriklerin uygun harici ölçülebilir özelliklerinin (harici özellikler) gereklilikleri ile doğrulanıp doğrulanacağı kalite kriterlerini ölçülecektir. İlgili niteliklerin değerlerini (ölçümler) değiştirmek için kabul edilebilir aralıkların yanı sıra (bkz. Şekil 3,1).

Metrikler, tanımı ve uygulaması, yalnızca sistemdeki testte veya işleyiş aşamalarında çalışan bir yazılım için mümkündür, harici metrikler denir. Dış metrikler, müşterilere, kullanıcılara ve geliştiricilere test etme ve deneme işlemi sırasında yazılımın kalitesini izleme ve analiz etme fırsatı sağlar.

İncir. 3.1. Kalite Ölçüm Sistemi

Harici ölçümlerin gereksinimlerini belirledikten sonra, PS'nin kalite ve dahili niteliklerinin iç özellikleri belirtilmiştir. Son yazılım ürününün kalitesinin gerekli dış özelliklerinin başarısını planlamak ve bunları gelişme sırasında orta (çalışan) PS ürünlerine gömmek için kullanılırlar. Sonra iç kaliteli metrikler belirlenir. Kalitenin, niteliklerin ve metriklerin iç özelliklerinin kavramları, test etme aşamalarında elde edilen bilgisayar olmayan PS çalışma ürünleri (belgeler, kod metinleri, testler vb.) (Gereksinimlerin tanımı, tasarım, kodlama) ile ilişkilidir. .

İç metrikler, programların yaşam döngüsünün kalitesini tahmin etmek ve yazılım ürünü kullanmaya hazır hale gelmeden önce teknolojik kalite güvencesi ile başa çıkmak için geliştiricilere, testler ve müşterilere fırsat sunar. Özellikler, kaynak kodu veya belgeler gibi yazılım sistemi bileşenlerine tasarım ve programlama sırasında iç metrikler uygulanabilir. İç metrik kullanmanın asıl amacı, gerekli dış kaliteyi sağlamaktır.

Kaliteli metrikler, ürünün hedeflere ulaşmada belirli kullanıcıların ihtiyaçlarını karşıladığına göre yansıtılır. Bu metrikler, Toplulukları nedeniyle ISO 9126-1 standardının yönettiği altı temel özellik sayısına yansıtılmaz, ancak, ISO 9126-4 standardındaki programların işleyişinin ve uygulanmasının sonuçlarını entegre olarak değerlendirmeniz önerilir.

Yazılım modellemesine genel yaklaşım, önce en yüksek soyutlama seviyesinin kalitesinin (özelliklerini) ve ardından bu özellikleri alt özellikler setlerine bölmek için küçük bir öznitelik (özellikleri) tanımlamaktır. ISO / IEC 9126 standardı bu yaklaşımın tipik bir örneğidir. Yazılımın kalitesini değerlendirmek için, her biri birkaç düzenleyici subkracker tarafından detaylandırılan altı adet temel gösterge grubu kullanılır. Standarttaki özellikler ve subcharactercy, belirli sistemlere ve projelere yapılan başvuruları için yorum yapmadan ve ayrıntılı önerilerden kısa. Açıklamada kavramsal bir yapıya sahiptir ve nesnenin özelliklerine, geliştirme ortamı, bakım ve uygulamanın özelliklerine bağlı olarak, seçenek ve deneyim öncelikleri için öneriler ve gerekli minimum kriterleri içermez. Standartın ilk kısmı - ISO 9126-1 - Yazılım kalitesinin niteliklerini standartların diğer bölümlerinde kullanılan altı özelliğe dağıtır. Önemli olanakların temel olanaklarına dayanarak, tüm özellikler, farklı kategorilerin standartlara uygulandığı üç gruba birleştirilebilir, her bir PS kalite özelliğinin (subkrackrackeristers veya niteliğinin) doğruluk ve tanımla sağlanması önerilir. Teknik görevlerin ve spesifikasyonların ve ölçümlerin nesnel olması ve çoğaltılmasıyla ilgili şartlarla karşılaştırılması için yeterli. :

· Yazılımın işlevselliğini değerlendirmek için · kategori veya tanımlayıcı (nominal) metrikler kullanılır;

· Karmaşık program komplekslerinin güvenilirliğini ve etkinliğini ölçmek için kantitatif metrikler uygulanabilir;

· Kalite metrikleri, yazılımın pratiklik, eşlikleri ve hareketliliğiyle en çok tutarlıdır.

Standart - ISO 9126-2 ve ISO 9126-3'ün ikinci ve üçüncü kısmı, karmaşık yazılımın kalitesinin sırasıyla dış ve iç metriklerinin formalizasyonuna ayrılmıştır. Tüm tablolar, metrikin isminin ve amacının yansıtıldığı birleşik bir yansıması içerir; Uygulamasının Yöntemi; ölçüm yöntemi, ölçek metrik türü; ölçülen değer türü; ölçüm ve karşılaştırma için kaynak verileri; Metric'in uygulanabilir olduğu yazılım ömrü döngüsünün (ISO 12207 ile) aşamalarının yanı sıra. Standart - ISO 9126-4'ün dördüncü kısmı, alıcılar, tedarikçiler, geliştiriciler, yazılım, kullanıcılar ve kaliteli yöneticiler için destek hizmetleri için tasarlanmıştır. Seçilen yazılımların kullanımı ve seçilen metriklerin gruplarının kullanıcıları için seçilen göstergeleri hakkında kanıtlar ve yorumlar. Yazılımın kalitesini değerlendirmek ve alt kısımlarını netleştirmek için kullanılan özellikler Tablo 3.1'e düşürülür.

Masa. 3.1. Yazılım Kalite Özellikleri

İşlevsellik (işlevsellik) Bu kalite öznitelikleri kümesi karakterize eder ne Yazılım, kullanıcının ihtiyaçlarını karşılamaya başlarken, diğer setler esas olarak karakterize edilir. ne zaman ve nasıl Bu bitti.

Yerleşik veya iddia edilen kullanıcı ihtiyaçlarını uygulamak için yazılım yeteneği

Randevu Fitness (Uygunluk)

İşlev kümesinin belirli görevlere varlığı ve yazışması

Örneğin, gerekliliklerin (doğruluk) uygulanmasının doğru / doğruluğu, hesaplanan değerlerin gerekli doğruluk derecesi.

Sonuçların doğruluğunu (veya uyumluluğunu) sağlamak için yazılım yeteneği

Bileşenler ve birlikte çalışabilirlik ile etkileşime girme yeteneği) değiştirilebilirlik ile olası karışıklığı önlemek için uyumluluk yerine etkileşime girme yeteneği kullanılır.

Belirli sistemlerle etkileşime girme yeteneği

Uyumluluk (uyumluluk)

İlgili standartlara veya anlaşmalara veya ayrıntılı önerilere uymak için yazılım yeteneği

Güvenlik / Güvenlik Güvenliği (Güvenlik)

Yetkisiz erişimi (rastgele veya kasıtlı olarak) programlara ve verilere engelleme yeteneği

Aşınma veya yaşlanma yazılımının güvenilirlik (güvenilirlik) gerçekleşmez. Güvenilirlik kısıtlamaları, gereksinimleri, tasarım ve uygulamayı belirleme aşamasında ortaya çıkan hatalar nedeniyle ortaya çıkmıştır. Bu hatalar nedeniyle arızalar, yazılım ve daha önce seçilen yazılım sürümlerini kullanma yöntemine bağlıdır.

Ayarlanan süre için belirlenmiş koşullar altında işleyen kalite seviyenizi korumak için yazılım yeteneği.

Kararlılık / Tamamlama Seviyesi (Olgunluk)

Yazılımdaki hataların varlığından kaynaklanan başarısızlıkların sıklığı ile karakterize edilir.

Hata Direnç (Hata Toleransı)

Program hataları veya belirli bir arayüzün ihlali durumlarında belirli bir kalite kalitesini korumak için yazılım yeteneği

Repaility Kusurların (İyileşme) belirtilmesinden sonra, dinlenebilirlik iki yönüyle karakterize edilir: gelişme kusurlarını (bakımın) ortadan kaldırmanın kolaylığı ve kullanım koşullarında yazılım ürününün bakım kolaylığı (bakım). Kusur kavramı, önce ayarlanan görevleri önleyen sistemin bir kısmı olarak tanımlanabilir. Kusurlar, geliştirme sırasında onaylanan hatalardan kaynaklanabilir veya sistem için yanlış anlama şartları nedeniyle ortaya çıkabilir. Sistem kusurlarının ortadan kaldırılması maliyet etkinse sistemin geri kazanılabilir olduğu kabul edilir. Regenability, aşağıdaki iki koşulla sağlanabilir: kusur kaynaklarının ortadan kaldırılması kolaydır, bir kusurun ortadan kaldırılması diğerini oluşturmaz. Genellikle, sistem tasarımı, programın bölümlerinin her birinin hangi fonksiyonların gerçekleştirilmesi gerektiğini açıkça belirtilmişse, yazılım geri yüklenir. Kötü kalitede bir programın belirtilerinden biri, program kodunun kırılganlığıdır: kusurun her seferinde her seferinde, programın diğer bölümlerinde sorunlar ortaya çıkar.

KALİTE ÇALIŞMASININ KALİTE ÖDÜLÜLENDİRMESİ VE DEĞERLENDİRME GERÇEKLEŞTİRİLMESİ. Gerekli çaba ve zaman ile karakterize

Pratiklik (kullanılabilirlik) Kullanıcıların aralığı, bu yazılımı etkileyen veya kullanımına bağlı olan kullanıcıların operatörleri, son kullanıcıları ve dolaylı kullanıcıları içerebilir. Uygulama koşullarının tüm çeşitliliğinde, kullanım için hazırlık ve sonuçları değerlendiren kullanıcının tüm çeşitliliğinde değerlendirilmelidir.

Belirli veya iddia edilen bir kullanıcı çemberiyle yazılımın kullanımı için gereken işin kapsamı ile karakterizedir.

Özelliklerin ve belgelerin kurduğu (anlaşılabilirlik)

Kullanıcının, yazılımın genel mantıksal kavramını ve uygulanabilirliğini anlama çabalarını karakterize eder.

Operasyon ve uygulama süreçlerinin bozulması (öğrenilebilirlik)

Kullanıcının Eğitim Kullanıcı Uygulamasının kullanımını karakterize eder (örneğin, Operasyonel Yönetim, Giriş, Sonuç)

Kolay kullanım (çalıştırılabilir)

Kullanıcı ve operasyonel yönetimin çabalarını karakterize eder

Verimlilik (Verimlilikler) Kaynakları, diğer yazılım ürünleri, teknik araçlar, sarf malzemeleri (örneğin, yazdırma kağıdı, esnek diskler) ve sömürülen, eşlik eden veya servis personelinin hizmetlerini içerebilir.

Yazılımın kalite seviyesi ile belirlenmiş koşullar altında kullanılan kaynakların miktarı arasındaki ilişki tarafından belirlenir.

Zaman Davranışı Programı Uygulama Verimliliği

Yanıt süresi ve fonksiyonların hızı ile karakterize edilir.

Alıcı davranışı (kaynak davranışı)

Kullanılan kaynakların miktarı ve bir işlevi gerçekleştirirken yazılımın kullanım süresi ile karakterize edilir.

Erişilebilirlik (bakım) değişimi, çevre koşullarında, gereklilikleri ve kullanım koşullarındaki değişikliklere düzeltmeler, iyileştirme veya adaptasyon yazılımını içerebilir.

Beton değişiklikler için gereken işin kapsamını karakterize eder (modifikasyonlar)

Analiz edilebilirlik (analiz edilebilirlik)

Kusurları veya başarısızlık vakalarını veya modernizasyon için bileşen parçalarının belirlenmesi için gerekli çabaları karakterize eder.

Bileşenleri ve Programları Değiştirme (Değişkenlik)

Değişiklik için gerekli çabayı karakterize eder, başarısızlığı ortadan kaldırır veya çalışma koşullarını değiştirme

İSTİKRAR)

Değişimin öngörülemeyen etkilerinden kaynaklanan riski karakterize eder

Eşlik eden değişikliklerin test edilebilirliği (test edilebilirlik)

Değiştirilmiş yazılımı doğrulamak için gereken çabayı karakterize eder

Hareketlilik (taşınabilirlik) Çevre, organizasyonel, teknik veya yazılım ortamını içerebilir.

Bir ortamdan diğerine transfer edilecek yazılım yeteneği

Çevredeki değişikliklere uyarlanabilirlik (uyarlanabilirlik)

Görülen yazılımda bunun için tasarlanmış olanlar hariç, diğer eylemler veya yöntemlerin kullanılmasından, çeşitli özel çalışma koşullarına uyum sağlama kolaylığını karakterize eder.

Kurulum / Uygulama / Kurulumun Basitliği Transferden Sonra (Kurulum)

Yazılımı belirli bir ortama uygulamak için gereken çabayı karakterize eder.

Konformasyon (CONFORTNCNCE)

Mobilite ile ilgili standartlara veya kongrelere uymak için yazılım yeteneği

Program kompleksini (değiştirilebilirlik) ayarlarken bileşenlerin değiştirilebilirliği, belirli bir yazılımla değiştirilebilirlik, bu araçların yazılım tedavisi tarafından değiştirildiğini varsaymaz. Değiştirilebilirlik basitlik ve uyarlanabilirlik özellikleri içerebilir.

Bunun ortamında belirli bir yazılım yerine, bu yazılımın uygulanmasının basitliğini ve emek yoğunluğunu karakterize eder.

2. Yaşam döngüsünün aşamalarında kalite yönetimi

Yazılım ömrü döngüsünün her aşamasında kaliteyi uygun şekilde yönetmek için, çeşitli kalite yönlerini göz önünde bulundurmanız ve geliştirme sürecinde kalite fikrindeki değişikliği dikkate almanız gerekir. ISO / IEC 9126 standardı, LCC'nin aşamalarındaki ürünün kalitesi hakkında farklı görüşler gösteriyor:

· Kullanıcının gerçek ihtiyaçlarını yansıtan hedef kalitesi - gerekli ve yeterli kalite. Müşterinin ilan ettiği ihtiyaçların her zaman kullanıcıların yazılım ürününün kalitesiyle ilgili gerçek ihtiyaçlarını yansıtmadığı ve bu ihtiyaçların proje belgelerinde kaydedildikten sonra değiştirilebilir, hedef kalitesi geliştiriciler tarafından kavramsal olarak kabul edilir. Projenin başında tamamen tanımlanamayan ve bir dönüm noktası olarak algılanması gereken varlık. Hedeflenen kalite için gereksinimler, mümkünse, PS'nin kalitesi için gereksinimlerin özelliklerine dahil edilmeli ve yazılım geliştirmenin tamamlanmasından sonra işletme kalitesini ölçerek değerlendirilmelidir.

· İstenen (kurulu) ürün kalitesi, kalite gereksinimlerinin şartnamesinde belirtilen ve doğrulaması için bir hedef olarak kullanılması gereken dış kalite özelliklerinin değerlerinin seviyesidir. Herkese veya bazı kalite özelliklerine ilişkin şartlar, PS gereksinimlerinin özelliklerinde belirtilmiştir. Özelliklerin optimum değerleri ile birlikte, müşterilerin ve geliştiricilerin gereksiz yere maliyet ve geliştirme süresini aşmalarını önlemelerine yardımcı olacak minimum değerler de belirtilmelidir.

· Program projesinin kalitesi, ana parçaların açıklamasında sunulan yazılımın iç kalitesi veya tüm projenin bir bütün olarak, örneğin, yazılım mimarisi, program yapısı, kullanıcı arabirimi tasarım stratejileri vb. Projenin kalitesi, yalnızca kodlama ve test sırasında hafifçe geliştirilebilen yazılım ürününün kalitesinin temelidir.

· Derecelendirme (veya öngörülen) ürün kalitesi, yazılım projesinin kalitesinin özelliklerine dayanarak, gelişimin her aşamasında son yazılım ürününün kalitesi olarak tahmin edilen veya öngörülen kalitedir.

· Verilen ürünün kalitesi, tamamlanan ürünün kalitesidir, genellikle simüle edilmiş verilerdeki simüle edilmiş ortamda test edilir.

· Kurulum kalitesi - kullanım sonuçları açısından ölçülen yazılım sisteminin kalitesi, özellikleri değil. Kullanıcı, yalnızca gerçek kullanım sırasında görünen PS kalite özelliklerini değerlendirir, bu nedenle kullanıcı ortamındaki yazılımın kalitesi, çevrenin özelliklerinin ve uygulamanın senaryolarının olmaması nedeniyle geliştirme ortamındaki kaliteden farklı olabilir. Yazılımın ve sonuç olarak, yetersiz test.

Ek olarak, kalitenin özelliklerinin her birinin, belirli bir uygulamalı alanda ve karşılık gelen kullanıcılar topluluğunda bir veya başka bir ağırlık (önemine) ve bakış açılarını kalite açısından yansıttığını dikkate almak gerekir.

Çeşitli program proje katılımcılarının yazılım kalitesi hakkındaki fikirler

Yazılımın kalitesi hakkında konuşan, çeşitli program proje katılımcılarının bazı kalite özelliklerine ulaşmanın önemi hakkındaki görüşlerinin önemli ölçüde farklılık göstermesi konusunda göz önünde bulundurulmalıdır.

Kullanıcı, belirli görevleri yerine getirmek için yazılımla doğrudan etkileşime giren bir kişidir. Kullanıcının bakış açısından, yazılım görevi, çalışmalarının etkinliğini artırmak, daha rahat hale getirmektir.

Kullanıcılar, iç yönlerini incelemeden veya yazılımın nasıl oluşturulduğu yazılımı derecelendirdi. Kullanıcı için, işlevsellik ve pratiklik olarak bu tür kalite nitelikleri en büyük öneme sahiptir. Bunu yapmak için, yazılım geliştirirken, iki ana noktaya dikkat etmelisiniz: Kullanıcı arayüzünün gerekli işlevselliğini ve tasarımını sağlamak.

Uygun işlevsellik, kullanıcı memnuniyetinde belirleyici bir faktördür. Bununla birlikte, alıcılar ve kullanıcılar bazen yazılım gereksinimlerini doğru bir şekilde formüle edemezler veya ilk aşamada onları tanımayabilir. Bu nedenle, yazılım geliştirme şirketi çözmek için en önemli sorunlardan biri, alıcının veya kullanıcının bu ürünü nasıl kullanmayı planladığını anlamaktır.

İkinci önemli sorun, uygun ve profesyonel bir kullanıcı arayüzünün geliştirilmesidir. Arayüzün tasarımına başlamak, arayüzüne yansımaları bulamayan olanakların olasılığının sadece mevcut olmadığı unutulmamalıdır! Kullanıcıyı anlaşılmaz bir arayüz olarak rahatsız etmedi. Sistemin işlevselliğinin nasıl sağlandığı önemli değildir - tüm bunlar, kullanıcının MS DOS arayüzünü veya Erken MS projesini hatırlamaya erişmesi durumunda işe yaramaz. . İyi bir kullanıcı arayüzü olan sistem her zaman tam olarak kullanıcının beklediği gibi davranır.

Bir geliştirici ekibi oluştururken, yalnızca işlevsellik ile ilgili değil, aynı zamanda programın çalışma koşullarında da bazı varsayımlar olmalıdır (örneğin, web sayfasını aynı anda ne kadar kullanıcı görüntüleyebilir, bu da maksimum giriş sayısı Veritabanı veya sistemin belirli görevleri ve t .p'leri gerçekleştirmesi için minimum yanıt süresi.). Bazen bu koşullar belirgindir, bazen gizlenir. Bu nedenle, kullanıcı için güvenilirlik olarak böyle bir nitelik niteliği çok önemlidir. Güvenilir (reddetme) ürün, geliştirirken kabul edilen varsayımların dışındaki varsayımların dışında kalan koşullar altında bile çalışacak şekilde tasarlanmıştır.

Yazılımın güvenilirliğini tanımlayan önemli bir faktör, başarısızlık için ortalama operasyon süresidir. Reddetme altında, programın dondurulmasını anlayabilir, verilere zarar verebilir veya programın işlevlerinin uygulanmasını önleyen herhangi bir şey. Operasyonel başarısızlık süresi, programda artık kusurların tespit edileceğini belirler. Eğer değeri harikaydıysa, artık kusur bulma maliyeti haklı gösterilmez.

Yazılımın güvenilirliğini kanıtlayan bir diğer faktör performans, yazılımın kullanıcılar için uygun olduğu zaman oranı.

Sistemin uygulanabilmesi için, başarısızlık için zamanın büyük bir değeri olmalıdır. Yüksek performans gereksinimlerinin başarısı uzun testler ve önemli kaynaklar gerektirir, bu nedenle proje yöneticisinin görevi, geliştirme yazılımının maliyeti arasında bir uzlaşma çözümü, sistemin teslim süresi ve performans göstergeleri arasında bir uzlaşma çözümü bulmaktır.

Tablo 3.2: Performans göstergesinin farklı değerleri için boş zaman

Verim

Alıcı, bir birey veya organizasyon, kullanımı için bir lisansın sahibi ve bir lisansın sahibidir. Genellikle yazılım alıcıları kullanıcısı değildir. Alıcının temel sorunu, kullanıcının ihtiyaçlarını karşılamak ve ayrıca yazılımın devralınması ve uygulanması ile ilişkili maliyetleri optimize etmektir.

Uygulamanın gerçek değeri, yazılımın ilk maliyetine dahil değildir. Bunlar, yazılımı, mevcut bakımın yürütülmesi, eklemelerin ve güncellemelerin kurulumu vb. Üzerine yükleme ve yapılandırma maliyetidir. Bu nedenle, alıcı her şeyden önce hem işlevsellik, güvenilirlik, eşlik ve hareketlilik için bu kadar kaliteli parametrelere dikkat çekiyor.

Kullanım alanında kolay bakım, ekleme ve güncellemelerin kurulum kolaylığı (programın yeni bir sürümünü yüklemek için, sistem bir hafta boyunca devre dışı bırakılmalıdır, kullanıcılar için önemli rahatsızlıklar yaratır) alıcı için önemli bir artı Yazılım seçerken. Ek olarak, yazılımı belirli görevleri yerine getirmek için uyarlama yeteneği olmalıdır. Alıcı, donanım altyapısını satın alınan program uygulamasına uyarlamak istemeyebilir; Mevcut ortamda iyi çalışması için yapılandırmayı tercih eder.

Ve elbette, alıcı yazılımın maliyetini endişelendiriyor. Fiyat sadece bir yazılım ürünü satın alma maliyetini içerir. Bu, yıllık bir lisans ücreti, kurulum maliyeti, ayarları ve dahili destek, ekleme ve güncellemelerin maliyetini, program için gereken ek donanımın maliyetini içerebilir. Birçok (özellikle kötü gelişmiş) sistemler için, mülkiyetin maliyeti, satın alma maliyetini önemli ölçüde aşabilir.

Yatırımcılar, gelişme için ödeme yapan bireyler veya kuruluşlardır. Yatırımcı yatırımlarının gelir getirmesini bekler. Bu gelir doğrudan bir yazılım ürününün satışından elde edilebilir veya bu ürünün amaçlandığı kuruluşun verimliliğini arttırmak. Yazılımın kalitesine çok dikkat edilirse, yatırımcı genellikle, telefon ve yaprakların yerleri için teknik destek sağlayan personel maliyetleri de dahil olmak üzere, programı kullanırken ortaya çıkan problemlerle ilgili raporları toplar ve Kusurları ortadan kaldırmak, programlar ve güncellemeler için ekleme ve güncellemeler oluşturur. Özel yapımı programlar ve uzun süreli kullanım amaçlı programlar için, operasyonel değer çoğu zaman gelişim maliyetinden daha yüksektir. Bundan, düşük geliştirme maliyetlerinden daha sınırlı operasyonel değeri olan bir ürün oluşturmanın daha önemli olduğunu takip eder. Yazılımın operasyonel değerini etkileyen ana faktörlerden biri, güvenilirliğidir, diğer - Program kodundaki hataları ve diğer hata hatalarındaki kusurların tanımlanması ve ortadan kaldırılması maliyetidir.

Yazılım projelerinin yatırımcıları genellikle yeni gelişmenin pazardaki rekabet gücünü korumak için temel olacağını umuyor. Son yıllarda, yazılım geliştirirken (özellikle özel olarak), oluşturulan program kodunu yeniden kullanabilme, sistemin bir sonraki sürümünün maliyetini azaltmak için oluşturma yeteneği dikkate alınır. Ek olarak, bir yazılım ürününün gelişimi genellikle satılabilecek bazı fikri mülkiyetin ortaya çıkmasına neden olur.

Bu yüzden yatırımcılar çoğunlukla üç yönüyle ilgileniyorlar:

· Kullanıcı ve alıcı için yazılım ürününün pratikliği, bunun için talebi sağlayan ve bu nedenle gelirleri arttırır.

· Maliyetleri artıran operasyonel değer, bu da karda bir düşüşe yol açabilecek.

· Fikri mülkiyet maliyeti.

Proje katılımcılarının her biri için kalitenin temel özelliklerinin önemi, Tablo 3.3'te şematik olarak yansıtılmaktadır.

Kalite niteliği

Kullanıcı

Müşteri

Yatırımcı

Fonksiyonellik

Güvenilirlik

Pratiklik

Verimlilik

Ulaşılabilirlik

Hareketlilik

Geliştirici, doğrudan yazılım oluşturan bir birey veya kuruluşdur. Geliştiriciler, yazılım tarafından yaratılan yazılımın gerçekten belirtilen gereksinimleri karşıladığı gerçeğinden sorumlu olduklarından, en azından nihai ürün olarak ara artefaktlarla ilgileniyorlar. Ayrıca, geliştirme döngüsünün her bir orta fazının sonuçlarını değerlendirirken, geliştiriciler aynı kalite özellikleri için farklı ölçümler kullanmalıdır. Örneğin, kullanıcı yanıt süresinin etkinliğini anlarken, geliştirici rota uzunluğunun şartlarını ve tasarım şartnamesinde bekleme süresi ve erişim süresini kullanır. Aynı zamanda, geliştiriciler ve müşteriler ve / veya kullanıcılar, nihai ürünü kabul ederken aynı kalite özelliklerini kullanmalıdır.

Program Yöneticisi, genel kalite ile belirli bir kalite özelliğinden daha ilgi duyabilir ve bu nedenle bu nedenle, bireysel özellikler için ticari gereklilikleri yansıtan değerlerin önemini belirlemesi gerekecektir.

Denetim otoritesi, planlanan gecikme veya maliyet aşımı gibi yönetilebilirlik kriterleri ile kalite iyileştirme düzeyini karşılaştırması gerekebilir, çünkü kaliteyi mevcut işgücü kaynağının sınırlı değeri ve belirlenmiş zamanın içindeki kaliteyi optimize etmek istiyor.

Zaman zaman, kullanıcılar standart dışı kullanım yazılımı için yollar bulurlar. Bundan kaynaklanan ve daha zorlaşan hatalar. Uygulamada, iyi bir yazılımda, kusurların erken bir test aşamasında tespit edilmesi kolaydır. Test devam ederken, sistemin güvenilirliği arttıkça ve ardından her bir kusur giderek daha zor artıyor. Aynı zamanda, çalışmalar geometrik ilerlemede bir kusur bulma maliyetinin arttığını göstermektedir. Sonuç olarak, gerektiğinde başın karar vermesi gerekir. Testin maliyeti ve piyasa kaybı maliyeti, beklenen operasyonel değerle dengeye gelecektir. Şu anda, ürünün piyasa girişine hazır olduğu düşünüldüğü anda.

Program Yöneticisi, yüksek kaliteli yazılım geliştirmenin maliyeti olan ve şirketin bu tür masrafları karşılayamayacağı ile ilgilenmelidir. Belirli bir gelişme için hangi seviyesi "cep" olacak?

Bu soruyu cevaplamak için, her şeyden önce, kalite özelliklerinden hangisinin bu gelişme ile ilgilenen tarafların her biri için öncelik olduğunu belirlemek ve bir uzlaşma çözümü bulmak gerekir. Yetersiz kalitenin sadece maliyetlerdeki artışa (örneğin, operasyonel ve garanti hizmeti üzerindeki), ancak her şeyden önce piyasanın kaybına neden olacağı akılda tutulmalıdır, bu nedenle tasarım ve araştırma masraflarında bir artış. Ve gerekli kaliteyi elde etmek için% 50'ye varan araştırma çalışmaları, ticari anlamda gerekçelendirilmekten daha fazlası olacaktır. En yaygın yanılgı, yüksek kaliteli yazılımın, gereksinimleri tam olarak karşılayan ve kusurları olmayan olduğu varsayımıdır. Genel olarak, son kusuru bulmak ve bulaşıcı olmayan bir programı serbest bırakmak imkansızdır. Bu hedefe ulaşmak için, hiçbir kuruluşun göze alamayacağı bu tür bir test gerekecektir. Ek olarak, kaliteye ulaşmanın bir yolu olarak test, sınırlı yeteneklere sahiptir. Yoğun testlerden sonra özel güvenlik gereksinimleri ve binlerce saat olan sistemlerde artık hatalar olduğu zamanlar literatürde örnekler verilmektedir. Ve kusurların tespiti ve yok edilmesi önemli bir görev olmasına rağmen, yazılım araçları gelişim kusurları nedeniyle genellikle uygun değildir. Program planlanan programcılar olarak çalışabilir, tüm testleri geçebilir, ancak geliştiricilerin kullanıcıların ihtiyaç duyduklarını anlamadığı için uygun olmayabilir. Yazılım tarafından geliştirilecek yeterince iyi olup olmadığına karar vermek için, yazılım ürününün teslim edilmemesinin maliyetini, teslimat durumunda operasyonel değer ile karşılaştırmak gereklidir.

3. Modern Yazılım Kalite Modelleri

Yazılımın kalitesi belirli bir nitelik modeli temelinde değerlendirilmelidir. Kalite modelinin seçimi birçok farklı faktörden etkilenir.

Modellemenin amacına bağlı olarak, Kalite Modeli, Program Projesi - Yöneticiler, Geliştiriciler, Eşlik personeli, kullanıcıların, kullanıcıların, kullanıcıların, kullanıcıların, kullanıcıların, kullanıcıların, kullanıcıların, kullanıcıların, kullanıcıların, kullanıcıların, kullanıcıların, kullanıcıların, kullanıcıların, kullanıcıların, kullanıcıların, kullanıcıların İlgi alanları. Bu çıkarların önceliklerini göz önünde bulundurarak (önemi, zaman memnuniyeti ile), kalite güvence stratejisinin gelişimine dayanmaktadır. Yukarıda belirtildiği gibi, çoğu durumda, Program Proje katılımcılarının bakış açısına göre bir öncelik, proje yöneticisinin görüşü ve olası riskleri en aza indirme konusundaki çıkarlarıdır.

Çok basit projeler hariç, çeşitli PS bileşenleri genellikle kalite özellikleri için tamamen farklı gereksinimleri vardır. Örneğin, kullanıcı arayüzünü sağlayan bileşenler yüksek müşteri rahatlığı gereksinimleri ile karakterize edilir ve veritabanları bütünlük gereksinimlerini arttırır. Tek bir yazılım ürününün aynı kalitede gereksinimlerle karakterize edilen bileşenlerin kavramsal ayrılması, farklı gereklilikler arasındaki çatışmaları azaltmaya yardımcı olur.

Aynı organizasyon içinde, geliştirme süreçleri farklı içeriğe sahip olabilir ve projelerde kullanılan metodolojilere ve entegre araçlara bağlı olarak değişebilir. Bu farklılıklar, çeşitli projelerde aynı metrik kümesini kullanma olasılığını sınırlar. Örneğin, yapısal yöntemler kullanılarak geliştirilen kodun satır sayısını, nesne yönelimli yöntem tarafından geliştirilen dizelerle karşılaştırmak hiç mantıklı değildir.

Örgüt bir geliştirici ise, benzer yazılım ürünlerinin serbest bırakılmasında uzmanlaşmışsa, kademeli olarak personel eğitimi, tasarım ve programlama stratejilerine, her türlü veri, ölçüm metodolojisi, vb. Bu, kendi deneyiminizi, benzer özelliklere sahip yazılım sistemlerini geliştirmede kullanmayı, kalite ile ilgili projeler hakkında faydalı tarihsel bilgileri biriktirmeyi mümkün kılar. Sonuç olarak, bu tür kuruluşlar, kaliteli bir model oluşturmayı, uygun ölçümleri seçmeyi, tüm kalite özellikleri için kantitatif önlemleri belirlemesini ve gelişimin erken aşamalarındaki başarılarını tahmin etmeyi yönetmektedir.

Böylece, kalite modeli, kalite gereksinimlerinin özellikleri için bir temel oluşturan ve yazılımın kalitesini değerlendiren bir dizi ilişkili özelliklerdir.

Kaliteli yazılım sağlamak için onlarca farklı yaklaşım var ve bunların her birinin hem avantajları hem de dezavantajları var. İlk kalite modellerinden biri, ilk versiyonu 1987'de serbest bırakılan ISO Standard 9000 idi. O zamandan beri, 9000 ISO serisi 9000 sertifikası sürekli popülerliği korur ve dünya çapında tanınır.

Bununla birlikte, zaman hala dayanmaz ve ISO 9001 standardına dayanan metodoloji kademeli olarak eskimiştir. En önemli dezavantajları dikkate alınır:

· Standart ayrıntıların yetersiz olduğu, denetçinin görüşlerine bağlı olarak çeşitli yorumlarının olasılığı;

· Yazılımın yaratılması ve uygulanmasında yer alan süreçlerin kalitesini değerlendirme yanlışlığı;

· Mevcut süreçlerin iyileştirilmesine katkıda bulunan standart mekanizmalarda devamsızlık.

Listelenen sorunlar, profesyonel programcılar topluluğunu, 1990'ların başında bir dizi yeni standart ve metodolojinin oluşturulmasına yol açan kalite güvencesi alanında daha gelişmiş çözümler geliştirmeye zorladı. En başarılı ve anlamlı standartların örnekleri, yetenek vade modeli (CMM) ve ISO / IEC 15504 (Baharat) olarak hizmet edebilir.

Yetenek vade modeli

CMM kapasitesi vade modelinin resmi tarihi genellikle "İyileştirme Modeli" nin çevirisi anlamda daha doğru olacağına rağmen, genellikle "Yazılım Geliştirme Sürecinin Vade Olgunluk Modeli" olarak çevrilir. 1991 yılında Başlarken, Carnegie Melon Üniversitesi'nde bulunan Amerikan Sei Yazılım Mühendisliği Enstitüsü, bu standardın ilk versiyonunu yayınladığında.

Standartın gelişiminin ilk amacı, büyük ABD hükümet kuruluşlarının en iyi yazılım tedarikçilerini seçmelerini sağlayan bir tekniğin yaratılmasıydı. Bu amaçla, yazılım geliştirme süreçlerinin nasıl değerlendirileceğinin ve daha fazla iyileştirme yöntemlerinin nasıl değerlendirileceğinin kapsamlı bir tanımını oluşturması gerekiyordu. Sonuç olarak, yazarlar, standartların mevcut süreçleri iyileştirmek isteyen konvansiyonel geliştirici şirketleri için uygun olduğu gibi bir detay ve detay kazanmayı başardılar.

SMM modelinin temel kavramının, geliştiricinin şirketinin vadesidir. Yazılım geliştirme sürecinin yalnızca belirli sanatçılara ve yöneticilere bağlı olduğu olgunlaşmamış bir organizasyon olarak kabul edilir. Sonuç olarak, bütçeyi aşma olasılığı veya projenin son tarihinin bozulması olasılığı vardır.

Aksine, olgun şirket net proje yönetimi prosedürlerini ve yazılım ürünlerini oluşturur. Gerektiği gibi, bu prosedürler belirtilir ve geliştirilir. Birikmiş deneyime dayanarak süreye ve kalkınma maliyetleri doğrudur. Şirket, yazılımın geliştirme, test etme ve uygulama süreçleri ve müşteri ile etkileşim süreçleri için standartlara sahiptir. Nihai program kodunun, bileşenlerin, arabirimlerin vb. Tasarım kurallarını açıkça tanımlar. Bütün bunlar, yüksek kaliteli yazılım geliştirme sağlayan bir ortam yaratır.

Standartın bir bütün olarak, mevcut işlemleri geliştirmek için organizasyonun vadesini ve tariflerini değerlendirme kriterlerinden oluştuğu söylenebilir. Bu, ISO 9001'de kabul edilen model ile temel bir farklılık gösteriyor, çünkü sadece gerekli koşullar ISO 9001'de proses kuruluşunun bazı seviyelerini elde etmek için formüle edilmiştir ve daha fazla iyileşme konusunda hiçbir öneri verilmez.

CMM modeli, organizasyonların beş seviyesini tanımlar. Şirketin sertifikası sonucunda belirli bir seviye artacak veya (teorik olarak) düşebilir. Şekil 3.2, tanıtımın, kuruluşun farklı olgunluk seviyelerini elde etmek için gerekli olan bazı teknolojileri listeler. Her bir sonraki seviyenin önceki kişilerin tüm önemli özelliklerini içerdiğini unutmayın.

İncir. 3.2. CMM modelinde beş vade seviyesi.

İlk seviye (başlangıç \u200b\u200bseviyesi), standartta aşağıdaki seviyelerle karşılaştırılması için bir temel olarak açıklanmaktadır. Geliştirici şirketi kuruluşun ilk seviyesinde ise, aslında yüksek kaliteli bir yazılım oluşturmak için istikrarlı koşullar yoktur. Herhangi bir projenin sonucu tamamen yöneticinin kişisel niteliklerine ve programcıların deneyimine ve bir projedeki başarı, yalnızca bir sonraki proje için aynı yöneticilerin ve programcıların atanması durumunda tekrarlanabilir. Ayrıca, eğer bu tür yöneticiler veya programcılar şirketten çıkarsa, üretilen yazılımın kalitesi kalkışlarıyla keskin bir şekilde düşer. Stresli durumlarda, geliştirme süreci, yazma koduna ve minimum testine indirgenir.

Tekrarlanan bir seviyeye ulaşmak için (tekrarlanabilir seviye), proje yönetimi teknolojileri uygulanmalıdır. Aynı zamanda, projelerin planlanması ve yönetimi birikmiş tecrübeye dayanmaktadır, gelişmiş yazılım standartları vardır (ve bu standartlara uyun!) Ve özel bir kalite güvence grubu var. Uygulamalı planlama ve yönetim araçları daha önce elde edilen başarıyı tekrarlamayı mümkün kılar. Gerekirse, kuruluş taşeronlarla etkileşime girebilir. Bununla birlikte, kritik koşullarda, işlem başlangıç \u200b\u200bseviyesine getirme eğilimindedir.

Daha sonra, yazılımı oluşturma ve sürdürme işleminin (yazılım geliştirme ve proje yönetimi dahil) belgelenmesi (yazılım geliştirme ve proje yönetimi dahil) olduğu gerçeğiyle karakterize edilen belirli bir seviye (tanımlanmış seviye) takip eder. Standardizasyon sürecinde, en etkili uygulamalara ve teknolojilere geçiş olduğu anlaşılmaktadır. Kuruluşta böyle bir standardı oluşturmak ve sürdürmek için özel bir grup oluşturulmalıdır. Son olarak, bu seviyeye ulaşmak için bir önkoşul, işletmedeki sürekli ileri eğitim ve eğitim programlarının mevcudiyetidir. Bu seviyeden başlayarak, organizasyon belirli geliştiricilerin kişisel ve mesleki özelliklerine bağlı kalmaktan vazgeçer ve stresli durumlarda daha düşük olma eğilimindedir.

Yönetilen düzeyde (yönetilen seviye), organizasyonda nicel kalite göstergeleri - hem yazılım ürünleri hem de bir bütün olarak süreçte kurulur. Bu, sonuçlarının daha doğru proje planlaması ve kalite kontrolünü sağlar. Önceki seviyeden gelen temel fark, ürün ve işlemin daha nesnel, nicel bir değerlendirmesinden oluşur. Böylece, çeşitli proje göstergelerinin sapmalarını azaltarak daha gelişmiş proje yönetimi sağlanır. Bu durumda, işlemin performansındaki anlamlı varyasyonlar, özellikle iyi direkli alanlarda, rastgele varyasyonlardan (gürültü) ayrılabilir.

Son olarak, optimizasyon seviyesi (optimizasyon seviyesi), iyileştirme önlemlerinin sadece mevcut süreçlere değil, aynı zamanda yeni teknolojilere girmenin etkinliğini değerlendirmek için de uygulanmasıyla karakterizedir. Bu seviyede tüm kuruluşun ana görevi, mevcut işlemlerin sürekli iyileştirilmesidir. Aynı zamanda, işlemlerin iyileştirilmesi ideal olarak olası hataları veya kusurları önlemeye yardımcı olmalıdır. Ek olarak, örneğin bileşenleri oluşturarak ve yeniden kullanarak, yazılım geliştirmeyi azaltmak için çalışmalar yapılmalıdır.

Her SMM seviyesi, kilit işlemlerin (OCP) alanı ile karakterize edilir ve sonraki seviyenin önceki seviyelerin tüm özelliklerini içerdiğine inanılmaktadır. Başka bir deyişle, 3. vade seviyesi için, 3. seviyenin OKP'si, 2. seviye okp ve seviye 1 seviyesi göz önünde bulundurulur. Anahtar işlemleri, ortak yürütme ile, belirli bir amaç kümesinin başarısına yol açan alan formu süreçleri. OKP'nin tüm hedeflerine ulaşıldığında, şirket bu vade seviyesinin bir sertifikası atanır. En az bir hedef elde edilmezse, şirket bu SMM seviyesine karşılık gelemez.

Sertifika, 10 puanlık bir ölçekte tüm temel alanlara uygunluğun bir değerlendirmesidir. Bu anahtar alanın başarılı nitelikleri için en az 6 puan kazanmanız gerekir. Anahtar alanın anahtarı aşağıdaki göstergelerde yapılır:

...

Benzer belgeler

    Müşteri ve yazılım geliştiricisi arasındaki etkileşim şemaları. Yazılımın kalitesi ve ana kriterlerin tanımı, mevcut aşamadaki değerlendirmesi, yaşam döngüsünün aşamalarındaki yönetimin özellikleri, yeterlilik analizidir.

    sunum, eklendi 08/14/2013

    Gerçek bir bilgi teknolojisi sistemi uygularken SDLC metodolojisini (yazılım geliştirme yaşam döngüsü) kullanma görevinin uygulanması. Katılımcıların otomatik kayıt sisteminin proje uygulamasının açıklaması.

    Özet, eklendi 09/10/2010

    Yazılım kavramı, gelişimi ve kullanımı konuları. Sistem yazılımının genel özellikleri ve işletim sisteminin çalışması. Yazılım geliştirme ve özelliklerini yönetme sürecinin özgüllüğü.

    dersin işi, eklendi 08/23/2011

    Kompleks sistemlerin gelişme, satın alma ve tanıtımının temel süreçleri. ISO 9000 standartları ailesi. Olgun ve olgunlaşmamış yazılım geliştirme organizasyonları. Bilgisayar programlarını değerlendirmek için metriklerin oluşumunun ana yönleri.

    tez, Eklendi 11/27/2012

    SUTP için modern yazılım geliştirme araçları. Evrensel programlama dilleri ve bunları SCADA sistemleriyle karşılaştırır. MultiChannel Ölçüm Dönüştürücüler SH9327 kullanarak yazılım geliştirme.

    tez, eklendi 07/13/2011

    Teknik özelliklerin geliştirilmesinin aşamaları. Yapısal bir yaklaşımla yazılımın özellikleri. Ağaç diyagramları, bir ağ modelinin temel kavramları. Kullanıcı arayüzü geliştirme. Ekran formlarına göre bir komut dosyası iletişim kutusunun geliştirilmesi.

    kurs çalışması, 24.06.2012 eklendi

    Yazılım Mühendisliği hedefleri ve görevleri. Yazılım kavramı. Yazılımın verimli kullanımının altı prensibi. Yazılım türleri: Sistem genişliğinde, ağ ve uygulandı. Bina yazılımı ilkeleri.

    kurs çalışması, 06/29/2010 eklendi

    Temel Yazılım Geliştirme Bazları: Klasik Yaşam Döngüsü, Makonlama, Tasarım Stratejileri, Geliştirme Süreçlerinin Geliştirilmesi Modelleri. Paralel algoritmaların ve kasa sistemlerinin kullanımı, etkinliklerini değerlendirmek için kriterler.

    dersin işi, eklendi 04/07/2015

    Ana yazılım tehditleri türlerini incelemek. En etkili araçların ve yazılım koruma tekniklerinin tespiti. Avantajlarının ve dezavantajlarının analizi. Lisans özellikleri ve yazılım patentlerinin açıklamaları.

    kurswork, eklendi 05/29/2013

    Genel Takvim, yazılım projesinin aşamalarını gerçekleştirmek için planı. Klasik bir cascade modeline göre geliştirme sırası. Savaşa göre spiral modelin inme görüntüsü. Ürün için teknik gereksinimler, WBS yapısı.

Metodoloji İlgili disiplinler

Yazılım kalitesi - Yazılımın (yazılımın) gereksinimlere uygunluk derecesi olarak özellikleri. Aynı zamanda, gereklilikler, kavramın bir dizi bağımsız tanımlarını üreten oldukça yaygın olarak yorumlanabilir. ISO 9001'in tanımı, en sık, kalitenin "özelliklerin gerekliliklerine uygunluk derecesi" olduğuna göre kullanılır.

Kaynak Kodun Kalitesi

Kodun kalitesi çeşitli kriterler ile belirlenebilir. Bazıları sadece bir kişinin bakış açısından önemlidir. Örneğin, programın metni nasıl biçimlendirilmiş bir bilgisayar için kesinlikle önemli değildir, ancak sonraki eşlik için ciddi bir değere sahip olabilir. Sözleşmeye özel bir anlaşmayı tanımlayan ve kodun okunabilirliğini artıran bir dizi kural soran mevcut kod tasarımı standartlarının çoğu, hata ayıklama ve güncelleme dahil, yazılımın gelecekteki desteğini kolaylaştırmak için tasarlanmıştır. Kodun yazılı olup olmadığı, örneğin yapılandırılmışlık gibi "iyi" yazılmadığını belirleyen başka kriterler de vardır. Mantıksal bölümleme kodunun derecesi kontrollü bloklara.

  • Okunabilirlik kodu
  • Destek, Test, Hata Ayıklama, Hata Düzeltmeleri, Değişiklikler ve Taşınabilirlik Kolaylığı
  • Kodun düşük karmaşıklığı
  • Düşük kaynakların kullanımı: hafıza ve işlemci zamanı
  • Olağanüstü durumların doğru şekilde işlenmesi
  • Derleme ve bağlarken az sayıda uyarı

Kod kalitesini iyileştirme yöntemleri: Refactoring.

Kalite faktörleri

Kalite faktörü, genellikle müşteri ile sözleşmeyle açıklanmayan program için işlevsel olmayan bir gerekliliktir, ancak yine de, programın kalitesini artırmak için arzu edilen bir gerekliliktir.

Kaliteli faktörlerden bazıları:

Yazılımın amacını anlamak, programın kendisinden ve belgelerinden açıkça anlaşılmalıdır. Bütünlük, programın tüm gerekli kısımları sunulmalı ve tam olarak uygulanmalıdır. Kısrak Aşırı, Çoğalt Bilgi. Kodun yinelenen kısımları genel prosedürün bir zorluğuna dönüştürülmelidir. Aynısı belgeler için de geçerlidir. Programın başka bir ortama adaptasyonunda kolaylığın taşınabilirliği: başka bir mimari, platform, işletim sistemi veya versiyonu. Program boyunca tutarlılık ve belgeler aynı anlaşmaları, formatları ve tanımları kullanmalıdır. Eşlik, programı yeni gereksinimleri karşılamak için ne kadar zor olduğuna göre. Bu gereksinim ayrıca, programın iyi belgelenmesi gerektiğini, çok karışık olmadığını ve kaynakların kullanımı için bir rezerve edilmesini sağlar (hafıza, işlemci). Test edilebilirlik, programın kabul özelliklerini doğrulamasını sağlar, performansı ölçme olasılığı ile desteklenir. Sadelik kullanım kolaylığı ve programın kullanım kolaylığı. Bu gereksinim, öncelikle kullanıcı arayüzüne uygulanır. Güvenilirlik Programların çalışmalarında başarısızlık ve arıza yok, ayrıca düzeltme ve hataların düzeltilmesi basitliği: Programın görevlerini yerine getirirken kaynakların (hafıza, işlemci) ne kadar rasyonel olarak ifade edilmesi. güvenlik

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

Kalite yazılımındaki teknik görüşe ek olarak, kullanıcının konumundan kaliteli bir değerlendirme vardır. Kalitenin bu yönü için, "kullanılabilirlik" terimi bazen kullanılır. Belirli bir yazılım ürünü için kullanılabilirlik değerlendirmesi yapmak oldukça zordur. Değerlendirmeyi etkileyen en önemli konular:

  • Kullanıcı arayüzü sezgisel midir?
  • Basit, sık sık operasyonlar ne kadar kolaydır?
  • Karmaşık işlemler ne kadar kolaydır?
  • Anlaşılabilir hata mesajları programı mı?
  • Program her zaman beklendiği gibi davranıyor mu?
  • Bir dokümantasyon var mı ve ne kadar eksiksiz?
  • Kullanıcı arabirimi kendi kendini tanımlayıcı / kendi kendine belgelendirme mi?
  • Programın yanıtıyla her zaman gecikmeler var mı?

Ayrıca bakınız

Linkler


Wikimedia Vakfı. 2010.

Diğer sözlüklerde "kaliteli yazılım" nedir:

    Bir yazılım ürününün, spesifikasyonun, kullanıcının almak istediği özelliklere odaklanması şartıyla şartnamesini onaylamayı onaylar. Ayrıca bakınız: kalite yazılımı yazılımı finansal ... ... Finansal kelime bilgisi

    Grace Hopper, Harvard Üniversitesi'nde bir bilgisayar Harvard Mark II ile çalıştığında, meslektaşları rölene sıkışmış ve böylece cihazın çalışmalarını korumayı ve böylece "hata ayıklama" (hata ayıklama) sistemi olduklarını belirtti... ... ... ... wikipedia

    Yazılım Geliştirme İşleme Süreç Süreç Analizi Programlama Belgesi Tasarımı ... Wikipedia

    Yazılım Geliştirme (İngilizce Yazılım Mühendisliği, Yazılım Geliştirme) Bu bir cins aktivitesi (meslek) ve yazılımın sağlığını, kalitesini ve güvenilirliğini yaratmayı ve sürdürmeyi amaçlayan bir süredir ... Wikipedia

    - Yazılım krizi terimi, bilgisayar bilimlerinde bilgisayar biliminde, bilgisayarların bilgisayar gücünün hızlı büyümesinin sonuçlarını ve yardımlarıyla çözülebilecek sorunların karmaşıklığını tanımlamak için bir zamanlar kullanılmıştır. Özünde, bu ... ... wikipedia

    Yeni Airbus 380, uçakta modern bir kabin oluşturmak için oldukça fazla yazılım kullanıyor. Yazılım Mühendisliği yöntemi, milyonlarca satır ile tarif edilen uçağın bir yazılımını oluşturmayı mümkün kıldı ... wikipedia

    Yazılım, çeşitli donanım platformlarında çalışmak veya çeşitli işletim sistemleri çalıştırmak için yeteneği. Eş anlamlılar: Yazılım toleransı Ayrıca bakınız: Kalite yazılımı açık sistemler ... ... ... Finansal kelime bilgisi

    Yazılım ürününün özellikleri, ki şu: Kullanıcıların kaynak verilerini hazırlamaları, yazılım ürününün kullanımını ve elde edilen sonuçların değerlendirilmesine ve ayrıca olumlu duygulara neden olmanıza izin vermenize izin verir ... ... Finansal kelime bilgisi

    Bunda değişiklik yapma çabalarını en aza indiren yazılım ürününün özellikleri: hataları ortadan kaldırmak için; Veya kullanıcıların değişen ihtiyaçlarına uygun olarak değiştirilmesi için. Ayrıca bakınız: kalite yazılımı ... ... ... Finansal kelime bilgisi

    Yazılım ürününün bir dizi işlevi gerçekleştirebilmesi: dış açıklamasında tanımlanmıştır; ve belirtilen veya ima edilen ihtiyaçları karşılamak. Eş anlamlılar: Yazılım birlikte çalışabilirlik Ayrıca bakınız: kalite ... ... Finansal kelime bilgisi

Kitabın

  • Mükemmel Kod: Yazılım geliştirme için pratik rehber, McConnell C. 10 yıldan fazla bir süredir, bu kitabın ilk baskısı en iyi pratik programlama kurallarından biri olarak kabul edildi. Şimdi bu kitap şu anki trendler ve teknolojilerle tamamen güncellendi ...