Gyakorlati alapok II.

A szoftverfejlesztés

 

Amit most kell tisztáznunk: validálás és verifikálás

 

A validálás és verifikálás fogalmai először az előző, Szoftverfejlesztési modellek című fejezetben merültek fel, bár nyilvánvalóan szoftverfejlesztési módszertanok megalkotásakor már jóval hamar szükséges foglalkozni velük. Az Interneten elérhető ezzel kapcsolatos megállapítások zöme annyira absztraktra sikerült, hogy majdhogynem érthetetlenek. Sőt, nagy Fermi-sejtésem szerint sok, a fogalmakat használó szakember egyenesen keveri vagy éppen nem érti a definíciókat. Kezdésként a számomra leérthetőbbeket idemásolom:
 

1.
A módszer validálása a módszer eljárásának igazolása abból a szempontból, hogy a kívánt eredményekre juthatunk.


Ezzel szemben a módszer verifikálása az a tevékenység, amely során arról győződünk meg: megfelelőképpen jártunk el a módszer megvalósításában ahhoz, hogy megfelelő pontosságú értékelést kapjunk.
 

2.
A validáláson értjük azt az eljárást, ami bizonyítja, hogy a módszer, az eljárás a kívánt eredményre vezet, azaz a méréskor azt a paramétert szolgáltatja, amit szeretnénk, a definíciónak megfelelő paraméter értéket kapunk, ha helyesen hajtjuk végre az eljárást (módszert).

Verifikálásnál már nem a módszernek, illetve eljárásnak a megfelelőségét ellenőrizzük, hanem azt, hogy a módszerünk megfelelően van-e végrehajtva ahhoz, hogy a kívánt paramétert kapjuk. A verifikálásnál tehát a módszert már jónak minősítettük és azt ellenőrizzük, hogy helyesen működik-e a módszerünk az adott megvalósításban.

A validálás szorosan függ össze a valóság modellezésével.

 

www.informatika-programozas.hu - A valóság modellezése

Forrás - Source: www.nineexposures.com

 

Ekkor a valóság egy adott szeletét kezdjük el figyelni, méréseket végzünk el rajta és sokszor mélyebb, matematikailag is megfogalmazható kapcsolatokat fedezhetünk fel. A szerzett matematikai és tapasztalati apparátussal pedig megalkothatunk egy olyan eljárást, amely képes modellezni, pontosan leírni a megfigyelt valóságszeletet. (Gondoljunk csak házak, sőt egész városok 3D modellezésére.) Ez legtöbbször több lépésben történik, azaz a validáló eljárás algoritmikusan úgy van felépítve, hogy mindig az elvárt végeredményeket szolgáltassa.

A verifikálás folyamatakor a validáló eljárás már adott, előzetesen megalkotott, ekkor csupán azt ellenőrizzük, hogy a validáló eljárás megfelelően,"szabványosan" van-e végrehajtva.

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Mindez a szoftverfejlesztésre vonatkoztatva (az IEEE-STD-610 szabvány szerint):

 

A szoftvervalidáció az a folyamat, amelynek során értékeljük a szoftvert, miszerint kielégíti-e a megadott követelményeket.

 

A szoftververifikáció az a folyamat, amelynek során értékeljük a szoftvert és fejlesztési körülményeit, miszerint azok kielégítik-e azon feltételeket, amelyekkel a validált szoftvert meg tudjuk alkotni.

 

Lássunk erre egy konkrét példát!

Tételezzük fel, hogy egy megrendelő nagyon magas szintű és egyedi fejlesztésű biztonsági szoftvert rendel egy programozási cégtől.

 

www.informatika-programozas.hu

Forrás - Source: threatpost.com

 

Ekkor nyilvánvalóan magát a biztonsági protokollt is a programozási cégnek kell kifejlesztenie. Alapvetően nem probléma ez, minden nagyobb cég képes elvégezni ebbéli feladatait, azonban később össze kell vetnie a megrendelő elvárásait és a keletkezett szoftver minőségi jellemzőit, nevezetesen: a szoftver kielégíti-e a megadott követelményeket (szoftvervalidáció).

Egy biztonsági szoftvert nem lehet csak úgy "az utcán" fejleszteni. Annak összes fejlesztési fázisa éppúgy szupertitkos, mint maga a keletkezett biztonsági protokoll és működtető kód. A szoftververifikáció az a folyamat, amelynek során értékeljük a szoftvert és fejlesztési körülményeit, miszerint azok kielégítik-e azon feltételeket, amelyekkel ezt a biztonsági szoftvert a biztonsági előírások maximális figyelembevételével megalkothatjuk.