Print

Proč používat verifikaci softwaru?

-- 09.06.09

Vývoj softwaru se často ukáže jako mnohem nákladnější, než se předpokládalo. Zkušenosti říkají, že čím dříve se chyba při vývoji odhalí, tím menší dopad má na časový harmonogram i na náklady. Chyby ve vývojovém cyklu, které jsou objeveny pozdě, šroubují náklady nahoru a ohrožují integritu a bezpečnost systému, zejména pokud již byl software implementován. Pečlivé plánování, organizace a tým s náležitými zkušenostmi jsou samozřejmě přínosem.

Sekvenční vodopádový model slouží od svého vzniku na počátku 70. let minulého století jako rámec pro alternativy vývoje softwaru. V tomto modelu každá fáze kaskádovitě přechází do druhé, která začíná až po dosažení definovaných cílů předchozí fáze. V praxi musejí být dřívější fáze často přepracovávány, protože vývojáři pracují iteračně a požadavky se upřesňují až s tím, jak uživatel testuje prototypovou verzi systému. Právě z důvodu tohoto iteračního přístupu je ještě důležitější používat vhodné techniky verifikace a validace, a to v každé fázi a při každé iteraci.

        

Požadavky

Prvním krokem nebo úrovní vodopádového modelu je definování systémových požadavků. Tento krok zahrnuje úzkou spolupráci mezi konečným uživatelem a vývojářským týmem. Můžete mnoho získat tím, že požadavky zjistíte v jejich plné šíři, dobře jim porozumíte a definujete je komplexně a jednoznačně. Formální metody sledování požadavků jsou založeny na matematickém přístupu ke specifikaci, vývoji a verifikaci softwarových a hardwarových systémů.

Tyto formální metody mohou sahat od používání obecně akceptovaných poznámek až k plně formálnímu dokazování teorému nebo k automatické dedukci, což je metoda dokazování matematických teorémů pomocí počítačového programu. Přestože náklady na používání formálních metod je často omezují na aplikace, kde je požadována vysoká úroveň integrity softwaru, určitá míra formální specifikace je přínosná pro jakoukoli softwarovou aplikaci.

Návrh

Tradičně se u návrhu velkých systémů postupuje shora dolů, metodou funkční dekompozice. Systém je rozdělen na subsystémy, které předávají data, a kontrolu přes definovaná rozhraní. Subsystémy obvykle tvoří několik programových modulů nebo jednotek a každý modul má několik rutin, jež provádí určité úkoly. S nástupem strategií navrhování na bázi modelu je nyní možné značný podíl verifikace automatizovat.

Testování jednotek, dříve aplikované pouze na programový kód, lze nyní provádět na simulacích. Na základě určitých předběžných podmínek a sérií vstupů lze kontrolovat výstupy a následné podmínky. Model se dá dokonce nastavit tak, aby mohly být kontrolovány také podmínky v mezidobí a byla tak zajištěna správnost různých cest v rámci návrhu. Můžete totiž dosáhnout správných výsledků i z nesprávných důvodů, a to díky nahodilé správnosti.

Implementace

Zdrojový kód obecně představuje první příležitost aplikovat vyspělé nástroje pro ověření a testování aplikace a je také fází, kdy dochází ke vnesení mnoha chyb. Špatné programovací postupy a neformální testování přispívají ke vzniku softwaru, který nefunguje správně, je nepřehledný a obtížně se udržuje. I když mnoho organizací zavádí pravidla správného stylu pro podporu jednotnosti a větší důslednosti, je to jen malý krok směrem k úrovni shody s požadavky, o niž usilují vývojáři bezpečnostně kritických systémů.

Programovací standard obvykle obsahuje mnoho pravidel a pokynů. Organizace Jet Propulsion Laboratory však definovala relativně nový programovací standard nazvaný „Síla 10: Zásady psaní bezpečnostně kritického programového kódu“ (The Power of 10: Rules for Developing Safety-Critical Code), který je omezen na deset ověřitelných zásad programování. Vychází z toho, že malý, pečlivě zvolený soubor zásad bude snadněji vymahatelný, a přesto dokáže detekovat mnoho příčin vedoucích k chybám softwaru. Podle vnímané kvality analyzovaného softwaru lze programovací zásady/pokyny zařadit do následujících oblastí.

Přenositelnost: Tyto zásady upozorňují na programovací konstrukty, které se liší mezi jednotlivými kompilátory.

Spolehlivost: Tyto zásady odhalují nebezpečný kód, který by mohl ohrozit funkci nebo spolehlivost.

Testovatelnost: Tyto zásady detekují vlastnosti, které komplikují testování.

Udržovatelnost: Tyto zásady detekují obtížně pochopitelné vlastnosti, které by mohly mít nepříznivý dopad na aktualizace nebo revize, jako je redundance a opětovné používání názvů identifikátorů.

Složitost: Tyto zásady upozorňují na složitý programový kód, aby mohl být zjednodušen nebo aby se při jeho úpravách dbalo větší pozornosti.

Styl: Tyto zásady zajišťují, aby programový kód vykazoval stejný styl a dodržoval uznávané zásady dobré programovací praxe.

Přejímací testování V závěru implementační fáze jsou softwarové jednotky integrovány a testovány jako subsystémy a jako součást celého systému. Jakmile je testování integrace dokončeno a produkt je připraven k dodání zákazníkovi, závěrečnou fází je přejímací testování.

Přejímací testování je formální testovací proces prováděný pod vedením uživatelů softwaru, jehož účelem je zjistit, zda provozní softwarový systém splňuje jejich potřeby definované v požadavcích. Při každém přejímacím testu jde o otestování funkčnosti požadované uživatelem. Tyto testy se liší od testů jednotek v tom, že testy jednotek modeluje a píše vývojář jednotlivých modulů, zatímco přejímací testy jsou modelovány a případně i psány společně se zákazníkem nebo zákazníkem samotným.

ce

Paul Humphreys je softwarový technik společnosti LDRA odpovědný za průběžné vylepšování statického analyzátoru LDRA. Kontaktujte jej na adrese paul.humphreys@ldra.com.

Autor: Paul Humphreys, LDRA


Sponzorované odkazy

 
Aktuální vydání
Reklama

Navštivte rovněž

  •   Události  
  •   Katalog  

Události

Technical Computing Camp 2019
2019-09-05 - 2019-09-06
Místo: Hotel Fontána, Brněnská přehrada
Moderní technologie ve farmacii
2019-09-24 - 2019-09-24
Místo: Brno
Moderní technologie v potravinářství
2019-09-25 - 2019-09-25
Místo: Brno
Mezinárodní strojírenský veletrh 2019
2019-10-07 - 2019-10-11
Místo: Výstaviště Brno
MSV TOUR 2019
2019-10-07 - 2019-10-10
Místo: MSV, Brno

Katalog

BALLUFF CZ s.r.o.
BALLUFF CZ s.r.o.
Pelušková 1400
19800 Praha
tel. 724697790

EWWH, s. r. o.
EWWH, s. r. o.
Hornoměcholupská 68
102 00 Praha 10
tel. 734 823 339

B+R automatizace, spol. s r.o.
B+R automatizace, spol. s r.o.
Stránského 39
616 00 Brno
tel. +420 541 4203 -11

Schneider Electric CZ, s. r. o.
Schneider Electric CZ, s. r. o.
U Trezorky 921/2
158 00 Praha 5
tel. 00420737266673

COGNEX
COGNEX
Emmy-Noether-Str. 11
76131 Karlsruhe
tel. 720 981 181

všechny firmy
Reklama


Tematické newslettery




Anketa


Na internetu
V tištěných médiích
Na veletrzích a výstavách
Jinde

O nás   |   Reklama   |   Mapa stránek   |   Kontakt   |   Užitečné odkazy   |   Bezplatné zasílání   |   RSS   |   
Copyright © 2007-2019 Trade Media International s. r. o.
Navštivte naše další stránky
Trade Media International s. r. o. Trade Media International s. r. o. - Remote Marketing Továrna - vše o průmyslu Control Engineering Česko Řízení a údržba průmyslového podniku Inteligentní budovy Almanach produkce – katalog firem a produktů pro průmysl Konference TMI