1. An algebraic theory of software interfaces
- Author
-
Rees, D. L.
- Subjects
519 - Abstract
We begin in Chapter 3 by extending the mathematical notion of a signature with an explicit name and an import mechanism to form a model of basic interfaces. A collection of interface definitions is termed a repository. The overall software architecture of a system can be considered in terms of the structure of interfaces within its repository. Basic interfaces with import lists of interface names articulate the data dependencies of an interface. We also consider whole graphs of import dependencies within a repository. In chapters 3 and 4 we augment our basic interfaces with a notion of state to form stateful interfaces. Stateful interfaces extend the structure of basic interfaces by declaring lists of queries and commands. Queries allow interrogation of state whereas commands allow change of state. Later, in chapter 4, we show how inheritance and encapsulation mechanisms can be modelled using our notion of interfaces. In addition to our basic model of inheritance, we provide three separate models of interfaces with encapsulation based on the C++, Java and Eiffel programming languages. The second part of thesis concerns object-oriented modelling, particularly the snapshot and scenario notions found in the Unified Modelling Language. In chapter 6 we define state algebras, which describe the set of all possible states of a domain of discourse. We show how state algebras can be formed from simple object-oriented models. In chapter 7 we show how our notion of a state algebra can be augmented by constructing a simulation algebra which describes the dynamic behaviour of an abstract world or system in terms of atomic, global events. We show how guarded forms of our simulation algebras can be defined which reject certain events depending on the current system state.
- Published
- 2000