Lightweight Static Verification of [UML] Executable Models (An overview)
-
Upload
elena-planas -
Category
Technology
-
view
278 -
download
0
description
Transcript of Lightweight Static Verification of [UML] Executable Models (An overview)
![Page 1: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/1.jpg)
Lightweight Static Verification of [UML] Executable Models
Elena PlanasSET Seminar
TU/Eindhoven - 03/10/2012
![Page 2: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/2.jpg)
Introducing me
PhD student * at Technical University of Catalonia (Spain) * under the supervision of Dr. Jordi Cabot and Dra. Cristina Gómez
Currently working at Open University of Catalonia (Spain)
Visiting researcher at TU/e (during 3 months)
Topics of interest: – Software development paradigms: MDD, MDA – Conceptual modelling– UML, OCL, …– Quality of software models– V&V
![Page 3: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/3.jpg)
MD*
MDE
Context
MDD
MDA
![Page 4: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/4.jpg)
Motivation
• Most errors in software development are introdu-ced during the first steps.
• The later an error is removed, the more expensive the fix is.
Boehm’s curve
![Page 5: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/5.jpg)
Motivation
Boehm’s curve
MDD
In MDD, the quality of the models directly impact on the quality of the final system derived from
them
• Most errors in software development are introdu-ced during the first steps.
• The later an error is removed, the more expensive the fix is.
![Page 6: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/6.jpg)
Motivation
Need for useful methods and tools to check the correctness of models
Boehm’s curve
MDD
In MDD, the quality of the models directly impact on the quality of the final system derived from
them
• Most errors in software development are introdu-ced during the first steps.
• The later an error is removed, the more expensive the fix is.
![Page 7: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/7.jpg)
To develop a set of lightweight static verification methods for checking several correctness properties of [UML]
executable models
Our goal is…
![Page 8: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/8.jpg)
To develop a set of lightweight static verification methods for checking several correctness properties of [UML]
executable models
Our goal is…
![Page 9: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/9.jpg)
Verification methods classification
Regarding the mode how the analysis is done
Regarding the level of formalization they use
- +
![Page 10: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/10.jpg)
Verification methods classification
Regarding the mode how the analysis is done
Static methods
Dynamic methods
Regarding the level of formalization they use
- +
![Page 11: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/11.jpg)
Verification methods classification
Regarding the mode how the analysis is done
Static methods
Dynamic methods
Regarding the level of formalization they use
- +Non-formal methods
Lightweight methods
Formal methods
![Page 12: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/12.jpg)
Verification methods classification
Regarding the mode how the analysis is done
Static methods
Dynamic methods
Regarding the level of formalization they use
- +Non-formal methods
Lightweight methods
Formal methods
Inspections
Reviews
Model Checking
Abstract Interpretation
Testing
Our verification
methods
![Page 13: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/13.jpg)
- +
Verification methods classification
Regarding the mode how the analysis is done
Static methods
Dynamic methods
Regarding the level of formalization they use
Non-formal methods
Lightweight methods
Formal methods
Inspections
Reviews
Model Checking
Abstract Interpretation
Testing
Our verification
methods
Static analysis no execution of the model Do not need to translate the model into a mathematical formalization They provide quick and useful feedback They can be integrated in the development process They are only able to perform a partial analysis
![Page 14: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/14.jpg)
To develop a set of lightweight static verification methods for checking several correctness properties of [UML]
executable models
Our goal is…
![Page 15: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/15.jpg)
An executable model is a model with a behavioral specification sufficiently detailed so it can be systematically implemented/executed in the production environment.
![Page 16: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/16.jpg)
The models are V&V in a development/test environment
The models are deployed in a production environment
Software engineers create fully executable models
Software engineers iteratively execute, test and update the
models
Code generationModel interpretation
Use of executable models in MDD
An executable model is a model with a behavioral specification sufficiently detailed so it can be systematically implemented/executed in the production environment.
![Page 17: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/17.jpg)
(1) level of abstraction productivity (2) platform independent models costs(3) early verification quality
The models are V&V in a development/test environment
The models are deployed in a production environment
Software engineers create fully executable models
Software engineers iteratively execute, test and update the
models
Code generationModel interpretation
Use of executable models in MDD
An executable model is a model with a behavioral specification sufficiently detailed so it can be systematically implemented/executed in the production environment.
![Page 18: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/18.jpg)
An executable model is a model with a behavioral specification detailed enough so that it can be systematically
s may be specified in several languages
![Page 19: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/19.jpg)
UML executable model
Structural ModelUML Class Diagram + integrity constraints
Detailed Behavioral ModelUML Behavioral Diagram
precisely defined
An executable model is a model with a behavioral specification detailed enough so that it can be systematically
s may be specified in several languages
![Page 20: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/20.jpg)
UML executable model
Structural ModelUML Class Diagram + integrity constraints
Detailed Behavioral ModelUML Behavioral Diagram
precisely defined
An executable model is a model with a behavioral specification detailed enough so that it can be systematically
s may be specified in several languages
![Page 21: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/21.jpg)
UML executable model
Structural ModelUML Class Diagram + integrity constraints
Detailed Behavioral ModelUML Behavioral Diagram
precisely defined
An executable model is a model with a behavioral specification detailed enough so that it can be systematically
RestaurantBranch
address: Stringphone: String[0..2]
Menu
name: Stringprice: Real
Course
description: Stringcategory: CourseCategory
* Offers * * IsComposedOf 3..*
SpecialMenu
discount: Real
<<enumeration>>CourseCategory
StarterMainCourseDessert
context SpecialMenu inv validDiscount: self.discount >=10context SpecialMenu inv atMost3SpecialMenus: SpecialMenu.allInstances()->size()<=3
{incomplete}
s may be specified in several languages
![Page 22: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/22.jpg)
UML executable model
Structural ModelUML Class Diagram + integrity constraints
Detailed Behavioral ModelUML Behavioral Diagram
precisely defined
An executable model is a model with a behavioral specification detailed enough so that it can be systematically
s may be specified in several languages
![Page 23: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/23.jpg)
UML executable model
Structural ModelUML Class Diagram + integrity constraints
Detailed Behavioral ModelUML Behavioral Diagram
precisely defined
An executable model is a model with a behavioral specification detailed enough so that it can be systematically
Using Alf action language (OMG). Alf is a clear, precise yet abstract
textual language to specify executable models in the context of UML
s may be specified in several languages
![Page 24: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/24.jpg)
UML executable model
Structural ModelUML Class Diagram + integrity constraints
Detailed Behavioral ModelUML Behavioral Diagram
precisely defined
An executable model is a model with a behavioral specification detailed enough so that it can be systematically
activity addMenu (in _name: String, in _price: Real, in _courses:Course[3..*]) { if (!Menu.allInstances()->exists(m|m.name=_name) ) { Menu m = new Menu(); m.name = _name; m.price = _price; for ( i in 1.._courses->size() ) { IsComposedOf.createlink(m=>menu,course=>_courses[i]); } }}
s may be specified in several languages
Using Alf action language (OMG). Alf is a clear, precise yet abstract
textual language to specify executable models in the context of UML
![Page 25: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/25.jpg)
UML executable model
Structural ModelUML Class Diagram + integrity constraints
Detailed Behavioral ModelUML Behavioral Diagram
precisely defined
An executable model is a model with a behavioral specification detailed enough so that it can be systematically
activity addMenu (in _name: String, in _price: Real, in _courses:Course[3..*]) { if (!Menu.allInstances()->exists(m|m.name=_name) ) { Menu m = new Menu(); m.name = _name; m.price = _price; for ( i in 1.._courses->size() ) { IsComposedOf.createlink(m=>menu,course=>_courses[i]); } }}
s may be specified in several languages
Using Alf action language (OMG). Alf is a clear, precise yet abstract
textual language to specify executable models in the context of UML
![Page 26: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/26.jpg)
To develop a set of lightweight static verification methods for checking several correctness properties of [UML]
executable models
Our goal is…
![Page 27: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/27.jpg)
Property #1. Non-Redundancy
![Page 28: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/28.jpg)
Property #1. Non-Redundancy
An action in operation is redundant if its effect on the system state is subsumed by the effect of later actions in the same operation.
![Page 29: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/29.jpg)
Property #1. Non-Redundancy
activity removeCourse () { self.description = null; self.category = null; self.destroy();}
Course
description: Stringcategory: CourseCategory
An action in operation is redundant if its effect on the system state is subsumed by the effect of later actions in the same operation.
![Page 30: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/30.jpg)
Property #1. Non-Redundancy
activity removeCourse () { self.description = null; self.category = null; self.destroy();}
Course
description: Stringcategory: CourseCategory
An action in operation is redundant if its effect on the system state is subsumed by the effect of later actions in the same operation.
![Page 31: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/31.jpg)
Property #1. Non-Redundancy
activity removeCourse () { self.description = null; self.category = null; self.destroy();}
Feedback: There is no no need of clearing the values of
the attributes of an object that is going to be removed.
Course
description: Stringcategory: CourseCategory
An action in operation is redundant if its effect on the system state is subsumed by the effect of later actions in the same operation.
![Page 32: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/32.jpg)
Property #1. Non-Redundancy
activity removeCourse () {
self.destroy();}
Course
description: Stringcategory: CourseCategory
An action in operation is redundant if its effect on the system state is subsumed by the effect of later actions in the same operation.
![Page 33: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/33.jpg)
Property #2. Executability
![Page 34: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/34.jpg)
Property #2. Executability
The executability of an operation is its ability to be executed without breaking the integrity constraints defined in the structural model.
An operation is weakly executable when there is a chance that a user may successfully execute the operation.
An operation is strongly executable when it is always successfully executed.
Two levels of correctness:
![Page 35: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/35.jpg)
Property #2. Executability
An operation is weakly executable when there is a chance that a user may successfully execute the operation.
An operation is strongly executable when it is always successfully executed.
Two levels of correctness:
activity classifyAsSpecialmenu (in _discount:Real) { if ( _discount>=10 ) { classify self to SpecialMenu; self.discount = _discount; }}
Menu
name: Stringprice: Real
SpecialMenu
discount: Real
{incomplete}
context SpecialMenu inv validDiscount: self.discount >=10context SpecialMenu inv atMost3SpecialMenus: SpecialMenu.allInstances()->size()<=3
The executability of an operation is its ability to be executed without breaking the integrity constraints defined in the structural model.
![Page 36: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/36.jpg)
Property #2. Executability
An operation is weakly executable when there is a chance that a user may successfully execute the operation.
An operation is strongly executable when it is always successfully executed.
Two levels of correctness:
activity classifyAsSpecialmenu (in _discount:Real) { if ( _discount>=10 ) { classify self to SpecialMenu; self.discount = _discount; }}
Menu
name: Stringprice: Real
SpecialMenu
discount: Real
{incomplete}
context SpecialMenu inv validDiscount: self.discount >=10context SpecialMenu inv atMost3SpecialMenus: SpecialMenu.allInstances()->size()<=3
The executability of an operation is its ability to be executed without breaking the integrity constraints defined in the structural model.
![Page 37: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/37.jpg)
Property #2. Executability
An operation is weakly executable when there is a chance that a user may successfully execute the operation.
An operation is strongly executable when it is always successfully executed.
Two levels of correctness:
activity classifyAsSpecialmenu (in _discount:Real) { if ( _discount>=10 ) { classify self to SpecialMenu; self.discount = _discount; }}
Menu
name: Stringprice: Real
SpecialMenu
discount: Real
{incomplete}
context SpecialMenu inv validDiscount: self.discount >=10context SpecialMenu inv atMost3SpecialMenus: SpecialMenu.allInstances()->size()<=3
The executability of an operation is its ability to be executed without breaking the integrity constraints defined in the structural model.
![Page 38: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/38.jpg)
context SpecialMenu inv validDiscount: self.discount >=10context SpecialMenu inv atMost3SpecialMenus: SpecialMenu.allInstances()->size()<=3
Property #2. Executability
An operation is weakly executable when there is a chance that a user may successfully execute the operation.
An operation is strongly executable when it is always successfully executed.
Two levels of correctness:
activity classifyAsSpecialmenu (in _discount:Real) { if ( _discount>=10 ) { classify self to SpecialMenu; self.discount = _discount; }}
Feedback: You must ensure there are less than 3 special menus
in the system.
Menu
name: Stringprice: Real
SpecialMenu
discount: Real
{incomplete}
The executability of an operation is its ability to be executed without breaking the integrity constraints defined in the structural model.
![Page 39: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/39.jpg)
context SpecialMenu inv validDiscount: self.discount >=10context SpecialMenu inv atMost3SpecialMenus: SpecialMenu.allInstances()->size()<=3
Property #2. Executability
An operation is weakly executable when there is a chance that a user may successfully execute the operation.
An operation is strongly executable when it is always successfully executed.
Two levels of correctness:
activity classifyAsSpecialmenu (in _discount:Real) { if ( _discount>=10 and SpecialMenu.allInstances()->size()<3 ) { classify self to SpecialMenu; self.discount = _discount; }}
Menu
name: Stringprice: Real
SpecialMenu
discount: Real
{incomplete}
The executability of an operation is its ability to be executed without breaking the integrity constraints defined in the structural model.
![Page 40: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/40.jpg)
Property #3. Completeness
![Page 41: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/41.jpg)
Property #3. Completeness
A set of operations is complete if all possible changes (inserts/updates/deletes…) on all parts of the system state can be performed through the execution of those operations.
![Page 42: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/42.jpg)
Property #3. Completeness
activity addCourse (in _description: String, in _category: CourseCategory) { Course c = new Course(); c.description = _description; c.category = _category;}
activity deleteMenu() { self.destroy();}
Menu
name: Stringprice: Real
Course
description: Stringcategory: CourseCategory
* IsComposedOf 3..*
SpecialMenu
discount: Real
<<enumeration>>CourseCategory
StarterMainCourseDessert
A set of operations is complete if all possible changes (inserts/updates/deletes…) on all parts of the system state can be performed through the execution of those operations.
![Page 43: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/43.jpg)
Property #3. Completeness
activity addCourse (in _description: String, in _category: CourseCategory) { Course c = new Course(); c.description = _description; c.category = _category;}
activity deleteMenu() { self.destroy();}
Feedback: Actions to destroy courses or to create menus are not
specified.
Menu
name: Stringprice: Real
Course
description: Stringcategory: CourseCategory
* IsComposedOf 3..*
SpecialMenu
discount: Real
<<enumeration>>CourseCategory
StarterMainCourseDessert
A set of operations is complete if all possible changes (inserts/updates/deletes…) on all parts of the system state can be performed through the execution of those operations.
![Page 44: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/44.jpg)
Property #3. Completeness
activity addCourse (in _description: String, in _category: CourseCategory) { Course c = new Course(); c.description = _description; c.category = _category;}
activity deleteMenu() { self.destroy();}
activity addMenu () { Menu m = new Menu(); …}
activity deleteCourse() { self.destroy();}
Menu
name: Stringprice: Real
Course
description: Stringcategory: CourseCategory
* IsComposedOf 3..*
SpecialMenu
discount: Real
<<enumeration>>CourseCategory
StarterMainCourseDessert
A set of operations is complete if all possible changes (inserts/updates/deletes…) on all parts of the system state can be performed through the execution of those operations.
![Page 45: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/45.jpg)
Lightweight static methods to verify
several correctness properties
Summary
Completeness
Non-redundancy
Executability
EXECUTABLE MODEL
FEEDBACK
![Page 46: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/46.jpg)
Lightweight static methods to verify
several correctness properties
Summary
Completeness
Non-redundancy
Executability
EXECUTABLE MODEL
FEEDBACK
UML Executable ModelsM2M transformations (ATL, GTR)
![Page 47: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/47.jpg)
Lightweight static methods to verify
several correctness properties
Summary
Completeness
Non-redundancy
Executability
EXECUTABLE MODEL
FEEDBACK
UML Executable ModelsM2M transformations (ATL, GTR)
The feedback (which is expressed in the same
language the model) points out how the error may be
resolved.
![Page 48: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/48.jpg)
Lightweight static methods to verify
several correctness properties
Summary
Completeness
Non-redundancy
Executability
EXECUTABLE MODEL
FEEDBACK
UML Executable ModelsM2M transformations (ATL, GTR)
The feedback (which is expressed in the same
language the model) points out how the error may be
resolved.
Limitations: partial models, partial analysis…
![Page 49: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/49.jpg)
Lightweight static methods to verify
several correctness properties
Summary
Completeness
Non-redundancy
Executability
EXECUTABLE MODEL
FEEDBACK
UML Executable ModelsM2M transformations (ATL, GTR)
The feedback (which is expressed in the same
language the model) points out how the error may be
resolved.
Limitations: partial models, partial analysis…
…more work has to be done!
![Page 50: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/50.jpg)
Domain
Property
Method
![Page 51: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/51.jpg)
Domain
Property
Method
UML executable
models
ATL M2M Transformations
GT Rules
DSLs
Other behavioral
specifications
![Page 52: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/52.jpg)
Domain
Property
Method
Non-redundancy
Executability
Consistency
Safety
Deadlock-free
Livelock-free
UML executable
models
GT Rules
DSLs
Other behavioral
specifications
ATL M2M Transformations
Completeness
![Page 53: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/53.jpg)
Domain
Property
Method
Lightweight static methods
Model Checking
Constraint Programming
Non-redundancy
Executability
Completeness
Consistency
Safety
Deadlock-free
Livelock-free
UML executable
models
GT Rules
DSLs
Other behavioral
specifications
Event-B
ATL M2M Transformations
![Page 54: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/54.jpg)
Domain
Property
Method
Model Checking
Constraint Programming
Consistency
Safety
Deadlock-free
Livelock-free
DSLs
Other behavioral
specifications
Event-B
Lightweight static methods
Non-redundancy
Executability
Completeness
UML executable
models
GT Rules
ATL M2M Transformations
![Page 55: Lightweight Static Verification of [UML] Executable Models (An overview)](https://reader033.fdocuments.in/reader033/viewer/2022061212/5495fc16b479596f4d8b4e47/html5/thumbnails/55.jpg)
Elena Planas
Thanks for your attention!