クラウド時代に求められる 「実行可能な仕様書」とは?“実行可能な仕様書”を作る!(1)(3/3 ページ)

» 2011年07月21日 12時00分 公開
[渡辺 幸三,@IT]
前のページへ 1|2|3       

仕様翻訳エンジンを用意する

 次に、「この仕様書情報を読み込んで、仕様通りの機能を立ち上げるソフトウェア」を開発しよう。ある程度の経験を積んだプログラマであれば、そんなソフトウェアを想像することもプログラミングすることも難しくない。これが「仕様翻訳エンジン」となる。これによって立ち上がった機能の動きは、従来通り、手作りしたプログラムの動きと見かけ上、区別できないはずだ(図4)。

ALT 図4 手作りプログラムと仕様翻訳エンジンの違い

 興味深いことに、「仕様翻訳エンジン」によって仕様に応じた機能が立ち上がる過程で、「コード生成」が起こる必要はない。仕様翻訳エンジンみずからが、渡された仕様情報に従った入出力を肩代わりすれば済むからだ。この点がいわゆる「自動生成(注2)」との違いだ。それゆえに、私はこの仕組みを特に「動的制御方式」と呼んでいる。動的制御方式では「保守されるべきコード」がどんな瞬間においても存在しないため、仕様書とコードとの不整合が生じ得ない。

注2: UML等のモデルや仕様書に基づいてコードを自動生成しながら機能を開発していくやり方のこと。生成されたコードに対するプログラマの介入を許す方式と許さない方式に分かれ、前者には「仕様書とコードの不整合問題から逃れられない」という問題がある。ゆえに「実行可能な仕様書」であるためには、「コードに対するプログラマの介入を許さない自動生成方式」か「動的制御方式」でなければならない。

仕様書エディタを用意する

 このような仕様翻訳エンジンを用意しただけでも「実行可能な仕様書」は実現されているのだが、「仕様書の専用エディタ」もほしい。なぜなら、XMLとして様式化された仕様書情報をテキストエディタ等の汎用ツールで編集するのはさすがに辛いからだ。例えば、以下の図5のようなUIを持つ「仕様書専用エディタ」があると便利だろう。「一覧表示処理」のパターンに特化したエディタであることに注意してほしい。

ALT 図5 「仕様書専用エディタ」があると仕様書の登録・保守が容易になる

 専用エディタを用いることで、仕様書の登録・保守が容易になる。例えば、図5では一覧項目を増やしたい場合に、一次テーブル上の候補フィールドを一覧から選択できるようになっている。また、「使途機能」のタブを選べば、「この機能が他のどの機能によって利用されているか」の一覧(クロスレファレンス)も見られるようにしている。開発・保守の過程で仕様を変更した場合の「影響の広がり」を確認する必要があるためだ。

 このように、基礎となるべき「機能パターン」を確立して、パターンごとのXML様式と翻訳エンジンと仕様書エディタの組み合わせを用意すれば、「実行可能な仕様書」を支えるソフトウェア基盤が完成する。

「実行可能な仕様書」は古くて新しい技術

 以上が「実行可能な仕様書」の基本的な仕組みである。実用的な「機能パターン」さえ確立できれば、実現することは案外難しくないことが理解できたのではないだろうか。

 この考え方に近いものが、近年、「MDA(モデル駆動アーキテクチャ)」や「DSL(ドメイン固有言語)」などの用語とからめて注目されるようになったが、DOA(データ中心アプローチ)の世界では、以前から実用化されていた。住友電工情報システムの「楽々フレームワーク?」はその代表的な製品で、1999年以降の住友電工の新規システム化案件で全面利用されるようになり、2000年の外販開始以来、1000ライセンスが導入されているという。

関連リンク:「楽々フレームワーク?」(住友電工情報システムのホームページ)

 この古くて新しい技術の普及と発展を願って、筆者は業務システム開発用プラットフォーム「XEAD Driver」を自作し、今年4月にOSSとして公開した。

関連リンク:業務システム開発用プラットフォーム「XEAD Driver」の詳細解説(筆者運営のホームページ)

 この技術について、MDAやDSL(Domain Specific Language)の基調をなすオブジェクト指向系の分析・設計方法論ではなく、DOAが先行していた点は興味深い。それはDOAが、データベース処理プログラムを類型化する枠組みをもともと持っていたためと言える。実際、データベース設計に関する深い知識や経験なしには、業務システムに含まれる機能の類型化は完遂できない。次回はその辺りを「業務ロジック」の配置問題と関連付けて説明しながら、「実行可能な仕様書」の世界をさらに掘り下げていく。

筆者プロフィール

渡辺 幸三(わたなべ こうぞう)

業務システムを専門とするプログラマ。業務システムをデータ構成・機能構成・業務構成の3要素の成り立ちとして捉える「三要素分析法」の提唱者。モデリングツール XEAD Modeler、実装ツール XEAD Driverの開発者。DBC代表。「業務システムのための上流工程入門」、「生産管理・原価管理システムのためのデータモデリング」他の著書がある。ブログは「設計者の発言」。


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ