Cover
title | : | Handbook of Software Engineering & Knowledge Engineering. Vol. 1, Fundamentals |
author | : | Chang, S. K. |
publisher | : | World Scientific Publishing Co. |
isbn10 | asin | : | 981024973X |
print isbn13 | : | 9789810249731 |
ebook isbn13 | : | 9789812389718 |
language | : | English |
subject | Software engineering--Handbooks, manuals, etc, Knowledge representation (Information theory)--Handbooks, manuals, etc. |
publication date | : | 2001 |
lcc | : | QA76.758.H36 2001eb |
ddc | : | 005.1 |
subject | : | Software engineering--Handbooks, manuals, etc, Knowledge representation (Information theory)--Handbooks, manuals, etc. |
Page i
Handbook of
Software Engineering & Knowledge Engineering
Vol. 1
Fundamentals
Page ii
This page intentionally left blank.
Page iii
Handbook of
Software Engineering & Knowledge Engineering
Vol. 1
Fundamentals
Editor
S K Chang
University of Pittsburgh, USA
and
Knowledge Systems Institute, USA
Page iv
Published by
World Scientific Publishing Co. Pte. Ltd.
P O Box 128, Farrer Road, Singapore 912805
USA office: Suite IB, 1060 Main Street, River Edge, NJ 07661
UK office: 57 Shelton Street, Covent Garden, London WC2H 9HE
British Library Cataloguing-in-Publication Data
A catalogue record for this book is available from the British Library.
HANDBOOK OF SOFTWARE ENGINEERING & KNOWLEDGE ENGINEERING, Vol. 1
Fundamentals
Copyright 2001 by World Scientific Publishing Co. Pte. Ltd.
All rights reserved. This book, or parts thereof, may not be reproduced in any form or by any means, electronic or mechanical, including photocopying, recording or any information storage and retrieval system now known or to be invented, without written permission from the Publisher.
For photocopying of material in this volume, please pay a copying fee through the Copyright Clearance Center, Inc., 222 Rosewood Drive, Danvers, MA 01923, USA. In this case permission to photocopy is not required from the publisher.
ISBN 981-02-4973-X
ISBN 981-02-4514-9 (Set)
Printed in Singapore.
Page v
PREFACE
The Handbook of Software Engineering and Knowledge Engineering is the first comprehensive handbook covering these two important areas that have become interwoven in recent years. Many international experts contribute to this Handbook. Each article is written in a way that a practitioner of software engineering and knowledge engineering can easily understand and obtain useful information. Each article covers one topic and can be read independently of other articles, providing both a general survey of the topic and an in-depth exposition of the state of the art. Practitioners will find this Handbook useful when looking for solutions to practical problems in software engineering and knowledge engineering. Researchers in turn can use the Handbook to quickly obtain background information, current trends and the most important references on a certain topic.
The Handbook consists of two volumes. Volume One covers the basic principles and applications of software engineering and knowledge engineering. Volume Two expands the coverage of basic principles and also contains many articles that specifically addresses visual and multimedia software engineering, and emerging topics in software engineering and knowledge engineering such as software patterns, data mining for software knowledge, etc. The two volumes form a complete set, but can be used separately for different purposes.
Turning Knowledge into Software
There is a growing awareness that the central issue in software engineering and knowledge engineering is how to turn knowledge into software. Traditionally software engineering is concerned with the specification, design, coding, testing and maintenance of software. It also implicitly deals with the issues of transforming knowledge into software in the sense that the gathering of knowledge about the problem domain is incorporated into the requirements analysis phase of the software life cycle. Often, informal techniques of knowledge acquisition are used. Thus in the past, the role of knowledge engineering in the software process is an implicit one.
However it has long been recognized by many people that knowledge engineering plays an increasingly important role in software design. Indeed it is because of this conviction that the international conference series on Software Engineering and Knowledge Engineering (SEKE) was founded in 1988, followed by the publication of the International Journal of Software Engineering and Knowledge Engineering (IJSEKE) three years later. For both the SEKE conference series and the IJSEKE
Page vi
journal, the basic viewpoint is that the interdisciplinary area of software engineering and knowledge engineering is concerned with the interplay between software engineering and knowledge engineering how software engineering can be applied to knowledge engineering, and how knowledge engineering can be applied to software engineering.
This viewpoint should now be modified and expanded because, both in theory and in practice, more and more software engineers and knowledge engineers are explicitly incorporating knowledge into the software process. In editing this two-volume handbook, this expanded viewpoint that software engineering is concerned with the transformation of knowledge into software has been carefully taken into consideration to conceptually organize the recent progresses in software engineering and knowledge engineering.
Software Patterns
Let us start with two distinct, yet complementary, viewpoints on software engineering. The two viewpoints may seem completely different, but they are but different ways of viewing the ''elephant" that is software engineering.
The first viewpoint, as stated above, is that software engineering is concerned with the transformation of knowledge into software. The second viewpoint is some- what more technical. It says that software engineering is concerned with the specification, design, transformation, verification and validation of patterns.
Software is nothing but patterns. A program is constructed from some basic patterns, and the construction rules can in turn be expressed as other types of patterns. With grammars, formal languages and automata, there are many approaches to describe the basic patterns and how they are composed into programs.
Specifications are composed of patterns that are the basic building blocks of formal, informal or visual specifications. The specification, in the ideal case, can then be automatically transformed into programs, and verified and validated in the transformational process.
Next page