Situated Adaptive Software

Research in this project is supported by a contract under the management of the Information Technology Promotion Agency(IPA), Japan, as part of the Industrial Science and Technology Programme "New Models for Software Architectures", sponsored by NEDO (New Energy and Industrial Technology Development Organisation).


Project Goals

Software increasingly tends to dominate large systems, as more of their functionality is realised by programs rather than by special purpose hardware. Important examples occur in telecommunications, manufacturing, business, transportation, and entertainment. Experience shows that once a large software system is installed to support an on-going application, it can be very difficult to improve, even though changes may be vital for survival of the organisation involved. Reasons for this difficulty may include poor design, poor documentation, and an inadequate understanding of the social context in which the system is used.

The goal of the Situated Adaptive Software Project at Oxford, sponsored by MITI (the Japanese Ministry for Trade and Industry) is to make software more flexible and adaptable by developing a new software paradigm that pays more attention to semantics (e.g., documentation), modularisation, and especially context. This new paradigm will combine the object and logic paradigms, with the intent of taking account of the realities of very large software systems, including the situatedness of software components in relation to technical factors, such as the internal organisation of the software into objects, agents, processes and modules, as well as to their total systems context, including dynamic social, psychological, legal, and commercial factors. Progress towards this long term goal will be made by investigating the foundations of this new paradigm with regard to the semantics and modular specifications of systems of concurrent objects, and techniques for documenting and verifying properties of such systems.

A key research strategy of this project is to use algebra as much as possible, and particularly to use its logic, equational logic, which is the logic of substituting equals for equals. One important reason for this is that many problems are decidable or semi-decidable in equational logic that are not in more complex logics. Hence there are many algorithms and theories to support equational reasoning, and these have efficient implementations in various tools.

The object paradigm has many practical advantages, including its support for code reuse through inheritance, its intuitive appeal, and its affinity for data abstraction and for concurrency. However, it has not been integrated with the complementary advantages of the logic (or perhaps more accurately, relational) and functional paradigms.

A key technical goal in achieving this integration is to introduce so-called ``logical variables'' with values that range over objects. This will support a novel programming style, in which framing a query can activate methods that change the world so that a solution object actually comes to exist. For example, consider a query about a holiday package, with constraints on cost, flight times, hotels, and so on; a solution to this query would be an actual holiday package, with tickets, reservations, etc., satisfying the constraints. One can easily imagine many other application areas, where answering active queries over a domain specific objectbase actually creates new objects that satisfy the given constraints, e.g., in Computer Aided Design.

Further information

Maintained by Joseph Goguen
Last modified: Wed Jun 14 22:27:24 PDT 2000