top image

David Parnas: Preparing Precise Software Reference Documents

Poor documentation is the cause of many software errors and reduces efficiency in every phase of a software product’s development and use. Developers need documents that are organized in a way that makes it easy to find the precise, detailed, information. 

Most software developers believe that “documentation” refers to a collection of wordy, unstructured, introductory descriptions, consisting of hundreds, sometimes thousands, of pages that nobody wanted to write and nobody trusts. In contrast, Engineers in more traditional disciplines think of precise blueprints, circuit diagrams, and mathematical specifications of component properties. Most software developers do not know how to produce such precise documents for software. 

Software developers also think of documentation as something written after the software has been developed. In other fields of Engineering much of the documentation is written before and during the development. It represents forethought not afterthought. It is the medium for design. 

Among the benefits of better documentation would be: better communication about requirements, easier reuse of old designs, more effective design reviews, easier integration of separately written modules, more effective code inspection, more effective testing, and more efficient maintenance (making of corrections and improvements). 

The 1-day tutorial on 29th August explained how to produce and use precise software documentation and illustrated the methods with several examples.

On 3 and 4 September, a limited number of participants took part in a workshop on the same topic. There were no lectures, but 4 half-day interactive exercises in which the participants had the experience of preparing simple documents with guidance from the instructor. 

Dr David L Parnas

David L Parnas is one of the early pioneers of software engineering.  He is probably best known as the person who developed the concept of “information hiding” in modular programming. This concept is an important element of object oriented programming, which lies at the heart of all modern software. Parnas has also been an advocate and innovator of “precise documentation”, the topic to be covered in his lectures in South Africa. 

Dr David Lorge Parnas has been studying industrial software development since 1969. Many of his papers have been found to have lasting value. For example, a paper written 25 years ago, based on a study of avionics software, was recently awarded a SIGSOFT IMPACT award.

Parnas has won more than 20 awards for his contributions. In 2007, Parnas was proud to share the IEEE Computer Society’s one-time sixtieth anniversary award with computer pioneer Professor Maurice Wilkes of Cambridge University. 

Parnas received his B.S., M.S. and Ph.D. in Electrical Engineering from Carnegie Mellon University and honorary doctorates from the ETH in Zurich (Switzerland), the Catholic University of Louvain (Belgium), the University of Italian Switzerland (Lugano), and the Technische Universität Wien (Austria). He is licensed as a Professional Engineer in Ontario. 

Parnas is a Fellow of the Royal Society of Canada (RSC), the Association for Computing Machinery (ACM), the Canadian Academy of Engineering (CAE), the Gesellschaft für Informatik (GI) in Germany and the IEEE. He is a Member of the Royal Irish Academy. 

Parnas is the author of more than 275 papers and reports. Many have been repeatedly republished and are considered classics. He is Professor Emeritus at McMaster University in Hamilton Canada, and at the University of Limerick Ireland and also an Honorary Professor at Ji Lin University in China. He is President of Middle Road Software in Ottawa Ontario.