AbstractRegularity in this dissertation means conformity to unifying principles -- principles that affect every part of a software system, or, some significant and well-defined subset of its parts. Complexity of a large system can be reduced by incorporating some meaningful regularity into it. Regularity can be used to explicate structural aspects that were invisible otherwise. Furthermore, various thumb-rules of software construction, certain architectural patterns, and constraints underlying various design models can also be expressed as regularity.
An explicit and formal statement of the desired regularities therefore, can serve as a guideline to construct a well-designed software that is easier to understand and maintain. Strict imposition of these regularities on the other hand leads to a controlled evolution of the software, with a guaranteed conformance to its desired model and underlying guidelines.
Object-orientation is the technology of choice today for building large systems. We considered software development in Eiffel, one of the advanced object-oriented languages and showed that there are many cases where regularities would increase the comprehensibility, mangeability and reliability of Eiffel systems pal92 . However, neither the language nor its host environments has the infrastructure for formulating and imposing such regularities.
The paradigm of Law-Governed Architecture (LGA) provides the perspective needed for realizing regularities: regularities can be formulated and enforced as the "law" under LGA. We developed a prototype environment named Darwin-E that supports LGA for Eiffel. The novelty of the Darwin-E environment is its ability to perform compile-time enforcement of a wide range of useful laws, thus imposing desired regularities upon object-oriented (Eiffel) systems being developed in it. Several other aspects of a software project that benefit from LGA, such as controlling developer activities, configuration management and monitoring, are also handled in Darwin-E.
The main contribution of this dissertation is that it demonstrates the feasibility of using regularities as an integral part of object-oriented software construction. Besides, being an environment whose principal focus is the software product, Darwin-E complements the approaches taken by process-centered environments.
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).