new directions in software development

2

Click here to load reader

Upload: m-jackson

Post on 26-Jun-2016

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: New directions in software development

Editorial New directions in software development

M Jackson and M Shepperd

This special issue, New directions in software develop- ment*, focuses on three topics central to the engineering of large-scale software systems. These are:

• object management sytems, that is, the software that facilitates the creation and manipulation of data objects

• techniques for testing large software systems • methods that are appropriate for the maintenance of

existing software systems

In some ways it might be argued that only the first topic - - object management systems - - is entirely new, where- as software developers have always had to test and main- tain their systems. While this may be true, it is also true that these topics have until recently been the 'Cinderella' subjects of computer science. This trend has been recently reversed and there is now much new and exciting work being carried out within these areas, hence their inclusion in this special issue.

OBJECT M A N A G E M E N T S Y S T E M S

Traditionally, software engineering and database man- agement have existed as separate disciplines. Database technology has concentrated on the static aspects of information storage, while software engineering has modelled the dynamic aspects of software. With the arrival of object-oriented database management systems (OODBMSs), the two disciplines are combining to deve- lop systems that model both process and data.

Mike Jackson's paper presents an introduction to OODBMSs and highlights the variations of opinion on what actually constitutes an object-oriented database. Two systems, Postgres, which owes much to a traditional database approach, and GemStone, a system that has grown from the programming language Smalltalk, are compared.

In addition to introducing dynamic concepts, object- oriented databases represent a significant increase in the ability of a database to capture the semantics of data. To

School of Computing and Information Technology, Wolverhampton Polytechnic, Wulfruna St., Wolverhampton, WVI I LY. UK. *The papers comprising this special issue were all first presented at the BCS/Wolverhampton Polytechnic Seminar Series 'New Directions in Software Development 1990', excepting those by Gorla and McLeod.

a certain extent they represent the culmination of many years research in semantic modelling. Dennis McLeod's paper describes the history and principles of semantic database systems to outline the OODBMS heritage.

The interest in object-oriented databases has arisen from application areas where traditional database systems fail to meet specialized requirements. It might therefore be suggested that further new application areas will require an enhancement of the OODBMS concept. Elizabeth Oxborrow et al. examine the requirements of nontraditional database applications and suggests that to cope with their variety, extensibility should be a standard feature of future database systems.

John Gray and Frank Poole demonstrate how the object-oriented approach can be used to generate trans- puter-based systems. In this paper there is clear evidence that claims made for the object-oriented approach by both the database and the software engineering community can be achieved in practice.

The development of geographic information systems has often been cited in the literature as an application that needs the capabilities of an OODBMS. Stuart Roberts et al. explores this claim through the medium of their system GeoScope.

T E S T I N G L A R G E S O F T W A R E S Y S T E M S

Pat Hall introduces the area of software testing by reviewing current methods of evolving sets of test cases. He emphasizes the fundamental role of the specification in this process, before proceeding to advance a theory of software testing founded on the view that testing may be regarded as a sampling process whereby one is attempt- ing to characterize the divergence - - or hopefully conver- gence - - between the specification and implementation.

The second paper in this section, by David Coward, considers one particular technique for software testing, namely, symbolic execution. This technique does not involve the actual execution of a program, but rather requires the generation of sets of expressions to define each output variable in terms of input variables and constants. Applications include the identification of infeasible paths and the generation of software test cases. The paper identifies some of the problems inherent with symbolic execution, most notably scale, arrays, and loops. Coward concludes, however, that when coupled

2 0950-5849/91/010002~)2 ~?) 1991 Butterworth Heinemann Ltd information and software technology

Page 2: New directions in software development

Editorial

with linear optimization symbolic execution may prove to be useful for much commercial software.

S O F T W A R E M A I N T E N A N C E

The section on software maintenance commences with a tutorial paper by Narasimhaiah Gorla that emphasizes the cost and therefore the significance of software main- tenance. This leads on to a survey of a variety of current methods for the reduction in these maintenance costs. Included are some of the software tools available for this purpose, such as sophisticated browsers, automatic documentation tools, and code analysers. Gorla also introduces many of the techniques for reducing future maintenance costs, most notably restructuring, reverse engineering, and defensive programming.

These ideas are reinforced by Keith Bennett's overview of three major European research programmes in the sof- tware maintenance arena, namely the ReForm, REDO and MACS projects. The ReForm project has as its concern the application of rigorous program transformation techniques that enable old code to be replaced by more readable but semantically equivalent new code. The REDO project addresses the need for improved and more coherent meth- ods for the maintenance of software systems. These process models may then form a foundation for a coherent, inte- grated toolkit. The final project is MACS, which involves research into the application of expert systems and an object-oriented database system for the development of tools to support the maintenance process.

Dieter Rombach considers the relationship between software reuse and software maintenance, arguing that the former may provide a key to the software industry's problems with the latter. Furthermore, it can be argued that adapting a component for reuse is a particular form of software maintenance and consequently many of the lessons learnt by the reuse community are equally appli- cable for software maintenance given the adoption of an appropriate framework.

John Walker and Stephen Linkman conclude by consi- dering the role of software maintenance measurement. They argue that the benefits from software metrics will only be realised when they are employed to control deve- lopment and maintenance programmes to achieve speci- fic goals. Thus it might be argued that in some ways it is unhelpful to distinguish between development and main- tenance metrics as they should both be goal driven.

In conclusion, this special issue gives coverage to the areas of object management systems, software testing, and maintenance. It is argued that these are fundamental to software development. An understanding of these topics, and their associated problems, is essential if improvements in software productivity and quality are to be attained. The issue also highlights the importance of continuing research in these areas, and thus the need to integrate them properly into mainstream software engineering work.

vol 33 no 1 january/february 1991 3