From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,c168a68f008634ff,start X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1995-03-08 13:06:37 PST Path: bga.com!news.sprintlink.net!howland.reston.ans.net!paladin.american.edu!auvm!MASS.DNET.HAC.COM!F22HEANEY Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU Newsgroups: comp.lang.ada X-Vms-To: EDEN1::IN%"info-ada@vm1.nodak.edu" Mime-Version: 1.0 Content-Transfer-Encoding: 7BIT Message-ID: <01HNVXYDIMN600IH0G@EDEN1.HAC.COM> Date: Wed, 8 Mar 1995 08:34:46 -0800 Sender: Ada programming language From: Matthew Heaney Subject: Information Hiding: Response of MJH Date: 1995-03-08T08:34:46-08:00 List-Id: > J. Green writes: > > Could someone please explain the difference between > information hiding and data abstraction - Is there one? Yes, there is a difference. >From Software Engineering With Ada (the section "Abstraction and Information Hiding"), by Grady Booch: The essence of abstraction is to extract essential properties while omitting inessential details. (p. 32) Whereas abstractions extract the essential details of a given level [of decomposition], the purpose of [information] hiding is to make inaccessible certain details that should not affect other parts of the system. (p. 33) >From Object-Oriented Analysis and Design (the glossary), also by Booch: abstraction The essential characteristics of an object that distinguish it from other kinds of objects and thus provide crisply-defined conceptual boundaries relative to the perspective of the viewer; the process of focusing upon the essential characteristics of an object. Abstraction is one of the fundamental elements of the object model. information hiding The process of hiding all the secrets of an object that do not contribute to its essential characteristics; typically, the structure of an object is hidden, as well as the implementation of its methods. And from Software Components With Ada, by (yes) Grady Booch: ... abstraction essentially means to focus on the important elements of some entity. Information hiding complements the notion of abstraction. Whereas abstraction serves to expose important characteristics, information hiding serves to suppress unnecessary details. (p. 12) The term information hiding was coined by David Parnas, in his classic paper "On the Criteria to Be Used in Decomposing Systems Into Modules," Communications of the ACM, vol 5, no 12, p 1053-1058, Dec 1972. Any more questions about the object model? Feel free to contact me. Matthew Heaney Hughes Aircraft f22heaney@mass.dnet.hac.com