Software design : creating solutions for ill structured problems 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