この記事では、UMLとDFDについて、初心者にも分かりやすく、図解付きで丁寧に解説しています!
UML
- UMLは設計の考え方を複数人で共有するために分かりやすく図式化したもの。
- クラス図はクラス間の関係性を表した図。
- アクティビティ図は業務やプログラムの処理の流れを表した図。
- シーケンス図はクラス間の処理やメッセージを時系列に沿って表した図。
- コミュニケーション図はクラス間の処理やメッセージをクラス間の関係性に焦点を当てて表した図。
DFD
- DFDはデータの流れを表した図。
UML
UMLはUnified Modeling Languageの略で、統一モデリング言語と訳されます。「言語」なので、他者とコミュニケーションをするために使われるんですね。UMLはオブジェクト指向プログラミングで設計するときに、設計の考え方を複数人で共有するために分かりやすく図式化したものです。
UMLは標準化されています。企業や国が違っても同じものを使うので、あらゆる人同士がコミュニケーションを取れるようになっています。
オブジェクト指向プログラミングについてはこちらの記事で解説しています。

UMLにはシステムの構造を表す構造図と処理の流れやオブジェクト間の時系列に沿ったやり取り等を表す振る舞い図があります。

クラス図
クラス図はクラス間の関係性を表します。クラス図ではクラスを下図のように定義します。クラスが持つデータを属性と呼びます。

多重度の表現
クラス図ではクラス間の数の関係性を下図のように表します。この図では「1つの部署」に「1人以上の社員」が属するということが分かります。このような数の関係性を多重度と言います。

多重度は下表のように記載します。

汎化-特化の表現
汎化とは複数のクラスの共通の性質を抽出することで、特化は汎化の逆です。

クラス図では汎化-特化の関係も表現できます。汎化-特化の関係は下図のように三角矢印で表現します。下図から社員には派遣社員と正社員があると分かります。

アクティビティ図
アクティビティ図は業務作業の流れやプログラムの処理の流れを表します。アクティビティ図では条件分岐や並行処理、実行順序などの制御の流れも表すことが出来ます。

シーケンス図
シーケンス図はクラス間の処理の流れやメッセージの流れを時系列に沿って表します。シーケンス図では人やシステム等のクラス間で行われる処理の流れやメッセージを表すことが出来ます。

コミュニケーション図
コミュニケーション図はクラス間の処理の流れやメッセージの流れをクラス間の関係性に焦点を当てて表します。

DFD(データフロー図)
DFDはUMLとは関係ありませんが、システムの構造を分かりやすく図式化したものです。DFDはデータの流れを表し、データがどこで発生し、どこで処理され、どこで使われるのかが一目で分かります。
DFDではこの4つの記号を使ってデータの流れを表します。

商品を受注してから出荷するまでの流れをDFDで表現してみましょう。
- 顧客から商品の注文が入る。
- 営業部が受注台帳に受注情報を登録する。
- 出荷担当者が受注台帳を基に在庫台帳から必要な量の在庫を差し引く。
- 出荷担当者が顧客に商品を出荷する。

基本情報技術者試験での出題例
サンプル問題問22、令和元年度秋期問25
基本情報技術者
科目A サンプル問題問22、午前試験 令和元年度秋期問25
UMLを用いて表した図の概念データモデルの解釈として,適切なものはどれか。

ア 従業員の総数と部署の総数は一致する。
イ 従業員は,同時に複数の部署に所属してもよい。
ウ 所属する従業員がいない部署の存在は許されない。
エ どの部署にも所属していない従業員が存在してもよい。
正解は”イ”
「1つ以上の部署」に「0人以上の従業員」が所属します。
●部署目線
0人以上の従業員が所属します。なので従業員が0人の部署があってもOKです。
●従業員目線
1つ以上の部署に所属します。なので従業員は複数の部署に所属出来ます。
よって答えはイです。
令和元年度秋期問45
基本情報技術者
午前試験 令和元年度秋期問45
図は構造化分析法で用いられるDFDの例である。図中の”○”が表しているものはどれか。

ア アクティビティ
ウ データフロー
イ データストア
エ プロセス
正解は”エ”
DFDの各記号の意味は下図の通りです。

平成31年度春期問46
基本情報技術者
午前試験 平成31年度春期問46
UMLにおける振る舞い図の説明のうち,アクティビティ図のものはどれか。
ア ある振る舞いから次の振る舞いへの制御の流れを表現する。
イ オブジェクト間の相互作用を時系列で表現する。
ウ システムが外部に提供する機能と,それを利用する者や外部システムとの関係を表現する。
エ 一つのオブジェクトの状態がイベントの発生や時間の経過とともにどのように変化するかを表現する。
正解は”ア”
アクティビティ図は、実行順序や条件分岐、並行処理などの制御の流れを表現します。
平成30年度秋期問26
基本情報技術者
午前試験 平成30年度秋期問26
UMLを用いて表した図のデータモデルのa,bに入れる多重度はどれか。
〔条件〕
(1) 部門には1人以上の社員が所属する。
(2) 社員はいずれか一つの部門に所属する。
(3) 社員が部門に所属した履歴を所属履歴として記録する。

正解は”エ”
●【 a 】について考える
部門には1人以上の社員が所属しています。所属履歴は在籍している社員の数分あるはずなので、aは1以上になります。
●【 b 】について考える
社員は部署異動することがあるので、1人の社員に対して複数の所属履歴が存在します。よって、bは1以上になります。
平成30年度秋期問46
基本情報技術者
午前試験 平成30年度秋期問46
UML2.0のシーケンス図とコミュニケーション図のどちらにも表現されるものはどれか。
ア イベントとオブジェクトの状態
イ オブジェクトがある状態にとどまる最短時間及び最長時間
ウ オブジェクトがメッセージを処理している期間
エ オブジェクト間で送受信されるメッセージ
正解は”エ”
シーケンス図とコミュニケーション図に共通して表現されるのはオブジェクト間のメッセージです。
平成30年度春期問64
基本情報技術者
午前試験 平成30年度春期問64
UMLをビジネスモデリングに用いる場合,ビジネスプロセスの実行順序や条件による分岐などのワークフローを表すことができる図はどれか。
ア アクティビティ図
ウ クラス図
イ オブジェクト図
エ コンポーネント図
正解は”ア”
アクティビティ図は、実行順序や条件分岐、並行処理などの制御の流れを表現します。
平成29年度秋期問28
基本情報技術者
午前試験 平成29年度秋期問28
UMLを用いて表した図のデータモデルの解釈のうち,適切なものはどれか。

ア 事業部以外の部門が,部門を管理できる。
イ 社員は事業部に所属できる。
ウ 所属する社員がいない部門が存在する。
エ 部門は,いずれかの事業部が管理している。
正解は”イ”
●部門と社員の関係
・部門には1人以上の社員が所属します。
・社員は1つの部門に所属します。
●部門と事業部の関係
・部門の中には事業部が存在します。(汎化-特化の関係)
・事業部は1つ以上の部門を管理します。
・部門は0以上1以下の事業部に管理されます。つまり、事業部に管理されていない部門もあります。
以上のことから、社員は部門に所属し、部門の中には事業部と呼ばれるものがありますので、社員は事業部に所属できると分かります。よって答えはイです。
平成29年度秋期問46
基本情報技術者
午前試験 平成29年度秋期問46
UML2.0において,オブジェクト間の相互作用を時系列に表す図はどれか。
ア アクティビティ図
ウ シーケンス図
イ コンポーネント図
エ 状態遷移図
正解は”ウ”
オブジェクト間の相互作用を時系列に沿って表現するのはシーケンス図です。
平成29年度春期問26
基本情報技術者
午前試験 平成29年度春期問26
図のデータモデルを三つの表で実装する。このとき,”A社への売上50,000円を,2017年4月4日に現金勘定に計上した”ことを記録する”移動”表のa,bの適切な組合せはどれか。ここで,モデルの表記にはUMLを用いる。

正解は”エ”
【一つの会計取引に関する「借方」金額の合計と「貸方」金額の合計は一致すること】とあるので、取引番号0122の借方金額と貸方金額は一致するはずです。今、移動表を見ると、取引番号0122には貸方しか存在しないので、bには「借方」が入ることが分かります。
また、現金勘定に計上したことを記録するので、借方の勘定コードはaは現金になります。