Download presentation
Presentation is loading. Please wait.
Published byDeonte Bibby Modified over 9 years ago
1
PROTOS A TOOL TO SPECIFY AND VERIFY CROSS ORGANIZATIONAL BUSINESS MODELS ANUP KALIA PANKAJ TELANG MUNINDAR SINGH
2
BUSINESS MODEL PATTERNS Conditional Offer Pattern Commercial Transaction Pattern Outsourcing Pattern Standing Service Contract Pattern
3
CONDITIONAL OFFER PATTERN FORMALIZATION Commitment Roles Cc( Proposer, Client, antecedent, consequent)
4
COMMERCIAL TRANSACTION PATTERN FORMALIZATION C1 C(Partner1, Partner2, antecedent, consequent) C2 C(Partner2, Partner1, consequent, antecedent)
5
OUTSOURCING PATTERN
6
FORMALIZATION C1 C(Outsourcer, Client, antecedent, task) C2 C(Contractor, Client, T, task) C3 C( Outsourcer, Contractor, antecedent, task) C4 C(Contractor, Outsourcer, payoff, create(c2)
7
STANDING SERVICE CONTRACT PATTERN
8
FORMALIZATION C1 C(Consumer,Provider,create(C3), payoff) C2 C(Provider,Consumer,payoff, create(C3)) C3 C(Provider, Consumer,request[i] ^ ¬expired ^ (i < maxInstance ), service[i])
9
PURPOSE OF CREATING PROTOS To provide a platform for a user to design Business Models To create Business Interactions for each such models To provide automatic generation for CTL Specification for Business Models To provide automatic generation for FSM for Business Interactions Finally to verify if Business Interactions correctly supports the Business Models
10
MAIN COMPONENTS OF PROTOS THIRD PARTY TOOLS OPEN SOURCE TOOLS NuSMV – A software tool for the formal verification of finite state systems Eclipse GMF – Provides a Model Driven approach to generate graphical editors in Eclipse IBM RATIONAL SOFTWARE ARCHITECT V8 – Provides advanced application design, modeling and development tool for end-to-end software delivery. PROTOS PARSER Set of Algorithms for parsing Business models and Business Interactions and generating CTL specifications and FSM transitions respectively
11
VERFICATION PROCESS IT Analysts Business Analysts Eclipse GMF IBM RSA Operational Model Business Models PARSER SMV File NuSMVSuccess !! Fails
12
ECLIPSE GMF PLUG-IN FOR DESIGNING BUSINESS MODELS canvas Commitment Antecedent Consequent Roles
13
METAMODEL FOR CREATING BUSINESS MODEL
14
IBM RATIONAL SOFTWARE ARCHITECT v8 FOR DESIGINING BUSINESS INTERACTIONS Roles Messages Message that created the Commitment C1 Consequent Antecedent ALT Combined Fragment
15
LIFE CYCLE OF A COMMITMENT expired null pending terminated violatedsatisfied conditional detached Antecedent_timeoutcreateCreate & antecedent antecedent reactivate suspend cancel release Cancel V consequent_t consequent Commitment
16
STANDARD CODE GENERATION FOR CTL SPECIFICATION MODULE MODULE commitment(create,antecedent,consequent,suspend,reactivate,release,cancel,ant_t,con_t) CONSTANTS CONSTANTS NULL, CONDITIONAL, EXPIRED, PENDING, DETACHED, SATISFIED, VIOLATED, TERMINATED; DEFINE status := case !create :NULL; create & !antecedent &!consequent & ((!suspend & !reactivate)|(suspend & reactivate)) & !release & !cancel & !ant_t &!con_t :CONDITIONAL; create & !antecedent & !consequent & ((!suspend & !reactivate)|(suspend & reactivate)) & ant_t & !release & !cancel & !con_t :EXPIRED; create & antecedent & !consequent & ((!suspend & !reactivate)|(suspend & reactivate)) & !ant_t & !release & !cancel & !con_t :DETACHED; create & antecedent & !consequent & ((!suspend & !reactivate)|(suspend & reactivate)) & !ant_t & !release & (cancel | con_t) :VIOLATED; create & consequent & !release & !ant_t & !con_t :SATISFIED; create & !consequent & suspend & !reactivate & !cancel & !release & !ant_t & !con_t :PENDING; create & !consequent & !ant_t & !con_t & ((!suspend & !reactivate)|( suspend & reactivate)) & (release | cancel) :TERMINATED; esac ;
17
STANDARD CODE GENERATION FOR CTL SPECIFICATION Checking for legal commitment state transitions CTLSPEC AG(status = NULL -> AX(status = NULL | status =CONDITIONAL | status = DETACHED)); CTLSPEC AG(status = CONDITIONAL -> AX(status = CONDITIONAL| status = EXPIRED | status = PENDING | status TERMINATED | status = DETACHED | status = SATISFIED)); CTLSPEC AG(status = SATISFIED -> AX(status = SATISFIED)); CTLSPEC AG(status = EXPIRED -> AX(status = EXPIRED)); CTLSPEC AG(status = PENDING -> AX(status = PENDING | status = CONDITIONAL | status = DETACHED)); CTLSPEC AG(status = TERMINATED -> AX(status = TERMINATED)); CTLSPEC AG(status = DETACHED -> AX(status = DETACHED | status = SATISFIED | status = VIOLATED |status= TERMINATED |status= PENDING)); CTLSPEC AG(status = VIOLATED -> AX(status = VIOLATED)); CTLSPEC AG(status = DETACHED -> AF(status = SATISFIED | status = TERMINATED));
18
NON - STANDARD CODE GENERATION FOR CTL SPECIFICATION MODULE main C1 : commitment(accept, goods, pay, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE);
19
NON - STANDARD CODE GENERATION FOR FSM DEFINE seq1Condition := quote & accept; seq2Condition := quote & accept; VAR reqForQuote : boolean ; quote : boolean ; accept : boolean ; pay : boolean ; goods : boolean ; INIT !reqForQuote & !quote & !accept & !pay & !goods ;
20
DERIVING NuSMV FSM FROM UML SEQUENCE DIAGRAMS
21
PARSING THE UML 2.0 SEQUENCE DIAGRAM Message Sequence ChartXMI document Packaged Element Node Owned Behavior Node XMI TREE Lifeline NodeFragment Node Operand NodeInvariant Node Guard Node Fragment Node Specification Node Guard Node Minint Node Maxint Node
22
PARSING THE UML Fragment Node Message Interaction Operator ALT OPTIONLOOP If Interaction Operator is ‘ALT’ then Fragment Node has 2 Operand Nodes If Interaction Operator is ‘Opt’ then Fragment Node has 1 Operand Node If Interaction Operator is ‘Loop’ then Fragment Node has 1 Operand Node
23
CLASSES USED MessageSequenceChartAltOperator OptionOperator LoopOperator ArrayList interactions String ownID ArrayList parentID ArrayList interactions Int minValue Int maxValue String ownID ArrayList ParentID ArrayList Interactions String guardConditon String ownID Int loopFlagON ArrayList parentID ArrayList interactions
24
GENERATING FSM TRANSITION A transition is generated for each message in a Message Sequence Chart (MSC) Each transition has following parts i. Current Guard of the message of the current MSC ii. Guards of Current Guard of the message iii. Messages that have not occurred ( 2 kinds ) a. The messages that have not occurred of the current MSC b. The messages of all the MSCs that have not occurred excluding the current MSC(only in Alt case) iv. Messages that have already occurred of the current MSC v. Current message of the current MSC that will occur v. Messages that will occur ( 2 kinds) a. The messages of the current MSC that may occur b. The messages of all the MSCs excluding current MSC that may occur Another transition representing all messages of all MSCs that have already occurred and again all the messages of all MSCs that are about to occur. G MN MO MM MW MOMM
25
GENERATING FSM TRANSITION For m1 in MSC1 !m1 & next(m1)=true & next(m2)=m2 & next(m3)=m3 & next(m4)=m4 For m2 in MSC1 m1 & !m2 & next(m2)=true & next(m1)=m1 & next(m3)=m3 & next(m4)=m4 For m3 in MSC2 !m3 & next(m3)=true & next(m4)=m4 & next(m1)=m1 & next(m2)=m2 For m4 in MSC2 m3 & !m4 & next(m4)=true & next(m3)=m3 & next(m1)=m1 & next(m2)=m2 Finally m1 & m2 & m3 & m4 & next(m1)=m1 & next(m2)=m2 & next(m3)=m3 & next(m4)=m4
26
FSM
27
CISCO’s QUOTE TO CASH BUSINESS PROCESS Customer purchases goods either from CISCO or from Reseller Reseller sells the goods, install goods and provide services to Customer Reseller purchases goods either from Distributor or from CISCO Distributor always purchase goods from CISCO Distributor may stock the goods in its warehouse For building CISCO utilizes sets of Manufacturers and for shipping set of transportation providers
28
CISCO’s QUOTE TO CASH BUSINESS PROCESS C1 (Customer, Reseller, install & shipGoodsE, payR) C2(Reseller, Customer, payR, install) C3(Reseller, Customer, payR, shipGoodsE)
29
CISCO’s QUOTE TO CASH BUSINESS PROCESS C4 (Reseller, Distributor, create(C6), payD) C5 (Distributor, Reseller, payD, create(C6)) C6 (Distributor, Customer, confirmShipCD, shipGoodsE)
30
CISCO’s QUOTE TO CASH BUSINESS PROCESS
31
C7 (Distributor, Shipper1, create(C9), payS ) C8 (Shipper1, Distributor, payS, create(C9)) C9 (Shipper1, Customer, confirmShipCS1, shipGoodsE)
32
CISCO’s QUOTE TO CASH BUSINESS PROCESS
33
C10 (Distributor, CISCO, shipGoodsD, payX ) C11 (CISCO, Distributor, payX, shipGoodsD)
34
CISCO’s QUOTE TO CASH BUSINESS PROCESS
35
C12 (CISCO, Shipper2, create(C14), payS2 ) C13 (Shipper2, CISCO, payS2, create(C14)) C14 (Shipper2, Distributor, confirmShipDS2, shipGoodsD)
36
CISCO’s QUOTE TO CASH BUSINESS PROCESS
37
C15 (Customer, CISCO, create(C17), payX1 ) C16 (CISCO, Customer, payX1, create(C17)) C17 (CISCO, Customer, reqService, service)
38
CISCO’s QUOTE TO CASH BUSINESS PROCESS
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.