4
Drawn from: http://wiki.c2.com/? Encapsulationisnotinformationhiding (my emphasis):
As the article Linked to at the top of the page mentions, "information Hiding" was introduced by Davidparnas in the Early 1970’s. The best known (but I Believe not earliest) paper by him about it is Ondecomposingsystems, Where he shows two decompositions of a system for producing a KWIC index. This paper is also referenced by the Codecomplete Chapter on modularity. The Conclusion of the paper Recommends that "one Begins [to decompose a system] with a list of Difficult design decisions or design decisions that are likely to change. Each module is then Designed to Hide such a Decision from the others." this is contrasted with the "Conventional" decomposition, which is driven by Functional decomposition. The two Solutions to the KWIC problem are not presented at a high level of Detail, but do clearly involve a program built out of "functions or procedures", a module being accessed by the use of some nominated functions that form the interface to the module. The paper is all about Improving the use of modular Programming.
Parnas’s article is very well considered but also very arid to read. Does anyone explain this approach emphasized in the quote that designs a module based on a list of difficult design decisions or design decisions likely to change? How this happens in practice?
Additional links:
Simplified description of the article
Content of a course at Stanford University on software design that addresses the study of the article (the instructor himself has a book on software design, which deals with separation into modules).
I love this article, alias I love this whole Wiki, is one of the most sensational things I have ever and I envy her. I wanted to do something similar in pt, but I know that it would not work for lack of human capital to generate good materials. Of course it would only be interesting to have something like this to evolve what is said there. I thought several times to do, but always bumps into this limitation. I’ll think about it, but I don’t know if I can give an adequate answer to that "today". It may be a day, and that day may be soon because you may have encouraged me to study the subject further.
– Maniero
Parnas has a much more appropriate view of OOP (although I question a few things very punctually) but it’s really not always easy to read and interpret. If the person reads everything of it with a clear head he can improve his programming a lot and who knows how to speak less in OOP and more in modularization :D I still do not know if it is easy to answer this question, maybe he falls into the same problem of https://answall.com/q/408711/101, if it is not dup (maybe one should replace the other). I’ll see what I can do.
– Maniero
"Read all of it", it’s only more than 200 articles :P but I’ll strive to read some. As for dup, if you need to delete one, no problem, I delete.
– Piovezan