Regularities in software systems

  • Naftaly H. Minsky
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1078)


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.


Complexity in software regularities software-development environments 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Frederick P. Jr. Brooks. No silver bullet — the essence and accidents of software engineering. IEEE Computer, pages 10–19, April 1987.Google Scholar
  2. 2.
    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.Google Scholar
  3. 3.
    W.F. Clocksin and C.S. Mellish. Programming in Prolog. Springer-Verlag, 1981.Google Scholar
  4. 4.
    P.J. Denning. Fault tolerant operating systems. Computing Surveys, 8(4):359–389, December 1976.Google Scholar
  5. 5.
    M. A. Harrison, W. L. Ruzzo, and J. D. Ullman. Protection in operating systems. Communications of the ACM, 19(8):461–471, Aug. 1976.Google Scholar
  6. 6.
    J. Leichter and N.H. Minsky. Obligations in law-governed distributed systems. Technical report, Rutgers University, LCSR, 1993. (In preperation).Google Scholar
  7. 7.
    B. Meyer. Object-Oriented Software Construction. Prentice-Hall, 1987.Google Scholar
  8. 8.
    N.H. Minsky. Selective and locally controlled transport of privileges. ACM Transactions on Programming Languages and Systems (TOPLAS), 6(4):573–602, October 1984.Google Scholar
  9. 9.
    N.H. Minsky. Governing distributed systems: From protocols to laws. In Proceedings of the Hawaii International Conference on System Sciences, January 1991.Google Scholar
  10. 10.
    N.H. Minsky. The imposition of protocols over open distributed systems. IEEE Transactions on Software Engineering, February 1991.Google Scholar
  11. 11.
    N.H. Minsky. Law-governed systems. The IEE Software Engineering Journal, September 1991.Google Scholar
  12. 12.
    N.H. Minsky. Regularities in software systems. Technical Report LCSR-TR-204, Rutgers University, LCSR, April 1993.Google Scholar
  13. 13.
    N.H. Minsky. Law-governed regularities in software systems. Technical Report LCSR-TR-220, Rutgers University, LCSR, January 1994.Google Scholar
  14. 14.
    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).Google Scholar
  15. 15.
    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.Google Scholar
  16. 16.
    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.Google Scholar
  17. 17.
    N.H. Minsky and D. Rozenshtein. Specifications of the darwin/2 environment. Technical report, Rutgers University, LCSR, 1991.Google Scholar
  18. 18.
    W. Morris. The American Heritage Dictionary of the English Language. Houghton Mifflin Company, 1981.Google Scholar
  19. 19.
    S.P. Reiss. Working on the garden environment for conceptual programming. IEEE Software, 6(4):16–27, November 1987.Google Scholar
  20. 20.
    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.Google Scholar
  21. 21.
    D. Rozenshtein and N.H. Minsky. Law-governed object-oriented system. Journal of Object-Oriented Programming, 1(6): 14–29, March/April 1989.Google Scholar
  22. 22.
    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.Google Scholar
  23. 23.
    E. P. Wigner. Symmetries and Reflections. Ox Bow Press, 1979.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Naftaly H. Minsky
    • 1
  1. 1.Department of Computer ScienceRutgers UniversityNew BrunswickUSA

Personalised recommendations