ECOOP 2011: ECOOP 2011 – Object-Oriented Programming pp 155-178 | Cite as
Revisiting Information Hiding: Reflections on Classical and Nonclassical Modularity
Conference paper
Abstract
What is modularity? Which kind of modularity should developers strive for? Despite decades of research on modularity, these basic questions have no definite answer. We submit that the common understanding of modularity, and in particular its notion of information hiding, is deeply rooted in classical logic. We analyze how classical modularity, based on classical logic, fails to address the needs of developers of large software systems, and encourage researchers to explore alternative visions of modularity, based on nonclassical logics, and henceforth called nonclassical modularity.
Keywords
Classical Logic Inductive Reasoning Information Hiding Paraconsistent Logic Default Reasoning
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Preview
Unable to display preview. Download preview PDF.
References
- 1.Abadi, M., Lamport, L.: Composing specifications. ACM Trans. Program. Lang. Syst. 15, 73–132 (1993)CrossRefGoogle Scholar
- 2.Aldrich, J.: Open modules: Modular reasoning about advice. In: Gao, X.-X. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 144–168. Springer, Heidelberg (2005)CrossRefGoogle Scholar
- 3.Bartolomei, T.T., Czarnecki, K., Lämmel, R., van der Storm, T.: Study of an API migration for two XML APIs. In: Malloy, B., Staab, S., van den Brand, M. (eds.) SLE 2010. LNCS, vol. 6563, Springer, Heidelberg (2011)Google Scholar
- 4.Bloch, J.: How to design a good API and why it matters. In: Companion Int’l Conf. Object-Oriented Programming, Systems, Languages & Applications (OOPSLA), pp. 506–507. ACM, New York (2006)Google Scholar
- 5.Booch, G.: Object-Oriented Analysis and Design with Applications. Addison-Wesley, Reading (2007)MATHGoogle Scholar
- 6.Borgida, A., Mylopoulos, J., Reiter, R.: On the frame problem in procedure specifications. IEEE Trans. Softw. Eng. 21, 785–798 (1995)CrossRefGoogle Scholar
- 7.Bremer, M.: An Introduction to Paraconsistent Logics. Peter Lang Publishing (2005)Google Scholar
- 8.Britton, K.H., Parker, R.A., Parnas, D.L.: A procedure for designing abstract interfaces for device interface modules. In: Proc. Int’l Conf. Software Engineering (ICSE), pp. 195–204. IEEE Press, Los Alamitos (1981)Google Scholar
- 9.Brooks, F.P.: The mythical man-month: After 20 years. IEEE Software 12, 57–60 (1995)CrossRefGoogle Scholar
- 10.Cartwright, N.: How the laws of physics lie. Clarendon Press, Oxford (1983)CrossRefGoogle Scholar
- 11.Clark, K.L.: Negation as failure. In: Logic and Data Bases, pp. 293–322 (1977)Google Scholar
- 12.Clinger, W.D.: Proper tail recursion and space efficiency. In: Proc. Conf. Programming Language Design and Implementation (PLDI), pp. 174–185. ACM, New York (1998)Google Scholar
- 13.Dawkins, R.: The Blind Watchmaker. Norton & Company, New York (1986)Google Scholar
- 14.Descartes, R.: Discourse on the Method of Rightly Conducting One’s Reason and of Seeking Truth in the Sciences (1637), http://www.gutenberg.org/etext/59
- 15.DiBona, C., Ockman, S., Stone, M. (eds.): Open Sources: Voices from the Open Source Revolution. O’Reilly & Associates, Inc., Sebastopol (1999)MATHGoogle Scholar
- 16.Dijkstra, E.W.: The structure of “THE”-multiprogramming system. In: Proc. ACM Symposium on Operating System Principles, pp. 10.1–10.6. ACM, New York (1967)Google Scholar
- 17.Dijkstra, E.W.: EWD 447: On the role of scientific thought. In: Selected Writings on Computing: A Personal Perspective, pp. 60–66. Springer, Heidelberg (1982)CrossRefGoogle Scholar
- 18.Ernst, E.: Method mixins. In: Proc. Net.ObjectDays/GSEM, pp. 145–161. GI (2005)Google Scholar
- 19.Ernst, M.D., Cockrell, J., Griswold, W.G., Notkin, D.: Dynamically discovering likely program invariants to support program evolution. IEEE Trans. Softw. Eng. 27(2), 99–123 (2001)CrossRefGoogle Scholar
- 20.Flanagan, C., Freund, S.N., Qadeer, S., Seshia, S.A.: Modular verification of multithreaded programs. Theor. Comput. Sci. 338, 153–183 (2005)CrossRefMATHMathSciNetGoogle Scholar
- 21.Gabbay, D.: Classical vs non-classical logic. In: Handbook of Logic in Artificial Intelligence and Logic Programming, vol. 2, Oxford University Press, Oxford (1994)Google Scholar
- 22.Girard, J.-Y.: Linear logic. Theoretical Computer Science 50, 1–102 (1987)CrossRefMATHMathSciNetGoogle Scholar
- 23.Goguen, J.A., Thatcher, J.W., Wagner, E.G., Wright, J.B.: Initial algebra semantics and continuous algebras. J. ACM 24(1), 68–95 (1977)CrossRefMATHMathSciNetGoogle Scholar
- 24.Hartmann, S., Frigg, R.: Scientific models. In: Sarkar, S., Pfeifer, J. (eds.) The Philosophy of Science: An Encyclopedia, vol. 2, pp. 740–749. Routledge, New York (2005)Google Scholar
- 25.Hebb, D.: The organization of behavior. John Wiley & Sons, Chichester (1949)Google Scholar
- 26.Henkel, J., Diwan, A.: Discovering algebraic specifications from Java classes. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 431–456. Springer, Heidelberg (2003)CrossRefGoogle Scholar
- 27.Hinman, P.: Fundamentals of Mathematical Logic. A K Peters, Wellesley (2005)MATHGoogle Scholar
- 28.Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)CrossRefMATHGoogle Scholar
- 29.Janzen, D., De Volder, K.: Programming with crosscutting effective views. In: Vetta, A. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 197–220. Springer, Heidelberg (2004)CrossRefGoogle Scholar
- 30.Kästner, C., Apel, S.: Virtual separation of concerns – A second chance for preprocessors. Journal of Object Technology (JOT) 8(6), 59–78 (2009)CrossRefGoogle Scholar
- 31.Kiczales, G., Lamping, J., Lopes, C.V., Maeda, C., Mendhekar, A., Murphy, G.: Open implementation design guidelines. In: Proc. Int’l Conf. Software Engineering (ICSE), pp. 481–490. ACM, New York (1997)CrossRefGoogle Scholar
- 32.Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Auletta, V. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
- 33.Kiczales, G., Mezini, M.: Aspect-oriented programming and modular reasoning. In: ICSE, pp. 49–58. ACM, New York (2005)Google Scholar
- 34.Kienzle, J., Liu, H.: AOP: Does It Make Sense? The Case of Concurrency and Failures. In: Deng, T. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 37–121. Springer, Heidelberg (2002)CrossRefGoogle Scholar
- 35.Klusener, S., Lämmel, R., Verhoef, C.: Architectural Modifications to Deployed Software. Science of Computer Programming 54, 143–211 (2005)CrossRefMATHMathSciNetGoogle Scholar
- 36.Kroah-Hartman, G.: The Linux kernel driver interface, http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/stable_api_nonsense.txt
- 37.Lakatos, I.: A renaissance of empiricism in the recent philosophy of mathematics. Br. J. Philos. Sci. 27(3), 201–223 (1976)CrossRefMATHMathSciNetGoogle Scholar
- 38.Lanier, J.: One half of a manifesto: Why stupid software will save the future from neo-darwinian machines. wired 8.12 (2000)Google Scholar
- 39.Laymon, R.: Idealizations and the testing of theories by experimentation. In: Achinstein, P., Hannaway, O. (eds.) Observation Experiment and Hypothesis in Modern Physical Science, pp. 147–173. MIT Press, Cambridge (1985)Google Scholar
- 40.Li, H., Krishnamurthi, S., Fisler, K.: Verifying cross-cutting features as open systems. SIGSOFT Softw. Eng. Notes 27, 89–98 (2002)CrossRefGoogle Scholar
- 41.Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM Trans. Program. Lang. Syst. 16(6), 1811–1841 (1994)CrossRefGoogle Scholar
- 42.Madsen, O.L., Møller-Pedersen, B.: A unified approach to modeling and programming. In: Petriu, D.C., Rouquette, N., Haugen, Ø. (eds.) MODELS 2010. LNCS, vol. 6394, pp. 1–15. Springer, Heidelberg (2010)CrossRefGoogle Scholar
- 43.Manna, Z., Pnueli, A.: The temporal logic of reactive and concurrent systems. Springer, Heidelberg (1992)CrossRefMATHGoogle Scholar
- 44.McCarthy, J.: Circumscription—a form of non-monotonic reasoning. Artificial Intelligence 13, 27–39 (1980)CrossRefMATHMathSciNetGoogle Scholar
- 45.McCarthy, J., Hayes, P.J.: Some philosophical problems from the standpoint of artificial intelligence. Machine Intelligence 4, 463–502 (1969)MATHGoogle Scholar
- 46.McMullin, E.: Galilean Idealization. Studies in the History and Philosophy of Science 16, 247–273 (1985)CrossRefMathSciNetGoogle Scholar
- 47.Miikkulainen, R., Bednar, J.A., Choe, Y., Sirosh, J.: Computational Maps in the Visual Cortex. Springer, Heidelberg (2005)Google Scholar
- 48.Mitchell, J.C., Plotkin, G.D.: Abstract types have existential type. ACM Trans. Program. Lang. Syst. 10(3), 470–502 (1988)CrossRefGoogle Scholar
- 49.Montague, R.: Universal grammar. In: Formal Philosophy, pp. 222–246 (1970)Google Scholar
- 50.Morris, J.H.: Lambda-Calculus Models of Programming Languages. PhD thesis, Massachusetts Institute of Technology (1968)Google Scholar
- 51.Noble, J., Vitek, J., Potter, J.: Flexible alias protection. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 158–185. Springer, Heidelberg (1998)CrossRefGoogle Scholar
- 52.Object Management Group (OMG). Object management architecture guide, ed 2.0. (1992)Google Scholar
- 53.O’Hearn, P.W., David, Pym, D.J.: The logic of bunched implications. Bulletin of Symbolic Logic 5, 215–244 (1999)CrossRefMATHMathSciNetGoogle Scholar
- 54.O’Hearn, P.W., Yang, H., Reynolds, J.C.: Separation and information hiding. In: Proc. Symp. Principles of Programming Languages (POPL), pp. 268–280. ACM, New York (2004)Google Scholar
- 55.Ossher, H., Tarr, P.: On the need for on-demand remodularization. In: Position Paper for Aspects and Dimensions of Concern Workshop, ECOOP, Citeseer (2000)Google Scholar
- 56.Ostermann, K.: Reasoning about aspects with common sense. In: Proc. Int’l Conf. Aspect-Oriented Software Development (AOSD), pp. 48–59. ACM, New York (2008)Google Scholar
- 57.Parkinson, M.J., Bierman, G.M.: Separation logic, abstraction and inheritance. In: Proc. Symp. Principles of Programming Languages (POPL), pp. 75–86. ACM, New York (2008)Google Scholar
- 58.Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)CrossRefGoogle Scholar
- 59.Parnas, D.L.: On a “buzzword”: Hierarchical structure. In: Proceedings of IFIP Congress 1974, pp. 336–339. North-Holland, Amsterdam (1974)Google Scholar
- 60.Parnas, D.L.: Use of abstract interfaces in the development of software for embedded computer systems. Technical report, NRL Report No. 8047 (1977)Google Scholar
- 61.Parnas, D.L.: The secret history of information hiding. In: Software Pioneers: Contributions to Software Engineering, pp. 399–409. Springer, Heidelberg (2002)Google Scholar
- 62.Parnas, D.L.: Precise documentation: The key to better software. In: Nanz, S. (ed.) The Future of Software Engineering, pp. 125–148. Springer, Heidelberg (2011)CrossRefGoogle Scholar
- 63.Parnas, D.L., Clements, P.C., Weiss, D.M.: The modular structure of complex systems. In: Proc. Int’l Conf. Software Engineering (ICSE), pp. 408–417. IEEE Press, Los Alamitos (1984)Google Scholar
- 64.Popper, K.R.: Conjectures and refutations: The growth of scientific knowledge. Harper & Row, New York (1968)Google Scholar
- 65.Reiter, R.: On closed world data bases. In: Logic and Data Bases, pp. 55–76 (1977)Google Scholar
- 66.Reiter, R.: A logic for default reasoning, pp. 68–93. Morgan Kaufmann Publishers Inc., San Francisco (1987)Google Scholar
- 67.Reynolds, J.C.: Types, abstraction and parametric polymorphism. In: IFIP Congress, pp. 513–523 (1983)Google Scholar
- 68.Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Proc. Symposium on Logic in Computer Science (LICS), pp. 55–74. IEEE Computer Society, Los Alamitos (2002)CrossRefGoogle Scholar
- 69.Rinard, M.C., Cadar, C., Dumitran, D., Roy, D.M., Leu, T., Beebee, W.S.: Enhancing server availability and security through failure-oblivious computing. In: Proc. Symposium on Operating Systems Design & Implementation (OSDI), pp. 303–316 (2004)Google Scholar
- 70.Robillard, M., Murphy, G.C.: Concern graphs: Finding and describing concerns using structural program dependencies. In: Proc. Int’l Conf. Software Engineering (ICSE), pp. 406–416. ACM, New York (2002)Google Scholar
- 71.Ross, S.D.: Plato’s Theory of Ideas. Oxford University Press, Oxford (1951)Google Scholar
- 72.Roy, P.V., Haridi, S.: Concepts, Techniques, and Models of Computer Programming. MIT Press, Cambridge (2004)Google Scholar
- 73.Sandewall, E.: Nonmonotonic inference rules for multiple inheritance with exceptions. In: Expert systems, pp. 239–247. IEEE Computer Society Press, Los Alamitos (1990)Google Scholar
- 74.Smith, B.C.: Reflection and semantics in LISP. In: Proc. Symp. Principles of Programming Languages (POPL), pp. 23–35. ACM, New York (1984)Google Scholar
- 75.Stata, R., Guttag, J.V.: Modular reasoning in the presence of subclassing. In: Proc. Conf. Object-Oriented Programming, Systems, Languages & Applications (OOPSLA), pp. 200–214. ACM, New York (1995)Google Scholar
- 76.Steele, G.L.: Debunking the “expensive procedure call” myth or, procedure call implementations considered harmful or, LAMDBA: The ultimate GOTO. Technical report, Massachusetts Institute of Technology (1977)Google Scholar
- 77.Sternberg, R.: Cognitive Psychology. Thomson Wadsworth (2008)Google Scholar
- 78.Stoy, J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Semantics. MIT Press, Cambridge (1977)MATHGoogle Scholar
- 79.Tanenbaum, A.S., Herder, J.N., Bos, H.: Can we make operating systems reliable and secure? Computer 39, 44–51 (2006)CrossRefGoogle Scholar
- 80.Tarr, P., Ossher, H., Harrison, W., Sutton Jr., S.M.: N degrees of separation: Multi-dimensional separation of concerns. In: Proc. Int’l Conf. Software Engineering (ICSE), pp. 107–119. IEEE Computer Society, Los Alamitos (1999)Google Scholar
- 81.Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Inf. Comput. 115(1), 38–94 (1994)CrossRefMATHMathSciNetGoogle Scholar
Copyright information
© Springer-Verlag Berlin Heidelberg 2011