Re: Information hiding?
Nick Gall <[email protected]>
| Newsgroups | gmane.comp.web.services.rest |
|---|---|
| Message-ID | <CA+xhAPVa5CHFnjN4NXTzhu=Vcr7wZw1LXEOY+8am0rPP5aJ7QQ@mail.gmail.com> |
My favorite expression of information hiding is this passage from the closing section of David Parnas's seminal essay, "On the Criteria To Be Used in Decomposing Systems into Modules": "...it is almost always incorrect to begin the decomposition of a system into modules on the basis of a flowchart. We propose instead that one begins with a list of difficult design decisions or design decisions which are likely to change. Each module is then designed to hide such a decision from the others. http://en.wikipedia.org/wiki/David_Parnas#Quotations Parnas D.L. (December 1972). "On the Criteria To Be Used in Decomposing Systems into Modules". Comm ACM 15 (12): 1053–8. doi:10.1145/361598.361623 In other words, information hiding is the hiding of design decisions--especially those design decisions likely to change. Information hiding is NOT just about hiding implementation details; it is much more about hiding (an at least indirecting--a form of hiding) design issues. But here we are 40 years later, still starting our designs by decomposing systems into steps in a process diagram. -- Nick Nick Gall Phone: +1.781.608.5871 Other Contact Info: http://bit.ly/nickgall On Thu, Feb 28, 2013 at 3:13 AM, Roy T. Fielding <[email protected]> wrote: > On Feb 27, 2013, at 3:23 PM, Eric J. Bowman wrote: > > > Alan Dean wrote: > >> > >> I can see *"The resource implementation details are hidden behind the > >> interface."* in [1] but that doesn't seem to be in conflict with > >> *"allows information hiding through a generic interface"* to me. > >> > > > > So "information hiding" is shorthand for "implementation-detail hiding"? > > I guess I was thinking "uses SQL" is an implementation detail, while > > the results of a SQL query would be "information," and I was missing > > some subtlety. > > Information hiding is one of the first software engineering > principles learned when systems became large enough to require > modularity. > > http://www.itmweb.com/essay550.htm > > ....Roy > > > > ------------------------------------ > > Yahoo! Groups Links > > > >