Software interconnection models

We present a formulation of interconnection models and present the unit and syntactic models — the primary models used for managing the evolution of large software systems. We discuss various tools that use these models and evaluate how well these models support the management of system evolution. We then introduce the semantic interconnection model. The semantic interconnection model incorporates the advantages of the unit and syntactic interconnection models and provides extremely useful extensions to them. By refining the grain of interconnections to level of semantics (that is, to the predicates that define aspects of behavior) we provide tools that are better suited to manage the details of evolution in software systems and that provide a better understanding of the implications of changes. We do this by using the semantic interconnection model to formalize the semantics of program construction, the semantics of changes, and the semantics of version equivalence and compatibility. Thus, with this formalization, we provide tools that are knowledgeable about the process of system construction and evolution and that work in symbiosis with the system builders to construct and evolve large software systems.

[1]  James J. Horning,et al.  The Larch Family of Specification Languages , 1985, IEEE Software.

[2]  Stuart I. Feldman,et al.  Make — a program for maintaining computer programs , 1979, Softw. Pract. Exp..

[3]  B. Lampson,et al.  Organizing software in a distributed environment , 1983, SIGPLAN '83.

[4]  Dewayne E. Perry,et al.  Version control in the Inscape environment , 1987, ICSE '87.

[5]  Gail E. Kaiser,et al.  Infuse: a tool for automatically managing and coordinating source changes in large systems , 1987, CSC '87.

[6]  David B. Leblang,et al.  Computer-Aided Software Engineering in a distributed workstation environment , 1984 .

[7]  Robert Balzer Automated Enhancement of Knowledge Representations , 1985, IJCAI.

[8]  Mehdi T. Harandi,et al.  Workshop on software specification and design , 1988, SOEN.

[9]  I. C. Pyle,et al.  The ada programming language , 1985 .

[10]  Mary Shaw,et al.  Abstraction and Verification in Alphard: Introduction to Language and Methodology , 1976 .

[11]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[12]  Juris Hartmanis,et al.  The Programming Language Ada Reference Manual American National Standards Institute, Inc. ANSI/MIL-STD-1815A-1983 , 1983, Lecture Notes in Computer Science.

[13]  Walter F. Tichy,et al.  Rcs — a system for version control , 1985, Softw. Pract. Exp..

[14]  Marc J. Rochkind,et al.  The source code control system , 1975, IEEE Transactions on Software Engineering.

[15]  David C. Luckham,et al.  An Overview of Anna, a Specification Language for Ada , 1985, IEEE Software.

[16]  David Notkin The GANDALF project , 1985, J. Syst. Softw..

[17]  Dewayne E. Perry,et al.  CONSTRUCTIVE USE OF MODULE INTERFACE SPECIFICATIONS. , 1985 .

[18]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[19]  Larry Masinter,et al.  The Interlisp Programming Environment , 1981, Computer.

[20]  Murray Hill,et al.  Lint, a C Program Checker , 1978 .

[21]  Butler W. Lampson,et al.  Organizing software in a distributed environment , 1983, ACM SIGPLAN Notices.

[22]  Walter F. Tichy,et al.  Smart recompilation , 1986, TOPL.