Clear and concise, this book explains why software is difficult to develop and discusses some of the solutions being adopted to overcome the difficulties. The book describes how software systems "rust", how mathematics aids software developers, the attempts that researchers make in order to automate the software development process, and some of the advances being made in artificial intelligence. Written for the general reader, the book describes current...