コンピュータとよく似た単語に、「システム」があります。
システムエンジニア、基幹システム、システム構築など。
今回は、システムとは何か?について探っていきます。
システムとは?(学術面)
システム
「システム工学の基礎」によると、システム(system)は、以下のように定義されます。
ある共通の目的あるいは共通の計画に奉仕する、多種多様の部分によって作られた複合体
ここで言う「部分」には、人間も機械も含まれます。
例えば、ここに旋盤があるとする。別にねじが不良になったために使用できない機械があるとする。いま、人間がその旋盤を見たとき、それでねじを切ってその機会を修繕しようかと考えたとき、そこには人間と旋盤とその機械とで1つのシステムを構成することになるのである。
また、別のシステムが、あるシステムの「部分」になる場合、そのシステムは「サブシステム」と呼ばれます。
システムは、社会システム、教育システム、経済システムなど、簡単に言うと、体制とか仕組みの意味で用いられます。
ITの現場で使う「システム」の意味からは、まだ遠い感じがしますね。
情報システム
さらに限定して、情報システムという単語はどうでしょうか。
情報システム学会によると、情報システムは、以下のように定義されます。
社会、組織体または個人の活動を支える適切な情報を、収集し、加工し、伝達するための、人間活動を含む社会的な仕組みである。
つまり、情報システムは、上のシステムの定義でいう「ある共通の目的」を、情報の活用に限定したもの、と言えます。
ここでも注目すべきは、「人間活動を含む」と定義されていることです。
どういうことか?
例えば、ある企業の取締役会で、最近の売上高や営業損益の実績について、報告する場面では、会計情報を格納するデータベースや、レポートを加工するBIツールだけあっても、まだ不十分です。
機能を実行するユーザ、レポートをチェックする上司、ユーザと上司が所属する経営企画部門、取締役会、そして、機能をメンテナンスする情報システム部門などがあって、情報共有の場が、初めて成立します。
これらの人間活動もすべてひっくるめて、情報システムと呼ばれます。
システムとは?(IT実務)
一方、私たちの現場で言う「システム」は、情報システムから人的要素を除いた、複数のコンピュータによるネットワークのことを、指しています。
具体的には、基幹システム、販売管理システム、会計システム、システム開発、システムエンジニア、などです。
これらを、上の情報システムと区別するために、情報処理システムやコンピュータシステムと呼ぶようですが、現場では単にシステムと呼んでいます。
つまり、狭義のシステムとは、ある情報システムを構成するコンピュータネットワーク、と言えます。
また、「販売管理システムや、会計システムなどは、基幹システムのサブシステムである」というふうに、狭義のシステムに対しても、サブシステムという言葉が使われます。
今後は、特に断りがない限り、システム/サブシステムを、この意味で用いていきます。
システムの構成要素
前出のコンピュータシステムの解説には、以下の記載があります。
通例、コンピュータシステムには、構成要素としてハードウェアとソフトウェアが必ず含まれ、社会の情報化によって現代社会において、ルーターなどの通信機器などもコンピュータシステムの構成要素とされるようになってきている。
ハードウェアとは、コンピュータを物理的または仮想的に構成する部品(CPU、メモリ、ハードディスク、ケーブル、入出力デバイスなど)です。
ソフトウェアとは、何らかの目的のために機能を実行するプログラムです。
確かに、この2つの要素は、システムを構成しますが、
(※通信機器も、結局はコンピュータの一種であり、ハードウェアとソフトウェアに分解されます。)
さらに、第三の構成要素として、データ(data)がある、と考えます。
なぜなら、データがないと、情報を得られない、からです。
Bertrand Meyer の「オブジェクト指向入門」によると、
ソフトウェアシステムを実行するということは、特定のプロセッサ群(processors)を使って特定のオブジェクト群(objects)に対し、特定の動作群(actions)を適用することである。
プロセッサ群は、物理的なものであれ、仮想のものであれ、命令を実行する計算装置群である。
動作群は特定のコンピュータ処理を構成する操作群である。…ソフトウェアシステムのレベルでは、複雑なアルゴリズムの主要な個々のステップを1つの動作として扱う。
オブジェクト群は動作群を適用する対象となるデータ構造群である。
ここでは、データと言う言葉はオブジェクトの同義語として使う。動作については、一般的な習慣に従い、システムの機能あるいはファンクション(function)という言葉をしばしば使う。
ソフトウェアの問題について論じるときには必ずオブジェクトと機能の両方について説明しなければならない。
すなわち、ソフトウェア(プログラム)を実行する際には、
- 実行するための環境: プロセッサ群、つまり、ハードウェア
- 実行する対象: オブジェクト群、つまり、データ
が存在することになります。
従って、システムには、その目的(情報活用)のために、ハードウェア・ソフトウェア・データの3つの要素が、常に必要です。
まとめ
ITの現場で言う「システム」とは、情報システムを構成するコンピュータネットワークであり、ハードウェア・ソフトウェア・データにより構成されます。