Skip to main content

Co je formální ověření?

Často používané při testování počítačových obvodů a softwaru je formální ověření, když je funkce těchto systémů analyzována pomocí matematických vzorců.V případě vývoje softwaru se tento proces obvykle používá k zobrazení, zda program funguje správně, na základě předem stanoveného modelu.Někdy se ukázalo, že teoretický model je neuspokojivý.Kromě zdrojového kódu softwaru lze formální ověření použít při vývoji kombinačních obvodů, které se používají k provádění výpočtů v počítačích a také jako paměť počítače.Různé přístupy zahrnují ověření po faktu, ověření paralelně a integrované ověření kromě různých metod..Vývojáři softwaru mohou najít chyby nebo chyby ve zdrojovém kódu i v modelu použitém k jeho vytvoření na prvním místě.Zásadní změny v tom, jak se kód píše, lze někdy provést dříve, než chyba návrhu ovlivní konečný výsledek.K kroku ověřování obecně pomáhá určit, zda produkt dělá to, co mělo dělat, a splňuje specifikace aplikace, pro kterou je.Standardní metoda, která se používá během procesu návrhu a vývoje, není analyzována, dokud není systém dokončen.Nalezení vážných chyb v této fázi často vede k drahým a časově náročným revizím.Vývoj a ověření mohou také provádět dva samostatné týmy pro ověření paralelně.Prostřednictvím vzájemné komunikace se mohou vývojáři zaměřit na nezávislé úkoly během celého procesu návrhu.

Integrované ověření je, když jeden tým provádí vývoj a požadované hodnocení.K ověření schopností produktu se často používají složité matematické koncepty.Metody formálního ověření se mezi projekty liší, ale často se používá kontrola modelu.Hardwarový nebo softwarový model se skládá z různých vlastností, které designéři chtějí v hotovém produktu.Model a systém lze pravidelně kontrolovat, aby se zjistilo, zda se vlastnosti shodují.Pravidla definovaná ve formálním systému se obecně nacházejí v logice.Obě tyto techniky používají různé prostředky k určení, zda je splněna konkrétní specifikace produktu.Vývojáři mohou používat různé typy softwaru ve formálním ověřovacím procesu, z nichž každý je přizpůsoben konkrétnímu systému nebo programovacím jazyce.