|
Acknowledgments
Foreword
Introduction
1 Maintenance Problems
1.1 Psychological Objections
1.2 Technical Issues
1.3 Summary
Questions for Discussion
2. Good Programs
2.1 Existing Software
2.2 Structured Programs
2.3 Good Programs: A Definition
2.4 Unstructured Programs
2.4.1 Bad Programs
2.4.2 GOTOless Programs Example
2.5 Summary
Questions for Discussion
3. Improving Program Maintainability
3.1 Maintenance Factors
3.1.1 Use Meaningful Names
3.1.2 Improve the Organization
3.1.3 Improve the Documentation
3.1.4 Redesign the Program
3.1.5 Reorganize the Data in the Data Base
3.1.6 Revise System Requirements and Organization
Plans
3.2 Summary
Questions for Discussion
4. Program Design
4.1 Fundamental Concepts
4.2 Mappings
4.2.1 Logical Mapping
4.2.2 Physical Mappings
4.3 Summary
Questions for Discussion
5. Logical Design
5.1 Creating the Logical Output Structure
5.2 Developing the Logical Data Structure
5.3 Creating the Logical Output Mapping
5.4 Summary
Questions for Discussion
6. Physical Design
6.1 Determining Physical Consideration
6.2 Developing the Augmented LOM
6.3 Manipulating Control Data
6.4 Developing the Physical Output Mapping
6.5 Developing the Physical Input Mapping
6.6 Summary
Questions for Discussion
7. Maintaining Good Designs
7.1 Understanding Program Entropy
7.2 Updating Program Design Documentation
7.3 Organizing the Documentation Package
7.3.1 Introduction
7.3.2 Output Definition
7.3.3 Logical Design
7.3.4 Physical Design
7.4 Documenting Complex Output's
7.5 Motivating Maintainers to Update Documentation
7.6 Summary
Questions for Discussion
8. Program Repair
8.1 Aspects of Maintainability
8.2 Repairing Existing Programs
8.3 Limitations of the Method
8.4 Summary
Questions for Discussion
9. Modifying Traditional Programs
9.1 Program Redesign
9.2 Sources for Program Requirements
9.2.1 Program's Output
9.2.2 Program's Input
9.2.3 Former Programmers and Users
9.2.4 Existing Documentation and Regulations
9.2.5 Source Code
9.3 Improved Modifiability from Requirements
9.4 Summary
Questions for Discussion
10. Program Enhancement: Part One
10.1 Adding an Output
10.1.1 Evaluating the Design
10.1.2 Modifying the Code
10.2 Summary
Questions for Discussion
11. Program Enhancement: Part Two
11.1 Modifying the Data Content
11.2 Developing the Logical Redesign
11.3 Reorganizing the Existing Program
11.4 Creating the New Physical Design
11.5 Summary
Questions for Discussion
12. Maintaining Large Programs
12.1 Applying DSPD to Large Programs
12.2 The Evolution of Large Programs
12.3 Similarity of Large Programs to DP Systems
12.4 Timing
12.5 Summary
Questions for Discussion
13. Getting Started
13.1 Structured Maintenance
13.2 Expected Problem Areas
13.3 Productivity and New Technology
13.4 Tooling Up
13.5 Summary
Questions for Discussion
Appendix A Warnier/Orr Diagrams
Hierarchy
Sequence
Repetition
Alternation
Concurrency
Recursion
Appendix B Coding Warnier/Orr Designs
Coding Conventions
Coding Constructs
Sample Program
Summary
Bibliography
Index
Back to the Book Page
|