概要(変化に強いシステムの構築方法)
はじめに
まず,変化する時間の違いによりシステムを三つの構成要素に分け,その後,設計と制作の違いを考慮します.論点は変化に強いシステムの構築方法です.
システムの構成要素
システムを大きく三つの要素に分け,それぞれを以下のように定義します.
- データモデル
- システム開発の対象となる組織体が業務を行うために必要なデータ.
- アプリケーションルール
- データを基に業務で必要な情報を導き出す方法.
- ユーザインタフェース
- システムに蓄えた情報とシステムを使う人との接点.
変化する時間の違い
上記3要素の変化する時間はそれぞれ異なります.
- データモデル
- 最も安定し,変化する時間が最も遅いものです.先に述べた通り,データモデルはシステム開発の対象となった組織体が業務を行うために必要なデータを表したものです.新規業務への進出や既存業務からの撤退がない限り変化しません.
- アプリケーションルール
- データモデルよりも変化しやすく,ユーザインタフェースよりも変化しにくいものです.変化する時間はデータモデルよりも早く,ユーザインタフェースよりも遅くなります.先に述べた通り,アプリケーションルールはデータモデルを用いて行う業務情報の導出方法です.したがって,例え同じデータモデルでも組織の力点の変化により変化します.また,新しいデータモデルが必要となれば,それに伴い変化します.
- ユーザインタフェース
- 最も変化しやすいもので,変化する時間は最も早くなります.表示する機器が変わる,WindowsがMacintoshに変わる,担当者が変わる,担当者の好みが変わる等様々な理由で変化します.もっと言えば,ユーザの変化に合致し,短い時間で変化していかなくてはならない性質を持ったものです.
変化への抵抗力を高める
データモデル・アプリケーションルール・ユーザインタフェースの変化する時間の違いを考えました.この考え方に立つと,システム全体の変化への抵抗力を高める原則は以下の一つとなります.
変化する時間の長い要素を変化する時間の短い要素から独立させます.これにより,より短い時間で変る要素の変化がシステムの他の要素への波及を防止します.
この原則で考えるとデータモデル・アプリケーションルール・ユーザインタフェースの依存関係は次のようになります.
- データモデル
- 変化する時間が短いアプリケーションルールやユーザインタフェースから独立していなければなりません.アプリケーションルールやユーザインタフェースの変化がデータモデルに影響を与えてはなりません.言い換えれば,アプリケーションルールや,ユーザインタフェースが未定義でもデータモデルは作成可能です.
- アプリケーションルール
- 変化する時間が短いユーザインタフェースから独立していなければなりません.ユーザインタフェースの変化がアプリケーションルールに影響を与えてはなりません.言い換えれば,ユーザインタフェースが未定義でもアプリケーションルールは作成可能です.アプリケーションルールの変化が,データモデルに影響を及ぼしてはなりません.
- ユーザインタフェース
- データモデルとアプリケーションルールはユーザインタフェースから独立しているので,ユーザインタフェースの変化がデータモデルやアプリケーションルールに影響を及ぼしてはなりません.
設計と制作
システムの構成要素をデータモデル・アプリケーションルール・ユーザインタフェースの三つに分け,これらの依存関係を整理しました.ここでは,設計と制作の依存関係を整理します.結論から言えば,「設計は制作から独立して実行可能」であり,制作時に使う開発環境や想定している形態(クライアント・サーバやメインフレーム集中)は設計とは全く無関係です.
「設計・制作」の定義が曖昧なままだと「設計とは・制作とは」と混乱する可能性があります.そこで,ここでは設計と制作を以下のように定義します.
- 設計
- システム開発の対象となる組織体に依存した作業.
- 制作
- システム開発の対象となるコンピュータ環境に依存した作業.
「論理設計と物理設計」という言い方もありそうです.しかし,どちらにも「設計」という文言を付けると,お互いに影響し合う可能性があります.これを避けるため,共通部分を持たない「設計と制作」という文言にしました.別の言葉に置換えたほうがしっくりくるのであれば,置換えて読んでください.
データモデルの設計は使用するDBMS(例えば,ORACLEとかSybase),DBMSの種類(例えば,リレーショナルデータベースとか階層型データベース),もっと言えば,データベースを使用有無が未決定でも作成できます.
アプリケーションルールの設計は使用するパッケージ(例えば,VisualBasicとかDelphi),言語の種類(例えば,CとかCobol)が未決定でも作成できます.
ユーザインタフェースの設計も使用するパッケージや言語とは無関係に実行可能です.
そして,これら制作から独立して行った設計は,制作を意識した設計に比べ,それ以降に続く制作・メンテナンスに大きな役割を果すことができます.開発技術の進歩により,設計が時代遅れとなることを防ぐことができます.逆に,設計を変えなければ,パッケージや言語をどれだけ変えても,システム開発に大きな変化はありません.
まとめ
システムはデータモデル・アプリケーションルール・ユーザインタフェースからなります.変化の時間の違いを考慮するとユーザインタフェースの変化はアプリケーションルール,データモデルに影響を与えてはなりません.同様に,アプリケーションルールの変化はデータモデルに影響を与えてはなりません.
設計は制作から独立して実行可能です.
参考文献
林衛, "データ中心設計のためのERモデル・システム分析/設計法", ソフトリサーチセンター 1993
岡田英明, "システム部門再生講座", 戦略コンピュータ ,1994年10月号 Vol.33 No.10 p.50- 日刊工業新聞社
Brenda Laurel, "Computer as Theatre", Addison-Wesley Publishing Company, 1993
遠山峻征, "劇場としてのコンピュータ", トッパン, 1993