Law-Governed Regularities in Object Systems. Part 1: An Abstract Model

Regularities, or the conformity to unifying principles, are essential to the comprehensibility, manageability and reliability of large software systems. Yet, as is argued in this paper, the inherent globality of regularities makes them very hard to establish in traditional methods. This paper explores an approach to regularities for object systems which greatly simplifies their implementation, making them more easily employable for taming of the complexities of large scale software. This approach, which is based on a generalized concept of law-governed architecture (LGA) introduced in this paper, provides system designers and builders with the means for establishing a fairly wide range of useful regularities simply by declaring them formally and explicitly as the law of the system. Once such a law-governed regularity is declared, it is enforced by the environment in which the system is developed. keywords: Complexity in software, regularities, object-systems, software-development environments. 1Work supported in part by NSF grant No. CCR-9308773.

[1]  H. Lipkin Where is the ?c? , 1978 .

[2]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[3]  William F. Clocksin,et al.  Programming in Prolog , 1987, Springer Berlin Heidelberg.

[4]  Robert E. Strom Mechanisms for compile-time enforcement of security , 1983, POPL '83.

[5]  Moshe Tennenholtz,et al.  On the Synthesis of Useful Social Laws for Artificial Agent Societies (Preliminary Report) , 1992, AAAI.

[6]  Naftaly H. Minsky Locality in software systems , 1983, POPL '83.

[7]  Jan Chomicki,et al.  Towards a Programming Environment for Large Prolog Programs , 1985, SLP.

[8]  Peter J. Denning,et al.  Fault Tolerant Operating Systems , 1976, CSUR.

[9]  Steven P. Reiss,et al.  CCEL: A Metalanguage for C++ , 1992, C++ Conference.

[10]  Naftaly H. Minsky,et al.  Providing multiple views for objects by means of surrogates , 1996, ISAW '96.

[11]  Mary Shaw Procedure Calls Are the Assembly Language of Software Interconnection: Connectors Deserve First-Class Status , 1993, ICSE Workshop on Studies of Software Design.

[12]  Anne H. Soukhanov,et al.  The american heritage dictionary of the english language , 1992 .

[13]  Barbara Liskov,et al.  A Language Extension for Controlling Access to Shared Data , 1976, IEEE Transactions on Software Engineering.

[14]  Naftaly H. Minsky Selective and locally controlled transport of privileges , 1984, TOPL.

[15]  Dewayne E. Perry The inscape environment , 1989, ICSE '89.

[16]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[17]  Harold Ossher,et al.  A Mechanism for Specifying the Structure of Large, Layered Systems , 1987, Research Directions in Object-Oriented Programming.

[18]  Naftaly H. Minsky,et al.  Law-Governed Linda as a Coordination Model , 1994, ECOOP Workshop.

[19]  Naftaly H. Minsky Independent on-line monitoring of evolving systems , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[20]  Shigeru Chiba,et al.  A metaobject protocol for C++ , 1995, OOPSLA.

[21]  Naftaly H. Minsky,et al.  The Imposition of Protocols Over Open Distributed Systems , 1991, IEEE Trans. Software Eng..

[22]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[23]  Harold Ossher Grids: A new program structuring mechanism based on layered graphs , 1984, POPL '84.

[24]  Naftaly H. Minsky Law-governed systems , 1991, Softw. Eng. J..

[25]  Jack C. Wileden,et al.  Interface control and incremental development in the PIC environment , 1985, ICSE '85.

[26]  Oscar Nierstrasz,et al.  Object-Based Models and Languages for Concurrent Systems , 1994, Lecture Notes in Computer Science.

[27]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[28]  Keith Marzullo,et al.  Tools for Monitoring and Controlling Distributed Applications. , 1991 .

[29]  Jeffrey D. Ullman,et al.  Protection in operating systems , 1976, CACM.

[30]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[31]  Luca Cardelli,et al.  Modula-3 Report (revised) , 1992 .

[32]  Naftaly H. Minsky,et al.  Law-Governed Regularities in Object Systems, Part 2: A Concrete Implementation , 1997, Theory Pract. Object Syst..

[33]  Naftaly H. Minsky Imposing The Law of Demeter and Its Variations , 1996 .

[34]  David Notkin,et al.  Software reflexion models: bridging the gap between source and high-level models , 1995, SIGSOFT FSE.

[35]  Naftaly H. Minsky Regularities in Software Systems , 1993, ICSE Workshop on Studies of Software Design.