Locality in software systems

Abstract
This paper proposes a technique for what we call localization of power in computer systems, which can be viewed as a generalization of such linguistic disciplines as scope rules, strong typing and data-abstraction. Although the proposed technique is conceptually based on the theory of protection, it is presented as a rather simple extension of the package construct of the Ada language. This technique is expected to be beneficial for software engineering in several ways. In particular:• It facilitates reasoning about large scale systems, by allowing one to ignore most of the details of the system when reasoning about specific aspects of it.• It provides us with a generalization of the conventional concept of data-abstraction, by allowing the formation of several different abstractions for the same type of objects, and by supporting "interactions" between the abstractions of different types.• It allows us to provide parts of a system with a certain ability to control the activity of the rest of it.• It supports a broad spectrum of policies for the design and management of large scale, evolving systems.