Article Preview
Buy Now
COLUMN
Information Hiding
Issue: 2.1 (August/September 2003)
Author: Charles Yeomans
Author Bio: Charles Yeomans is a software developer in Lexington, Kentucky.
Article Description: No description available.
Article Length (in bytes): 5,170
Starting Page Number: 36
Article Number: 2117
Related Web Link(s):
http://www.acm.org/classics/may96/
http://www.javaworld.com/javaworld/jw-05-2001/jw-0518-encapsulation.html
Excerpt of article text...
Information hiding is a fundamental principle of software design. Unfortunately, the idea, which has been around for some thirty years, has become lost in a welter of buzzwords and methodologies.
Information hiding is the idea that each module of a program is "characterized by its knowledge of a design decision which it hides from all others", as described by David Parnas in a seminal 1972 paper, "On the Criteria to Be Used in Decomposing Systems into Modules". Furthermore (paraphrasing Parnas), information hiding dictates that the interface of a module be chosen so as to reveal as little as possible about its inner workings.
Fred Brooks, author of
The Mythical Man-Month , calls information hiding "an intellectual ancestor of object oriented (OO) programming". It is indeed true that if you pick up most any book on object oriented design (OOD) and examine the key points, you'll likely find that they are paraphrases or corollaries of information hiding ("design for change", "find the objects", "assign responsibilities").
...End of Excerpt. Please purchase the magazine to read the full article.