Business-Driven Software Engineering Lecture 9 Business Objects and Object Life Cycles Jochen Küster jku@zurich.ibm.com
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 2
Business Process Models and Object Life Cycles 3
Business Objects A business object is a discrete entity that plays a role in business processes of an organization Examples:, 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 dynamics of business objects 4
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 granted settle grant settled registered register reject rejected d Object life cycle for object type 5
Business Process Models and Business Object Flow Make Payment Close Receive Evaluate X X Notify Refusal 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 6
Business Objects in BPMN Receive Evaluate Receive Evaluate 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 7
Business Objects in UML 2.0 Receive Evaluate Receive Evaluate <<datastore>> 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 8
Business Process Models and Business Object Flow Receive Evaluate granted rejected Make Payment Close <<datastore>> Notify Refusal <<datastore>> Payment 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) 9
Overview of Use Cases for Object Life Cycles 10
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 To ensure consistency with reference object life cycles 11
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 To follow an object-based approach for implementing processes 12
Techniques for Process Models and Object Life Cycles PM PM PM PM PM OLC OLC OLC OLC OLC 2a. check consistency 3. generate process model 4. extract object life cycles 2b. resolve inconsistencies A consistency concept for the two views (for checking consistency) Model transformations for generation and extraction Resolution of inconsistencies by predefined transformations 13
Consistency of Business Process Models and Object Life Cycles 14
Relationship between process models and object life cycles creates object / triggers initial transition registered triggers one of Offer Benefit Close granted rejected triggers Receive Evaluate settled d Object life cycle for object type triggers triggers Notify Refusal Process model for Handling process Process models and object life cycles represent overlapping behavior 15
Checking Consistency - Example granted settle grant settled registered register reject rejected d Object life cycle for object type Creates objects in state registered receive claim <<datastore>> <<datastore>> Payment Induces transitions from registered to granted and from registered to rejected for objects [granted, rejected] evaluate claim [granted] [rejected] [granted] [rejected, cancelled] notify refusal [granted, rejected] make payment [paid in full] [rejected, cancelled] Process model for Handling process Creates Payment objects in state paid in full can be in state d or rejected and Payment can be in state paid in full [granted, rejected, cancelled] claim [d] Does not induce transition from cancelled to rejected for objects 16
Checking Consistency Forms of Consistency register registered grant reject granted rejected settle settled d receive claim [granted, rejected] evaluate claim [granted] [rejected] [granted] [rejected, cancelled] [granted, [granted, rejected, rejected] cancelled] make payment [paid in full] notify refusal [rejected, cancelled] claim [d] corresponding elements transition target of initial transition final state induced transition first state last state Conformance: all induced transitions, first states and last states in process model have corresponding elements in object life cycle Coverage: all transitions, target states of initial transitions and final states in object life cycle must have corresponding elements in process model 17
Examples of possible inconsistencies registered granted rejected settled d receive claim [granted, rejected] evaluate claim [granted] [granted] [rejected] [rejected, cancelled] [granted, rejected] offer benefit [paid in full] notify refusal [granted, rejected, cancelled] [rejected, cancelled] claim [d] Non-conformant transitions: (1) offer benefit task induces transition from state granted to rejected and (2) claim task induces transition from state granted to state d, 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 d are not induced in the process model 18
Approaches to achieving consistency Requested Request Authorized Authorize Requested Pay Request PartiallySettled Settled Authorized Requested Settle Authorize Request Pay in full Pay PartiallySettled Authorized Authorize Settled Pay Settle PartiallySettled Pay in full SettledSettle Pay in full Object life cycles Register Check for new claim fraud Initiate [Possible fraud fraud] investigation [No Initiate fraud] fraud investigation Existing business process model Requested Request Authorized Authorize Requested Pay Request PartiallySettled Settled Authorized Requested Settle Authorize Request Pay in full Pay PartiallySettled Authorized Authorize Settled Pay Settle PartiallySettled Pay in full SettledSettle Pay in full Object life cycles 1. Process model generation Register Check for new claim fraud Initiate [Possible fraud fraud] investigation [No Initiate fraud] fraud investigation Initial business process model 1. Consistency checking!!!!!!!! Inconsistencies 3. Consistency Checking 2. Customization Register Check for new claim fraud Initiate [Possible fraud fraud] investigation [No Initiate fraud] fraud investigation Customized business process model 2. Resolution of inconsistencies!!! Inconsistencies Register Check for new claim fraud Initiate [Possible fraud fraud] investigation [No Initiate fraud] fraud investigation Consistency ensured 4. Resolution of inconsistencies Initiate [Possible fraud fraud] Register Check for investigation new claim fraud [No Initiate fraud] fraud investigation Consistency ensured 19
Generation of a Business Process Model from Object Life Cycles 20
Generation from one object life cycle register registered grant reject granted rejected settle settled d 1. For each event labeling a state transition in object life cycle, an activity is generated with appropriate input/output pins and object states [granted] [rejected] register grant reject [granted] [settled] [settled, rejected] [d] settle 21
Generation from one object life cycle register registered grant reject granted rejected settle settled d 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 [granted] [granted] grant settle [settled] [settled, rejected] [d] register reject [rejected] 22
Generation from one object life cycle register registered 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 granted settle settled rejected d 2. Order of activities is based on matching input/output object states 3. Control nodes are added for correct control flow [granted] [granted] grant settle [settled] [settled, rejected] [d] register reject [rejected] <<datastore>> 23
Generation from one object life cycle register registered grant reject evaluate granted rejected settle settled d 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 [granted] [granted] [settled] [settled, [granted, grant settle [settled, rejected] rejected] rejected] [d] [granted] register evaluate [rejected] reject [rejected] <<datastore>> 24
Generation from a set of object life cycles register create created registered grant reject authorize stop authorized stopped granted rejected pay all settle pay installment settled paid in full partially paid stop d pay all pay installment synchronization 1. Identification of synchronization events (manual step) (I C 1,I P 2 ) register C grant C create P authorize P RG C P,I 2 GR C,CR P GR C,AU P C[RG] register C <<datastore>> C <<datastore>> P reject C C RJ C,I 2 P CL C,I 2 P C[RG] C[RG] C[RG] C[RG] reject C grant C create P refuse P GR C,RF P C[RJ] C[GR] P[CR] P[CR] P[CR] P[CR] refuse P stop P GR C,ST P P[RF] settle C pay all P SE C,PF P pay installment P stop P GR C,PP P C settle C pay all P pay installment P C[SE,RJ] C[GR] P[AU,PP] C settle C pay all P stop P C[CL] C[SE] P[ST] CL C,PF P P[AU,PP] P[PF] P[AU] P[CR] P[AU] P[AU,PP] P[PP] P[PP] P[AU] pay authorize P installment P P[AU] P[PP] P[PP] 2. Composition of object life cycles 3. Process model generation: Task generation Object state relation for tasks Process fragment generation Connection of process fragments 25
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 grant C create P grant I 1 register registered reject grant C create create P created refuse authorize refused stop settle C authorized stopped granted rejected pay all P pay all pay installment settle stop settle C settled pay all pay all P d paid in full partially paid settle C pay all P pay installment Object life cycle for object type I 2 Object life cycle for Payment object type 26
Composition of object life cycles granted I 1 register grant C registered create P grant reject settle settle C settled pay all P rejected d paid in full I 2 grant C create create P created refused stop settle C authorized stopped pay all pay P all pay installment pay all settle C pay all P refuse authorize partially paid stop pay installment (I C 1,I 2P ) register C registered C I 2 P reject C rejected C I 2 P C d C I 2 P grant C create P refuse P granted C created P granted C refused P authorize P granted C authorized P stop P granted C stopped P settle C pay all P pay installment P stop P settled C paid in full P settle C pay all P granted C partially paid P pay installment P C d C paid in full P d C refused P d C stopped P 27
Process model generation [rejected] [settled, rejected] [d] C register C <<datastore>> reject C grant C create P [granted] [created] [created] [authorized] [authorized] [created] [created] authorize P [authorized] [authorized] [granted] settle C pay all P [authorized, [paid in full] partially paid] [authorized, [partially paid] partially paid] [partially paid] [authorized, partially paid] [settled] pay installment P [partially paid] [partially paid] [stopped] <<datastore>> Payment [created] refuse P [refused] stop P 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 28
Extraction of Object Life Cycles 29
Example for Extraction of Life Cycles [Requested] Register new claim [Registered] Evaluate [NotFraudulent, NeedsReevaluation] Check for fraud [Requested] [Granted] [Granted, Rejected, PreRejected] [PreRejected] [Fraudulent, NotFraudulent] [NotFraudulent] Prepare settlement [Rejected] Notify rejection [Fraudulent] [Authorized] [Granted] Initiate fraud investigation Carry out payment [Rejected] [Rejected, NeedsReevaluation] [NeedsReevaluation] [Settled] [Settled] [NeedsReevaluation] x [Settled, Rejected] Close Prepare for reevaluation [Closed] 30
Transformation Rules for Generation Rule 1 (objectcreation) Process model P A O [s 1,,s n ] Object life cycle OLC P for O A A s 1 s n Rule 2 (statechange) O [s 11,,s 1m ] A O [s 21,,s 2n ] A s 11 s 21 A A s 1m s 2n A Rule 3 (finalconsumption) O [s 1,,s n ] s 1 s n A A A Rule 4 (finalnode) O O [s s 1,,s n ] [s 1 s 1,,s n ] n x OR Rule 5 (processinput) O O [s 1,,s n ] START P s 1 START P s n Rule 6 (processoutput) O [s 1,,s n ] O END P END P s 1 s n 31
Generating object life cycles from s handling process Register new claim Registered Rule 1 (objectcreation) [Requested] Register new claim [Registered] Check for fraud [Requested] [Granted] [Fraudulent, NotFraudulent] [NotFraudulent] Prepare settlement [Fraudulent] [Authorized] Initiate fraud investigation Carry out payment [Settled] x 32
Generating object life cycles from s handling process Register new claim Check for fraud Registered Check for fraud Fraudulent NotFraudulent Register new claim Rule 2 (statechange) [Registered] Check for fraud [Fraudulent, NotFraudulent] [NotFraudulent] [Fraudulent] Initiate fraud investigation [Requested] [Requested] [Granted] Prepare settlement [Authorized] Carry out payment [Settled] x 33
Generating object life cycles from s handling process Register new claim Check for fraud Registered Check for fraud Fraudulent NotFraudulent Rule 3 (finalconsumption) Register new claim [Registered] Check for fraud [Fraudulent, NotFraudulent] [NotFraudulent] [Fraudulent] Initiate fraud investigation [Requested] [Requested] [Granted] Prepare settlement [Authorized] Carry out payment [Settled] x 34
Generated Object Lifecycles START P Requested Prepare settlement Authorized Carry out payment Settled Initiate fraud investigation Check for fraud Fraudulent Settle Settled Register new claim Registered Evaluate Granted Evaluate Close Check for fraud NotFraudulent Evaluate Evaluate PreRejected NeedsReevaluation Closed Notify rejection Notify rejection Evaluate Evaluate Close Rejected 35
Resolution of Inconsistencies 36
Examples of Inconsistencies granted settled registered under evaluation rejected d [granted] prepare settlement [under evaluation] open claim [granted] [granted, rejected] decide on claim [granted, reviewed] [needs review] [needs review, settled] settle review [settled] claim [rejected] notify rejection [granted] [reviewed] [d] 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 d (ncov_tran(rejected, d) 37
Inconsistency Resolution Rules [s,s k,..,s l ] a [s m,..,s n ] [s i,..,s j ] a [s,s m,..,s n ] x a y r 1 : remove s from input states r 2 : remove s from output states r 3 : remove action a [s k,..,s l ] a [s m,..,s n ] [s i,..,s j ] a [s m,..,s n ] x y 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 38
Inconsistency Resolution Rules and Side Effects [s,s k,..,s l ] [s m,..,s n ] [granted, reviewed] [needs review, settled] a settle r 1 : remove s from input states [s k,..,s l ] a [s m,..,s n ] ncnf_tran(settle, granted, needs review): [reviewed] [needs review, settled] settle 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) Concrete side effect of resolution r1: ncov_tran(granted, settled) side effects can only be determined precisely for a given concrete model 39
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 management, unclear how they are related 40
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 Sideeffect 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, October 2007. 41