Page 16 -
P. 16

CONTENTS                                                           xv

                              CHAPTER 13    DESIGN CONCEPTS AND PRINCIPLES       335
                                            13.1  Software Design and Software Engineering  336
                                            13.2  The Design Process  338
                                                  13.2.1   Design and Software Quality  338
                                                  13.2.2   The Evolution of Software Design  339
                                            13.3  Design Principles  340
                                            13.4  Design Concepts  341
                                                  13.4.1   Abstraction  342
                                                  13.4.2   Refinement  343
                                                  13.4.3   Modularity  343
                                                  13.4.4   Software Architecture  346
                                                  13.4.5   Control Hierarchy  347
                                                  13.4.6   Structural Partitioning  348
                                                  13.4.7   Data Structure  349
                                                  13.4.8   Software Procedure  351
                                                  13.4.9   Information Hiding  351
                                            13.5  Effective Modular Design  352
                                                  13.5.1   Functional Independence  352
                                                  13.5.2   Cohesion  353
                                                  13.5.3   Coupling  354
                                            13.6  Design Heuristics for Effective Modularity  355
                                            13.7  The Design Model  357
                                            13.8  Design Documentation  358
                                            13.9  Summary  359
                                            REFERENCES  359
                                            PROBLEMS AND POINTS TO PONDER  361
                                            FURTHER READINGS AND INFORMATION SOURCES  362
                              CHAPTER 14    ARCHITECTURAL DESIGN      365
                                            14.1  Software Architecture  366
                                                  14.1.1   What Is Architecture?  366
                                                  14.1.2   Why Is Architecture Important?  367
                                            14.2  Data Design  368
                                                  14.2.1   Data Modeling, Data Structures, Databases, and the Data
                                                           Warehouse  368
                                                  14.2.2   Data Design at the Component Level  369
                                            14.3           Architectural Styles  371
                                                  14.3.1   A Brief Taxonomy of Styles and Patterns  371
                                                  14.3.2   Organization and Refinement  374
                                            14.4  Analyzing Alternative Architectural Designs  375
                                                  14.4.1   An Architecture Trade-off Analysis Method  375
                                                  14.4.2   Quantitative Guidance for Architectural Design  376
                                                  14.4.3   Architectural Complexity  378
                                            14.5  Mapping Requirements into a Software Architecture  378
                                                  14.5.1   Transform Flow  379
                                                  14.5.2   Transaction Flow  380
                                            14.6  Transform Mapping  380
                                                  14.6.1   An Example  380
                                                  14.6.2   Design Steps  381
                                            14.7  Transaction Mapping  389
                                                  14.7.1   An Example  390
                                                  14.7.2   Design Steps  390
   11   12   13   14   15   16   17   18   19   20   21