andrey karaulov, alexander strabykin institute for system programming russian academy of sciences...

21
Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences RCoSE: Spring Young Researchers Colloquium on Software Engineering y 28-29, 2009, Higher School of Economics, Moscow, Russian Federati Research in Progress Report

Upload: adele-briggs

Post on 18-Jan-2018

221 views

Category:

Documents


0 download

DESCRIPTION

SYRCoSE 2009 Details Abstraction M1M1 MNMN C M2M2 …

TRANSCRIPT

Page 1: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

Andrey Karaulov, Alexander Strabykin

Institute for System ProgrammingRussian Academy of Sciences

SYRCoSE: Spring Young Researchers Colloquium on Software EngineeringMay 28-29, 2009, Higher School of Economics, Moscow, Russian Federation

Research in Progress Report

Page 2: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

Introduction◦ Model Driven Development◦ Unified Modeling Language

Optimizing transformations properties Compiler optimization adaptation Tool support features

Page 3: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

Details

Abstraction

M1 MN CM2 …

Page 4: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

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

Page 5: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

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

Page 6: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

Sequence diagram

Activity diagrams

Text in target language

Statemachine diagrams

Page 7: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

statemachine Laptop :: initialize

State machine diagram1 {1/ 1}

Working

Battery_OK

[AC_Plugged == false][AC_Plugged == false]

Working

[true]/ ^DisplayMsg("AC Off");time = GetBatteryTime();DisplayTime(time);

[true]/ ^DisplayMsg("AC Off");time = GetBatteryTime();DisplayTime(time);

[false] / Beep();^DisplayMsg("I nsert battery!");[false] / Beep();^DisplayMsg("I nsert battery!");

Integer time;

Page 8: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

Behavior preservation◦ Semantics is tool-dependant

Memory consumption decrease◦ UML standard does not provide memory

managing means Execution time reduction

Extracting information from constraints

Page 9: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

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

Page 10: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

oa TT totalT

Actionsa

a atT )(

Overheadso

o otT )(Overheads State selection Update of Message

queues Interactions with

Timers

Page 11: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

Page 12: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

Loop related◦ Number of iteration◦ Body invariants

Redundancy removal◦ Dead code◦ Simplifying expressions

UML specific

Page 13: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

Component reuse◦Standard protocol implementations◦Parameter checks

Generated state machines

User mistakes

Page 14: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

Analyzer

Solutions

Transformer

Model_2

Constraints_2

Transformation

Descriptions

Page 15: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

Transformation description◦ Metalevel pattern◦ Constraints

Flexible set of transformation Transformation history

Constraint resolution explanation

Page 16: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

package Computer_Model Class diagram1 {1/ 1}

LaptopBattery_OK : BooleanAC_Plugged : BooleanBeep()GetBatteryTime() : Integer

{}invariant:Battery_OK or AC_Plugged

<<signal>>DisplayMsg

msg :String

<<signal>>DisplayTimetime : Integer

Page 17: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

statemachine Laptop :: initialize

State machine diagram1 {1/ 1}

Working

Battery_OK

[AC_Plugged == false][AC_Plugged == false]

Working

[true]/ ^DisplayMsg("AC Off");time = GetBatteryTime();DisplayTime(time);

[true]/ ^DisplayMsg("AC Off");time = GetBatteryTime();DisplayTime(time);

[false] / Beep();^DisplayMsg("I nsert battery!");[false] / Beep();^DisplayMsg("I nsert battery!");

Integer time;

Page 18: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

statemachine Laptop :: initialize

State machine diagram1 {1/ 1}

Working

[AC_Plugged == false]/^DisplayMsg("AC Off");time = GetBatteryTime();DisplayTime(time);

[AC_Plugged == false]/^DisplayMsg("AC Off");time = GetBatteryTime();DisplayTime(time);

Working

Integer time;

Page 19: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

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

Page 20: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

Design of new UML-specific optimizations

Formalization of transformations

Implementation of transformations

Evaluation on industry-size projects

Page 21: Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software

SYRCoSE 2009

Thank youThank [email protected]