• ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • 日経BP
  • PR

  • PR

  • PR

  • PR

  • PR

インタビュー&トーク

仕様が正しく与えられれば「バグ無し」は可能だ

酒匂 寛 デザイナーズ・デン 代表取締役

田島 篤=出版局 2017/06/01 ITpro

 オブジェクト指向技術を日本でいち早く紹介するなど、ソフトウエア開発の現場における品質向上にこだわり、「バグ無し」開発を追い続けるコンサルタント兼翻訳家の酒匂 寛氏。バグ無し開発の現状について聞いた。
(聞き手は田島 篤=出版局)



バグ無し開発に一貫して取り組まれています。そもそもバグ無し開発は本当に可能なのかを教えてください。

 結論から言えば、ソフトウエアを開発するうえで、その論理的な振る舞いを表現した仕様(スペック)が正しく与えられれば、バグ無し開発は可能です。

 ただし、これは大前提に過ぎません。ソフトウエアができたとして、その与えられた仕様を正しく実装できたのか、さらには、仕様そのものは正しかったのかが問われます。実装が正しかったとしても、仕様が正しいとは限らないわけです。こうして見ていくと、そもそもバグとは何なのかという疑問が浮かびます。バグとは何でしょうか。

[画像のクリックで拡大表示]

プログラムのなかにある不具合だと思いますが。

 そうだとすれば、仕様が正しく与えられていれば、それを正しくプログラムに変換できるかどうかという意味でのバグ無し開発は可能です。ただ、「仕様を正しくプログラムに変換できたか」を確認するためには、基準となる仕様がはっきりしていなければなりません。

 仕様というものを、要求を出す側と開発する側の合意と見なし、そこを明確化するための概念として「契約による設計」と呼ばれるものがあります。

 契約による設計とは、あることを実現したいときに、前提となる状態(事前条件)があり、これに対して適切な仕事をしたら、望んでいる状態(事後条件)が実現されることをきちんと書いて、要求を出す側と開発する側が合意しておきましょうということです。ここで「仕事をする」という部分がプログラムの役割になりますが、実際の仕事の内容そのものを考えることは開発者に任されています。

 この契約による設計という概念を実現するための手法として、例えば、形式仕様記述を用いることができます。形式仕様記述言語の一つに、VDM(Vienna Development Method)と呼ばれるものがあり、比較的素直に「契約による設計」としての仕様を表現することが可能です。ここで書かれる仕様とは、具体的には、入出力の型や事前・事後条件、不変条件などを指します。この仕様が、要求を出す側(プログラム発注者)と作る側(受注者)の契約書になるわけです。

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

クラウド

運用管理

設計/開発

サーバー/ストレージ

クライアント/OA機器

ネットワーク/通信サービス

セキュリティ

もっと見る