‘Engineering Software Products: a introduction to modern software engineering’ will be published by Pearson Education in March 2019.

Updated, 15th Feb 2019. Next site update: on or before 15th March 2019.

Since I started writing software in the 1970s, software engineering has changed out of all recognition. In the early days of the discipline, all software was developed in software projects, mostly for governments and large companies. The client specified their requirements, which were often lacking in a number of ways, and the software was developed by a separate company or group. This project oriented approach dominated software engineering for more than 30 years.

However, the world has changed. While large-scale complex systems are still developed using a project-based approach, we mostly use software products for work and leisure. These are not developed in the same way as projects so many project-based software techniques are inapplicable. Yet, most software engineering textbooks (including my own text, now in the 10th edition) adopt a project-based approach that doesn’t reflect the way that software products are developed.

‘Engineering Software Products’ has been designed for a 1-semester introductory course in software engineering. The book is an introductory text  that focuses on modern software engineering, based around the kind of software that students can relate to. That software will be developed incrementally using agile methods, execute on the cloud, its security will be critical and it will be maintained and managed by a DevOps team. 

Consequently, the theme of the book is methods and techniques that are used in the development of off-the-shelf, software products. As I said in this blog post , I introduce relevant technology that students may use in their own projects or in building software products. This has involved completely rethinking what should be covered in a modern software engineering course. Consequently, the book is NOT the 11th edition of my existing software engineering textbook nor is it a subset of that book’s chapters. There are 10 chapters in the book each focusing on an aspect of software product engineering. I assume that readers can program in a modern programming language such as Java, Python or Ruby.

This site supports the book with access to presentations and videos for each chapter. You can also read the preface and contents list , download a sample chapter (Chapter X) and the Python programs from the book.  

Books, like software, always contain bugs. I’ve included a list of known typos and other errors on the Errata page.

I’ve written a couple of blog posts discussing the book and my motivation for writing it.

Out with the UML (and other stuff too); reimagining introductory software engineering courses

Engineering Software Products

About me

I was a full professor of software engineering at Lancaster University, England and St Andrews University, Scotland for almost 30 years and I am now an Emeritus Professor at St Andrews University. I have worked with software companies across Europe since 1982.  I formally retired in 2014 although I maintain contacts with a number of software companies. This experience was the genesis of this book.

I have written a number of books on software engineering including a very widely used textbook ‘Software Engineering‘. If you are interested in what else I have done and my research in socio-technical systems engineering, see my professional blog and web page.

I have never taken the view that you should live to work so I do lots of other things apart from software engineering. I sometimes write about these in my personal blog.

GDPR compliance. I do not collect or store personal information about visitors to this site.