• Nejdůležitější metriky QA. Práce v novém Yandex Metrica: pokyny pro webovou analýzu

    S novými metodikami, jako je Extreme Programming nebo Scrum, může být vývoj rychlejší a dostupnost nových platforem a abstrakce z nižších vrstev se vyhne mnoha nástrahám. Kontrola kvality však musí být prováděna na nejvyšší úrovni různé úrovně– počínaje metodickou a konče technologickou úrovní, kdy probíhají procesy řízení kvality automatický režim, například během automatického sestavení projektu. Jakákoli kontrola však vyžaduje přítomnost metrik, které umožňují posoudit dosažení určité úrovně kvality. softwarový projekt.

    Metriky kódu

    Softwarová metrika (softwarová metrika) - numerická míra, která umožňuje vyhodnotit určité vlastnosti určité části programového kódu. Pro každou metriku obvykle existují její referenční ukazatele, které ukazují, při jakých extrémních hodnotách stojí za to věnovat pozornost této části kódu. Metriky kódu jsou rozděleny do kategorií a mohou hodnotit zcela odlišné aspekty softwarového systému: složitost a strukturu programového kódu, konektivitu komponent, relativní objem softwarové komponenty atd. Nejsnáze pochopitelná metrika je počet řádků kódu v softwarovém systému, i když je elementárně počítán, ale v kombinaci s jinými metrikami může sloužit k získání formalizovaných dat pro vyhodnocení kódu. Můžete například vytvořit vztah mezi počtem řádků kódu ve třídě a počtem metod/vlastností ve třídě a získat tak charakteristiku, která ukazuje, jak objemné jsou metody dané třídy. Kromě toho lze takové odhady použít ve spojení s metrikami složitosti (například McCabeho cyklomatická složitost) k určení nejobtížnějších částí programového kódu a k provedení příslušných opatření.

    Metriky kódu mohou také sloužit k identifikaci architektonických prvků. Použití takových metrik dává největší efekt při analýze velkých softwarových systémů, při manuální analýze a kontrole zdrojový kód může trvat značné množství času. Například metriky můžete vizualizovat různými způsoby, jak je znázorněno na obrázku 1. 1, kde je každý blok programu reprezentován jako obdélník, přičemž délka každé strany obdélníku odráží hodnotu kterékoli z metrik (například složitost, strukturovanost atd.). Takovou reprezentaci lze sestavit jak pro entity programu na vysoké úrovni (sestavení, knihovny, jmenné prostory), tak pro soukromější prvky (vlastnosti, metody). Zároveň můžete při analýze diagramu na vysoké úrovni rychle identifikovat problematické knihovny a přejít na nižší úroveň, abyste prozkoumali problematické entity.

    Metriky kódu jsou důležitým nástrojem a dnes je již používá mnoho dodavatelů softwaru. Při certifikaci do vyšších úrovní podle modelů ISO/IEC nebo CMM/CMMI je tedy povinné používání kódové metriky, která umožňuje do určité míry dosáhnout kontrolovatelnosti procesu vývoje.

    Existuje mnoho různých klasifikací softwarových metrik, které interpretují metriky z různých perspektiv a řadí stejné charakteristiky podle různých kritérií. Jednou z takových klasifikací může být rozdělení metrik do skupin podle předmětů hodnocení:

      velikost– srovnávací posouzení velikostí softwaru;

      složitost- hodnocení architektury a algoritmů softwarového systému (negativní ukazatele této skupiny metrik indikují problémy, se kterými se lze setkat při vývoji, podpoře a ladění programového kódu);

      udržitelnost– posouzení potenciálu softwarového systému pro následnou úpravu.

    Samozřejmě existují další skupiny, které do této klasifikace zahrnuty nejsou, například metriky spokojenosti uživatelů nebo ukazatele shody s počátečními požadavky, ale v tento případ nás bude zajímat kvalita softwaru z pohledu technické realizace.

    Záleží na velikosti?

    Metrika SLOC (zdrojové řádky kódu) odráží počet řádků zdrojového kódu. Tento ukazatel nelze vždy použít pro objektivní posouzení objemu softwarového systému - jeho číselná hodnota závisí na mnoha náhodných faktorech, jako je například styl kódování. Srovnávat dva softwarové systémy pouze podle tohoto kritéria je stěží opodstatněné, proto se pro SLOC objevilo mnoho odvozených ukazatelů: počet prázdných řádků; počet řádků obsahujících komentáře; procento komentářů; počet řádků kódu obsažených v metodách/funkcích; průměrný počet řádků kódu na metodu/funkci; průměrný počet řádků kódu na třídu/balík; průměrný počet řádků kódu na modul atd.

    Kromě SLOC se při odhadu velikosti často používá indikátor LSI (logické zdrojové instrukce) „logických“ řádků kódu, který se vypočítá po normalizaci (uvedení zdrojového kódu do správné podoby) výpisu: odstranění umístění několik instrukcí na jednom řádku, prázdné řádky, mazání komentářů, formátování řádků kódu pro inicializaci dat atd. Takový ukazatel může sloužit pro objektivnější posouzení objemu systému (ukazatel s normalizací vypadá stejně jako SLOC - počet řádků, ale ne fyzický, ale logický). LSI má také deriváty, jako je metrika vypočítaná nikoli jako fyzický počet řádků kódu v původním programovacím jazyce, ale jako počet instrukcí v jazyce nižší úrovně (jazyk assembler, MSIL atd.), což eliminuje potřebu pro normalizaci.

    Další metriky tohoto typu jsou založeny na entitách souvisejících s konkrétním programovacím paradigmatem. Nejpopulárnější je dnes paradigma objektově orientovaného programování, nicméně funkční a procedurální přístup k programování má také svou specifickou sadu metrik. Z objektově orientovaného hlediska lze velikost systému vypočítat jako počet tříd, které obsahuje. Ukazatel počtu tříd je jednou z hlavních metrik v tomto přístupu, nicméně v závislosti na použitém programovacím jazyce mohou být takové metriky jako počet jmenných prostorů v projektu, počet struktur, výčtů, počet metod atd. Kromě toho můžete vypočítat „hustotu“ těchto ukazatelů určením poměru hodnot těchto metrik. Můžete například vypočítat poměr počtu tříd k počtu metod a pochopit, kolik metod je v průměru obsaženo v jedné třídě. K definování prahových hodnot pro tento typ metriky je však zapotřebí více výzkumu. Většina jednoduchým způsobem stanovení hraničních hodnot může být experiment, ve kterém jsou hodnoty těchto metrik již vypočteny stávající systémy. Výpočet takových poměrů nám umožní opravit myšlenku systému, který se vyvinul na základě kvantitativních metrik.

    Kvalita systému není přímo závislá na použití těchto indikátorů, nicméně zkušení vývojáři dokážou v průběhu času přibližně předpovědět objem systému pro danou funkcionalitu požadovanou zákazníkem. V tomto případě, pokud je patrná odchylka od daných ukazatelů (například výrazné zvýšení počtu tříd s nízkým počtem metod na třídu), stojí za zvážení, že může být nadměrný počet objektů v systému a refaktorování kódu v dřívější fázi.

    Složitost

    Pro hodnocení a kontrolu kvality kódu lze přímo použít metriky složitosti: cyklomatická složitost, koherence kódu, hloubka dědičnosti atd.

    Metrika cyklomatické složitosti ukazuje počet větví řídicího toku programu zvýšený o jednu. Pro výpočet této metriky je na základě zdrojového kódu vytvořen orientovaný graf obsahující jeden vstup a jeden výstup. V tomto případě jsou vrcholy grafu korelovány s těmi sekcemi programového kódu, které obsahují pouze sekvenční výpočty a nejsou zde žádné operátory větvení a smyčky. Oblouky v tomto případě korelují s přechody z bloku do bloku. Navíc je každý vrchol grafu dosažitelný z počátečního bodu a koncový bod je dosažitelný z kteréhokoli jiného. V tomto případě lze cyklomatickou složitost vypočítat jako rozdíl mezi počtem oblouků a počtem vrcholů, zvýšeným o dva. Takový indikátor může odrážet složitost toku řízení programu a dávat signál o možné přítomnosti nekvalitní části kódu. Bohužel, navzdory zřejmé praktické užitečnosti, tato metrika není schopna rozlišovat mezi cyklickými operátory. Navíc programové kódy reprezentované stejnými grafy mohou mít zcela odlišné predikáty ve složitosti (logické výrazy obsahující proměnnou). Z tohoto důvodu se někdy cyklomatická složitost používá současně s jinými metrikami, jako je metrika počtu operátorů.

    Metrika konektivity třídy umožňuje určit míru závislosti programových komponent systému na sobě. Zvýšené hodnoty této metriky vzhledem k prahovým hodnotám mohou naznačovat nadměrné propojení systému, které se objevuje v důsledku slabého modulárního zapouzdření. Tato vlastnost softwarového systému může vést k potížím při opětovném použití kódu. Na tuto metriku můžete se orientovat při vytváření a přepracování architektury softwarového systému. Hlavní způsoby, jak snížit soudržnost objektů, jsou přísnější zapouzdření logiky v objektech, revize fungování algoritmů z koncepčního hlediska a strukturální dekompozice. V tomto případě se používají továrny na objekty, které umožňují vyhnout se zbytečné soudržnosti v době vytváření instancí tříd. Díky použití nezpracovaných hodnot této metriky je možné snížit koherenci softwarového systému a tím i složitost kódu.

    Někdy používají variaci metriky, která odráží koherenci kódu – počet volání operace. Tato metrika vám umožňuje kvantifikovat konektivitu systému ve formě volání metod. Metrika počítá pouze volání operací definovaných uživatelem. Pokud například metoda A() volá metodu B() třikrát, bude hodnota této metriky rovna jedné; pokud je metoda B() volána jednou z metod A(), C() a D(), pak bude hodnota metriky tři. Absolutní hodnota této metriky se však může výrazně lišit projekt od projektu v závislosti na přístupech k navrhování a kódování softwarových systémů. I v rámci stejného vývojového týmu na identických projektech se hodnota této metriky může lišit v důsledku subjektivních faktorů (například stylu konkrétního vývojáře při rozdělování logiky do samostatných metod), které ovlivnily budování softwarového systému.

    Přímý výsledek výpočtu této metriky má pochybnou praktickou hodnotu, nicméně v kombinaci s celkovou hodnotou metriky může počet metod ve třídě poskytnout objektivní hodnocení konektivity systému. Pokud například použijete tuto metriku spolu s metrikou složitosti a také objemovými charakteristikami, pak pomocí souhrnu hodnot těchto metrik můžete detekovat nedostatečně kvalitní kód.

    Další důležitou metrikou pro hodnocení složitosti je průměrná hloubka dědičnosti, která se vypočítává jako průměr hloubky dědičnosti pro všechny uživatelem definované třídy v systému. To nebere v úvahu třídy, které nejsou na nejnižší úrovni hierarchie dědičnosti. Vysoké hodnoty metriky mohou signalizovat, že architekti softwarového systému jsou příliš unešeni technikami objektově orientovaného programování, což může negativně ovlivnit další vývoj systémy. Dědičnost výrazně zvyšuje konektivitu, což se nemusí projevit v jiných metrikách hodnocení systému. Při vytváření kódu se často můžete vyhnout použití dědičnosti tím, že ji nahradíte ekvivalentními technikami. Místo toho můžete například použít vkládání závislostí a kontejnery IoC. Výsledek výpočtu této metriky se zpravidla používá v nezpracované podobě v praktických úlohách stavby a refaktoringu architektury. Výsledné metriky lze také použít ve složitějších komplexních metrikách. Jinými slovy, pokud je hodnota této metriky velká, lze anomálii okamžitě detekovat. Kromě toho lze tuto metriku použít ve spojení s dalšími, jako je složitost a objem systému McCabe, k přesnějšímu měření softwarového systému.

    Obecně platí, že metriky složitosti mohou být velkou pomocí pro výrobce softwaru v procesu monitorování a řízení kvality softwaru.

    Udržitelnost

    Metriky tohoto typu ukazují složitost procesu údržby a vývoje programového kódu a zpravidla úzce souvisí s metrikami složitosti, ale mají své vlastní charakteristiky odrážející možnosti podpory systému.

    Jednou z hlavních metrik této kategorie je Halstedova metrika, v rámci které jsou určeny čtyři měřené charakteristiky programu: počet jedinečných příkazů programu včetně oddělovacích znaků, názvů procedur a operačních znaků (slovník příkazů); počet jedinečných programových operandů (slovník operandů); celkový počet výpisů v programu; celkový počet operandů v programu. Na základě těchto charakteristik jsou provedena základní posouzení: sestaví se programový slovník; je určena délka programu, jeho objem a složitost. Dále je navrženo vypočítat různé míry, které vám umožní vyhodnotit programový kód. Například výraz pro výpočet kvality programování, složitosti pochopení programu, mentálních nákladů na vytvoření programu atp.

    Halstedova metrika je čistě informační, nicméně zůstává jednou z mála, která nám umožňuje kvantifikovat budoucí ukazatel udržovatelnosti systému, přičemž tento ukazatel má přímou korelaci s kvalitou vydávaného produktu.

    Nástroj pro analýzu kódu

    Vývojáři na platformě Microsoft mohou používat verzi vizuální studio 2008, což umožňuje vypočítat základní sada klíčové metriky a sledovat je v reálném čase (obrázek 2). Hlavním případem použití metrik je však informování vývojových manažerů o tom, že kvalita produktu se mohla snížit nebo zvýšit. Proto má smysl počítat takové metriky během procesu sestavování projektu.

    Visual Stuido 2008 a Microsoft Build vám neumožňují vytvořit seriózní hierarchii metrik, a proto byste měli použít jiné nástroje, jako je NDepend, který umožňuje platformě .NET vypočítat různé typy konektivity, dědičnosti a abstrakce, integrovat do proces tvorby programů v souladu s požadavky konkrétního vývojového týmu.

    Problémy při používání metrik kódu

    Navzdory skutečnosti, že metriky umožňují řídit proces vývoje, je práce s nimi spojena s řadou problémů.

    Za prvé, všechny v současnosti známé metriky kódu nejsou dostatečně významné a přesné. Nejsou schopny poskytnout objektivní obraz o stavu softwarového systému, ale pouze poskytnout ukazatele, které jsou vypočteny podle daného algoritmu. Za druhé, proces měření může být uměle zkreslen tím, že zaměstnanci „optimalizují“ svůj kód tak, aby metriky přinášely lepší výsledky. Formální použití metrik navíc nezohledňuje zkušenosti zaměstnanců, úroveň firmy a může přinést nejen výhody, ale i škody.

    Přesto jsou metriky v rukou vývojářů a projektových manažerů docela užitečným nástrojem k identifikaci, kdy vývoj jde na nižší kvalitativní úroveň, a rozpoznání nejobtížnějších částí systému. Definice číselných ukazatelů může poskytnout nové informace o vyvíjeném produktu a pomoci lépe plánovat náklady na jeho další vývoj.

    Sergej Zvezdin ([e-mail chráněný]) je postgraduální student na jižním Uralu státní univerzita(Čeljabinsk).

    Portál distančního vzdělávání spuštěn na Moskevské státní univerzitě

    Škola distančního vzdělávání Moskevské státní univerzity M.V. Lomonosov otevřela svůj vlastní internetový portál. Nabízí přístup do společné otevřené elektronické knihovny Moskevské státní univerzity a Ruské akademie věd, učebnice a kurzy, audio a video materiály a také vzdělávací programy využívající technologie distančního vzdělávání. Část prostředků portálu je dostupná pouze posluchačům vzdálené programy kteří platili školné v souladu s dohodou s univerzitou. Video materiály MSU jsou nyní k dispozici na kanál Univerzita na YouTube. Vzdělávací kanál obsahuje záznamy přednášek, ale i univerzitních akcí.

    eLearning pouze pro 17 % ruských společností

    Výzkumné centrum portálu SuperJob.ru představilo výsledky průzkumu věnovaného online školení personálu v ruských společnostech. U tuzemských zaměstnavatelů není využívání e-learningu při práci s personálem příliš běžné. Tuto formu školení svým zaměstnancům nabízí pouze 17 % společností. Tyto technologie se používají především v velké společnosti s personálem 5 tisíc lidí (50 %). Obecně tuto praxi nevyužívá 79 % zaměstnavatelů. Důvody jsou buď v nedostatku potřebného technického vybavení, nebo v neochotě managementu tento typ školení aplikovat. Obecně jen 11 % Rusů má zkušenosti s distančním vzděláváním. Z tohoto počtu bylo s výsledkem spokojeno 9 % respondentů a 2 % se neučila dobře a odešla. Mezi těmi, kteří školení absolvovali, bylo téměř dvakrát více mužů než žen (11 %, resp. 6 %). Rusové ve věku 35 až 55 let přitom studují přes internet častěji než mladí lidé. Úspěšnou zkušeností s distančním vzděláváním se může pochlubit 12 % respondentů ve věku 40–50 let a pouze 9 % Rusů ve věku do 23 let.

    Výsledky soutěže "Maximální škálovatelnost 2009"

    Soutěž vysoce výkonných počítačových projektů „Maximální škálovatelnost“ byla stejně jako minulý rok načasována tak, aby se kryla s mezinárodním nanotechnologickým fórem. Vítězství si v něm připsali vědci z dvaceti měst Ruska, organizátoři však Intel a Ruská korporace nanotechnologií, udělily všechny ceny investičním projektům. Velkou cenu získal Vladimir Bočenkov z Fakulty chemické Moskevské státní univerzity. Lomonosov za projekt „Vývoj a implementace paralelního algoritmu pro teplotně zrychlenou dynamiku“. Autorem navržený systém umožňuje studovat kondenzaci nanostruktur, epitaxi molekulárního svazku a interakci biologických molekul.

    Mistrovství světa v programování začalo

    V rámci 34. ročníku soutěže International Collegiate Programming Contest (ICPC), kterou pořádá Association for Computing Machinery (ACM) a sponzoruje IBM, se v regionálním finále utká 100 vítězných studentských týmů. Dostanou minimálně osm úkolů, které bude potřeba vyřešit za 5 hodin. Finále se bude konat 5. února 2010 na Harbin Engineering University (Čína). Mezi úkoly minulých let patřilo například hledání lodi ztracené na moři, triangulace polohy poškozeného rádiového vysílače, výpočet překážek při hraní golfu, kódování a dekódování zpráv, tisk v Braillově písmu, hledání cesty z bludiště. Loni tři ze čtyř zlatých medailí získaly ruské týmy. Kvalifikační fáze šampionátu se zúčastnilo 7109 týmů z 1838 univerzit z 88 zemí světa. Mistrem světa se druhým rokem po sobě stal tým Petrohradské státní univerzity informačních technologií, mechaniky a optiky.

    Vydali jsme novou knihu „Marketing obsahu sociálních médií: Jak se dostat do hlavy předplatitelů a přimět je, aby si vaši značku zamilovali.“

    předplatit

    Vytváříme zprávu. V metrikách vyberte „Dosažení cílů“ – „Cíl, pro který je vaše konverze nakonfigurována“. Obvykle se jedná o stránku „Děkujeme za nákup“.

    Výsledkem je, že získáme údaje o tom, kolik nákupů bylo provedeno pro každé AC a kolik bylo vynaloženo na přilákání uživatelů, kteří je provedli. Počet konverzí vydělíme cenou prokliků, dostaneme cenu jednoho leadu. Pokud to máte nastavené, můžete přidat sloupec "Příjem" pro odhad obdrženého zisku.

    Segmenty pro retargeting a úpravy nabídek: nová úroveň vztahů s potenciálními kupci

    V této části vytvoříme a uložíme Yandex.Metrics, definujeme úpravy, které se použijí při nastavování kampaní v Yandex.Direct.

    Nezapomeňte nastavit časové období tak, aby byl vzorek reprezentativní. Je nutné, aby data byla postavena na základě chování velké skupiny návštěvníků.

    Pohlaví a věk - úprava

    Po vytvoření tohoto přehledu budeme moci vidět, kdo na našem webu nakupuje lépe, muži nebo ženy, a jaký je věk takových kupujících. Poté nám již nic nebude bránit v nastavení úpravy nabídky pro tento segment.

    Vyberte: "Přehledy" - "Návštěvníci" - "Pohlaví" (1).

    V důsledku toho provádíme úpravu pro ženy. Získaná data nám zároveň pomohla vidět, že na našem webu tráví čas i zástupkyně silnějšího pohlaví. Na těchto informacích je potřeba zapracovat. Napište například relevantní reklamy.

    Nastavení času a hodin

    Vaši návštěvníci mohou mít během dne nebo týdne různé aktivity, takže v tomto odstavci určíme dny a hodiny, které pro váš zdroj nejvíce konvertují, a poté můžete nastavit úpravy času v Yandex.Direct.

    "Hlášení" - "Návštěvníci" - "Účast podle denní doby".

    Do seskupení přidejte: Chování: datum a čas - "Fragmenty data/času" - "Den v týdnu návštěvy" (2). Vyberte cíl – seřaďte podle konverze. Získáme zprávu, která ukazuje, který den a v kterou hodinu je maximální (přepočet).

    Zeměpis

    "Zprávy" - "Návštěvníci" - "Geografie".

    Zpráva pomůže webům identifikovat regiony, které se prodávají lépe než ostatní. Obvykle pro mnoho výklenků pochází lví podíl prodeje z Moskvy nebo Petrohradu a jejich regionů. Proto většina inzerentů rozděluje své RK na města federálního významu a zbytek Ruska.

    Geografický přehled vám pomůže najít kurz pro další fragmentaci kampaní Yandex.Direct nebo identifikovat regionální reklamy se slabou návratností.

    Segment "Zapomenutý košík"

    Vytvořte: "Přehledy" - "Návštěvníci" - "Čas od první návštěvy".

    Pro účely zvolíme makro cíl - nákup, schůzka na konzultaci na úřadě atd. Třídíme podle převodu. Vybereme první 2 řádky pro vykreslení. Díky tomu získáme informace o tom, kolik času naši zákazníci stráví přemýšlením o nákupním rozhodnutí. Kromě toho budeme moci používat data v rozhraní Yandex.Direct, abychom nezobrazovali reklamy těm, kteří již naši nabídku nepotřebují.

    Z přehledu vidíme, že cíle je většinou dosaženo v den návštěvy, ale i během měsíce se uživatelé vracejí a konvertují.

    Nyní samotný segment. Vytvořme ji pro ty, kteří nechali produkt v košíku, ale nekoupili.

    Přejdeme k již známému přehledu „Zdroje“ – „Přehled“, zaškrtnutí necháme pouze ve sloupci „Převody z reklam“, stiskneme + a z nabídky vybereme: „Chování“ – „Dosahování cílů“ – „Cíl: přidán do košíku“ (cíl javascriptu by měl být nastaven na tlačítka „Přidat do košíku“). Uložte a pojmenujte segment, nyní přejděte na Direct.

    Najdeme reklamu, kterou chceme v tomto segmentu zobrazit, klikneme na „Podmínky výběru publika“ a poté na „Přidat podmínku“.

    Zprávy pro analýzu webu: studium a zlepšování

    Webvisor

    Jeho data nám pomohou identifikovat slabá místa webu, pochopit, jaké potíže mají uživatelé.

    Uvažujme segmenty Webvisoru pro návštěvy, u kterých bylo dosaženo našeho makro cíle.

    Udělejme si vzorek a podívejme se, jak toho uživatelé dosáhli. Snad pochopíme vzorce chování našich zákazníků, o kterých jsme nevěděli. Co kdyby si většina z nich před odesláním objednávky prohlédla fotoalbum nebo interagovala s interaktivními prvky na webu nebo se možná dlouho zdržovala u recenzí? Taková data vám pomohou rozhodnout, jak správně uspořádat a uspořádat bloky na webu.

    Druhým segmentem jsou uživatelé, kteří na našem webu strávili dostatek času k nákupu, ale nikdy ho neudělali. Analýza takových návštěv umožní porozumět hlavním potížím, kterým návštěvníci čelí.

    Rolujte/klikněte na Mapy

    Posunovací mapa vám pomůže pochopit, na které obrazovce vaši návštěvníci tráví nejvíce času. Možná jsou některé potřebné informace, které pomohou při rozhodování o koupi, v „studené zóně“ a je třeba je přesunout jinam. Klient je například inzerován pouze na požadavky s uvedením stanice metra a mapa s adresou a trasami je umístěna ve spodní části stránky.

    Výsledkem je vysoké procento poruch, protože pro klienty, kteří s takovými požadavky přicházejí, je důležitá poloha kanceláře organizace.

    V tomto článku se chci podívat na některé podle mého názoru nejdůležitější metriky QA. Půjde o ukazatele, poměrové ukazatele a ukazatele, které zachycují celkový obraz toho, co se na projektu z hlediska kvality děje, a identifikují kroky k jeho zlepšení. Metriky budou pokrývat 5 různých oblastí: požadavky, kvalitu softwaru, efektivitu testovacího týmu, kvalitu QA a zpětnou vazbu. Je důležité měřit a sledovat indikátory současně v různých úsecích procesu vývoje softwaru, aby bylo možné odhalit běžné, kořenové problémy, bylo možné vyladit a optimalizovat celý proces.

    Skupina 1 - Požadavky na vyvíjený software

    Tato skupina metrik nám umožní vyhodnotit, jak dobře jsme vypracovali požadavky (příběh uživatele) na software, identifikovat zranitelná místa a nejsložitější, potenciálně problematické funkce softwaru a porozumět tomu, kde je vyžadována zvláštní kontrola:

    1. Požadavky na pokrytí testu

    Jinými slovy, toto je počet testů na požadavek.

    Účel metriky: identifikovat slabiny v pokrytí testem, upozornit na rizika.

    • Tato metrika bude samozřejmě fungovat pouze v případě, že jsou požadavky dobře rozložené a víceméně stejné. Samozřejmě to není vždy možné, ale pokud je možné požadavky dostatečně atomizovat, pak tato metrika ukáže odchylku pokrytí každého požadavku od průměrné úrovně. Čím více se hodnota liší od 1, tím méně\více testů je napsáno pro jeden požadavek než obvykle.
    • Nejdůležitější je věnovat pozornost požadavkům, u kterých bude koeficient roven nebo blízký 0. U těch je třeba zvážit přidání testů.
    • Pokud požadavky nejsou atomické, pak tato metrika pouze zajistí, že pro každý požadavek existuje alespoň 1 test. K tomu musí být koeficient vždy větší než 0.

    2. Míra provázanosti požadavků

    Metrika se vypočítá jako průměrný počet vazeb každého požadavku se zbytkem požadavků.

    Účel metriky: poskytnout základ pro posouzení načasování testování a zohlednění možných rizik. Znáte-li míru vzájemného vlivu požadavků na sebe, můžete například plánovat další čas a případy pro end-to-end testování, vypracovávat regresní kontroly, hledat integraci atd.

    • Hodnota této metriky se bude pohybovat od 0 do 1. 1 znamená, že každý požadavek souvisí s každým, a 0 znamená, že neexistují žádné vztahy.
    • Je obtížné zavést jakákoli omezení pro hodnoty tohoto koeficientu, hodně záleží na specifikách funkčnosti, architektury a technologií. Z vlastní zkušenosti však mohu říci, že je dobré, když míra konektivity nepřesáhne 0,2-0,3. V opačném případě povede upřesnění v rámci jednoho z požadavků k řetězci změn, a tím k možným chybám ve významné části produktu.

    3. Faktor stability požadavků

    Účel metriky: ukazují, kolik již implementovaných požadavků musí být přepracováno od vydání k vydání při vývoji nových funkcí.

    • Samozřejmě nejde o zcela izolovanou funkcionalitu, ale počet nových požadavků by měl převažovat nad změněnými a koeficient by měl být pokud možno menší než 0,5. V tomto případě zavádíme 2krát více nových funkcí, než předěláváme ty stávající.
    • Pokud je koeficient vyšší než 0,5, zejména pokud je větší než 1, pak to s největší pravděpodobností znamená, že jsme dříve udělali něco, co se ukázalo jako zbytečné. Tým se nezaměřuje na vytváření nové obchodní hodnoty, ale na přepracování dříve vydaných funkcí.
    • Metrika také poskytuje představu o tom, jak snadno je funkce systému škálovatelná, jsou přidány nové funkce.

    Skupina 2 - Kvalita vyvíjeného produktu

    Jak název napovídá, tato skupina metrik demonstruje kvalitu softwaru a také kvalitu samotného vývoje.

    1. Hustota defektů

    Vypočítá se podíl defektů na jednotlivý modul během iterace nebo vydání.

    Účel metriky: Zdůrazněte, která část softwaru je nejproblematičtější. Tyto informace pomohou při hodnocení a plánování práce s tímto modulem a také při analýze rizik.

    • Příčiny velký počet vady kteréhokoli konkrétního modulu (koeficient větší než 0,3) se mohou lišit: požadavky na nízkou kvalitu, kvalifikace vývojáře, technická složitost atd. V každém případě nás tato metrika okamžitě upozorní na problémovou oblast.

    2. Regresní koeficient

    Účel metriky: ukázat, na co je vynaloženo úsilí týmu: jsme více zapojeni do vytváření a ladění nových funkcí nebo jsme nuceni většinu času opravovat stávající části softwaru

    • Čím blíže je koeficient 0, tím méně chyb bylo zavedeno do stávající funkčnosti při implementaci nových požadavků. Pokud je hodnota větší než 0,5, pak strávíme více než polovinu času obnovou softwarových funkcí, které fungovaly dříve.

    3. Míra znovuotevřených vad

    Účel metriky: hodnotit kvalitu vývoje a opravy závad, stejně jako složitost produktu nebo samostatného modulu

    • Tuto metriku lze vypočítat pro celý software, jeden modul nebo funkci. Čím blíže je hodnota k 0, tím méně starých chyb se při vývoji opakuje.
    • Pokud se ukázalo, že koeficient je větší než 0,2-0,3, může to znamenat buď technickou složitost modulu a vysokou koherenci požadavků v něm, nebo neohrabanou architekturu nebo to, že předchozí oprava byla provedena špatně.

    4. Průměrné náklady na opravu vady

    Poměr výše nákladů vynaložených týmem při práci se všemi závadami (například v rámci release) k celkovému počtu závad.

    Účel metriky: ukázat, jak drahé je pro nás najít a opravit každou závadu. To umožní vypočítat užitek ze snížení počtu chyb a posoudit vhodnost příslušných technik.

    • Samozřejmě zde nejsou žádné správné hodnoty, vše bude určeno specifiky konkrétní situace.

    5. Počet defektů v kódu konkrétního vývojáře

    Účel metriky: upozornit na možné potíže ve vývojovém týmu, který ze specialistů postrádá zkušenosti, znalosti nebo čas, potřebuje pomoc.

    • Pokud např. 50% všech defektů připadá na 1 vývojáře a v týmu jich je jen 5, tak je jednoznačně problém. Z toho nevyplývá, že tento programátor nefunguje dobře, ale signalizuje to, že je nutné pochopit důvody takové situace.
    • Metrika může být mimo jiné indikátorem modulu/funkčního/systému, který je zvláště náročný na vývoj a údržbu.

    Skupina 3 - Schopnosti a efektivita týmu QA

    Hlavním účelem této skupiny metrik je kvantifikovat, čeho je testovací tým schopen. Tyto ukazatele lze pravidelně počítat a porovnávat, analyzovat trendy, sledovat, jak práci týmu ovlivňují určité změny.

    1. Rychlost práce (rychlost) QA týmu

    Počítá se jako poměr realizovaných příběhových bodů (nebo požadavků, či uživatelských příběhů) za několik, např. 4-5 iterací (Sprint) k počtu vybraných iterací.

    Účel metriky:číselně vyjádřit schopnosti, rychlost týmu pro další plánování náplně práce a analýzu vývojových trendů

    • Metrika umožňuje sledovat rychlost práce QA, sledovat, které interní procesy nebo vnější vlivy na tým mohou tuto rychlost ovlivnit.

    2. Průměrná životnost vady

    Celková doba, po kterou byly chyby nalezené v rámci iterace nebo vydání otevřené, v součtu chyb.

    Účel metriky: ukázat, jak dlouho průměrně trvá práce s jednou vadou: registrovat ji, opravovat a reprodukovat. Tento indikátor vám umožní odhadnout čas potřebný k testování, zvýraznit softwarové oblasti, se kterými vznikají největší potíže.

    • Typicky je životnost defektu celá doba od jeho vytvoření (stav Vytvořeno) do uzavření (Uzavřeno) mínus všechny možné odložené a pozastavené. Jakýkoli bug tracker vám umožňuje vypočítat a nahrát tyto informace pro konkrétní sprint nebo release.
    • Také lze vypočítat průměrnou životnost defektu pro různé softwarové moduly a funkce, nebo co je nejzajímavější, samostatně pro každého z testerů a vývojářů z týmu. Je zde tedy šance identifikovat zvláště složité moduly resp slabé spojení v softwarovém týmu.

    Skupina 4 - Kvalita práce testovacího týmu

    Účelem této sady metrik je posoudit, jak dobře testeři plní své úkoly, určit úroveň kompetence a vyspělosti týmu QA. Pomocí této sady indikátorů můžete porovnávat tým sám se sebou v různých časových okamžicích nebo s ostatními, vnější skupiny testování.

    1. Efektivita testů a testovacích sad

    Účel metriky: ukázat, kolik chyb v průměru naše případy umožňují odhalit. Tato metrika odráží kvalitu návrhu testu a pomáhá sledovat trend jeho změn.

    • Tuto metriku je nejlepší vypočítat pro všechny testovací sady: pro jednotlivé skupiny funkčních testů, regresní sadu, Smoke testing atd.
    • Tento ukazatel „lethality“ testů umožňuje sledovat efektivitu každé ze sad, jak se mění v čase a doplňovat je „čerstvými“ testy.

    2. Míra chyb vynechaných produktivitou

    Počet chyb nalezených po vydání \ celkový počet chyb v softwaru nalezených během testování a po vydání

    Účel metriky: prokázat kvalitu testování a efektivitu detekce chyb – jaký podíl závad byl odfiltrován a jaký byl předán do výroby.

    • Přípustné procento chyb, které při výrobě chyběly, bude samozřejmě záviset na mnoha faktorech. Pokud by se však koeficient ukázal být > 0,1, je to špatné. To znamená, že každá desátá závada nebyla během testování objevena a vedla k problémům v softwaru již dodaném uživatelům.

    3. Reálný čas týmu QA

    Poměr času stráveného týmem přímo činností QA k celkovému počtu hodin.

    Účel metriky: za prvé ke zvýšení přesnosti plánování a za druhé ke sledování a řízení výkonu konkrétního týmu.

    • Cílenými aktivitami jsou analýzy, design, hodnocení, testování, pracovní schůzky a mnoho dalšího. Možné vedlejší účinky jsou prostoje kvůli blokátorům, problémy s komunikací, nedostupnost zdrojů atd.
    • Tento koeficient se přirozeně nikdy nebude rovnat 1. Praxe ukazuje, že pro efektivní týmy to může být 0,5-0,6.

    4. Přesnost odhadu času podle oblastí/druhů/druhů práce

    Účel metriky: umožňuje použití korekčního faktoru pro následná hodnocení.

    • Míru přesnosti hodnocení lze určit pro celý tým nebo jednotlivé testery, pro celý systém nebo jednotlivé softwarové moduly.

    5. Podíl nepotvrzených (zamítnutých) vad

    Účel metriky: ukázat, kolik vad bylo zavedeno "nečinně".

    • Pokud podíl vad, které byly odmítnuty, přesáhne 20 %, může tým dojít k desynchronizaci v chápání toho, co je vada a co ne.

    Skupina 5 - Zpětná vazba a spokojenost uživatelů

    A nakonec skupina metrik ukazující, jak byl produkt přijat koncovými uživateli, jak splnil jejich očekávání. Ale nejen softwarová zpětná vazba je důležitá: dalším důležitým úkolem této skupiny metrik je ukázat, zda jsou uživatelé spokojeni s procesem interakce s IT týmem obecně a QA konkrétně.

    1. Spokojenost uživatelů se službami IT

    Pravidelný průzkum spokojenosti uživatelů s IT službami s bodováním.

    Účel metriky: ukázat, zda uživatelé důvěřují IT týmu, zda chápou, jak a proč je jeho práce organizována, jak tato práce naplňuje očekávání.

    • Metrika může sloužit jako indikátor toho, že je potřeba se zaměřit na optimalizaci procesů nebo ji zpřehlednit a zpřehlednit pro uživatele.
    • Skóre spokojenosti lze vypočítat na základě výsledků průzkumu po vydání. Shromáždíme všechna skóre a vypočítáme průměrné skóre. Toto skóre lze poté přepočítat po provedení změn v procesu.

    2. Spokojenost uživatelů s produktem

    Pravidelné uživatelské průzkumy, jak jsou s produktem spokojeni.

    Účel metriky: zjistit, jak vyvíjený produkt naplňuje očekávání uživatelů, zda se ubíráme správným směrem, zda správně určujeme důležitost funkcí a volíme řešení.

    • K výpočtu této metriky také provádíme uživatelský průzkum a vypočítáme průměrné skóre. Pravidelným počítáním takového ukazatele (například po každém vydání) můžete sledovat trend spokojenosti uživatelů.

    3. Zapojení zúčastněných stran

    Počet iniciativ a návrhů na zlepšení procesu a produktu obdržených během iterace (uvolnění) od zúčastněných stran

    Účel metriky: určit míru účasti externích zainteresovaných stran na práci na produktu. S takovou metrikou v ruce můžete zjistit, kde potřebujete získat zpětnou vazbu, abyste se jednoho dne nesetkali s opovržením a nenávistí, problémy a nepochopením.

    Černikov Alexej

    1. Úvod

    Na rozdíl od většiny oborů materiálové výroby jsou v otázkách projektů vývoje softwaru nepřijatelné jednoduché přístupy založené na násobení náročnosti práce průměrnou produktivitou práce. To je způsobeno především tím, že ekonomické ukazatele projektu závisí nelineárně na rozsahu práce a při výpočtu náročnosti práce je povolena velká chyba.

    Proto se k řešení tohoto problému používají složité a poměrně složité metody, které vyžadují vysokou odpovědnost při aplikaci a určitý čas na přizpůsobení (nastavení koeficientu).

    Moderní komplexní systémy Odhad charakteristik projektů vývoje softwaru lze použít k řešení následujících úkolů:

    • předběžné, trvalé a konečné posouzení ekonomických parametrů projektu: pracnost, doba trvání, náklady;
    • hodnocení rizik pro projekt: riziko porušení termínů a neplnění projektu, riziko zvýšení pracnosti ve fázích ladění a údržby projektu atd.;
    • rozhodování operativního řízení - na základě sledování určitých metrik projektu je možné včas předcházet vzniku nežádoucích situací a eliminovat důsledky nedomyšlených návrhových rozhodnutí.

    1. Úvod
    2 Metriky
    2.1 Metriky orientované na dimenzi (ukazatele odhadu objemu)
    2.1.1 Odhad LOC (řádky kódu)
    2.1.1.1 Metriky stylu a srozumitelnosti programů
    2.1.2 Celkem za SLOC
    2.2 Metriky obtížnosti
    2.2.2 Halsted metriky
    2.2.4 Chapinovy ​​metriky

    2.4 Obecný seznam metrik
    2.4 Shrnutí
    6 Internetové zdroje

    2. Metriky

    Metriky složitosti programu se obvykle dělí do tří hlavních skupin:

    • metriky velikosti programu;
    • metriky složitosti toku řízení programu;
    • metriky složitosti toku dat programu.

    Metriky první skupiny jsou založeny na definici kvantitativních charakteristik spojených s velikostí programu a jsou poměrně jednoduché. Mezi nejznámější metriky této skupiny patří počet příkazů programu, počet řádků zdrojového textu a sada metrik Halsted. Metriky této skupiny jsou zaměřeny na analýzu zdrojového kódu programů. Lze je tedy použít k hodnocení složitosti vývojových meziproduktů.

    Metriky druhé skupiny jsou založeny na analýze kontrolního grafu programu. Představitelem této skupiny je McCabeova metrika.

    Řídicí graf programu, který využívá metriky této skupiny, lze sestavit na základě modulových algoritmů. Proto lze metriky druhé skupiny použít k posouzení složitosti meziproduktů vývoje.

    Metriky třetí skupiny jsou založeny na posouzení využití, konfigurace a umístění dat v programu. Především se to týká globálních proměnných. Tato skupina zahrnuje metriky Chapin.

    2.1 Rozměrově orientované metriky (ukazatele odhadu objemu)

    2.1.1 Odhad LOC (řádky kódu)

    Dimenzionální metriky přímo měří softwarový produkt a proces jeho vývoje. Tyto metriky jsou založeny na odhadech LOC.

    Tento druh metriky nepřímo měří softwarový produkt a proces jeho vývoje. Místo výpočtu skóre LOC se nebere v úvahu velikost, ale funkčnost nebo užitečnost produktu.

    Nejrozšířenější v praxi vývoje softwaru jsou metriky orientované na velikost. V organizacích zabývajících se vývojem softwarových produktů pro každý projekt je obvyklé registrovat následující ukazatele:

    • celkové mzdové náklady (v člověkoměsících, člověkohodinách);
    • velikost programu (v tisících řádků zdrojového kódu -LOC);
    • náklady na vývoj;
    • objem dokumentace;
    • chyby zjištěné během roku provozu;
    • počet lidí pracujících na produktu;
    • vývojové období.

    Na základě těchto dat se obvykle počítají jednoduché metriky pro hodnocení produktivity práce (KLOC / osoboměsíc) a kvality produktu.

    Tyto metriky nejsou univerzální a kontroverzní, zejména u takového ukazatele, jako je LOC, který výrazně závisí na použitém programovacím jazyce.

    Počet řádků zdrojového kódu (Lines of Code - LOC, Source Lines of Code - SLOC) je nejjednodušší a nejběžnější způsob, jak odhadnout množství práce na projektu.

    Zpočátku tento ukazatel vznikl jako způsob, jak posoudit množství práce na projektu, ve kterém byly použity programovací jazyky, které mají poměrně jednoduchou strukturu: „jeden řádek kódu = jeden příkaz jazyka“. Dlouho je také známo, že stejnou funkcionalitu lze zapsat na různém počtu řádků, a pokud vezmeme jazyk vysoké úrovně (C ++, Java), pak je možné napsat 5-6 řádků funkcionality v jeden řádek - to není problém. A to by byla polovina problémů: moderní zařízení samotné programování generuje tisíce řádků kódu pro triviální operaci.

    Proto je metoda LOC pouze metodou hodnocení (která by měla být zohledněna, nikoli však založena na odhadech) a není v žádném případě povinná.

    V závislosti na tom, jak je podobný kód zohledněn, se rozlišují dva hlavní ukazatele SLOC:

    1. počet "fyzických" řádků kódu - SLOC (používané zkratky LOC, SLOC, KLOC, KSLOC, DSLOC) - je definován jako celkový počet řádků zdrojového kódu včetně komentářů a prázdných řádků (při měření ukazatele na počet prázdných řádků se zpravidla zavádí limit - výpočet zohledňuje počet prázdných řádků, který nepřesahuje 25 % z celkového počtu řádků v měřeném bloku kódu).
    2. Počet "logických" řádků kódu - SLOC (používané zkratky LSI, DSI, KDSI, kde "SI" - zdrojové instrukce) - je definován jako počet příkazů a závisí na použitém programovacím jazyce. V případě, že jazyk neumožňuje umístit více příkazů na jeden řádek, bude počet „logických“ SLOC odpovídat počtu „fyzických“, kromě počtu prázdných řádků a řádků komentářů. V případě, že programovací jazyk podporuje umístění několika příkazů na jeden řádek, pak by měl být jeden fyzický řádek počítán jako několik logických řádků, pokud obsahuje více než jeden jazykový příkaz.

    Pro metriku SLOC existuje velké množství derivátů navržených pro získání individuálních projektových ukazatelů, z nichž hlavní jsou:

    • počet prázdných řádků;
    • počet řádků obsahujících komentáře;
    • procento komentářů (poměr řádků kódu k řádkům komentářů, odvozená metrika stylu);
    • průměrný počet řádků pro funkce (třídy, soubory);
    • průměrný počet řádků obsahujících zdrojový kód funkcí (tříd, souborů);
    • průměrný počet řádků pro moduly.

    2.1.1.1 Metriky stylu a srozumitelnosti programů

    Někdy je důležité nejen spočítat počet řádků komentářů v kódu a jednoduše je porovnat s logickými řádky kódu, ale také zjistit hustotu komentářů. To znamená, že kód byl nejprve zdokumentován dobře, pak špatně. Nebo tato možnost: hlava funkce nebo třídy je zdokumentována a okomentována, ale kód nikoli.

    Fi = SIGN (Ncomm. i / Ni - 0,1)

    Podstata metriky je jednoduchá: kód je rozdělen na n-stejných kusů a pro každý z nich je stanovena Fi.

    2.1.2 Celkem za SLOC

    Potenciální nevýhody SLOC, které jsou terčem kritiky:

    • je ošklivé a špatné redukovat hodnocení práce člověka na několik číselných parametrů a na jejich základě posuzovat výkon. Manažer může přidělit nejtalentovanější programátory do nejobtížnější oblasti práce; to znamená, že vývoj této sekce bude trvat nejdelší čas a bude generovat největší počet chyb kvůli složitosti úkolu. Bez vědomí těchto potíží může jiný manažer výkonu rozhodnout, že programátor odvedl špatnou práci.
    • Metrika nezohledňuje zkušenosti zaměstnanců a jejich další kvality
    • Zkreslení: Proces měření může být zkreslen tím, že zaměstnanci jsou si vědomi měřených ukazatelů a snaží se optimalizovat tyto ukazatele, nikoli svou práci. Například pokud je počet řádků zdrojového kódu důležitý ukazatel, pak budou mít programátoři tendenci psát co nejvíce řádků a nebudou používat techniky zjednodušování kódu, které snižují počet řádků (viz postranní panel o Indii).
    • Nepřesnost: Neexistují žádné metriky, které by byly dostatečně smysluplné a zároveň přesné. Počet řádků kódu je pouze počet řádků, tento indikátor nedává představu o složitosti řešeného problému. Funkční bodová analýza byla vyvinuta s cílem nejlepší měření složitost kódu a specifikace, ale využívá osobní úsudek měřiče, takže různí lidé získají různé výsledky.

    A hlavní věc k zapamatování: Metrika SLOC neodráží složitost vytváření programu
    .

    Příklad ze skutečného života :
    V jedné z firem jsme při implementaci aplikovali tuto metriku – počítali jsme řádky kódu. Šéf organizace byl na dovolené, ale po návratu z ní se rozhodl využít transparentnosti a sledovatelnosti změn a podívat se, jak jdou projekty jeho manažerů. A abych do kurzu vstoupil naplno, sestoupil jsem na nejnižší úroveň (tedy nehodnotil jsem hustotu defektů, počet opravených chyb) – na úroveň zdrojového kódu. Rozhodl jsem se spočítat, kdo a kolik řádků napsal. A aby to byla opravdu zábava - korelujte počet pracovních dnů v týdnu a množství napsaného kódu (logika je jednoduchá: člověk pracoval 40 hodin týdně, což znamená, že musí hodně psát). Přirozeně se našel člověk, který napsal jen jeden řádek za týden, dokonce ani nenapsal, ale pouze opravil ten stávající ...

    Vůdcův hněv neznal mezí – našel povaleče! A bylo by špatné pro programátora, kdyby projektový manažer nevysvětlil, že: byla nalezena chyba v programu, našel ji VIP klient, chyba má dopad na podnikání klienta a bylo potřeba ji urychleně odstranit, pro tohoto konkrétního dodavatele byl vybrán, kdo nasadil stánek, zaplavil prostředí klienta, potvrdil projev chyby a začal ji hledat a odstraňovat. Přirozeně nakonec změnil kus kódu, ve kterém byl nesprávný stav a vše fungovalo.

    Souhlasíte, je hloupé vypočítat náklady práce podle této metriky - je zapotřebí komplexní posouzení ...

    2.2 Metriky obtížnosti

    Kromě ukazatelů pro posouzení rozsahu práce na projektu jsou pro získání objektivních odhadů projektu velmi důležité ukazatele pro posouzení jeho složitosti. Tyto ukazatele zpravidla nelze vypočítat v nejranějších fázích projektu, protože vyžadují přinejmenším podrobný návrh. Tyto ukazatele jsou však velmi důležité pro získání prediktivních odhadů doby trvání a nákladů projektu, protože přímo určují jeho pracnost.

    2.2.1 Objektově orientované metriky

    V moderní podmínky Většina softwarových projektů je vytvářena na základě OO přístupu, a proto existuje značné množství metrik, které nám umožňují posoudit složitost objektově orientovaných projektů.

    Metriky

    Popis

    Vážené metody na třídu (WMC) Odráží relativní míru složitosti třídy na základě cyklomatické složitosti každé z jejích metod. Třída se složitějšími metodami a velké množství metody jsou považovány za složitější. Nadřazené třídy se při výpočtu metriky neberou v úvahu.
    Vážené metody na třídu (WMC2)

    Míra složitosti třídy založená na skutečnosti, že třída je velký počet metody je složitější a že metoda s více parametry je také složitější. Nadřazené třídy se při výpočtu metriky neberou v úvahu.

    Hloubka dědičného stromu Délka nejdelší dědičné cesty končící u tohoto modulu. Čím hlubší je strom dědičnosti modulu, tím obtížnější může být předvídat jeho chování. Na druhou stranu zvýšení hloubky dává danému modulu větší potenciál k opětovnému použití chování definovaného pro třídy jeho předků.
    Počet dětí Počet modulů, které přímo dědí z tohoto modulu. Velké hodnoty této metriky indikují vysokou znovupoužitelnost; zároveň také velká důležitost může naznačovat špatně zvolenou abstrakci.

    Spojení mezi objekty

    Počet modulů spojených s tímto modulem v roli zákazníka nebo poskytovatele. Nadměrná vazba indikuje slabost modulárního zapouzdření a může zabránit opětovnému použití kódu.

    Odpověď pro třídu Počet metod, které mohou být volány instancemi třídy; vypočítá jak součet počtu místních metod, tak počtu vzdálených metod

    2.2.2 Halsted metriky

    Halsteadova metrika odkazuje na metriky vypočítané na základě analýzy počtu řádků a prvků syntaxe zdrojového kódu programu.

    Halstedovy metriky jsou založeny na čtyřech měřitelných charakteristikách programu:

    • NUOprtr (Number of Unique Operators) - počet jedinečných operátorů programu, včetně oddělovacích znaků, názvů procedur a operačních znaků (slovník operátorů);
    • NUOprnd (Number of Unique Operands) - počet jedinečných programových operandů (slovník operandů);
    • Noprtr (Number of Operators) - celkový počet operátorů v programu;
    • Noprnd (Number of Operands) - celkový počet operandů v programu.

    Na základě těchto charakteristik se vypočítají odhady:

    • Programový slovník
      (Halstead Program Vocabulary, HPVoc): HPVoc = NUOprtr + NUOprnd;
    • Délka programu
      (délka programu Halstead, HPLen): HPLen = Noprtr + Noprnd;
    • Rozsah programu
      (Halstead Program Volume, HPVol): HPVol = HPLen log2 HPVoc;
    • Složitost programu
      (Halstead Difficulty, HDiff): HDiff = (NUOprtr/2) × (NOprnd / NUOprnd);
    • Na základě indikátoru HDiff se navrhuje vyhodnotit úsilí programátora při vývoji pomocí indikátoru HEff (Halstead Effort): HEff = HDiff × HPVol.

    2.2.3 Metriky cyklické složitosti McCabe

    Cyklomatický index složitosti je jedním z nejběžnějších ukazatelů pro hodnocení složitosti softwarových projektů. Tento ukazatel vyvinul vědec McCabe v roce 1976, patří do skupiny ukazatelů pro hodnocení složitosti toku řízení programu a je vypočítáván na základě grafu toku řízení programu. Tento graf je vytvořen jako orientovaný graf, ve kterém jsou výpočetní operátory nebo výrazy reprezentovány jako uzly a přenos řízení mezi uzly je reprezentován jako oblouky.

    Ukazatel cyklomatické složitosti umožňuje nejen posoudit složitost realizace jednotlivých prvků softwarového projektu a upravit obecné ukazatele odhadnout dobu trvání a náklady projektu, ale také posoudit související rizika a učinit nezbytná manažerská rozhodnutí.

    Zjednodušený vzorec pro výpočet cyklomatické složitosti je následující:

    C \u003d e - n + 2,

    Kde E- počet žeber a n počet uzlů
    na grafu řídicí logiky.

    Zpravidla při výpočtu cyklomatické složitosti logické operátory se neberou v úvahu.

    V procesu automatizovaného výpočtu indikátoru cyklomatické složitosti se zpravidla používá zjednodušený přístup, podle kterého se graf nesestavuje a indikátor se počítá na základě počtu příkazů řídicí logiky (if, switch, atd.) a možný počet programů cest provádění.

    McCabeho cyklomatické číslo ukazuje požadovaný počet průchodů k pokrytí všech vrstevnic silně propojeného grafu nebo počet testovacích běhů programu potřebných pro vyčerpávající testování podle principu „každá větev funguje“.

    Index cyklomatické složitosti lze vypočítat pro modul, metodu a další strukturní jednotky programu.

    Existuje značné množství modifikací indexu cyklomatické složitosti.

    • "Upravená" cyklomatická složitost - nebere v úvahu každou větev operátoru s více volbami (přepínač), ale celý operátor jako celek.
    • "Přísná" cyklomatická složitost - zahrnuje logické operátory.
    • "Zjednodušený" výpočet cyklomatické složitosti - umožňuje výpočet nikoli na základě grafu, ale na základě počítání kontrolních příkazů.

    2.2.4 Chapinovy ​​metriky

    Existuje několik jeho modifikací. Zvažte jednodušší, ale z hlediska praktické využití je poměrně efektivní variantou této metriky.

    Podstatou metody je posouzení informační síly jediného programového modulu analýzou povahy použití proměnných ze seznamu I/O.

    Celá sada proměnných, které tvoří seznam I/O, je rozdělena do čtyř funkčních skupin.

    Q = a1P + a2M + a3C + a4T, kde a1, a2, a3, a4 jsou váhové koeficienty.

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

    2.3 Předběžné hodnocení založené na statistických metodách v závislosti na fázích vývoje programu

    Při použití integrovaných nástrojů ve společnostech rozvíjejících standardní řešení(tato kategorie zahrnuje tzv. "inhousers" - společnosti zabývající se obsluhou hlavní činnosti) je možné vytvářet prognózy složitosti programů na základě shromážděných statistik. Statistická metoda dobře se hodí pro řešení takových typických problémů a prakticky se nehodí pro prognózování unikátních projektů. V případě unikátních projektů se používají jiné přístupy, jejichž pojednání přesahuje rámec tohoto materiálu.

    Typické úkoly jako z hojnosti dopadají na vývojová oddělení z byznysu, proto by předběžné posouzení složitosti mohlo značně zjednodušit úkoly plánování a řízení, zejména proto, že existuje nahromaděná databáze projektů, která ukládá nejen konečné výsledky, ale i všechny počáteční a středně pokročilé.

    Vyjmenujme typické fáze vývoje programů:

    • vývoj specifikace požadavků pro program;
    • definice architektury;
    • studium modulární struktury programu, vývoj rozhraní mezi moduly. Vývoj algoritmů;
    • vývoj a testování kódu.

    Nyní se pokusme zvážit řadu metrik, které se často používají pro předběžné posouzení v prvních dvou fázích.

    2.3.1 Předběžné posouzení složitosti programu ve fázi zpracování specifikace požadavků programu

    K vyhodnocení výsledků práce této fáze lze použít metriku předpokládaného počtu operátorů Nprog programu:

    Npron \u003d NF * Ned


    Kde: NF je počet funkcí nebo požadavků ve specifikaci požadavků na vyvíjený program;
    Ned je jedna hodnota počtu operátorů (průměrný počet operátorů na jednu průměrnou funkci nebo požadavek). Hodnota Neda je statistická.

    2.3.2 Odhad složitosti ve fázi architektury

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

    Kde:
    NI je celkový počet proměnných přenášených přes rozhraní mezi komponentami programu (je také statistický);
    NIed je jedna hodnota počtu proměnných přenesených přes rozhraní mezi komponenty (průměrný počet proměnných přenesených přes rozhraní na jednu průměrnou funkci nebo požadavek);
    Ксл je koeficient složitosti vyvíjeného programu, zohledňuje růst jednotkové složitosti programu (složitost na jednu funkci nebo požadavek specifikace požadavků na program) u velkých a složitých programů oproti průměru PS.

    2.4 Obecný seznam metrik

    Tabulka 1 obsahuje stručný popis metrik, které nejsou součástí Detailní popis výše, ale přesto jsou tyto metriky nutné a důležité, jen podle statistik jsou mnohem méně časté.

    Všimněte si také, že účelem tohoto článku je ukázat princip, a ne popisovat všechny možné metriky v mnoha kombinacích.

    5). Udržitelnost

    Udržovatelnost je soubor vlastností, které indikují úsilí, které je třeba vynaložit na úpravy, včetně úprav, vylepšení a přizpůsobení softwaru, když se změní prostředí, požadavky nebo funkční specifikace.

    Udržitelnost zahrnuje dílčí vlastnosti:

    – analyzovatelnost – atribut, který určuje nezbytné úsilí pro diagnostiku poruch nebo identifikaci dílů, které budou modifikovány;

    - proměnlivost – atribut, který určuje úsilí vynaložené na úpravy, odstraňování chyb nebo provádění změn za účelem odstranění chyb nebo zavedení nových funkcí v softwaru nebo v operačním prostředí;

    – stabilita – atribut označující riziko modifikace;

    - testovatelnost - atribut, který udává vynaložené úsilí při validaci, verifikaci s cílem odhalit chyby a nesrovnalosti s požadavky a také potřebu úpravy a certifikace softwaru;

    – konzistence – atribut, který označuje shodu tohoto atributu s těmi, které jsou definovány ve standardech, konvencích, pravidlech a nařízeních.

    6). Přenosnost- sada indikátorů, které indikují schopnost softwaru přizpůsobit se práci v nových podmínkách běhového prostředí. Prostředí může být organizační, hardwarové a softwarové. Převod softwaru do nového prováděcího prostředí proto může být spojen se souborem úkonů směřujících k zajištění jeho provozu v prostředí odlišném od prostředí, ve kterém byl vytvořen s přihlédnutím k novému softwaru, organizačním a technickým možnostem.

    Přenositelnost zahrnuje dílčí vlastnosti:

    - přizpůsobivost - atribut, který určuje úsilí vynaložené na přizpůsobení se různým prostředím;

    - přizpůsobitelnost (snadnost instalace) - atribut, který určuje úsilí potřebné ke spuštění nebo instalaci tohoto softwaru ve speciálním prostředí;

    – koexistence – atribut, který určuje možnost použití speciálního softwaru v prostředí operačního systému;

    - nahraditelnost - atribut, který poskytuje možnost interoperability, když společná práce s jinými programy s potřebnou instalací nebo úpravou softwaru;

    – konzistence – atribut, který označuje shodu se standardy nebo dohodami k zajištění přenositelnosti softwaru.

    9.1.1. Metriky kvality softwaru

    Aktuálně v softwarové inženýrství systém metrik se ještě zcela nevytvořil. Existují různé přístupy a metody pro stanovení jejich souboru a metody měření.

    Systém měření softwaru zahrnuje metriky a modely měření, které se používají ke kvantifikaci jeho kvality.

    Při určování požadavků na software odpovídající vnější charakteristiky a jejich podcharakteristiky (atributy), které určují různé strany provoz a ovládání výrobku v daném prostředí. Pro sadu charakteristik kvality softwaru specifikovaných v požadavcích jsou stanoveny odpovídající metriky, jejich vyhodnocovací modely a rozsah naměřených hodnot pro měření jednotlivých atributů kvality.

    Podle normy jsou metriky určeny modelem měření softwarových atributů ve všech fázích životního cyklu (střední, interní metriky) a zejména ve fázi testování nebo provozu (externí metriky) produktu.

    Zastavme se u klasifikace softwarových metrik, pravidel pro provádění metrické analýzy a procesu jejich měření.

    Metrické typy. Existují tři typy metrik:

    - metriky softwarového produktu, které se používají při měření jeho charakteristik - vlastností;

    – procesní metriky, které se používají při měření vlastnosti procesu použitého k vytvoření produktu.

    – metriky používání.

    Metriky softwarových produktů zahrnout:

    – externí metriky udávající vlastnosti produktu viditelné pro uživatele;

    – interní metriky, které označují vlastnosti, které jsou viditelné pouze pro vývojový tým.

    Externí metriky produkt zahrnuje následující metriky:

    – spolehlivost výrobku, které slouží ke zjištění počtu závad;

    – funkčnost, která určuje přítomnost a správnost implementace funkcí v produktu;

    – údržba, pomocí které se měří zdroje produktu (rychlost, paměť, prostředí);

    – použitelnost produktu, které přispívají ke stanovení stupně přístupnosti pro studium a použití;

    - náklad, který určuje náklady na vytvořený produkt.

    Interní metriky metriky produktu:

    – rozměry nezbytné k měření výrobku pomocí jeho vnitřních charakteristik;

    – složitost potřebná k určení složitosti produktu;

    - styly, které slouží k definování přístupů a technologií tvorby jednotlivých komponent produktu a jeho dokumentů.

    Interní metriky měří výkon produktu a jsou relevantní pro externí metriky.

    Externí a interní metriky jsou nastaveny ve fázi tvorby softwarových požadavků a jsou předmětem plánování způsobů, jak dosáhnout kvality finálního softwarového produktu.

    Produktové metriky jsou často popsány sadou modelů pro nastavení různých vlastností a hodnot modelu kvality nebo pro předpovědi. Měření se obvykle provádějí po kalibraci metrik v raných fázích projektu. společné opatření je stupeň sledovatelnosti, který je určen počtem trasování pomocí modelů scénářů (například UML) a který může být počtem:

    – požadavky;

    - scénáře a herci;

    – objekty zahrnuté ve scénáři a lokalizace požadavků pro každý scénář;

    – parametry a operace objektu atd.

    Norma ISO/IEC 9126-2 definuje následující typy opatření:

    je měřítkem velikosti softwaru v různé jednotky měření (počet funkcí, řádky v programu, velikost diskové úložiště atd.);

    - měřítko času (fungování systému, provádění komponent atd.);

    - míra úsilí (produktivita práce, intenzita práce atd.);

    – účetní opatření (počet chyb, počet poruch, odezvy systému atd.).

    Zvláštním měřítkem může být míra opětovného použití komponentů a měří se jako poměr velikosti produktu vyrobeného z hotových komponent k velikosti systému jako celku. Toto měřítko se používá při určování nákladů a kvality softwaru. Příklady metrik:

    – celkový počet objektů a počet opakovaně použitelných;

    – celkový počet operací, opětovně použitých a nových operací;

    – počet tříd, které dědí konkrétní operace;

    – počet tříd, na kterých tato třída závisí;

    – počet uživatelů třídy nebo operací atd.

    Při odhadu celkového počtu některých veličin se často používají průměrné statistické metriky (například průměrný počet operací ve třídě, průměrný počet následníků třídy nebo operací třídy atd.).

    Opatření jsou zpravidla do značné míry subjektivní a závisí na znalostech odborníků, kteří kvantifikují atributy komponent softwarových produktů.

    Příkladem široce používaných externích programových metrik je Halstedova metrika – jedná se o charakteristiky programů, které jsou identifikovány na základě statické struktury programu v konkrétním programovacím jazyce: počet výskytů nejčastěji se vyskytujících operandů a operátorů. ; délka popisu programu jako součet počtu výskytů všech operandů a operátorů atp.

    Na základě těchto atributů lze vypočítat dobu programování, úroveň programu (struktura a kvalita) a programovací jazyk (abstrakce jazykových nástrojů a zaměření na daný problém) atd.

    Metriky procesu zahrnout metriky:

    - náklady, které určují náklady na vytvoření architektury produktu nebo projektu s přihlédnutím k originalitě, podpoře, vývojové dokumentaci;

    - odhady nákladů na práci specialistů na osobu - dny nebo měsíce;

    - nespolehlivost procesu - počet závad nezjištěných při návrhu;

    – opakovatelnost, která určuje míru použití opakovaných součástí.

    Metrikami procesu může být doba vývoje, počet nalezených chyb ve fázi testování atd. Prakticky se používají následující procesní metriky:

    celkový čas vývoj a samostatný čas pro každou fázi;

    – čas úpravy modelu;

    - doba provedení práce na procesu;

    - počet chyb zjištěných při kontrole;

    – náklady na kontrolu kvality;

    - náklady na proces vývoje.

    Metriky využití slouží k měření míry uspokojení potřeb uživatele při řešení jeho problémů. Pomáhají hodnotit nikoli vlastnosti samotného programu, ale výsledky jeho provozu – provozní kvalitu. Příkladem je přesnost a úplnost realizace uživatelských úloh a také zdroje (mzdové náklady, produktivita atd.) vynaložené na efektivní řešení uživatelských úloh. Posouzení uživatelských požadavků se provádí především pomocí externích metrik.

    9.1.2. Standardní metoda pro hodnocení hodnot indikátoru kvality

    Hodnocení kvality softwaru podle čtyřúrovňového modelu kvality začíná od nižší úrovně hierarchie, tzn. z nejzákladnější vlastnosti posuzovaného atributu ukazatele kvality podle stanovených opatření. Ve fázi návrhu jsou hodnoty prvků hodnocení nastaveny pro každý atribut indikátoru analyzovaného softwaru zahrnutý v požadavcích.

    Podle ISO/IES 9126-2 je metrika kvality softwaru „modelem měření pro atribut spojený se skóre kvality softwaru“. Používat metriky při měření ukazatelů kvality tento standard umožňuje definovat následující typy opatření:

    - míry velikosti v různých měrných jednotkách (počet funkcí, velikost programu, množství zdrojů atd.);

    – míry času – období reálného, ​​procesorového nebo kalendářního času (doba provozu systému, doba provádění komponent, doba používání atd.);

    - míry úsilí - produktivní čas strávený realizací projektu (produktivita práce jednotlivých účastníků projektu, kolektivní náročnost práce atd.);

    – měření intervalů mezi událostmi, např. čas mezi po sobě jdoucími poruchami;

    - počítání opatření - počítadla pro zjištění počtu detekovaných chyb, strukturální složitosti programu, počtu nekompatibilních prvků, počtu změn (například počtu zjištěných poruch apod.).

    Metriky kvality se používají k posouzení stupně testovatelnosti po testování softwaru na různých testech (bezporuchový provoz, proveditelnost funkcí, snadnost použití uživatelských rozhraní, databází atd.).

    MTBF jako atribut spolehlivosti definuje průměrnou dobu mezi výskytem hrozeb, které narušují zabezpečení, a poskytuje těžko měřitelné posouzení škod způsobených odpovídajícími hrozbami.

    Velmi často je program hodnocen podle počtu řádků. Při porovnávání dvou programů, které realizují stejnou aplikovanou úlohu, se dává přednost krátkému programu, protože jej vytváří kvalifikovanější personál a má méně skrytých chyb a je snadněji upravitelný. Cenově je dražší, i když ladění a úprava zabere více času. Tito. délku programu lze použít jako pomocnou vlastnost při porovnávání programů založených na stejné kvalifikaci vývojářů, stejném vývojovém stylu a společném prostředí.

    Pokud jsou požadavky na software specifikovány pro získání několika indikátorů, pak se indikátor vypočítaný po sběru dat během provádění vynásobí příslušným váhovým faktorem a poté se všechny indikátory sečtou, aby se získalo komplexní hodnocení úrovně kvality softwaru.

    Na základě měření kvantitativních charakteristik a zkoumání kvalitativních ukazatelů pomocí váhových faktorů vyrovnávajících různé ukazatele je vypočítáno konečné hodnocení kvality produktu sečtením výsledků pro jednotlivé ukazatele a jejich porovnáním se softwarovými benchmarkovými ukazateli (náklady, čas , zdroje atd.).

    Tito. při hodnocení jednotlivého ukazatele pomocí hodnotících prvků se vypočítává vážený koeficient k- metrický, j- index, i- atribut. Například jako j Vezměme přenositelnost jako ukazatel. Tento ukazatel bude vypočítán na základě pěti atributů ( i = 1, ..., 5), a každý z nich bude vynásoben odpovídajícím koeficientem k i .

    Všechny metriky j– atributy se sčítají a tvoří i - úroveň kvality. Když jsou všechny atributy posouzeny pro každý z indikátorů kvality, je provedeno celkové hodnocení samostatného indikátoru a poté integrální hodnocení kvality s přihlédnutím k váhovým koeficientům všech indikátorů softwaru.

    V konečném důsledku je výsledek hodnocení kvality kritériem pro efektivitu a účelnost aplikace návrhových metod, nástrojů a metod pro hodnocení výsledků tvorby softwarového produktu ve fázích životního cyklu.

    K prezentaci hodnocení hodnot ukazatelů kvality slouží norma, ve které jsou uvedeny metody: měření, evidence, výpočet a expert (i kombinace těchto metod).

    metoda měření na základě použití měřicích a speciálních softwarové nástroje získat informace o vlastnostech softwaru, například stanovení objemu, počtu řádků kódu, operátorů, počtu větví v programu, počtu vstupních (výstupních) bodů, reaktivity atd.

    Způsob registrace se používá při výpočtu času, počtu poruch nebo selhání, začátku a konce softwaru v procesu jeho provádění.

    Metoda výpočtu je založeno na statistických datech shromážděných během testování, provozu a údržby softwaru. Výpočtové metody hodnotí ukazatele spolehlivosti, přesnosti, stability, reaktivity atd.

    expertní metoda provádí skupina odborníků – specialistů kompetentních k řešení daného úkolu nebo typu softwaru. Jejich hodnocení je založeno na zkušenostech a intuici, nikoli na přímých výsledcích výpočtů nebo experimentů. Tato metoda se provádí prohlížením programů, kódů, průvodních dokumentů a přispívá ke kvalitativnímu posouzení vytvořeného produktu. K tomu jsou stanoveny řízené znaky, korelovány s jedním nebo více indikátory kvality a zahrnuty do dotazníků odborníků. Metoda se používá při hodnocení takových ukazatelů, jako je analyzovatelnost, dokumentovatelnost, strukturovaný software atd.

    Pro hodnocení hodnot ukazatelů kvality se v závislosti na vlastnostech vlastností, které používají, účelu a metodách jejich stanovení, používají následující stupnice:

    - metrické (1,1 - absolutní, 1,2 - relativní, 1,3 - integrální);

    - ordinální (rank), umožňující seřadit charakteristiky porovnáním s referenčními;

    - klasifikace charakterizující pouze přítomnost nebo nepřítomnost uvažované vlastnosti v hodnoceném softwaru.

    Ukazatele vypočítané pomocí metrických stupnic se nazývají kvantitativní a pomocí ordinálních a klasifikačních - kvalitativní.

    Atributy softwarového systému, které charakterizují jeho kvalitu, jsou měřeny pomocí kvalitativních metrik. Metrika definuje míru atributu, tzn. proměnná, které je přiřazena hodnota jako výsledek měření. Pro správné použití výsledky měření každé měření je identifikováno měřící stupnicí.

    - nominální stupnice odráží kategorie vlastností posuzovaného objektu bez jejich řazení;

    - ordinální stupnice se používá k řazení charakteristik ve vzestupném nebo sestupném pořadí jejich porovnáním se základními hodnotami;

    - intervalová stupnice nastavuje podstatné vlastnosti objektu (např. kalendářní datum);

    – relativní měřítko nastavuje určitou hodnotu vzhledem ke zvolené jednotce;

    - absolutní stupnice udává skutečnou hodnotu veličiny (např. počet chyb v programu je 10).

    9.1.3. Řízení kvality PS

    Pod řízení jakosti se týká souhrnu organizační struktury a odpovědných osob, jakož i postupů, procesů a zdrojů pro plánování a řízení dosahování kvality PS. Management kvality - SQM (Software Quality Management) je založen na aplikaci standardních ustanovení pro zajišťování kvality - SQA (Software Quality Assurance) .

    Účelem procesu SQA je zajistit, aby produkty a procesy byly v souladu s požadavky, odpovídaly plánům a zahrnovaly následující činnosti:

    – zavedení standardů a příslušných postupů pro rozvoj PS ve fázích životního cyklu;

    – posouzení souladu s ustanoveními těchto norem a postupů.

    Zajištění kvality je následující:

    – kontrola souladu a proveditelnosti plánů;

    – koordinace meziproduktů práce s plánovanými ukazateli;

    – ověřování vyrobených výrobků podle stanovených požadavků;

    – analýza použitých procesů pro soulad se smlouvou a plány;

    – vývojové prostředí a metody jsou v souladu s vývojovým řádem;

    – ověřování přijatých metrik produktů, procesů a metod jejich měření v souladu se schválenou normou a postupy měření.

    Účelem procesu řízení SQM je sledování (systematická kontrola) kvality, aby bylo zajištěno, že produkt uspokojí spotřebitele a zahrnuje následující činnosti:

    – stanovení kvantitativních vlastností kvality na základě identifikovaných a předpokládaných potřeb uživatelů;

    – řízení realizace stanovených cílů k dosažení kvality.

    SQM je založen na ujištění, že:

    – cíle kvality jsou stanoveny pro všechny pracovní produkty v rámci produktových milníků;

    – strategie pro dosažení kvality, metriky, kritéria, techniky, požadavky na proces měření atd.;

    - jsou definovány a prováděny činnosti související s poskytováním jakostních vlastností výrobkům;

    - kontrola kvality (SQA, verifikace a validace) a cíle jsou prováděny, pokud jich není dosaženo, pak jsou procesy regulovány;

    – jsou prováděny procesy měření a vyhodnocování finální produkt k dosažení požadované kvality.

    Hlavní standardní ustanovení pro vytváření kvalitního produktu a hodnocení úrovně dosažení rozlišují dva procesy zajištění kvality ve fázích životního cyklu PS:

    - garance (potvrzení) kvality PS, jako výsledek určitých činností v každé fázi životního cyklu s kontrolou souladu systému s normami a postupy zaměřenými na dosahování kvality;

    - inženýrství kvality, jako proces poskytování softwarových produktů vlastnostmi funkčnosti, spolehlivosti, údržby a dalších kvalitativních znaků.

    Procesy dosahování kvality jsou navrženy tak, aby:

    a) řízení, vývoj a udržování záruk v souladu se stanovenými normami a postupy;

    b) řízení konfigurace (identifikace, hlášení stavu a autentizační činnosti), řízení rizik a projektů v souladu se standardy a postupy;

    c) kontrola základní verze PS a jakostních znaků v ní implementovaných.

    Implementace těchto procesů zahrnuje následující akce:

    – posouzení standardů a postupů, které jsou dodržovány při vývoji programů;

    – revize řízení, vývoje a zajišťování kvality softwaru a projektové dokumentace (zprávy, harmonogramy vývoje, zprávy atd.);

    – kontrola formálních inspekcí a přezkumů;

    - analýza a kontrola přejímacího testování (testování) PS.

    Pro organizaci, která vyvíjí softwarový systém, včetně komponent z komponent, musí být inženýrství kvality softwaru podporováno systémem kvality , management kvality (plánování, účetnictví a kontrola).

    Kvalitní inženýrství zahrnuje soubor metod a činností, kterými je kontrolována shoda softwarových produktů s požadavky na kvalitu a jsou poskytovány s charakteristikami stanovenými v požadavcích na software.

    Kvalitní systém(Systémy jakosti - QS) je soubor organizačních struktur, metod, činností, procesů a zdrojů pro zavádění managementu kvality. Pro zajištění požadované úrovně kvality softwaru se používají dva přístupy. Jeden z nich je zaměřen na konečný softwarový produkt a druhý - na proces tvorby produktu.

    V přístupu orientovaném na produkt se hodnocení kvality provádí po testování PS. Tento přístup je založen na předpokladu, že čím více chyb je v produktu během testování nalezeno a odstraněno, tím je jeho kvalita vyšší.

    Ve druhém přístupu jsou navržena a přijata opatření k prevenci, rychlé identifikaci a odstranění chyb, počínaje počáteční fázeŽivotní cyklus v souladu s plánem a postupy pro zajištění kvality vyvíjeného PS. Tento přístup je prezentován v řadě norem ISO 9000 a 9000-1,2,3. Účelem normy 9000-3 je doporučit, aby rozvojové organizace zavedly systém jakosti podle schématu znázorněného na obrázku 9.3.

    kloub

    Kontrolní systém Vedoucí práce Zodpovědný

    Kvalita od interpreta od zákazníka

    Obecné zásady

    Odpovědnost

    a pravomoci

    Řízení

    Plán úspěchu

    PS kvalita

    Obr.9.3. Požadavky normy na organizaci systému jakosti

    Důležité místo v inženýrství kvality má proces měření charakteristik procesů životního cyklu, jeho zdrojů a na nich vytvořených pracovních produktů. Tento proces je realizován týmem kvality, ověřování a testování. Mezi funkce této skupiny patří: plánování, operativní řízení a zajištění kvality.

    Plánování kvality je činnost zaměřená na definování cílů a požadavků na kvalitu. Zahrnuje identifikaci, stanovení cílů, požadavky na kvalitu, klasifikaci a hodnocení kvality. K analýze stavu vývoje a následnému měření plánovaných ukazatelů a kritérií ve fázích životního cyklu je sestaven kalendářní plán-rozvrh.

    operativní řízení zahrnuje metody a činnosti operativního charakteru pro současné řízení procesu projektování, odstraňování příčin neuspokojivého fungování PS.

    Zajištění kvality spočívá v plnění a ověřování, že vývojový objekt splňuje stanovené požadavky na kvalitu. Cíle zajištění kvality mohou být interní nebo externí. Interní cíle – vytvořit důvěru projektového manažera, že je zajištěna kvalita. Externími cíli je vytvořit u uživatele důvěru, že je dosaženo požadované kvality a výsledkem je kvalitní software.

    Zkušenosti ukazují, že řada firem, které vyrábějí softwarové produkty, má systémy kvality, které zajišťují, že produkují konkurenceschopné produkty. Systém jakosti zahrnuje sledování poptávky po novém typu vyráběného výrobku, sledování všech fází výroby PS, včetně výběru a dodávek hotových komponent systému.

    Při absenci služeb odpovídající kvality musí vývojáři softwaru uplatňovat své vlastní regulační a metodické dokumenty, které upravují proces řízení kvality softwaru pro všechny kategorie vývojářů a uživatelů softwarových produktů.

    9.2. Modely hodnocení spolehlivosti

    Spolehlivost softwaru je ze všech oblastí softwarového inženýrství nejvíce zkoumanou oblastí. Předcházel tomu vývoj teorie spolehlivosti technické prostředky, který ovlivnil vývoj spolehlivosti PS. Vývojáři PS řešili problémy se spolehlivostí PS a zkusili to jinak systémové prostředky poskytovat spolehlivost, která uspokojí zákazníka, ale i teoretiky, kteří při studiu podstaty fungování PS vytvořili matematické modely spolehlivosti s přihlédnutím k různým aspektům práce PS (výskyt chyb, poruch, poruch atd.) a posoudit skutečnou spolehlivost. V důsledku toho se spolehlivost PS vytvořila jako nezávislá teoretická a aplikovaná věda.

    Spolehlivost komplexních PS se výrazně liší od spolehlivosti zařízení. Datové nosiče (soubory, server atd.) jsou vysoce spolehlivé, záznamy na nich lze uchovávat po dlouhou dobu bez zničení, protože nepodléhají zničení a stárnutí.

    Z pohledu aplikované vědy spolehlivost- jde o schopnost PS zachovat si své vlastnosti (spolehlivost, stabilitu atd.) převádět výchozí data na výsledky po určitou dobu za určitých provozních podmínek. Pokles spolehlivosti softwaru je způsoben chybami v požadavcích, návrhu a implementaci. Selhání a chyby závisí na způsobu výroby produktu a objevují se v programech během jejich provádění po určitou dobu.

    U mnoha systémů (programů a dat) je spolehlivost prvořadá Objektivní funkce implementace. Některé typy systémů (real-time, radarové systémy, zabezpečovací systémy, lékařská zařízení s vestavěnými programy atd.) mají vysoké požadavky na spolehlivost, jako je nepřípustnost chyb, spolehlivost, bezpečnost, zabezpečení atd.

    Software Dokument

    atd. Barevný web nabízen v učebnice, obtížné vnímat a pochopit ... jeho použití. MM. Petruchin GOU VPO "... zařízení. K dnešnímu dni v programinženýrství Existují dva hlavní přístupy k rozvoji softwarezajistit ...