Frameworks: the future of formal software development?

https://doi.org/10.1016/S0920-5489(98)00024-5Get rights and content

Abstract

It could be argued that the primary issue to be dealt with in software engineering today is re-use of software. Current software development rarely, if ever, starts from nothing. Unfortunately, the same cannot be said for the development of specifications. To overcome this problem, various works have attempted to show how specifications can be built using architectural principles. We discuss one such approach in particular, the Architectural Semantics of Open Distributed Processing. We show the limitations of this work with regard to the architecting of specifications and propose a new approach, based on frameworks. To highlight the approach we use the work currently being done in the TOSCA project in its development of a service creation and validation environment for telecommunication services.

Introduction

The development of software for open distributed systems is a complex activity. There are a multitude of issues that have to be addressed to ensure that the subsystems of the system under development interwork correctly to achieve their goals. Remoteness of software, potential for partial failure, concurrency, language and system heterogeneity are just some of the many direct problems facing distributed systems developers.

Whilst current technologies such as CORBA [2]have addressed many of the issues in remoteness and heterogeneity of languages and systems, such technologies fall short of being the final solution to building truly open distributed systems. To justify this, it is worth noting exactly what is meant by an open system since numerous interpretations of this term exist in the context of distributed systems. Leopold et al. [5]identify several definitions that can be considered as correctly interpreting the term open as found in distributed systems literature:

  • an environment and its model are easily obtainable and well documented;

  • the model and environment exist on many operating systems and work with many programming methodologies and languages;

  • several manufacturers support and control the market;

  • the environment and its model are developed after open debating.

We regard the openness of a distributed system as the extendability of that system. That is, how new resource-sharing systems can be added to a system without disrupting existing services. Typically this is achieved through making available the descriptions of specific entry points (interfaces) into the system. From these, it should be possible to add new (possibly heterogeneous) hardware and software to the system.

Recent areas of research 1, 7into open distributed systems are replacing the notion of interconnectivity of computers by interworking of enterprises. We note the distinction between these two concepts as they pertain here. Interconnectivity of computers can be regarded as the ability of computers to communicate successfully with one another. This might be realised, for example, through ensuring that they use similar communication protocols as might be found in the Open System Interconnection (OSI) reference model [12]. Interworking is wider in scope than message passing capabilities though. That is, whilst communication is essential for the successful interworking of separate enterprises, it is only a basis on which the interworking can be established. Interworking may thus be regarded informally as the integration of enterprises to achieve some commonly agreed goal.

The fundamental problem that must be overcome to develop truly open distributed software is one of semantics. Current technologies such as CORBA, are limited by the fact that their openness is defined largely in terms of syntactic aspects of systems, namely by interface definition languages (IDL). Whilst this allows the issues of implementation language and system heterogeneity to be overcome, the approach does not lend itself to building truly open systems according to the above definition. Rather, the approach lends itself to interconnectivity as opposed to interworking issues.

To overcome this problem it is essential that behavioural aspects of systems are dealt with.1 Formal modelling languages offer a means whereby behaviour can be expressed both precisely and concisely. Unfortunately such techniques are not widely exploited throughout the software engineering community, or at least not as much as we would advocate. There are numerous arguments put forward to reject such techniques—although proposals for improved techniques for expressing behaviour and semantics as precisely or concisely are rare. One of the these that we try to address in this paper, is the actual difficulty in developing specifications.

Various works have been proposed and investigated to overcome this difficulty. One of these was the Reference Model for Open Distributed Processing (ODP-RM) 8, 9. These documents describe semantics in a rigorous although informal manner using stylised natural language. Natural language is limited for specifying semantics though, especially when complexity increases. ODP recognised this and advocated the use of formal description techniques. The Architectural Semantics 10, 11was the result of this endorsement. The initiators of the Architectural Semantics identified numerous potential advantages for the work which we briefly discuss in Section 2.1. One of these was that it would allow a structured (architectural) approach to developing specifications of open distributed systems. Whilst this idea of architecture based specification is an appealing one 4, 13, 14, the Architectural Semantics work fell short of completely fulfilling this goal. We discuss the issues related to this shortcoming in Section 2.1and then propose a similar but more prescriptive approach based on the idea of frameworks. In particular we focus on the development of frameworks based on the Telecommunications Information Networking Architecture (TINA) in the context of the TOSCA project.

The rest of the paper is structured as follows. Section 2gives an overview of the architectural semantics and its advantages and, especially with regard to this paper, its limitations. Section 3introduces the concept of a framework and argues that they offer a means whereby the intention of the architectural semantics in terms of specification development can be realised. Section 4looks at the requirements placed upon formal languages if they are to be used to successfully model frameworks. Section 5highlights how this approach is being adopted in the TOSCA project. Finally Section 6draws some preliminary conclusions on the viability of frameworks as a mechanism for producing software in a formal manner.

Section snippets

Introduction to the ODP-RM

The ODP-RM is an architecture developed for creating standards for distributed systems. Here the term architecture implies that it consists of a collection of concepts with associated structuring rules that can be used for modelling and reasoning about distributed systems and the standards used to describe them. The ODP-RM itself is divided into four parts.

Part 1: Overview and Guide to Use—As its title suggests, this document provides introductory material on the ODP-RM framework family of

Introduction to the concept of frameworks

The concept of framework based software engineering has been developed to help to realise the holy grail of software engineering: re-use. Frameworks are a natural extension of object-oriented techniques. Whilst object technology provides a basis for re-use of code, it does not provide features to capture the design experience as such. Frameworks have developed to fulfil this need.

A framework can be regarded as a collection of pieces of software (or specification

Formal languages for modelling frameworks

The previous discussions have introduced a broad idea of frameworks in terms of the approaches of generalisation and specialisation. We consider now how these aspects impose requirements on formal languages used to model frameworks. Given the strong relation between frameworks and object orientation, languages used to formally describe frameworks should support object orientation. Whilst numerous formal languages have encompassed aspects of object orientation to varying degrees, few have had

Application of frameworks in the TOSCA project

The TOSCA project is concerned with the creation and validation of services based on the Telecommunications Information Networking Architecture (TINA). This architecture is based on the principles of ODP, e.g., it considers viewpoint languages and objects having potentially more than one interface. TINA is more prescriptive than ODP however in that explicit IDL and textual descriptions of the expected behaviour of many of the architectural components have been identified.

TINA itself is

Conclusions

This paper has attempted to show how specifications can be architected using an approach based on frameworks. Whilst initial results in terms of the general principles behind frameworks and their modelling in SDL have been encouraging, the next major test is—as with formal methods generally—one of scalability. The services that TOSCA wishes to model and validate are real world software engineering activities, requiring the modelling of numerous complex objects interacting in non-trivial ways,

Acknowledgements

The author is indebted to the partners in the TOSCA project and fellow GMD colleagues. The TOSCA consortium consists of Teltec DCU, Silicon and Software Systems, British Telecommunications, University of Strathclyde, Centro Studi e Laboratori di Telecommunicazioni, Telelogic, Lund Institute of Technology, GMD and Ericsson. The project is funded under ACTS proposal AC237.

Richard Sinnott graduated in Theoretical Physics from University of East Anglia (Norwich) in 1988. He obtained his Masters (MSc) in Software Engineering in 1993 and his PhD in 1997 both from the University of Stirling. His research interests are predominantly based around the application of formal description techniques to object based disributed systems. He is currently employed at GMD Fokus working on the TOSCA project. Since 1994 he has been acting as the editor of the ISO/ITU-T

References (21)

  • R.O Sinnott et al.

    Applying formal methods to standard development: the open distributed processing experience

    Computer Standards and Interfaces

    (1995)
  • The ANSA Reference Manual, Architecture Projects Management, Poseidon House, Castle Park, Cambridge, UK,...
  • Object Management Group, The Common Object Request Broker Architecture and Specification: Revision 2.0, Object...
  • ISO/IEC, Information Processing Systems—Open Systems Interconnection—Estelle—A Formal Description Technique Based on an...
  • K.J. Turner, Relating Architecture and Specification, Computer Networks and ISDN Systems: Special Edition on...
  • H. Leopold, G. Coulson, K. Frimpong-Ansah, D. Hutchison, N. Singer, The Evolving Relationship between OSI and ODP in...
  • ISO/IEC, Information Processing Systems–Open Systems Interconnection–LOTOS—A Formal Description Technique based on the...
  • ISO/IEC, Basic Reference Model of ODP: Overview and Guide to Use, International Standard 10746-1, ITU-T X.902, Geneva,...
  • ISO/IEC, Basic Reference Model of ODP: Foundations, International Standard 10746-2, ITU-T X.902, Geneva, Switzerland,...
  • ISO/IEC, Basic Reference Model of ODP: Architecture, International Standard 10746-3, ITU-T X.903, Geneva, Switzerland,...
There are more references available in the full text version of this article.

Cited by (4)

  1. Download : Download full-size image
Richard Sinnott graduated in Theoretical Physics from University of East Anglia (Norwich) in 1988. He obtained his Masters (MSc) in Software Engineering in 1993 and his PhD in 1997 both from the University of Stirling. His research interests are predominantly based around the application of formal description techniques to object based disributed systems. He is currently employed at GMD Fokus working on the TOSCA project. Since 1994 he has been acting as the editor of the ISO/ITU-T standardisation activity on the formalisation of the Reference Model of Open Distributed Processing.

View full text