DESIGN AND DEVELOPMENT OF KNOWLEDGE-BASED SYSTEMS

FROM LIFE CYCLE TO METHODOLOGY

Giovanni Guida

Department of Electronics for Automation, University of Brescia, Italy

Carlo Tasso

Department of Mathematics and Computer Science, University of Udine, Italy


JOHN WILEY & SONS

Chichester New York Brisbane Toronto Singapore

__________________________________________________________________________

__________________________________________________________________________

CONTENTS

PREFACE xvii

I PROCESS MODEL, LIFE CYCLE, AND METHODOLOGY

1 THE TECHNOLOGY OF KNOWLEDGE-BASED SYSTEMS 3

1.1 Basic Concepts    3

1.1.1 Knowledge-based systems: a definition    3

1.1.2 Knowledge-based systems and traditional software systems: distinctive features and complementary roles    9

1.1.3 The architecture of knowledge-based systems    17

1.1.4 Knowledge-based systems: some classifications    19

1.2 Knowledge-based system processes    22

1.2.1 Process model, life cycle, and methodology    22

1.2.2 Knowledge-based systems and traditional software systems development    24

2 LIFE CYCLE AND METHODOLOGY 31

2.1 Objectives and Requirements    31

2.2 Knowledge-Based System Life Cycle     33

2.2.1 Life cycle organization    33

2.2.2 Phases outline    33

2.2.3 Variations of the reference life cycle    39

2.3 Knowledge-Based System Methodologies    41

2.3.1 Methodology organization    41

2.3.2 Launching and managing a methodological project    41

2.3.3 Identifying activities and designing methods    49

II THE PRIMARY PROCESSES: ANALYSIS

3 OPPORTUNITY ANALYSIS 53

3.1 Phase Overview    53

3.1.1 Motivations and objectives    53

3.1.2 Inputs and products    54

3.1.3 Phase structure and task outline    55

3.1.4 Project team composition    56

3.2 Start-Up    59

3.2.1 Step execution    59

3.2.2 Task 0.1: Verification of prerequisites     60

3.2.3 Task 0.2: Writing of management report    60

3.2.4 Task 0.3: Planning of opportunity analysis    61

3.3 Analysis of the Existing Organization    61

3.3.1 Step execution    61

3.3.2 Task 0.4: Analysis of objectives    61

3.3.3 Task 0.5: Process and structure analysis    64

3.3.4 Task 0.6: Analysis of the level of automation    68

3.3.5 The concepts of area and domain    69

3.3.6 Task 0.7: Identification of areas and domains    71

3.4 Analysis of Opportunities    71

3.4.1 Step execution    71

3.4.2 Task 0.8: Characterization of domains    71

3.4.3 Task 0.9: Identification of knowledge problems and

definition of potential KBS applications    73

3.4.4 Task 0.10: Definition and characterization of opportunities     75

3.5 Synthesis and Release     79

3.5.1 Step execution    79

3.5.2 Task 0.11: Construction of the master plan    80

3.5.3 Task 0.12: Writing of draft opportunity analysis report    80

3.5.4 Task 0.13: Presentation and acceptance of results    81

3.5.5 Task 0.14: Revision of opportunity analysi    82

3.5.6 Task 0.15: Writing of final opportunity analysis report    82

4 PLAUSIBILITY STUDY 83

4.1 Phase Overview    83

4.1.1 Motivations and objectives    83

4.1.2 Inputs and products    85

4.1.3 Phase structure and task outline    86

4.1.4 Project team composition    88

4.2 The Concept of Plausibility    92

4.2.1 Defining plausibility    91

4.2.2 Evaluating plausibility    91

4.3 Start-Up    92

4.3.1 Step execution    92

4.3.2 Task 1.1: Verification of prerequisites    92

4.3.3 Task 1.2: Writing of management report    94

4.3.4 Task 1.3: Planning of plausibility study    94

4.4 Initial Analysis    94

4.4.1 Step execution    94

4.4.2 Task 1.4: Process and structure analysis    95

4.4.3 Task 1.5: Analysis of the level of automation    95

4.4.4 Task 1.6: Verification of domain    95

4.4.5 Task 1.7: Characterization of domain    97

4.4.6 Task 1.8: Identification of knowledge problems and verification

of potential KBS application    97

4.4.7 Task 1.9: Characterization of potential KBS application    98

4.4.8 Task 1.10: Writing of management report    98

4.5 Basic Definitions    99

4.5.1 Step execution    99

4.5.2 Task 1.11: Analysis of requirements    99

4.5.3 Task 1.12: Definition of project goals    101

4.5.4 Defining specifications    102

4.5.5 Task 1.13: Definition of functional specifications    105

4.5.6 Task 1.14: Definition of operational specifications    105

4.5.7 Task 1.15: Definition of technical specifications    106

4.5.8 Task 1.16: Definition of acceptance criteria    106

4.6 Analytical Assessment of Plausibility    107

4.6.1 Step execution    107

4.6.2 Task 1.17: Assessment of technical feasibility    109

4.6.3 Task 1.18: Development of draft technical design    111

4.6.4 Task 1.19: Assessment of organizational impact    113

4.6.5 Task 1.20: Development of draft organizational design    115

4.6.6 Task 1.21: Development of global project plan    115

4.6.7 Task 1.22: Assessment of economic suitability    116

4.6.8 Task 1.23: Assessment of practical realizability    123

4.6.9 Task 1.24: Assessment of opportunities and risks    125

4.7 Synthesis and Release     127

4.7.1 Step execution    127

4.7.2 Task 1.25: Global evaluation of plausibility    127

4.7.3 Task 1.26: Writing of draft plausibility study report    129

4.7.4 Task 1.27: Presentation and acceptance of results    130

4.7.5 Task 1.28: Revision of plausibility study    130

4.7.6 Task 1.29: Writing of final plausibility study report    132

5 CONSTRUCTION OF THE DEMONSTRATOR 133

5.1 Phase Overview    133

5.1.1 Motivations and objectives    133

5.1.2 Inputs and products    134

5.1.3 Phase structure and task outline    135

5.1.4 Project team composition    136

5.2 Start-Up    138

5.2.1 Step execution    128

5.2.2 Task 2.1: Verification of prerequisites    128

5.2.3 Task 2.2: Writing of management report    140

5.2.4 Task 2.3: Planning of construction of the demonstrator    140

5.3 Basic Choices and Definitions    140

5.3.1 Step execution    140

5.3.2 Demonstrator types    140

5.3.3 Task 2.4: Identification of demonstrator goals    142

5.3.4 Task 2.5: Identification of sub-problems and sample cases    143

5.3.5 Task 2.6: Definition of demonstrator specifications    144

5.4 Analysis and Design    144

5.4.1 Step execution    144

5.4.2 Task 2.7: Conceptual modeling    145

5.4.3 Task 2.8: Selection and acquisition of the basic development environment    145

5.4.4 Task 2.9: Technical design    146

5.5 Development    147

5.5.1 Step execution    147

5.5.2 Task 2.10: Implementation of the empty system    147

5.5.3 Task 2.11: Implementation of the development support

system    147

5.5.4 Task 2.12 Knowledge acquisition planning    147

5.5.5 Task 2.13 Knowledge elicitation and protocol analysis    149

5.5.6 Task 2.14: Knowledge coding    149

5.5.7 Task 2.15: Knowledge integration and verification    149

5.6 Demonstration, Evaluation, and Synthesis    150

5.6.1 Step execution    150

5.6.2 Task 2.16: Demonstration    150

5.6.3 Task 2.17: Evaluation    153

5.6.4 Task 2.18: Writing of demonstrator report    154

III THE PRIMARY PROCESSES: DEVELOPMENT

6 DEVELOPMENT OF THE PROTOTYPE 157

6.1 Phase Overview    157

6.1.1 Motivations and objectives    157

6.1.2 Inputs and products    158

6.1.3 Phase structure and task outline    159

6.1.4 Project team composition    163

6.2 Start-Up    164

6.2.1 Step execution    164

6.2.2 Task 3.1: Verification of prerequisites    164

6.2.3 Task 3.2: Writing of management report    165

6.2.4 Task 3.3: Planning of development of the prototype    166

6.3 Design Principles    166

6.3.1 Knowledge-based system design: concept and goals    166

6.3.2 The dimensions of design    173

6.3.3 Paradigm-driven, task-driven, and model-driven design    175

6.3.4 Design for maintainability and extensibility    177

6.4 Knowledge-Based System Development Tools    178

6.4.1 Software systems and tools for KBS development     178

6.4.2 The basic development environment    182

6.4.3 Commercial tools    183

6.4.4 Proprietary tools    189

6.4.5 Selecting the right KBS development tool    190

6.5 Conceptual Design    196

6.5.1 Step execution    196

6.5.2 Task 3.4: Knowledge analysis and modeling    196

6.5.3 Task 3.5: Design of the conceptual model    198

6.5.4 Task 3.6: Definition of prototype specifications    198

6.6 Technical Design    199

6.6.1 Step execution    199

6.6.2 Task 3.7: Design of the logical model    199

6.6.3 Task 3.8: Definition of the specifications of the

empty system    203

6.6.4 Task 3.9: Definition of the specifications of the development support system    204

6.6.5 Task 3.10: Selection and acquisition of the basic

development environment    204

6.6.6 Task 3.11: Detailed design of the empty system    205

6.6.7 Task 3.12: Detailed design of the development

support system    206

6.7 Construction of the Empty System and of the Development Support System     206

6.7.1 Step execution    206

6.7.2 Task 3.13: Implementation of the empty system    207

6.7.3 Task 3.14: Implementation of the development

support system    208

6.8 Development of the Knowledge Base    208

6.8.1 Step execution    208

6.8.2 Task 3.15: Selection of the knowledge sources    210

6.8.3 Task 3.16: Knowledge acquisition planning    215

6.8.4 Techniques for knowledge elicitation    217

6.8.5 Task 3.17: Knowledge elicitation and protocol analysis    228

6.8.6 Task 3.18: Knowledge coding    232

6.8.7 Task 3.19: Knowledge integration and verification    233

6.9 Evaluation and Synthesis    233

6.9.1 Step execution    233

6.9.2 Task 3.20: Prototype testing and refinement    233

6.9.3 Task 3.21: Prototype evaluation    234

6.9.4 Task 3.22: Writing of prototype report    234

7 IMPLEMENTATION, INSTALLATION, AND DELIVERY

OF THE TARGET SYSTEM 237

7.1 Phase Overview    237

7.1.1 Motivations and objectives    237

7.1.2 Inputs and products    239

7.1.3 Phase structure and task outline    240

7.1.4 Project team composition    242

7.2 Start-Up    245

7.2.1 Step execution    245

7.2.2 Task 4.1: Verification of prerequisites     246

7.2.3 Task 4.2: Writing of management report    246

7.2.4 Task 4.3: Planning of implementation, installation, and delivery

of the target system     246

7.3 Preparation    247

7.3.1 Step execution    247

7.3.2 Task 4.4: Analysis of target environment    247

7.3.3 Task 4.5: Definition of specifications of the target system and

of the maintenance support system    249

7.3.4 Approaches to target system implementation    250

7.3.5 Task 4.6: Definition of the approach for target system implementation    252

7.3.6 Task 4.7: Design of target system and of the maintenance support system    253

7.3.7 Task 4.8: Organizational design    253

7.4 Production and Installation    254

7.4.1 Step execution    254

7.4.2 Task 4.9: Production of the target system and of

the maintenance support system    254

7.4.3 Task 4.10: Organizational intervention    254

7.4.4 Task 4.11: Installation    256

7.4.5 Task 4.12: Field testing and refinement    256

7.5 First Release and Experimental Use    257

7.5.1 Step execution    251

7.5.2 Task 4.13: Writing of draft manuals    257

7.5.3 Task 4.14: Training of users    259

7.5.4 Task 4.15: First release and experimental use    260

7.6 Final Release    260

7.6.1 Step execution    260

7.6.2 Task 4.16: Refinement of the target system and

of the maintenance support system    261

7.6.3 Task 4.17: Writing of final manuals    262

7.6.4 Task 4.18: Certification and acceptance    262

7.6.5 Task 4.19: Final release    262

7.6.6 Task 4.20: Writing of target system report    263

7.7 Legal Aspects    263

7.7.1 Property rights    263

7.7.2 Liability issues    267

IV THE PRIMARY PROCESSES: OPERATION

8 MAINTENANCE AND EXTENSION 273

8.1 Phase Overview    273

8.1.1 Motivations and objectives    273

8.1.2 Inputs and products    274

8.1.3 Phase structure and task outline    275

8.1.4 Project team composition    277

8.2 Preparation    278

8.2.1 Step execution    278

8.2.2 Approaches to maintenance and extension    278

8.2.3 Task 5.1: Definition of the strategy for maintenance

and extension    281

8.2.4 Task 5.2: Training of the maintenance team    282

8.3 Observation    283

8.3.1 Step execution    283

8.3.2 Task 5.3: Collection of operation reports    283

8.4 Intervention Set-Up    285

8.4.1 Step execution    285

8.4.2 Task 5.4: Analysis of operation reports and verification of

prerequisites    285

8.4.3 Task 5.5: Writing of management report    285

8.4.4 Task 5.6: Definition of new specifications    285

8.4.5 Task 5.7: Identification of the appropriate

intervention type and planning    287

8.5 Maintenance    287

8.5.1 Step execution    287

8.5.2 Task 5.8: Revision of the knowledge base    287

8.5.3 Task 5.9: Writing of maintenance report    288

8.6 Extension    289

8.6.1 Step execution    289

8.6.2 Task 5.10: Revision of the target system and of the maintenance support system    290

8.6.3 Task 5.11: Writing of extension report    290

8.7 Release    290

8.7.1 Step execution    290

8.7.2 Task 5.12: Installation, field testing, and refinement    290

8.7.3 Task 5.13: Updating of manuals    291

8.7.4 Task 5.14: Training of users and of the maintenance team    291

8.7.5 Task 5.15: Certification and acceptance    291

8.7.6 Task 5.16: Release    291

8.8 Intervention Closing    293

8.8.1 Step execution    293

8.8.2 Task 5.17: Updating of KBS history    293

8.8.3 Task 5.18: KBS development planning    294

V THE SUPPORTING PROCESSES

9 SUPPORTING PROCESSES 299

9.1 The Role of Supporting Processes    299

9.2 Quality Assurance    299

9.2.1 Basic concepts    299

9.2.2 The scope of quality assurance    300

9.2.3 Planning quality assurance    301

9.2.4 Quality checks and corrective actions    302

9.2.5 Quality control records    302

9.3 Verification and Validation    302

9.3.1 Basic concepts    302

9.3.2 Verification    304

9.3.3 Validation    309

9.4 Documentation    311

9.4.1 Basic concepts    311

9.4.2 A pragmatic approach to documentation    313

VI THE MANAGEMENT PROCESSES

10 MANAGING A KNOWLEDGE-BASED SYSTEM PROJECT 317

10.1 Project Management: Objectives and Components    317

10.2 The Project Team     318

10.2.1 Professional roles    318

10.2.2 Project team structure and organization    320

10.3 Controlling and Directing Project Development    328

10.3.1 Why, when, and what to control    328

10.3.2 Project planning and re-planning     328

10.3.3 Goal orientation    331

10.3.4 Productivity    332

10.3.5 User and management satisfaction    333

10.4 Failure Types and Causes    334

10.4.1 How knowledge-based system projects fail    334

10.4.2 Why knowledge-based system projects fail    335

10.5 Management for Success    336

10.5.1 Management rules    336

10.5.2 Twenty issues for knowledge-based system

project management    339

11 MANAGING A KNOWLEDGE-BASED SYSTEM

INITIATIVE 347

11.1 Innovation Management: Objectives and Components    347

11.2 Knowledge-Based Technology and Innovation    349

11.2.1 Knowledge-based technology: a powerful leverage

for innovation    349

11.2.2 Starting up innovation: issues and problems    350

11.2.3 Pushing innovation forth: issues and problems    352

11.3 Introducing Knowledge-Based Technology into an Organization    352

11.3.1 Approaches to knowledge-based technology    352

11.3.2 Defining a strategy    358

11.3.3 Getting started: key success factors    360

11.4 Ensuring Development and Monitoring Progress    362

11.4.1 Establishing a knowledge-based systems department    362

11.4.2 Going from external support towards autonomy    364

11.4.3 Marketing knowledge-based technology throughout

the organization    366

11.4.4 Monitoring the progress of a knowledge-based

system initiative    367

11.5 Managing Human Resources    369

11.5.1 Acquiring human resources    369

11.5.2 Training paths    370

11.5.3 Implementing training courses    373

11.5.4 Re-training    377

11.5.5 Continuing education    383

11.5.6 Training non-technical members of the project team    384

11.6 Managing Research and Development    385

11.6.1 Basic concepts    385

11.6.2 The paradigm of applied research    387

11.6.3 The paradigm of innovative experimentation    388

12 PRACTICE AND EXPERIENCE 391

12.1 Exemplary Cases: Concept and Objectives    391

12.2 Exemplary Cases    392

REFERENCES 431

SUBJECT INDEX 471

__________________________________________________________________________

PREFACE

Knowledge-based systems (KBSs) have been rapidly growing over the last decade and are now considered a crucial factor for innovation and competition. Their impact on industry and business applications has been impressive and convincing. However, the number of real operative applications is still limited. Knowledge-based technology still largely relies on empirical methods and is not supported by sound and general design and development methodologies. It is more like handicraft than engineering, and it lacks several of the desirable features of an industrial process, such as reliability, repeatability, work-sharing, controllability, cost estimation, and quality assurance.

The development of a new technological field depends on two factors: the scientific and technical progress which provides the basic components of the technology, and the methodological progress which prescribes how to use such components effectively for the construction of useful applications. In the KBSs field these two dimensions have not developed in an organic and balanced way. While a very rich and sound collection of basic techniques is available, the methods for applying them in a systematic way to solve real problems is still in an early stage of development. A primary need today is to devise robust and effective methodologies for the design and development of KBSs. This way, the bottleneck which presently hampers the large-scale application of knowledge-based technology can be overcome, thus boosting the diffusion of KBS applications.

Purpose of the book

This book focuses on the methodological aspects of design and development of KBSs. The analysis of specific techniques for building KBSs is outside its scope. This choice is motivated by the perception that what is primarily needed today to develop successful KBS applications is not a larger and deeper technical know-how, but a more disciplined and structured development methodology. In fact, KBS projects usually do not fail due to scarce or wrong technical know-how, but for a lack of technical management. To manage a KBS project successfully within an acceptable time span and a reasonable budget, it is necessary to face several issues, including: the definition of a suitable approach to technology transfer, the assessment of potential application domains, the adoption of correct and effective methods for KBS design and development, the selection of appropriate development tools, the integration of the KBS in the target application environment, the management of maintenance and extension.

There is a large and rapidly growing number of very good books that focus on the technical aspects of knowledge-based technology, but only a few try to illustrate the practical engineering principles which should guide the design and development of a KBS and the relevant project management techniques to be adopted. This knowledge, a precious know-how that designers and project leaders acquire through practical experience, is usually conveyed only partially in the literature and has never been presented in a well-organized and structured way.

Therefore, this book aims to illustrate how to exploit knowledge-based technology in the most effective and appropriate way. It does not focus on the transfer of technical knowledge, but rather on the methods that make it possible to apply this technical knowledge in a correct and goal-oriented way. This book does not deal with the specific technical mechanisms used to build a KBS. It does not face issues such as knowledge representation, search techniques, user interfaces, justification, qualitative reasoning, distributed architectures, etc., but it concentrates on how to use such elements in the design of a real system and on how to manage the development process. The above topics which are purposely left outside the scope of the volume are well-covered by several text-books and technical publications.

Teaching how to manage a KBS project to success is a challenging issue, which cannot be achieved only through a book. A book can help transfer professional know-how in a disciplined and effective way, but cannot transform an apprentice into an expert KBS project leader.

Organization and structure

The book is organized around the central concept of KBS life cycle, understood as a reference framework for defining and organizing the tasks and activities that must be carried out to design, to produce, and to maintain a KBS, independently of the various methodologies that may be adopted to put them into practice. Therefore, the life cycle specifies "what" to do and "when", while a development methodology focuses on "how" to actually execute the tasks and activities prescribed in the life cycle. While we believe that it is possible to identify a concept of life cycle which is abstract and general enough to be assumed as a reference for a very large class of application contexts, the same is not possible for the concept of development methodology. This is much more concrete and specific, and therefore it basically depends on the objectives and characteristics of the application environment where it is expected to be applied. Thus, while the book proposes a specific life cycle concept, called KLIC (KBS Life Cycle), it does not develop a full methodology. Instead, it provides the fundamental ideas which can enable an organization to build its own.

Three standpoints have inspired the concept of KLIC:

anticipating potential problems in KBS development, in such a way as to reduce risks and to ensure a smooth project management;

controlling the explorative attitude and the iterative approach typical of KBS development, so as to reduce time and costs;

gradually establishing clear and transparent design principles in order to ensure a more sound and controllable development process and, at the same time, a higher quality of the delivered KBSs.

The book includes twelve chapters and is structured in five parts:

Part I - Process Model, Life Cycle, and Methodology, after a brief account on knowledge-based technology, introduces the concepts of KBS process model, life cycle, and methodology. The main concepts of the KLIC life cycle are then illustrated, and an original approach to the design and construction of a KBS methodology is proposed.

Part II - The Primary Processes: Analysis illustrates the first steps of the process of KBS design and construction. More precisely, it focuses on phase 0 'Opportunity analysis', phase 1 'Plausibility study', and phase 2 'Construction of the demonstrator' of the KBS life cycle. Such phases are supposed to explore, from different perspectives, the opportunity, feasibility, and appropriateness of candidate KBS projects, before starting the development effort.

Part III - The Primary Processes: Development focuses on phase 'Development of the prototype' and phase 4 'Implementation, installation, and delivery of the target system' of the KBS life cycle, which constitute the central part of a project. Phase 3 includes the three fundamental design steps of conceptual modeling, design of the logical model, and detailed system design. It encompasses the choice of the software tools to be adopted for the development of the prototype. It includes the set of activities specifically dedicated to the construction of the knowledge base, which constitute the most peculiar activity of knowledge-based technology. Phase 4 concludes the design and construction process and ends with the delivery of the KBS for operational use.

Part IV - The Primary Processes: Operation focuses on phase 5 'Maintenance and extension' of KBS life cycle. It encompasses the whole duration of the operational life of a KBS and deals with those activities which can make the exploitation of the benefits of a KBS more effective and of longer extent.

Part V - The Supporting Processes focuses on the three main processes that support the KBS life cycle, namely: quality assurance, verification and validation, and documentation development.

Part VI - The Management Processes discusses the principles which should be applied to guide a KBS initiative to success, be it a specific KBS project or the global effort of introducing and exploiting knowledge-based technology within an organization. Such principles are derived from practice, and are illustrated through a collection of exemplary cases reporting successful projects and failed initiatives.

Audience

This book is primarily intended as a text-book for an advanced course in KBS project management. Therefore, it is designed to be used as teaching material for advanced courses, continuing education, and management seminars. However, it may also be profitably used as a reference hand-book by anyone involved in KBS design and construction. Finally, it can be also a useful tool for individual reading and study.

The book is particularly addressed to:

graduate (and undergraduate) students developing KBS projects as term assignments or thesis work;

KBS designers and knowledge engineers who aim to expand their competence in the critical domain of technical project management;

project managers, technical advisors, and technical decision makers in any field of science, technology or business who want to have a concrete insight into knowledge-based technology, its application and its use.

The book does not provide an introduction to knowledge-based technology. Its use requires a prerequisite knowledge of the basic artificial intelligence techniques.


Giovanni Guida and Carlo Tasso