210 likes | 223 Views
Research in Progress Report. Constraint-based Optimizations of Executable UML Models. Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences. SYRCoSE: Spring Young Researchers Colloquium on Software Engineering
E N D
Research in Progress Report Constraint-based Optimizations of Executable UML Models Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software Engineering May 28-29, 2009, Higher School of Economics, Moscow, Russian Federation
Plan • Introduction • Model Driven Development • Unified Modeling Language • Optimizing transformations properties • Compiler optimization adaptation • Tool support features
Model Driven Development Abstraction C MN M2 M1 … Details
Motivation • Complex systems have complex models • Models are the only artifacts to interact with • Shift of activities to model level • Problems with editing generated code Need for optimization on model level
Unified Modeling Language • Allows specification of the system from all the points related to software lifecycle • Most popular universal modeling language • Widely supported by modeling tools • Contains Object Constraint Language (OCL) • Pre/post conditions • Invariants
Behavior Specification in UML • Sequence diagram • Activity diagrams • Text in target language • Statemachine diagrams
Optimizations Properties • Behavior preservation • Semantics is tool-dependant • Memory consumption decrease • UML standard does not provide memory managing means • Execution time reduction • Extracting information from constraints
Existing Approaches • Refactoring • Shift to model level • Different goal • Automata minimization • Complicated by UML semantics • General UML model transformation • Stronger tool support • Lack of constraint support • Compiler optimization • Visible to users
Statemachine Execution Time • Overheads • State selection • Update of Message queues • Interactions with Timers
UML Optmizations • Loop related • Number of iteration • Body invariants • Redundancy removal • Dead code • Simplifying expressions • UML specific
Causes for Optimization • Component reuse • Standard protocol implementations • Parameter checks • Generated state machines • User mistakes
Extension Workflow Constraints Analyzer Model Solutions Transformer Constraints_2 Model_2 Transformation Descriptions
Tool Support Features • Transformation description • Metalevel pattern • Constraints • Flexible set of transformation • Transformation history • Constraint resolution explanation
Conclusions • MDD support causes the need for optimizations of executable UML models • Existing tools and approaches cannot handle optimizations and constraint analysis • A part of compiler optimizations can be adapted to UML • New transformations should be created and implemented
Future Work • Design of new UML-specific optimizations • Formalization of transformations • Implementation of transformations • Evaluation on industry-size projects
Thank you sdt@ispras.ru