Business-Driven Software Engineering
Lecture 9 – Business Objects and Object Life Cycles
Jochen Küster [email protected]
© 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
© 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
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
© 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 ClaimBusiness 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
© 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
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
© 2013 IBM Corporation 10 Dr. Jochen Küster | BDSE 2013
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
© 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
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
© 2013 IBM Corporation 14 Dr. Jochen Küster | BDSE 2013
Consistency of Business Process Models
and Object Life Cycles
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
© 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
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
© 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
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!
!!!!
© 2013 IBM Corporation 20 Dr. Jochen Küster | BDSE 2013
Generation of a Business Process Model
from Object Life Cycles
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]
© 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]
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]
© 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
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
© 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
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 refusedpaid 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
© 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
© 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]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 …
© 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 investigationCheck 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
© 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)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
© 2013 IBM Corporation 36 Dr. Jochen Küster | BDSE 2013
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
© 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
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:
© 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
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,