Title: Consistency in UML and B multiviews specifications
1Consistency in UML and B multi-views
specifications
- D. OKALAS OSSAMI, J.-P. JACQUOT, J. SOUQUIERES
- okalas, jacquot, souquieres_at_loria.fr
- LORIA (Lorraine Laboratory of IT Research and
its Applications)
2Setting the context(1/2)
Using several notations to specify software
systems
3Setting the context (2/2)
- How to help construction activities ?
- Development operators
- make representations evolve while maintaining
their mutual consistency - assist users during the development,
- enable the definition of specific design
strategies (refinement, etc.)
- How to verify and ensure operatorss correctness ?
- Consistency relation
- Condition under which the application operators
leads to consistent representations.
4The goal of the paper
Objectives
- give a generic-template to define operators
- give a definition of the notion of consistency
relation and some hints to verify it.
5Overview
- Operators
- Definition
- Example operator Refine-Data
- Consistency relation
- Operators application
- Verification of the operators correctness
- Conclusion and future work
6Development Operators Definition
Operator
High level abstractions defining construction
activities in an intuitive and language
independent way Souquières , N. Lévy and G.Smith
Operator Operator_Name Description
ltDescgt Parameters In ltParam_Name
Type_PARAMgt Result ltParam_Name
Type_PARAMgt
Application conditions Related to SpecB
ltCOND_Bgt Related to SpecUML
ltCOND_UMLgt Definition context ltcontextgt
ltOPERATOR_DEFgt Remain To Be Done ltTo Do Nextgt
7Example operator Refine-Data
Operator
Specifications can be developed in stepwise
Operator Refine-Data Description Replacement
of some variables with more concrete
ones Parameters In Ma identifier
v identifier si state
sri,,srj Pow(States) Result Mar
identifier vr identifier Sr identifier
Application conditions Related to SpecB
Ma MACHINE REFINEMENT si ? S ? v
?DATA(Ma) ?sk.(sk ? sRi,,sRj ? si /
sk) Related to SpecUML ? C.(C ?
CLASS(SpecUML) ? c-gt Ma) ?a.(a ? ATTR(C) ?
a -gt v) ?T.(T ? TYPE(SpecUML) ? T-gt S)
8Example operator Refine-Data
Operator
9Consistency relation
Operator
Consistency relation
10Operators application
11Operators application
12Operators correctness
Does the Refine-Data operator produce correct
representations ?
13Operators correctness
Operators correctness
ID(TU?B(SpecUML)) ID(SpecB) ?
14Operators correctness
Operators correctness
ID(TU?B(SpecUML)) ID(SpecB) ?
15Operators correctness
4.?? .(TU-gtB(SpecUML) ? ? SpecB ? )
16Operators correctness
TRAIN ? OBJECTS ? train ? TRAIN TRAINR ?
OBJECTS ? trainR ? TRAINR
17Operators correctness
is TrainR a refinement of Train ?
18Operators correctness
Conditions 1, 2, 3 and 4 true ? Refine-Data
is correct
19Conclusion
- Operators a flexible approach to
- Identify design issues
- Force us to think about design decisions more
carefully than about syntactical details - Produce representations that can be useful for
both - users
- as graphical documentation
- specifiers
- as formal documentation for mathematical
verification - Consistency relation
- Provides minimal conditions for saying when an
UML and B specifications can be considered
consistent
20Future Work
- Experiments
- first experiments with our prototype
ArgoUMLB/SmarTools let us optimist (modeling
entities, data, operations, etc.) - experiments with more complex operators
- Apply the approach on more case studies
- Specify a library of useful operators
21The End