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 |