Department of Computer Science HKBU
Invited Talk
Title: How Precise Documentation Allows Information Hiding to Reduce
Software Complexity and Increase its Agility
Speaker: Prof. David Lorge Parnas
Pioneer in Software Engineering
Professor Emeritus, University of Limerick & McMaster University
Date: 1 September, 2009 (Tuesday)
Time: 10:30 - 11:30am
Venue: Lecture Theater 1 (LT1), Ho Sin Hang Campus, HKBU

Abstract


When the first papers on "information hiding" were published (1970-72), reaction was mixed:

  • A (negative) reviewer wrote, "… nobody does it that way" and recommended rejection.
  • Fred Brooks called it "a recipe for disaster" (in "Mythical Man Month").
  • Another reviewer called it banal (boring and obvious).

Ten years later, a textbook discussed those papers saying, "Parnas only wrote down what all good programmers were doing anyway".

In the 25th anniversary edition of "Mythical Man Month", Fred Brooks indicated that his original opinion was wrong and wrote "Parnas was right".

Today, most textbooks indicate that "information hiding" (or related formulations such as structured
design and object-orientation) is a good principle but industrial software developers do not do it.

These, obviously contradictory, observations all have part of "the truth" but overlook a basic fact, viz. - if you hide some information, you must give people other information to work with. Information hiding solves many problems but only if the designers pay serious attention to documentation.

This talk reviews the information hiding principle, stating it more precisely than was done when it was introduced, and then illustrates how mathematical documentation can make it work.

Biography of Speaker

David Lorge Parnas (born February 10, 1941) is a Canadian early pioneer of software engineering, who developed the concept of information hiding in modular programming, which is an important element of object-oriented programming today. He is also noted for his advocacy of precise documentation.

Parnas earned his Ph.D. at Carnegie Mellon University in electrical engineering. Parnas also earned a professional engineering license in Canada and was one of the first to apply traditional engineering principles to software design.

He worked there as a professor for many years. He also taught at the University of North Carolina at Chapel Hill (U.S.), the Technische Hochschule Darmstadt (Germany), the University of Victoria (British Columbia, Canada), and Queen's University (Ontario, Canada).

In 1991, he then went to McMaster University in Hamilton, Ontario. Between 2002 and 2008, David Parnas worked at the University of Limerick in Limerick, Ireland.

David Parnas received several awards and honors

  • ACM "Best Paper" Award, 1979
  • Norbert Wiener Award for Social and Professional Responsibility, 1987
  • Two " Most Influential Paper" Awards, International Conference on Software Engineering, 1991 and 1995
  • Doctor honoris causa of the Computer Science Department, ETH Zurich, Switzerland, 1986
  • Fellow of the Association for Computing Machinery, 1994
  • Doctor honoris causa of the Faculté des Sciences Appliquées, Université catholique de Louvain, Belgium, 1996
  • ACM SIGSOFT's "Outstanding Research" Award, 1998
  • IEEE Computer Society's 60th Anniversary Award, 2007
  • Fellow of the Institute of Electrical and Electronics Engineers (IEEE), 2009