Software Design Methodology (eBook)
368 Seiten
Elsevier Science (Verlag)
978-0-08-045496-2 (ISBN)
Software Design Methodology explores the theory of software architecture, with particular emphasis on general design principles rather than specific methods. This book provides in depth coverage of large scale software systems and the handling of their design problems. It will help students gain an understanding of the general theory of design methodology, and especially in analysing and evaluating software architectural designs, through the use of case studies and examples, whilst broadening their knowledge of large-scale software systems.
This book shows how important factors, such as globalisation, modelling, coding, testing and maintenance, need to be addressed when creating a modern information system. Each chapter contains expected learning outcomes, a summary of key points and exercise questions to test knowledge and skills. Topics range from the basic concepts of design to software design quality; design strategies and processes; and software architectural styles. Theory and practice are reinforced with many worked examples and exercises, plus case studies on extraction of keyword vector from text; design space for user interface architecture; and document editor.
Software Design Methodology is intended for IT industry professionals as well as software engineering and computer science undergraduates and graduates on Msc conversion courses.
* 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
Software Design Methodology explores the theory of software architecture, with particular emphasis on general design principles rather than specific methods. This book provides in depth coverage of large scale software systems and the handling of their design problems. It will help students gain an understanding of the general theory of design methodology, and especially in analysing and evaluating software architectural designs, through the use of case studies and examples, whilst broadening their knowledge of large-scale software systems. This book shows how important factors, such as globalisation, modelling, coding, testing and maintenance, need to be addressed when creating a modern information system. Each chapter contains expected learning outcomes, a summary of key points and exercise questions to test knowledge and skills. Topics range from the basic concepts of design to software design quality; design strategies and processes; and software architectural styles. Theory and practice are reinforced with many worked examples and exercises, plus case studies on extraction of keyword vector from text; design space for user interface architecture; and document editor. Software Design Methodology is intended for IT industry professionals as well as software engineering and computer science undergraduates and graduates on Msc conversion courses. * 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
Software Design Methodology 2
Contents 6
List of Figures 11
List of Tables 14
Preface 15
1. Basic Concepts of Design 18
1.1 INTRODUCTION 19
1.2 CHARACTERISTICS OF DESIGN ACTIVITIES 21
1.2.1 The input and start point of designs 21
1.2.2 The outcome and results of designs 21
1.2.3 Transformation of data 22
1.2.4 Generation of new ideas 22
1.2.5 Problem solving and decision making 22
1.2.6 Satisfying and discovering constraints 23
1.2.7 Evolution and optimisation in a solution space of diversity 23
1.3 ESSENTIAL ELEMENTS OF DESIGNS 24
1.3.1 Statement of design problem and objectives 24
1.3.2 Constraints 28
1.3.3 Description of product 28
1.3.4 Rationale 30
1.3.5 Plan of production 31
1.3.6 Description of usage 32
1.4 THE FACTORS THAT AFFECT DESIGNS 33
2. Design Quality 44
2.1 SOFTWARE QUALITY MODELS 45
2.1.1 Hierarchical models 45
2.1.2 Relational models 46
2.2 THE EFFECT OF DESIGN ON SOFTWARE QUALITY 50
2.2.1 Efficiency 50
2.2.2 Correctness and reliability 52
2.2.3 Portability 52
2.2.4 Maintainability 53
2.2.5 Reusability 53
2.2.6 Interoperability 54
2.3 QUALITY ATTRIBUTES OF SOFTWARE DESIGN 56
2.3.1 Witt, Baker and Merritt’s design objectives 56
2.3.2 Parnas and Weiss’s requirements of good designs 57
2.3.3 Quality of development process 58
3. Design Principles 64
3.1 BASIC RULES OF SOFTWARE DESIGN 65
3.1.1 Causes of difficulties 65
3.1.2 Vehicles to overcome difficulties 68
3.1.3 Basic rules of software design 70
3.2 DESIGN PROCESSES 72
3.2.1 The context of design in software development process 72
3.2.2 Generic design process: descriptive models 75
3.2.3 Design strategies: prescriptive models 77
3.3 STRUCTURE OF SOFTWARE DESIGN METHODS 83
4. Software Architecture 90
4.1 THE NOTION OF ARCHITECTURE 91
4.1.1 Architecture in the discipline of buildings 91
4.1.2 Architecture in the discipline of computer hardware 94
4.1.3 The general notion of architecture 99
4.2 THE NOTION OF SOFTWARE ARCHITECTURE 101
4.2.1 Prescriptive models 102
4.2.2 Descriptive models 103
4.2.3 Multiple view models 104
4.2.4 The roles of architecture in software design 109
4.3 SOFTWARE ARCHITECTURAL STYLE 111
4.3.1 Introductory examples 111
4.3.2 The notion of software architectural style 118
5. Description of Software Architectures 128
5.1 THE VISUAL NOTATION 129
5.1.1 Active and passive elements 129
5.1.2 Data and control 130
5.1.3 Relationships 131
5.1.4 Decomposition/composition of architectural elements 132
5.2 EXAMPLE 1: WWW CLIENT-SERVER PAIR 134
5.3 EXAMPLE 2: ROBOT SOCCER UNSW 137
5.4 EXAMPLE 3: TRAINING CENTRES’ MANAGEMENT INFORMATION SYSTEM 140
6. Typical Architectural Styles 152
6.1 DATA FLOW 155
6.1.1 The general data flow style 155
6.1.2 The pipe-and-filter sub-style 158
6.1.3 The batch sequential processing sub-style 161
6.2 INDEPENDENT COMPONENTS 164
6.2.1 The general independent components style 164
6.2.2 The event based implicit invocation systems sub-style 166
6.2.3 The communicating processes sub-style 169
6.3 CALL AND RETURN 171
6.3.1 The general call and return style 171
6.3.2 The layered systems sub-style 175
6.3.3 Data abstraction: the abstract data type and object-oriented sub-styles 176
6.4 DATA-CENTRED 179
6.5 VIRTUAL MACHINE 181
7. Using Styles in Design 190
7.1 CHOICES OF STYLES 191
7.2 COMBINATIONS OF STYLES 196
7.2.1 Hierarchical heterogeneous styles 196
7.2.2 Simultaneously heterogeneous styles 197
7.2.3 Locationally heterogeneous styles 198
7.3 CASE STUDY: KEYWORD FREQUENCY VECTOR 201
7.3.1 Specification of the problem 201
7.3.2 Designs in various styles 202
7.3.3 Analysis and comparison 207
8. Architectural Design Space 216
8.1 THEORY OF DESIGN SPACES 217
8.1.1 Structure of design spaces 217
8.1.2 Solving design synthesis and analysis problems 220
8.2 DESIGN SPACE OF ARCHITECTURAL ELEMENTS 222
8.2.1 Behaviour features 222
8.2.2 Static features 227
8.3 DESIGN SPACE OF ARCHITECTURAL STYLES 233
8.3.1 Characteristic features of architectural styles 233
8.3.2 Classification of styles 235
9. Scenario-Based Analysis and Evaluation 242
9.1 THE CONCEPT OF SCENARIO 243
9.2 SCENARIOS FOR EVALUATING MODIFIABILITY 246
9.2.1 Changes of users’ functional requirements 246
9.2.2 Changes of hardware environment 248
9.2.3 Changes of software environment 249
9.2.4 Changes of software components 250
9.2.5 Evaluation of modifiability 251
9.3 SCENARIOS FOR EVALUATING PERFORMANCE 252
9.3.1 Specification of operational profiles 252
9.3.2 Evaluation and analysis of performance 254
9.4 SCENARIOS FOR EVALUATING REUSABILITY 258
10. Analysis and Evaluation of Modifiability: The SAAM Method 266
10.1 THE INPUT AND OUTPUT 267
10.2 THE PROCESS 269
10.2.1 Development of scenarios 271
10.2.2 Description of candidate architecture 272
10.2.3 Classification of scenarios 275
10.2.4 Scenario evaluation 275
10.2.5 Revealing scenario interaction 276
10.2.6 Overall evaluation 278
10.3 CASE STUDY: ANALYSING ARCHITECTURAL DESIGNS OF A KEYWORD FREQUENCY VECTOR EXTRACTION SYSTEM 280
10.3.1 Development of scenarios 280
10.3.2 Main program/subroutine with shared data architecture 280
10.3.3 Abstract data type architecture 284
10.3.4 Implicit invocation architecture 285
10.3.5 Pipe-and-filter architecture 287
10.3.6 Overall evaluation 289
11. Quality Trade-off Analysis: The ATAM Method 294
11.1 ATAM ANALYSIS PROCESS 296
11.2 ATAM ANALYSIS ACTIVITIES 300
11.2.1 Step 1: Present the ATAM 300
11.2.2 Step 2: Present the business drivers 300
11.2.3 Step 3: Present the architectural design 300
11.2.4 Step 4: Identify architectural design decisions1 301
11.2.5 Step 5: Generate the quality attribute utility tree 301
11.2.6 Step 6: Analyse the architectural design decisions 302
11.2.7 Step 7: Brainstorm and prioritise scenarios 308
11.2.8 Step 8: Analyse the architectural design decisions 310
11.2.9 Step 9: Present the results 310
12. Model-Based Analysis: The HASARD Method 316
12.1 REPRESENTATION OF QUALITY MODELS 318
12.2 CONSTRUCTION OF QUALITY MODELS 323
12.2.1 Hazard identification 324
12.2.2 Cause-consequence analysis 327
12.2.3 Assembling graphic model 331
12.2.4 Identification of quality concerns 332
12.3 DERIVATION OF QUALITY FEATURES 334
12.3.1 Contribution factors of a quality concern 334
12.3.2 Sensitive quality attributes of a component 335
12.3.3 Quality risks 337
12.3.4 Trade-off points 338
12.4 CASE STUDY: CLIENT-SERVER WEB SYSTEMS 339
12.4.1 Description of the architecture 339
12.4.2 Construction of quality model 340
12.4.3 Analysis of quality features 345
SUMMARY 347
FURTHER READING 347
EXERCISES 347
REFERENCES 350
Index 352
| Erscheint lt. Verlag | 22.3.2005 |
|---|---|
| Sprache | englisch |
| Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
| Mathematik / Informatik ► Informatik ► Software Entwicklung | |
| ISBN-10 | 0-08-045496-8 / 0080454968 |
| ISBN-13 | 978-0-08-045496-2 / 9780080454962 |
| Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
| Haben Sie eine Frage zum Produkt? |
Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich