Language Features for the Interconnection of Software Components

Abstract The increasing size and complexity of software systems calls not only for methods to determine their optimal breakdown into components but also for clear and precise techniques to specify (and control) the interconnections among these components. In the various subfields involved with this issue—software engineering, programming languages, conceptual modeling, and knowledge representation—different backgrounds lead to different approaches for modeling component interconnection. We review different language paradigms for specifying component interconnection and provide a unifying framework for comparing linguistic features for interconnection specification. Examples of such features are different kinds of components, semantic categories of interconnection relations, the granularity and precision of interconnection specifications, and the structure of interconnections. Besides a feature comparison, the framework presented allows for a focused choice of expressing those aspects of component interconnection that are deemed critical for understanding the cooperation of components in development or maintenance efforts of very large systems. We conclude with a discussion of the role of interconnection specification in software development and with hints for problems worthy of further investigation.

[1]  Nazim H. Madhavji,et al.  Fragtypes: A Basis for Programming Environments , 1988, IEEE Trans. Software Eng..

[2]  Glenford J Myers,et al.  Reliable software through composite design , 1975 .

[3]  Stephen S. Yau,et al.  Knowledge Representation of Software Component Interconnection Information for Large-Scale Software Modifications , 1987, IEEE Transactions on Software Engineering.

[4]  Peter F. Sweeney,et al.  Three steps to views: extending the object-oriented paradigm , 1989, OOPSLA 1989.

[5]  Walter F. Tichy,et al.  Summary of the Dagstuhl workshop on future directions in software engineering: February 17–21, 1992, Schloß Dagstuhl , 1993, SOEN.

[6]  Glenford J. Myers,et al.  Structured Design , 1974, IBM Syst. J..

[7]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[8]  David Garlan,et al.  Architectural Mismatch or Why it's hard to build systems out of existing parts , 1995, 1995 17th International Conference on Software Engineering.

[9]  Roger King,et al.  Semantic database modeling: survey, applications, and research issues , 1987, CSUR.

[10]  Maurizio Lenzerini,et al.  Inheritance hierarchies in knowledge representation and programming languages , 1991 .

[11]  Peter Wegner Dimensions of object-based language design , 1987, OOPSLA 1987.

[12]  A. Snyder CommonObjects: an overview , 1986, OOPWORK '86.

[13]  Rubén Prieto-Díaz,et al.  Software reusability , 1993 .

[14]  John Mylopoulos,et al.  Object-Orientation and Knowledge Representation , 1990, DS-4.

[15]  Michael L. Brodie,et al.  On Conceptual Modelling , 1984, Topics in Information Systems.

[16]  Roland Mittermeir,et al.  Layered specifications to support reusability and integrability , 1992, J. Syst. Integr..

[17]  Luca Cardelli,et al.  Modula-3 language definition , 1992, SIGP.

[18]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[19]  Donald A. Waterman,et al.  Pattern-Directed Inference Systems , 1981, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[20]  David E. Monarchi,et al.  A research typology for object-oriented analysis and design , 1992, CACM.

[21]  Samuel P. Harbison,et al.  Modula-3 , 1992 .

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

[23]  John Mylopoulos,et al.  Generalization/Specialization as a Basis for Software Specification , 1982, On Conceptual Modelling.

[24]  D. Richard Kuhn On the effective use of software standards in systems integration , 1990, Systems Integration '90. Proceedings of the First International Conference on Systems Integration.

[25]  James M. Purtilo,et al.  The POLYLITH software bus , 1994, TOPL.

[26]  David Garlan,et al.  Formalizing Architectural Connection , 1994, ICSE.

[27]  Randy H. Katz,et al.  Toward a unified framework for version modeling in engineering databases , 1990, CSUR.

[28]  Bruce G. Buchanan,et al.  Meta-Level Knowledge: Overview and Applications , 1977, IJCAI.

[29]  John A. McDermid,et al.  Learning from IPSE's mistakes , 1992, IEEE Software.

[30]  Michael L. Brodie Association: A Database Abstraction for Semantic Modelling , 1981, ER.

[31]  Cliff B. Jones,et al.  Software development - a rigorous approach , 1980, Prentice Hall international series in computer science.

[32]  Ronald J. Brachman,et al.  What IS-A Is and Isn't: An Analysis of Taxonomic Links in Semantic Networks , 1983, Computer.

[33]  Mansur H. Samadzadeh,et al.  An interconnection language for reuse at the template/module level , 1993, J. Syst. Softw..

[34]  Rubén Prieto-Díaz,et al.  Module interconnection languages , 1986, J. Syst. Softw..

[35]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[36]  C. A. R. Hoare,et al.  A contribution to the development of ALGOL , 1966, CACM.

[37]  Wilf R. LaLonde,et al.  Smalltalk: subclassing subtyping is-a , 1991 .

[38]  Edward Yourdon,et al.  Structured design : fundamentals of a discip!ine of computer proqram and system desiqn , 1979 .

[39]  Roland Mittermeir,et al.  Software Bases for the Flexible Composition of Application Systems , 1987, IEEE Transactions on Software Engineering.

[40]  Gill Smith,et al.  Object-oriented analysis , 1988, WADAS '88.

[41]  Jack C. Wileden,et al.  The AdaPIC Tool Set: Supporting Interface Control and Analysis Throughout the Software Development Process , 1989, IEEE Trans. Software Eng..

[42]  Roland Mittermeir,et al.  The HIBOL-2 environment: A basis for visual programming of business objects , 1990, J. Syst. Softw..

[43]  Jack C. Wileden,et al.  A Model of Visibility Control , 1988, IEEE Trans. Software Eng..

[44]  Randall B. Smith,et al.  Self: The power of simplicity , 1987, OOPSLA 1987.

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

[46]  Roland Mittermeir,et al.  Semantic-Based Software Retrieval to Support Rapid Prototyping , 1992, Struct. Program..

[47]  Alan Snyder,et al.  CommonObjects: an overview , 1986, OOPWORK '86.

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

[49]  James F. Stay HIPO and Integrated Program Design , 1976, IBM Syst. J..

[50]  Alan Snyder Encapsulation and inheritance in object-oriented programming languages , 1986, OOPSLA 1986.

[51]  Michael D. Rice,et al.  A Formal Model for Module Interconnection Languages , 1994, IEEE Trans. Software Eng..

[52]  Roger King,et al.  The Cactis Project: Database Support for Software Environment , 1988, IEEE Trans. Software Eng..

[53]  Ellis Horowitz,et al.  Object-oriented databases with applications to CASE, networks, and VLSI CAD , 1991 .

[54]  David Garlan,et al.  Formalizing architectural connection , 1994, Proceedings of 16th International Conference on Software Engineering.

[55]  Morris Sloman,et al.  Constructing Distributed Systems in Conic , 1989, IEEE Trans. Software Eng..

[56]  Renate Motschnig-Pitrik,et al.  The Semantics of Parts Versus Aggregates in Data/Knowledge Modelling , 1993 .

[57]  Jeffrey D. Ullman,et al.  Principles of Database Systems , 1980 .

[58]  Brian Henderson-Sellers,et al.  The object-oriented systems life cycle , 1990, CACM.

[59]  John V. Guttag,et al.  The specification and application to programming of abstract data types. , 1975 .

[60]  Gail E. Kaiser,et al.  Models of software development environments , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[61]  Diane C. P. Smith,et al.  Database abstractions: aggregation and generalization , 1977, TODS.

[62]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

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

[64]  David W. Embley,et al.  Object-oriented systems analysis - a model-driven approach , 1991, Yourdon Press Computing series.

[65]  Hanspeter Mössenböck,et al.  The Programming Language Oberon-2 , 1991, Struct. Program..

[66]  Douglas T. Ross,et al.  Structured Analysis (SA): A Language for Communicating Ideas , 1977, IEEE Transactions on Software Engineering.

[67]  John Mylopoulos,et al.  Classes and Instances , 1992, Int. J. Cooperative Inf. Syst..

[68]  Chris Tomlinson,et al.  Concurrent Object-Oriented Programming Languages , 1989, Object-Oriented Concepts, Databases, and Applications.

[69]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975 .

[70]  Bjarne Stroustrup,et al.  The C++ programming language (3. ed.) , 1997 .

[71]  John Mylopoulos,et al.  A language facility for designing interactive database-intensive applications , 1978, SIGMOD '78.

[72]  Axel van Lamsweerde,et al.  Generic Lifecycle Support in the ALMA Environment , 1988, IEEE Trans. Software Eng..

[73]  Ron Weber,et al.  A Unified Model Of Software And Data Decomposition , 1991, ICIS.

[74]  Henry Lieberman,et al.  A Shared View of Sharing: The Treaty of Orlando , 1988, Object-Oriented Concepts, Databases, and Applications.

[75]  Bertrand Meyer,et al.  Reusability: The Case for Object-Oriented Design , 1987, IEEE Software.

[76]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[77]  Mary Shaw,et al.  Architectural issues in software reuse: it's not just the functionality, it's the packaging , 1995, SSR '95.

[78]  Peter Wegner,et al.  Concepts and paradigms of object-oriented programming , 1990, OOPS.

[79]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[80]  Edward H. Shortliffe,et al.  Production Rules as a Representation for a Knowledge-Based Consultation Program , 1977, Artif. Intell..

[81]  Atul Prakash,et al.  The Evolution Support Environment System , 1990, IEEE Trans. Software Eng..

[82]  Dewayne E. Perry,et al.  Software interconnection models , 1987, ICSE '87.

[83]  Joan Peckham,et al.  Semantic data models , 1988, CSUR.

[84]  John Mylopoulos,et al.  A language facility for designing database-intensive applications , 1980, TODS.

[85]  Jacques Ferber Computational reflection in class based object-oriented languages , 1989, OOPSLA 1989.

[86]  Hausi A. Müller,et al.  Rigi: a system for programming-in-the-large , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[87]  Matthias Jarke,et al.  Telos: representing knowledge about information systems , 1990, TOIS.

[88]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[89]  Bertrand Meyer,et al.  Lessons from the design of the Eiffel libraries , 1990, CACM.

[90]  Joseph Wilson Thomas Module interconnection in programming systems supporting abstraction. , 1976 .

[91]  Richard Fikes,et al.  The role of frame-based representation in reasoning , 1985, CACM.

[92]  Daniel G. Bobrow,et al.  Object-Oriented Programming: Themes and Variations , 1989, AI Mag..

[93]  Walt Scacchi,et al.  Maintaining Configurations of Evolving Software Systems , 1987, IEEE Transactions on Software Engineering.

[94]  Ken Kennedy,et al.  Efficient recompilation of module interfaces in a software development environment , 1987, SDE 2.

[95]  J. Eliot B. Moss,et al.  Object Orientation as Catalyst for Language-Database Inegration , 1989, Object-Oriented Concepts, Databases, and Applications.

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

[97]  Markus Tresch,et al.  Views in Object-Oriented Databases , 1990, FMLDO.

[98]  David Notkin,et al.  Gandalf: Software development environments , 1986, IEEE Transactions on Software Engineering.

[99]  Anthony I. Wasserman,et al.  The object-oriented structured design notation for software design representation , 1990, Computer.

[100]  Elisa Bertino,et al.  A View Mechanism for Object-Oriented Databases , 1992, EDBT.

[101]  Joseph A. Goguen,et al.  Reusing and Interconnecting Software Components , 1986, Computer.

[102]  R. T. Mittermeir,et al.  Software bases and software archives: alternatives to support software reuse , 1987, FJCC.

[103]  Won Kim,et al.  Introduction to Object-Oriented Databases , 1991, Computer systems.

[104]  R. Motschnig-Pitrik Toward a common structural level for software, database, and knowledge-based systems , 1990 .

[105]  David Garlan,et al.  Software architecture: practice, potential, and pitfalls , 1994, Proceedings of 16th International Conference on Software Engineering.

[106]  Jack C. Wileden,et al.  Ada-Based support for programming-in-the-Large , 1985, IEEE Software.

[107]  A. Nico Habermann,et al.  Engineering Large Knowledge-Based Systems , 1990, Data Knowl. Eng..

[108]  Niklaus Wirth,et al.  Programming in Modula-2 , 1985, Texts and Monographs in Computer Science.

[109]  M. A. Jackson,et al.  Structured Systems Analysis: Tools and Techniques , 1980 .

[110]  Maria Heloisa Penedo,et al.  PMDB—a project master database for software engineering environments , 1985, ICSE '85.

[111]  John Mylopoulos,et al.  From Organization Models to System Requirements: A 'Cooperating Agents' Approach , 1995, CoopIS.

[112]  T. M. Rajkumar,et al.  Object-oriented software design , 1998, The Information System Consultant’s Handbook.

[113]  James Martin,et al.  Object-oriented analysis and design , 1992 .

[114]  Ming-Chien Shan,et al.  Iris: An Object-Oriented Database Management System , 1989, ACM Trans. Inf. Syst..

[115]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[116]  Won Kim,et al.  Object-Oriented Concepts, Databases, and Applications , 1989 .

[117]  A. Nico Habermann,et al.  Software Development Environments , 1987, Computer.

[118]  Gregory R. Andrews,et al.  Concepts and Notations for Concurrent Programming , 1983, CSUR.

[119]  Wilhelm Rossak,et al.  Some thoughts on systems integration: A conceptual framework , 1991, J. Syst. Integr..

[120]  Martin Reiser Oberon system - user guide and programmer's manual , 1991 .

[121]  Ronald J. Brachman,et al.  ON THE EPISTEMOLOGICAL STATUS OF SEMANTIC NETWORKS , 1979 .

[122]  Oscar Nierstrasz,et al.  A Survey of Object-Oriented Concepts , 1989, Object-Oriented Concepts, Databases, and Applications.

[123]  Roland Mittermeir,et al.  A systemic approach to process modeling , 1991, J. Syst. Integr..

[124]  Lee Wendell Cooprider The representation of families of software systems. , 1978 .

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

[126]  Grady Booch,et al.  Software engineering with Ada , 1983 .

[127]  Veda C. Storey,et al.  Unravelling Is-a Structures , 1992, Inf. Syst. Res..

[128]  李幼升,et al.  Ph , 1989 .

[129]  Veda C. Storey,et al.  Modelling of set Membership: The Notion and the Issues , 1995, Data Knowl. Eng..

[130]  Edward Sciore,et al.  Multidimensional Versioning for Object-Oriented Databases , 1991, DOOD.

[131]  David Maier,et al.  Integrating an object server with other worlds , 1987, TOIS.

[132]  Renate Motschnig-Pitrik An integrating view on the viewing abstraction: Contexts and perspectives in software development, AI, and databases , 1995 .

[133]  Renate Motschnig-Pitrik Requirements and comparison of view mechanisms for object-oriented databases , 1996 .

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

[135]  D. Perry The Inscape Environment , 1989, 11th International Conference on Software Engineering.