Knowledge-Based Software Development for Real-Time Distributed Systems Downloaded from www.worldscientific.com Knowledge-Based Software Development for Real-Time Distributed Systems
SERIES ON SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING Knowledge-Based Software Development for Real-Time Distributed Systems Downloaded from www.worldscientific.com Series Editor-in-Chief S K CHANG (University of Pittsburgh, USA) Vol. 1 Knowledge-Based Software Development for Real-Time Distributed Systems Jeffrey J-P Tsai and Thomas J Weigert (Univ. Illinois) Forthcoming titles: The Impact of CASE Technology on Software Processes edited by Daniel E Cooke (Univ. Texas) Advances in Software Engineering and Knowledge Engineering edited by Vincenzo Ambriola (Univ. Pisa) and Genoveffa Tortora (Univ. Salerno)
Knowledge-Based Software Development for Real-Time Distributed Systems Downloaded from www.worldscientific.com Knowledge-Based Software Development for Real-Time Distributed Systems Jeffrey J-PTsai Thomas J Weigert University of Illinois Vfe World Scientific wl Singapore New Jersey London Hong Kong
Published by Knowledge-Based Software Development for Real-Time Distributed Systems Downloaded from www.worldscientific.com World Scientific Publishing Co. Pte. Ltd. P O Box 128, Farrer Road, Singapore 9128 USA office: Suite IB, 1060 Main Street, River Edge, NJ 07661 UK office: 73 Lynton Mead, Totteridge, London N20 8DH KNOWLEDGE-BASED SOFTWARE DEVELOPMENT FOR REAL-TIME DISTRIBUTED SYSTEMS Copyright 1993 by World Scientific Publishing Co. Pte. Ltd. All rights reserved. This book, or parts thereof, may not be reproduced in any form orbyanymeans, 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., 27 Congress Street, Salem, MA 01970, USA. ISBN 981-02-1128-7 Printed in Singapore by Utopia Press.
Knowledge-Based Software Development for Real-Time Distributed Systems Downloaded from www.worldscientific.com Contents 1 The Science of Software Development 7 1.1 Software Engineering as Theory Construction 7 1.2 Software Engineering Paradigms 9 1.3 The Path from Problem to Program 15 1.4 Knowledge-Based Software Development 19 2 Knowledge Representation as a Basis of Specifying Requirements 28 2.1 Demands on a Requirements Specification Language 28 2.2 Languages to Formulate Requirements Specifications 32 2.3 The FRORL Requirements Specification Language 35 2.4 LSSGR Protocol Example 41 2.5 Developing Requirements Specifications using FRORL 45 3 Nonmonotonic Logic Foundation of the Requirements Speciflcation Language 50 3.1 The Formal Foundation of FRORL 50 3.2 Soundness and Completeness of FRORL 58 3.3 Representing FRORL Constructs 65 4 A Requirements Specification Language for Real-Time Distributed Software Systems 70 4.1 Characteristics of Real-Time Distributed Software Systems 70 4.2 Demands on Requirements Specification Languages for Real-Time Distributed Systems 71 4.3 Languages to Formulate Real-Time Requirements Specifications... 73 4.4 Modeling Mechanisms for Concurrent Distributed Systems 78 4.5 Modeling Constructs for Real-Time Processes, Timing Constraints, and Temporal Properties 81 5 Temporal Logic Foundation of the Real-Time Distributed Requirements Speciflcation Language 84 5.1 The Temporal Fix-Point Calculus 84 5.2 Model Checking 89
6 5.3 Expressing the Temporal Aspects of a FRORL Specification 91 Knowledge-Based Software Development for Real-Time Distributed Systems Downloaded from www.worldscientific.com 6 Verification of Requirements Specifications 95 6.1 Analysis through Resolution Refutation 95 6.2 Model Checking 98 6.3 Timing Constraints Consistency Analysis 109 7 Development, Specification, and Verification of Knowledge-Based Systems 117 7.1 Difficulties in Verifying Knowledge-Based Systems 117 7.2 Correctness Problems in Knowledge Bases 119 7.3 Approaches to the Verification of Knowledge-Based Systems 121 7.4 Dynamic Verification 126 8 Knowledge-Based Implementation 136 8.1 Automated Program Construction 136 8.2 Canonicalization 140 8.3 Data Dependency and Control Flow Analysis 154 8.4 Determination of Execution Sequence 163 8.5 Removal of Unnecessary Nondeterminacy 167 9 Specification Debugging 174 9.1 Knowledge-Based Debugging 174 9.2 Debugging of FRORL Specifications 177 A Example Specifications 186 A.l Alternate Bit Protocol 186 A.2 Subscriber-Line Controller of a Telephone Exchange 189 B Formal Grammar of FRORL 197 C Some Results about Fix-Points 200 D References 203 E Index 231