Page 5 -
P. 5
iv Preface
to all development processes and topics concerned with the development of reliable,
distributed systems. There is an increased emphasis on agile methods and software
reuse. I strongly believe that agile methods have their place but so too does ‘tradi-
tional’ plan-driven software engineering. We need to combine the best of these
approaches to build better software systems.
Books inevitably reflect the opinions and prejudices of their authors. Some read-
ers will inevitably disagree with my opinions and with my choice of material. Such
disagreement is a healthy reflection of the diversity of the discipline and is essential
for its evolution. Nevertheless, I hope that all software engineers and software engi-
neering students can find something of interest here.
Integration with the Web
There is an incredible amount of information on software engineering available on the
Web and some people have questioned if textbooks like this one are still needed.
However, the quality of available information is very patchy, information is sometimes
presented badly and it can be hard to find the information that you need. Consequently,
I believe that textbooks still have an important role to play in learning. They serve as a
roadmap to the subject and allow information on method and techniques to be organized
and presented in a coherent and readable way. They also provide a starting point for
deeper exploration of the research literature and material available on the Web.
I strongly believe that textbooks have a future but only if they are integrated with
and add value to material on the Web. This book has therefore been designed as a
hybrid print/web text in which core information in the printed edition is linked to
supplementary material on the Web. Almost all chapters include specially written
‘web sections’ that add to the information in that chapter. There are also four ‘web
chapters’ on topics that I have not covered in the print version of the book.
The website that is associated with the book is:
http://www.SoftwareEngineering-9.com
The book’s web has four principal components:
1. Web sections These are extra sections that add to the content presented in each
chapter. These web sections are linked from breakout boxes in each chapter.
2. Web chapters There are four web chapters covering formal methods, interaction
design, documentation, and application architectures. I may add other chapters
on new topics during the lifetime of the book.
3. Material for instructors The material in this section is intended to support peo-
ple who are teaching software engineering. See the “Support Materials” section
in this Preface.
4. Case studies These provide additional information about the case studies used
in the book (insulin pump, mental health-care system, wilderness weather system)