Title: Multi-view Consistency Checking of BON Software Description Diagrams
1Multi-view Consistency Checking of BON Software
Description Diagrams
Presented By Yan Gao July 19, 2004
2Outline
- Constraints for multi-view consistency checking
3Introduction
4Introduction
Model Consistency
A
5Introduction
Model Consistency
Single-view Consistency
6Approaches to multi-view consistency
- Mainly Informal e.g. Glintz 2000
- Minimize overlap
- Systematically cross-reference corresponding
information
- Includes syntactic and contractual consistency
7Approaches to multi-view consistency
- Krishnan 2000 extends ROOM4 to UML and OCL
- First tool to formally check multi-view
consistency with contracts
8BON BON Metamodel
Model Language
Notation
Metamodel
9BON
ROOT_CLASS (root)
CUSTOMER (customer)
1
ROOT_CLASS
CUSTOMER
c1
3
2,4
account
customer
2.2
a1
ACCOUNT (account)
t
DEPOSIT_TRANSACTION (deposit_transaction)
TRANSACTION
ACCOUNT
2.1
3.1
transactionList..
TRANSACTION (transaction)
DEPOSIT_TRANSACTION
Dynamic Diagram (DD)
Static Diagram (SD)
10BON Metamodel
11Constraints for multi-view consistency checking
12Object-Class
a
b
A
B
Each object in the Dynamic Diagram (e.g. a) has a
corresponding class in the Static Diagram (e.g. A)
13Message-Feature
m
A (a)
B (b)
A f1 is do b.f2 end
B f2 is do end
b
f1
f2
Each message, such as m in the DD, has to be
invoked by a routine f1 in the source class A in
the SD which makes a call to feature f2 in the
target class B.
14Contractual-consistency
B (b)
m1, m2
A (a)
- Check that there is at least one execution of the
message sequence m1 m2 in the DD that can be
executed without the contracts in the SD being
violated, e.g. r1.post implies r2.pre. - Generate code automatically and run TestDriver
- Consistent if TestDriver runs without contract
violations.
15Messages-invokable
Specified depth algorithm
16Algorithms for multi-view consistency checking
Algorithm 4-1
Algorithm 4-2
Algorithm 5-4 (Specified Depth)
The BON Consistency Checking Tool
Algorithm 4-3 (generate code)
17The BCCT Tool
18The BCCT tool
19The BCCT Tool
20The BCCT Tool
21The BCCT Tool
22The BCCT Tool
23Consistency Driven Development
- Construct some small part of the model
- Run the consistency checks (which will usually
fail as the model is incomplete or inconsistent)
- Refactor the model to get the consistency check
to pass, and re-run the checks.
24Conclusion
- Formalized the notion consistency(v1,v2)
- Developed algorithms to check consistency
- Incorporated these algorithms into BCCT
- A graphical editor
- Check Syntactic consistency automatically
- Translate the model to executable Eiffel Code
25Future Work
- Automatic generation of testdrivers
- Specified Depth Algorithm
- BCCT tool
26Thanks