AbstractRegularities, 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 built into the very fabric of a programming language. 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 law-governed 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 useful software engineering technique.
RightsThis Item is protected by copyright and/or related rights.You are free to use this Item in any way that is permitted by the copyright and related rights legislation that applies to your use.For other uses you need to obtain permission from the rights-holder(s).