We believe that the regime governing the patterns of sharing between objects, and of exchange of messages between them, should not be “hard-wired” into a programming language, but should be specifiable by the builders of a system to fit its particular requirements. This thesis has been the primary motivation behind our general concept of law-governed system, which serves as the foundation for this paper. We show how the law can be used to impose a variety of useful constraints over the structure and behavior of delegation-based systems. Such a law may contain some very specific rules that apply only to small parts of a system; it may also impose some very general regimes, such as class inheritance, on the entire system. We also argue that the constraints established by the law can be easily adapted to the changing requirements of an evolving system. This should be very useful in managing the process of software development from its design stage, through prototyping, construction, and beyond.
All Science Journal Classification (ASJC) codes
- Computer Graphics and Computer-Aided Design