Establishing Regularities in Object-Oriented (Eiffel) Systems

Regularities, or the conformity to unifying principles, are essential to the comprehensibility, manageability and reliability of large software systems, and should, therefore, be considered an important element of their architecture. But the inherent globality of regularities makes them very hard to implement in traditional methods. We have argued elsewhere that this di culty can be alleviated by means of law-governed architecture (LGA), under which a system designers can establish a desired regularity (of a certain kind) simply by declaring it 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. This paper, which is based on a recently developed environment called Darwin-E, describes the application of LGA to object oriented systems written in the Ei el language. We introduce here the formalism for specifying laws under Darwin-E, and give a sample of regularities that can be e ciently established by such laws. In particular, we demonstrate how one can establish a kernelized architecture suitable for the construction of critical embedded software, such as the software embedded in an intensive care unit. keywords: regularities, object-oriented systems, law-governed architecture, kernel, intensive-care unit. Work supported in part by NSF grants No. CCR-9308773, and in part by ARPA Contract Number DABT63-93-C-0064 y Work supported by NSF grants No. CCR-9308773