structured analysis and system specification

r
STRUCTURED ANALYSIS
AND
SYSTEM SPECIFICATION
by
Tom DeMarco
Foreword by
P.J. Plauger
= 3 p
=fM
YOURDDN PRESS
P T R PRENTICE HALL
Englewood Cliffs, NJ 07632
CONTENTS
PAGE
PARTI: BASIC CONCEPTS
1. The Meaning of Structured Analysis
1.1
1.2
1.3
1.4
What is analysis?
Problems of analysis
The user-analyst relationship
What is Structured Analysis?
2. Conduct of the analysis phase
2.1
2.2
2.3
2.4
2.5
2.6
2.7
The classical project life cycle
The modern life cycle
The effect of Structured Analysis on the life cycle
Procedures of Structured Analysis
Characteristics of the Structured Specification
Political effects of Structured Analysis
Questions and answers
3. The Tools of Structured Analysis
3.1
3.2
3.3
3.4
3.5
3.6
A sample situation
A Data Flow Diagram example
A Data Dictionary example
A Structured English example
A Decision Table example
A Decision Tree example
3
4
9
14
15
19
19
22
25
27
31
32
35
37
37
38
42
43
44
44
PART 2: FUNCTIONAL DECOMPOSITION
4. Data Flow Diagrams
4.1
4.2
4.3
What is a Data Flow Diagram?
A Data Flow Diagram by any other name . . .
DFD characteristics — inversion of viewpoint
47
47
48
48
viii
CONTENTS
5. Data Flow Diagram conventions
5.1
5.2
5.3
51
Data Flow Diagram elements
Procedural annotation of DFD's
The Lump Law
51
61
62
6. Guidelines for drawing Data Flow Diagrams
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
Identifying net inputs and outputs
Filling in the DFD body
Labeling data flows
Labeling processes
Documenting the steady state
Omitting trivial error-handling details
Portraying data flow and not control
Starting over
7. Leveled Data Flow Diagrams
7.1
7.2
7.3
7.4
7.5
7.6
Top-down analysis — the concept of leveling
Elements of a leveled DFD set
Leveling conventions
Bottom-level considerations
Advantages of leveled Data Flow Diagrams
Answers to the leveled DFD Guessing Game
8. A Case Study in Structured Analysis
8.1
8.2
8.3
8.4
8.5
8.6
8.7
Background for the case study
Welcome to the project — context of analysis
The top level
Intermezzo: What's going on here?
The lower levels
Summary
Postscript
9. Evaluation and Refinement of Data Flow Diagrams
9.1
9.2
9.3
Tests for correctness
Tests for usefulness
Starting over
10. Data Flow Diagrams for System Specification
10.1
10.2
10.3
The man-machine dialogue
The integrated top-level approach
Problems and potential problems
63
flow
63
64
66
66
68
68
68
69
71
72
75
77
83
87
87
89
89
90
91
94
96
104
104
105
105
112
114
117
117
118
120
CONTENTS
ix
PART 3: DATA DICTIONARY
11. The analysis phase Data Dictionary
11.1
11.2
11.3
The uses of Data Dictionary
Correlating Data Dictionary to the DFD's
Implementation considerations
12. Definitions in the Data Dictionary
12.1
12.2
12.3
12.4
12.5
12.6
12.7
Characteristics of a definition
Definition conventions
Redundancy in DD definitions
Self-defining terms
Treatment of aliases
What's in a name?
Sample entries by class
13. Logical Data Structures
13.1
13.2
13.3
Data base considerations
Data Structure Diagrams (DSD's)
Uses of the Data Structure Diagram
14. Data Dictionary Implementation
14.1
14.2
14.3
14.4
14.5
Automated Data Dictionary
Manual Data Dictionary
Hybrid Data Dictionary
Librarian's role in Data Dictionary
Questions about Data Dictionary
125
126
127
127
129
129
133
137
139
142
143
144
149
150
152
155
157
157
162
162
163
164
PART 4: PROCESS SPECIFICATION
15. Description of Primitives
15.1
15.2
15.3
Specification goals
Classical specification writing methods
Alternative means of specification
16. Structured English
16.1
16.2
16.3
16.4
16.5
16.6
16.7
Definition of Structured English
An example
The logical constructs of Structured English
The vocabulary of Structured English
Structured English styles
The balance sheet on Structured English
Gaining user acceptance
169
169
177
177
179
179
180
184
202
203
210
212
CONTENTS
17. Alternatives for Process Specification
17.1
17.2
17.3
17.4
17.5
17.6
17.7
17.8
When to use a Decision Table
Getting started
Deriving the condition matrix
Combining Decision Tables and Structured English
Selling Decision Tables to the user
Decision Trees
A procedural note
Questions and answers
215
215
217
219
221
221
222
225
225
PART 5: SYSTEM MODELING
18. Use of System Models
229
Logical and physical DFD characteristics
Charter for Change
Deriving the Target Document
230
231
232
19. Building a Logical Model of the Current System
233
18.1
18.2
18.3
Use of expanded Data Flow Diagrams
Deriving logical file equivalents
Brute-force logical replacement
Logical DFD walkthroughs
235
238
254
256
20. Building a Logical Model of a Future System
257
19.1
19.2
19.3
19.4
20.1
20.2
20.3
The Domain of Change
Partitioning the Domain of Change
Testing the new logical specification
21. Physical Models
21.1
21.2
21.3
Establishing options
Adding configuration-dependent features
Selecting an option
22. Packaging the Structured Specification
22.1
22.2
22.3
22.4
Filling in deferred details
Presentation of key interfaces
A guide to the Structured Specification
Supplementary and supporting material
258
260
263
265
265
269
269
273
273
275
275
278
CONTENTS
PART 6: STRUCTURED ANALYSIS FOR A FUTURE SYSTEM
23. Looking Ahead to the Later Project Phases
23.1
23.2
23.3
Analyst roles during design and implementation
Bridging the gap from analysis to design
User roles during the later phases
24. Maintaining the Structured Specification
24.1
24.2
24.3
24.4
Goals for specification maintenance
The concept of the specification increment
Specification maintenance procedures
The myth of Change Control
25. Transition into the Design Phase
25.1
25.2
25.3
Goals for design
Structured Design
Implementing Structured Designs
26. Acceptance Testing
26.1
26.2
26.3
26.4
26.5
26.6
Derivation of normal path tests
Derivation of exception path tests
Transient state tests
Performance tests
Special tests
Test packaging
27. Heuristics for Estimating
27.1
27.2
27.3
The empirically derived estimate
Empirical productivity data
Estimating rules
283
283
284
285
287
287
289
292
294
297
297
302
323
325
326
328
330
330
331
331
333
334
335
336
GLOSSARY
341
BIBLIOGRAPHY
347
INDEX
349