technische universitÄt dresden model-driven development for non-functional properties: refinement...
TRANSCRIPT
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
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
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
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
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.
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
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
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
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
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>
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;}
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
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
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