この記事ではUMLやDFDについてIT初心者にも分かりやすく解説します。
DFD
- DFDはデータの流れを図式化したもの。
UML
- UMLはシステムの構造を分かりやすく図式化したもの。
- クラス図はオブジェクト間の数の関係性を表した図。
- アクティビティ図は業務やプログラムの処理の流れを表した図。
- シーケンス図はオブジェクト間の処理やメッセージを時系列に沿って表した図。
- コミュニケーション図はオブジェクト間の処理やメッセージをオブジェクト間の関係性に焦点を当てて表した図。
基本情報ではUMLやDFDに関する問題が出題されます。是非最後までご覧ください。
システムの構造を分かりやすく記載する設計図
システムを設計する際、システム化の対象となる業務の流れやデータの流れを詳細にする必要があります。また、設計するシステムが要件を満たしているかどうかを確認するために、システムの構造も把握しなくてはいけません。
業務やデータの流れ、システムの構造を分かりやすく表現することで顧客・エンジニア含め様々な関係者の間で認識齟齬なくシステムの設計を進めることが出来ます。
ITの世界では業務やデータの流れ、システムの構造を分かりやすく表現するためのツールがよく使われます。ここでは基本情報に出題されるそれらのツールを紹介していきます。
DFD(データフロー図)
DFDはシステムにおけるデータの流れを表した図です。データがどこから発生して、どこで処理されて、どこで使われるのかが一目で分かります。
DFDではこの4つの記号を使ってデータの流れを表します。
商品を受注してから出荷するまでの流れをDFDで表現してみましょう。
①顧客から商品の注文が入る。
②営業部のAさんが受注台帳に受注情報を登録する。
③出荷担当者のBさんが受注台帳を基に在庫台帳から必要な量の在庫を差し引く。
④出荷担当者のBさんが顧客に商品を出荷する。
UML
UMLとはシステムの構造について分かりやすく記載した設計書のことです。UMLがあることで、開発者や関係者同士のコミュニケーションが円滑に進みます。どの組織の人が見ても理解できるようにOMGという組織が標準のUMLを定めています。用途によって様々なUMLがありますが、ここでは基本情報で出題されるUMLに限って紹介していきます。
クラス図 | オブジェクト間の数の関係性を表します |
---|---|
アクティビティ図 | 業務作業やプログラム処理の流れを表します |
シーケンス図 | オブジェクト間の処理やメッセージの流れを時系列に沿って表します |
コミュニケーション図 | オブジェクト間の処理やメッセージの流れをオブジェクト間の関係性に焦点を当てて表します |
クラス図
クラス図とはオブジェクト間の関係性を表したUMLです。オブジェクト=「もの」です
まず、クラス図ではオブジェクトを下図のように表します。
クラス名:オブジェクトの名称を表す
属性名 :オブジェクトが持つデータや性質を表す(省略可)
※他にも操作名を記す場合がありますが、基本情報では出ないので割愛します。
多重度の表現
クラス図ではオブジェクト間の数の関係性を下図のように表します。
この図では「1つの部署」に「1人以上の社員」が属するということが分かります。このようにオブジェクト間の数の関係性を表したものがクラス図です。このような数の関係性を多重度と言います。
多重度は下表のように記載します。
汎化-特化の表現
そもそも汎化とは複数のオブジェクトの共通の性質を抽出することで、特化は汎化の逆です。
クラス図では汎化-特化の関係も表現します。汎化-特化の関係は下図のように三角矢印で表現します。
この図から、1つの部署に1人以上の社員が所属して、社員には派遣社員と正社員がいると分かります。
アクティビティ図
アクティビティ図とは業務作業の流れやプログラムの処理の流れを表したUMLです。アクティビティ図では条件分岐や並行処理、実行順序などの制御の流れも表すことが出来ます。
シーケンス図
シーケンス図とはオブジェクト間の処理の流れやメッセージの流れを時系列に沿って表したUMLです。シーケンス図では人やシステム等のオブジェクト間で行われる処理の流れやメッセージを表すことが出来ます。
コミュニケーション図
コミュニケーション図とはオブジェクト間の処理の流れやメッセージの流れをオブジェクト間の関係性に焦点を当てて表したUMLです。
基本情報技術者試験での出題例
サンプル問題問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は現金になります。
基本情報に関する他の記事
ハードウェア | ソフトウェア | システム構成 |
ネットワーク | データベース | 開発手法 | 情報セキュリティ |
開発手法に関する記事
プログラムについての記事
【基本情報】午前試験のアルゴリズムの苦手意識を克服する!
【基本情報】関数?手続?再帰的?プログラムの性質を解説!
データ構造についての記事
【基本情報】スタックとキューってなに?どこで使われている?
【基本情報】2分探索木を完全に理解する!
【基本情報】ハッシュ法を完全に理解する!過去問と一緒に解説!
開発の流れについての記事
【基本情報】アジャイルを完全に理解する!過去問と一緒に解説!
【基本情報】UMLやDFDの全てをまとめて解説!
【基本情報】モジュール結合度について分かりやすく解説!
【基本情報】オブジェクト指向で出題されることをまとめた!
【基本情報】基本情報で出題されるテスト手法の全てを解説