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
© Copyright 2026 Paperzz