要件定義の進め方

システム開発の大炎上を防ぐために、上流工程(前工程)に位置する「要件定義」について、考えていくブログです。

要件定義書の作り方
PDCAサイクルではなく、PDCサイクルを回そう
あるべきV字モデルについて整理した
スコープを決めてから、QCDの議論をしよう

【初心者向け】【システム設計】システムの全体像に関する説明

システムの全体像

本節では、システムと何か?について説明したい。一枚の絵で説明すると上図となるのだが、順を追って説明していくことする。本説明の対象は、システムの中でも、情報を取り扱うシステムであり、初めに、情報そのものについて整理し、その情報を取り扱うシステムとは何か?という順序で説明をする。

情報量の増大と情報処理システムの出現

情報とは何か

情報とは、それを通して何らかの知識が得られるようなもののことだ。知識が得られないものは、情報ではなく、雑音(ノイズ)である。ラジオを聴いているとわかるが、音楽が流れている中で、ザーザーと鳴る音が聞こえるであろう。この場合、音楽は情報で、ザーザー音は雑音となる。ザーザー音から我々が得られるものはない。

人類は、情報を共有することで、種として繁栄してきた。人自身、個々の力はたいしたことがないものの、他の大きな動物から自分達の身を守ったり、大きな動物を捕食できたりするのは、人同士が情報を共有し、他の動物に打ち勝つ方法を共有し、協力できたからである。人以外でも情報を共有している動物はいるものの、情報を高度に活用し、生活を利便にしていくことは、我々人類にしかできないことである。人類にとって情報は必要不可欠のものであり、情報は多くの人に共有されるべきである。だから、情報を効率的に扱う方法は人類史の中で常に考えられてきた。

紙の発明

情報の保存という点での画期的な発明は、紙の発明だった。紙というものは、保存性に優れており、情報を長い間保存することができた。情報を蓄え、その情報を活用し、さらなる便利な発明ができるようになったため、人類の文明は高度化が進んだ。紙は、つい最近まで情報の保存媒体として主流だった。実際、論文のことを、英語ではpaper(紙)と呼んだりする。それほど、紙というものは、科学技術を発展させていくうえでの中心的な役割を担っていたのである。

コンピュータの発明と情報処理量の増大

コンピュータが発明されてから、記憶媒体の主役は、紙から電子記憶媒体に移っていった。情報処理技術が発達した昨今、情報は電子記憶媒体に保存されるようになった。電子記憶媒体情報処理システムを通してでしか情報へのアクセスができないものの、保存容量という点では、紙より遥かに優れていた。一枚の紙に保存できる情報量は、たかだか400文字程度だが、一枚のsdに保存できる情報量は、何億文字となり、紙に換算すると100万ページ分となる。情報を記録する手段の歴史を辿ると

# 手段 出現時期 単位当たり保存容量 備考
1 約10万年前 情報を語り継ぐことしかできない
2 石板 約5000年前 100文字 この時点で情報を永続的に残すことに成功
3 約2200年前 400文字 石板に比べ、携帯性、保存性に優れる
4 電子記録媒体 約100年前 数億文字 圧倒的な保存容量

となっており、情報を記録できる容量は、加速度的な速さで増えている。我々が生きている時代は、コンピュータを活用して大量の情報を記録し、共有できる時代となっているのだ。

情報処理システムの出現

大量の情報を保存できるようになってくると、今度は、それらの情報をどうやって利活用するかという問題がでてくる。必要な時に、必要な情報を、入れたり出したりできるシステムが必要だ。それが、情報処理システムである。

情報処理システムという小難しいイメージを持たれるかもしれないが、やっていることはシンプルで、下記3点に分類される。
①    処理系:情報を加工する
②    通信系:情報を送信する、情報を受信する
③    蓄積系:情報を保存する
我々が情報処理システムに情報を入力する際、システムはその情報を加工[処理系]し、内部で情報の送受信[通信系]を行い、情報を蓄積[蓄積系]する。システムから情報を取り出す際、システムは、蓄積している情報を取り出し、内部で情報の送受信を行い、情報を加工し、結果を出力する。本来、情報処理システムというものは、仕組みとしてはシンプルなものなのだ。

ポイント:情報処理システムはシンプルである。内部で情報の処理/通信/蓄積をするだけである

システムとは何か

前節にて情報処理システムについて考えを整理したが、改めて、システムとは何だろうか?ということを考えたい。wikipediaでは、“システムは、相互に影響を及ぼしあう要素から構成される、まとまりや仕組みの全体”という説明がなされている。システムというものを「何らかの仕組み」としてとらえると、理解しやすいのではなかろうか。

システムが備えるべき2つの特徴

エンジニアが手掛ける情報処理システムという目線で考えると、筆者は、下記2つの特徴を備えているものが、システムと考えている。
①顧客が抱える課題を解決するための動作主体であり、入力と出力を備える
②内部で情報の処理(+蓄積/通信)をする
システムは、顧客に対して価値を提供できなければならない。何らかの作業を簡単にすることであったり、難しい問題を解くことであったり、顧客の困りごと解消することが、システムの役目である。その役目を果たすためには、システムの使い手から何らかの入力を受け取り、結果を出力できなければならない。例としてテレビのリモコンの場合、電源ボタンの押下動作が入力であり、電源ボタン押下後にテレビの電源をつけたり消したりする(ための電波を発する)動作が出力である。テレビのリモコンが解決する課題の一つは、「テレビから離れていても、テレビの電源をつけたり消したりできること」だ。リモコンの内部では、ボタンの押下を入力として受け付け、内部で電気信号をやりとりし、電源ボタンが押下されたと判別できた場合は、テレビ電源ONOFF用の電波信号を発する。リモコンは①と②を満足するものであり、立派なシステムだ。
 

システムの全体像

システムの全体像(再掲)

上図に、システムの全体像を示す。左側に顧客が位置していて、顧客は、認識している問題/解決すべき課題を抱えている。真ん中には、システムの使い手が位置していて、右側にシステムが位置している。通常は、顧客=システムの使い手であることが多い(消費者向けサービスを顧客が提供している場合は、消費者がシステムの使い手となる)。システムの使い手は、システムに対して入力を行い、出力を受け取る。システムは、入力を受け取り、内部で情報の処理を行う。情報の蓄積が必要な場合は情報を蓄積する。サブシステムに処理を行わせる場合は、サブシステムに情報を伝送し、処理を行わせる。情報のやり取りをする際は、通信が行われる。
重要なポイントは、システムの使い手から見ると、システムというのは、入力したら出力が返ってくるだけという点である。システムは複雑で難しいものと捉えられがちなのだが、実態は極めてシンプルなものである。解決すべき課題を解決するために、入力を受け、結果を出力するだけである。


ポイント:顧客の課題を解決するために、システムは、入力を受け、出力を返すだけである。