Software Design Methodology

Book description

Software design methodology has come a long way since the 1960s and 1970s when programmers were limited to Pascal/C and SA/SD to create systems. When creating information systems for today's world, many factors must be taken into consideration including globalization, the software lifecycle, modeling, coding, testing, and maintenance.

* In depth coverage of large scale software systems and the handling of their design problems
* Many worked examples, exercises and case studies to reinforce theory and practice
* Gain an understanding of the general theory of design methodology

Table of contents

  1. Software Design Methodology
  2. Contents
  3. List of Figures
  4. List of Tables
  5. Preface
  6. 1. Basic Concepts of Design
    1. 1.1 INTRODUCTION
    2. 1.2 CHARACTERISTICS OF DESIGN ACTIVITIES
      1. 1.2.1 The input and start point of designs
      2. 1.2.2 The outcome and results of designs
      3. 1.2.3 Transformation of data
      4. 1.2.4 Generation of new ideas
      5. 1.2.5 Problem solving and decision making
      6. 1.2.6 Satisfying and discovering constraints
      7. 1.2.7 Evolution and optimisation in a solution space of diversity
    3. 1.3 ESSENTIAL ELEMENTS OF DESIGNS
      1. 1.3.1 Statement of design problem and objectives
      2. 1.3.2 Constraints
      3. 1.3.3 Description of product
      4. 1.3.4 Rationale
      5. 1.3.5 Plan of production
      6. 1.3.6 Description of usage
    4. 1.4 THE FACTORS THAT AFFECT DESIGNS (1/3)
    5. 1.4 THE FACTORS THAT AFFECT DESIGNS (2/3)
    6. 1.4 THE FACTORS THAT AFFECT DESIGNS (3/3)
  7. 2. Design Quality
    1. 2.1 SOFTWARE QUALITY MODELS
      1. 2.1.1 Hierarchical models
      2. 2.1.2 Relational models
    2. 2.2 THE EFFECT OF DESIGN ON SOFTWARE QUALITY
      1. 2.2.1 Efficiency
      2. 2.2.2 Correctness and reliability
      3. 2.2.3 Portability
      4. 2.2.4 Maintainability
      5. 2.2.5 Reusability
      6. 2.2.6 Interoperability
    3. 2.3 QUALITY ATTRIBUTES OF SOFTWARE DESIGN
      1. 2.3.1 Witt, Baker and Merritt’s design objectives
      2. 2.3.2 Parnas and Weiss’s requirements of good designs
      3. 2.3.3 Quality of development process (1/2)
      4. 2.3.3 Quality of development process (2/2)
  8. 3. Design Principles
    1. 3.1 BASIC RULES OF SOFTWARE DESIGN
      1. 3.1.1 Causes of difficulties
      2. 3.1.2 Vehicles to overcome difficulties
      3. 3.1.3 Basic rules of software design
    2. 3.2 DESIGN PROCESSES
      1. 3.2.1 The context of design in software development process
      2. 3.2.2 Generic design process: descriptive models
      3. 3.2.3 Design strategies: prescriptive models (1/2)
      4. 3.2.3 Design strategies: prescriptive models (2/2)
    3. 3.3 STRUCTURE OF SOFTWARE DESIGN METHODS (1/2)
    4. 3.3 STRUCTURE OF SOFTWARE DESIGN METHODS (2/2)
  9. 4. Software Architecture
    1. 4.1 THE NOTION OF ARCHITECTURE
      1. 4.1.1 Architecture in the discipline of buildings
      2. 4.1.2 Architecture in the discipline of computer hardware
      3. 4.1.3 The general notion of architecture
    2. 4.2 THE NOTION OF SOFTWARE ARCHITECTURE
      1. 4.2.1 Prescriptive models
      2. 4.2.2 Descriptive models
      3. 4.2.3 Multiple view models
      4. 4.2.4 The roles of architecture in software design
    3. 4.3 SOFTWARE ARCHITECTURAL STYLE
      1. 4.3.1 Introductory examples
      2. 4.3.2 The notion of software architectural style (1/2)
      3. 4.3.2 The notion of software architectural style (2/2)
  10. 5. Description of Software Architectures
    1. 5.1 THE VISUAL NOTATION
      1. 5.1.1 Active and passive elements
      2. 5.1.2 Data and control
      3. 5.1.3 Relationships
      4. 5.1.4 Decomposition/composition of architectural elements
    2. 5.2 EXAMPLE 1: WWW CLIENT-SERVER PAIR
    3. 5.3 EXAMPLE 2: ROBOT SOCCER UNSW
    4. 5.4 EXAMPLE 3: TRAINING CENTRES’ MANAGEMENT INFORMATION SYSTEM (1/3)
    5. 5.4 EXAMPLE 3: TRAINING CENTRES’ MANAGEMENT INFORMATION SYSTEM (2/3)
    6. 5.4 EXAMPLE 3: TRAINING CENTRES’ MANAGEMENT INFORMATION SYSTEM (3/3)
  11. 6. Typical Architectural Styles
    1. 6.1 DATA FLOW
      1. 6.1.1 The general data flow style
      2. 6.1.2 The pipe-and-filter sub-style
      3. 6.1.3 The batch sequential processing sub-style
    2. 6.2 INDEPENDENT COMPONENTS
      1. 6.2.1 The general independent components style
      2. 6.2.2 The event based implicit invocation systems sub-style
      3. 6.2.3 The communicating processes sub-style
    3. 6.3 CALL AND RETURN
      1. 6.3.1 The general call and return style
      2. 6.3.2 The layered systems sub-style
      3. 6.3.3 Data abstraction: the abstract data type and object-oriented sub-styles
    4. 6.4 DATA-CENTRED
    5. 6.5 VIRTUAL MACHINE (1/2)
    6. 6.5 VIRTUAL MACHINE (2/2)
  12. 7. Using Styles in Design
    1. 7.1 CHOICES OF STYLES
    2. 7.2 COMBINATIONS OF STYLES
      1. 7.2.1 Hierarchical heterogeneous styles
      2. 7.2.2 Simultaneously heterogeneous styles
      3. 7.2.3 Locationally heterogeneous styles
    3. 7.3 CASE STUDY: KEYWORD FREQUENCY VECTOR
      1. 7.3.1 Specification of the problem
      2. 7.3.2 Designs in various styles
      3. 7.3.3 Analysis and comparison (1/2)
      4. 7.3.3 Analysis and comparison (2/2)
  13. 8. Architectural Design Space
    1. 8.1 THEORY OF DESIGN SPACES
      1. 8.1.1 Structure of design spaces
      2. 8.1.2 Solving design synthesis and analysis problems
    2. 8.2 DESIGN SPACE OF ARCHITECTURAL ELEMENTS
      1. 8.2.1 Behaviour features
      2. 8.2.2 Static features (1/2)
      3. 8.2.2 Static features (2/2)
    3. 8.3 DESIGN SPACE OF ARCHITECTURAL STYLES
      1. 8.3.1 Characteristic features of architectural styles
      2. 8.3.2 Classification of styles (1/2)
      3. 8.3.2 Classification of styles (2/2)
  14. 9. Scenario-Based Analysis and Evaluation
    1. 9.1 THE CONCEPT OF SCENARIO
    2. 9.2 SCENARIOS FOR EVALUATING MODIFIABILITY
      1. 9.2.1 Changes of users’ functional requirements
      2. 9.2.2 Changes of hardware environment
      3. 9.2.3 Changes of software environment
      4. 9.2.4 Changes of software components
      5. 9.2.5 Evaluation of modifiability
    3. 9.3 SCENARIOS FOR EVALUATING PERFORMANCE
      1. 9.3.1 Specification of operational profiles
      2. 9.3.2 Evaluation and analysis of performance
    4. 9.4 SCENARIOS FOR EVALUATING REUSABILITY (1/2)
    5. 9.4 SCENARIOS FOR EVALUATING REUSABILITY (2/2)
  15. 10. Analysis and Evaluation of Modifiability: The SAAM Method
    1. 10.1 THE INPUT AND OUTPUT
    2. 10.2 THE PROCESS
      1. 10.2.1 Development of scenarios
      2. 10.2.2 Description of candidate architecture
      3. 10.2.3 Classification of scenarios
      4. 10.2.4 Scenario evaluation
      5. 10.2.5 Revealing scenario interaction
      6. 10.2.6 Overall evaluation
    3. 10.3 CASE STUDY: ANALYSING ARCHITECTURAL DESIGNS OF A KEYWORD FREQUENCY VECTOR EXTRACTION SYSTEM
      1. 10.3.1 Development of scenarios
      2. 10.3.2 Main program/subroutine with shared data architecture
      3. 10.3.3 Abstract data type architecture
      4. 10.3.4 Implicit invocation architecture
      5. 10.3.5 Pipe-and-filter architecture
      6. 10.3.6 Overall evaluation
  16. 11. Quality Trade-off Analysis: The ATAM Method
    1. 11.1 ATAM ANALYSIS PROCESS
    2. 11.2 ATAM ANALYSIS ACTIVITIES
      1. 11.2.1 Step 1: Present the ATAM
      2. 11.2.2 Step 2: Present the business drivers
      3. 11.2.3 Step 3: Present the architectural design
      4. 11.2.4 Step 4: Identify architectural design decisions1
      5. 11.2.5 Step 5: Generate the quality attribute utility tree
      6. 11.2.6 Step 6: Analyse the architectural design decisions (1/2)
      7. 11.2.6 Step 6: Analyse the architectural design decisions (2/2)
      8. 11.2.7 Step 7: Brainstorm and prioritise scenarios
      9. 11.2.8 Step 8: Analyse the architectural design decisions
      10. 11.2.9 Step 9: Present the results
  17. 12. Model-Based Analysis: The HASARD Method
    1. 12.1 REPRESENTATION OF QUALITY MODELS
    2. 12.2 CONSTRUCTION OF QUALITY MODELS
      1. 12.2.1 Hazard identification
      2. 12.2.2 Cause-consequence analysis
      3. 12.2.3 Assembling graphic model
      4. 12.2.4 Identification of quality concerns
    3. 12.3 DERIVATION OF QUALITY FEATURES
      1. 12.3.1 Contribution factors of a quality concern
      2. 12.3.2 Sensitive quality attributes of a component
      3. 12.3.3 Quality risks
      4. 12.3.4 Trade-off points
    4. 12.4 CASE STUDY: CLIENT-SERVER WEB SYSTEMS
      1. 12.4.1 Description of the architecture
      2. 12.4.2 Construction of quality model
      3. 12.4.3 Analysis of quality features
    5. SUMMARY
    6. FURTHER READING
    7. EXERCISES
    8. REFERENCES
  18. Index (1/2)
  19. Index (2/2)

Product information

  • Title: Software Design Methodology
  • Author(s): Hong Zhu
  • Release date: May 2005
  • Publisher(s): Butterworth-Heinemann
  • ISBN: 9780080454962