Locality in software systems

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.

[1]  David Lorge Parnas,et al.  Use of the concept of transparency in the design of hierarchically structured systems , 1975, CACM.

[2]  Jerome H. Saltzer,et al.  The protection of information in computer systems , 1975, Proc. IEEE.

[3]  Edwin H. Satterthwaite,et al.  The Impact of Mesa on System Design , 1979, ICSE.

[4]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[5]  Peter J. Denning,et al.  Fault Tolerant Operating Systems , 1976, CSUR.

[6]  Peter J. Denning,et al.  Protection: principles and practice , 1972, AFIPS '72 (Spring).

[7]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[8]  Theodore A. Linden The use of abstract data types to simplify program modifications , 1976, SIGMOD 1976.

[9]  Barbara Liskov,et al.  A Language Extension for Controlling Access to Shared Data , 1976, IEEE Transactions on Software Engineering.

[10]  James H. Morris Protection in programming languages , 1973, CACM.

[11]  D. M. Lasker Module Structure in an Evolving Family of Real Time Systems , 1979, ICSE.

[12]  Naftaly H. Minsky Selective and locally controlled transport of privileges , 1984, TOPL.

[13]  Naftaly H. Minsky Intentional resolution of privacy protection in database systems , 1976, CACM.

[14]  Naftaly H. Minsky Synergistic Authorization in Database Systems , 1981, VLDB.

[15]  Laszlo A. Belady Modifiability of large software systems , 1980, Operating Systems Engineering.

[16]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977, Commun. ACM.

[17]  Walter F. Tichy Software development control based on module interconnection , 1979, ICSE 1979.