Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Initiality, induction, and computability
Algebraic methods in semantics
Algebraic specification
Journal of Object-Oriented Programming
The interface description language: definition and use
The interface description language: definition and use
Design reuse and frameworks in the smalltalk-80 system
Software reusability
Journal of the ACM (JACM)
Handbook of theoretical computer science (vol. B)
Foundations for the study of software architecture
ACM SIGSOFT Software Engineering Notes
Handbook of logic in computer science (vol. 2)
Seamless object-oriented software architecture: analysis and design of reliable systems
Seamless object-oriented software architecture: analysis and design of reliable systems
Designing object systems: object-oriented modelling with Syntropy
Designing object systems: object-oriented modelling with Syntropy
Inside OLE (2nd ed.)
The pipes and filters architecture
Pattern languages of program design
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Specification of abstract data types
Specification of abstract data types
Objects, components, and frameworks with UML: the catalysis approach
Objects, components, and frameworks with UML: the catalysis approach
The Unified Modeling Language user guide
The Unified Modeling Language user guide
Initial Algebra Semantics and Continuous Algebras
Journal of the ACM (JACM)
An implementation-oriented semantics for module composition
Foundations of component-based systems
Implementing remote procedure calls
ACM Transactions on Computer Systems (TOCS)
On the criteria to be used in decomposing systems into modules
Communications of the ACM
SIMULA: an ALGOL-based simulation language
Communications of the ACM
Component Software: Beyond Object-Oriented Programming
Component Software: Beyond Object-Oriented Programming
Core Packages
Language Prototyping: An Algebraic Specification Approach: Vol. V
Language Prototyping: An Algebraic Specification Approach: Vol. V
Object-Oriented Programming; An Evolutionary Approach
Object-Oriented Programming; An Evolutionary Approach
ICSE '93 Selected papers from the Workshop on Studies of Software Design
Abstract Data Types: A Retrospective and Prospective View
MFCS '80 Proceedings of the 9th Symposium on Mathematical Foundations of Computer Science
Component-Oriented Programming
Proceedings of the Workshop on Object-Oriented Technology
A procedure for designing abstract interfaces for device interface modules
ICSE '81 Proceedings of the 5th international conference on Software engineering
Science of Computer Programming
Hi-index | 0.00 |
In this paper we examine formally the idea that the architecture of a system can be modelled by the structure of its interface expressed in terms of the interfaces for its components. Thus, System Interface Architecture = Structured set of Sub-system Interfaces. We specify an abstract model for interface definition languages (IDLs) based on this idea and the idea that an Interface = Name + Imports + Body. A set of interfaces is a repository. An interface architecture is a repository with some primary interfaces identified; the import dependencies between the interfaces of a repository are used to determine its structure.The abstract model uses algebraic specifications to define the abstract syntax of a general IDL, and interface transformations using structural induction. We examine a flattening process which assembles a system interface from its components.We use the general model to derive a simple IDL suitable for the design phase of object-oriented software development. This requires us to specify a form of Body that treats both data types and state, and in Body we explicitly distinguish between methods with and without side-effects, by commands and queries, respectively. We also consider alternative proposals for Body that yield new IDLs, including other object-oriented design languages and data type specification languages.