Sunteți pe pagina 1din 10

Span of Control

CEO VP Finance Finance Dept. VP Marketing Marketing Dept. VP Acctg Acctg Dept. VP Mfg. Plant Operations VP IS

Excess Span of Control


CEO COO

CFO

CIO

VP Finance
Finance Dept.

VP Acctg
Acctg Dept.

IS Director IS Dept.

VP Marketing
Marketing Dept.

VP Mfg.
Plant Operations

Hierarchical Span of Control

Module Fan-Out
1.0 Payroll Program

1.1 Get Payroll Record

1.2 Edit Payroll Record

1.3 Calculate Gross Pay

1.4 Calculate Deductions

1.5 Calculate Net Pay

1.6 Generate Paycheck

1.7 Update Payroll Record

High Fan-Out
1.0 Payroll Program

1.1 Get Payroll Record

1.2 Calculate Employee Pay

1.3 Generate Paycheck

1.4 Update Payroll Record

1.1.1 Edit Payroll Record

1.4.1 Print Payroll Report

1.4.2 Append Payroll File

1.2.1 Calculate Gross Pay

1.2.2 Calculate Taxes

1.2.3 Calculate Deductions

1.2.4 Calculate Net Pay

Low Fan-Out

DFD vs. Hierarchical Structure Diagram


(a)
1.0 READ INPUT DATA INPUT STREAM 2.0 EDIT INPUT DATA 3.0 PROCESS DATA 4.0 FORMAT OUTPUT 5.0 DISPLAY OUTPUT

CENTRAL TRANSFORM

OUTPUT STREAM

(b)
THE

INPUT STREAM
INPUT INPUT

SYSTEM
OUTPUT OUTPUT

OUTPUT STREAM

GET INPUT DATA


RAW DATA RAW DATA EDIT FLAG

PROCESS DATA
OUTPUT

GENERATE OUTPUT
FORMATTED OUTPUT

FORMATTED OUTPUT

READ INPUT DATA

EDIT INPUT DATA

FORMAT OUTPUT

DISPLAY OUTPUT

Conversion to HSD
(a)
A
DATA STORE

2.0
PROCESS

1.0 SOURCE
PROCESS

SINK

3.0
PROCESS

C B DATA STORE

DATA STORE

(b)
A DATA STORE 1.0
PROCESS

3.0
PROCESS

C 4.0
PROCESS

SINK

SOURCE
2.0
PROCESS

B DATA STORE

DATA STORE

Adding Data Access and Maintenance Processes to DFD


(a)
A DATA STORE 1.0 PROCESS SOURCE Updated Data New Data Deleted Data B C DATA STORE DATA STORE

DATA STORE

(b)

1.0 READ DATA A DATA STORE

3.0 ADD NEW DATA

DATA STORE

SOURCE

2.0 PROCESS

4.0 DELETE DATA 5.0 UPDATE DATA

DATA STORE

DC

DATA STORE

Afferent, Transform and Efferent Processes


1.0 4.0 8.0

PROCESS
2.0

PROCESS
5.0 7.0

PROCESS
10.0

PROCESS

PROCESS

PROCESS

PROCESS

3.0

6.0

9.0

PROCESS

PROCESS

PROCESS

Afferent

Transform
MAIN CONTROL

Efferent

AFFERENT

TRANSFORM

EFFERENT

1.0

2.0

3.0

4.0

5.0

6.0

7.0

8.0

9.0

10.0

First Draft Structure Diagram


(a)
1.0

Level 0

PROCESS CLIENT ORDER

1.1

1.2

1.3
PRODUCE

1.4

Level 1

INPUT CLIENT DATA

PROCESS ORDER RECORD

WHSE. REQUEST

SEND CLIENT CONFIRM

afferent
(b)

transform

efferent

PROCESS CLIENT ORDER

Order detail Client data

Client data

Order header Order detail

Client data

Order detail

Shipping info

INPUT CLIENT DATA

PROCESS ORDER RECORD

PRODUCE WHSE.
REQUEST

SEND CLIENT CONFIRM

Detailed Structure Diagram


PROCESS CLIENT ORDER
Client data Order header Order detail Client data Order detail Order detail Client data Shipping info

INPUT CLIENT DATA


Client data

PROCESS ORDER RECORD

PRODUCE WHSE. REQUEST


Product ID Order detail

SEND CLIENT CONFIRM


Client data

Client data

Order detail

GET CLIENT DATA

CREATE CLIENT RECORD

GET ORDER DATA Valid flag Product ID CHECK IN-STOCK LEVEL

PROCESS ORDERED ITEM

CREATE PICK LIST Product detail

CREATE SHIPPING LABEL

Product detail GET PRODUCT RECORD

CREATE ITEM DETAIL

Transaction Analysis Approach


3.0 C 1.0 2.0

PROCESS

E 5.0 6.0 H

PROCESS

PROCESS
D 4.0 F

PROCESS

PROCESS

PROCESS

Transaction Center

THE SYSTEM
B B G G

GET B
A A B

TRANSACTION CENTER (MAKE B INTO G)


D B E C C D F E F G G

OUTPUT G
H H

GET A

PROCESS 1.0 PROCESS 2.0

PROCESS 6.0 PROCESS 5.0

PUT H

PROCESS 3.0

PROCESS 4.0

System Design Guidelines


Design Guideline Factor Explanation The system should be factored, or decomposed, into small modules which conform to both the size and cohesion guidelines of good design. No parent module should be given control over more than 5 to 7 child, or subordinate, modules. The extent to which modules are dependent on each other should be minimized such that the amount of communication between dependent modules is also minimized. Ideally, module communication should occur only via passed data elements and informational flags. A reasonable size for a single module is considered to be between 50 and 100 lines of executable code. The instructions contained within a module should pertain only to that function. This suggests that a well-factored module should be describable in a few simple words with no and or or in the module name.

Span of Control

Coupling

Size

Cohesion

Shared Use

Wherever possible, a child module should be called by multiple parent modules.

S-ar putea să vă placă și