Regularities in Software Systems

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, unless they are imposed on a system by some kind of higher authority. This paper explores an approach to regularities which greatly simplifies their implementation, making them more easily employable for taming of the complexities of large systems. This approach, which is based on the concept of law-governed architecture (LGA), provides system designers and builders with the means for establishing regularities simply by declaring them formally and explicitly as the law of the system. Once such a lawgoverned regularity is declared, it is enforced by the environment in which the system is developed. Although not all desirable regularities can be established this way, it is argued that the range of feasible ”law-governed regularities,” which can be easily defined and efficiently enforced, is sufficiently broad for this to become a powerful software engineering technique.

[1]  Richard P. Simonian,et al.  InnovAda: true object-oriented programming in Ada , 1988 .

[2]  Naftaly H. Minsky,et al.  Law-Governed Regularities in Software Systems , 1994 .

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

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

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

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

[7]  Lawrence Robinson,et al.  On attaining reliable software for a secure operating system , 1975 .

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

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

[10]  Naftaly H. Minsky,et al.  A law-based approach to object-oriented programming , 1987, OOPSLA 1987.

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

[12]  Naftaly H. Minsky,et al.  Controllable delegation: an exercise in law-governed systems , 1989, OOPSLA '89.

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

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

[15]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[16]  Naftaly H. Minsky,et al.  A law-based approach to object-oriented programming , 1987, OOPSLA '87.

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

[18]  Steven P. Reiss Working in the Garden Environment for Conceptual Programming , 1987, IEEE Software.

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

[20]  N. H. Minsky Governing distributed systems: from protocols to laws , 1991, Proceedings of the Twenty-Fourth Annual Hawaii International Conference on System Sciences.

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

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

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