IAC 2024 - IA Fast Track to Search Focused AI Solutions
2013 06-03 demonstrating-filmstrippinginuse
1. Demonstrating Filmstripping in the
UML-based Specification Environment (USE)
M. Gogolla, L. Hamann, F. Hilken, M. Kuhlmann
Database Systems Group, University of Bremen, Germany
R. France
Colorado State University, CO, USA
USE TOOL AVAILABLE AT:
http://sourceforge.net/apps/mediawiki/useocl
PPT PRESENTATION AVAILABLE AT:
[viewing ppt presentation results in better quality than viewing pdf presentation]
http://de.slideshare.net/gogolla/2013-0603-demonstratingfilmstrippinginuse-22378212
15. after USE hase been started, the
contents of the file marryDivorce2.cmd
is read; the commands in that file are
executed: the underlying appplication
model is loaded, some objects are created,
operations on the created objects are
called, and class invariants and operation
pre- and postconditions are checked
16. load model
create objects
check invariants
1st operation call
with pre/post check
check invariants
check invariants
2nd operation call
with pre/post check
17. result state of the action sequence is the object diagram;
action sequence is pictured by the sequence diagram
1st operation call
2nd operation call
create objects
18. filmstrip model class diagram is loaded and displayed
red: application model; rest: filmstrip model;
operations become classes; pre/post become invariants
19. model validator configuration for achieving a state structurally
similar to the state of the application model is defined
data type values are determined; exactly 9 Person and
3 Snapshot objects are required; at least 1 and at most
2 marryC(all) and divorceC(all) objects are allowed
21. model validator searches for a state satisfying the
model invariants and the given configuration
model validator finds a state representing 3 successive
snapshots from the application model; 2 operation calls are
represented by the marryC(all) and divorceC(all) objects
Marriage link from
application model
22. another model validator configuration is defined
this configuration tries to contruct an action sequence
with 2 successive divorceC(alls) between the required
3 Snapshot objects; the configuration does *NOT* allow
marryC(alls)
23. the new model validator configuration
is loaded through the plugin button
24. resulting object diagram has 2 successive divorce calls; all
(original) pre/postconditions and invariants satisfied; this
shows that the original postcondition of divorce was too *WEAK*
according to the (too weak) postcondition of divorce, it is
allowed to remove a Marriage link *AND* to introduce in the
same operation call another Marriage link
Marriage links from
application model
25. the OCL query at the bottom searches for married persons being
present in 2 successive snapshots but having disjoint sets of
spouses; person4 *DIVORCED* and *MARRIED* by 1st divorceC(all)
the action sequence can be explored with OCL queries; the
complete action sequence with all states and all operation
calls is available in a single object diagram