Analysis of the Specifics for a Business Rules Engine Based Projects



Similar documents
Basic Unified Process: A Process for Small and Agile Projects

UML TUTORIALS THE USE CASE MODEL

Designing a Semantic Repository

Making Business Rules operational. Knut Hinkelmann

BUSINESS RULES MANAGEMENT AND BPM

Effort and Cost Allocation in Medium to Large Software Development Projects

Increasing Development Knowledge with EPFC

IBM WebSphere ILOG Rules for.net

Plan-Driven Methodologies

Applying 4+1 View Architecture with UML 2. White Paper

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

Business Rule Standards -- Interoperability and Portability

IBM WebSphere Operational Decision Management Improve business outcomes with real-time, intelligent decision automation

Chap 1. Introduction to Software Architecture

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

K-SITE RULES: Integrating Business Rules in the mainstream software engineering practice

Domain modeling: Leveraging the heart of RUP for straight through processing

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

Rules and Business Rules

What is Enterprise Architect? Enterprise Architect is a visual platform for designing and constructing software systems, for business process

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

WHITE PAPER DATA GOVERNANCE ENTERPRISE MODEL MANAGEMENT

Towards Flexible Business Process Modeling and Implementation: Combining Domain Specific Modeling Languages and Pattern-based Transformations

ProGUM-Web: Tool Support for Model-Based Development of Web Applications

Talend Metadata Manager. Reduce Risk and Friction in your Information Supply Chain

A Software Development Platform for SOA

Content Management Using the Rational Unified Process By: Michael McIntosh

Development of Tool Extensions with MOFLON

Content Management Using Rational Unified Process Part 1: Content Management Defined

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

California Enterprise Architecture Framework

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

The Workflow Management Coalition Specification Workflow Management Coalition Terminology & Glossary

PROCESS AUTOMATION FOR DISTRIBUTION OPERATIONS MANAGEMENT. Stipe Fustar. KEMA Consulting, USA

SOMA, RUP and RMC: the right combination for Service Oriented Architecture

What is a life cycle model?

Classical Software Life Cycle Models

Rational Unified Process for Systems Engineering RUP SE1.1. A Rational Software White Paper TP 165A, 5/02

Meta-Model specification V2 D

BUSINESS RULES MANIPULATION MODEL 1

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

Project estimation with Use Case Points using Enterprise Architect (EA)

Quality Assurance of Software Models within Eclipse using Java and OCL

Background: Business Value of Enterprise Architecture TOGAF Architectures and the Business Services Architecture

Developing SOA solutions using IBM SOA Foundation

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

An Enterprise Architect s Approach to Assessment Development

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

Sistemi ICT per il Business Networking

Data Modeling Basics

The Data Grid: Towards an Architecture for Distributed Management and Analysis of Large Scientific Datasets

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

The Unified Software Development Process

The Rap on RUP : An Introduction to the Rational Unified Process

A BIAN Building Block Service Repository and Registry

Non-Functional Requirements

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

VAIL-Plant Asset Integrity Management System. Software Development Process

Modeling BPMN Diagrams within XTT2 Framework. A Critical Analysis**

Software Development Life Cycle (SDLC)

Information systems modelling UML and service description languages

A Review of an MVC Framework based Software Development

6 Contracts and Scenarios in the Software Development Process

The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform

Quest for a Business Rules Management Environment (BRME) in the Internal Revenue Service

Business Rule Management. Effective IT Modernization

A Pattern-based Approach to Business Process Modeling and Implementation in Web Services

Foundations of Model-Driven Software Engineering

A Rational Software & Context Integration white paper

Object-Oriented Design Guidelines

Federated, Generic Configuration Management for Engineering Data

A common interface for multi-rule-engine distributed systems

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

CASSANDRA: Version: / 1. November 2001

SOA Enabled Workflow Modernization

The IFPUG Counting Practices On-Going Effort in Sizing Functional Requirements. Janet Russac

Decisions in IBM Websphere ILOG BRMS

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Integration of DB oriented CAD systems with Product Lifecycle Management

Sparx Systems Enterprise Architect for Team Players

How To Understand The Business Analysis Lifecycle

Enterprise Architecture: Practical Guide to Logical Architecture

Technology WHITE PAPER

JOURNAL OF OBJECT TECHNOLOGY

Software Project Management and UML

Estimating Work with Use Cases. Estimating Work with Use Cases. We need to forecast. Use Case Point Estimator. We need to quantify

Business Process Modeling and Standardization

Using UML Part Two Behavioral Modeling Diagrams

Managing Third Party Databases and Building Your Data Warehouse

Transcription:

Analysis of the Specifics for a Business Rules Engine Based Projects By Dmitri Ilkaev and Dan Meenan Introduction In recent years business rules engines (BRE) have become a key component in almost every major enterprise class projects. The analysis, design, and implementation processes related to this very specific piece of technology has had a definite impact on life cycle of such projects. The increased importance of projects using BRE has been recognized throughout the industry. As result, the Rational Unified Process (RUP) has introduced special Plug-Ins for Business Rules from Blaze [1], ISIS (The ILOG Solution Implementation Standard) methodology from ILOG [2], other approaches and proposed project flows [3]. Over the past five years, business rules engines have not only have become a more robust, powerful and scalable technology, capable to process an extremely high number of complex rules per hour, per minute, and even per second; but the whole BRE platform had evolved. The BRE platform is now a complex environment with the special tools for analysis, design and development, as well as numerous enhancements, making the processes of performing business rules development very efficient. This article reviews the general RUP-based guidance, and tailors it to the current state of BRE-based development and their specific needs. This paper is based on experience with such products as JRules from ILOG, QuickRules from Yasutech, Blaze Advisor, as well as some open source engines like Jess and Drools. After reviewing the specifics of the projects with a BRE component, we will discuss an approach for effort estimates related to these types of projects. RUP for BRE Implementations According to the Blaze RUP Plug-In for Business Rules, the workflow details for the business rules modeling is shown at Figure 1 below. Page 1 of 15

Figure 1: The Workflow Details for the Business Rules Modeling The Business Rule Modeling workflow encompasses 4 main threads: 1. The Business Rule Opportunity Assessment that is an early-iteration workflow. 2. The thread of Defining Business Rule Roles and Responsibilities, mapping the business to rule ownership, usually an early iteration workflow. 3. The thread for discovering business rules and their related business processes, encompassing: a. Planning for Business Rules, generally an early iteration workflow that may be repeated if new rule sources are discovered b. Identify Business Rule Processes, which occurs both in early iterations (as topdown development from process to rules) and later iterations (as rules are organized and processes evolve). Page 2 of 15

c. Develop Business Rule Model, which occurs continuously as rules are modeled, patterns derived, and derivations discovered. d. Define Automation Needs, which determines what goals the organization has for managing the business rules within a system. 4. Refine Business Process Definitions for Business Rules, to join rule organization with identified business processes, usually in later iterations. The thread for developing the Business Rule Domain Model uses the terms discovered in the Rule Model to derive a suitable Business Object Model for the rules to act against. This is a continuous process during business rule modeling, although later iterations should require much less effort here. These threads and their workflows are briefly described below: Business Rule Opportunity Assessment The Business Rule Opportunity Assessment is an early-iteration workflow: Figure 2: Business Rule Opportunity Assessment Workflow Page 3 of 15

The purpose of this workflow detail is to: Determine the suitability of a Business Rules Approach to an organization and/or project. This is done through an assessment and incorporates a "mini-iteration" of business rule modeling (i.e. discovery). Identify the system vision and goals for the business rule modeling Start collecting and organizing some rules and the business rule glossary, as much as is needed for the assessment. Define Business Rule Roles and Responsibilities Define Business Rule Roles and Responsibilities is shown below in Figure 3 The purpose of this workflow detail is to create and maintain the contact list for sources of the business rules, and obtain agreement on the responsibilities of the contacts with regards to the business rule modeling. Figure 3: Define Business Rule Roles and Responsibilities Workflow Plan for Business Rules The purpose of the Plan for Business Rules workflow is to prepare for the main business rule modeling workflows. This preparation includes (see Figure 4): Updating the Opportunity Assessment with the rule management plans. Defining the Modeling Guidelines for the Business Rule Analysts. Planning the rule discovery process. Page 4 of 15

Developing any rule taxonomy or classification required. Configuring some repository for the rules to be stored in. Figure 4: Plan for Business Rules Workflow Identify Business Rule Processes The purpose of the Identify Business Rule Processes workflow is to identify and organize the processes that utilize business rules. Business rules reflect the underlying rules by which the business performs its work. They are generally organized into different specialist groups that are invoked at particular times as part of a larger business process or need. See figure 5. Page 5 of 15

Figure 5: Identify Business Rule Processes Develop the Business Rule Model The tasks related to Develop Business Rule Model workflow are to discover, detail, analyze, group and validate the business rules (see Figure 6). Page 6 of 15

Figure 6: Develop Business Rule Model Define Business Rule Automation The process to Define Business Rule Automation Needs is illustrated in Figure 7. Page 7 of 15

Figure 7: Define Business Rule Automation Needs The purpose of this workflow is to ascertain what the organization needs are for business rule automation. These may have been addressed in the Vision or Opportunity Assessments; however, until at least one iteration of documenting the business rules has been completed, there will be uncertainty as to what rules could be automated and with what result. Refine Business Rule Process Definitions The Refine Business Rule Process Definitions workflow performs a merge of the automation needs with the process analysis carried out to date, with the objective to refine the business rule process definitions. This is illustrated in figure 8. Page 8 of 15

Figure 8: Refine Business Rule Process Definitions Develop Business Rule Domain Model The Develop Business Rule Domain Model workflow maps the glossary of terms defined during the Opportunity Assessment and ongoing Business Rule Process Modeling and Rule Modeling, into a Business Object Model that provides extensibility, understandability, and suitability for defining rules against. Figure 9: Develop Business Rule Domain Model Page 9 of 15

We believe that the RUP Plug-In described above gives a good general direction to projects where business rules engines will be used. In the discussion below some clarification and details are provided specific to the current state of BRE technology and its implementation. Additional Considerations in the Use of Business Rules Engines and Project Flow Categories of Rules and Other Variances When working with a BRE the main entity we operate with is a rule. A rule is a set of conditions and associated actions that are performed when the conditions are satisfied. A rule is frequently written in the form of an If statements, which might have preconditions that are other rules in the same ruleset. Precondition rules allow the reuse of rules, and reduce repetition of framing conditions across rules. While rules that are fired need to have at least one condition and action, rules intended to be precondition rules need not have actions. Rules have an attribute called priority. The priority of a rule governs the order in which satisfied rules are fired. Below are other BRE entities which should be accounted for during rules definition and implementation. Rule templates are design patterns for rules. In many circumstances, a rule might be applicable to several data. In such cases, rule templates allow for the creation of rules with empty slots to be filled in later. A business rule template represents a partially defined business rule that contains placeholder slots for missing information. Templates can be used to create multiple rules with a similar structure, where only the value filled in the slots varies. A ruleset is a logical collection of business rules. A ruleset supports the grouping of business rules that govern a specific function. For example, all rules related to discounts could be grouped under one discount-rules ruleset. A ruleset has to have a name which is unique. It is this name which should be used with the invokeruleset method of the rule engine interface. A ruleset consists of: Definitions (optional) Rules Mutual Exclusion Rules (optional) A FlowRuleset is a collection of rules along with one or more flows that define the sequence in which the rules are to be executed. A FlowRuleset needs to have at least one flow that is designated as the main flow. Execution of a FlowRuleset always starts from the main flow. Page 10 of 15

A FlowRuleset consists of: Decisions Definitions Flows Rules Tasks In some products, there are alternative representations to rules for if/then knowledge. They are: decision trees and decision tables. Decision trees represent the rules pictorially as a tree structure. This may be a useful aid to debugging or communication between users and developers or analysts but is not usually how business users visualize their knowledge or processes. Decision tables represent the same knowledge and rules as decision trees, but in a tabular format. With these additional considerations in mind, the task of a rule taxonomy development is no longer optional as discussed in the Plan for Business Rules section and illustrated in figure 4. During the process of rules identification and analysis, the taxonomy of the rules should be developed. Additionally, identified rules should be mapped against preexisting taxonomy entities like ruleset, template, decision table or ruleflow. Such rules classification will determine the next tasks in the rules analysis, details definition and implementation and the processes related to building the business rule model - where discover, detail, analyze, group and validate the business rules are performed according to the established classification and mapping of the identified rules to the developed taxonomy. A simplified process flow is shown at the Figure 10. Figure 10: The process of business rules detailing Business rules should be captured and detailed in the flexible, effective and easy to understand (and modify) format. Currently there are no common ways and standard Page 11 of 15

approaches in capturing business rules and their transformation in the format which BRE would accept. (Note: Haley in their white paper [4], outline a 7-step process flow for policy capture). Non-optimal ways of capturing and detailing of the business rules may result in their under or over-engineering, which could significantly negative impact on the project. The tools and formal description of the captured rules exist in a wide variety of forms and formats. They range from free form textual descriptions to formal definitions written in OCL, BRML, RuleML or any other language or Meta data format. When a project design is UML-based, it has became a common practice to enhance the basic use cases and class diagrams with the details of the system behavior, which also includes business logic detailing. This is done by adding other UML diagrams: sequence, activity, state, etc. UML also defines the Object Constraint Language (OCL). OCL supports modeling preconditions, post-conditions, constraints, invariants, etc. OCL can provide the basis for rule based extensions to service interface definition. Another technical framework from OMG Meta Object Facility (MOF) can be used for support the definition of specific metadata models and supports programmatic and XML based interchange of model information including rule specifications BOM, XOM and UML Relationships The problem domain that business rules manipulate is expressed in the form of a business object model (BOM). Similar to a UML object model, the BOM is a structured representation of all the concepts, data elements, and relationships present in the problem domain. For many projects, at least in specifying the conceptual form of a business object model (BOM), this task performed by an analyst. However, the business object model must ultimately be tied to a Java or XML execution object model (XOM) (see the review in [3]). This and other advanced aspects of object model and language specification requires the expertise of Java developers. Developers use a Java Rules Builder (BRE vendor specific) to create the BOM and relate it to a Java XOM or XML schema. In most cases, this is done by importing existing Java classes or XML schemas. Once imported, the elements are given, or decorated with, the domain-specific phrases that constitute the language used by policy managers to write business rules. The decoration process is highly flexible. It permits developers to give common English-like names to classes, attributes and methods, and also specify in detail how those names are translated into invocations of actual XOM methods. Developers can also create new concepts by adding virtual methods to the BOM that translate into complex, composite invocations on the XOM. The XOM Java project is the interface between the architectural code and stable or fixed business logic, and the dynamic business rules. It implements the business object model that describes the business concepts and relationships of the problem domain. Because the XOM project implements the business object model in Java, it incorporates a formalized, business-centric view of the problem domain. Additionally, the business rules are written directly against the constructs of the XOM business object model. The XOM Page 12 of 15

project thus functions as a bridge between the analysis-oriented (UML) view of the problem domain, and the dynamic logic of the business rules. It is important to note that in enterprise class projects, the overall scope of the project is much wider than the BRE design and implementation. The business rules engine is covering majority of the business rules and logic in the system but still only one of components supporting the overall project objectives. As a result, analysis model, business object model and design models used in BRE are just a subset of the corresponding models developed for the whole project. While rules discovery, analysis, and grouping can be performed on the base of BOM, the more detailed design and validation is only possible at the level of the design model. (When XOM Java classes are imported into BRE development environment and rules and other logic are applied against attributes and methods of these classes). Restated, in the development of an overall class diagram for the entire project, the classes identified as the entities for the business rules engine functions are the important conditions for the implementation of the defined business rules and other logic in the system. This set of tasks is presented at the Figure 11. Figure 11: Project Activities as Inputs to BRE Design Estimates for Projects with Business Rules Engines Since the business object model plays the key role in definition and implementation of the rules for the rules engine, the use case points based approach would be a natural Page 13 of 15

choice as the tool for the estimate for this type of projects. A brief outline of the estimate model is presented below. An assessment of the use cases is performed to define the degrees of complexity. Then the total number of a Unique Use Case Points (UUCP) can be calculated as the sum of the use cases weighted by a complexity factors (UUCW unadjusted use case weights) and the sum of the actors in the use cases weighted by their complexity factors (UAW unadjusted actor weights), so UUCP=UUCW+UAW. Another alternative way of defining use case complexity is the use of 5/10/15 factors for the easy, average and complex use cases respectively. This approach, for example is used in the Enterprise Architect from Sparx Systems: The number of Use Case Points UCP = UUCP * TCF * ECF, with Technical Complexity (TCF) and Environmental Complexity (ECF) defined elsewhere. With the Estimated Hours per UUCP (HRS) set as some of the model parameter, the total efforts for the implementation of the selected use cases are: Total Hours (HRS * UCP). This model should be extended to account for the business rules being used in some of the use cases, and the fact that the business rules might have a different complexity as well. We had found that the best way to do this is to introduce an effective complexity of the use case which can be calculated as: EFFCMPL = CMPL x [1 RCMPL/(CMPL+RCMPL)], where CMPL is the original complexity of the use case and RCMPL is the complexity of the business rules associated with this use case. For the estimate accuracy, RCML is changing more gradually then CMPL, for example if CMPL can have 3 values of 5, 10 and 15 for the easy, average and complex use cases, the RCMPL values can cover the whole range of values between 0 and 30. The rest of the project s use cases, including use cases describing BRE integration with the rest of the system, should be added to the estimate. Conclusion Based on the analysis discussed in this paper, there is demonstrated value in the addition of the following tasks to projects with the business rules engines: Make analysis of the taxonomy of business rules a required part of the business rules analysis, definition and design. Breaking down the rules into a stand alone rules, set of rules, decision tables, rule flows, and other structures enabled by the current and future state of the development of BRE technology, impacts the whole process of how these rules are captured, detailed and implemented. There is no unified approach for capturing business rules and their conversion to a form optimal for the BRE. This is normally done on a project by project basis, and frequently it is a BRE vendor specific process. This step as one of the key challenges and areas of risk for these types of projects. When considering enterprise level project with BRE as one of the modules, the rules are applied against attributes and methods of the classes imported to the BRE from Page 14 of 15

the overall project class diagram, making it a required project design artifact (together with the business object model and other UML diagrams). Use case points based estimate is a convenient way of estimating the effort for any project with well defined use cases and BRE in particular. For a project with BRE, it is proposed that this type of estimation is extended by introducing of the effective complexity of the use cases through the formula connecting complexity of the use case itself to the complexity of the associated business rules. References 1. RUP Plug-In for Business Rules http://www.fairisaac.com/fairisaac/solutions/enterprise+decision+management/bus iness+rules/blaze+advisor/rup+plug-in+for+business+rules.htm. 2. ISIS Delivering successful solutions each time, every time ILOG Consulting Methodology White Paper 2005 http://www.ilog.com. 3. Service Oriented Business Rules Management Systems by Ian Graham Chief Technical Officer and Principal Consultant, TriReme International Ltd. www.trireme.com. 4. Methods for Managing Business Rules with Haley Authority 2005 www.haley.com. Page 15 of 15