the dresden ocl toolkit and the business rules...

Post on 23-Aug-2019

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

The Dresden OCL Toolkit and theBusiness Rules Approach

Birgit DemuthTechnische Universität Dresden

Fakultät Informatik

Birgit Demuth EBRC 2005 2

Contents

IntroductionArchitecture of the Dresden OCL Toolkit

OCL1.3 basedOCL2.0 based

OCL in Business Rules SolutionsLessons Learned and Conclusions

Birgit Demuth EBRC 2005 3

Introduction

Birgit Demuth EBRC 2005 4

OCL at a Glance

Object Constraint Language (OCL) MOF related OMG standardPart of the Unified Modeling Language (UML)Language for defining constraints in different UML diagrams

DeclarativeFormalSide-effects-free

OCL adds precision to the mostly graphical/textualspecifications of software projectsGrowing acceptance by more running OCL tools in last years

Birgit Demuth EBRC 2005 5

The EBRC Question

What kind of supportcan OCL provide

for the specification and evaluation of business rules?

(Software engineering perspective)

Birgit Demuth EBRC 2005 6

Typical OCL Use Cases

Development of business applicationsSpecification and evaluation of business rulesSpecification and evaluation of modeling guidelines/„profiles“

Development of CASE toolsChecking the consistency of software models according to the UML metamodelProviding OCL support

Model-driven software engineering/MDASpecification of test cases and generation of test code

Birgit Demuth EBRC 2005 7

OCL by a Business Rule Example(Invariant)

context Destination inv iRegion: hotelsInDestination->forAll(myRegion=self.regionOfDestination)

Birgit Demuth EBRC 2005 8

OCL by a Business Rule Example(Pre/Post Condition)

context Hotel::upgradeStars()pre: stars>=0post: stars = stars@pre + 1

Birgit Demuth EBRC 2005 9

OCL 2.0 as a Query Language

Specification of query operations in the UML model, e.g. the names of all hotels in a regioncontext Region::getNamesOfHotels:Bag(name)body: hotelsInRegion->collect(name)

Further new use cases of OCL2.0 expressions:Definition of reusable OCL expressions (attributes/ operations) (def)Derivation rules (derive) for attributes/association endsSpecification of initial values for attribute/ass. ends (init)

OCL Expression

Birgit Demuth EBRC 2005 10

Examples forOCL Constraintsat the M2 Layer

Ensuring the consistency of software modelsWell-Formedness Rules (WFRs) in the UML metamodel, e.g. circular inheritance is not allowed:context GeneralizableElement: not self.allParents->includes(self)

UML Modeling guidelines/ProfilesJava specific, e.g. there should no multiple inheritance:context GeneralizableElement inv MR1:self.generalization->size<= 1

Birgit Demuth EBRC 2005 11

Architecture of theDresden OCL Toolkit

OCL1.3 basedOCL2.0 based

Birgit Demuth EBRC 2005 12

Dresden OCL Toolkit

Dresden OCL Toolkit available as Open Source:http://dresden-ocl.sourceforge.net/

Modular architecture with cleanly defined interfacesJava-basedIntention is the reuse in (mostly UML CASE) toolsthat are need in some manner thespecification/evaluation of OCL constraints

Birgit Demuth EBRC 2005 13

Dresden OCL ToolkitAvailable Tools (OCL1.3 based)

OCLCore (editing, parsing, type checking, normalization)

OCL2Java (Java code generation)

OCLInjector4Java (Java code instrumentation)

OCL2SQL (SQL code generation)

OCLInterpreter (dynamic OCL constraint evaluation)

Birgit Demuth EBRC 2005 14

Integration of OCL into a UML Tool

OCL by oneself is nothing! Constraints only live together with a UML model!Two ways of integration:

Tight integrationOCL tool as an add-in of the UML CASE tool

Loose integration by XMIXMI file as „Repository“ of the UML model

Birgit Demuth EBRC 2005 15

Existing Integrations ofDresden OCL Tools

ArgoUMLPoseidonMetaBossTogether Control CenterRational Rose

Birgit Demuth EBRC 2005 16

OCLCoreintegrated into Together

Birgit Demuth EBRC 2005 17

MetaBoss

Birgit Demuth EBRC 2005 18

Dresden OCL2 Toolkit(OCL2.0 based)

Redesign of the Dresden OCL Toolkit based on theproposed metamodel for OCL 2.0Already available

MOF repository implementationParserCode generator to generate Java expressions for theevaluation of WFRs (OCL invariants on meta models)

Under DevelopmentFull Java code generationApplication program instrumentationSQL code generation

Birgit Demuth EBRC 2005 19

OCL in Business Rules Solutions

Birgit Demuth EBRC 2005 20

OCL in Business Rules Solutions

Use of OCL in the UML-related world is recentlygrowing because of the availability OCL toolsTwo-step process

1st step: Specification of OCL constraints fordocumentation2nd step: Evaluation of OCL constraints for checkingbusiness rules

First examples of using OCLMetaBoss projects (metaboss.sourceforge.net, Australia)pleXX framework (www.exxcellent.de/plexx, Germany)Cemagref (www.cemagref.fr, Agricultural and environmental engineering, France) Further own case studies with Dresden OCL tools

Birgit Demuth EBRC 2005 21

OCL Constraints vs.Business Rules (1)

Specification of Business Rules (BR) At the external level: How can BR be expressed by the userin a simple and comprehensible way?At the conceptual level: How can BR be represented insidethe system? At the internal level: How can BR be implemeted?

Unanimous position in literature and reportsOCL is useful for the specification of BROCL is too difficult for business modelersThere are already different running OCL implementations

OCL is a good candidate for the conceptual level ☺

Birgit Demuth EBRC 2005 22

OCL Constraints vs.Business Rules (2)

ConsequencesTransformation of BR to OCL constraintsEvaluation OCL constraints by different implementationapproaches

Different approaches for user-friendly specification of BR, e.g.

Visual language for OCL (Constraint Trees, Kent et al 2002)Business Modeling (BM) syntax for OCL (Octopus, Warmer et al 2003)

Approaches for OCL implementationsDBMS based (SQL driven)Application language driven (e.g. Java)

Birgit Demuth EBRC 2005 23

Dresden OCL Tools in aBusiness Rule Framework

UML/(Extended) Dresden OCL Tools

BMLanguage

VisualLanguage

NaturalLanguage

TemplateLanguage

DSL (e.g. UML-Profile)

SQL Java J2EE C#/.Net

. . .

. . .

Birgit Demuth EBRC 2005 24

Basic Types of BR andTheir Mapping to OCL

Type of Business Rules

OCL concepts

Constraint Invariant

Derivation rule Derivation rule (derive)Query operation (body)(limited)

Reaction rule Extended OCL (Actions, XOCL)

Birgit Demuth EBRC 2005 25

Scenario 1:Use a BR Language

Business Modeling (BM) Syntax for OCL as an example(Octopus, Warmer et al 2003)

SQL likeSupports all concepts of OCLUser-friendly notation for predefined operations on collections and for predefined iteratorsEasy to implement in the framework of the Dresden OCL2 Toolkit because of the separation of concreteand abstract OCL syntaxFurther other concrete syntax possible

Birgit Demuth EBRC 2005 26

BM Example

One of our BR examples …

In standard OCLcontext Region::getNamesOfHotels:Bag(name)body: hotelsInRegion->collect(name)

In BM syntax of OCLcontext Region::getNamesOfHotels:Bag(name)body: collect h.name using h: Hotels

from hotelsInRegion

Birgit Demuth EBRC 2005 27

Scenario 2:Design a DSL

Design of a Domain Specific Language (DSL) couldbe an approach to create a specialized BR languageGenerally valid built-in business rulesOften used technique is the creation of a UML Profile

StereotypesTagged values(OCL) Constraints

Birgit Demuth EBRC 2005 28

Example: DSL for a Geographic IS (1)

DSL for GIS applications (Pinet et al, 2004)Definition of a UML profile

Typical business rules of a GIS are „hidden“ in theprofileCase study in an agricultural information system

Birgit Demuth EBRC 2005 29

Example: DSL for a Geographic IS (2)

„Spatial OCL“ foruser-definedtopological constraintsImplemented byOCL2SQL

Birgit Demuth EBRC 2005 30

Example: DSL for a Geographic IS (3)

Embedding of our Hotel Reservation System into a GIS

User-defined topological constraintcontext Region inv: destinationsInRegion ->

forAll(self.geometry.contains(geometry))

Birgit Demuth EBRC 2005 31

Lessons Learned and Conclusions

Birgit Demuth EBRC 2005 32

Lessons Learned (1)

Our case studies show that the road to a broad useof OCL in the professional software development isstill long.OCL is too difficult for most business modelers!BR/constraints should be executed, not only bedocumented!Subset of Business Rules can be implemented byOCL!Ideas are great, the realization of ideas by tools arebetter!

Birgit Demuth EBRC 2005 33

Lessons Learned (2)

Strengths of Dresden OCL Toolkit: Open source under the LGPL licenseClean and small interfaces for extension of thetoolkit and exchange of modulesCode generation for Java and SQLConformance to OCL1.3 (in future to OCL2.0)OCL Syntax assistantMetamodel based OCL20 architectureAllows implementations of OCL languageextensions

Birgit Demuth EBRC 2005 34

Lessons Learned (3)

Reuse in many research&development projects and in first business environmentsMaintenance at the university with minor ressourcesis difficultWe would be glad about further developers in theopen source community ☺Feedback using our toolkit is welcome!

Birgit Demuth EBRC 2005 35

Conclusions

There are two scenarios using OCL in business rulessolutions:(1) Use a BR language and map the business rules internally to

OCL(2) Design a DSL with internally hidden OCL constraintsExtending OCL by actions covers a bigger set of business rules!Business rules projects should externally use OCL as long as no BR language exists!Dresden OCL Toolkit is reuseable for building toolswhich handles constraints in different forms

Birgit Demuth EBRC 2005 36

Outlook

Maintenance of Dresden OCL13 ToolkitFurther development of Dresden OCL20 ToolkitFurther case studiesResearch questions:

How to extend OCL for higher expressiveness?How to detect inconsistent specifications of constraints?Can the Semantic Web (OWL and similar languages) benefitfrom OCL?Clarification of the role of OCL in MDA and especially in themodel-driven development of business rules applications

top related