PROTOS A TOOL TO SPECIFY AND VERIFY CROSS ORGANIZATIONAL BUSINESS MODELS ANUP KALIA PANKAJ TELANG...
-
Upload
deonte-bibby -
Category
Documents
-
view
221 -
download
1
Transcript of PROTOS A TOOL TO SPECIFY AND VERIFY CROSS ORGANIZATIONAL BUSINESS MODELS ANUP KALIA PANKAJ TELANG...
PROTOS A TOOL TO SPECIFY AND VERIFY CROSS
ORGANIZATIONAL BUSINESS MODELS
ANUP KALIA PANKAJ TELANG MUNINDAR SINGH
BUSINESS MODEL PATTERNS
• Conditional Offer Pattern• Commercial Transaction Pattern• Outsourcing Pattern• Standing Service Contract Pattern
CONDITIONAL OFFER PATTERN
FORMALIZATION
Commitment
Roles
Cc( Proposer, Client, antecedent, consequent)
COMMERCIAL TRANSACTION PATTERN
FORMALIZATION
C1 C(Partner1, Partner2, antecedent, consequent)
C2 C(Partner2, Partner1, consequent, antecedent)
OUTSOURCING PATTERN
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)
STANDING SERVICE CONTRACT PATTERN
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])
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
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
VERFICATION PROCESSIT AnalystsBusiness
Analysts
Eclipse GMF IBM RSA
Operational ModelBusiness Models
PARSER
SMV File
NuSMV Success !!
Fails Fails
ECLIPSE GMF PLUG-IN FOR DESIGNING BUSINESS MODELS
canvas
Commitment
Antecedent
Consequent
Roles
METAMODEL FOR CREATING BUSINESS MODEL
IBM RATIONAL SOFTWARE ARCHITECT v8 FOR DESIGINING BUSINESS INTERACTIONS
Roles
Messages
Message that created the Commitment C1
Consequent
Antecedent
ALT Combined Fragment
LIFE CYCLE OF A COMMITMENT
expired null
pendingterminated
violated satisfied
conditional detached
Antecedent_timeout create Create & antecedent
antecedent
reactivate suspend cancel release Cancel V consequent_tconsequent
Commitment
STANDARD CODE GENERATION FOR CTL SPECIFICATION
MODULEMODULE commitment(create ,antecedent ,consequent ,suspend ,reactivate ,release ,cancel ,ant_t ,con_t)
CONSTANTSCONSTANTS NULL, CONDITIONAL, EXPIRED, PENDING, DETACHED, SATISFIED, VIOLATED, TERMINATED;
DEFINEstatus := 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 ;
STANDARD CODE GENERATION FOR CTL SPECIFICATION
Checking for legal commitment state transitionsCTLSPEC
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));
NON - STANDARD CODE GENERATION FOR CTL SPECIFICATION
MODULE main
C1 : commitment(accept, goods, pay, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE);
NON - STANDARD CODE GENERATION FOR FSM
DEFINEseq1Condition := quote & accept;seq2Condition := quote & accept;
VARreqForQuote : boolean ;quote : boolean ;accept : boolean ;pay : boolean ;goods : boolean ;
INIT!reqForQuote & !quote & !accept & !pay & !goods ;
DERIVING NuSMV FSM FROMUML SEQUENCE DIAGRAMS
PARSING THE UML 2.0 SEQUENCE DIAGRAM
Message Sequence Chart XMI document
Packaged Element Node
Owned Behavior Node
XMI TREE
Lifeline Node Fragment Node
Operand Node Invariant Node
Guard Node Fragment Node
Specification Node
Guard Node
Minint Node Maxint Node
PARSING THE UML
Fragment Node Message
Interaction Operator
ALT OPTION LOOP
• 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
CLASSES USED
MessageSequenceChart AltOperator
OptionOperatorLoopOperator
• 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
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
MO MM
GENERATING FSM TRANSITION
For m1 in MSC1!m1 & next(m1)=true & next(m2)=m2 & next(m3)=m3 & next(m4)=m4For m2 in MSC1m1 & !m2 & next(m2)=true & next(m1)=m1 & next(m3)=m3 & next(m4)=m4For m3 in MSC2!m3 & next(m3)=true & next(m4)=m4 & next(m1)=m1 & next(m2)=m2 For m4 in MSC2m3 & !m4 & next(m4)=true & next(m3)=m3 & next(m1)=m1 & next(m2)=m2Finallym1 & m2 & m3 & m4 & next(m1)=m1 & next(m2)=m2 & next(m3)=m3 & next(m4)=m4
FSM
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
CISCO’s QUOTE TO CASH BUSINESS PROCESS
C1 (Customer, Reseller, install & shipGoodsE, payR)C2(Reseller, Customer, payR, install)C3(Reseller, Customer, payR, shipGoodsE)
CISCO’s QUOTE TO CASH BUSINESS PROCESS
C4 (Reseller, Distributor, create(C6), payD)C5 (Distributor, Reseller, payD, create(C6))C6 (Distributor, Customer, confirmShipCD, shipGoodsE)
CISCO’s QUOTE TO CASH BUSINESS PROCESS
CISCO’s QUOTE TO CASH BUSINESS PROCESS
C7 (Distributor, Shipper1, create(C9), payS )C8 (Shipper1, Distributor, payS, create(C9))C9 (Shipper1, Customer, confirmShipCS1, shipGoodsE)
CISCO’s QUOTE TO CASH BUSINESS PROCESS
CISCO’s QUOTE TO CASH BUSINESS PROCESS
C10 (Distributor, CISCO, shipGoodsD, payX )C11 (CISCO, Distributor, payX, shipGoodsD)
CISCO’s QUOTE TO CASH BUSINESS PROCESS
CISCO’s QUOTE TO CASH BUSINESS PROCESS
C12 (CISCO, Shipper2, create(C14), payS2 )C13 (Shipper2, CISCO, payS2, create(C14))C14 (Shipper2, Distributor, confirmShipDS2, shipGoodsD)
CISCO’s QUOTE TO CASH BUSINESS PROCESS
CISCO’s QUOTE TO CASH BUSINESS PROCESS
C15 (Customer, CISCO, create(C17), payX1 )C16 (CISCO, Customer, payX1, create(C17))C17 (CISCO, Customer, reqService, service)
CISCO’s QUOTE TO CASH BUSINESS PROCESS
CISCO’s QUOTE TO CASH BUSINESS PROCESS
CISCO’s QUOTE TO CASH BUSINESS PROCESS
CISCO’s QUOTE TO CASH BUSINESS PROCESS
CISCO’s QUOTE TO CASH BUSINESS PROCESS
CISCO’s QUOTE TO CASH BUSINESS PROCESS
CISCO’s QUOTE TO CASH BUSINESS PROCESS
CISCO’s QUOTE TO CASH BUSINESS PROCESS
CISCO’s QUOTE TO CASH BUSINESS PROCESS
CISCO’s QUOTE TO CASH BUSINESS PROCESS