形式化技術在軟件工程中有效的提高了開發的效率、改進了軟件開發的質量、減少了開發費用。形式化的技術容易在軟件的規約上取得一致性,它屬于一種非常有效的交流方式。
(一)非形式化的缺點
用自然語言書寫的系統規格說明書,可能存在矛盾、二義性、含糊性、不完整性及抽象層次混亂等問題。
矛盾是指一組相互沖突的陳述。
1二義性是指讀者可以用不同方式理解的陳述。
2含糊性
3不完整性
4抽象層次混亂是指在非常抽象的陳述中混進了一些關于細節的低層次陳述。
為了克服非形式化方法的缺點,人們把數學引入軟件開發過程,創造了基于數學的形式化方法。
(二)形式化方法的優點
1數學能夠簡潔準確地描述物理現象、對象或動作的結果,因此是理想的建模工具。
2數學以在不同的軟件工程活動之間平滑地過渡。
3數學提供了高層確認的手段。
(三)應用形式化方法的準則
1應該建立詳盡的文檔。
2不應該放棄質量標準。
3不應該盲目依賴形式化方法。
4應該測試、測試再測試。
5應該重用。