A number of Interrelated developments are changing the nature of software technology. Developments in hardware are putting greatly increased power at the disposal of the software technologist. Advances in formal methods are providing the means to bring greater precision into the early stages of system development. Techniques such as expert systems are being brought into the domain of software technology as a result of advances in the application of artificial intelligence research. Developments in paradigms of system development are giving the software technologist better models of system structure and better tools and techniques for creating large systems, and greater political recognition of the importance of information technology is resulting in increased funding for research and development in software technology. This book brings together twenty-one papers on these developments in software technology, selected from papers presented at recent European Seminars on Industrial Software Technology organised by the European Workshop on Industrial Computer Systems (EWICS), whose aim is to promote the effective use of industrial computer systems through education, dissemination of information, and the development of guidelines and standards.
Inspec keywords: artificial intelligence; software management; software engineering; brain-computer interfaces
Other keywords: formal method; human computer interface; artificial intelligence; system development; software tool; software technology
Subjects: Software management; Software engineering techniques; Production engineering computing; Expert systems and other AI software and techniques; User interfaces
This chapter discusses a comparison of the Esprit and Fifth Generation programmes. The Esprit programme was stated to be a reaction by the European Community to the Japanese Fifth Generation initiative. However, the Esprit programme is a very much wider ranging programme, is dealing with a very different industrial infrastructure, is covering a much wider geographical disparity both of national interests and national boundaries and, because of the 50% funding concept built into the programme, cannot expect to achieve the cohesion that the Japanese programme is achieving. However both programmes are creating significant advances in their fields, both directly through the participants and indirectly by the publicity given to the programmes. The major difference is in the approach to technology transfer.
This chapter discusses existing and potential applications to the field of software engineering of methods and tools developed in the area of artificial intelligence. We also indicate problem areas in the field of artificial intelligence which might be resolved by software engineers. The topics include programming by searching as a basic programming paradigm, the use of rule based systems and Al-languages, applications to rapid prototyping and program transformations. Furthermore the potential use of expert systems in software engineering is investigated.
This chapter discusses some ways in which AI techniques are being applied to support the Software Engineering regime and the set of methods appropriate to the particular application domain. Lastly an example is given of the use of knowledge-based components (as part of the executable software) to realise specified requirements directly.
This chapter discusses the structure of an expert system that is already being considered generic, involving components such as a knowledge base and an inference engine. This generic structure is beginning to have its effect on the marketplace with vendors offering generic components for sale. To illustrate the issue, consider current efforts in the construction of databases for Ada™ Programming Support Environments. Generic data models such as the relational model have achieved such widespread acceptance that the marketplace has produced an enormous variety of efficient, cost-effective products.
Several interaction points between the software development process in general and the Artificial Intelligence paradigm are presented. Knowledge Based Systems become more and more attractive for solving various automation areas independently of the application domain. Artificial Intelligence is an enabling technology, and one of the application domains is software production. There are various approaches to use this technology. KADS methodology is a development into the future towards a completely supported knowledge based life-cycle model for the development of Knowledge Based Systems. A similar approach can also be taken for the development of more conventional information systems, the expertise necessary to build up an expert system environment for software engineering is available.
The transition from one document within a software development to the next can be viewed as transformation of the underlaying languages. Depending on the determinism and completeness of the documents this transformation can be automised or supported by a computer. In this chapter we define a model of a software development environment based on an expert system for transformations. The transformation system behaves similar to a Prolog system. We discuss the structure of the system and the tasks of the different components. For the phases requirements, engineering specification, prototyping and implementation we show examples of the system within such applications.
The Structured Systems Analysis and Design Method (SSADM) is the standard method for systems analysis and design in Government batch and transaction processing projects. In SSADM, analysis and design are clearly separated activities. Systems analysis is concerned with defining what has to be done, systems design with how it will be done.
This chapter discusses formal methods. The introduction of formal methods of system development is seen as a major step towards improving the software engineering process. Formal methods are rigorous engineering practices based on mathematically formal foundations. Unlike most of the present day approaches in widespread use, formal methods provide the means of expressing system designs concisely and unambiguously and in such a way that the behavioural aspects of systems can be explored through formal logical manipulation.
This chapter discusses the ASPIS project. The prototyping strategy of ASPIS is based on executable specification languages based on logic. The executability is obtained via translation into an extended Prolog. The most interesting aspects of the outlined prototyping strategy are the possibility of checking different aspects of the system and to animate partially specified systems. The current implementation consists of an analyser and a translator of RSLogic into extended Prolog and a meta Prolog interpreter able to handle sets and constrained clauses.
The applicability of principles and practices of lazy purely declarative programming to various areas of software engineering is outlined. They are shown to help bridge gaps between the different software development stages and activities (specification, design, coding, debugging, testing, documentation) and, consequently, between the different actors involved.
The catchword 'standard' has been used in conjunction with the Unix operating system with increasing frequency in recent times. This situation reflects a growing need among software developers for standards not merely at the programming language level, but at the level of the programming environment. Evidently, Unix has been perceived as the current best hope of achieving that goal. Yet there are significant obstacles to the standardisation of Unix. In this chapter we look at recent efforts toward the standardisation of Unix and examine some of the problem areas in detail.
ASPECT was the first Alvey-supported software engineering project and is a collaborative venture aimed at prototyping a multi-language, distributed-host, distributed-target Integrated Project Support Environment. The ASPECT team is led by Systems Designers pic (SD) and the other partners are the Universities of Newcastle upon Tyne and of York, GEC Computers Limited, ICL and MARL Following the Alvey strategy, ASPECT has started by integrating existing tools, notably Perspective from SD, on UNIX; this environment is being developed by distributing it using the Newcastle Connection and then building in the more advanced results of collaborative research and development.
The office of the future needs different multimedia workstations for different user groups. The architecture and the highlights of our multimedia office environment are sketched. The manager workstation has a completely new human-computer-interface: a horizontal flat panel built into an office desk. On the flat panel a touch-sensitive foil is used for input. Virtual keyboards can be displayed on the flat panel if needed by the application. A pencil with a built-in ultrasonic-transmitter is used as a pointing and handwriting device. Our model of multimedia interaction and communication is presented. A detailed explanation of how the processing of office procedures is implemented on our experimental workstations is given.
This chapter describes the design and partially the implementation of a retargetable debugging system for the Karlsruhe Ada compiler. The most essential implication is that there is no need to have two versions of the program: one for debugging and one for real usage. Otherwise it would be very difficult, perhaps impossible, to guarantee that the instrumented version will produce the same error situations. On the other hand, debugging code must not be incorporated into the program to avoid overhead for the normal execution.
This chapter discusses man-machine approach in ESPRIT projects. It is likely that a multidisciplinary approach is necessary when one considers the number of issues to be tackled in the design of MMI. However the basic assumption that Information Processing is computational has led to a 'Cognitive Engineering Approach' of the design of MMI in order to provide the designers with the tools required to make their products more sensitive and responsive to the needs of the users. The results will be a greater productivity and a diminution of constraints on the user as well as a better quality of production. It might also result in a reduction of absenteeism and turnover of personnel. As a consequence the encapsulation of the concept of 'user friendliness' in the application packages and in computer systems will increase their marketability.
The success of tools for the software development depends to a large extent on the quality of their user interfaces. We present a set of tools for the support of software development - a syntax-directed, structure-oriented program editor, a module dependency analyser and a grammar editor. Human-computer interaction aspects were the main focus during the design of these tools. In particular, we concentrated on the visualisation of the knowledge offered to the programmer.
For the design, construction and operation of large technical systems, software plays an important role. In this chapter some aspects of managing software for such systems are discussed. The different classes of software during the project phases and within the different hierarchical levels of a control system are outlined and their relations to proper management are shown. In addition, the problems of purchasing software and estimating the required time, budget and manpower for a project are discussed. Emphasis is placed on practical aspects and examples are presented.
This chapter discusses design of parameterizable software. Software tools are potential productivity aids in most working activities in society. However, their quality, which in a certain way depends on software engineering productivity, has a direct influence on its user effectiveness, and productivity.
An object-oriented database system is a database system in which the concept of abstract data types is used strictly for describing and using the database. In consequence the data are described in conjunction with the appropriate operations, the only operations allowed on that data. The object-oriented database system Object-Base, presented here, allows a hierarchy of data types. That kind of database description enables the system to be adjustable to very different application characteristics. Different levels of user interfaces, from the unexperienced casual user to the sophisticated system programmer, are provided.
The chapter reviews some of the basic structuring mechanisms in distributed systems from the perspective of an wide-accepted reference model (ISO/OSI). The acceptance of the model and its related standards by international bodies (ISO, IEEE, CCITT, IEC etc.) and the computer manufacturers will have an important role in the development of distributed systems based on available products. The paper outlines the general framework and the requirements of distributed systems and focus on the practical and conceptual problems in using the ISO/OSI in the design of distributed systems.
This chapter introduces some basic principles and terminology associated with the design of highly reliable computer systems, and describes two experimental, fault tolerant computer systems which have been recently developed for military applications. The first system, called ADNET, demonstrates how a dynamically reconfigurable, local area network can be constructed so that various forms of hardware failure can be tolerated. The second system illustrates how software fault tolerance techniques can be used in a real-time application in order to cope with software design faults and, thereby, improve the software reliability of the system.