• No results found

Business-Driven Software Engineering Lecture 9 Business Objects and Object Life Cycles

N/A
N/A
Protected

Academic year: 2021

Share "Business-Driven Software Engineering Lecture 9 Business Objects and Object Life Cycles"

Copied!
41
0
0

Loading.... (view fulltext now)

Full text

(1)

Business-Driven Software Engineering

Lecture 9 – Business Objects and Object Life Cycles

Jochen Küster [email protected]

(2)

© 2013 IBM Corporation 2 Dr. Jochen Küster | BDSE 2013

Agenda

Introduction to Business Objects and Object Life

Cycles

Overview of Use Cases for Object Life Cycles

Consistency of Business Process Models and Object

Life Cycles

Generation of a Business Process Model from Object

Life Cycles

Extraction of Object Life Cycles

Resolution of Inconsistencies

Summary and References

(3)
(4)

© 2013 IBM Corporation 4 Dr. Jochen Küster | BDSE 2013

Business Objects

A business object is a discrete entity that plays a role in business

processes of an organization

Examples: Claim, Bill, Contract

Objects can be associated with a number of distinct business object

states

Modeling of business objects

–UML class diagrams for capturing structure of business objects

(5)

UML State Diagrams for capturing Object Life Cycle

Object life cycles model allowed state transitions

No events/conditions/actions as in conventional UML State Diagrams

Instead event is replaced by the activity which performs the transition on the object

registered

granted rejected settled

closed

Object life cycle for Claim object type

register

settle

close

close grant reject

(6)

© 2013 IBM Corporation 6 Dr. Jochen Küster | BDSE 2013

Business Process Models and Business Object Flow

Business process models capture coordination of activities performed to achieve a business goal

Activities work on data, they consume data and produce new data In some occasions it is necessary to model data more explicitly Some process modeling languages support business objects

– BPMN, UML 2.0 Evaluate Claim Make Payment Notify Refusal Close Claim

X

X

Receive Claim

(7)

Business Objects in BPMN

BPMN supports the modeling of object flow

Business objects define input and output of activities

Business objects can be given states

Decoupled and connected option

Too much object flow introduces cluttering into the diagram

Evaluate Claim Receive Claim Evaluate Claim Receive Claim Claim Claim

(8)

© 2013 IBM Corporation 8 Dr. Jochen Küster | BDSE 2013

Business Objects in UML 2.0

UML 2.0 supports the modeling of object flow

Explicit form of object flow:

–Object flow connections

–Object pins are used for outputting or reading a business object

Implicit form of object flow (shorthand for this lecture):

–Datastores are used

–Connections between pins and datastores are omitted

Evaluate Claim Receive Claim Evaluate Claim Receive Claim <<datastore>> Claim Claim

(9)

Business Process Models and Business Object Flow

Object pins and data stores support the modeling of business object flow

Decision conditions can be specified in terms of the state of business

objects (see Data-based Routing Pattern)

Evaluate Claim Notify Refusal <<datastore>> Claim <<datastore>> Payment Make Payment Close Claim Receive Claim granted rejected

(10)

© 2013 IBM Corporation 10 Dr. Jochen Küster | BDSE 2013

(11)

Use Cases of Object Life Cycle Modeling (1)

1.

Model both Business Process Models as well as Object Life Cycles

– To get an overview of how business objects are manipulated

– To complete the picture of the business process (another view)

2. Establish consistency between Business Process Models and Object

Life Cycles

– To improve the quality of the overall model

(12)

© 2013 IBM Corporation 12 Dr. Jochen Küster | BDSE 2013

Use Cases of Object Life Cycle Modeling (2)

3. Generate a process model from existing object life cycles

–To understand better the hidden process behind object life cycles –To follow a process-driven approach for implementation

–To ensure consistency of object life cycles with generated process model

4. Extract object life cycles from business process models

–To get an overview of how business objects are manipulated

–To ensure consistency of process model with extracted life cycles

(13)

Techniques for Process Models and Object Life Cycles

A consistency concept for the two views (for checking consistency)

Model transformations for generation and extraction

Resolution of inconsistencies by predefined transformations

PM

OLC

PM

OLC

PM

OLC

PM

OLC

PM’

OLC’

2a. check

consistency

2b. resolve

inconsistencies

4. extract

object life cycles

3. generate

(14)

© 2013 IBM Corporation 14 Dr. Jochen Küster | BDSE 2013

Consistency of Business Process Models

and Object Life Cycles

(15)

Relationship between process models and object life

cycles

Process models and object life cycles represent overlapping behavior

registered granted rejected settled closed Evaluate Claim Notify Refusal Close Claim Receive Claim Offer Benefit

Object life cycle for

Claim object type Process model for Claim Handling process

triggers one of

triggers

triggers triggers

(16)

© 2013 IBM Corporation 16 Dr. Jochen Küster | BDSE 2013

evaluate claim

notify refusal

Process model for Claim Handling process

<<datastore>> Claim <<datastore>> Payment [granted, rejected] [granted] [rejected, cancelled] [rejected, cancelled] [granted, rejected] [paid in full] [granted, rejected, cancelled] [closed] [granted] [rejected] [registered] [registered]

Creates Claim objects in state registered

Induces transitions from registered to

granted and from

registered to

rejectedfor Claim

objects

Does not induce transition from

cancelled to

rejectedfor Claim

objects Creates Payment

objects in state paid in full

Claim can be in state

closed or rejected

and Payment can be in state paid in full

make payment close claim receive claim

Checking Consistency - Example

registered

granted rejected settled

closed

Object life cycle for Claim object type

register

settle

close

close grant reject

(17)

Conformance: all induced transitions, first states and last states in process model have corresponding elements in object life cycle

–transition

–target of initial transition –final state –induced transition –first state –last state corresponding elements evaluate claim notify refusal [granted, rejected] [granted] [rejected, cancelled] [rejected, cancelled] [granted, rejected] [paid in full] [granted, rejected, cancelled] [closed] [granted] [rejected] [registered] [registered] make payment close claim receive claim

Checking Consistency – Forms of Consistency

registered granted rejected settled closed register settle close close grant reject

(18)

© 2013 IBM Corporation 18 Dr. Jochen Küster | BDSE 2013

registered granted rejected settled closed evaluate claim notify refusal close claim receive claim offer benefit [granted, rejected] [granted] [rejected, cancelled] [rejected, cancelled] [granted, rejected] [paid in full] [granted, rejected, cancelled] [closed] [granted] [rejected] [registered] [registered]

Non-conformant transitions: (1) offer benefit task induces transition from state granted

to rejected and (2) close claim task induces transition from state granted to state closed, which are not defined in the object life cycle

Non-conformant last state: (3) rejected is a last state in the process model, but it is not

a final state in the object life cycle

Non-covered transitions: (4) transitions from state granted to settled and (5) from state

settled to closed are not induced in the process model

(19)

Approaches to achieving consistency

Authorized Settled PartiallySettled Authorize Settle in full Pay Pay Requested Request Authorized Settled PartiallySettled Authorize Settle in full Pay Pay Requested Request Authorized Settled PartiallySettled Authorize Settle in full Pay Pay Requested Request Object life cycles Check for fraud Register new claim ClaimClaim Claim [Possible fraud] Initiate fraud investigation Initiate fraud investigation [No fraud] Existing business process model Check for fraud Register new claim Claim Claim Claim [Possible fraud] Initiate fraud investigation Initiate fraud investigation [No fraud] Consistency ensured 2. Resolution of inconsistencies 1. Consistency checking Authorized Settled PartiallySettled Authorize Settle in full Pay Pay Requested Request Authorized Settled PartiallySettled Authorize Settle in full Pay Pay Requested Request Authorized Settled PartiallySettled Authorize Settle in full Pay Pay Requested Request Object life cycles Check for fraud Register new claim Claim Claim Claim [Possible fraud] Initiate fraud investigation Initiate fraud investigation [No fraud] Initial business process model Check for fraud Register new claim Claim Claim Claim [Possible fraud] Initiate fraud investigation Initiate fraud investigation [No fraud] Customized business process model

!!!

Inconsistencies 1. Process model generation 2. Customization 3. Consistency Checking 4. Resolution of inconsistencies

!!!

Inconsistencies

!

!!!!

(20)

© 2013 IBM Corporation 20 Dr. Jochen Küster | BDSE 2013

Generation of a Business Process Model

from Object Life Cycles

(21)

registered granted rejected settled closed register settle close close grant reject

1.

For each event labeling a state transition in

object life cycle, an activity is generated

with appropriate input/output pins and

object states

register

[registered]

grant

[registered] [granted] [registered]

reject

[rejected]

[granted] [settled] [closed]

[settled, rejected]

(22)

© 2013 IBM Corporation 22 Dr. Jochen Küster | BDSE 2013

registered granted rejected settled closed register settle close close grant reject

1.

For each event labeling a state transition in

object life cycle, an activity is generated

with appropriate input/output pins and

object states

2.

Order of activities is based on matching

input/output object states

reject [registered] [rejected] grant [registered] [granted] settle [granted] [settled] register [registered] close [closed] [settled, rejected]

(23)

registered granted rejected settled closed register settle close close grant reject

1. For each event labeling a state transition in object life cycle, an activity is generated with appropriate input/output pins and object states 2. Order of activities is based on matching

input/output object states

3. Control nodes are added for correct control flow

grant [registered] [granted] settle [granted] [settled] register [registered] close [closed] [settled, rejected]

(24)

© 2013 IBM Corporation 24 Dr. Jochen Küster | BDSE 2013

registered granted rejected settled closed register settle close close reject grant evaluate reject [registered] [rejected] grant [registered] [granted] settle [granted] [settled] register [registered] close [closed] [settled, rejected] <<datastore>> Claim

Generation from one object life cycle

1. For each event labeling a state transition in object life cycle, an activity is generated with appropriate input/output pins and object states 2. Order of activities is based on matching

input/output object states

3. Control nodes are added for correct control flow 4. Combination of selected activities

evaluate close register settle [granted, rejected] [granted] [settled] [settled, rejected] [closed] [granted] [rejected] [registered] [registered] <<datastore>> Claim

(25)

Generation from a set of object life cycles

created

authorized

paid in full partially paid pay all pay all authorize stopped pay installment stop stop pay installment create registered granted rejected settled closed register reject grant close settle close synchronization registerC (I1 C,I 2 P) RGC,I 2 P RJC,I 2 P CLC,I 2 P GRC,CRP GRC,RFP GRC,AUP GRC,STP GRC,PPP SEC,PFP CLC,PFP rejectC closeC grantC | createP refuseP authorizeP stopP settleC | pay allP settleC | pay allP stopP closeC pay installmentP pay installmentP rejectC closeC settleC| pay allP C[RG] C[RG] C[RJ] C[SE,RJ] C[CL] P[CR] P[AU] P[AU,PP] P[PP] P[PF] P[AU,PP] C[SE] registerC C[GR] C[RG] P[AU] P[PP]

1. Identification of synchronization events (manual step)

2. Composition of object life cycles

3. Process model generation:

– Task generation

– Object state relation for tasks

– Process fragment generation

(26)

© 2013 IBM Corporation 26 Dr. Jochen Küster | BDSE 2013

Identification of synchronization events

A synchronization event is an event that triggers state transitions in more than one object life cycle

Identifying synchronization events is necessary given several object life cycles, to ensure that invalid composite states cannot be reached

created

authorized

refused

paid in full partially paid create pay all pay all authorize refuse stopped pay installment stop stop pay installment I2

Object life cycle for Payment object type

registered

granted rejected settled

closed

Object life cycle for Claim object type

register settle close close grant reject I1 grantC| createP grantC| createP settleC | pay allP settleC | pay allP settleC | pay allP

(27)

Composition of object life cycles

registerC (I1C,I 2P) registeredC I2P rejectedC grantedC createdP grantedC refusedP grantedC authorizedP grantedC stoppedP grantedC partially paidP settledC paid in fullP closedC paid in fullP rejectC grantC | createP refuseP authorizeP stopP settleC | pay allP settleC | pay allP closeC pay installmentP registered granted rejected settled closed register settle close close grant reject I1 grantC| createP settleC | pay allP created authorized refused

paid in full partially paid create pay all pay all authorize refuse stopped pay installment stop stop pay installment I2 grantC| createP settleC | pay allP settleC | pay allP closedC refusedP

(28)

© 2013 IBM Corporation 28 Dr. Jochen Küster | BDSE 2013

Process model generation

Transition and first state conformance with respect to both object life cycles are satisfied, but last state conformance is not

All coverage conditions are satisfied here, but this is not guaranteed

rejectC closeC refuseP stopP settleC| pay allP registerC grantC| createP authorize P [partially paid] [registered] [registered] [registered] [rejected] [granted]

[settled, rejected] [closed]

[created] [created] [refused] [created] [authorized] [authorized, partially paid] [authorized, partially paid] [partially paid] [paid in full] [authorized, partially paid] [stopped] [settled] [granted] [registered] [registered] [created] [created] [authorized] [authorized] [authorized] [partially paid] [partially paid] <<datastore>> Claim <<datastore>> Payment pay installmentP

(29)
(30)

© 2013 IBM Corporation 30 Dr. Jochen Küster | BDSE 2013

Example for Extraction of Life Cycles

Check for fraud Evaluate Initiate fraud investigation Prepare settlement Notify rejection Prepare for reevaluation Close Claim Claim Claim Claim Claim

Claim [Granted] [Settled] [NotFraudulent] [Granted] [PreRejected] [Rejected] [Registered] [NotFraudulent, NeedsReevaluation] [Authorized] [Settled] [Rejected, NeedsReevaluation] Carry out payment [Settled, Rejected] [Closed] [NeedsReevaluation] Claim [NeedsReevaluation] Claim

x

Claim Claim Claim Claim Settlement Claim Settlement Claim Claim Claim [Rejected] Claim Register new claim Settlement [Requested] Settlement [Requested] Settlement [Granted, Rejected, PreRejected] [Fraudulent, NotFraudulent] [Fraudulent]

(31)

Transformation Rules for Generation

A

Rule 1 (objectCreation)

Process model P Object life cycle OLCP for O

O [s1,…,sn] s1 sn A A A O [s11,…,s1m] s11 s1m s21 s2n A A A A Rule 2 (stateChange) O [s21,…,s2n] s1 O [s1,…,sn] Rule 5 (processInput) sn O STARTP STARTP Rule 4 (finalNode) s1 O [s1,…,sn] sn x O [s1,…,sn] OR Rule 3 (finalConsumption) A O [s1,…,sn] s1 sn A A

(32)

© 2013 IBM Corporation 32 Dr. Jochen Küster | BDSE 2013

Check for fraud

Generating object life cycles from Claims handling process

Registered

Register new claim

Prepare settlement Claim Claim Claim Claim [Fraudulent] [NotFraudulent] [Granted] [Registered] [Fraudulent, NotFraudulent] [Authorized] [Settled] Carry out payment

x

Claim Settlement Claim Settlement Claim Register new claim Settlement Settlement [Requested] Settlement Claim [Registered] Rule 1 (objectCreation) [Requested] Initiate fraud investigation

(33)

Check for fraud

Generating object life cycles from Claims handling process

Registered

Register new claim

Fraudulent Check for fraud Initiate fraud investigation Claim Claim Claim Claim [Fraudulent] [NotFraudulent] [Fraudulent, NotFraudulent] [Authorized] [Settled] Settlement Settlement Register new claim Settlement Settlement Claim [Fraudulent, NotFraudulent] Rule 2 (stateChange) [Requested] [Registered] NotFraudulent Check for fraud

(34)

© 2013 IBM Corporation 34 Dr. Jochen Küster | BDSE 2013

Check for fraud

Generating object life cycles from Claims handling process

Registered

Register new claim

Fraudulent Check for fraud Initiate fraud investigation Prepare settlement Claim Claim Claim Claim [Fraudulent] [NotFraudulent] [Granted] [Fraudulent, NotFraudulent] [Authorized] [Settled] Carry out payment

x

Claim Settlement Claim Settlement Claim Register new claim Settlement Settlement [Requested] Settlement Claim [Requested] [Registered] NotFraudulent Check for fraud Rule 3 (finalConsumption)

(35)

Generated Object Lifecycles

Registered

Register new claim

Fraudulent NotFraudulent Check for fraud Check for fraud Initiate fraud investigation Requested STARTP Settlement Claim Granted PreRejected Settled Closed Evaluate Evaluate Settle Close NeedsReevaluation Rejected Notify rejection Notify rejection Evaluate Close Evaluate Evaluate Evaluate Authorized Settled

Carry out payment Prepare settlement

(36)

© 2013 IBM Corporation 36 Dr. Jochen Küster | BDSE 2013

(37)

Non-conformant transitions:

transition from “granted” to “needs review” (ncnf_tran(settle, granted, needs review)) transition from “needs review” to “reviewed” (ncnf_tran(review, needs review, reviewed))

Non-covered transitions:

transition from “rejected” to “closed” (ncov_tran(rejected, closed)

Examples of Inconsistencies

decide on claim notify rejection prepare settlement open claim close claim [under evaluation] [granted, rejected] [granted] [rejected] [closed] [settled] review

[needs review] [reviewed]

settle [needs review, settled] [granted, reviewed] [granted] [granted] under evaluation granted settled registered rejected closed

(38)

© 2013 IBM Corporation 38 Dr. Jochen Küster | BDSE 2013

Inconsistency Resolution Rules

inconsistency resolutions may be captured as resolution rules here: inconsistency resolutions for non-conformant transition

application of the resolution rule leads to resolution of the inconsistency but: resolutions may introduce new inconsistencies as side effects and resolve other inconsistencies as side effects

[s,sk,..,sl] r1: remove s from input states [sm,..,sn] [sm,..,sn] [sk,..,sl] a a [si,..,sj] r2: remove s from output states [s,sm,..,sn] [sm,..,sn] a a [si,..,sj] r3: remove action a a x y x y

(39)

Inconsistency Resolution Rules and Side Effects

[s,sk,..,sl] r1: remove s from input states [sm,..,sn] [sm,..,sn] [sk,..,sl]

Potential side effect of resolution r1: introduction of a new non-covered transition (if the transition in the

business process provided coverage for a transition in the object life cycle)

settle [needs review, settled] [granted, reviewed] settle [needs review, settled] [reviewed] ncnf_tran(settle, granted, needs review):

a

a

Concrete side effect of resolution r1:

(40)

© 2013 IBM Corporation 40 Dr. Jochen Küster | BDSE 2013

Object Life Cycles and Business Process Models - Tools

Object life cycles introduce a complementary view

Consistency management with business process models is required

Ideal solution:

–Process Modeling Environment supports both views and offers support for

consistency management

Suboptimal solution:

–Models are created in different Modeling Environments, no consistency

(41)

Summary of Lecture and References

Introduction to Object Life Cycles and their relationship to Process Models Consistency Checking of Process Model and Object Life Cycle

Generation of Object Life Cycles from Process Models

Generation of Process Model from a set of Object Life Cycles

Further Reading:

J. M. Küster and K. Ryndina and H. Gall: “Generation of Business Process Models for Object Life Cycle Compliance”, Proceedings 5th International

Conference on Business Process Management, LNCS 4714, Springer, pages 165-181, October 2007.

J. M. Küster and K. Ryndina: “Improving Inconsistency Resolution with Side-effect Evaluation and Costs” In G. Engels, B. Opdyke, D. C. Schmidt, F. Weil (Eds.): Proceedings ACM/IEEE 10th International Conference on Model Driven Engineering Languages and Systems, LNCS 4735, Springer, pages 136-150,

References

Related documents

Where ij denote the pair of two generic countries, t denotes time, ρ is the measure of synchronization of their business cycles, TI is the trade intensity between the two

Whereas Young’s approach is individualistic, my account applies to individuals and to collectives as non-distributive responsibility holders in both the liability model and the

ROP classes are held at the same time each day for the entire school year, regardless of whether American High School is having a special event that changes the length of the

Only by declining the public sector borrowing requirement sharply, accelerating the privatization process, slowing down the inflation (expectations) immediately, and hence

We further noted that, in comparison to PCF, cases identified through one-off roving ACF were less likely to be bacteriologically confirmed TB (table S3). This is consistent with

The information is such that it a¤ects the outcome of the judgment (e.g., the result of third-party medical examination) and is commonly.. observed by both players. Then, the

The ENERGY STAR-qualified HP Officejet 7000 Wide Format Printer consumes up to 40 percent less energy than color laser printers, 2 which lowers your operating costs.. •

The last latent factor (F6), which explained about 5% of the total variance, shows different loading coef fi cients in the two breeds; for the Rendena population, it involves rump