メインコンテンツへ
ソフトウェア

形式手法のZ記法(Z notation)に関する記述として正しいものはどれか。

ア.Z記法はスキーマ記法を用いて状態と操作を数学的に記述し、仕様の曖昧性を排除する形式仕様言語である。正解
イ.Z記法は実行可能なプログラムを自動生成するため、コーディングが不要になる実装ツールである。
ウ.Z記法はUMLのクラス図を数学的に表現したもので、オブジェクト指向設計専用に設計されている。
エ.Z記法は検証には使えず、文書化のための記法にすぎないため、バグ検出能力はない。

解説

Z記法は「法律の条文のように曖昧さゼロで仕様を書く」アプローチ。日常語の「なるべく速く」ではなく「応答時間≦100ms」と数学で書くことで、解釈のブレを根絶する。

なぜ ア が正解か

アが正解。Z記法はISO規格化された形式仕様記述言語。状態空間(State Schema)・前条件・後条件・不変条件を集合論・述語論理・関係演算で記述する。スキーマ記法([]で囲まれた構造)が特徴。数学的厳密性により仕様の矛盾や曖昧さをレビュー・ツールで検出できる。

なぜ イ は間違いか

Z記法は仕様記述言語であり、実行可能コードを自動生成するものではない。仕様からコード生成はモデル駆動開発(MDA)等の別アプローチ。

なぜ ウ は間違いか

Z記法はUMLと無関係。UML以前から存在し(1970年代起源)、オブジェクト指向専用でもなく手続き型・関数型問わず使用可能。

なぜ エ は間違いか

Z記法で記述された仕様はモデル検査ツールやProofアシスタントで検証可能。矛盾検出・プロパティ検証がZ記法採用の主要目的。

出典: AI生成問題(学習用)