情報システムの設計を表記する方法
みなさん、こんにちは!「情報Ⅱ」の学習はいかがですか?この章では、情報システムを作るときに欠かせない「設計図の書き方」について学びます。「プログラミングができるなら、いきなり作り始めてもいいんじゃない?」と思う人もいるかもしれません。でも、大きな建物を作るときに設計図が必要なように、複雑な情報システムをチームで作る際にも、共通のルールで書かれた図解が必要不可欠です。
最初は難しく感じるかもしれませんが、一つひとつの図には「何に注目して書くか」という明確な目的があります。それさえ押さえれば、パズルのように楽しく理解できますよ!
1. なぜ「表記する方法」を学ぶのか?
情報システムは、複数のプログラマーや設計者が協力して開発します(これを協働といいます)。言葉だけで「こんなシステムにしよう」と伝えると、人によって解釈がズレてしまい、後で大きなミスにつながることがあります。そこで、誰が見ても同じ理解ができるように、世界共通の「書き方のルール」が作られました。
ポイント:設計図があるメリット
・開発メンバー間のコミュニケーションがスムーズになる。
・システムの全体像が把握しやすくなり、ミスの発見が早まる。
・後でシステムを修正・運用するときに、構造がすぐにわかる。
豆知識:
昔のエンジニアたちも、書き方がバラバラで苦労していました。そこから「標準的なルールを作ろう!」という動きが生まれ、現在の図解方法が普及しました。
2. データの流れに注目する:DFD(データフロー図)
システムの中で、情報がどこから入って、どこで処理され、どこに蓄積されるのかを視覚化したのがDFD(Data Flow Diagram)です。主に4つの記号を使って表現します。
- プロセス(処理): データを加工したり計算したりするところ。丸や四角で書きます。
- データフロー(流れ): データの移動方向を矢印( \( \rightarrow \) )で示します。
- データストア(蓄積): データベースやファイルなど、データを保存する場所です。
- 外部(源泉と吸収): システムの外にあるユーザーや別のシステムのことです。
例:図書室の貸出システムなら、「利用者(外部)」から「本のID(フロー)」が「貸出処理(プロセス)」に送られ、「貸出帳(ストア)」に記録される、といった流れになります。
よくある間違い:
DFDは「データの流れ」を書く図であり、「処理の順番(いつ実行するか)」を書くものではありません。順番を重視するのは「アルゴリズム」の図(フローチャートなど)の役割です。
3. 状態の変化に注目する:状態遷移図
システムが「今、どんな状況にあるか」と、「何が起きたら次の状況へ移るか」を表すのが状態遷移図です。スマホアプリの画面遷移や、家電の動作モードなどを設計する際によく使われます。
構成要素:
・状態(ステート): 「停止中」「実行中」「待機中」などの現在の状況。
・イベント(出来事): 「ボタンが押された」「タイマーが \( 0 \) になった」などのきっかけ。
・遷移: イベントによって、ある状態から別の状態へ変わること。
ポイント:
複雑なシステムでも、「今の状態」と「きっかけ」を整理することで、予期せぬ動作(バグ)を防ぐことができます。
4. オブジェクト間のやり取り:UML
現在のソフトウェア開発で最も広く使われているのがUML(Unified Modeling Language)という統一された表記法です。情報システムを、データと処理をセットにした「オブジェクト」という単位で捉えて表現します。
(1) ユースケース図
「誰が(アクター)」「そのシステムで何をするのか(ユースケース)」をシンプルに示した図です。システムの利用範囲を明確にするために、設計の初期段階でよく使われます。
(2) シーケンス図
オブジェクト同士が、どんな順番でメッセージをやり取りするかを時系列で表した図です。縦方向に時間が進むように書き、情報の流れを追いかけるのに適しています。
豆知識:
UMLには他にもたくさんの図がありますが、まずは「誰が使うか(ユースケース図)」と「どう動くか(シーケンス図)」を覚えるのが近道です!
5. 設計の表記と開発プロセス
これらの表記方法は、開発のいろいろな場面で登場します。第4章の別の項目「ソフトウェア開発のプロセス」で学ぶように、設計の段階でしっかり図を書き、それに基づいてプログラムを制作し、テストを行うという流れが重要です。
まとめ:設計図を使い分けよう
・データの動きを見たいときは? \( \rightarrow \) DFD
・モードや状況の変化を見たいときは? \( \rightarrow \) 状態遷移図
・利用者とのやり取りや、部品同士の連携を見たいときは? \( \rightarrow \) UML
クイックレビュー
Q1. システムの外にいる利用者や外部システムを、DFDでは何と呼びますか?
(答え:外部、または源泉と吸収)
Q2. 時系列に沿ってオブジェクト間の情報のやり取りを表現する図は何ですか?
(答え:シーケンス図)
最後に:
設計の表記方法は、プログラミング言語のように「書き手の意図を伝えるための言語」です。最初は完璧に書けなくても大丈夫です。図を描くことで、自分の頭の中が整理されていく感覚をぜひ楽しんでください!