technische universitÄt dresden model-driven development for non-functional properties: refinement...

14
TECHNISCHE UNIVERSITÄT DRESDEN Model-Driven Development for Non-functional Properties: Refinement through Model Transformation Simone Röttger and Steffen Zschaler Dresden University of Technology, Dresden, Germany October 14, 2004 7 th UML conference, Lisbon, Portugal

Upload: arianna-jenkins

Post on 26-Mar-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TECHNISCHE UNIVERSITÄT DRESDEN Model-Driven Development for Non-functional Properties: Refinement through Model Transformation Simone Röttger and Steffen

TECHNISCHEUNIVERSITÄTDRESDEN

Model-Driven Development for Non-functional Properties:

Refinement through Model Transformation

Simone Röttger and Steffen ZschalerDresden University of Technology, Dresden, Germany

October 14, 2004

7th UML conference, Lisbon, Portugal

Page 2: TECHNISCHE UNIVERSITÄT DRESDEN Model-Driven Development for Non-functional Properties: Refinement through Model Transformation Simone Röttger and Steffen

TECHNISCHEUNIVERSITÄTDRESDEN

Thomas Springer Chair of Computer Networks2/14 COMQUAD© Steffen Zschaler – MDD for non-functional properties

Motivation

Non-functional properties need to be considered throughout software development

– We need to model and analyse non-functional properties– We need to refine non-functional properties along with the functional

model

– Both adds complexity to the task of designing an application

Problem addressed in this talk:

– How to• Integrate non-functional properties into development process

– While• Minimizing complexity for application designer

Page 3: TECHNISCHE UNIVERSITÄT DRESDEN Model-Driven Development for Non-functional Properties: Refinement through Model Transformation Simone Röttger and Steffen

TECHNISCHEUNIVERSITÄTDRESDEN

Thomas Springer Chair of Computer Networks3/14 COMQUAD© Steffen Zschaler – MDD for non-functional properties

An Example: A Simple Client–Server Scenario

<<nfp>>response_time

value < 470

<<nfp>>response_time

value < 470

[for checkPassWd]

<<nfp>>response_time

value < 500

<<nfp>>response_time

value < 500

[for login]

<<nfp>>response_time

value < 400

<<nfp>>response_time

value < 400

[for checkPassWd]

compatible!

<<comp spec>>

:UserManager

IUserMgt<<comp spec>>

:VideoServer

IUserMgtILogin

Page 4: TECHNISCHE UNIVERSITÄT DRESDEN Model-Driven Development for Non-functional Properties: Refinement through Model Transformation Simone Röttger and Steffen

TECHNISCHEUNIVERSITÄTDRESDEN

Thomas Springer Chair of Computer Networks4/14 COMQUAD© Steffen Zschaler – MDD for non-functional properties

An Example: Refining the Specification

<<distributed>>

request

response

client_response_timeserver_response_time

:server:client

<<nfp>>response_time

value < 500

<<nfp>>response_time

value < 500

[for login]

<<nfp>>response_time

value < 470

<<nfp>>response_time

value < 470

[for checkPassWd]

<<nfp>>response_time

value < 400

<<nfp>>response_time

value < 400

[for checkPassWd]

<<nfp>>client_response_time

value < 470

<<nfp>>client_response_time

value < 470

[for checkPassWd]

<<nfp>>server_response_time

value < 400

<<nfp>>server_response_time

value < 400

[for checkPassWd]

??

<<comp spec>>

:UserManager

IUserMgt<<comp spec>>

:VideoServer

IUserMgtILogin

Page 5: TECHNISCHE UNIVERSITÄT DRESDEN Model-Driven Development for Non-functional Properties: Refinement through Model Transformation Simone Röttger and Steffen

TECHNISCHEUNIVERSITÄTDRESDEN

Thomas Springer Chair of Computer Networks5/14 COMQUAD© Steffen Zschaler – MDD for non-functional properties

Aim of This Work

Benefits– Early consideration of non-functional properties

– Low-overhead integration into development process

To provide support for such refinements of non-functional properties,

while shielding the application developer as much as possible from the added complexity.

To provide support for such refinements of non-functional properties,

while shielding the application developer as much as possible from the added complexity.

Page 6: TECHNISCHE UNIVERSITÄT DRESDEN Model-Driven Development for Non-functional Properties: Refinement through Model Transformation Simone Röttger and Steffen

TECHNISCHEUNIVERSITÄTDRESDEN

Thomas Springer Chair of Computer Networks6/14 COMQUAD© Steffen Zschaler – MDD for non-functional properties

Outline

Process and Role Model– Measurement and Application Designer

Technical Background: – The Work of the Measurement Designer

– Refinement of Measurement Definitions

Conclusions

Core idea: Library of non-functional aspects– Provided independently of application development

– Including refinement relationships

Core idea: Library of non-functional aspects– Provided independently of application development

– Including refinement relationships

Page 7: TECHNISCHE UNIVERSITÄT DRESDEN Model-Driven Development for Non-functional Properties: Refinement through Model Transformation Simone Röttger and Steffen

TECHNISCHEUNIVERSITÄTDRESDEN

Thomas Springer Chair of Computer Networks7/14 COMQUAD© Steffen Zschaler – MDD for non-functional properties

Process and Role Model

<<attribute>> performingRole:Role

Application Designer

Requirements Analysis

Implementation

Application Design

Refinement

Constraints forComponents

Measurement Designer

Definition ofMeasurements

Specification ofRefinements

MeasurementSpecifications

RefinementSpecifications

Page 8: TECHNISCHE UNIVERSITÄT DRESDEN Model-Driven Development for Non-functional Properties: Refinement through Model Transformation Simone Röttger and Steffen

TECHNISCHEUNIVERSITÄTDRESDEN

Thomas Springer Chair of Computer Networks8/14 COMQUAD© Steffen Zschaler – MDD for non-functional properties

Context ModelContext Model

0..n

OperationComponent

1..n

+provided_operation

1..n

+callee

0..n0..n+used_operation

0..n+caller 0..n

OperationCall

+ start : Instant+ end : Instant

0..n

1

+invocations 0..n{ordered}

1

ComponentInstance

0..n

1

+instances 0..n

1

1

+callee

1

+caller1

Defining the Measurements

static

dynamic

quality_characteristic response_time (op: Operation) { domain: numeric milliseconds;

values: op.invocations->last().end - op.invocations->last().start;}

CQML+ Specification

Page 9: TECHNISCHE UNIVERSITÄT DRESDEN Model-Driven Development for Non-functional Properties: Refinement through Model Transformation Simone Röttger and Steffen

TECHNISCHEUNIVERSITÄTDRESDEN

Thomas Springer Chair of Computer Networks9/14 COMQUAD© Steffen Zschaler – MDD for non-functional properties

+callee

1

+provided_operation

1..n

Another Context Model

Refinement:– start and end replaced by more detailed description

static

dynamic

Component Operation+callee

0..n

+used_operation 0..n+caller 0..n

1

+invocations 0..n{ordered}

1

ComponentInstance

1

+instances 0..n

1

+caller1

OperationCall

sndCall: Instant

rcvCall: Instant

sndResult: Instant

rcvResult: Instant

Page 10: TECHNISCHE UNIVERSITÄT DRESDEN Model-Driven Development for Non-functional Properties: Refinement through Model Transformation Simone Röttger and Steffen

TECHNISCHEUNIVERSITÄTDRESDEN

Thomas Springer Chair of Computer Networks10/14 COMQUAD© Steffen Zschaler – MDD for non-functional properties

Describing the Refinement

Classifier Transformation:

Translates Types between context models

Classifier Transformation:

Translates Types between context models

Feature Transformation:

Derives values of abstract features in the concrete context model

Feature Transformation:

Derives values of abstract features in the concrete context model

<refinementxform from="coarse.xmi" to="fine.xmi">

<transform classifier="OperationCall"> <targetclassifier="OperationCall"/> </transform>

<transform feature="OperationCall::start" ownerRef="owner"> <targetexpression> owner.sndCall </targetexpression>

<targetexpression> owner.rcvCall </targetexpression> </transform>

</refinementxform>

Page 11: TECHNISCHE UNIVERSITÄT DRESDEN Model-Driven Development for Non-functional Properties: Refinement through Model Transformation Simone Röttger and Steffen

TECHNISCHEUNIVERSITÄTDRESDEN

Thomas Springer Chair of Computer Networks11/14 COMQUAD© Steffen Zschaler – MDD for non-functional properties

Application to the Measurement Definition

quality_characteristic response_time (op: Operation) { domain: numeric milliseconds;

values: op.invocations->last().end - op.invocations->last().start;}

quality_characteristic response_time (op: Operation) { domain: numeric milliseconds;

values: op.invocations->last().end - op.invocations->last().start;}

quality_characteristic client_response_time (op: Operation) { domain: numeric milliseconds;

values: op.invocations->last().rcvResult - op.invocations->last().sndCall;}

quality_characteristic client_response_time (op: Operation) { domain: numeric milliseconds;

values: op.invocations->last().rcvResult - op.invocations->last().sndCall;}

quality_characteristic server_response_time (op: Operation) { domain: numeric milliseconds;

values: op.invocations->last().sndResult - op.invocations->last().rcvCall;}

quality_characteristic server_response_time (op: Operation) { domain: numeric milliseconds;

values: op.invocations->last().sndResult - op.invocations->last().rcvCall;}

Page 12: TECHNISCHE UNIVERSITÄT DRESDEN Model-Driven Development for Non-functional Properties: Refinement through Model Transformation Simone Röttger and Steffen

TECHNISCHEUNIVERSITÄTDRESDEN

Thomas Springer Chair of Computer Networks12/14 COMQUAD© Steffen Zschaler – MDD for non-functional properties

Back to the Example

<<distributed>>

<<nfp>>response_time

value < 500

<<nfp>>response_time

value < 500

[for login]

<<nfp>>response_time

value < 470

<<nfp>>response_time

value < 470

[for checkPassWd]

<<nfp>>response_time

value < 400

<<nfp>>response_time

value < 400

[for checkPassWd]

<<nfp>>client_response_time

value < 470

<<nfp>>client_response_time

value < 470

[for checkPassWd]

<<nfp>>server_response_time

value < 400

<<nfp>>server_response_time

value < 400

[for checkPassWd]

<<comp spec>>

:UserManager

IUserMgt<<comp spec>>

:VideoServer

IUserMgtILogin

Page 13: TECHNISCHE UNIVERSITÄT DRESDEN Model-Driven Development for Non-functional Properties: Refinement through Model Transformation Simone Röttger and Steffen

TECHNISCHEUNIVERSITÄTDRESDEN

Thomas Springer Chair of Computer Networks13/14 COMQUAD© Steffen Zschaler – MDD for non-functional properties

Conclusions

Starting Point– Non-functional specifications need refinement just as functional

specifications

– Application developer should be shielded from the additional complexity

Solutions– Measurement Designer provides pre-specified library of

measurements

– Measurements are specified relative to context models

– Different levels of abstraction represented by different context models

– Mapping between context models can be used to generate measurement definitions at more detailed levels

Page 14: TECHNISCHE UNIVERSITÄT DRESDEN Model-Driven Development for Non-functional Properties: Refinement through Model Transformation Simone Röttger and Steffen

TECHNISCHEUNIVERSITÄTDRESDEN

Thomas Springer Chair of Computer Networks14/14 COMQUAD© Steffen Zschaler – MDD for non-functional properties

Future Work

Integration of analysis capabilities– Component match analysis

– Connectors to model component interactions

Appropriate management of context models Structural non-functional refinement

– Decomposition, reassignment of non-functional properties