44
Part II: 構造化設計手法と 設計の表現

Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

  • Upload
    vodat

  • View
    229

  • Download
    9

Embed Size (px)

Citation preview

Page 1: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

Part II: 構造化設計手法と設計の表現

Page 2: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

2. データフロー設計:データフロー図

データフロー図とは、以下の特徴を持つ設計言語である。

抽象設計に適用する。特に、プログラムの構造を設計するには、適切な言語である。)

構造化設計手法である。

データの流れを重視する。

データ駆動の設計。つまり、データがプログラムの操作の間にどのように流れていることを定義することによって、プログラムの設計を行う方法である。

Page 3: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

例えば、次の数式を計算するプロセスを

データフロー図で表現する:

(a + b) * (c + d) + f

Add1

Add2

Add3Multiply

a

b

c

d

fsum1

sum2

p res

Page 4: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

データフロー図の同意語 :

バブル図(Bubble chart)

DFD (Data Flow Diagram)

バブル図(Bubble diagram)

プロセスモデル(Process model)

機能モデル(Function model)

適用の応用領域:

操作がデータより重要であるシステムの設計に

有効である。

Page 5: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

紹介する内容:

DFDのコンポーネント

プロセス分解

階層的なDFDの構築の指針

Page 6: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

2.1 DFDのコンポーネント

DFDは四種類のコンポーネントを使用する。

プロセス(process)

データフロー又はデータの流れ(Data flow)

データストア(Data store)

ターミネーター(Terminator)

Page 7: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

2.1.1 プロセス

プロセスとは、入力により出力を生成する操作である。

プロセスの同意語:

バブル(Bubble)

機能(Function)

変換(Transformation)

操作(Operation)

Page 8: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

プロセスを図で表す:

例えば,

重要: データフローの変換を

表すプロセスは意味があるが、

データフローに連接して

いないプロセスが使われない。

Name

ArrangeLectures

RegisterProjects

Page 9: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

プロセス名の付け方。プロセス名は、次のように

作成できる。

動詞ー目的語の語句。

一定の機能を持つ組織の名前又は実体名。

重要: プロセス名は、そのプロセスの機能を示すべきである。

Page 10: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

2.1.2 データフロー

データフルーとは、データ項目の移動を表すもの

である。

データフローを図で表す。

ここで、aはそのデータフロー名である。

a

Page 11: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

データフロー名の付け方。データフローに次のよう

に名前を付ける。

名詞語句。

データの情報を示すべきである。

データフロー名は、一般に小文字英字で表す。

Page 12: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

データフローはプロセスと一緒に使われ、プロセス

のデータフローを転換する機能を表す。

DivideRecords

SortRecords

study-records

qualified-student-records

failed-student-records GiveRecommendations

sorted-records

records-with-recommendations

Page 13: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

データフローについての要点

データフローは、一種類の情報を表す。

データフローは、複合なデータ項目の表示ができる。

データフローは、方向を示す。

データフローは、分岐又は収束することができる。

Page 14: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

例えば,

分岐データフロー

FacultyOffice

UniversityStudentOffice

Professor

student-records

Page 15: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

収束データフロー

Provide

Student

Data

Provide

Professor

Data

Provide

Administrator

Data

Classify

Data

student

professor

administrator

classified-data

Page 16: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

データフローは、手続き的な情報を示していない。

例えば、次のDFDは、どういう意味を示して

いるのか。

P

a

b

c

d

e

Page 17: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

2.1.3 データストア

データストアは、動かない状態の一つ又は幾つか

のデータ項目を表す。

例えば, file, databaseは、データストアとして

使われる。

データストアを図で表す。二つの可能性がある。

(a) データストアに名前だけを挙げる。

(b) データストアに名前と番号を挙げる。

Page 18: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

name

n name

(a)

(b)

Page 19: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

データストアの使い方:

データストアについての要点:データフローを通じてプロセスに結ぶ。プロセスからデータストアへのデータフローは、更新の意味を表す。データストアからプロセスへのデータフローは、データストアの情報を読み込む意味を表す。

study-records

ProfessorFacultyOffice

students sorted-records

Page 20: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

データストアとプロセス間のデータフルーには、名前を付けるか、付けないかが構わない。

データストアは受動的である。

Page 21: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

2.1.4 ターミネーター

ターミネーターとは、プログラムシステムと交信する外部

の実体である。

例えば、人、組織、政府機関などは、ターミネーターと成れる。

ターミネーターを図で表す。

Name

Page 22: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

ターミネーターの事例:

ターミネーターが含まれるDFDは、文脈図(context

diagram)と呼ばれる。

Ministry of Education

University

Information

System

Parents

student-enrollment-data

enrollment-data

request-for-study-records

available-study-records

Page 23: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

ターミネーターについての要点:

ターミネーターは、設計されているプログラムの外部のものである。

設計者は、ターミネーターの内容や働き方などを変えることができない。

ターミネーターらの間の関係は、DFDに表されない。

Page 24: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

買い物のICカードシステムの事例

機能要求:

(1)ICカードを認識できる。

(2)ICカードを使うためにパースワードが必要。

(3)ICカードで買った物に対して支払い場合、直接に自分の銀行口座から引き出す。

(4)支払いの金額は、自分の銀行口座の残高より

大きい場合、支払いが出来ない。

Page 25: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

買い物のICカードシステムのトップレベルDFD

1Check IC card

2Authentication 4

Print outReceipt

3Pay from

Bank Account

IC_card

unacceptable_card

acceptable_card

password

acceptable_IC_cards

bank_accounts

wrong_pass

correct_pass

total_costlack_money_error

successful_pay

receipt

Page 26: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

Exercise 2.1

以下の機能を持つATMシステムの設計をDFDで表現

しなさい。“ATMシステムは、 Receive-Request, Check-Password, Withdraw,

およびShow-Balanceという四つのプロセスを使う。

プロセスReceive-Request は、「引き出す」又は「残高を見せる」という

命令を受け、その命令をプロセスWithdraw 又はShow-Balance へ送

る。

同時に、プロセスCheck-Password へも入力されたカードのIDと

password を検査する指示を送る。

Page 27: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

Check-Password からShow-Balance とWithdraw

にIDとpasswordが確認されたメセッジを送る。

Withdraw は、customer に引き出す金額を要請、

もしその金額が口座の残高より小さいなら、その金額の金を出力する。

皆プロセスからデータストアaccountsにアクセス

または更新する必要がある。

Show-Balanceは口座の残高を出力する。“

Page 28: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

2.2 プロセス分解

プロセス分解の必要性:

プロセスをDFDに分解することにより、そのプロ

セスがどのように自分の入力から出力への変換を行ったということがもっと詳しく理解できる。

一つのレベルのDFDの複雑度を減少させる。

並列的チームワークを支える。

Page 29: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

分解の事例: Personal Expenses Management System は、トップレベル

DFDである。

PersonPersonal Expenses

Management System

Output device

(screen, printer)

item-reg

single-item-d

total-exp

all-item-d

reg-confim

item-d

total-amount

items-table

Full names for data flows:

item-reg = item-registration

single-item-d = single-item-data

toatl-exp = toatl-expense

all-item-d = all-item-data

reg-confirm = registration-confirmation

item-d = item-data

total-amount = total-amount

items-table = items-table

Page 30: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

プロセスPersonal Expenses Management Systemの分解されたDFDは、次のスライドで表される。

Page 31: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

total-exp

all-item-d

shop-name

item-reg

single-item-d

Register Item

item-name

price

date

expenses-file

Output Confirmation

Message

com reg-confirm

Search Item Information

item-name Sort Items

items-list item-d

Compute Total

Expensetotal-amount

Obtain All Items Data

Make Item Table

all-items-list

items-table

23

5

6

7

8

9

Page 32: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

プロセスCompute Total Expense は、次のDFDに分解される。

Find All Related Items

total-exp

month

Calculate Total Expense

items-list total-amount

expenses-file

7.1 7.2

Page 33: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

2.3 階層的DFDを描くガイドライン

複雑なプログラムシステムは、階層的なDFDで

表すのが普通である。階層的なDFDを構築するに

は、ガイドラインがある。

次の階層的なDFDらを考えましょう。

Page 34: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

T1 T2

T3

TheSystem

a b

c

Figure 0 the context diagram

12

34

ad

e f

g

h

b

c

Figure 1 the decomposition of process The System

2.1 2.2

2.3

d

b

f

k

i

h

s

s

3.1 3.2

3.3

3.4

e

g

h

l

j

2.2.2

2.2.1

2.2.3

j

h

b

x

y

Figure 2 Figure 3

Figure 4

Page 35: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

ガイドライン

数字を用いて、プロセスと、それを分解したDFD

を結び。例えば, Figure 1 のプロセス 2 は、Figure 2 のDFD に分解された。そのため、Figure 2のプロセスらは、数字 2.1, 2.2, および2.3で表示する。

データストアにアクセスするプロセスが分解されたDFDにも、そのデータストアを適当に使う。例えば、プロセス3は、データストアs に書き込むことがある。この機能も分解されたDFDに反映されるはずである。

Page 36: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

階層的DFDを一般にトップーダウン設計により作成する。しかし、ある場合は、階層的DFDを“middle-out” という方法で構築する。この方法で

は、先ず設計者が一番分かっているまたは一番重要な部分からDFDを設計する。その後、プロセスの分解およびDFDの統合によって、全体の階層的なDFDを作成する。

一つのレベルのDFDの規模は、約六つのプロセスを含むのは普通である。

Page 37: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

階層的DFDには、構造の整合性を守ることが重要である。階層的DFDの構造の整合性によ

ると、プロセスの入力と出力データフローは、必ずそれを分解したDFDのプロセスに使われる。例えば、 Figure 0 のトップレベルプロセスThe System には、一つの入力データフロー a

および二つの出力データフロー bとcがある。

それらのデータフローは、そのプロセスを分解したDFDに使われている。

Page 38: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

買い物のICカードシステムの事例

機能要求:

(1)ICカードを認識できる。

(2)ICカードを使うためにパースワードが必要。

(3)ICカードで買った物に対して支払い場合、直接に自分の銀行口座から引き出す。

(4)支払いの金額は、自分の銀行口座の残高より

大きい場合、支払いが出来ない。

Page 39: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

買い物のICカードシステムのトップレベルDFD

1Check IC card

2Authentication 4

Print outReceipt

3Pay from

Bank Account

IC_card

unacceptable_card

acceptable_card

password

acceptable_IC_cards

bank_accounts

wrong_pass

correct_pass

total_costlack_money_error

successful_pay

receipt

Page 40: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

3.1Check the balance

total_cost

3.2Deal withPaymentpay_com

lack_money_error

bank_accounts

balance_updating

successful_pay

correct_pass

プロセスPay_from_Bank_Accountの分解

Page 41: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

Exercise 2.2

練習問題2.1に設計されたATMシステムの階層

的DFDを描きなさい。そのため、 “middle-out” アプ

ローチの利用を勧め。例えば、プロセスWithdrawを

二つのプロセスCheck-Amount と Dispense-Cashを

含むDFDに分解される。また、プロセスWithdrawを

含むDFDを一つの高いレベルのプロセスに抽象で

きる。

Page 42: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

Small project

階層的なDFDを用いて、「個人情報管理システム」

を設計しなさい。そのシステムは次の機能を提供

する。

個人費用の管理

個人授業データの管理

自分の情報によりその情報管理システムを設計し

なさい。

Page 43: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

(1)個人費用の管理

以下の具体的な機能を含む。

(1)買い物の情報と費用を登録、修正、および交換する。

(2)一つの物の情報を検索する。

(3)物別によって一か月の費用の状況を調べる。(例えば、交通、料理、衣服、書籍、電気、ガス、家賃など)

(4)収入を登録する。

(5)一か月の全ての費用の状況を表に作成して表示する。

Page 44: Part II: 構造化設計手法と 設計の表現cis.k.hosei.ac.jp/~sliu/PDLecture2_J.pdf以下の機能を持つATMシステムの設計をDFDで表現 しなさい。“ATMシステムは、Receive-Request,

(2)個人授業データの管理

以下の具体的な機能を含む。

(1)毎週の出席する授業を登録する。

(2)毎週の授業の時間割を表に作成して表示する。

(3)補講、停止する授業を登録する。

(4)一週間の中で、選択された日の授業を調べる。

(5)自分の今までの獲得した単位を調べる。

(6)教科書、参考書の情報を登録、更新、および交換する。

(7)習得した授業の評価情報を登録、検索、および修正する。