Menu Expand
Software Design

Software Design

David Budgen

(2007)

Additional Information

Book Details

Abstract

Software Design provides a balanced view of the many and varied software design methodologies most widely used by practitioners.  By being aware of the strengths and limitations of each method, a student is better able to judge which to adopt when working in the field. The book is also valuable for software engineers and project managers who need an objective guide to the state of the art in this area.  The text provides a general overview of software design within the context of software development and also of more general thinking about design issues. It examines the nature of design activities, as well as their applications within software development.

Table of Contents

Section Title Page Action Price
Cover Cover
Software Design i
Contents v
Preface to the Second Edition ix
Preface to the First Edition xii
Publisher’s Acknowledgements xvi
Part 1 The Role of Software Design 1
The Nature of the Design Process 3
What is design? 4
The role of the design activity 14
Design as a problem-solving process 18
Design as a ‘wicked’ problem 19
The Software Design Process 25
What is software? 26
Building models 27
Transferring design knowledge 32
Constraints upon the design process and product 37
Recording design decisions 38
Designing with others 40
Design in the SoftwareDevelopment Process 45
A context for design 46
Linear development processes 50
Incremental development processes 51
Economic factors 55
The longer term 57
Design Qualities 63
The quality concept 64
Assessing design quality 65
Quality attributes of the design product 75
Assessing the design process 82
Part 2 Transferring Design Knowledge 87
Describing a Design Solution 89
Representing abstract ideas 90
Design viewpoints for software 94
Forms of notation 98
Transferring Design Knowledge 105
The need to share knowledge 106
The architecture concept 109
Design methods 118
Design patterns 120
A unified interpretation? 122
Some Design Representations 127
A problem of selection 128
Black box notations 129
White box notations 158
Developing a diagram 168
The Rationale for Method 175
What is a software design method? 176
The support that design methods provide 180
Why methods don’t work miracles 185
Problem domains and their influence 187
Design Processes and Design Strategies 193
The role of strategy in methods 194
Describing the design process – the D-Matrix 200
Design by top-down decomposition 205
Design by composition 207
Organizational influences upon design 209
Design Patterns 213
Design by template and design reuse 214
The design pattern 216
Designing with patterns 225
Patterns in the wider design context 227
Part 3 Design Practices 231
Stepwise Refinement 233
The historical role of stepwise refinement 234
Architectural consequences 235
Strengths and weaknesses of the stepwise strategy 237
Incremental Design 241
Black box to white box in stages 242
Prototyping 245
An example – DSDM 247
Structured Systems Analysis and Structured Design 257
Origins, development and philosophy 258
Representation forms for SSA/SD 259
The SSA/SD process 263
The role of heuristics in SSA/SD 273
Extended forms of SSA/SD 275
SSA/SD: an outline example 275
Jackson Structured Programming (JSP) 289
Some background to JSP 290
JSP representation forms 291
The JSP process 293
Some JSP heuristics 301
Jackson System Development (JSD) 315
The JSD model 316
JSD representation forms 318
The JSD process 322
JSD heuristics 336
Designing with Objects 341
The ‘object concept’ 342
Design practices for the object-oriented paradigm 356
Object-Oriented frameworks 367
Object-based design 371
Object-Oriented design 379
Component-Based Design 401
The component concept 402
Designing with components 408
Designing components 414
At the extremity – COTS 415
A Formal Approach to Design 419
The case for rigour 420
Model-based strategies 425
Property-based strategies 432
Whither Software Design? 441
What is software now? 442
Codifying design knowledge 444
Improving knowledge transfer 447
Bibliography 451
Index 461