Creating Solutions for Ill-Structured Problems
- Available for pre-order. Item will ship after December 17, 2020
Software Design provides a balanced view of the many and varied software design practices used by practitioners. The book provides a general overview of software design within the context of software development and also in terms of more general thinking about design as a means of addressing ill-structured problems. The third edition has been expanded and reorganised to focus on the structure and process aspects of software design, including architectural issues, as well as design notations and models. It also describes a variety of different ways of creating design solutions such as plan-driven development, agile approaches, patterns, product lines, and other forms.
•Includes an overview and review of representation forms used for modelling design solutions
•Provides a concise review of design practices and how these relate to ideas about software architecture
•Uses an evidence-informed basis for discussing design concepts and when their use is appropriate
This book is suitable for undergraduate and graduate students in courses on software engineering and software design, as well as software engineers.
Table of Contents
1. What is Designing about? 2. Doing Design 3. Managing the Design Process 4. Design Knowledge 5. Empirical Knowledge about Software Design 6. Software Architecture 7. Modelling Software Properties 8. Sketching Design Models 9. Modelling Software Processes 10. Modelling Objects and Classes 11. Modelling Software Components and Services 12. Structuring the Ill-Structured 13. Plan-Driven Software Design 14. Incremental Design in Agile Software Development 15. Designing with patterns 16. Designing with Components & Services 17. How Good is My Design? 18. And What About…
David Budgen is a Professor of Software Engineering at Durham University. His research interests include evidence-based software engineering (EBSE); evidence-informed software development (EISD); software design; and healthcare informatics.