logo slogan

Title: A handbook of Software and Systems

Engineering: Empirical Observations, Laws and Theories

 


Review Date, October 2004
Author: Albert Endress and Dieter Rombach
Pub: Addison Wesley
ISBN: 0-321-15420-7
COST: 34.99 GBP
DISK/CD NA
Cover: Hard
Pages: 324
Keywords: Software, metrics, systems engineering
Recommendation: Recommended
Source: - Publisher
Sent to IEE Computing and Control engineering

 

 

I was not too sure what to make of this book when I picked it up. It is by two German academics looking at 50 Laws, 25 hypothesis and 12 conjectures on software and systems engineering so I was fearing a dry heavy going text. However I was pleasantly surprised. The subject matter is related in an engaging and interesting way. I was thinking this might be a useful book for researchers and other academics but have read it I think that most engineers and project managers will take to this book.

 

The book is in a dozen chapters that each take a part of the SW process such as “Project Management and business analysis”, “Technology, architecture and industry capabilities” and “System design and specification” as well as the more obvious “Testing or dynamic verification”.

 

The chapters follow the same format. Introduction and definitions of the topic in general followed by some “General observations”. Having set the scene the Law, Hypothesis or Conjectures relevant to the topic are looked at; for example Fagin’s Law “Inspections significantly increase productivity, quality and project stability”. A section called “Applicability” describing the use of the law follows. In this case: code inspections, complete with a diagram. The “evidence” section describes the case for the rule using case studies and reports etc. The final sections are “Theory” and “comments” covering the original basis of the law and any comments the authors have in summary.

 

Surprisingly whilst there are some diagrams and tables there is little mathematical proof or large amounts of theory, the authors do cite copious references for the theory, but the text itself is more of a conversational style. As they say in the introduction to the book they are looking at the Laws and putting forwards their findings and views, which may not be perfect, rather than mathematical proof. None the less this is a very useful book. It clearly puts a whole raft of laws, hypothesis and conjecture into perspective and sheds light on them. It also cites all the sources and the ongoing projects and research groups. So for those whom this book is going to be the introduction to further study and research it is an idea starting point.


The penultimate chapter is “Measurements, experiments and empirical research” which should be the start point for serious researchers who are looking at software process and metrics. Basically it is how to define the measuring device and take measurements! This is the one chapter that is pure theory. It also gives an insight to the methods used in the book and by the contributors.

 

The final chapter is conclusions and challenges. Conclusions on what they have seen and challenges as to where next. As the authors point out software engineering is a relatively new and very fast paced profession. There is more work to be done to sort out the myths from the facts and gather data as things evolve.

 

Some of the thought provoking summing up says that these “laws” should be tests and if found incorrect modified or forgotten. Not as with some myths, allowed to perpetuate. They also suggest that they have called them Laws because “…no professional should be allowed to ignore them.” and “…where not knowing the law is not accepted as an argument for pleading not guilty.” Strong stuff indeed…. but the book and the references cited back up this stance. The authors think that it is time that, like civil, mechanical and aeronautical engineering, it is time to start formalising the rules for software engineering.

With software becoming ubiquitous and controlling more of our lives in safety critical areas it is time, as profession, we look at the myths and rules and remove the smoke and mirrors. It may change the way many of us work but better we do it from within than have the legal profession and insurance companies insist from the outside.

 

Each chapter has some questions attached. There are no answers in the book but some should be obvious if you have read the book. Other questions have no fixed answer and are there to provoke though. I can see many of these questions being set as exam questions! Perhaps some should be set as a lunchtime topic for discussion in industrial software teams… I recall one lunch time some one asked the “obvious” question of “what is the definition of a thread, process and task?” That debate was never settled

 

Overall this book probably raises more questions than it answers. That said it does answer a lot of questions and many Engineers would find it very helpful as an overview and to shed light on these “laws”. The book whilst academic in many ways is aimed at software engineering rather than computer science and as such has its roots and intent firmly in the real world. There are many references to web sites and other groups who are looking at various aspects of software. Some will be of interest to your area of work.

 

A fascinating thought provoking book, recommended for project managers, students and engineers with an interest in processes and metrics. It is essential for anyone involved in quality or software processes but I think should be on the reading list for all software engineers.