Web Analytics Made Easy - StatCounter

工業大学生ももやまのうさぎ塾

うさぎでもわかるをモットーに大学レベルの数学・情報科目をわかりやすく解説! 数式が読み込まれない場合は1回再読み込みしてみてください。

【基本情報対策】うさぎでもわかるソフトウェア工学 Part04 構造化分析とDFD(レシピをDFDで書いてみよう)

こんにちは、ももやまです。

いきなりですが構造化分析についての説明を軽くします。

 

構造化分析とは、システムを階層的に詳細化する分析手法で、要件定義の際に行われます。

構造化分析の方法には、

  • DFD(データフロー図)
  • データ辞書(データディクショナリ)
  • プロセス仕様書

などがありますが、今回はDFDを用いたデータフロー図による構造化分析について、うさぎでもわかるようわかりやすく説明していきたいと思います。

 

 

(レシピをDFDで書く話は2章なので、「レシピでDFDを書いたのが見たい!」という人は2章までスキップしましょう。)

 

前回のソフトウェアの記事はこちら!

(プロジェクトマネジメントに関するお話です)

www.momoyama-usagi.com

1.DFD(データフロー図)

(1) DFDとは

DFD (Data Flow Diagram) とは、名前の通りデータのフロー(流れ)をあらわした図です。

具体的には、システム内部のデータの流れ、データ入出力の関係をわかりやすく図示する方法です。

(2) DFDで用いられる4つの記号

DFDでは、以下の4つの記号が使われます。

どれも重要なので必ず頭にいれておきましょう。

f:id:momoyama1192:20200705010530g:plain

(3) DFDの使用例

ここからは、DFDの使用例を見ていきましょう。

 

例えば、ネット通販の業務内容は、以下のDFDで表せます。

f:id:momoyama1192:20200705010524g:plain

上の図では、

  • 顧客からの注文が入ると受注処理を行う
    (この際に顧客情報を確認する)
  • 受注後に受注内容と在庫情報から在庫を確認する
  • 在庫の確認が取れ次第*1、出荷指示を出し、出荷処理を出す
  • 出荷したら出荷データを保存する
  • 在庫の確認が取れたら、顧客に請求を行い、請求情報を保存する

の処理を行っていることを表していますが、日本語だと頭に入りにくいですよね。

 

このように、DFDなどの図を用いて表現することで、処理内容をよりわかりやすく表現、理解することができます。

 

2.レシピをDFDで書いてみよう

とは言ってもいきなり「業務の処理内容を書いてみました~」とか言われてもわからない人が多いとおもいます。

そこで、もっと身近なものとして調理手順(レシピ)をDFDで表してみることを考えましょう。

 

下にあるのが適当に考えた「鮭のクリームスパゲティ」のレシピです。

f:id:momoyama1192:20200705025041g:plain

上のDFDの内容(調理手順)を日本語で書くと、

  1. ほうれん草50gを切る
  2. スパゲティ100gと一緒に切ったほうれん草をゆでる*2
  3. ゆでたほうれん草を皿に載せる
  4. 皿に鮭フレーク50g、牛乳50g、マヨネーズ7g、塩3g、こしょう3gを加える*3
  5. 完成!

となっています。

 

ちなみにレシピはこちらのサイトを参考にさせていただきました。

(多少レシピを改良しています。)

saruwakakun.com

自分のHPからレシピを選べるちょっと斬新なサイトなので、DFDを書く練習や、今日の献立を考える際にでも見るといいかもしれません。

 

3.DFDを用いたモデル化の手順

(応用情報レベルなので、基本情報やITパスポートを受ける人は無視してもOKです。)

DFDを用いた構造化分析では、以下の4ステップを用いてモデル化を行います。

f:id:momoyama1192:20200705010535g:plain

順番が「物理→論理→論理→物理」とちょっと特殊なので、頭に入れる際に注意しましょう。

Step1. 現物理モデルの作成

まずは、現在の業務を分析し、ありのままにDFDで表現します。

Step2. 現論理モデルの作成

Step1で作ったDFDから、業務の無駄な部分をカットしていていくことで、現在の業務を最適化していきます。

Step3. 新論理モデルの作成

Step2で作った現論理モデルを踏まえて、新しいシステムに求められる要件を反映されたDFDを作成します。

Step4. 新物理モデルの作成

Step3で作ったDFDに、物理的な要件を反映させ、業務遂行のフローを作成します。

 

4.練習問題

では、5問ほど練習してみましょう。

ITパスポート、基本情報、応用情報の問題をすべて入れています。

練習1

DFDにおいて、データフローや処理(機能)以外に記述されるものだけを全て挙げたものはどれか。

[ITパスポート令和元年秋期 問9]

a. データの処理に要する時間
b. データの蓄積場所
c. データの発生源や出力先


ア:a,b
イ:a,b,c
ウ:b,c
エ:c

 

練習2

図は構造化分析法で用いられるDFDの例である。図中の ○ が表しているものはどれか。

f:id:momoyama1192:20200705025037g:plain

[基本情報技術者平成22年春期 午前問45]

ア:アクティビティ
イ:データストア
ウ:データフロー
エ:プロセス

 

練習3

DFD の説明はどれか。

[基本情報技術者平成19年春期 午前問43]

ア:業務などの処理手順を流れ図記号に用いて視覚的に表現したもの
イ:システムの状態がどのように推移していくかを視覚的に表現したもの
ウ:実体及び実体間の関連という概念を用いてデータの構造を視覚的に表現したもの
エ:適用業務をデータの流れに注目して視覚的に表現したもの

 

練習4

DFDにおけるデータストアの性質として、適切なものはどれか。

[応用情報技術者平成27年秋期 午前問46]

ア:最終的には開発されたシステムの物理ファイルとなる。
イ:データストア自体がデータを作成したり変更したりすることがある。
ウ:データストアに入ったデータが出て行くときはデータフロー以外のものを通ることがある。
エ:ほかのデータストアと直接にデータフローで結ばれることはなく処理が介在する。

 

練習5

新システムのモデル化を行う場合のDFD作成の手順として適切なものはどれか。

[応用情報技術者平成21年春期 午前問44]

ア:現物理モデル→現論理モデル→新物理モデル→新論理モデル
イ:現物理モデル→現論理モデル→新論理モデル→新物理モデル
ウ:現論理モデル→現物理モデル→新物理モデル→新論理モデル
エ:現論理モデル→現物理モデル→新論理モデル→新物理モデル

 

5.練習問題の答え

解答1

解答:ウ

DFDには、

  • データの発生源・行先を示す「データの源泉・吸収」(記号:□)
  • 処理内容を表す「プロセス」(記号:〇)
  • データを保存する場所を表す「データストア」(記号:=)
  • データの流れを示す「データフロー」(記号:→)

の4つがありました。

 

a, b, cそれぞれを見ていくと

a. データの処理に要する時間 → DFDにはない
b. データの蓄積場所 → データストアのこと
c. データの発生源や出力先 → データの源泉・吸収のこと

となるので、b, cが記述されている内容となります。

 

よって、答えはウです。

解答2

解答:エ

 

他の選択肢も確認しておきましょう。

ア:アクティビティ(DFDにはない。)
イ:データストア(=で表される。)
ウ:データフロー(→で表される。)

 

解答3

解答:エ

 

それぞれの選択肢を確認しておきましょう。

ア:業務などの処理手順を流れ図記号に用いて視覚的に表現したもの
→ フローチャート

イ:システムの状態がどのように推移していくかを視覚的に表現したもの
→ 状態遷移図

ウ:実体及び実体間の関連という概念を用いてデータの構造を視覚的に表現したもの
→ E-R図

エ:適用業務をデータの流れに注目して視覚的に表現したもの
→ DFD(正解)

 

解答4

解答:エ

データストアは、ファイルやデータベースの保存する場所を表すものでしたね。

それぞれの選択肢を見ていきましょう。

ア:最終的には開発されたシステムの物理ファイルとなる。

イ:データストア自体がデータを作成したり変更したりすることがある。
→ データの作成や変更はプロセス(〇のやつ)で行う。あくまでデータストアは保存場所。

ウ:データストアに入ったデータが出て行くときはデータフロー以外のものを通ることがある。
→ データの出入りでは、必ずデータフローを通ります。(でないとデータフローの意味がなくなる)

エ:ほかのデータストアと直接にデータフローで結ばれることはなく処理が介在する。
→ 正解。データフロー同士が結ばれることはない。必ずプロセスによってデータストアへのデータの出入りの処理が行われます。

 

解答5

解答:イ

現モデルでの順番は「物理→論理」になるのに対し、新モデルでの順番が「論理→順番」になる点に注意しましょう。

 

6.さいごに

今回は、構造化分析の方法の1つである「DFD」について少し詳しく説明していきました。

 

これから料理のレシピを考える際にはDFDに慣れるためにも、ぜひDFDを用いてレシピを書いてみましょう!

*1:万が一在庫がない場合は発注処理が必要だが今回は考えないことにする

*2:本当はアクを抜いたほうがいいのですが、DFDを表記する際には省略しています。

*3:「チーズ」もしくは「バター」を加えるのもいいかもしれません。