Authors: Barry Smyth, Mark T. Keane, Padraig Cunningham

Slides:



Advertisements
Similar presentations
Lecture 6: Software Design (Part I)
Advertisements

1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Lecture 9 Improving Software Design CSC301-Winter 2011 – University of Toronto – Department of Computer Science Hesam C. Esfahani
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
5/12/1999 Li-we Pan1 指導老師 : 何正信教授 學生:潘立偉 學號: M 日期: 5/12/1999 Wolfgang Wilke, Barry Smyth, Pádraig Cunningham “Case-Based Reasoning Technology From.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Department of Computer Science University of Maryland, College Park
1 Software Testing and Quality Assurance Lecture 15 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Program Design Divide and Conquer –Divide the program into separate tasks Functional Decomposition Top-Down Design –Divide an overall problem into discrete.
Computer Science 240 Principles of Software Design.
Case Base Maintenance(CBM) Fabiana Prabhakar CSE 435 November 6, 2006.
Design patterns. What is a design pattern? Christopher Alexander: «The pattern describes a problem which again and again occurs in the work, as well as.
Top-Down Design and Modular Development
Program Design CMSC 201. Motivation We’ve talked a lot about certain ‘good habits’ we’d like you guys to get in while writing code. There are two main.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Computer Science 240 © Ken Rodham 2006 Principles of Software Design.
The Systems Development Life Cycle
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
Systems Analysis and Design in a Changing World, Fourth Edition
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
1 Class Diagrams. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are for visualizing, specifying and documenting.
Human Computer Interaction
Software Design Patterns Curtsy: Fahad Hassan (TxLabs)
Ordered Linked Lists using Abstract Data Types (ADT) in Java Presented by: Andrew Aken.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
1 Chapter 5:Design Patterns. 2 What are design pattern?  Schematic description of design solution to recurring problems in software design and,  Reusable.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Database Management Systems
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Chapter 2 Principles of Programming and Software Engineering.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
OOP - Object Oriented Programming
7. Modular and structured design
Design Patterns: MORE Examples
Algorithms and Problem Solving
Object Oriented Programming
Modern Systems Analysis and Design Third Edition
Object-Oriented Analysis and Design
Chapter 10 Design Patterns.
Chapter 5:Design Patterns
Introduction to Design Patterns
System Design.
Object oriented system development life cycle
Abstract descriptions of systems whose requirements are being analysed
INFS 6225 Object-Oriented Systems Analysis & Design
Chapter 2 Database Environment Pearson Education © 2009.
Tools of Software Development
Unit# 9: Computer Program Development
OOP vs Structured Programming
Software Engineering Lecture #8.
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Analysis models and design models
Class Diagrams.
Algorithms and Problem Solving
Case-Based Reasoning BY: Jessica Jones CSCI 446.
DATABASES WHAT IS A DATABASE?
Software Design Principles
Chapter 17 - Component-based software engineering
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Chapter 2 Database Environment Pearson Education © 2009.
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Multidisciplinary Optimization
Presentation transcript:

Authors: Barry Smyth, Mark T. Keane, Padraig Cunningham Hierarchical Case-Based Reasoning Integrating Case-Based and Decompositional Problem-Solving Techniques for Plant-Control Software Design Authors: Barry Smyth, Mark T. Keane, Padraig Cunningham

What is Case Based Reasoning (CBR) CBR System uses case bases of previously solved problems to solve new problems The solution is modified to fit the new problem

What is Hierarchical Case Based Reasoning (HCBR) HCBR is a technique created by the authors for multiple-case (more complex) reuse Uses multiple levels of solution abstraction Abstract case is like a decomposition template Parts of previous solutions, stored as individual cases, can be reused and recombined to solve some subproblem

What is Hierarchical Case Based Reasoning (HCBR) A decomposition template’s abstract solution is used to break up a complex problem into subproblems These subproblems are solved from the solution code segments that are produced from the reuse of concrete cases The integration of these code segments is guided by the solution structure of the abstract cases

What is Automated Programming Starts with a specification of some task Ends with a program that is the solution to this task

Abstraction Levels Abstract plans outline solutions Abstract plans are refined by replacing abstract operators with collections of more detailed operators Complete plan will contain only primitive operators

Different Cases Abstract Cases Concrete Cases Solutions correspond to high-level plans for particular problems High-Level program designs Concrete Cases Solutions correspond to actual programs

Combining Cases

Abstract Cases Solution Part: Description Part: Contains abstract operators that correspond to high-level actions Abstract operators also act as subproblem specifications Description Part: Similar to description part of a concrete case Drawn from the abstract task hierarchy

Complete Set of Abstract Tasks This is a Task Hierarchy Each task is classified under a specific task category Each category introduces a number of features related to that task

Concrete Cases Solution Part: Description Part: Sequential function chart made up of primitive operations Description Part: Contains a set of features that relate to the case solution In déjà vu these descriptions are task oriented

Complete Set of Concrete Tasks This is a Task Hierarchy Each task is classified under a specific task category Each category introduces a number of features related to that task

The HCBR Process Model Decompose a specification into right set of subproblems Solved separately Individual solutions can be recombined to produce a suitable overall solution

The Main HCBR Algorithm (STEPS 1) In the beginning the specification queue contains just one specification (STEPS 4, 5) Begins with the current target specification an involves the retrieval and adaptation of a single case to generate one new solution component – a section of abstract code The retrieved case may be abstract or concrete (STEPS 6 to 8) If it is abstract then its news adapted abstract operators will be extracted and queued as future subproblem specifications (THIS IS DECOMPOSITION) (STEP 9) During each cycle the new solution component is integrated into the evolving overall solution (STEP 10) Under certain conditions a new solution component may be learned by the system by adding it ot the case base

Retrieval and Adaptation The target specification features are matched against the description features of cases in the case base and a measure of similarity is computed Result is a ranking of cases according to their similarity to the target Adaptation Ensures that the retrieved case is the easiest of those available to adapt, not just the case that is most similar

Decomposition The abstract solution operators are copied from the solution into the specification queue

Integration Each HCBR cycle generates one new solution component Integration adds this component to the evolving solution Solution is an abstraction hierarchy and each new solution component is added as a leaf node The abstract solution operators are copied from the solution into the specification queue

Integration Parent Link -- Preserve the hierarchical relationship between solution components at different levels of abstraction -- Connect a new solution compenent, its parent (the solution component containing the abstract operator) that led to the production of the current component Sibling Links Preserve execution ordering between solution components

Learning New Solved Problems Learned By: Packaging their specifications and solutions together as new cases Adding these new cases to the case base Parts of the problem can be learned as separate cases at various levels of abstraction Condition tests whether or not the new case is novel enough to warrant addition The abstract solution operators are copied from the solution into the specification queue

Results Reasons for Speed Up: Flexible reuse strategy – allows target problems to be solved by reusing multiple cases at various levels of abstraction

Benefits of HCBR Repeated solution segments are not redundantly stored within multiple large cases Instead they’re stored as single case instances that can be easily reused Avoids the problem of decomposing a problem for which there are no suitable cases in the case base Cases and the decompositional knowledge are fully integrated The collection of abstract cases in the case base is the decomposition knowledge of the system (both use the same sources of knowledge for all problem solving) Improved problem solving coverage Represents complex problems as collections of independently reusable abstract and concrete cases