2014-04-08

システム」とは境界

なんか最近オブジェクト指向関係の記事や書籍紹介を目にするような気がするのは、新学期が始まったせいなのかな。

オブジェクト指向がよくわかんない、という人は、いったんオブジェクト指向を忘れて、「システム」とはなんぞやという基本の基本を確認することをおすすめする。

Wikipediaシステムの項(https://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0)の図(https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:System_boundary.svg)を見てほしい。

外部環境(Surroundings)において境界(Boundary)が定義されるその内部がシステム(System)なのである

境界こそがシステムを具現化するものであり、要するにシステムの内部はおいといて、境界を通じてシステムの内部と外部でどのような入出力(インターフェース)があるかのを定義するのがシステム定義なのである

これが決まってはじめて内部をどのように構築するのか、サブシステムコンポーネント)間の連携をどうするのか、という話になる。

英語版のページにはしっかりとこう記載されている。

We scope a system by defining its boundary; this means choosing which entities are inside the system and which are outside – part of the environment.

日本語版の項にはなぜか訳されてないが、これが本質的定義であり、システムときいたら即「境界」と思い浮かべるの

そんなの当たり前じゃんと思われるかもしれないが、たぶんシステム関係に携わっている多くの人が、「システムって何?」ときかれたら、

 「システムはいくつかの要素によって構成されるもので、その全ての要素は、他の要素に影響を与え・・」

と、いきなりシステム内部の機能的な説明を始めると思う。まず境界インターフェースの話から始める人はむしろ少数だろう。

世の中に数多ある、システムの「要件定義」「システム設計」「機能仕様書」などで、トップレベルでの記述でまず境界と外部とのインターフェース明確にして、

Wikipediaシステムの項(https://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0)にもそう書いている。

それそれで正しいんだけど、それ以前に重要なのは境界」であり、

話題になっている記事は、なるほどよく噛み砕いているなあ、とは思うんだけれども、言語・実装・モデルといったものにひきずられてしまって、本来は広い分野や局面における「システム構築の手段」の広い概念であるはずのオブジェクト指向、実装例や用語から説明するという堂々巡りをしているという感じがする。

乱暴に言いきってしまうと、「システム」の本来の意味理解すればオブジェクト指向にまつわるあれやこれやは自然にわかってくるはずだ。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん