Abstract
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.
Work supported in part by NSF grant No. CCR-8807803
Preview
Unable to display preview. Download preview PDF.
References
Frederick P. Jr. Brooks. No silver bullet — the essence and accidents of software engineering. IEEE Computer, pages 10–19, April 1987.
L. Cardelli, J. Dinahue, L. Glassman, M. Kalsow Jordan, B., and G. Nelson. Modula-3 report (revised). Technical Report 52, Digital System Research Center, November 1989.
W.F. Clocksin and C.S. Mellish. Programming in Prolog. Springer-Verlag, 1981.
P.J. Denning. Fault tolerant operating systems. Computing Surveys, 8(4):359–389, December 1976.
M. A. Harrison, W. L. Ruzzo, and J. D. Ullman. Protection in operating systems. Communications of the ACM, 19(8):461–471, Aug. 1976.
J. Leichter and N.H. Minsky. Obligations in law-governed distributed systems. Technical report, Rutgers University, LCSR, 1993. (In preperation).
B. Meyer. Object-Oriented Software Construction. Prentice-Hall, 1987.
N.H. Minsky. Selective and locally controlled transport of privileges. ACM Transactions on Programming Languages and Systems (TOPLAS), 6(4):573–602, October 1984.
N.H. Minsky. Governing distributed systems: From protocols to laws. In Proceedings of the Hawaii International Conference on System Sciences, January 1991.
N.H. Minsky. The imposition of protocols over open distributed systems. IEEE Transactions on Software Engineering, February 1991.
N.H. Minsky. Law-governed systems. The IEE Software Engineering Journal, September 1991.
N.H. Minsky. Regularities in software systems. Technical Report LCSR-TR-204, Rutgers University, LCSR, April 1993.
N.H. Minsky. Law-governed regularities in software systems. Technical Report LCSR-TR-220, Rutgers University, LCSR, January 1994.
N.H. Minsky and P Pal. Establishing regularity in object-oriented (eiffel) systems. Technical Report LCSR-TR-227, Rutgers University, LCSR, June 1994. (Presented at the ECOOP Workshop on Patterns on OO programming, Bologna, July 1994).
N.H. Minsky and D. Rozenshtein. Law-based approach to object-oriented programming. In Proceedings of the OOPSLA '87 Conference, pages 482–493, October 1987.
N.H. Minsky and D Rozenshtein. Controllable delegation: An exercise in law-governed systems. In Proceedings of the OOPSLA '89 Conference, pages 371–380, October 1989.
N.H. Minsky and D. Rozenshtein. Specifications of the darwin/2 environment. Technical report, Rutgers University, LCSR, 1991.
W. Morris. The American Heritage Dictionary of the English Language. Houghton Mifflin Company, 1981.
S.P. Reiss. Working on the garden environment for conceptual programming. IEEE Software, 6(4):16–27, November 1987.
D. Rozenshtein and N.H. Minsky. Constraining interactions between objects in the presence of class inheritance. In Proceedings of the 2nd International Workshop on Computer-Aided Software Engineering, July 1988.
D. Rozenshtein and N.H. Minsky. Law-governed object-oriented system. Journal of Object-Oriented Programming, 1(6): 14–29, March/April 1989.
R.E. Strom. Mechanism for compile-time enforcement of security. In Proceedings of the ACM Symposium on Principles of Programming Languages, pages 276–284, January 1983.
E. P. Wigner. Symmetries and Reflections. Ox Bow Press, 1979.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Minsky, N.H. (1996). Regularities in software systems. In: Lamb, D.A. (eds) Studies of Software Design. WSSD 1993. Lecture Notes in Computer Science, vol 1078. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0030519
Download citation
DOI: https://doi.org/10.1007/BFb0030519
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61285-8
Online ISBN: 978-3-540-68434-3
eBook Packages: Springer Book Archive