初めにソフトウエアの欠陥がもたらす影響がクリティカルになるにつれて、より間違いの少ない開発手法に注目が集まっています。そんな中で注目されている技術の1つが、形式手法です。形式手法とは、数学をベースにしたシステム開発手法の総称です。従来の形式手法は、数学の専門知識が必要だったほか、大がかりなシステム開発体制とあわせて語られることがほとんどでした。このため、一般の開発者にとっては、なじみのない技術でした。した状況が、ここ数年で一変しました。PCの性能向上と、より使いやすいツールの提供により、誰でも簡単に試すことがのできる環境が整いつつあります。Analyzer」を取り上げ、以下の2つのポイントを中心に解説します。Analyzerが開発されたのか「ソフトウエアの欠陥を除去する」ことを考える際に、まず考えるのは、ソフトウエア・テストを行うことでしょう。ご存じの通り、テストではソフトウエアの欠陥を完全に排除することはできません。Dijkstra)テストでは、特定の条件を入力した際の結果を確認します。テスト・ケースには"抜け漏れ"の危険が付きまといます。この問題を解決するため、形式手法では、仕様を数学的に記述し、これを証明しようとします。この証明を人力で行うのは限界があるので、これらを自動化する技術として自動定理証明やモデル検査といった技術が研究されています。これらの技術は自動ですべての条件や状態を洗い出すので、テストと比較して完全性が保証されるというメリットがあります。いった自動化技術にも弱点があります。モデル検査では、与えられたモデルを基にすべての状態を網羅するため、膨大なコストがかかるのです。この"状態爆発"という現象は、最新の計算環境をもってしても解決が難しい問題です。Jacksonは、1つの仮説を打ち出しました。Hypothesis」(ほとんどの欠陥は、小さい探索範囲であっても反例として発見される)すべてを網羅的に検証するのでなく、最も欠陥が発生しやすいところを集中的に検証すべき、ということです。Methods」と呼んでいます。完全な証明よりも、現実的なコストの範囲内での欠陥の発見を目指すのです。Methodsの考え方に基付いた形式手法ツールの1つです。Analyzerは、以下の特徴を持っています。Analyzerを使って設計を行う際に、非常に役立ちます。通常、クラス図やデータ・モデルを作成した際のレビューは、手作業で行うことが多いかと思います。Analyzerの場合、データ構造を表す仕様を手軽に記述できるため、クラス図の多重度の間違いや、複数の制約条件の組み合わせの結果を、その場で確認することができます。Analyzerを動作させるためには、以下の環境が必要です。Analyzerが起動します。Analyzerを使う上で必要になる、いくつかの用語について説明します。Analyzerで記述されたモデル。Analyzerの基礎用語(クリックで拡大)インスタンスとは、仕様を検証した結果のことです。インスタンスの中で、アトム同士の関係を調べることで、期待した結果が出ているかどうかを確認することができます。Analyzerを用いたモデリングの実際を体験します。ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。IT会員サービスの概要とメリットをチェック他にもこの記事が読まれています開発ツールイベントGitHub、エンタープライズ向けのイベントを国内で開催。VeloCloudが選ばれる理由SD-WANとはなにか。Linuxエンジニア育成への思いF5とNGINXの組み合わせで、サービス公開をよりセキュアに。ITがお届けするポッドキャストです。