Amazon cover image
Image from Amazon.com
Image from Coce
Image from OpenLibrary

Structured techniques : the basis for CASE / James Martin, Carma McClure.

By: Contributor(s): Material type: TextTextPublication details: Englewood Cliffs, N.J. : Prentice Hall, c1988.Edition: Rev. edDescription: xxviii, 776 p. : ill. (some col.) ; 25 cmISBN:
  • 0138549362
Subject(s): DDC classification:
  • 005.1 MAR
Contents:
Table of Boxes xxiii (2) Preface xxv PART I PHILOSOPHY 3 (34) 1 Why Structured Techniques and CASE? 3 (12) Objectives 3 (5) Evolution 8 (3) Mathematical Rigor 11 (1) CASE: Computer-Aided Systems Engineering 12 (1) Important Characteristics 13 (1) Loyalty to Old Techniques 13 (2) 2 Philosophies of Structured Techniques 15 (22) Introduction 15 (1) Basic Principles 15 (5) Basic Principles of Software Engineering 20 (3) The Data-Base Environment 23 (1) Automation of Analysis, Design, and Coding 24 (2) Graphics 26 (1) Provably Correct Constructs 26 (1) Management of Complexity 27 (1) Changing Computer Languages 28 (1) End-User Involvement 28 (2) User-Friendly Structured Techniques 30 (1) The Design Process 30 (7) PART II PROGRAMMING METHODOLOGIES 37 (72) 3 Structured Programming 37 (8) The Shift to Software 37 (1) Introduction of Structured Programming 38 (1) GO TO-less Programming 38 (1) Objectives 39 (1) Definitions 39 (6) 4 Structured Programs 45 (22) Properties of a Structured Program 45 (1) Limited Control Constructs 45 (3) Nested IF 48 (1) Case Statement 49 (1) Escape 50 (1) Highest-Level Control Constructs 50 (1) Standardized Module Format 51 (1) Hierarchical Organization 51 (1) Program Control Structure 52 (1) Program Paths 53 (1) Documentation 54 (5) Indentation 59 (1) Structured Coding Standards 59 (8) 5 Modular Programming and Control of Complexity 67 (16) Divide and Conquer 67 (1) Program Modules 67 (1) Black Box Model 68 (1) Modularization Schemes 68 (2) Module Size 70 (1) Complexity Metrics 70 (5) Module Relationships 75 (5) Program Shape 80 (3) 6 Programming by Stepwise Refinement 83 (8) Changing Programming from Craft to Science 83 (1) Stepwise Refinement 83 (1) Levels of Abstraction 84 (1) An Example of the Refinement Process 85 (6) 7 Top-Down, Bottom-Up, and Structured Programming 91 (12) Structured Programming Methodologies 91 (1) Top-Down Programming 91 (4) Bottom-Up Versus Top-Down Programming 95 (1) Bottom-Up Programming 96 (2) Choosing a Development Approach 98 (1) Combinations 99 (4) 8 Commentary on Structured Programming Methodologies 103 (6) The Problem of Programming in the Large 103 (1) Program Complexity 103 (1) The Absence of Rigor 104 (1) Recommendation 105 (4) PART III DIAGRAMMING TECHNIQUES 109 (290) 9 Diagrams and Clear Thinking 109 (14) Introduction 109 (1) Changing Methods 110 (1) Categories of Structured Diagrams 111 (1) End-User Involvement 111 (6) Program Documentation Tools 117 (1) Utility of Documentation 118 (2) Computer-Aided Diagramming 120 (1) Functions of Structured Diagrams 120 (3) 10 Forms of Structured Diagrams 123 (26) Introduction 123 (1) Forms of Tree Structure 123 (2) Inhibition of Change 125 (1) Left-to-Right Trees 126 (5) Sequence of Operations 131 (1) Mesh-Structured Diagrams 131 (2) COW Charts 133 (1) Nested Charts 134 (4) Data-Model Charts 138 (3) Root Nodes 141 (1) Find the Trees 142 (3) Computer Magic 145 (1) Symbols with Obvious Meaning 145 (3) Summary 148 (1) 11 Data Flow Diagrams 149 (16) Introduction 149 (1) Defining Data Flow 149 (1) Components of a DFD 149 (3) Leveling a DFD 152 (2) Process Specification and Data Dictionary 154 (1) Gane and Sarson Notation 155 (3) Use of Computer Graphics 158 (5) Commentary 163 (1) Data Layering 164 (1) 12 Three Species of Functional Decomposition 165 (16) Introduction 165 (1) Levels of Thoroughness in Functional Decomposition 165 (1) Species I Functional Decomposition: Corporate Model 166 (4) Species II Functional Decomposition 170 (6) Species III Functional Decomposition 176 (1) Commentary 177 (4) 13 Structure Charts 181 (10) Hierarchical Diagram 181 (1) Components of a Structure Chart 181 (2) Control Relationships 183 (1) Common Modules 183 (1) Library Modules 184 (1) Data Transfer 184 (2) Sequence, Selection, and Iteration 186 (2) Transaction Center 188 (1) Computer Graphics 188 (3) 14 HIPO Diagrams 191 (6) Introduction 191 (1) Diagram Components 192 (2) Analysis and Design Tools 194 (1) Commentary 194 (3) 15 Warnier-Orr Diagrams 197 (10) Introduction 197 (1) Representation of Data 197 (2) Representation of Program Structure 199 (2) Critique of Warnier-Orr Diagrams 201 (6) 16 Michael Jackson Diagrams 207 (12) Introduction 207 (1) Tree-Structure Diagrams 207 (2) Data-Structure Diagrams 209 (2) Program-Structure Diagrams 211 (1) System Network Diagram 212 (1) From Data to Programs 213 (1) Critique of Jackson Diagrams 214 (5) 17 Flowcharts 219 (8) Overview Versus Detailed Structure 219 (1) Flowcharts 220 (2) Flowchart Symbols 222 (1) Critique of Flowcharts 222 (5) 18 Structured English and Pseudocode 227 (12) Introduction 227 (1) Why Should English Be Structured? 227 (1) Ambiguities 228 (1) Structured English 229 (1) Four Basic Structure Types 230 (2) Keywords from Fourth-Generation Languages 232 (1) Rules for Structured English 233 (1) Pseudocode 234 (1) Jackson's Structure Text 234 (3) Critique of Structured English 237 (2) 19 Nassi-Shneiderman Charts 239 (6) Introduction 239 (1) Control Constructs 240 (3) Critique of the Nassi-Schneiderman Chart 243 (2) 20 Action Diagrams 245 (30) Overview Versus Detailed Logic Diagramming 245 (1) Brackets 246 (1) Ultimate Decomposition 247 (1) Conditions 248 (2) Loops 250 (1) Sets of Data 250 (1) Subprocedures 251 (1) Subprocedures Not Yet Designed 251 (1) Common Procedures 251 (1) Terminations 252 (1) Fourth-Generation Languages 252 (1) Decomposition to Program Code 253 (1) Titles Versus Code Structure 254 (2) Concurrency 256 (2) Input and Output Data 258 (3) Advantages 261 (14) 21 Decision Trees and Decision Tables 275 (6) A Broadly Used Diagramming Technique 275 (1) Decision Tree 275 (1) Decision Table 276 (3) Decision Tree or Table? 279 (1) Using Decision Trees and Decision Tables 279 (1) Commentary 279 (2) 22 Data Analysis Diagrams 281 (16) Introduction 281 (1) Bubble Charts 281 (1) Associations Between Data Items 282 (1) One-to-One and One-to-Many Associations 283 (1) Types and Instances 284 (1) Reverse Associations 284 (2) Keys and Attributes 286 (1) Data-Item Groups 287 (1) Records 287 (1) Concatenated Keys 288 (2) Derived Data 290 (3) Optional Data Items 293 (4) 23 Entity-Relationship Diagrams 297 (28) Introduction 297 (1) Entities 297 (1) Entity Diagrams 298 (1) Concatenated Entity Type 299 (3) Labels and Sentences 302 (2) Subject and Predicate 304 (3) Basic Constructs 307 (1) Semantic Independence 307 (1) Inverted-L Diagrams 308 (2) Entity Subtypes 310 (1) Multiple Subtype Groupings 311 (1) Subtype Hierarchies 312 (2) Computer Representation of the Diagram 314 (1) Notation Styles 315 (10) 24 Data Navigation Diagrams 325 (14) Introduction 325 (1) Divide and Conquer 325 (1) Separating Data from Procedures 326 (1) Data Navigation Diagrams 327 (4) Procedure Design 331 (2) Physical Design 333 (1) Complexity 334 (1) Standard Procedure 335 (4) 25 Compound Data Accesses 339 (16) Introduction 339 (1) Relational Joins 340 (3) Automatic Navigation 343 (1) Simple Versus Compound Data-Base Accesses 343 (1) Intermixing Simple and Compound Actions 344 (3) Three-Way Joins 347 (1) Semantic Disintegrity 348 (2) Navigation Paths 350 (1) Fourth-Generation Languages 351 (4) 26 HOS Charts 355 (22) Introduction 355 (1) HOS 355 (1) Binary Trees 355 (2) Functions 357 (4) From Requirements Statements to Detailed Design 361 (1) Three Primitive Control Structures 361 (3) Control Maps 364 (1) Generation of Code 364 (1) Four Types of Leaf Nodes 364 (3) Static and Dynamic Testing of Programs 367 (1) Embellishments 367 (1) Other Control Structures 368 (2) Simplification 370 (1) User Functions Employed in a Defined Structure 370 (1) Extending the Power of HOS 370 (2) Discussion 372 (5) 27 A Consumer's Guide to Diagramming Techniques 377 (22) Introduction 377 (1) Criteria for Choice 378 (4) Data and Processes 382 (1) Data Flow Diagrams 382 (1) The Essential Trilogy 383 (1) Comprehensive Capabilities 383 (1) Ultimate Decomposition 384 (1) Drawing Speed 384 (2) Integrity Checking 386 (1) Code Generation 387 (1) User Friendliness 387 (1) Computer Graphics 388 (1) Summary of Properties 388 (6) Our Choice of Techniques 394 (1) Challenge 395 (4) PART IV ANALYSIS AND DESIGN 399 (118) 28 Structured Analysis and Design Techniques 399 (8) Software Analysis and Design 399 (1) The Desire to Skip Analysis 399 (1) Changing Requirements 399 (1) System Specification 400 (1) Poor Specification and Expensive Errors 400 (1) Importance of Analysis 401 (1) A Building Analogy 401 (1) Importance of Design 402 (1) A Systematic Design Approach 403 (1) Types of Software Design 403 (2) Structured Design Methodologies 405 (2) 29 Structured Analysis 407 (10) A Critical Step 407 (1) A Structured Discipline 407 (1) System Specification 408 (2) Data-Flow Diagram 410 (1) Data Dictionary 410 (1) Process Specification 411 (1) Steps of Structured Analysis 412 (2) Critique of Structured Analysis 414 (1) When to Use Structured Analysis 415 (2) 30 Top-Down Design 417 (6) Informal Design Strategy 417 (1) Design Process 417 (1) Decision Making 418 (1) Principles of Top-Down Design 419 (1) Documentation for Top-Down Design 419 (1) Top-Down Design of Data 419 (1) When to Use Top-Down Design 420 (3) 31 Structured Design 423 (18) Systematic Design Approach 423 (1) Structured Design: Step 1: Draw Data-Flow Diagram 424 (1) Step 2: Draw Structure Chart 424 (7) Step 3: Evaluate the Design 431 (4) Step 4: Prepare the Design for Implementation 435 (6) 32 An Evaluation of Structured Design 441 (14) Structured Design of the Credit Verification System 441 (1) Applying Transform Analysis 441 (2) Evaluating the Quality of the Design 443 (3) Critique of Structured Design 446 (1) Critique of Transform and Transaction Analysis 447 (4) Comparison with Top-Down Design 451 (1) Critique of Coupling and Cohesion 452 (1) Lack of Data Design 453 (2) 33 Jackson Design Methodology 455 (14) Jackson Design Versus Structured Design 455 (1) Data-Driven Program Design 455 (2) Example: Employee Skills System 457 (5) Designing Simple Programs 462 (2) Designing Complex Programs 464 (1) Structure Clash 465 (1) Program Inversion 466 (3) 34 An Evaluation of Jackson Design Methodology 469 (20) Constructive Design Method 469 (1) Designing the Subscription System 469 (6) Limitations of the Jackson Design Methodology 475 (3) Designing the Credit Verification System 478 (6) Summary 484 (5) 35 Warnier-Orr Design Methodology 489 (14) Background 489 (1) Set Theory 489 (1) Top-Down Approach 490 (1) Data-Driven Approach 491 (1) Design of the Employee Skills System 491 (12) 36 An Evaluation of the Warnier-Orr Design Methodology 503 (14) Input-Process-Output Model 503 (1) Objective of the Warnier-Orr Design Methodology 504 (1) Benefits of the Warnier-Orr Diagram 504 (2) Problems with the Warnier-Orr Diagram 506 (1) Bracketed Pseudocode 507 (1) Major Criticisms 507 (1) Design of the Subscription System 507 (1) Problems with Multiple Output Structures 508 (3) Incompatible Hierarchies 511 (1) Inadequate Input Design Guidelines 511 (1) Overemphasis on Output 511 (2) Recommendations 513 (4) PART V MORE AUTOMATED TECHNIQUES 517 (150) 37 A Higher Level of Automation 517 (16) Introduction 517 (1) Problems with Specifications 517 (1) Specification Languages 518 (1) Computer-Aided Specification Design 519 (1) Two Types of Languages 519 (1) Computable Specifications 520 (1) Automation of Design 521 (2) Integration of Definition Levels 523 (1) A Common Communication Vehicle 523 (1) Integrated Top-Down and Bottom-Up Design 524 (1) Mathematically Rigorous Languages 525 (1) User Friendliness 525 (1) Properties Needed 525 (1) Spectrum of Specification Languages 526 (7) 38 HOS Methodology 533 (24) Introduction 533 (1) USE IT 533 (2) JOIN, INCLUDE, and OR 535 (1) Generation of Code 535 (2) Four Types of Leaf Nodes 537 (1) Co-control Structures 538 (7) Local Variables 545 (1) N-way Branches 546 (1) Interactive Graphics Editor 546 (5) Simulation 551 (3) External Modules of Code 554 (1) Generation of Documentation 555 (2) 39 The Impact of Design Automation 557 (18) The Revolution 557 (1) Effect on Programming 557 (1) Effect on Specifications 558 (1) What Does "Provably Correct" Mean? 559 (1) Syntax and Semantics 559 (1) Internal and External Semantics 560 (1) Standards 561 (1) Verification and Testing 561 (1) Building Higher Levels of Trust 562 (1) Improvements in Productivity 562 (1) Cost Savings 563 (1) Effect of Program Size 564 (1) Error Statistics 565 (2) Human System Components 567 (1) Use of Other Front-End Methodologies 567 (2) Incorporation of Nonprocedural Languages 569 (1) Software Factories 569 (6) 40 Data-Base Planning 575 (10) Introduction 575 (1) Separate Developments with Incompatible Data 576 (2) Stable Foundation 578 (2) Stable Data Bases 580 (1) Logical Design of Data Bases 581 (1) The Failure of Data Administration 582 (3) 41 Third Normal Form 585 (20) Normalization of Data 585 (2) First Normal Form 587 (3) Functional Dependency 590 (1) Full Functional Dependency 591 (1) Second Normal Form 592 (2) Candidate Keys 594 (1) Third Normal Form 595 (1) Storage and Performance 596 (2) Semantic Disintegrity 598 (1) Clear Thinking About Data 598 (4) A Suggested Exercise 602 (1) An Example of Normalization 602 (3) 42 Automated Data Modeling 605 (26) Introduction 605 (1) The Synthesis Process 606 (1) Bubble Charts 607 (1) Synthesizing User Views 607 (1) Illustration of the Synthesis Process 607 (3) Levels of Primary Keys 610 (2) Canonical Data Structures 612 (1) Canonical Synthesis 613 (1) Elimination of Redundancies 614 (2) Candidate Keys 616 (1) Transitive Dependencies 617 (1) Concatenated Keys 618 (1) Intersection Data 619 (1) Many-to-Many Associations 620 (1) Mapping Between Primary Keys 620 (1) Intersecting Attributes 620 (3) Isolated Attributes 623 (1) Record Sequence 623 (1) Automating the Procedure 623 (1) Data Designer 624 (5) Conversion to HOS Notation 629 (2) 43 Computer-Aided Design 631 (20) Introduction 631 (1) Computerized Help in Design 632 (1) Developing a Data-Base Application 633 (7) Automatic Conversion 640 (3) Four Stages 643 (2) Logical and Physical Navigation Diagrams 645 (4) Physical Design 649 (1) Objectives of the Design Dialogue 649 (1) Variations 650 (1) 44 Information Engineering 651 (16) Introduction 651 (1) What Is Information Engineering? 652 (2) Building Blocks of Information Engineering 654 (7) Computerization of Information Engineering 661 (1) Essential Need for User Participation 661 (2) A House on the Sand 663 (1) Two Images 663 (4) PART VI VERIFICATION AND TESTING 667 (64) 45 Software Verification, Validation, and Testing 667 (8) The Case of the $18.5-Million Hyphen 667 (1) The Case of the Infinite Loop 667 (1) Demonstrating Software Correctness 667 (4) Verification and Validation Techniques 671 (4) 46 Testing 675 (14) The Testing Process 675 (1) Testing Heuristics 675 (3) Four-Phase Testing Procedure 678 (1) Unit Testing 679 (2) Integration Testing 681 (3) System Testing 684 (1) Acceptance Testing 685 (1) Test Data 685 (4) 47 Debugging 689 (12) The Case of the Missing Period 689 (1) The Difficulty of Debugging 689 (1) Debugging Methods 690 (1) Program Debugging Tools 691 (2) Locating Program Errors 693 (6) Predicting Error-Proneness 699 (2) 48 Automated Test Tools 701 (16) Test Tools 701 (1) General Research's RXVP 701 (5) Software Renovation Technology's RE-LEARN 706 (8) Software Environments 714 (1) Bell Labs' UNIX 715 (2) 49 An Evaluation of Verification Techniques 717 (14) Introduction 717 (1) Limitations of Testing 717 (1) Problems with Test Tools 718 (1) Lack of Theory 718 (1) Testing Fourth-Generation-Language Programs 719 (4) Improvement Through Formality 723 (1) Formal Proof-of-Correctness Techniques 724 (7) PART VII TOWARD AN ENGINEERING DISCIPLINE 731 (32) 50 Where Do Structured Techniques Go from Here? 731 (14) Patterns of Evolution 731 (1) Phases of Growth of Management Science 732 (2) Phases of Growth of Structured Techniques 734 (2) Shock 736 (2) Inadequacy 738 (1) The Automation of Automation 739 (1) Rigorous Specification 740 (1) Meat Machines 740 (1) Theoretical Principles 741 (1) Future Growth of Automated Methods 742 (3) 51 The Move Toward True Engineering 745 (12) Introduction 745 (1) Software Misengineering 745 (1) Characteristics of Engineering 746 (3) Power Tools 749 (3) Information Engineering 752 (1) Resistance to New Methods 753 (4) 52 Epilogue: The Future 757 (6) The Revolution: Its Causes and Outcome 757 (3) A Way to Think About Systems 760 (1) The Changing Computer Industry 760 (3) Index 763
Summary: The structured revolution has substantially changed systems analysis, design, and programming. There are many structured techniques, and in attending courses on the various techniques the authors discovered no survey/summary that represented the whole body of knowledge about structured techniques that analysts, designers, programmers, or DP managers should have at hand. This book addresses that body of knowledge, attempting to describe these techniques tutorially, put them into perspective, include those in common use, and present those that advance the system development methodology. This book emphasizes the philosophies of structured methodologies, compares and critiques techniques, and offers detailed tutorials of these techniques
Tags from this library: No tags from this library for this title.
Star ratings
    Average rating: 0.0 (0 votes)

Previously published as: Structured techniques for computing.

Includes bibliographies and index.

Table of Boxes
xxiii (2)
Preface xxv
PART I PHILOSOPHY 3 (34)
1 Why Structured Techniques and CASE?
3 (12)
Objectives
3 (5)
Evolution
8 (3)
Mathematical Rigor
11 (1)
CASE: Computer-Aided Systems Engineering
12 (1)
Important Characteristics
13 (1)
Loyalty to Old Techniques
13 (2)
2 Philosophies of Structured Techniques
15 (22)
Introduction
15 (1)
Basic Principles
15 (5)
Basic Principles of Software Engineering
20 (3)
The Data-Base Environment
23 (1)
Automation of Analysis, Design, and Coding
24 (2)
Graphics
26 (1)
Provably Correct Constructs
26 (1)
Management of Complexity
27 (1)
Changing Computer Languages
28 (1)
End-User Involvement
28 (2)
User-Friendly Structured Techniques
30 (1)
The Design Process
30 (7)
PART II PROGRAMMING METHODOLOGIES 37 (72)
3 Structured Programming
37 (8)
The Shift to Software
37 (1)
Introduction of Structured Programming
38 (1)
GO TO-less Programming
38 (1)
Objectives
39 (1)
Definitions
39 (6)
4 Structured Programs
45 (22)
Properties of a Structured Program
45 (1)
Limited Control Constructs
45 (3)
Nested IF
48 (1)
Case Statement
49 (1)
Escape
50 (1)
Highest-Level Control Constructs
50 (1)
Standardized Module Format
51 (1)
Hierarchical Organization
51 (1)
Program Control Structure
52 (1)
Program Paths
53 (1)
Documentation
54 (5)
Indentation
59 (1)
Structured Coding Standards
59 (8)
5 Modular Programming and Control of Complexity
67 (16)
Divide and Conquer
67 (1)
Program Modules
67 (1)
Black Box Model
68 (1)
Modularization Schemes
68 (2)
Module Size
70 (1)
Complexity Metrics
70 (5)
Module Relationships
75 (5)
Program Shape
80 (3)
6 Programming by Stepwise Refinement
83 (8)
Changing Programming from Craft to Science
83 (1)
Stepwise Refinement
83 (1)
Levels of Abstraction
84 (1)
An Example of the Refinement Process
85 (6)
7 Top-Down, Bottom-Up, and Structured Programming
91 (12)
Structured Programming Methodologies
91 (1)
Top-Down Programming
91 (4)
Bottom-Up Versus Top-Down Programming
95 (1)
Bottom-Up Programming
96 (2)
Choosing a Development Approach
98 (1)
Combinations
99 (4)
8 Commentary on Structured Programming Methodologies
103 (6)
The Problem of Programming in the Large
103 (1)
Program Complexity
103 (1)
The Absence of Rigor
104 (1)
Recommendation
105 (4)
PART III DIAGRAMMING TECHNIQUES 109 (290)
9 Diagrams and Clear Thinking
109 (14)
Introduction
109 (1)
Changing Methods
110 (1)
Categories of Structured Diagrams
111 (1)
End-User Involvement
111 (6)
Program Documentation Tools
117 (1)
Utility of Documentation
118 (2)
Computer-Aided Diagramming
120 (1)
Functions of Structured Diagrams
120 (3)
10 Forms of Structured Diagrams
123 (26)
Introduction
123 (1)
Forms of Tree Structure
123 (2)
Inhibition of Change
125 (1)
Left-to-Right Trees
126 (5)
Sequence of Operations
131 (1)
Mesh-Structured Diagrams
131 (2)
COW Charts
133 (1)
Nested Charts
134 (4)
Data-Model Charts
138 (3)
Root Nodes
141 (1)
Find the Trees
142 (3)
Computer Magic
145 (1)
Symbols with Obvious Meaning
145 (3)
Summary
148 (1)
11 Data Flow Diagrams
149 (16)
Introduction
149 (1)
Defining Data Flow
149 (1)
Components of a DFD
149 (3)
Leveling a DFD
152 (2)
Process Specification and Data Dictionary
154 (1)
Gane and Sarson Notation
155 (3)
Use of Computer Graphics
158 (5)
Commentary
163 (1)
Data Layering
164 (1)
12 Three Species of Functional Decomposition
165 (16)
Introduction
165 (1)
Levels of Thoroughness in Functional Decomposition
165 (1)
Species I Functional Decomposition: Corporate Model
166 (4)
Species II Functional Decomposition
170 (6)
Species III Functional Decomposition
176 (1)
Commentary
177 (4)
13 Structure Charts
181 (10)
Hierarchical Diagram
181 (1)
Components of a Structure Chart
181 (2)
Control Relationships
183 (1)
Common Modules
183 (1)
Library Modules
184 (1)
Data Transfer
184 (2)
Sequence, Selection, and Iteration
186 (2)
Transaction Center
188 (1)
Computer Graphics
188 (3)
14 HIPO Diagrams
191 (6)
Introduction
191 (1)
Diagram Components
192 (2)
Analysis and Design Tools
194 (1)
Commentary
194 (3)
15 Warnier-Orr Diagrams
197 (10)
Introduction
197 (1)
Representation of Data
197 (2)
Representation of Program Structure
199 (2)
Critique of Warnier-Orr Diagrams
201 (6)
16 Michael Jackson Diagrams
207 (12)
Introduction
207 (1)
Tree-Structure Diagrams
207 (2)
Data-Structure Diagrams
209 (2)
Program-Structure Diagrams
211 (1)
System Network Diagram
212 (1)
From Data to Programs
213 (1)
Critique of Jackson Diagrams
214 (5)
17 Flowcharts
219 (8)
Overview Versus Detailed Structure
219 (1)
Flowcharts
220 (2)
Flowchart Symbols
222 (1)
Critique of Flowcharts
222 (5)
18 Structured English and Pseudocode
227 (12)
Introduction
227 (1)
Why Should English Be Structured?
227 (1)
Ambiguities
228 (1)
Structured English
229 (1)
Four Basic Structure Types
230 (2)
Keywords from Fourth-Generation Languages
232 (1)
Rules for Structured English
233 (1)
Pseudocode
234 (1)
Jackson's Structure Text
234 (3)
Critique of Structured English
237 (2)
19 Nassi-Shneiderman Charts
239 (6)
Introduction
239 (1)
Control Constructs
240 (3)
Critique of the Nassi-Schneiderman Chart
243 (2)
20 Action Diagrams
245 (30)
Overview Versus Detailed Logic Diagramming
245 (1)
Brackets
246 (1)
Ultimate Decomposition
247 (1)
Conditions
248 (2)
Loops
250 (1)
Sets of Data
250 (1)
Subprocedures
251 (1)
Subprocedures Not Yet Designed
251 (1)
Common Procedures
251 (1)
Terminations
252 (1)
Fourth-Generation Languages
252 (1)
Decomposition to Program Code
253 (1)
Titles Versus Code Structure
254 (2)
Concurrency
256 (2)
Input and Output Data
258 (3)
Advantages
261 (14)
21 Decision Trees and Decision Tables
275 (6)
A Broadly Used Diagramming Technique
275 (1)
Decision Tree
275 (1)
Decision Table
276 (3)
Decision Tree or Table?
279 (1)
Using Decision Trees and Decision Tables
279 (1)
Commentary
279 (2)
22 Data Analysis Diagrams
281 (16)
Introduction
281 (1)
Bubble Charts
281 (1)
Associations Between Data Items
282 (1)
One-to-One and One-to-Many Associations
283 (1)
Types and Instances
284 (1)
Reverse Associations
284 (2)
Keys and Attributes
286 (1)
Data-Item Groups
287 (1)
Records
287 (1)
Concatenated Keys
288 (2)
Derived Data
290 (3)
Optional Data Items
293 (4)
23 Entity-Relationship Diagrams
297 (28)
Introduction
297 (1)
Entities
297 (1)
Entity Diagrams
298 (1)
Concatenated Entity Type
299 (3)
Labels and Sentences
302 (2)
Subject and Predicate
304 (3)
Basic Constructs
307 (1)
Semantic Independence
307 (1)
Inverted-L Diagrams
308 (2)
Entity Subtypes
310 (1)
Multiple Subtype Groupings
311 (1)
Subtype Hierarchies
312 (2)
Computer Representation of the Diagram
314 (1)
Notation Styles
315 (10)
24 Data Navigation Diagrams
325 (14)
Introduction
325 (1)
Divide and Conquer
325 (1)
Separating Data from Procedures
326 (1)
Data Navigation Diagrams
327 (4)
Procedure Design
331 (2)
Physical Design
333 (1)
Complexity
334 (1)
Standard Procedure
335 (4)
25 Compound Data Accesses
339 (16)
Introduction
339 (1)
Relational Joins
340 (3)
Automatic Navigation
343 (1)
Simple Versus Compound Data-Base Accesses
343 (1)
Intermixing Simple and Compound Actions
344 (3)
Three-Way Joins
347 (1)
Semantic Disintegrity
348 (2)
Navigation Paths
350 (1)
Fourth-Generation Languages
351 (4)
26 HOS Charts
355 (22)
Introduction
355 (1)
HOS
355 (1)
Binary Trees
355 (2)
Functions
357 (4)
From Requirements Statements to Detailed Design
361 (1)
Three Primitive Control Structures
361 (3)
Control Maps
364 (1)
Generation of Code
364 (1)
Four Types of Leaf Nodes
364 (3)
Static and Dynamic Testing of Programs
367 (1)
Embellishments
367 (1)
Other Control Structures
368 (2)
Simplification
370 (1)
User Functions Employed in a Defined Structure
370 (1)
Extending the Power of HOS
370 (2)
Discussion
372 (5)
27 A Consumer's Guide to Diagramming Techniques
377 (22)
Introduction
377 (1)
Criteria for Choice
378 (4)
Data and Processes
382 (1)
Data Flow Diagrams
382 (1)
The Essential Trilogy
383 (1)
Comprehensive Capabilities
383 (1)
Ultimate Decomposition
384 (1)
Drawing Speed
384 (2)
Integrity Checking
386 (1)
Code Generation
387 (1)
User Friendliness
387 (1)
Computer Graphics
388 (1)
Summary of Properties
388 (6)
Our Choice of Techniques
394 (1)
Challenge
395 (4)
PART IV ANALYSIS AND DESIGN 399 (118)
28 Structured Analysis and Design Techniques
399 (8)
Software Analysis and Design
399 (1)
The Desire to Skip Analysis
399 (1)
Changing Requirements
399 (1)
System Specification
400 (1)
Poor Specification and Expensive Errors
400 (1)
Importance of Analysis
401 (1)
A Building Analogy
401 (1)
Importance of Design
402 (1)
A Systematic Design Approach
403 (1)
Types of Software Design
403 (2)
Structured Design Methodologies
405 (2)
29 Structured Analysis
407 (10)
A Critical Step
407 (1)
A Structured Discipline
407 (1)
System Specification
408 (2)
Data-Flow Diagram
410 (1)
Data Dictionary
410 (1)
Process Specification
411 (1)
Steps of Structured Analysis
412 (2)
Critique of Structured Analysis
414 (1)
When to Use Structured Analysis
415 (2)
30 Top-Down Design
417 (6)
Informal Design Strategy
417 (1)
Design Process
417 (1)
Decision Making
418 (1)
Principles of Top-Down Design
419 (1)
Documentation for Top-Down Design
419 (1)
Top-Down Design of Data
419 (1)
When to Use Top-Down Design
420 (3)
31 Structured Design
423 (18)
Systematic Design Approach
423 (1)
Structured Design: Step 1: Draw Data-Flow Diagram
424 (1)
Step 2: Draw Structure Chart
424 (7)
Step 3: Evaluate the Design
431 (4)
Step 4: Prepare the Design for Implementation
435 (6)
32 An Evaluation of Structured Design
441 (14)
Structured Design of the Credit Verification System
441 (1)
Applying Transform Analysis
441 (2)
Evaluating the Quality of the Design
443 (3)
Critique of Structured Design
446 (1)
Critique of Transform and Transaction Analysis
447 (4)
Comparison with Top-Down Design
451 (1)
Critique of Coupling and Cohesion
452 (1)
Lack of Data Design
453 (2)
33 Jackson Design Methodology
455 (14)
Jackson Design Versus Structured Design
455 (1)
Data-Driven Program Design
455 (2)
Example: Employee Skills System
457 (5)
Designing Simple Programs
462 (2)
Designing Complex Programs
464 (1)
Structure Clash
465 (1)
Program Inversion
466 (3)
34 An Evaluation of Jackson Design Methodology
469 (20)
Constructive Design Method
469 (1)
Designing the Subscription System
469 (6)
Limitations of the Jackson Design Methodology
475 (3)
Designing the Credit Verification System
478 (6)
Summary
484 (5)
35 Warnier-Orr Design Methodology
489 (14)
Background
489 (1)
Set Theory
489 (1)
Top-Down Approach
490 (1)
Data-Driven Approach
491 (1)
Design of the Employee Skills System
491 (12)
36 An Evaluation of the Warnier-Orr Design Methodology
503 (14)
Input-Process-Output Model
503 (1)
Objective of the Warnier-Orr Design Methodology
504 (1)
Benefits of the Warnier-Orr Diagram
504 (2)
Problems with the Warnier-Orr Diagram
506 (1)
Bracketed Pseudocode
507 (1)
Major Criticisms
507 (1)
Design of the Subscription System
507 (1)
Problems with Multiple Output Structures
508 (3)
Incompatible Hierarchies
511 (1)
Inadequate Input Design Guidelines
511 (1)
Overemphasis on Output
511 (2)
Recommendations
513 (4)
PART V MORE AUTOMATED TECHNIQUES 517 (150)
37 A Higher Level of Automation
517 (16)
Introduction
517 (1)
Problems with Specifications
517 (1)
Specification Languages
518 (1)
Computer-Aided Specification Design
519 (1)
Two Types of Languages
519 (1)
Computable Specifications
520 (1)
Automation of Design
521 (2)
Integration of Definition Levels
523 (1)
A Common Communication Vehicle
523 (1)
Integrated Top-Down and Bottom-Up Design
524 (1)
Mathematically Rigorous Languages
525 (1)
User Friendliness
525 (1)
Properties Needed
525 (1)
Spectrum of Specification Languages
526 (7)
38 HOS Methodology
533 (24)
Introduction
533 (1)
USE IT
533 (2)
JOIN, INCLUDE, and OR
535 (1)
Generation of Code
535 (2)
Four Types of Leaf Nodes
537 (1)
Co-control Structures
538 (7)
Local Variables
545 (1)
N-way Branches
546 (1)
Interactive Graphics Editor
546 (5)
Simulation
551 (3)
External Modules of Code
554 (1)
Generation of Documentation
555 (2)
39 The Impact of Design Automation
557 (18)
The Revolution
557 (1)
Effect on Programming
557 (1)
Effect on Specifications
558 (1)
What Does "Provably Correct" Mean?
559 (1)
Syntax and Semantics
559 (1)
Internal and External Semantics
560 (1)
Standards
561 (1)
Verification and Testing
561 (1)
Building Higher Levels of Trust
562 (1)
Improvements in Productivity
562 (1)
Cost Savings
563 (1)
Effect of Program Size
564 (1)
Error Statistics
565 (2)
Human System Components
567 (1)
Use of Other Front-End Methodologies
567 (2)
Incorporation of Nonprocedural Languages
569 (1)
Software Factories
569 (6)
40 Data-Base Planning
575 (10)
Introduction
575 (1)
Separate Developments with Incompatible Data
576 (2)
Stable Foundation
578 (2)
Stable Data Bases
580 (1)
Logical Design of Data Bases
581 (1)
The Failure of Data Administration
582 (3)
41 Third Normal Form
585 (20)
Normalization of Data
585 (2)
First Normal Form
587 (3)
Functional Dependency
590 (1)
Full Functional Dependency
591 (1)
Second Normal Form
592 (2)
Candidate Keys
594 (1)
Third Normal Form
595 (1)
Storage and Performance
596 (2)
Semantic Disintegrity
598 (1)
Clear Thinking About Data
598 (4)
A Suggested Exercise
602 (1)
An Example of Normalization
602 (3)
42 Automated Data Modeling
605 (26)
Introduction
605 (1)
The Synthesis Process
606 (1)
Bubble Charts
607 (1)
Synthesizing User Views
607 (1)
Illustration of the Synthesis Process
607 (3)
Levels of Primary Keys
610 (2)
Canonical Data Structures
612 (1)
Canonical Synthesis
613 (1)
Elimination of Redundancies
614 (2)
Candidate Keys
616 (1)
Transitive Dependencies
617 (1)
Concatenated Keys
618 (1)
Intersection Data
619 (1)
Many-to-Many Associations
620 (1)
Mapping Between Primary Keys
620 (1)
Intersecting Attributes
620 (3)
Isolated Attributes
623 (1)
Record Sequence
623 (1)
Automating the Procedure
623 (1)
Data Designer
624 (5)
Conversion to HOS Notation
629 (2)
43 Computer-Aided Design
631 (20)
Introduction
631 (1)
Computerized Help in Design
632 (1)
Developing a Data-Base Application
633 (7)
Automatic Conversion
640 (3)
Four Stages
643 (2)
Logical and Physical Navigation Diagrams
645 (4)
Physical Design
649 (1)
Objectives of the Design Dialogue
649 (1)
Variations
650 (1)
44 Information Engineering
651 (16)
Introduction
651 (1)
What Is Information Engineering?
652 (2)
Building Blocks of Information Engineering
654 (7)
Computerization of Information Engineering
661 (1)
Essential Need for User Participation
661 (2)
A House on the Sand
663 (1)
Two Images
663 (4)
PART VI VERIFICATION AND TESTING 667 (64)
45 Software Verification, Validation, and Testing
667 (8)
The Case of the $18.5-Million Hyphen
667 (1)
The Case of the Infinite Loop
667 (1)
Demonstrating Software Correctness
667 (4)
Verification and Validation Techniques
671 (4)
46 Testing
675 (14)
The Testing Process
675 (1)
Testing Heuristics
675 (3)
Four-Phase Testing Procedure
678 (1)
Unit Testing
679 (2)
Integration Testing
681 (3)
System Testing
684 (1)
Acceptance Testing
685 (1)
Test Data
685 (4)
47 Debugging
689 (12)
The Case of the Missing Period
689 (1)
The Difficulty of Debugging
689 (1)
Debugging Methods
690 (1)
Program Debugging Tools
691 (2)
Locating Program Errors
693 (6)
Predicting Error-Proneness
699 (2)
48 Automated Test Tools
701 (16)
Test Tools
701 (1)
General Research's RXVP
701 (5)
Software Renovation Technology's RE-LEARN
706 (8)
Software Environments
714 (1)
Bell Labs' UNIX
715 (2)
49 An Evaluation of Verification Techniques
717 (14)
Introduction
717 (1)
Limitations of Testing
717 (1)
Problems with Test Tools
718 (1)
Lack of Theory
718 (1)
Testing Fourth-Generation-Language Programs
719 (4)
Improvement Through Formality
723 (1)
Formal Proof-of-Correctness Techniques
724 (7)
PART VII TOWARD AN ENGINEERING DISCIPLINE 731 (32)
50 Where Do Structured Techniques Go from Here?
731 (14)
Patterns of Evolution
731 (1)
Phases of Growth of Management Science
732 (2)
Phases of Growth of Structured Techniques
734 (2)
Shock
736 (2)
Inadequacy
738 (1)
The Automation of Automation
739 (1)
Rigorous Specification
740 (1)
Meat Machines
740 (1)
Theoretical Principles
741 (1)
Future Growth of Automated Methods
742 (3)
51 The Move Toward True Engineering
745 (12)
Introduction
745 (1)
Software Misengineering
745 (1)
Characteristics of Engineering
746 (3)
Power Tools
749 (3)
Information Engineering
752 (1)
Resistance to New Methods
753 (4)
52 Epilogue: The Future
757 (6)
The Revolution: Its Causes and Outcome
757 (3)
A Way to Think About Systems
760 (1)
The Changing Computer Industry
760 (3)
Index 763

The structured revolution has substantially changed systems analysis, design, and programming. There are many structured techniques, and in attending courses on the various techniques the authors discovered no survey/summary that represented the whole body of knowledge about structured techniques that analysts, designers, programmers, or DP managers should have at hand. This book addresses that body of knowledge, attempting to describe these techniques tutorially, put them into perspective, include those in common use, and present those that advance the system development methodology. This book emphasizes the philosophies of structured methodologies, compares and critiques techniques, and offers detailed tutorials of these techniques

eng

There are no comments on this title.

to post a comment.

Mzumbe University Library
©2022