Guide to the Software Engineering Body of Knowledge ®

 

 

Back Table of Contents Next

 

TABLE OF CONTENTS - CHAPTER 3

 

ACRONYMS
INTRODUCTION
BREAKDOWN OF TOPICS FOR SOFTWARE DESIGN
1. Software Design Fundamentals
       1.1. General Design Concepts
      1.2. Context of Software Design
      1.3. Software Design Process
          1.3.1. Architectural design
          1.3.2. Detailed design
      1.4. Enabling Techniques
          1.4.1. Abstraction
          1.4.2. Coupling and cohesion
          1.4.3. Decomposition and modularization
          1.4.4. Encapsulation/information hiding
          1.4.5. Separation of interface and implementation
          1.4.6. Sufficiency, completeness and primitiveness
2. Key Issues in Software Design
      2.1. Concurrency
      2.2. Control and Handling of Events
      2.3. Distribution of Components
      2.4. Error and Exception Handling and Fault Tolerance
      2.5. Interaction and Presentation
      2.6. Data Persistence
3. Software Structure and Architecture
      3.1. Architectural Structures and Viewpoints
      3.2. Design Patterns (microarchitectural patterns)
      3.3. Families of Programs and Frameworks
4. Software Design Quality Analysis and Evaluation
      4.1. Quality Attributes
      4.2. Quality Analysis and Evaluation Techniques
      4.3. Measures
5. Software Design Notations
      5.1. Structural Descriptions (static view)
      5.2. Behavioral Descriptions (dynamic view)
6. Software Design Strategies and Methods
      6.1. General Strategies
      6.2. Function-Oriented (Structured) Design
      6.3. Object-Oriented Design
      6.4. Data-Structure-Centered Design
      6.5. Component-Based Design (CBD)
      6.6. Other Methods
MATRIX OF TOPICS VS. REFERENCE MATERIAL
RECOMMENDED REFERENCES FOR SOFTWARE DESIGN
APPENDIX A. LIST OF FURTHER READINGS
APPENDIX B. LIST OF STANDARDS