Jairson Vitorino. PhD Thesis, CIn-UFPE February 2009. Supervisor: Prof. Jacques Robin. Ontologies Reasoning Components Agents Simulations



Similar documents
Model Driven Interoperability through Semantic Annotations using SoaML and ODM

Revel8or: Model Driven Capacity Planning Tool Suite

F-16 Modular Mission Computer Application Software

Rules and Business Rules

Developing in the MDA Object Management Group Page 1

Reusable Knowledge-based Components for Building Software. Applications: A Knowledge Modelling Approach

An MDA Approach for the Development of Web applications

Design by Contract beyond class modelling

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

Development of a Feature Modeling Tool using Microsoft DSL Tools.

The value of modeling

Defining and Checking Model Smells: A Quality Assurance Task for Models based on the Eclipse Modeling Framework

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

Design a medical application for Android platform using model-driven development approach

Chapter 1. Dr. Chris Irwin Davis Phone: (972) Office: ECSS CS-4337 Organization of Programming Languages

Aplicando enfoque MDE a aplicaciones WEB-SOA

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:

Automated transformations from ECA rules to Jess

Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools

1/20/2016 INTRODUCTION

Model-Driven Development of a Biosignal Analysis Framework: Benefits and Impacts on Processes. Nikolas Hofmann

Automatic Generation Between UML and Code. Fande Kong and Liang Zhang Computer Science department

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

Course 4 27 October Adrian Iftene adiftene@info.uaic.ro

MEng, BSc Applied Computer Science

25.1 Translational Frameworks (MDA with transformations)

What is a metamodel: the OMG s metamodeling infrastructure

Foundations of Model-Driven Software Engineering

Integrated Development of Distributed Real-Time Applications with Asynchronous Communication

SEARCH The National Consortium for Justice Information and Statistics. Model-driven Development of NIEM Information Exchange Package Documentation

A Service-Oriented approach dedicated to Internet based Business Process Networks: Building a MDA based collaborative platform with opensource

Chapter 13: Program Development and Programming Languages

Clarifying a vision on certification of MDA tools

Metamodels and Modeling Multiple Kinds of Information Systems

Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer

Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)

All you need are models Anneke Kleppe, Klasse Objecten

To introduce software process models To describe three generic process models and when they may be used

What is a life cycle model?

Tools for MDA Software Development: Evaluation Criteria and Set of Desirable Features

Design of Visual Repository, Constraint and Process Modeling Tool based on Eclipse Plug-ins

Introduction to programming

A UML 2 Profile for Business Process Modelling *

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS

Author: Daniël van t Oever

An Agent Based Etl System: Towards an Automatic Code Generation

Business-Driven Software Engineering Lecture 3 Foundations of Processes

MEng, BSc Computer Science with Artificial Intelligence

SOFTWARE ENGINEERING PROGRAM

Model Driven and Service Oriented Enterprise Integration---The Method, Framework and Platform

Agile Modeling and Design of Service-Oriented Component Architecture

MDA Overview OMG. Enterprise Architect UML 2 Case Tool by Sparx Systems by Sparx Systems

CS4507 Advanced Software Engineering

Model-Driven Development: A Metamodeling Foundation

CIM to PIM Transformation: A criteria Based Evaluation

Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development

MDA Support for Military Medical Crisis Information Systems (MMCIS)

On General-purpose Textual Modeling Languages. On General-purpose Textual Modeling Languages

Business Rule Standards -- Interoperability and Portability

Model-Driven Data Warehousing

Bridging the Generic Modeling Environment (GME) and the Eclipse Modeling Framework (EMF)

Information systems modelling UML and service description languages

Component-Oriented Engineering

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

Generating Aspect Code from UML Models

MDE Adoption in Industry: Challenges and Success Criteria

Automatic Generation of Consistency-Preserving Edit Operations for MDE Tools

Textual Modeling Languages

How To Design An Information System

Model-Driven Architecture: Vision, Standards And Emerging Technologies

From Business World to Software World: Deriving Class Diagrams from Business Process Models

A Software Development Platform for SOA

UML Representation Proposal for XTT Rule Design Method

CSCI 3136 Principles of Programming Languages

Language-oriented Software Development and Rewriting Logic

Taking Subversion to a Higher Level. Branching/Merging Support. Component Management Support. And More

Towards a Common Metamodel for the Development of Web Applications

Semantic-enabled Software Engineering and Development

ONTOLOGY BASED FEEDBACK GENERATION IN DESIGN- ORIENTED E-LEARNING SYSTEMS

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Integrating Performance Characterization with Software Development

Doctor of Philosophy in Computer Science

What is a programming language?

Software Specification and Testing

The Value of Modeling

Intelligent Retrieval for Component Reuse in System-On-Chip Design

A Common Metamodel for Code Generation

Model Driven Security: Foundations, Tools, and Practice

Transcription:

CHROME: A Model-Driven Component- Based Rule Engine Jairson Vitorino PhD Thesis, CIn-UFPE February 2009 Supervisor: Prof. Jacques Robin Ontologies Reasoning Components Agents Simulations

Contents 1. Context of thesis: the ORCAS project State-of-the art in automated reasoning and reused-oriented software engineering Extending both in synergy: the ORCAS project Goals of the thesis within project 2. Base technologies: Model-Driven Architecture (MDA) languages and methods Constraint Handling Rules with Disjunctions (CHR ) 3. CHROME: Model-driven component assembly for an easy to extend, scalable, adaptive CHR engine 4. Model-transformation based CHR rule base to Java compiler 5. Contributions 6. Limitations and future work

Thesis Context: ORCAS Project Motivation Limitations of Automated Reasoning (AR) technology: Few reuse of AR services Lack of modern Software Engineering Poor Integration with mainstream Software Limitations of Software Engineering technology: Lack of tools for MDE and CBD Lack of conceptually complex examples (AR, Compilers) Potencial AR use overlooked (e.g.model checking)

Thesis context: Orcas Goals Orcas: A framework of AR components Model-driven Engineered Based on CHR v AR services Constraint solving over any domain Classical First-Order Logic (CFOL) satisfiability and entailment Description Logic (DL) subsumption Abduction Agent belief update and action planning Truth-maintenance, default reasoning and inheritance cf. Früwirth, Abdennadher, Fages, Martinez, Rodrigues, Christiansen, Thielscher, Martin, Yin, Wolf, Silva, Robin

Goals of the Thesis Most reused component and basis for ORCAS Deployable on a mainstream platform (Java) AR With built-in conflict-directed backjumping for efficient search With built-in truth-maintenance for adaptive, anytime, online reasoning CHROME: CHR On-line Model-Driven Engine With CHR base to Java code compiler designed as a pipeline of model-tranformations. Demonstrate the synergy between: Software components, MDE and Model transformation Software Engineering Demonstrate the applicability to engineer: CHROME Engine Compilers between languages from different paradigms Artificial intelligence software (Large, non-toy model-transformations, 4358 lines of ATL)

Contents 1. Context of thesis: the ORCAS project State-of-the art in automated reasoning and reused-oriented software engineering Extending both in synergy: the ORCAS project Goals of the thesis 2. Base technologies: Model-Driven Architecture (MDA) languages and methods Constraint Handling Rule with Disjunctions (CHR ) 3. Model-driven component assembly for an easy to extend, scalable, adaptive CHR engine 4. Model-transformation based CHR rule base to Java compiler 5. Contributions 6. Limitations and future work

Base Technologies: MDE Languages and Methodologies Unified Modeling Language 2.1 (UML): OMG main MDE standard to specify Platform Independent Models (PIMs) and Platform-Specific Models (PSM, using self-extension profile mechanism) Integrates concepts from imperative, Object-Oriented (OO), concurrent, distributed and component-based paradigms Covers structural, behavioral, functional and deployment aspects of a software Object Constraint Language 2.0 (OCL): Textual part of UML2 to specify arbitrary first-order logic constraints among UML2 model elements Allows modeling executable PIMs, i.e., refined enough to be fully automatically translated into running code by MT Functional OO syntax concise and intuitive for mainstream developers

Base Technologies: MDE Languages and Methodologies Atlas Transformation Language (ATL, Bezevin, INRIA-Rennes) Hybrid rule-based and imperative MT language Pattern-matching model element rewrite rules with embedded procedures Input and output models conform to a meta-model in Ecore (a MOF2 variant) Core is an OCL2 execution engine for input model element pattern matching and output model element construction ( 80% of an ATL program is OCL) Eclipse project, largest user community, de facto standard

Base Technologies: KobrA2 (Atkinson, Robin, Stoll, U. Mannheim-UFPE) Specification Operational Service View (OCL) Protocol View Type View Service View MDECBD Method UML/OCL based 16 views of Comp. Type View Component Service view Algorithmic View Operational Service View (OCL) Realization CHROME is its first large application case study for Kobra2

Base technologies: CHR rule base concrete syntax and logical semantics Constraint simpagation rules : Rule syntax: K\ R <=> G B., with: - K keep heads, and R remove heads, both conjunctions of so called User- Defined Constraints (UDC) - G guards, conjunction of so called Built-In Constraints (BIC) - B bodies, disjunction of conjunction of either RDC or BIC Constraint store S (volatile CHR KB) = S r S b with S r conjunction of UDC and S b conjunction of BIC Query Q: conjunction of constraints, either RDC or BIC CHR propagation rule K ==> G B, syntactic variant of simpagation rule K \ true <=> G B. CHR simplification rule R <=> G B, syntactic variant of simpagation rule true \ R <=> G B.

CHR by Example: Justification and solution adaptation r1@ a \ b <==> c r2@ a,c <==> e,d r3@ g <==> f query: a{1}, b{2}, g{3} r1 r2,r3 Constraint Store a{1},c{1,2},g{3} Constraint Store e{1,2},d{1,2},f{3} remove: a{1} remove all labeled {1} Constraint Store f{3} remove: a{1} re-adding removed constraints Constraint Store b{2},f{3}

Outline 1. Context of thesis: the ORCAS project State-of-the art in automated reasoning and reused-oriented software engineering Extending both in synergy: the ORCAS project Goals of the thesis 2. Base technologies: Model-Driven Architecture (MDA) languages and methods Constraint Handling Rule with Disjunctions (CHR ) 3. CHROME: Model-driven component assembly for an easy to extend, scalable, adaptive CHR engine 4. Model-transformation based CHR rule base to Java compiler 5. Contributions 6. Limitations and future work

CHROME: Top-Level Assembly KobrA2 Realization Structural Class Service View

CHROME: OO Data Structures for CHR CHROME types (draft) Disjunction Justification label:integer[*] +args * Term +body * +js Simpagation Constraint * Variable Constant +guard * BIC +keep * +remove * RDC CHRBase r3 label @ label(x), indomain(x,l(a,l(b,l(c,[])))) <=> true X=A; X=B; X=C. Disjunction

CHROME: OO Data Structures for CHR KobrA2 Specification Structural Class Type View

CHROME: Query Processor Assembly KobrA2 Realization Structural Class Service View

CHROME Run-Time PIM Assembly 8 KobrA2/UML2 Components 40 KobrA2/UML2 Classes 33 KobrA2 view packages 30 UML2 diagrams 187 lines of OCL2 expressions

Outline 1. Context of thesis: the ORCAS project State-of-the art in automated reasoning and reused-oriented software engineering Extending both in synergy: the ORCAS project Goals of the thesis 2. Base technologies: Model-Driven Architecture (MDA) languages and methods Constraint Handling Rule with Disjunctions (CHR ) 3. CHROME: Model-driven component assembly for an easy to extend, scalable, adaptive CHR engine 4. Model-transformation based CHR rule base to Java compiler 5. Contributions 6. Limitations and future work

CHROME: Compiler Pipeline CHR v CHR2CHRCore >> 948 lines CHRCore CHRCore2UMLOCLJ.atl >> 2489 lines UMLOCL UMLOCL2JAVA.atl >> 720 lines JAVA JAVA2String.atl >> 192 lines Java code

CHROME Compiler Stage 1: from full CHR to CHRCore Example input (textual): k(1,x) \ d(x) <=> g b. Example output (textual): k \ d <=> g, k.at(1) = 1, k.at(2) =d.at(1) b. Simpler matching Sequence of Equalities

CHROME Compiler Stage 2: from CHRCore to UML2/OCL2 Basic idea: Every Constraint is converted into a UML Class r1@ a \ b <==> g c ; e r2@ a,c <==> g false r3@ a,e ==> g true AConstraint +execute() -executer1() -executer2() -executer3()... BConstraint +execute() -executer1()......

CHROME Compiler Stage 2: from core CHR to UML2/OCL2 +execute() -executer1() -executer2() -executer3() AConstraint -checkguardr1() -checkguardr2() -checguardr3() -addr1body() -addr2body() -addr3body()

Contents 1. Context of thesis: the ORCAS project State-of-the art in automated reasoning and reused-oriented software engineering Extending both in synergy: the ORCAS project Goals of the thesis 2. Base technologies: Model-Driven Architecture (MDA) languages and methods Constraint Handling Rule with Disjunctions (CHR ) 3. Model-driven component assembly for an easy to extend, scalable, adaptive CHR engine 4. Model-transformation based CHR rule base to Java compiler 5. Testing and benchmarking 6. Contributions 7. Limitations and future work

Contributions Contributions To CHR and CLP: First justification-based adaptive CHR engine (crucial for practical applications and tracing); First CHR engine with intelligent search (CDBJ); First component-based CHR engine (easy to extend); First MDE CHR engine (easy to port to other OO host platforms). To MDE: CHROME: Largest case study to date to integrate MDE with MT and components for AR. First MDE/MT compiler from source language to target language from different structural paradigm (4358 ATL lines).

Outline 1. Context of thesis: the ORCAS project State-of-the art in automated reasoning and reused-oriented software engineering Extending both in synergy: the ORCAS project Goals of the thesis 2. Base technologies: Model-Driven Architecture (MDA) languages and methods Constraint Handling Rule with Disjunctions (CHR ) 3. Model-driven component assembly for an easy to extend, scalable, adaptive CHR engine 4. Model-transformation based CHR rule base to Java compiler 5. Testing and benchmarking 6. Contributions 7. Limitations and future work

Limitations and future work Limitations Only 3 built-in constraints: =, true, false No visual tracing IDE Still an order of magnitude slower than CHR Prolog platforms on run benchmark Untested scalability for other AR tasks beyond finite domain solvers Compiler not component-based and verbose (ATL) Future work Visual tracing IDE (MSc. Thesis of Rafael Oliveira 2010) Create variable size benchmark for variety of AR tasks Port to Python to test scalability of transparent distribution to Google's cloud Extend to run OO CHR bases (cf. MSc. of Marcos Silva 2009)

Thank you! Any Questions?