Architecting software with interface objects

One of the main concerns of software architects is managing the complexity that is inherent in the development and evolution of large software by minimising and isolating dependencies between different parts into concise descriptions of their interfaces. Possible grouping, ordering or other relations and constraints between the interface elements themselves or with the intended user appear as informal comments or are left unspecified. We have developed a model for structuring and describing interfaces that is suitable for complex software components. In each interaction domain, we use interface objects for hierarchical groupings of interface elements related to the specific function or role played by the component in its interactions with other components. When components are aggregated into composite components, their interface objects may be aggregated in a similar way into composite interface objects. The state of an interface object allows one to specify the conditional availability of its interface elements. Nonuniform visibility of interface elements to different collaborators may be achieved by alternative groupings of interface elements and by selective visibility of interface objects. Interface objects isolate and open a part of the component implementation that is relevant for understanding the interactions of the component, and they thus serve as precise descriptions of its interfaces. An important principle of our approach was to address these problems without introducing new tools or languages, in order to make the approach immediately useful for software engineers working on product development.

[1]  Alexander Ran,et al.  Structuring interfaces , 1996, ISAW '96.

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

[3]  Oscar Nierstrasz,et al.  Regular types for active objects , 1993, OOPSLA '93.

[4]  Daniel M. Yellin,et al.  Interfaces, protocols, and the semi-automatic construction of software adaptors , 1994, OOPSLA 1994.

[5]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[6]  Doug Lea,et al.  Interface-Based Protocol Specification of Open Systems using PSL , 1995, ECOOP.

[7]  M. W. Oliphant,et al.  An introduction to GSM , 1995 .