• En önemli QA ölçümleri. Yeni Yandex Metrica'da çalışmak: web analitiği için talimatlar

    Extreme Programming veya Scrum gibi yeni metodolojilerle geliştirme daha hızlı olabilir ve yeni platformların mevcudiyeti ve alt katmanlardan soyutlama pek çok tuzağı önler. Ancak kalite kontrol en üst düzeyde yapılmalıdır. çeşitli seviyeler– metodolojik seviyeden başlayıp teknolojik seviyeye kadar, kalite kontrol süreçleri otomatik mod, örneğin, projenin otomatik derlemeleri sırasında. Bununla birlikte, herhangi bir kontrol, belirli bir kalite seviyesinin başarısını değerlendirmenize izin veren metriklerin varlığını gerektirir. yazılım projesi.

    Kod metrikleri

    Yazılım Metrik (yazılım metriği) - program kodunun belirli bir bölümünün belirli özelliklerini değerlendirmenizi sağlayan sayısal bir ölçü. Her metrik için, genellikle, kodun bu bölümüne hangi uç değerlerde dikkat etmeye değer olduğunu gösteren kıyaslama göstergeleri vardır. Kod ölçümleri kategorilere ayrılmıştır ve bir yazılım sisteminin tamamen farklı yönlerini değerlendirebilir: program kodunun karmaşıklığı ve yapısı, bileşenlerin bağlanabilirliği, ilgili hacim yazılım bileşenleri vb. Anlaşılması en kolay metrik, bir yazılım sistemindeki kod satırlarının sayısıdır, ancak temel olarak hesaplanmıştır, ancak diğer metriklerle birlikte kod değerlendirmesi için resmileştirilmiş verilerin elde edilmesine hizmet edebilir. Örneğin, bir sınıftaki kod satırı sayısı ile bir sınıftaki yöntem/özellik sayısı arasında bir ilişki kurabilir ve belirli bir sınıfın yöntemlerinin ne kadar hantal olduğunu gösteren bir özellik elde edebilirsiniz. Ek olarak, bu tür tahminler, program kodundaki en zor bölümleri belirlemek ve uygun önlemi almak için karmaşıklık ölçütleriyle (örneğin, McCabe'nin döngüsel karmaşıklığı) birlikte kullanılabilir.

    Kod ölçümleri, mimari özelliklerin belirlenmesine de hizmet edebilir. Bu tür metriklerin kullanımı, büyük yazılım sistemlerinin analizinde, manuel analiz ve inceleme yapıldığında en büyük etkiyi verir. kaynak koduönemli miktarda zaman alabilir. Örneğin, metrikleri Şekil 1'de gösterildiği gibi çeşitli şekillerde görselleştirebilirsiniz. 1, burada her program bloğu bir dikdörtgen olarak temsil edilirken, dikdörtgenin her bir kenarının uzunluğu herhangi bir metriği (örneğin, karmaşıklık, yapısallık, vb.) yansıtır. Böyle bir temsil, hem üst düzey program varlıkları (derlemeler, kitaplıklar, ad alanları) hem de daha özel öğeler (özellikler, yöntemler) için oluşturulabilir. Aynı zamanda, üst düzey bir diyagramı analiz ederken, sorunlu kütüphaneleri hızlı bir şekilde tanımlayabilir ve sorunlu varlıkları araştırmak için daha düşük bir düzeye inebilirsiniz.

    Kod ölçümleri önemli bir araçtır ve bugün birçok yazılım satıcısı tarafından zaten kullanılmaktadır. Bu nedenle, ISO/IEC veya CMM/CMMI modellerine göre daha yüksek seviyelere sertifika verirken, kod metriklerinin kullanılması zorunludur, bu da geliştirme sürecinin kontrol edilebilirliğini bir dereceye kadar sağlamayı mümkün kılar.

    Metrikleri farklı bakış açılarından yorumlayan ve aynı özellikleri farklı kriterlere göre sıralayan birçok farklı yazılım metrik sınıflandırması vardır. Bu tür sınıflandırmalardan biri, metriklerin değerlendirme konularına göre gruplara ayrılması olabilir:

      boyut– yazılım boyutlarının karşılaştırmalı değerlendirmesi;

      karmaşıklık- yazılım sisteminin mimarisinin ve algoritmalarının değerlendirilmesi (bu ölçüm grubunun olumsuz göstergeleri, program kodunun geliştirilmesinde, desteklenmesinde ve hata ayıklamasında karşılaşılabilecek sorunları gösterir);

      sürdürülebilirlik– sonraki değişiklik için yazılım sisteminin potansiyelinin değerlendirilmesi.

    Tabii ki, bu sınıflandırmaya dahil olmayan başka gruplar da var, örneğin kullanıcı memnuniyeti metrikleri veya başlangıç ​​gereksinimlerine uygunluk göstergeleri, ancak bu durum teknik uygulama açısından yazılımın kalitesiyle ilgileneceğiz.

    Boyut önemli midir?

    SLOC (kaynak kod satırları) metriği, kaynak kod satırlarının sayısını yansıtır. Bu gösterge, bir yazılım sisteminin hacminin objektif bir değerlendirmesi için her zaman kullanılamaz - sayısal değeri, kodlama stili gibi birçok rasgele faktöre bağlıdır. İki yazılım sistemini yalnızca bu kritere göre karşılaştırmak pek doğru değildir, bu nedenle SLOC için pek çok türetilmiş gösterge ortaya çıkmıştır: boş satırların sayısı; yorum içeren satırların sayısı; yorumların yüzdesi; yöntemlerde/işlevlerde bulunan kod satırı sayısı; yöntem/işlev başına ortalama kod satırı sayısı; sınıf/paket başına ortalama kod satırı sayısı; modül başına ortalama kod satırı sayısı vb.

    SLOC'ye ek olarak, boyutu tahmin ederken, genellikle listenin normalleştirilmesinden (kaynak kodunu uygun forma getirdikten) sonra hesaplanan "mantıksal" kod satırlarının LSI (mantıksal kaynak talimatları) göstergesi kullanılır: bir satıra birkaç talimatın yerleştirilmesi, boş satırlar, yorumları temizleme, veri başlatma için kod satırlarını biçimlendirme vb. Böyle bir gösterge, sistemin hacminin daha objektif bir değerlendirmesine hizmet edebilir (normalleştirmeli bir gösterge, SLOC ile aynı görünür - satır sayısı, ancak fiziksel değil, mantıksal). LSI ayrıca, orijinal programlama dilindeki fiziksel kod satırı sayısı olarak değil, daha düşük seviyeli bir dilde (assembler dili, MSIL, vb.) talimat sayısı olarak hesaplanan ve normalleştirme ihtiyacını ortadan kaldıran bir metrik gibi türevlere de sahiptir.

    Bu türdeki diğer ölçümler, belirli bir programlama paradigması ile ilgili varlıklara dayalıdır. Günümüzde en popüler olanı nesne yönelimli programlama paradigmasıdır, ancak programlamaya yönelik işlevsel ve prosedürel yaklaşımın da kendine özgü ölçütleri vardır. Nesne yönelimli bir bakış açısından, bir sistemin boyutu, içerdiği sınıf sayısı olarak hesaplanabilir. Sınıf sayısı göstergesi bu yaklaşımdaki ana metriklerden biridir, ancak kullanılan programlama diline bağlı olarak projedeki ad alanı sayısı, yapı sayısı, numaralandırma, yöntem sayısı vb. Örneğin, sınıf sayısının yöntem sayısına oranını hesaplayabilir ve bir sınıfta ortalama olarak kaç yöntemin yer aldığını anlayabilirsiniz. Ancak, bu tür bir metrik için eşikleri tanımlamak için daha fazla araştırmaya ihtiyaç vardır. En basit bir şekilde sınır değerlerin belirlenmesi, bu metriklerin değerlerinin önceden hesaplandığı bir deney olabilir. mevcut sistemler. Bu tür oranların hesaplanması, niceliksel metrikler temelinde geliştirilen sistem fikrini düzeltmemizi sağlayacaktır.

    Sistemin kalitesi doğrudan bu göstergelerin kullanımına bağlı değildir, ancak deneyimli geliştiriciler zamanla, müşterinin ihtiyaç duyduğu belirli bir işlevsellik için sistemin hacmini yaklaşık olarak tahmin edebilir. Bu durumda, verilen göstergelerden gözle görülür bir sapma varsa (örneğin, sınıf başına düşük sayıda yöntem ile sınıf sayısında önemli bir artış), sistemde aşırı sayıda nesne olabileceğini ve kodu daha erken bir aşamada yeniden düzenleyebileceğini dikkate almakta fayda var.

    karmaşıklık

    Kodun kalitesini değerlendirmek ve kontrol etmek için karmaşıklık ölçütleri doğrudan kullanılabilir: döngüsel karmaşıklık, kod tutarlılığı, kalıtım derinliği vb.

    Döngüsel karmaşıklık metriği, programın kontrol akışının dal sayısını bir artırılmış olarak gösterir. Bu metriği hesaplamak için, bir giriş ve bir çıkış içeren kaynak koduna dayalı olarak yönlendirilmiş bir grafik oluşturulur. Bu durumda, grafik tepe noktaları, program kodunun yalnızca sıralı hesaplamalar içeren ve dallanma ve döngü işleçleri olmayan bölümleriyle ilişkilendirilir. Bu durumda yaylar, bloktan bloğa geçişlerle ilişkilidir. Ayrıca grafiğin her köşesine başlangıç ​​noktasından, bitiş noktasına da herhangi bir noktadan ulaşılabilir. Bu durumda, siklomatik karmaşıklık, yay sayısı ile köşe sayısı arasındaki farkın iki kat artmasıyla hesaplanabilir. Böyle bir gösterge, programın kontrol akışının karmaşıklığını yansıtabilir ve düşük kaliteli bir kod bölümünün olası varlığı hakkında bir sinyal verebilir. Ne yazık ki, bariz pratik faydasına rağmen, bu metrik döngüsel operatörler arasında ayrım yapamaz. Ek olarak, aynı grafiklerle temsil edilen program kodları, karmaşıklık açısından (bir değişken içeren mantıksal ifadeler) tamamen farklı yüklemlere sahip olabilir. Bu nedenle, bazen döngüsel karmaşıklık, operatör sayısı metriği gibi diğer metriklerle aynı anda kullanılır.

    Sınıf bağlantı metriği, sistemin program bileşenlerinin birbirine bağımlılık derecesini belirlemenizi sağlar. Bu metriğin eşik değerlerine göre artan değerleri, zayıf modüler kapsülleme nedeniyle ortaya çıkan aşırı sistem bağlantısını gösterebilir. Bir yazılım sisteminin bu özelliği, kodun yeniden kullanımında zorluklara yol açabilir. Açık bu metrik bir yazılım sisteminin mimarisini oluştururken ve yeniden işlerken gezinebilirsiniz. Nesnelerin uyumunu azaltmanın ana yolları, mantığın nesnelerde daha katı şekilde kapsanması, algoritmaların işleyişinin kavramsal bir bakış açısıyla gözden geçirilmesi ve yapısal ayrıştırmadır. Bu durumda, sınıf örnekleri oluştururken gereksiz uyumdan kaçınmanıza izin veren nesne fabrikaları kullanılır. Bu metriğin ham değerlerinin kullanılması nedeniyle, yazılım sisteminin tutarlılığını ve dolayısıyla kodun karmaşıklığını azaltmak mümkündür.

    Bazen, kodun tutarlılığını yansıtan bir ölçüm varyasyonu kullanırlar - operasyon çağrılarının sayısı. Bu ölçüm, bir sistemin bağlanabilirliğini yöntem çağrıları biçiminde ölçmenize olanak tanır. Metrik, yalnızca kullanıcı tarafından tanımlanan işlemlere yapılan çağrıları sayar. Örneğin, A() yöntemi B() yöntemini üç kez çağırırsa, bu ölçümün değeri bire eşit olacaktır; A(), C() ve D() yöntemlerinden B() yöntemi bir kez çağrılırsa, metrik değeri üç olacaktır. Ancak, bu ölçümün mutlak değeri, yazılım sistemlerini tasarlama ve kodlama yaklaşımlarına bağlı olarak projeden projeye önemli ölçüde değişebilir. Aynı projelerde aynı geliştirme ekibi içinde bile, bu ölçünün değeri, bir yazılım sistemi oluşturulurken etkilenen öznel faktörler (örneğin, mantığı farklı yöntemlere ayırırken belirli bir geliştiricinin tarzı) nedeniyle farklılık gösterebilir.

    Bu metriği hesaplamanın doğrudan sonucunun pratik değeri şüphelidir, ancak, metriğin toplam değeri ile birlikte, sınıftaki yöntemlerin sayısı, sistemin bağlanabilirliğinin objektif bir değerlendirmesini verebilir. Örneğin, bu metriği karmaşıklık metriği ve hacimsel özelliklerle birlikte kullanırsanız, bu metriklerin değerlerinin toplamına göre, yetersiz yüksek kaliteli kodu tespit edebilirsiniz.

    Karmaşıklığı değerlendirmek için bir diğer önemli ölçüm, sistemdeki tüm kullanıcı tanımlı sınıflar için kalıtım derinliğinin ortalaması olarak hesaplanan ortalama kalıtım derinliğidir. Bu, kalıtım hiyerarşisinin en alt seviyesinde olmayan sınıfları hesaba katmaz. Metriğin yüksek değerleri, yazılım sisteminin mimarlarının nesne yönelimli programlama tekniklerine fazla kapıldığının sinyalini verebilir ve bu, olumsuz etkileyebilir. Daha fazla gelişme sistemler. Kalıtım, diğer sistem değerlendirme ölçütlerine yansıtılamayan bağlanabilirliği önemli ölçüde artırır. Çoğu zaman, kod oluştururken, onu eşdeğer tekniklerle değiştirerek kalıtımı kullanmaktan kaçınabilirsiniz. Örneğin, bunun yerine bağımlılık enjeksiyonu ve IoC kapsayıcılarını kullanabilirsiniz. Bu metriği hesaplamanın sonucu, kural olarak, mimari yapı ve yeniden düzenlemenin pratik görevlerinde ham haliyle kullanılır. Ortaya çıkan metrikler, daha karmaşık karmaşık metriklerde de kullanılabilir. Başka bir deyişle, bu metriğin değeri büyükse, o zaman bir anormallik hemen tespit edilebilir. Ayrıca bu metrik, bir yazılım sistemini daha doğru bir şekilde ölçmek için McCabe sistem karmaşıklığı ve hacmi gibi diğer ölçütlerle birlikte kullanılabilir.

    Genel olarak, karmaşıklık ölçümleri yazılım üreticilerine yazılım kalitesini izleme ve yönetme sürecinde çok yardımcı olabilir.

    sürdürülebilirlik

    Bu tür ölçümler, program kodunu koruma ve geliştirme sürecinin karmaşıklığını gösterir ve kural olarak karmaşıklık ölçümleriyle yakından ilişkilidir, ancak sistemi destekleme olasılıklarını yansıtan kendi özelliklerine sahiptir.

    Bu kategorinin ana ölçütlerinden biri, içinde programın ölçülen dört özelliğinin belirlendiği Halsted ölçütüdür: sınırlayıcı karakterler, prosedür adları ve işlem işaretleri (ifade sözlüğü) dahil olmak üzere benzersiz program ifadelerinin sayısı; benzersiz program işlenenlerinin sayısı (işlenen sözlüğü); programdaki toplam ifade sayısı; programdaki toplam işlenen sayısı. Bu özelliklere dayanarak temel değerlendirmeler yapılır: bir program sözlüğü derlenir; programın uzunluğu, hacmi ve karmaşıklığı belirlenir. Ardından, program kodunu değerlendirmenize izin veren çeşitli önlemlerin hesaplanması önerilir. Örneğin, programlamanın kalitesini, bir programı anlamanın karmaşıklığını, bir program oluşturmanın zihinsel maliyetlerini vb. hesaplamak için bir ifade.

    Halsted metriği tamamen bilgi amaçlıdır, ancak, bu gösterge piyasaya sürülen ürünün kalitesiyle doğrudan bir korelasyona sahipken, gelecekteki sistem bakım yapılabilirlik göstergesini ölçmemize izin veren birkaç ölçümden biri olmaya devam etmektedir.

    Kod analiz aracı

    Microsoft platformundaki geliştiriciler sürümü kullanabilir görsel stüdyo hesaplamanıza izin veren 2008 temel set temel metrikler ve bunları gerçek zamanlı olarak takip edin (Şekil 2). Bununla birlikte, metriklerin ana kullanım durumu, geliştirme yöneticilerini bir ürünün kalitesinin düşmüş veya yükselmiş olabileceği konusunda bilgilendirmektir. Bu nedenle, proje oluşturma sürecinde bu tür ölçümleri hesaplamak mantıklıdır.

    Visual Stuido 2008 ve Microsoft Build, ciddi bir ölçüm hiyerarşisi oluşturmanıza izin vermez ve bunun için, .NET platformunun çeşitli bağlantı, kalıtım ve soyutlama türlerini hesaplamasına olanak tanıyan NDepend gibi diğer araçları kullanmalısınız, belirli bir geliştirme ekibinin gereksinimlerine göre program oluşturma sürecine entegre olun.

    Kod metriklerini kullanırken sorunlar

    Metrikler, geliştirme sürecini kontrol etmenize izin vermesine rağmen, onlarla çalışmak bir takım problemlerle ilişkilidir.

    İlk olarak, şu anda bilinen tüm kod ölçümleri yeterince anlamlı ve doğru değil. Yazılım sisteminin durumunun nesnel bir resmini sağlayamazlar, ancak yalnızca belirli bir algoritmaya göre hesaplanan göstergeler verirler. İkinci olarak, ölçümlerin daha iyi sonuçlar vermesi için çalışanların kodlarını "optimize etmesi" sağlanarak ölçüm süreci yapay olarak çarpıtılabilir. Ek olarak, metriklerin resmi kullanımı, çalışanların deneyimini, şirketin seviyesini dikkate almaz ve sadece fayda sağlamakla kalmaz, aynı zamanda zarar da getirebilir.

    Bununla birlikte, metrikler, geliştirmenin ne zaman daha düşük bir kalite düzeyine gittiğini belirlemek ve sistemdeki en zor kısımları tanımak için geliştiricilerin ve proje yöneticilerinin elinde oldukça yararlı bir araçtır. Sayısal göstergelerin tanımı, geliştirilmekte olan ürün hakkında yeni bilgiler sağlayabilir ve daha fazla geliştirme maliyetlerinin daha iyi planlanmasına yardımcı olabilir.

    Sergei Zvezdin ([e-posta korumalı]) Güney Ural'da bir yüksek lisans öğrencisidir. Devlet Üniversitesi(Çelyabinsk).

    Moskova Devlet Üniversitesi'nde uzaktan eğitim portalı açıldı

    Uzaktan Eğitim Okulu, Moskova Devlet Üniversitesi M.V. Lomonosov kendi İnternet portalını açtı. Moskova Devlet Üniversitesi ve Rusya Bilimler Akademisi'nin ortak açık elektronik kütüphanesine, ders kitaplarına ve kurslara, sesli ve görüntülü materyallere ve ayrıca uzaktan eğitim teknolojilerini kullanan eğitim programlarına erişim sunar. Portal kaynaklarının bir kısmı yalnızca dinleyiciler tarafından kullanılabilir uzak programlarüniversite ile yapılan bir anlaşma uyarınca öğrenim ücretini ödeyen. MSU video materyalleri artık şu adreste mevcuttur: kanal YouTube'da üniversite. Eğitim kanalı, üniversite etkinliklerinin yanı sıra derslerin kayıtlarını içerir.

    Rus şirketlerinin yalnızca %17'si için e-Öğrenim

    SuperJob.ru portalının araştırma merkezi, Rus şirketlerinde personelin çevrimiçi eğitimine adanmış bir anketin sonuçlarını sundu. Yerli işverenler arasında, personelle çalışırken e-öğrenmenin kullanımı çok yaygın değildir. Şirketlerin sadece %17'si çalışanlarına bu tür bir eğitim sunuyor. Bu teknolojiler ağırlıklı olarak büyük şirketler 5 bin kişilik bir kadroyla (%50). Genel olarak, işverenlerin %79'u bu uygulamayı kullanmamaktadır. Bunun nedeni ya gerekli teknik donanımın olmaması ya da yönetimin bu tür eğitimleri uygulama konusundaki isteksizliğidir. Genel olarak, Rusların yalnızca %11'i uzaktan eğitim deneyimine sahiptir. Bu sayının% 9'u sonuçtan memnun kaldı ve% 2'si iyi çalışmadı ve ayrıldı. Eğitimi tamamlayanlar arasında kadınların neredeyse iki katı kadar erkek vardı (sırasıyla %11 ve %6). Aynı zamanda, 35 ila 55 yaşları arasındaki Ruslar, gençlerden daha sık internet üzerinden eğitim alıyor. Uzaktan eğitimde başarılı deneyim, 40-50 yaş arası katılımcıların %12'si ve 23 yaşın altındaki Rusların yalnızca %9'u ile övünebilir.

    "Maksimum ölçeklenebilirlik 2009" yarışmasının sonuçları

    Yüksek performanslı bilgi işlem projelerinin "Maksimum ölçeklenebilirlik" yarışması, geçen yıl olduğu gibi, uluslararası nanoteknoloji forumuyla aynı zamana denk gelecek şekilde zamanlandı. Rusya'nın yirmi şehrinden bilim adamları zafer ilan ettiler, ancak organizatörler, bilgi ve Rus Nanoteknoloji Kurumu, tüm ödülleri sermaye projelerine verdi. Grand Prix, Moskova Devlet Üniversitesi Kimya Fakültesi'nden Vladimir Bochenkov'a verildi. Lomonosov, "Sıcaklık hızlandırmalı dinamikler için paralel bir algoritmanın geliştirilmesi ve uygulanması" projesi için. Yazar tarafından önerilen sistem, nanoyapıların yoğunlaşmasını, moleküler ışın epitaksisini ve biyolojik moleküllerin etkileşimini incelemeyi mümkün kılıyor.

    Dünya Programlama Şampiyonası başladı

    Association for Computing Machinery (ACM) tarafından düzenlenen ve IBM'in sponsorluğunda düzenlenen 34. yıllık Uluslararası Üniversite Programlama Yarışması'nda (ICPC), kazanan 100 öğrenci takımı bölgesel finallerde yarışacak. Onlara 5 saat içinde çözülmesi gereken en az sekiz görev verilecek. Final 5 Şubat 2010'da Harbin Engineering University'de (Çin) yapılacak. Geçmiş yılların görevleri arasında örneğin denizde kaybolan bir gemiyi bulmak, hasarlı bir radyo vericisinin yerini bulmak, golf oynarken engelleri hesaplamak, mesajları kodlamak ve çözmek, Braille alfabesiyle yazdırmak, labirentten çıkış yolu bulmak vardı. Geçen yıl, dört altın madalyadan üçü Rus takımları tarafından kazanıldı. Şampiyonanın eleme etabına dünyanın 88 ülkesinden 1838 üniversiteden 7109 takım katıldı. St.Petersburg Devlet Bilgi Teknolojileri, Mekanik ve Optik Üniversitesi ekibi üst üste ikinci yıl dünya şampiyonu oldu.

    "Sosyal Medya İçerik Pazarlaması: Abonelerin aklına nasıl girilir ve markanıza aşık olmaları nasıl sağlanır?" adlı yeni bir kitap yayınladık.

    Abone

    Bir rapor oluşturuyoruz. Metriklerde, "Hedeflere ulaşma" - "Dönüşümünüzün yapılandırıldığı hedef"i seçin. Bu genellikle bir "Satın aldığınız için teşekkür ederiz" sayfasıdır.

    Sonuç olarak, her AC için kaç satın alma yapıldığına ve bunları yapan kullanıcıları çekmek için ne kadar harcandığına dair veriler alacağız. Dönüşüm sayısını tıklama maliyetine böleriz, bir olası satışın maliyetini buluruz. Ayarladıysanız, alınan karı tahmin etmek için bir "Gelir" sütunu ekleyebilirsiniz.

    Yeniden hedefleme ve teklif ayarlamaları için segmentler: potansiyel alıcılarla yeni bir ilişki düzeyi

    Bu bölümde Yandex.Metrics'i oluşturup kaydedeceğiz, Yandex.Direct'te kampanya oluştururken kullanılacak ayarlamaları tanımlayacağız.

    Numunenin temsili olması için süreyi ayarlamayı unutmayın. Verilerin büyük bir ziyaretçi grubunun davranışları temelinde oluşturulması gerekir.

    Cinsiyet ve yaş - ayarlama

    Bu raporu oluşturduktan sonra sitemizde kimin daha iyi alışveriş yaptığını, erkek mi kadın mı ve bu tür alıcıların yaşlarını görebileceğiz. Bundan sonra, bu segment için bir teklif ayarlaması yapmamızı hiçbir şey engelleyemez.

    Şunları seçin: "Raporlar" - "Ziyaretçiler" - "Cinsiyet" (1).

    Sonuç olarak, kadınlar için bir ayarlama yapıyoruz. Aynı zamanda elde edilen veriler, daha güçlü seks temsilcilerinin de sitemizde vakit geçirdiğini görmemize yardımcı oldu. Bu bilgiler üzerinde çalışılması gerekiyor. Örneğin, alakalı reklamlar yazın.

    Zaman ve saat - ayarlama

    Ziyaretçileriniz gün veya hafta boyunca farklı etkinliklere sahip olabilir, bu nedenle bu paragrafta kaynağınız için en çok dönüşüm sağlayan gün ve saatleri belirleyeceğiz ve bu sürenin ardından Yandex.Direct'te zaman ayarlamaları yapabilirsiniz.

    "Raporlar" - "Ziyaretçiler" - "Günün saatine göre katılım".

    Gruplamalarda şunu ekleyin: Davranış: tarih ve saat - "Tarih / saat parçaları" - "Ziyaret edilen haftanın günü" (2). Bir hedef seçin - dönüşüme göre sıralayın. Hangi gün ve hangi saatte (dönüşüm) maksimum olduğunu gösteren bir rapor alıyoruz.

    Coğrafya

    "Raporlar" - "Ziyaretçiler" - "Coğrafya".

    Rapor, sitelerin diğerlerinden daha iyi satış yapan bölgeleri belirlemesine yardımcı olacaktır. Genellikle birçok niş için satışlardaki aslan payı Moskova veya St. Petersburg ve bölgelerinden gelir. Bu nedenle, reklamverenlerin çoğu, RK'lerini federal öneme sahip şehirlere ve Rusya'nın geri kalanına ayırır.

    Coğrafya raporu, Yandex.Direct kampanyalarının daha fazla parçalanması için bir kurs bulmanıza veya getirisi zayıf olan bölgesel reklamları belirlemenize yardımcı olacaktır.

    Segment "Unutulan Sepet"

    Oluşturun: "Raporlar" - "Ziyaretçiler" - "İlk ziyaretten bu yana geçen süre".

    Amaçlar için bir makro hedef seçeceğiz - bir satın alma, ofiste danışma için bir randevu vb. Dönüşüme göre sıralıyoruz. Çizim için ilk 2 satırı seçiyoruz. Sonuç olarak, müşterilerimizin satın alma kararını düşünerek ne kadar zaman harcadıkları hakkında bilgi alacağız. Ayrıca artık teklifimize ihtiyaç duymayanlara reklam göstermemek için Yandex.Direct arayüzündeki verileri kullanabileceğiz.

    Rapordan, hedefe çoğunlukla ziyaret gününde ulaşıldığını, ancak ay boyunca bile kullanıcıların geri döndüğünü ve dönüşüm gerçekleştirdiğini görebiliriz.

    Şimdi segmentin kendisi. Ürünü sepette bırakıp da almayanlar için oluşturalım.

    Zaten tanıdık olan "Kaynaklar" - "Özet" raporuna gidelim, yalnızca "Reklamlardan geçişler" sütununda bir onay işareti bırakın, +'ya basın ve menüden "Davranış" - "Hedeflere ulaşma" - "Hedef: sepete eklendi" (javascript hedefi "Sepete ekle" düğmelerine ayarlanmalıdır). Segmenti kaydedin ve adlandırın, şimdi Doğrudan'a gidin.

    Bu segmente göstermek istediğimiz reklamı buluyoruz, "Kitle Seçim Koşulları"na ve ardından "Koşul Ekle"ye tıklıyoruz.

    Site analizi için raporlar: çalışma ve iyileştirme

    Web yöneticisi

    Verileri, sitenin zayıf noktalarını belirlememize, kullanıcıların ne gibi zorluklar yaşadığını anlamamıza yardımcı olacaktır.

    Makro hedefimize ulaşılan ziyaretler için Webvisor segmentlerini ele alalım.

    Bir örnek yapalım ve kullanıcıların bunu nasıl başardığını görelim. Belki de müşterilerimizin bilmediğimiz davranış kalıplarını anlayacağız. Çoğu, sipariş vermeden önce bir fotoğraf albümüne bakarsa veya sitedeki etkileşimli öğelerle etkileşime girerse veya uzun süre incelemeler üzerinde durursa ne olur? Bu tür veriler, sitedeki blokları nasıl düzgün bir şekilde düzenleyeceğinize ve düzenleyeceğinize karar vermenize yardımcı olacaktır.

    İkinci segment, sitemizde bir satın alma işlemi yapacak kadar zaman geçiren ancak bunu hiç gerçekleştirmeyen kullanıcılardır. Bu tür ziyaretlerin analizi, ziyaretçilerin karşılaştığı temel zorlukların anlaşılmasını sağlayacaktır.

    Haritaları Kaydırın/Tıklayın

    Bir kaydırma haritası, ziyaretçilerinizin en çok hangi ekranda zaman geçirdiğini anlamanıza yardımcı olur. Belki de satın alma kararı vermenize yardımcı olacak bazı gerekli bilgiler "soğuk bölgededir" ve başka bir yere taşınması gerekiyor. Örneğin, bir müşteri yalnızca bir metro istasyonunun belirtildiği taleplerde ilan edilir ve sayfanın altında adres ve yol tariflerini içeren bir harita bulunur.

    Sonuç, yüksek bir başarısızlık yüzdesidir çünkü kuruluşun ofisinin konumu, bu tür taleplerle gelen müşteriler için önemlidir.

    Bu yazıda, bence en önemli QA ölçümlerinden bazılarına bakmak istiyorum. Bunlar, kalite açısından projede olup bitenlerin genel resmini yakalayacak ve onu iyileştirme adımlarını belirleyecek göstergeler, oranlar ve göstergeler olacaktır. Metrikler 5 farklı alanı kapsayacaktır: gereksinimler, yazılım kalitesi, test ekibi etkinliği, KG kalitesi ve geri bildirim. Ortak, temel sorunları tespit etmek, tüm süreci ayarlayabilmek ve optimize edebilmek için, yazılım geliştirme sürecinin farklı bölümlerindeki göstergeleri aynı anda ölçmek ve izlemek önemlidir.

    Grup 1 - Geliştirilen yazılım için gereklilikler

    Bu ölçüm grubu, yazılım için gereksinimleri (kullanıcı öyküsü) ne kadar iyi çözdüğümüzü değerlendirmemize, güvenlik açıklarını ve yazılımın en karmaşık, potansiyel olarak sorunlu özelliklerini belirlememize ve özel kontrolün gerekli olduğu yerleri anlamamıza olanak tanır:

    1. Test kapsamı gereksinimi

    Başka bir deyişle, gereksinim başına test sayısıdır.

    Metriğin amacı: test kapsamındaki zayıflıkları belirleyin, riskleri vurgulayın.

    • Tabii ki, bu ölçüm yalnızca gereksinimler iyi bir şekilde ayrıştırıldığında ve aşağı yukarı eşit olduğunda işe yarayacaktır. Tabii ki, bu her zaman mümkün değildir, ancak gereksinimleri yeterince atomik hale getirmek mümkünse, bu metrik, her bir gereksinimin kapsamının ortalama seviyeden sapmasını gösterecektir. Değer 1'den ne kadar farklıysa, bir gereksinim için normalden o kadar az\daha fazla test yazılır.
    • Katsayının 0'a eşit veya 0'a yakın olacağı gereksinimlere dikkat etmek en önemlisidir. Bunlar için testler eklemeyi düşünmelisiniz.
    • Gereksinimler atomik değilse, bu metrik yalnızca her gereksinim için en az 1 test olduğundan emin olur. Bunun için katsayının her zaman 0'dan büyük olması gerekir.

    2. Gereksinimlerin birbirine bağlı olma derecesi

    Metrik, her gereksinimin geri kalan gereksinimlerle olan ortalama bağlantı sayısı olarak hesaplanır.

    Metriğin amacı: test zamanlamasının değerlendirilmesi ve olası risklerin dikkate alınması için bir temel sağlar. Gereksinimlerin birbirini etkileme derecesini bilerek, örneğin, uçtan uca testler için ek zaman ve durumlar planlayabilir, regresyon kontrolleri yapabilir, entegrasyona yönelebilirsiniz, vb.

    • Bu metriğin değeri 0 ile 1 arasında değişir. 1, her gereksinimin birbiriyle ilişkili olduğu ve 0, hiçbir ilişki olmadığı anlamına gelir.
    • Bu katsayının değerleri için herhangi bir kısıtlama getirmek zordur, çoğu işlevsellik, mimari ve teknolojilerin özelliklerine bağlıdır. Ancak kendi deneyimlerime göre bağlantı derecesi 0.2-0.3'ü geçmediğinde iyi olduğunu söyleyebilirim. Aksi takdirde, gereksinimlerden biri çerçevesinde yapılan iyileştirme, ürünün önemli bir bölümünde bir dizi değişiklik ve dolayısıyla olası hatalara yol açacaktır.

    3. Gereksinim kararlılığı faktörü

    Metriğin amacı: yeni özellikler geliştirirken yayından sürüme kadar halihazırda uygulanmış kaç gereksinimin yeniden yapılması gerektiğini gösterin.

    • Tabii ki, tamamen izole edilmiş bir işlevsellik yoktur, ancak yeni gereksinimlerin sayısı değişenlere üstün gelmeli ve katsayı tercihen 0,5'ten az olmalıdır. Bu durumda, mevcut olanları yeniden yaptığımızdan 2 kat daha fazla yeni özellik sunuyoruz.
    • Katsayı 0,5'ten yüksekse, özellikle 1'den büyükse, bu büyük olasılıkla daha önce gereksiz olduğu ortaya çıkan bir şey yaptığımız anlamına gelir. Ekip, yeni iş değeri yaratmaya değil, önceden yayınlanmış özellikleri elden geçirmeye odaklanır.
    • Metrik ayrıca sistemin işlevselliğinin ne kadar kolay ölçeklenebilir olduğu konusunda fikir veriyor, yeni özellikler ekleniyor.

    Grup 2 - Geliştirilen ürünün kalitesi

    Adından da anlaşılacağı gibi, bu ölçüm grubu, yazılımın kalitesini ve geliştirmenin kendisinin kalitesini gösterir.

    1. Kusurların yoğunluğu

    Bir yineleme veya sürüm sırasında her bir modül başına kusurların oranı hesaplanır.

    Metriğin amacı: yazılımın hangi bölümünün en sorunlu olduğunu vurgulayın. Bu bilgi, risk analizinin yanı sıra, bu modülle çalışmanın değerlendirilmesi ve planlanmasında yardımcı olacaktır.

    • nedenler Büyük bir sayı herhangi bir belirli modüldeki kusurlar (katsayı 0,3'ten büyük) farklı olabilir: düşük kaliteli gereksinimler, geliştirici nitelikleri, teknik karmaşıklık, vb. Her halükarda, bu metrik dikkatimizi hemen sorunlu alana çekecektir.

    2. Regresyon katsayısı

    Metriğin amacı: Ekibin çabalarının neye harcandığını gösterin: Yeni özellikler oluşturmaya ve hata ayıklamaya daha mı çok dahil oluyoruz yoksa çoğu zaman yazılımın mevcut parçalarını yamalamak zorunda mı kalıyoruz?

    • Katsayı 0'a ne kadar yakınsa, yeni gereksinimler uygulanırken mevcut işlevselliğe o kadar az hata eklenir. Değer 0,5'ten büyükse, zamanın yarısından fazlasını daha önce çalışan yazılım işlevlerini geri yüklemek için harcarız.

    3. Yeniden açılan kusurların oranı

    Metriğin amacı: Geliştirme kalitesinin ve kusurların düzeltilmesinin yanı sıra ürünün veya ayrı bir modülün karmaşıklığının değerlendirilmesi

    • Bu metrik, tüm yazılım, tek bir modül veya işlevsellik için hesaplanabilir. Değer 0'a ne kadar yakınsa geliştirme sırasında o kadar az eski hata tekrarlanır.
    • Katsayının 0,2-0,3'ten fazla olduğu ortaya çıktıysa, bu, modülün teknik karmaşıklığını ve içindeki gereksinimlerin yüksek tutarlılığını veya beceriksiz mimariyi veya önceki düzeltmenin kötü yapıldığını gösterebilir.

    4. Bir kusuru düzeltmenin ortalama maliyeti

    Ekibin tüm kusurlarla çalışırken (örneğin sürüm içinde) yaptığı maliyetlerin toplam kusur sayısına oranı.

    Metriğin amacı: her kusuru bulmanın ve düzeltmenin bizim için ne kadar pahalı olduğunu gösterin. Bu, ilgili tekniklerin uygunluğunu değerlendirmek için yapılan hata sayısını azaltmanın faydasını hesaplamayı mümkün kılacaktır.

    • Elbette burada doğru değerler yok, her şey belirli bir durumun özelliklerine göre belirlenecek.

    5. Belirli bir geliştiricinin kodundaki kusurların sayısı

    Metriğin amacı: Uzmanlardan deneyim, bilgi veya zamana sahip olmayan, yardıma ihtiyacı olan geliştirme ekibindeki olası zorlukları vurgulayın.

    • Örneğin, tüm kusurların %50'si 1 geliştiriciye düşüyorsa ve ekipte bunlardan yalnızca 5 tane varsa, o zaman açıkça bir sorun vardır. Bundan, bu programcının iyi çalışmadığı sonucu çıkmaz, ancak böyle bir durumun nedenlerini anlamanın zorunlu olduğunun sinyallerini verir.
    • Metrik, diğer şeylerin yanı sıra, geliştirilmesi ve sürdürülmesi özellikle zor olan bir modülün/fonksiyonun/sistemin bir göstergesi olabilir.

    Grup 3 - QA ekibinin yetenekleri ve etkinliği

    Bu ölçüm grubunun temel amacı, test ekibinin neler yapabileceğini ölçmektir. Bu göstergeler düzenli olarak hesaplanabilir ve karşılaştırılabilir, eğilimleri analiz edebilir, ekibin çalışmasının belirli değişikliklerden nasıl etkilendiğini gözlemleyebilir.

    1. QA ekibinin çalışma hızı (hızı)

    Birkaç, örneğin 4-5 yineleme (Sprint) için gerçekleştirilen hikaye noktalarının (veya gereksinimlerin veya kullanıcı öykülerinin) seçilen yineleme sayısına oranı olarak hesaplanır.

    Metriğin amacı: iş kapsamının daha fazla planlanması ve geliştirme eğilimlerinin analizi için ekibin yeteneklerini, hızını sayısal olarak ifade edin

    • Metrik, QA çalışmasının hızını izlemenizi, ekip üzerindeki hangi iç süreçlerin veya dış etkilerin bu hızı etkileyebileceğini gözlemlemenizi sağlar.

    2. Bir kusurun ortalama ömrü

    Hataların toplamına göre, bir yineleme veya sürümde bulunan hataların açık olduğu toplam süre.

    Metriğin amacı: bir kusurla çalışmanın ortalama ne kadar sürdüğünü gösterin: onu kaydetmek, düzeltmek ve yeniden oluşturmak. Bu gösterge, test için gereken süreyi tahmin etmenize, en büyük zorlukların ortaya çıktığı yazılım alanlarını vurgulamanıza olanak tanır.

    • Tipik olarak, bir kusurun ömrü, oluşturulmasından (Oluşturuldu durumu) kapanmasına (Kapalı) kadar tüm süre eksi olası tüm Ertelendi ve Bekletmedir. Herhangi bir hata izleyici, belirli bir sprint veya sürüm için bu bilgileri hesaplamanıza ve indirmenize izin verir.
    • Ayrıca, bir kusurun ortalama ömrü, çeşitli yazılım modülleri ve işlevleri için veya daha da ilginci, ekipteki her bir testçi ve geliştirici için ayrı ayrı hesaplanabilir. Dolayısıyla, özellikle karmaşık modülleri veya zayıf bağlantı yazılım ekibinde.

    Grup 4 - Test ekibinin çalışma kalitesi

    Bu ölçüm setinin amacı, test uzmanlarının görevlerini ne kadar iyi yerine getirdiklerini değerlendirmek, QA ekibinin yeterlilik ve olgunluk seviyesini belirlemektir. Bu gösterge seti ile takımı farklı zamanlarda kendisiyle veya başkalarıyla karşılaştırabilirsiniz. dış gruplar test yapmak.

    1. Testlerin ve Test Setlerinin Etkinliği

    Metriğin amacı: vakalarımızın ortalama olarak kaç hata tespit etmemize izin verdiğini gösterir. Bu metrik, test tasarımının kalitesini yansıtır ve değişim eğilimini takip etmeye yardımcı olur.

    • Bu metriği tüm test takımları için hesaplamak en iyisidir: bireysel fonksiyonel test grupları, regresyon takımı, Duman testi vb.
    • Testlerin "öldürücülüğünün" bu göstergesi, setlerin her birinin etkinliğini, zaman içinde nasıl değiştiğini izlemenize ve bunları "yeni" testlerle tamamlamanıza olanak tanır.

    2. Üretkenliğin gözden kaçırdığı hata oranı

    Sürümden sonra bulunan hata sayısı \ test sırasında ve sürümden sonra yazılımda bulunan toplam hata sayısı

    Metriğin amacı: test kalitesini ve hata tespitinin etkinliğini gösterir - kusurların ne kadarının filtrelendiğini ve nelerin üretime aktarıldığını gösterir.

    • Üretimde gözden kaçırılan izin verilen hata yüzdesi elbette birçok faktöre bağlı olacaktır. Ancak katsayının > 0,1 olduğu ortaya çıkarsa, bu kötüdür. Bu, test sırasında her onda bir kusurun keşfedilmediği ve halihazırda kullanıcılara teslim edilen yazılımlarda sorunlara yol açtığı anlamına gelir.

    3. QA ekibinin gerçek zamanı

    Ekibin doğrudan KG etkinliğine harcadığı sürenin toplam saat sayısına oranı.

    Metriğin amacı: birincisi, planlamanın doğruluğunu artırmak ve ikincisi, belirli bir ekibin performansını izlemek ve yönetmek.

    • Hedeflenen faaliyetler analiz, tasarım, değerlendirmeler, testler, çalışma toplantıları ve çok daha fazlasıdır. Muhtemel yan etkiler, engelleyiciler nedeniyle kesinti süresi, iletişim sorunları, kaynakların bulunmaması vb.
    • Doğal olarak, bu katsayı asla 1'e eşit olmayacaktır. Uygulama, etkili takımlar için 0,5-0,6 olabileceğini göstermektedir.

    4. Çalışma alanlarına/türlerine/türlerine göre zaman tahmininin doğruluğu

    Metriğin amacı: sonraki değerlendirmeler için bir düzeltme faktörünün kullanılmasına izin verir.

    • Değerlendirme doğruluğu derecesi, tüm ekip veya bireysel testçiler için, tüm sistem veya bireysel yazılım modülleri için belirlenebilir.

    5. Teyit edilmemiş (reddedilmiş) kusurların payı

    Metriğin amacı:"boşta" kaç kusurun ortaya çıktığını gösterin.

    • Reddedilen kusurların oranı %20'yi aşarsa, ekip neyin kusur olup neyin olmadığını anlamada uyumsuzluk yaşayabilir.

    Grup 5 - Geri bildirim ve kullanıcı memnuniyeti

    Ve son olarak, ürünün son kullanıcılar tarafından nasıl kabul edildiğini, onların beklentilerini nasıl karşıladığını gösteren bir grup metrik. Ancak yalnızca yazılım geri bildirimi önemli değildir: Bu ölçüm grubunun bir başka önemli görevi de, kullanıcıların genel olarak BT ekibiyle etkileşim sürecinden ve özel olarak da QA'dan memnun olup olmadıklarını göstermektir.

    1. BT hizmetinden kullanıcı memnuniyeti

    Puanlamalı BT hizmetiyle ilgili düzenli kullanıcı memnuniyeti anketi.

    Metriğin amacı: kullanıcıların BT ekibine güvenip güvenmediğini, işinin nasıl ve neden organize edildiğini anlayıp anlamadığını, bu işin beklentileri nasıl karşıladığını gösterir.

    • Metrik, süreç optimizasyonuna odaklanmanın veya bunu kullanıcılar için daha açık ve şeffaf hale getirmenin gerekli olduğunun bir göstergesi olarak hizmet edebilir.
    • Memnuniyet puanı, yayınlandıktan sonra anket sonuçlarına göre hesaplanabilir. Tüm puanları topluyoruz ve ortalama puanı hesaplıyoruz. Bu puan, süreçte değişiklikler yapıldıktan sonra yeniden hesaplanabilir.

    2. Ürünle ilgili kullanıcı memnuniyeti

    Üründen ne kadar memnun olduklarına dair düzenli kullanıcı anketleri.

    Metriğin amacı: geliştirilmekte olan ürünün kullanıcıların beklentilerini ne kadar karşıladığını, doğru yönde ilerleyip ilerlemediğimizi, özelliklerin önemini doğru tespit edip çözüm seçip seçmediğimizi belirlemektir.

    • Bu metriği hesaplamak için ayrıca bir kullanıcı anketi düzenler ve ortalama puanı hesaplarız. Böyle bir göstergeyi düzenli olarak hesaplayarak (örneğin her sürümden sonra), kullanıcı memnuniyeti trendini takip edebilirsiniz.

    3. Paydaş katılımı

    Paydaşlardan yineleme (sürüm) sırasında alınan süreci ve ürünü iyileştirmeye yönelik girişim ve önerilerin sayısı

    Metriğin amacı:ürünle ilgili çalışmalara dış paydaşların katılım derecesini belirlemek. Elinizde böyle bir metrik olduğunda, bir gün aşağılama ve nefretle, sorunlarla ve yanlış anlamalarla karşılaşmamak için nereden geri bildirim almanız gerektiğini öğrenebilirsiniz.

    Chernikov Alexey

    1. Giriş

    Çoğu malzeme üretimi dalının aksine, yazılım geliştirme projelerinde, emek yoğunluğunu ortalama emek üretkenliği ile çarpmaya dayalı basit yaklaşımlar kabul edilemez. Bunun nedeni, her şeyden önce, projenin ekonomik göstergelerinin işin kapsamına doğrusal olmayan bir şekilde bağlı olması ve emek yoğunluğunu hesaplarken büyük bir hataya izin verilmesidir.

    Bu nedenle, bu sorunu çözmek için uygulamada yüksek sorumluluk ve adaptasyon için belirli bir süre (katsayı ayarlaması) gerektiren karmaşık ve oldukça karmaşık yöntemler kullanılır.

    Modern karmaşık sistemler Yazılım geliştirme projelerinin özelliklerini tahmin etmek, aşağıdaki görevleri çözmek için kullanılabilir:

    • projenin ekonomik parametrelerinin ön, kalıcı ve nihai değerlendirmesi: emek yoğunluğu, süre, maliyet;
    • proje için risk değerlendirmesi: son teslim tarihlerini ihlal etme ve projenin yerine getirilmeme riski, projede hata ayıklama ve sürdürme aşamalarında artan emek yoğunluğunun riski vb.;
    • operasyonel yönetim kararları verme - belirli proje ölçütlerinin izlenmesine dayalı olarak, istenmeyen durumların zamanında ortaya çıkmasını önlemek ve yanlış tasarlanmış tasarım kararlarının sonuçlarını ortadan kaldırmak mümkündür.

    1. Giriş
    2 Metrik
    2.1 Boyut odaklı metrikler (hacim tahmin göstergeleri)
    2.1.1 LOC tahmini (Kod Satırları)
    2.1.1.1 Programların stil ve anlaşılırlık ölçütleri
    2.1.2 SLOC için toplam
    2.2 Zorluk ölçümleri
    2.2.2 Durdurulmuş metrikler
    2.2.4 Chapin ölçümleri

    2.4 Genel metrik listesi
    2.4 Özetleme
    6 İnternet kaynakları

    2. Metrikler

    Program karmaşıklığı ölçümleri genellikle üç ana gruba ayrılır:

    • program boyutu metrikleri;
    • program kontrol akışı karmaşıklığının ölçümleri;
    • program veri akışı karmaşıklığının ölçümleri.

    Birinci grubun metrikleri, programın boyutuyla ilişkili niceliksel özelliklerin tanımına dayalıdır ve nispeten basittir. Bu grubun en iyi bilinen ölçümleri, program ifadelerinin sayısını, kaynak metin satırlarının sayısını ve Halsted ölçümleri kümesini içerir. Bu grubun ölçümleri, programların kaynak kodunun analizine odaklanmıştır. Bu nedenle, geliştirme ara maddelerinin karmaşıklığını değerlendirmek için kullanılabilirler.

    İkinci grubun metrikleri, programın kontrol grafiğinin analizine dayanmaktadır. Bu grubun temsilcisi McCabe metriğidir.

    Bu grubun metriklerini kullanan programın kontrol grafiği, modül algoritmaları bazında oluşturulabilir. Bu nedenle, ikinci grubun metrikleri, ara geliştirme ürünlerinin karmaşıklığını değerlendirmek için kullanılabilir.

    Üçüncü grubun metrikleri, programdaki verilerin kullanımı, yapılandırılması ve yerleştirilmesinin değerlendirilmesine dayanmaktadır. Her şeyden önce, küresel değişkenlerle ilgilidir. Bu grup Chapin ölçümlerini içerir.

    2.1 Boyut odaklı metrikler (hacim tahmin göstergeleri)

    2.1.1 LOC tahmini (Kod Satırları)

    Boyutsal metrikler, yazılım ürününü ve geliştirme sürecini doğrudan ölçer. Bu tür ölçümler, LOC tahminlerine dayanmaktadır.

    Bu tür bir metrik, yazılım ürününü ve geliştirme sürecini dolaylı olarak ölçer. LOC puanlarını hesaplamak yerine, bu, ürünün boyutunu değil, işlevselliğini veya kullanışlılığını dikkate alır.

    Yazılım geliştirme pratiğinde en yaygın olanı boyut odaklı metriklerdir. Her proje için yazılım ürünleri geliştiren kuruluşlarda, aşağıdaki göstergelerin kaydedilmesi adettendir:

    • toplam işçilik maliyetleri (adam-ay, adam-saat olarak);
    • program boyutu (binlerce satırlık kaynak kodu -LOC olarak);
    • Geliştirme ücreti;
    • belge hacmi;
    • faaliyet yılı boyunca keşfedilen hatalar;
    • ürün üzerinde çalışan kişi sayısı;
    • geliştirme dönemi.

    Bu verilere dayanarak, işgücü verimliliğini (KLOC / kişi-ay) ve ürün kalitesini değerlendirmek için genellikle basit ölçütler hesaplanır.

    Bu ölçümler, özellikle kullanılan programlama diline önemli ölçüde bağlı olan LOC gibi bir gösterge için evrensel ve tartışmalı değildir.

    Kaynak kodunun satır sayısı (Lines of Code - LOC, Source Lines of Code - SLOC), bir projedeki çalışma miktarını tahmin etmenin en basit ve en yaygın yoludur.

    Başlangıçta, bu gösterge, oldukça basit bir yapıya sahip olan programlama dillerinin kullanıldığı bir projedeki iş miktarını değerlendirmenin bir yolu olarak ortaya çıktı: "bir kod satırı = dilin bir komutu". Aynı işlevselliğin farklı sayıda satıra yazılabileceği de uzun zamandır bilinmektedir ve üst düzey bir dil (C ++, Java) alırsak, bir satıra 5-6 satır işlevsellik yazmak mümkündür - bu bir sorun değildir. Ve bu sorunun yarısı olurdu: Modern imkanlar programlamanın kendisi önemsiz bir işlem için binlerce satır kod üretir.

    Bu nedenle, LOC yöntemi yalnızca bir değerlendirme yöntemidir (bu dikkate alınmalıdır, ancak tahminlere dayanmaz) ve hiçbir şekilde zorunlu değildir.

    Benzer kodun nasıl dikkate alındığına bağlı olarak, iki ana SLOC göstergesi ayırt edilir:

    1. "fiziksel" kod satırlarının sayısı - SLOC (kullanılan kısaltmalar LOC, SLOC, KLOC, KSLOC, DSLOC'dir) - yorumlar ve boş satırlar dahil olmak üzere kaynak kodun toplam satır sayısı olarak tanımlanır (boş satır sayısındaki gösterge ölçülürken, kural olarak, bir sınır getirilir - sayılırken, ölçülen kod bloğundaki toplam satır sayısının% 25'ini geçmeyen boş satır sayısı dikkate alınır).
    2. "Mantıksal" kod satırlarının sayısı - SLOC (kısaltmalar LSI, DSI, KDSI kullanılır, burada "SI" - kaynak talimatlar) - komut sayısı olarak tanımlanır ve kullanılan programlama diline bağlıdır. Dilin bir satıra birkaç komut yerleştirmeye izin vermemesi durumunda, boş satırların ve yorum satırlarının sayısı dışında "mantıksal" SLOC'lerin sayısı "fiziksel" olanların sayısına karşılık gelecektir. Programlama dilinin bir satıra birkaç komut yerleştirmeyi desteklemesi durumunda, birden fazla dil komutu içeriyorsa, bir fiziksel satır birkaç mantıksal satır olarak sayılmalıdır.

    SLOC metriği için, bireysel proje göstergelerini elde etmek için tasarlanmış çok sayıda türev vardır, başlıcaları şunlardır:

    • boş satır sayısı;
    • yorum içeren satır sayısı;
    • yorumların yüzdesi (kod satırlarının yorum satırlarına oranı, türetilmiş stil metriği);
    • işlevler için ortalama satır sayısı (sınıflar, dosyalar);
    • işlevler (sınıflar, dosyalar) için kaynak kodu içeren ortalama satır sayısı;
    • modüller için ortalama satır sayısı.

    2.1.1.1 Programların stil ve anlaşılırlık ölçütleri

    Bazen sadece koddaki yorum satırlarının sayısını saymak ve bunları mantıksal kod satırlarıyla ilişkilendirmek değil, aynı zamanda yorumların yoğunluğunu bulmak da önemlidir. Yani, kod önce iyi, sonra kötü bir şekilde belgelenmiştir. Veya bu seçenek: bir işlevin veya sınıfın başı belgelenir ve yorumlanır, ancak kod değildir.

    Fi = SIGN (Ncomm. i / Ni - 0.1)

    Metriğin özü basittir: kod n-eşit parçaya bölünür ve her biri için Fi belirlenir.

    2.1.2 SLOC için toplam

    Eleştirinin hedef aldığı SLOC'nin potansiyel dezavantajları:

    • Bir kişinin çalışmasının değerlendirilmesini birkaç sayısal parametreye indirgemek ve performansı bunlara göre değerlendirmek çirkin ve yanlıştır. Yönetici, en yetenekli programcıları en zor çalışma alanına atayabilir; bu, bu bölümün geliştirilmesinin zaman alacağı anlamına gelir. en uzun zaman ve görevin karmaşıklığından dolayı en fazla sayıda hatayı üretecektir. Bu zorlukların farkında olmayan başka bir performans yöneticisi, programcının kötü bir iş çıkardığına karar verebilir.
    • Metrik, çalışanların deneyimini ve diğer niteliklerini dikkate almaz.
    • Bozulma: Çalışanların ölçülen göstergelerin farkında olmaları ve işlerini değil, bu göstergeleri optimize etmeye çalışmaları nedeniyle ölçüm süreci bozulabilir. Örneğin, kaynak kodun satır sayısı ise önemli gösterge, o zaman programcılar mümkün olduğu kadar çok satır yazma eğiliminde olacaklar ve satır sayısını azaltan kod basitleştirme tekniklerini kullanmayacaklar (Hindistan ile ilgili kenar çubuğuna bakın).
    • Yanlışlık: Hem anlamlı hem de yeterince doğru olan hiçbir ölçüm yoktur. Kod satırı sayısı sadece satır sayısıdır, bu gösterge çözülmekte olan sorunun karmaşıklığı hakkında bir fikir vermez. Fonksiyon noktası analizi, amacı ile geliştirilmiştir. en iyi ölçüm kodun ve spesifikasyonun karmaşıklığı, ancak ölçümcünün kişisel yargısını kullanır, bu nedenle farklı insanlar farklı sonuçlar alacaktır.

    Ve hatırlanması gereken en önemli şey: SLOC metriği, program oluşturmanın karmaşıklığını yansıtmaz
    .

    Gerçek hayat örneği :
    Şirketlerden birinde, uygulama sırasında bu metriği uyguladık - kod satırlarını saydık. Kuruluşun başkanı tatildeydi, ancak tatilden döndükten sonra değişikliklerin şeffaflığından ve izlenebilirliğinden yararlanmaya ve yöneticilerinin projelerinin nasıl gittiğini görmeye karar verdi. Ve kursa tam olarak girmek için en alt seviyeye (yani kusurların yoğunluğunu, düzeltilen hataların sayısını değerlendirmedim) - kaynak kodu seviyesine indim. Kimin ve kaç satır yazdığını saymaya karar verdim. Ve gerçekten eğlenceli hale getirmek için - haftalık çalışma günü sayısı ile yazılan kod miktarını ilişkilendirin (mantık basittir: bir kişi haftada 40 saat çalıştı, bu da çok yazması gerektiği anlamına gelir). Doğal olarak haftada sadece bir satır yazan, hatta yazmayan, sadece var olanı düzelten biri vardı ...

    Liderin öfkesi sınır tanımıyordu - bir aylak buldu! Ve proje yöneticisi şunu açıklamasaydı programcı için kötü olurdu: programda bir hata bulundu, VIP müşterisi bunu buldu, hata müşterinin işini etkiliyor ve acilen ortadan kaldırılması gerekiyordu, bunun için standı kuran, müşterinin ortamını dolduran, hatanın tezahürünü onaylayan ve aramaya ve ortadan kaldırmaya başlayan bu özel sanatçı seçildi. Doğal olarak, sonunda, yanlış bir koşulun olduğu ve her şeyin çalıştığı kod parçasını değiştirdi.

    Katılıyorum, işçilik maliyetlerini bu metrikle hesaplamak aptalca - kapsamlı bir değerlendirme gerekiyor ...

    2.2 Zorluk ölçümleri

    Bir projedeki çalışmanın kapsamını değerlendirmek için göstergelere ek olarak, bir proje için nesnel tahminler elde etmek için karmaşıklığını değerlendirmek için göstergeler çok önemlidir. Kural olarak, bu göstergeler, en azından ayrıntılı bir tasarım gerektirdiğinden, bir projenin ilk aşamalarında hesaplanamaz. Bununla birlikte, bu göstergeler, emek yoğunluğunu doğrudan belirledikleri için, projenin süresi ve maliyetine ilişkin tahmini tahminler elde etmek için çok önemlidir.

    2.2.1 Nesne yönelimli ölçümler

    İÇİNDE modern koşullarÇoğu yazılım projesi, OO yaklaşımı temelinde oluşturulur ve bu nedenle, nesne yönelimli projelerin karmaşıklığını değerlendirmemize izin veren önemli sayıda ölçüm vardır.

    Metrikler

    Tanım

    Sınıf Başına Ağırlıklı Yöntemler (WMC) Yöntemlerinin her birinin döngüsel karmaşıklığına dayalı olarak bir sınıfın göreli karmaşıklık ölçüsünü yansıtır. Daha karmaşık yöntemlere sahip bir sınıf ve büyük miktar yöntemler daha karmaşık kabul edilir. Metrik hesaplanırken ebeveyn sınıfları dikkate alınmaz.
    Sınıf Başına Ağırlıklı Yöntemler (WMC2)

    Sınıfın şu gerçeğine dayalı olarak bir sınıfın karmaşıklığının bir ölçüsüdür: Büyük bir sayı yöntemler daha karmaşıktır ve daha fazla parametreye sahip bir yöntem de daha karmaşıktır. Metrik hesaplanırken ebeveyn sınıfları dikkate alınmaz.

    Kalıtım ağacının derinliği Bu modülde biten en uzun kalıtım yolunun uzunluğu. Modülün kalıtım ağacı ne kadar derinse, davranışını tahmin etmek o kadar zor olabilir. Öte yandan, derinliği artırmak, belirli bir modülün ata sınıfları için tanımlanan davranışı yeniden kullanması için daha fazla potansiyel sağlar.
    Çocuk Sayısı Bu modülden doğrudan devralan modül sayısı. Bu metrik için büyük değerler, yüksek yeniden kullanılabilirliği gösterir; aynı zamanda büyük önem kötü seçilmiş bir soyutlamayı gösterebilir.

    nesneler arasında bağlantı

    Müşteri veya tedarikçi rolündeki bu modülle ilişkili modüllerin sayısı. Aşırı bağlantı, modüler kapsüllemedeki zayıflığı gösterir ve kodun yeniden kullanımını engelleyebilir.

    Sınıf İçin Yanıt Sınıfın örnekleri tarafından çağrılabilecek yöntemlerin sayısı; hem yerel yöntemlerin sayısının hem de uzak yöntemlerin sayısının toplamını hesaplar

    2.2.2 Durdurulmuş metrikler

    Halstead metriği, program kaynak kodunun satır sayısı ve sözdizimi öğelerinin analizine dayalı olarak hesaplanan metrikleri ifade eder.

    Halsted'in ölçümleri dört ölçülebilir program özelliğine dayanmaktadır:

    • NUOprtr (Benzersiz Operatör Sayısı) - sınırlayıcı karakterler, prosedür adları ve operasyon işaretleri (operatör sözlüğü) dahil olmak üzere benzersiz program operatörlerinin sayısı;
    • NUOprnd (Benzersiz İşlenenlerin Sayısı) - benzersiz program işlenenlerinin sayısı (işlenen sözlüğü);
    • Noprtr (Operatör Sayısı) - programdaki toplam operatör sayısı;
    • Noprnd (İşlenen Sayısı) - programdaki toplam işlenen sayısı.

    Bu özelliklere dayanarak, tahminler hesaplanır:

    • program sözlüğü
      (Halstead Program Sözlüğü, HPVoc): HPVoc = NUOprtr + NUOprnd;
    • program uzunluğu
      (Halstead Program Uzunluğu, HPLen): HPLen = Noprtr + Noprnd;
    • program kapsamı
      (Halstead Program Hacmi, HPVol): HPVol = HPLen log2 HPVoc;
    • Program karmaşıklığı
      (Halstead Zorluğu, HDiff): HDiff = (NUOprtr/2) × (NOprnd / NUOprnd);
    • HDiff göstergesine dayanarak, bir programcının geliştirme sırasındaki çabalarının HEff (Halstead Effort) göstergesi kullanılarak değerlendirilmesi önerilir: HEff = HDiff × HPVol.

    2.2.3 McCabe Siklomatik Karmaşıklık Metrikleri

    Döngüsel karmaşıklık endeksi, yazılım projelerinin karmaşıklığını değerlendirmek için en yaygın göstergelerden biridir. Bu gösterge, 1976 yılında bilim adamı McCabe tarafından geliştirilmiştir, program kontrol akışının karmaşıklığını değerlendirmek için göstergeler grubuna aittir ve programın kontrol akış grafiği temelinde hesaplanır. Bu grafik, hesaplama operatörlerinin veya ifadelerin düğümler olarak temsil edildiği ve düğümler arasındaki kontrol aktarımının yaylar olarak temsil edildiği yönlendirilmiş bir grafik olarak oluşturulur.

    Döngüsel karmaşıklık göstergesi, yalnızca bir yazılım projesinin bireysel öğelerinin uygulanmasının karmaşıklığını değerlendirmeye ve ayarlamaya izin vermez. genel göstergeler projenin süresini ve maliyetini tahmin edin, aynı zamanda ilgili riskleri değerlendirin ve gerekli yönetim kararlarını alın.

    Döngüsel karmaşıklığı hesaplamak için basitleştirilmiş bir formül aşağıdaki gibidir:

    C \u003d e - n + 2,

    Nerede e- kaburga sayısı ve n düğüm sayısı
    kontrol mantığı grafiğinde.

    Kural olarak, döngüsel karmaşıklığı hesaplarken mantıksal operatörler dikkate alınmaz.

    Döngüsel karmaşıklık göstergesinin otomatik olarak hesaplanması sürecinde, kural olarak, grafiğin oluşturulmadığı basitleştirilmiş bir yaklaşım kullanılır ve gösterge, kontrol mantığı ifadelerinin (eğer, anahtar vb.) Sayımına ve olası program yürütme yollarının sayısına göre hesaplanır.

    McCabe'nin siklomatik sayısı, güçlü bir şekilde bağlantılı bir grafiğin tüm hatlarını kaplamak için gereken geçiş sayısını veya "her dal çalışır" ilkesine göre ayrıntılı testler için programın gerekli test çalıştırmalarının sayısını gösterir.

    Programın bir modülü, yöntemi ve diğer yapısal birimleri için döngüsel karmaşıklık indeksi hesaplanabilir.

    Döngüsel karmaşıklık göstergesinde önemli sayıda değişiklik vardır.

    • "Değiştirilmiş" döngüsel karmaşıklık - çoktan seçmeli operatörün (anahtar) her dalını değil, tüm operatörü bir bütün olarak dikkate alır.
    • "Katı" döngüsel karmaşıklık - mantıksal işleçleri içerir.
    • Döngüsel karmaşıklığın "basitleştirilmiş" hesaplanması - bir grafik temelinde değil, sayma kontrol ifadeleri temelinde hesaplama sağlar.

    2.2.4 Chapin ölçümleri

    Bunun birkaç modifikasyonu var. Daha basit düşünün, ancak bakış açısından pratik kullanım bu metriğin oldukça etkili bir çeşididir.

    Yöntemin özü, G/Ç listesindeki değişkenlerin kullanımının doğasını analiz ederek tek bir program modülünün bilgi gücünü değerlendirmektir.

    G/Ç listesini oluşturan değişkenlerin tamamı dört fonksiyonel gruba ayrılmıştır.

    Q = a1P + a2M + a3C + a4T, burada a1, a2, a3, a4 ağırlık katsayılarıdır.

    Q=P+2M+3C+0,5T.

    2.3 Program geliştirme aşamalarına bağlı olarak istatistiksel yöntemlere dayalı ön değerlendirme

    Gelişmekte olan şirketlerde entegre araçları kullanırken standart çözümler(bu kategori sözde "inhousers" - ana işletmeye hizmet veren şirketleri içerir) toplanan istatistiklere dayanarak programların karmaşıklığına ilişkin tahminler oluşturmak mümkün hale gelir. istatistiksel yöntem bu tür tipik sorunları çözmek için çok uygundur ve benzersiz projeleri tahmin etmek için pratik olarak uygun değildir. Eşsiz projeler söz konusu olduğunda, tartışılması bu materyalin kapsamı dışında olan başka yaklaşımlar kullanılır.

    Bir bereket gibi tipik görevler, iş dünyasının geliştirme departmanlarına düşer, bu nedenle karmaşıklığın ön değerlendirmesi, özellikle yalnızca nihai sonuçları değil, aynı zamanda tüm ilk ve ara sonuçları da kaydeden birikmiş bir proje veri tabanı olduğundan, planlama ve yönetim görevlerini büyük ölçüde basitleştirebilir.

    Programların geliştirilmesindeki tipik aşamaları ayıralım:

    • program için gereksinimler spesifikasyonunun geliştirilmesi;
    • mimarlık tanımı;
    • programın modüler yapısının incelenmesi, modüller arası arayüzlerin geliştirilmesi. Algoritmaların geliştirilmesi;
    • kod geliştirme ve test etme.

    Şimdi ilk iki aşamada ön değerlendirme için sıklıkla kullanılan bir dizi metriği ele almaya çalışalım.

    2.3.1 Program gereksinimlerinin belirlenmesi aşamasında programın karmaşıklığının ön değerlendirmesi

    Bu aşamadaki çalışmanın sonuçlarını değerlendirmek için, programın tahmin edilen Nprog operatör sayısının metriği kullanılabilir:

    Npron \u003d NF * Ned


    Burada: NF, geliştirilmekte olan program için gereksinimler belirtimindeki işlevlerin veya gereksinimlerin sayısıdır;
    Ned, işleç sayısının tek bir değeridir (bir ortalama işlev veya gereksinim başına ortalama işleç sayısı). Ned'in değeri istatistikseldir.

    2.3.2 Mimari aşamasında karmaşıklığın tahmin edilmesi

    Si \u003d NI / (NF * NIed * Ksl)

    Nerede:
    NI, program bileşenleri arasındaki arabirimler üzerinden iletilen değişkenlerin toplam sayısıdır (aynı zamanda istatistikseldir);
    NIed, bileşenler arasındaki arabirimler aracılığıyla aktarılan değişken sayısının tek bir değeridir (ortalama bir işlev veya gereksinim başına arabirimler aracılığıyla aktarılan değişkenlerin ortalama sayısı);
    Ксл, geliştirilen programın karmaşıklık katsayısıdır, ortalama PS'ye kıyasla büyük ve karmaşık programlar için programın birim karmaşıklığının büyümesini (bir işlev başına karmaşıklık veya program için gereksinimlerin belirtilmesi gerekliliği) dikkate alır.

    2.4 Genel metrik listesi

    Tablo 1, listede yer almayan metriklerin kısa bir açıklamasını içerir. Detaylı Açıklama yukarıda, ancak yine de bu ölçümler gerekli ve önemlidir, sadece istatistiklere göre çok daha az yaygındırlar.

    Ayrıca, bu makalenin amacının prensibi göstermek olduğunu ve olası tüm ölçümleri birçok kombinasyonda açıklamak olmadığını unutmayın.

    5). sürdürülebilirlik

    Sürdürülebilirlik, ortam, gereksinimler veya işlevsel özellikler değiştiğinde yazılımın ayarlanması, iyileştirilmesi ve uyarlanması dahil olmak üzere değişiklikler için harcanması gereken çabayı gösteren bir dizi özelliktir.

    Sürdürülebilirlik alt özellikleri içerir:

    – analiz edilebilirlik – arızaları teşhis etmek veya değiştirilecek parçaları belirlemek için gerekli çabaları belirleyen bir özellik;

    - değişebilirlik - yazılımda veya işletim ortamında hataları ortadan kaldırmak veya yeni özellikler eklemek için değişiklik yapmak, hataları gidermek veya değişiklik yapmak için harcanan çabayı belirleyen bir nitelik;

    – kararlılık – değişiklik riskini gösteren bir özellik;

    - test edilebilirlik - gerekliliklerle hataları ve tutarsızlıkları tespit etmek için doğrulama, doğrulama sırasındaki çabaları ve ayrıca yazılım değişikliği ve sertifikasyonu ihtiyacını gösteren bir özellik;

    – tutarlılık – bu özelliğin standartlar, sözleşmeler, kurallar ve düzenlemelerde tanımlananlarla uyumluluğunu gösteren bir özellik.

    6). taşınabilirlik- yazılımın çalışma zamanı ortamının yeni koşullarında çalışmaya uyum sağlama yeteneğini gösteren bir dizi gösterge. Çevre organizasyonel, donanım ve yazılım olabilir. Bu nedenle, yazılımın yeni bir yürütme ortamına aktarılması, yeni yazılım, organizasyonel ve teknik yetenekler dikkate alınarak oluşturulduğu ortamdan farklı bir ortamda çalışmasını sağlamayı amaçlayan bir dizi eylemle ilişkilendirilebilir.

    Taşınabilirlik alt özellikleri içerir:

    - uyarlanabilirlik - çeşitli ortamlara uyum sağlamak için harcanan çabaları belirleyen bir özellik;

    - özelleştirilebilirlik (kurulum kolaylığı) - bu yazılımı özel bir ortamda çalıştırmak veya kurmak için gereken çabayı belirleyen bir özellik;

    – birlikte var olma – işletim sistemi ortamında özel yazılım kullanma olasılığını belirleyen bir özellik;

    - ikame edilebilirlik - birlikte çalışabilirlik olasılığını sağlayan bir özellik ortak çalışma gerekli kurulum veya yazılım uyarlaması olan diğer programlarla;

    – tutarlılık – yazılım taşınabilirliğini sağlamak için standartlar veya anlaşmalarla uyumluluğu gösteren bir özellik.

    9.1.1. Yazılım Kalitesi Metrikleri

    Şu anda yazılım Mühendisliği metrik sistem henüz tam olarak oluşmadı. Setlerini ve ölçüm yöntemlerini belirlemek için farklı yaklaşımlar ve yöntemler vardır.

    Yazılım ölçüm sistemi, kalitesini ölçmek için kullanılan metrikleri ve ölçüm modellerini içerir.

    Yazılım gereksinimleri belirlenirken, ilgili dış özellikler ve bunların belirleyen alt özellikleri (nitelikleri) farklı taraflarürünün belirli bir ortamda çalıştırılması ve kontrolü. Gereksinimlerde belirtilen bir dizi yazılım kalite özelliği için, karşılık gelen metrikler, bunların değerlendirme modelleri ve bireysel kalite niteliklerini ölçmek için ölçüm değerleri aralığı belirlenir.

    Standarda göre, metrikler, ürünün yaşam döngüsünün tüm aşamalarında (ara, iç metrikler) ve özellikle test veya çalıştırma aşamasında (dış metrikler) yazılım öznitelik ölçüm modeli tarafından belirlenir.

    Yazılım metriklerinin sınıflandırılması, metrik analiz yapma kuralları ve ölçüm süreci üzerinde duralım.

    Metrik türleri. Üç tür metrik vardır:

    - özelliklerinin ölçülmesinde kullanılan yazılım ürünü metrikleri - özellikleri;

    – ürünü oluşturmak için kullanılan sürecin özelliğinin ölçülmesinde kullanılan süreç ölçümleri.

    – kullanım ölçümleri.

    Yazılım ürün metrikleri katmak:

    – kullanıcı tarafından görülebilen ürün özelliklerini gösteren harici ölçümler;

    – yalnızca geliştirme ekibi tarafından görülebilen özellikleri gösteren dahili ölçümler.

    Dış metriklerürün aşağıdaki metrikleri içerir:

    - kusur sayısını belirlemeye yarayan ürünün güvenilirliği;

    - üründeki işlevlerin uygulanmasının varlığını ve doğruluğunu belirleyen işlevsellik;

    – ürünün kaynaklarının ölçüldüğü bakım (hız, bellek, çevre);

    - çalışma ve kullanım için erişilebilirlik derecesinin belirlenmesine katkıda bulunan ürünün uygulanabilirliği;

    - oluşturulan ürünün maliyetini belirleyen maliyet.

    Dahili metriklerürün metrikleri içerir:

    – ürünü dahili özelliklerini kullanarak ölçmek için gerekli boyutlar;

    – ürünün karmaşıklığını belirlemek için gereken karmaşıklık;

    - ürünün ve belgelerinin ayrı bileşenlerini oluşturmak için yaklaşımları ve teknolojileri tanımlamaya yarayan stiller.

    Dahili metrikler, bir ürünün performansını ölçer ve harici metriklerle ilgilidir.

    Dış ve iç metrikler, yazılım gereksinimlerinin oluşturulması aşamasında belirlenir ve nihai yazılım ürününün kalitesine ulaşmak için planlama yollarının konusudur.

    Ürün metrikleri, genellikle kalite modelinin çeşitli özelliklerini ve değerlerini belirlemek veya tahminlerde bulunmak için bir dizi model tarafından tanımlanır. Ölçümler genellikle projenin ilk aşamalarında metriklerin kalibrasyonundan sonra gerçekleştirilir. ortak ölçü senaryo modelleri (örneğin UML) kullanılarak izlenen izlerin sayısıyla belirlenen ve aşağıdakilerin sayısı olabilen izlenebilirlik derecesidir:

    - Gereksinimler;

    - senaryolar ve aktörler;

    – senaryoya dahil edilen nesneler ve her senaryo için gereksinimlerin yerelleştirilmesi;

    – nesnenin parametreleri ve işlemleri vb.

    ISO/IEC 9126-2 standardı aşağıdaki önlem türlerini tanımlar:

    yazılım boyutunun bir ölçüsüdür farklı birimlerölçümler (fonksiyon sayısı, programdaki satırlar, boyut disk kapasitesi ve benzeri.);

    - bir zaman ölçüsü (sistem işleyişi, bileşen yürütme, vb.);

    - bir çaba ölçüsü (emek üretkenliği, emek yoğunluğu, vb.);

    – muhasebe önlemleri (hata sayısı, başarısızlık sayısı, sistem yanıtları, vb.).

    Bileşenlerin yeniden kullanım düzeyi özel bir ölçü olabilir ve hazır bileşenlerden yapılan ürünün boyutunun bir bütün olarak sistemin boyutuna oranı olarak ölçülür. Bu ölçü, yazılımın maliyetinin ve kalitesinin belirlenmesinde kullanılır. Metrik örnekleri şunlardır:

    – toplam nesne sayısı ve yeniden kullanılabilir olanların sayısı;

    – operasyonların, yeniden kullanılanların ve yeni operasyonların toplam sayısı;

    – belirli işlemleri devralan sınıfların sayısı;

    – bu sınıfın bağlı olduğu sınıfların sayısı;

    – bir sınıfın veya işlemlerin kullanıcı sayısı, vb.

    Bazı niceliklerin toplam sayısını tahmin ederken, genellikle ortalama istatistiksel metrikler kullanılır (örneğin, bir sınıftaki ortalama işlem sayısı, bir sınıfın ortalama ardıl sayısı veya bir sınıfın işlemleri, vb.).

    Kural olarak, ölçümler büyük ölçüde sübjektiftir ve yazılım ürünü bileşenlerinin özelliklerini ölçen uzmanların bilgisine bağlıdır.

    Yaygın olarak kullanılan harici program ölçümlerine bir örnek, Halsted ölçümleridir - bunlar, belirli bir programlama dilinde programın statik yapısı temelinde tanımlanan programların özellikleridir: en sık meydana gelen işlenenlerin ve işleçlerin oluşum sayısı; tüm işlenenlerin ve işleçlerin oluşum sayılarının toplamı olarak program açıklamasının uzunluğu, vb.

    Bu niteliklere dayanarak, programlama süresi, programın düzeyi (yapısallık ve kalite) ve programlama dili (dil araçlarının soyutlanması ve belirli bir soruna odaklanma) vb. hesaplanabilir.

    Süreç Metrikleri metrikleri dahil et:

    - orijinallik, destek, geliştirme belgeleri dikkate alınarak bir ürün veya proje mimarisi oluşturma maliyetlerini belirleyen maliyetler;

    - kişi başına uzmanların çalışmalarının maliyetine ilişkin tahminler - gün veya ay;

    - sürecin güvenilmezliği - tasarım sırasında tespit edilemeyen kusurların sayısı;

    – tekrarlanan bileşenlerin kullanım derecesini belirleyen tekrarlanabilirlik.

    Süreç ölçümleri, geliştirme süresi, test aşamasında bulunan hataların sayısı vb. Olabilir. Aşağıdaki süreç ölçümleri pratik olarak kullanılır:

    toplam zaman geliştirme ve her aşama için ayrı zaman;

    – model değiştirme zamanı;

    - süreç üzerinde çalışmanın yürütülme zamanı;

    - inceleme sırasında bulunan hataların sayısı;

    – kalite kontrol maliyeti;

    - geliştirme sürecinin maliyeti.

    Kullanım Metrikleri kullanıcının problemlerini çözerken ihtiyaçlarından tatmin derecesini ölçmeye hizmet eder. Programın kendisinin özelliklerini değil, operasyonunun sonuçlarını - operasyonel kaliteyi değerlendirmeye yardımcı olurlar. Bir örnek, kullanıcı görevlerinin uygulanmasının doğruluğu ve eksiksizliği ile kullanıcı görevlerinin etkin çözümü için harcanan kaynaklardır (işçilik maliyetleri, üretkenlik vb.). Kullanıcı gereksinimlerinin değerlendirilmesi, esas olarak harici metriklerin yardımıyla gerçekleştirilir.

    9.1.2. Kalite Gösterge Değerlerini Değerlendirmek İçin Standart Yöntem

    Dört seviyeli kalite modeline göre yazılım kalite değerlendirmesi, hiyerarşinin alt seviyesinden başlar, yani. belirlenen ölçütlere göre kalite göstergesinin değerlendirilen niteliğinin en temel özelliğinden. Tasarım aşamasında, analiz edilen yazılımın gereksinimler içinde yer alan göstergesinin her bir özelliği için değerlendirme öğelerinin değerleri belirlenir.

    ISO/IES 9126-2'ye göre, bir yazılım kalite metriği, "bir yazılım kalite puanıyla ilişkili bir öznitelik için bir ölçüm modelidir". Kalite göstergelerini ölçerken metrikleri kullanmak için bu standart aşağıdaki ölçü türlerini tanımlamanıza olanak tanır:

    - farklı ölçü birimlerinde boyut ölçüleri (işlev sayısı, program boyutu, kaynak miktarı, vb.);

    – zaman ölçüleri – gerçek, işlemci veya takvim süresi dönemleri (sistem çalışma süresi, bileşen yürütme süresi, kullanım süresi, vb.);

    - çaba ölçüleri - projenin uygulanması için harcanan verimli zaman (bireysel proje katılımcılarının işgücü verimliliği, toplu emek yoğunluğu, vb.);

    – olaylar arasındaki aralık ölçüleri, örneğin birbirini izleyen arızalar arasındaki süre;

    - sayma önlemleri - tespit edilen hataların sayısını, programın yapısal karmaşıklığını, uyumsuz öğelerin sayısını, değişiklik sayısını (örneğin, tespit edilen arızaların sayısı vb.) belirlemek için sayaçlar.

    Kalite ölçütleri, yazılımı çeşitli testlerde test ettikten sonra test edilebilirlik derecesini değerlendirmek için kullanılır (hatasız çalışma, işlevlerin uygulanabilirliği, kullanıcı arayüzlerinin kullanım kolaylığı, veritabanları, vb.).

    Bir güvenilirlik özelliği olarak MTBF, güvenliği ihlal eden tehditlerin ortaya çıkması arasındaki ortalama süreyi tanımlar ve karşılık gelen tehditlerin neden olduğu hasarın ölçülmesi zor bir değerlendirmesini sağlar.

    Çoğu zaman, bir program satır sayısına göre değerlendirilir. Aynı uygulamalı görevi uygulayan iki programı karşılaştırırken, daha kalifiye personel tarafından oluşturulduğundan, daha az gizli hataya sahip olduğundan ve değiştirilmesi daha kolay olduğundan, kısa bir program tercih edilir. Maliyet açısından daha pahalıdır, ancak hata ayıklaması ve değiştirmesi daha fazla zaman alır. Onlar. program uzunluğu, geliştiricilerin aynı niteliklerine, aynı geliştirme stiline ve ortak ortama dayalı programları karşılaştırırken yardımcı bir özellik olarak kullanılabilir.

    Yazılım gereksinimleri birkaç gösterge elde etmek için belirtilmişse, yürütme sırasında veri toplandıktan sonra hesaplanan gösterge uygun ağırlıklandırma faktörü ile çarpılır ve ardından yazılım kalite seviyesinin kapsamlı bir değerlendirmesini elde etmek için tüm göstergeler toplanır.

    Nicel özelliklerin ölçülmesine ve farklı göstergeleri dengeleyen ağırlıklandırma faktörleri kullanılarak nitel göstergelerin incelenmesine dayalı olarak, ürün kalitesinin nihai değerlendirmesi, bireysel göstergelerin sonuçlarının toplanması ve bunların yazılım kıyaslama göstergeleriyle (maliyet, zaman, kaynaklar, vb.) karşılaştırılmasıyla hesaplanır.

    Onlar. değerlendirme öğeleri kullanılarak bireysel bir gösterge değerlendirilirken, ağırlıklı bir katsayı hesaplanır k- metrik, J- indeks, Ben- bağlanmak. Örneğin, olarak J Taşınabilirliği bir gösterge olarak alalım. Bu gösterge beş özelliğe göre hesaplanacaktır ( ben = 1, ..., 5) ve her biri ilgili katsayı k i ile çarpılacaktır.

    Tüm metrikler J– nitelikler özetlenir ve şekillenir Ben - kalite seviyesi. Kalite göstergelerinin her biri için tüm nitelikler değerlendirildiğinde, ayrı bir göstergenin toplam değerlendirmesi yapılır ve ardından tüm yazılım göstergelerinin ağırlıklandırma katsayıları dikkate alınarak entegre bir kalite değerlendirmesi yapılır.

    Nihayetinde, kalite değerlendirmesinin sonucu, yaşam döngüsünün aşamalarında bir yazılım ürünü oluşturmanın sonuçlarını değerlendirmek için tasarım yöntemlerinin, araçlarının ve yöntemlerinin uygulanmasının etkinliği ve uygunluğu için bir kriterdir.

    Kalite göstergelerinin değerlerinin değerlendirilmesini sunmak için, aşağıdaki yöntemlerin sunulduğu bir standart kullanılır: ölçme, kayıt, hesaplama ve uzman (ve bu yöntemlerin kombinasyonları).

    ölçüm yöntemiölçme ve özel kullanımına dayalı yazılım araçları yazılımın özellikleri hakkında bilgi elde etmek, örneğin, hacmin belirlenmesi, kod satırı sayısı, operatörler, programdaki şube sayısı, giriş (çıkış) noktalarının sayısı, reaktivite vb.

    Kayıt Yöntemi yürütme sürecinde yazılımın süresini, arıza veya arıza sayısını, başlangıcını ve sonunu hesaplarken kullanılır.

    Hesaplama yöntemi yazılımın test edilmesi, çalıştırılması ve bakımı sırasında toplanan istatistiksel verilere dayanmaktadır. Hesaplama yöntemleri güvenilirlik, doğruluk, kararlılık, reaktivite vb. göstergelerini değerlendirir.

    uzman yöntemi bir grup uzman tarafından gerçekleştirilir - belirli bir görevi veya yazılım türünü çözme konusunda yetkin uzmanlar. Değerlendirmeleri, hesaplamaların veya deneylerin doğrudan sonuçlarına değil, deneyime ve sezgiye dayalıdır. Bu yöntem, programları, kodları, beraberindeki belgeleri görüntüleyerek gerçekleştirilir ve oluşturulan ürünün niteliksel bir değerlendirmesine katkıda bulunur. Bunu yapmak için kontrollü işaretler oluşturulur, bir veya daha fazla kalite göstergesiyle ilişkilendirilir ve uzmanların anketlerine dahil edilir. Yöntem, analiz edilebilirlik, belgelenebilirlik, yapılandırılmış yazılım vb. göstergelerin değerlendirilmesinde kullanılır.

    Kalite göstergelerinin değerlerini değerlendirmek için kullandıkları özelliklerin özelliklerine, amaçlarına ve bunları belirleme yöntemlerine bağlı olarak aşağıdaki ölçekler kullanılır:

    - metrik (1.1 - mutlak, 1.2 - göreli, 1.3 - integral);

    - sıra (sıralama), özellikleri referans olanlarla karşılaştırarak sıralamaya izin verir;

    - değerlendirilen yazılımda yalnızca dikkate alınan özelliğin varlığını veya yokluğunu karakterize eden sınıflandırma.

    Metrik ölçekler kullanılarak hesaplanan göstergelere nicel ve sıra ve sınıflandırma yardımıyla - niteliksel denir.

    Bir yazılım sisteminin kalitesini karakterize eden nitelikleri, kalite ölçütleri kullanılarak ölçülür. Metrik, özelliğin ölçüsünü tanımlar, örn. bir ölçüm sonucunda bir değer atanan bir değişken. İçin doğru kullanımölçüm sonuçları her ölçüm bir ölçüm ölçeği ile tanımlanır.

    - nominal ölçek, değerlendirilen nesnenin özellik kategorilerini sıralamadan yansıtır;

    - sıra ölçeği, özellikleri temel değerlerle karşılaştırarak artan veya azalan düzende sıralamak için kullanılır;

    - aralık ölçeği, nesnenin temel özelliklerini ayarlar (örneğin, takvim tarihi);

    – göreceli ölçek, seçilen birime göre bazı değerler ayarlar;

    - mutlak ölçek, miktarın gerçek değerini gösterir (örneğin, programdaki hata sayısı 10'dur).

    9.1.3. PS kalite yönetimi

    Altında kalite Yönetimi PS kalitesinin elde edilmesini planlamak ve yönetmek için prosedürler, süreçler ve kaynakların yanı sıra organizasyon yapısının ve sorumlu kişilerin bütününü ifade eder. Kalite yönetimi - SQM (Yazılım Kalite Yönetimi), kalite güvencesi için standart hükümlerin - SQA (Yazılım Kalite Güvencesi) uygulanmasına dayanmaktadır.

    SQA sürecinin amacı, ürünlerin ve süreçlerin gereksinimlerle tutarlı olmasını, planlara uymasını ve aşağıdaki faaliyetleri içermesini sağlamaktır:

    – yaşam döngüsü aşamalarında PS'nin geliştirilmesi için standartların ve ilgili prosedürlerin getirilmesi;

    – bu standartların ve prosedürlerin hükümlerine uygunluğun değerlendirilmesi.

    Kalite güvencesi aşağıdaki gibidir:

    – planların tutarlılığının ve fizibilitesinin kontrol edilmesi;

    – ara çalışma ürünlerinin planlanan göstergelerle koordinasyonu;

    – üretilen ürünlerin belirtilen gereksinimlere göre doğrulanması;

    – sözleşme ve planlara uygunluk için uygulanan süreçlerin analizi;

    – geliştirme ortamı ve yöntemleri geliştirme sırası ile tutarlıdır;

    - ürünlerin kabul edilen metriklerinin, süreçlerinin ve bunların ölçüm yöntemlerinin onaylanmış standart ve ölçüm prosedürlerine uygun olarak doğrulanması.

    SQM yönetim sürecinin amacı, ürünün tüketiciyi tatmin etmesini sağlamak için kaliteyi izlemek (sistematik kontrol) yapmaktır ve aşağıdaki faaliyetleri içerir:

    – tanımlanmış ve tahmin edilen kullanıcı ihtiyaçlarına dayalı olarak kalitenin niceliksel özelliklerinin belirlenmesi;

    – kaliteye ulaşmak için belirlenen hedeflerin uygulanmasının yönetimi.

    SQM, aşağıdakilerin güvencesine dayanmaktadır:

    – ürün kilometre taşlarında tüm iş ürünleri için kalite hedefleri belirlenir;

    – kaliteye, metriklere, kriterlere, tekniklere, ölçüm süreci gereksinimlerine vb. ulaşmak için bir strateji;

    - ürünlere kalite özelliklerinin sağlanması ile ilgili eylemler tanımlanır ve yürütülür;

    - kalite kontrol (SQA, doğrulama ve doğrulama) ve hedefler gerçekleştirilir, ulaşılamazsa süreçler düzenlenir;

    – Ölçme ve değerlendirme süreçleri yürütülür son ürün gerekli kaliteyi elde etmek için.

    Kaliteli bir ürün oluşturmak ve başarı düzeyini değerlendirmek için ana standart hükümler, PS'nin yaşam döngüsü aşamalarında iki kalite güvence sürecini birbirinden ayırır:

    - yaşam döngüsünün her aşamasında belirli faaliyetlerin bir sonucu olarak, sistemin kaliteye ulaşmaya odaklanan standartlar ve prosedürlere uygunluğunun kontrolü ile PS kalitesinin garanti edilmesi (teyidi);

    - işlevsellik, güvenilirlik, bakım ve diğer kalite özelliklerine sahip yazılım ürünleri sağlama süreci olarak kaliteli mühendislik.

    Kalite Başarı Süreçleri aşağıdakiler için tasarlanmıştır:

    a) güvenlik önlemlerini belirtilen standartlar ve prosedürlere uygun olarak yönetmek, geliştirmek ve sürdürmek;

    b) standartlar ve prosedürler uyarınca konfigürasyon yönetimi (tanımlama, durum raporlama ve kimlik doğrulama faaliyetleri), risk ve proje yönetimi;

    c) PS'nin temel sürümünün ve içinde uygulanan kalite özelliklerinin kontrolü.

    Bu süreçlerin uygulanması aşağıdaki eylemleri içerir:

    – programların geliştirilmesinde izlenen standartların ve prosedürlerin değerlendirilmesi;

    – yönetimin gözden geçirilmesi, yazılım kalitesinin geliştirilmesi ve güvencesinin yanı sıra proje dokümantasyonu (raporlar, geliştirme programları, mesajlar, vb.);

    – resmi teftişlerin ve gözden geçirmelerin kontrolü;

    - PS'nin kabul testinin (testinin) analizi ve kontrolü.

    Bileşenler de dahil olmak üzere bir yazılım sistemi geliştiren bir kuruluş için, yazılım kalite mühendisliği bir kalite sistemi tarafından desteklenmelidir. , kalite yönetimi (planlama, muhasebe ve kontrol).

    Kalite Mühendisliği yazılım ürünlerinin kalite gereksinimlerine uygunluğunun kontrol edildiği ve yazılım gereksinimlerinde belirtilen özelliklere sahip olduğu bir dizi yöntem ve faaliyeti içerir.

    Kalite sistemi(Kalite sistemleri - QS), kalite yönetiminin uygulanması için bir dizi organizasyonel yapı, yöntem, faaliyet, süreç ve kaynaktır. Gerekli yazılım kalitesi seviyesini sağlamak için iki yaklaşım kullanılır. Bunlardan biri nihai yazılım ürününe, ikincisi ise bir ürün yaratma sürecine odaklanıyor.

    Ürün odaklı bir yaklaşımda, PS test edildikten sonra kalite değerlendirmesi yapılır. Bu yaklaşım, test sırasında bir üründe ne kadar çok hata bulunursa ve ortadan kaldırılırsa, o ürünün kalitesinin o kadar yüksek olduğu varsayımına dayanmaktadır.

    İkinci yaklaşımda, hatalardan başlayarak hataların önlenmesi, derhal tespit edilmesi ve ortadan kaldırılması için önlemler öngörülür ve alınır. Ilk aşamalar Geliştirilen PS'nin kalitesini sağlamak için plan ve prosedürlere uygun yaşam döngüsü. Bu yaklaşım ISO 9000 ve 9000-1,2,3 serisi standartlarda sunulmaktadır. 9000-3 standardının amacı, gelişmekte olan kuruluşlara Şekil 9.3'te gösterilen şemaya göre bir kalite sistemi kurmalarını tavsiye etmektir.

    Eklem yeri

    Kontrol sistemi Müdürü İş Sorumlusu

    Sanatçıdan müşteriye kalite

    Genel politika

    Sorumluluk

    ve güçler

    Kontroller

    başarı planı

    PS kalitesi

    Şekil 9.3. Kalite sisteminin organizasyonu için standardın gereklilikleri

    Yaşam döngüsü süreçlerinin özelliklerini, kaynaklarını ve bunlar üzerinde oluşturulan iş ürünlerini ölçme sürecine kalite mühendisliğinde önemli bir yer verilir. Bu süreç kalite, doğrulama ve test ekibi tarafından uygulanmaktadır. Bu grubun işlevleri şunları içerir: planlama, operasyonel yönetim ve kalite güvencesi.

    Kalite planlaması hedefleri ve kalite gereksinimlerini tanımlamayı amaçlayan bir faaliyettir. Tanımlama, hedef belirleme, kalite gereksinimleri, sınıflandırma ve kalite değerlendirmesini kapsar. Gelişim durumunu analiz etmek ve yaşam döngüsünün aşamalarında planlanan göstergeleri ve kriterleri sırayla ölçmek için bir takvim planı çizelgesi hazırlanır.

    operasyonel yönetim tasarım sürecinin mevcut yönetimi için operasyonel nitelikteki yöntemleri ve faaliyetleri, PS'nin tatmin edici olmayan işleyişinin nedenlerinin ortadan kaldırılmasını içerir.

    Kalite güvencesi geliştirme nesnesinin belirtilen kalite gereksinimlerini karşıladığının yerine getirilmesinden ve doğrulanmasından oluşur. Kalite güvence hedefleri dahili veya harici olabilir. Dahili hedefler - proje yöneticisinde kalitenin sağlandığı konusunda güven oluşturmak. Dış hedefler, kullanıcıda gerekli kalitenin elde edildiğine ve sonucun kaliteli yazılım olduğuna dair güven yaratmaktır.

    Deneyimler, yazılım ürünleri üreten bazı firmaların, rekabetçi ürünler üretmelerini sağlayan kalite sistemlerine sahip olduğunu göstermektedir. Kalite sistemi, üretilen yeni bir ürün tipine olan talebin izlenmesini, bitmiş sistem bileşenlerinin seçimi ve tedariki dahil olmak üzere PS üretiminin tüm aşamalarının izlenmesini içerir.

    Uygun kalitede hizmetlerin yokluğunda, yazılım geliştiriciler, tüm yazılım geliştirici kategorileri ve yazılım ürünleri kullanıcıları için yazılım kalite yönetimi sürecini düzenleyen kendi düzenleyici ve metodolojik belgelerini uygulamalıdır.

    9.2. Güvenilirlik değerlendirme modelleri

    Yazılım mühendisliğinin tüm alanları arasında yazılım güvenilirliği en çok araştırılan alandır. Güvenilirlik teorisinin geliştirilmesinden önce geldi. teknik araçlar, bu da PS güvenilirliğinin gelişimini etkiledi. PS geliştiricileri, farklı yöntemler deneyerek PS güvenilirlik sorunlarıyla uğraştı. sistem anlamına gelir müşteriyi tatmin eden güvenilirliğin yanı sıra, PS'nin işleyişinin doğasını inceleyen teorisyenler sağlar. Matematiksel modeller güvenilirlik, PS çalışmasının çeşitli yönlerini (hataların, arızaların, arızaların vb. meydana gelmesi) dikkate alarak ve gerçek güvenilirliği değerlendirin. Sonuç olarak, PS güvenilirliği bağımsız bir teorik ve uygulamalı bilim olarak oluşturulmuştur.

    Karmaşık PS'nin güvenilirliği, ekipmanın güvenilirliğinden önemli ölçüde farklıdır. Veri taşıyıcıları (dosyalar, sunucu vb.) son derece güvenilirdir, üzerlerindeki kayıtlar bozulmaya ve eskimeye maruz kalmadığından uzun süre bozulmadan saklanabilir.

    Uygulamalı bilim açısından güvenilirlik- bu, PS'nin belirli çalışma koşulları altında belirli bir süre boyunca başlangıç ​​verilerini sonuçlara dönüştürmek için özelliklerini (güvenilirlik, kararlılık vb.) koruma yeteneğidir. Yazılımın güvenilirliğindeki azalma, gereksinimler, tasarım ve uygulamadaki hatalardan kaynaklanmaktadır. Arızalar ve hatalar, ürünün üretilme şekline bağlıdır ve belirli bir süre boyunca yürütülürken programlarda görünür.

    Birçok sistem (programlar ve veriler) için güvenilirlik çok önemlidir amaç fonksiyonu uygulama. Bazı sistem türleri (gerçek zamanlı, radar sistemleri, güvenlik sistemleri, yerleşik programlara sahip tıbbi ekipman vb.), hataların kabul edilemezliği, güvenilirlik, emniyet, güvenlik vb. gibi yüksek güvenilirlik gereksinimlerine sahiptir.

    Yazılım belge

    vesaire. Sunulan renkli web ders kitapları, algılaması ve anlaması zor ... kullanımı. MM. Petrukhin GOU VPO "... tesisler. bugüne kadar programımühendislik geliştirmeye yönelik iki temel yaklaşım vardır. yazılımemin olmak ...