Mark Ryan
School of Computer Science
University of Birmingham
Edgbaston
Birmingham B15 2TT
Tel +44 121 414 7361
Fax +44 121 414 4281
Email mdr@cs.bham.ac.uk
August 1996
This project will address the problem of adding features to specifications of complex software products, in particular software for telecommunication services.
Complex software systems nearly always have an extended lifetime during which requirements change, e.g. because users become more sophisticated or because the underlying technology supports more capabilities. Meeting new requirements may involve changing existing components or adding new components. The more complex the system is the harder it is to make such changes without breaking something; this problem has been dubbed the `feature interaction problem'. Methods and tools to overcome these problems are potentially of immense commercial value to BT.
This project will provide tools and a methodology to overcome these difficulties. This has two main strands: providing a new means of specifying complex systems and their functions precisely, and providing new tools for manipulating the specifications.
In particular, the project will deliver:
This will extend and apply theoretical ideas already developed by the author. In order to test the language and tools and help to explain the methodology to potential users, the project will also deliver:
Telecommunication companies face considerable problems when they introduce, remove, or re-specify services. BT is aware of this, as evidenced by its group on feature interactions, led by Mel Bale. Two important such problems are:
The provision of a service is a feature of the telecommunications system, and hence one can loosely use the terms `service' and `feature' interchangeably. (Strictly speaking, a service might imply several distinct features, and also there might be features which don't correspond to any service.)
Current trends in telecommunications indicate that software development methods will have to give much better support for the easy introduction of new services. This requires a paradigm shift towards feature-orientation, away from the purely resource-oriented nature of (for example) current object-oriented methods.
This project proposes the feature as a structuring mechanism for specifications. It will deliver a feature-oriented specification language, in which the specification of a feature or service is a self-contained, compact unit which can be introduced in any specification that satisfies certain minimal requirements determined by the service. This will address the first of the two problems mentioned.
The specification language will be supported by a logic which can be used to prove properties about specifications. This will enable feature interactions to be described and analysed. This will address the second problem.
The design of the specification language will start from the classical object-oriented (OO) structuring mechanism. Indeed, recent experience in the OO community in formal requirements specification also points to the need for a higher-level module notion than the object description. The expectations raised by object-orientation concerning the ease of adapting existing systems to new requirements have not been fulfilled. The inheritance mechanism has been shown to be insufficient. A larger-scale mechanism allowing consistent, simultaneous introduction of new and specialised classes is required.
Until recently it was not clear how to set up such a mechanism although several proposals have appeared in the literature. The goal of the project relies on bringing together these two views (the feature view emerging in telecommunications, and the need for a high-level structuring mechanism in OO) by recognising that the needed structuring concept should be identified with the feature.
The proposal is to define a specification language and logic in which features are first-class objects. That means that the feature is a basic structuring mechanism. The language will allow features to be added, removed, or respecified with relative ease, and will allow features designed for one specification to be applied to another (provided certain conditions which form part of the feature are met). It will provide a language for checking feature interactions and resolving them.
Model-checking is emerging as a powerful verification technique which is attracting industrial attention because of its ability to deal with large-scale verification problems. The SMV language described above is specifically designed for model-checking, but other languages can also benefit from model-checking technology, if a method for generating canonical transition systems from specifications can be found. This is a new and exciting approach to automatic verification of temporal properties which is not expected to suffer from the intractabilities of traditional theorem proving.
The main tool produced will be a query evaluator, which will be able to evaluate whether a given featured specification has certain properties or not. This will be able to deal with some types of interaction, such as deadlock. Later, it will be extended for other types of interaction. When the system fails to satisfy the property, the technique will generate a typical example of the interaction (using, eg, model checking and tableaux approaches).
There will be considerable overlap between these tasks, but broadly speaking, items (1)-(3) and some of the case studies are intended to be finished by the first year. During the first year also, the remaining items will be further specified, and carried out in the second and third years.
Mark D Ryan