Table Of ContentSoftware Prototyping in Data and Knowledge Engineering
Mathematics and Its Applications
ManagingEditor:
M. HAZEWINKEL
CentreforMathematicsandComputerScience, Amsterdam, TheNetherlands
Volume 497
Software Prototyping
in Data and
Knowledge Engineering
by
Giovanni Guida
Gianfranco Lamperti
and
Marina Zanella
Dipartimento di Elettronica per I'Automazione,
Universita degli Studi di Brescia,
Brescia, ltaly
SPRINGER SCIENCE+BUSINESS MEDIA, B.V.
A C.I.P. Catalogue record for this book is available from the Library of Congress.
ISBN 978-94-010-5849-0 ISBN 978-94-011-4267-0 (eBook)
DOI 10.1007/978-94-011-4267-0
Printed an acidjree paper
All Rights Reserved
© 1999 Springer Science+Business Media Dordrecht
Originally published by Kluwer Academic Publishers in 1999
Softcover reprint ofthe hardcover Ist edition 1999
No part of the material protected by this copyright notice may be reproduced or
utilized in any form or by any means, electronic or mechanical,
inc1uding photocopying, recording or by any information storage and
retrieval system, without written permission from the copyright owner.
To Chiara, Luci, and Piercesare.
Table of Contents
Preface xiii
Acknowledgements xvii
1 The Prototyping Approach to Software Development 1
1.1 Linear Software Development . 2
1.2 Software Prototyping . . . . . . . . . 3
1.2.1 Paper-Based Prototypes. . . 4
1.2.2 Computer-Based Prototypes. 4
1.3 Iterative Software Development 4
1.3.1 Spiral Model . . . . . . . . . 5
1.3.2 Star Model . . . . . . . . . . 7
1.4 The Evolutionary Perspective of Software Development 7
1.5 User-Centered Software Design and Development 8
1.6 Software Prototyping Approaches. 10
1.6.1 Concept Prototyping . . . 10
1.6.2 Evolutionary Prototyping . 11
1.6.3 Incremental Prototyping . . 12
1.7 Classification of Software Prototypes 13
1.7.1 Demonstrators . . . . . . 13
1.7.2 Only-a-model prototypes 14
1.7.3 Evolutionary prototypes. 14
1.7.4 Breadboards 15
1.8 Software Prototyping and Prototypes. 15
1.8.1 Concept Prototyping and Demonstrators 15
1.8.2 Concept Prototyping and Only-a-Model Prototypes 15
1.8.3 Evolutionary Prototypingand Evolutionary Prototypes 17
1.8.4 Concept Prototyping and Breadboards. 17
1.9 Goals of Software Prototyping. . . . . 18
1.10 Prototyping and Software Evaluation. 20
1.10.1 Verification and Validation .. 20
1.10.2 Testing 21
1.11 Involvement and Role ofUsers in Software Prototyping 22
1.12 Misconceptions about Software Prototyping . . . . . . . 23
vii
viii TABLE OF CONTENTS
1.12.1 Hacking . . . . . . 24
1.12.2 Pretty screens. . . 24
1.12.3 Rapid prototyping 25
1.13 Rules of Software Prototyping . 25
1.14 Requirements for Software Prototyping Environments 28
1.15 Object-Oriented Programming and Prototyping . 29
1.16 Object-Oriented CASE Tools for Prototyping . . . . . 31
2 Overview of Database Technology 33
2.1 Extended Relational Databases 36
2.2 Deductive Databases 38
2.3 Object Databases. . 39
2.4 Active Databases . . 41
2.5 Temporal Databases 45
2.6 Spatial Databases. . 47
2.7 Multimedia Databases 49
2.8 Data Warehousing 51
2.9 Data Mining ..... 53
3 Overview of Knowledge-Based Technology 57
3.1 Knowledge-Based Systems. . . . . . . . . . . . . . . . . .. 61
3.2 The Challenge ofKnowledge-Based Systems. . . . . . . .. 64
3.3 Knowledge-BasedTechnology: Techniques,ToolsandMethod-
ologies . . . . . . 65
3.4 KBS Techniques .. 67
3.5 KBS Tools. . . . . . 68
3.6 KBS Methodologies 70
3.7 Beyond Knowledge-Based Technology: A knowledge Mana-
gement Perspective . . . . . . . . . . . . . . . . . . . . . .. 71
4 Data and Knowledge Intensive Systems 73
4.1 Computer Problem-Solving 74
4.1.1 Early Steps . . . . . . . . . 74
4.1.2 The Evolution 75
4.1.3 The Concept of Knowledge 77
4.1.4 Knowledge-Based Programming. 79
4.2 Data and Knowledge Intensive Systems 82
4.2.1 A General View of Data and Knowledge Intensive
Systems. . . 82
4.2.2 Sample Cases . . . . . . . . . . . . . . . . . . . . .. 84
4.3 Design Issues . . . . . . . . . . . . . . . . . . . . . . . . .. 88
4.3.1 Data and Knowledge Intensive Application Domains 88
4.3.2 The Design Process 89
TABLE OF CONTENTS ix
4.3.3 Life Cycle Requirements. . . . . . . . . . . . . . .. 94
4.4 The Role ofPrototyping . . . . . . . . . . . . . . . . . . .. 95
4.4.1 Prototyping in data and Knowledge Intensive Systems 96
4.4.2 An Innovative Perspective. . . . . . . . . . . . . .. 97
5 The Prototyping Hierarchy 99
5.1 Approach and Architecture 99
5.1.1 Star Architecture. . 101
5.1.2 Waterfall Architecture 102
5.1.3 Tree Architecture. . . 103
5.1.4 Parallel Architecture. 104
5.1.5 Incremental Architecture 105
5.2 Reference Application . . . . . . 107
6 The Relational Layer 111
6.1 Relational Paradigm . . . . . . . . . . . . . . . . . . . .. 111
6.1.1 Static Model . . . . . . . . . . . . . . . . . . . .. 111
6.1.2 Relational Database ofthe Reference Application. 113
6.1.3 Dynamic Model. . . . . . . . 115
6.2 Relational Prototyping Language . . . . . 129
6.2.1 Creation ofrelations in RPL ... 129
6.2.2 Manipulations ofrelations in RPL 130
6.3 Prototyping by Relational Techniques .. 135
6.4 Prototyping the Relational Layer . . . . . 140
6.4.1 Relational Virtual Machine Language 140
6.4.2 Implementation Issues . . . . . . . . . 147
7 The Extended Relational Layer 153
7.1 Extended Relational Paradigm . . . . . . . . . . . . . . .. 153
7.1.1 Static Model . . . . . . . . . . . . . . . . . . . . .. 153
7.1.2 Extended Relational Database of the Reference Ap-
plication. . . . . . . . . . . . . . . . 156
7.1.3 Dynamic Model. . . . . . . . . . . . . . 159
7.2 Extended Relational Prototyping Language . . 174
7.2.1 Creation of Complex Relations in EPL . 175
7.2.2 Manipulations of Relations in EPL . . . 175
7.3 Prototyping by Extended Relational Techniques. 178
7.4 Prototyping the Extended Relational Layer . . . 179
7.4.1 Extended Relational Virtual Machine Language. 179
7.4.2 Implementation Issues . . . . . . . . . . . . . . . 184
x TABLE OF CONTENTS
8 The Deductive Layer 191
8.1 Deductive Paradigm . . . . . . . 191
8.1.1 Datalog.......... 198
8.2 Deductive Prototyping Language 209
8.2.1 Creation ofthe extensional database in DPL 209
8.2.2 Creation ofthe intensional database in DPL . 210
8.3 Prototyping by Deductive Techniques .... 211
8.4 Prototyping the Deductive Layer . . . . . . . 213
8.4.1 Deductive Virtual Machine Language 214
8.4.2 Implementation Issues . . . . . . . . . 222
9 The Object Layer 229
9.1 Object Paradigm . . . . . . . . . . . . . . . . . . 229
9.1.1 Data Model . . . . . . . . . . . . . . . . . 229
9.1.2 Formal Definition of an Object Database 243
9.1.3 Object Database ofthe Reference Application. 245
9.1.4 Object Manipulation . . . . 249
9.2 Object Prototyping Language. . . . . . 258
9.2.1 Creation of Objects in OPL . . . 258
9.2.2 Manipulation of Objects in OPL 260
9.3 Prototyping by Object Techniques . . . 268
9.4 Prototyping the Object Layer . . . . . . 272
9.4.1 Object Virtual Machine Language 272
9.4.2 Implementation Issues . . . . . . . 277
10 The Active Layer 283
10.1 Active Paradigm . . . . . . . 283
10.1.1 Active Rule Execution 286
10.2 Active Prototyping Language 290
10.3 Prototyping by Active Techniques 294
10.4 Prototyping the Active Layer . . . 298
10.4.1 Active Virtual Machine Language 298
10.4.2 Implementation Issues . . . . 301
11 Prototyping Techniques Integration 309
11.1 Integrated Paradigm . . . . 3110
11.1.1 Data Model. . . . . . . . 310
11.1.2 Data Manipulation. . . . 311
11.2 Integrated Prototyping Language 313
11.2.1 Data Definition in IPL . . 313
11.2.2 Definition of Global Concepts in IPL . 322
11.2.3 Data Manipulation in IPL . . . . . . . 326
TABLE OF CONTENTS Xl
12 Mapping Prototypes to Relational Databases 347
12.1 Transforming Passive Rules into Active Rules 348
12.1.1 Materializing Derived Data 348
12.1.2 Monolithic Materialization 351
12.1.3 Incremental Materialization . . . . . . 352
12.1.4 Incremental Materialization of Derived Attributes 355
12.1.5 Incremental Materialization of Views. . 359
12.1.6 Coping With Recursively Derived Data . . . 362
12.2 Mapping Schemas 364
12.2.1 Mapping Classes Involving Simple Attributes 365
12.2.2 Mapping Inheritance Hierarchies . . . . . . . 366
12.2.3 Mapping Classes Involving Complex Attributes 367
12.3 Mapping Declarative Expressions . . 372
12.4 Mapping Procedural Code. . . . . . 374
12.5 Mapping Nonrecursive Passive Rules 377
12.6 Mapping Active Rules . 378
12.6.1 Micro-mapping . 379
12.6.2 Macro-mapping. 380
12.6.3 Meta-mapping . 383
References 387
Index 403