Structured techniques : the basis for CASE / James Martin, Carma McClure.
Material type:
- 0138549362
- 005.1 MAR
Item type | Current library | Call number | Copy number | Status | Date due | Barcode | Item holds | |
---|---|---|---|---|---|---|---|---|
Book | Mzumbe University Main Campus Library | 005.1 MAR (Browse shelf(Opens below)) | 1 | Available | 0079494 |
Browsing Mzumbe University Main Campus Library shelves Close shelf browser (Hides shelf browser)
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.