Introducing
Performance Awareness
in an Integrated
Specification
Environment
Master‘s Thesis / University of Stuttgart
May – November, 2016
Fabian Keller
Introducing Performance Awareness in an Integrated Specification Environment 2
Fabian Keller
University of
Stuttgart
D-70569 Stuttgart
Markus Völter
voelter –
Ingenieurbüro für
Softwaretechnologie
D-70327 Stuttgart
André van Hoorn
University of
Stuttgart
D-70569 Stuttgart
Klaus Birken
itemis AG
D-70565 Stuttgart
Hello
Building Software with
Performance in Mind
State of the Art
Introducing Performance Awareness in an Integrated Specification Environment 3
Introducing Performance Awareness in an Integrated Specification Environment 4
Performance prediction at its finest
Palladio
Becker et al. [2009]
Introducing Performance Awareness in an Integrated Specification Environment 5
Or how to ship performant code
Software Performance Engineering
RE
Introducing Performance Awareness in an Integrated Specification Environment 5
Or how to ship performant code
Software Performance Engineering
RE
SPL
Introducing Performance Awareness in an Integrated Specification Environment 5
Or how to ship performant code
Software Performance Engineering
RE
SPL
SA
Introducing Performance Awareness in an Integrated Specification Environment 5
Or how to ship performant code
Software Performance Engineering
RE
SPL
SA
NFR
Introducing Performance Awareness in an Integrated Specification Environment 5
Or how to ship performant code
Software Performance Engineering
RE
SPL
SA
NFR
IDE
Introducing Performance Awareness in an Integrated Specification Environment 6
Integration of performance awareness in Java EE development
environments
– Chrusciel, 2015 –
Related Work
Introducing Performance Awareness in an Integrated Specification Environment 7
In Situ Understanding of Performance Bottlenecks through Visually
Augmented Code – Beck et al., 2013 –
Related Work
Room for Improvement?
Motivation
Introducing Performance Awareness in an Integrated Specification Environment 8
Straight from the ISE*, not IDE
Performance Awareness
Introducing Performance Awareness in an Integrated Specification Environment 9
* ISE = Integrated Specification
Environment
Straight from the ISE*, not IDE
Performance Awareness
Introducing Performance Awareness in an Integrated Specification Environment 9
* ISE = Integrated Specification
Environment
Introducing Performance Awareness in an Integrated Specification Environment 10
Variability analysis
Software Product Lines
• What impact does this decision have on the performance?
• Are all performance requirements fulfilled?
• Are all performance requirements fulfilled for all relevant configurations?
• Having an incomplete configuration, which features yield the best
performance?
• Oh this is interesting, can we have a thorough analysis?
Introducing Performance Awareness in an Integrated Specification Environment 11
Immediate feedback raises performance awareness
Questions
Overview & Infrastructure
Approach
Introducing Performance Awareness in an Integrated Specification Environment 12
Introducing Performance Awareness in an Integrated Specification Environment 13
Modeling components
JetBrains MPS and IETS3
Introducing Performance Awareness in an Integrated Specification Environment 13
Modeling components
JetBrains MPS and IETS3
Introducing Performance Awareness in an Integrated Specification Environment 14
Modeling systems
JetBrains MPS and IETS3
Introducing Performance Awareness in an Integrated Specification Environment 14
Modeling systems
JetBrains MPS and IETS3
Modeling resources and allocations
JetBrains MPS and IETS3
Introducing Performance Awareness in an Integrated Specification Environment 15
Modeling resources and allocations
JetBrains MPS and IETS3
Introducing Performance Awareness in an Integrated Specification Environment 15
Introducing Performance Awareness in an Integrated Specification Environment 16
Use cases and requirements
JetBrains MPS and IETS3
Introducing Performance Awareness in an Integrated Specification Environment 16
Use cases and requirements
JetBrains MPS and IETS3
Introducing Performance Awareness in an Integrated Specification Environment 17
Open source: github.com/DECLARE-Project
Projects
Define Performance Analyses
Introducing Performance Awareness in an Integrated Specification Environment 18
A framework for model-agnostic performance analysis
fastpan
PerformanceAnalyz
er
AnalysisContext PerformanceResult
DECLARE-
Project/fastpan
Define Performance Analyses
Define Variability Analyses
Introducing Performance Awareness in an Integrated Specification Environment 18
A framework for model-agnostic performance analysis
fastpan
PerformanceAnalyz
er
AnalysisContext PerformanceResult
VariabilityAnalyzer VariabilityContext ?
DECLARE-
Project/fastpan
Define Performance Analyses
Define Variability Analyses
Performance result standard (semantics!)
Introducing Performance Awareness in an Integrated Specification Environment 18
A framework for model-agnostic performance analysis
fastpan
PerformanceAnalyz
er
AnalysisContext PerformanceResult
VariabilityAnalyzer VariabilityContext ?
Attach.<NamedElement>to(action).utilization(Percentage.of(result.getUtilization())).mean();
Attach.<NamedElement>to(action).serviceTime(serviceTime).normalDistribution(serviceTimeVariance))
PerformanceMetric
PerformanceMeasu
re
DECLARE-
Project/fastpan
palladio-environment
• Use Palladio outside Eclipse (i.e. headless)
palladio-builder
• Build PCM models with fluent Java API
palladio-analysis
• Supports LQN solver
• Implements fastpan PerformanceAnalyzer
Introducing Performance Awareness in an Integrated Specification Environment 19
Palladio outside Eclipse
palladio-headless
DECLARE-Project/palladio-
headless
Introducing Performance Awareness in an Integrated Specification Environment 20
palladio-environment implementation
palladio-headless
Contributions are
welcome!
Introducing Performance Awareness in an Integrated Specification Environment 20
palladio-environment implementation
palladio-headless
Contributions are
welcome!
Model-to-model
transformation
IETS3 =?= PCM
Introducing Performance Awareness in an Integrated Specification Environment 21
Mapping Processors
M2M Transformation
Introducing Performance Awareness in an Integrated Specification Environment 22
Mapping Processors
M2M Transformation
Introducing Performance Awareness in an Integrated Specification Environment 22
Introducing Performance Awareness in an Integrated Specification Environment 23
Resources
M2M Transformation
Introducing Performance Awareness in an Integrated Specification Environment 23
Resources
M2M Transformation
Live Demo
Oh yeah!
Introducing Performance Awareness in an Integrated Specification Environment 24
Results & Conclusion
Almost there
Round-trip analysis time
Evaluation
Introducing Performance Awareness in an Integrated Specification Environment 26
• Palladio can provide real-time diagnostics
• Variability analysis in IETS
3
• [Yes] What impact does this decision have on the performance?
• [Yes] Are all performance requirements fulfilled?
• [Yes] Are all performance requirements fulfilled for all relevant
configurations?
• [Not yet] Having an incomplete configuration, which features yield the best
performance?
Results & Conclusion
Introducing Performance Awareness in an Integrated Specification Environment 27
• Slide 1: https://commons.wikimedia.org/wiki/File:Fale_F1_Monza_2004_73.jpg
• Slide 4: Becker, Steffen, Heiko Koziolek, and Ralf Reussner. "The Palladio component
model for model-driven performance prediction." Journal of Systems and Software 82.1
(2009): 3-22.
• Slide 5: Doors Screenshot:
https://www.ibm.com/developerworks/mydeveloperworks/blogs/requirementsmanageme
nt/resource/BLOGS_UPLOADED_IMAGES/seg2.jpg
• Slide 5: ArchStudio Screenshot:
http://y.web.umkc.edu/yzheng/img/archfeature/ArchFeature.PNG
• Slide 5: EnterpriseArchitect Screenshot:
http://assets.devx.com/articlefigs/Fig3_DetailedClassDiagrams.jpg
• Slide 5: Palladio Bench Screenshot: http://sdq.ipd.kit.edu/uploads/media/palladio-
bench_3.4_screenshot_01.jpg
• Slide 5: IntelliJ IDEA Screenshot:
https://www.jetbrains.com/idea/img/screenshots/idea_overview_5_1@2x.png
Introducing Performance Awareness in an Integrated Specification Environment 28
Image References

Introducing Performance Awareness in an Integrated Specification Environment

  • 1.
    Introducing Performance Awareness in anIntegrated Specification Environment Master‘s Thesis / University of Stuttgart May – November, 2016 Fabian Keller
  • 2.
    Introducing Performance Awarenessin an Integrated Specification Environment 2 Fabian Keller University of Stuttgart D-70569 Stuttgart Markus Völter voelter – Ingenieurbüro für Softwaretechnologie D-70327 Stuttgart André van Hoorn University of Stuttgart D-70569 Stuttgart Klaus Birken itemis AG D-70565 Stuttgart Hello
  • 3.
    Building Software with Performancein Mind State of the Art Introducing Performance Awareness in an Integrated Specification Environment 3
  • 4.
    Introducing Performance Awarenessin an Integrated Specification Environment 4 Performance prediction at its finest Palladio Becker et al. [2009]
  • 5.
    Introducing Performance Awarenessin an Integrated Specification Environment 5 Or how to ship performant code Software Performance Engineering RE
  • 6.
    Introducing Performance Awarenessin an Integrated Specification Environment 5 Or how to ship performant code Software Performance Engineering RE SPL
  • 7.
    Introducing Performance Awarenessin an Integrated Specification Environment 5 Or how to ship performant code Software Performance Engineering RE SPL SA
  • 8.
    Introducing Performance Awarenessin an Integrated Specification Environment 5 Or how to ship performant code Software Performance Engineering RE SPL SA NFR
  • 9.
    Introducing Performance Awarenessin an Integrated Specification Environment 5 Or how to ship performant code Software Performance Engineering RE SPL SA NFR IDE
  • 10.
    Introducing Performance Awarenessin an Integrated Specification Environment 6 Integration of performance awareness in Java EE development environments – Chrusciel, 2015 – Related Work
  • 11.
    Introducing Performance Awarenessin an Integrated Specification Environment 7 In Situ Understanding of Performance Bottlenecks through Visually Augmented Code – Beck et al., 2013 – Related Work
  • 12.
    Room for Improvement? Motivation IntroducingPerformance Awareness in an Integrated Specification Environment 8
  • 13.
    Straight from theISE*, not IDE Performance Awareness Introducing Performance Awareness in an Integrated Specification Environment 9 * ISE = Integrated Specification Environment
  • 14.
    Straight from theISE*, not IDE Performance Awareness Introducing Performance Awareness in an Integrated Specification Environment 9 * ISE = Integrated Specification Environment
  • 15.
    Introducing Performance Awarenessin an Integrated Specification Environment 10 Variability analysis Software Product Lines
  • 16.
    • What impactdoes this decision have on the performance? • Are all performance requirements fulfilled? • Are all performance requirements fulfilled for all relevant configurations? • Having an incomplete configuration, which features yield the best performance? • Oh this is interesting, can we have a thorough analysis? Introducing Performance Awareness in an Integrated Specification Environment 11 Immediate feedback raises performance awareness Questions
  • 17.
    Overview & Infrastructure Approach IntroducingPerformance Awareness in an Integrated Specification Environment 12
  • 18.
    Introducing Performance Awarenessin an Integrated Specification Environment 13 Modeling components JetBrains MPS and IETS3
  • 19.
    Introducing Performance Awarenessin an Integrated Specification Environment 13 Modeling components JetBrains MPS and IETS3
  • 20.
    Introducing Performance Awarenessin an Integrated Specification Environment 14 Modeling systems JetBrains MPS and IETS3
  • 21.
    Introducing Performance Awarenessin an Integrated Specification Environment 14 Modeling systems JetBrains MPS and IETS3
  • 22.
    Modeling resources andallocations JetBrains MPS and IETS3 Introducing Performance Awareness in an Integrated Specification Environment 15
  • 23.
    Modeling resources andallocations JetBrains MPS and IETS3 Introducing Performance Awareness in an Integrated Specification Environment 15
  • 24.
    Introducing Performance Awarenessin an Integrated Specification Environment 16 Use cases and requirements JetBrains MPS and IETS3
  • 25.
    Introducing Performance Awarenessin an Integrated Specification Environment 16 Use cases and requirements JetBrains MPS and IETS3
  • 26.
    Introducing Performance Awarenessin an Integrated Specification Environment 17 Open source: github.com/DECLARE-Project Projects
  • 27.
    Define Performance Analyses IntroducingPerformance Awareness in an Integrated Specification Environment 18 A framework for model-agnostic performance analysis fastpan PerformanceAnalyz er AnalysisContext PerformanceResult DECLARE- Project/fastpan
  • 28.
    Define Performance Analyses DefineVariability Analyses Introducing Performance Awareness in an Integrated Specification Environment 18 A framework for model-agnostic performance analysis fastpan PerformanceAnalyz er AnalysisContext PerformanceResult VariabilityAnalyzer VariabilityContext ? DECLARE- Project/fastpan
  • 29.
    Define Performance Analyses DefineVariability Analyses Performance result standard (semantics!) Introducing Performance Awareness in an Integrated Specification Environment 18 A framework for model-agnostic performance analysis fastpan PerformanceAnalyz er AnalysisContext PerformanceResult VariabilityAnalyzer VariabilityContext ? Attach.<NamedElement>to(action).utilization(Percentage.of(result.getUtilization())).mean(); Attach.<NamedElement>to(action).serviceTime(serviceTime).normalDistribution(serviceTimeVariance)) PerformanceMetric PerformanceMeasu re DECLARE- Project/fastpan
  • 30.
    palladio-environment • Use Palladiooutside Eclipse (i.e. headless) palladio-builder • Build PCM models with fluent Java API palladio-analysis • Supports LQN solver • Implements fastpan PerformanceAnalyzer Introducing Performance Awareness in an Integrated Specification Environment 19 Palladio outside Eclipse palladio-headless DECLARE-Project/palladio- headless
  • 31.
    Introducing Performance Awarenessin an Integrated Specification Environment 20 palladio-environment implementation palladio-headless Contributions are welcome!
  • 32.
    Introducing Performance Awarenessin an Integrated Specification Environment 20 palladio-environment implementation palladio-headless Contributions are welcome!
  • 33.
    Model-to-model transformation IETS3 =?= PCM IntroducingPerformance Awareness in an Integrated Specification Environment 21
  • 34.
    Mapping Processors M2M Transformation IntroducingPerformance Awareness in an Integrated Specification Environment 22
  • 35.
    Mapping Processors M2M Transformation IntroducingPerformance Awareness in an Integrated Specification Environment 22
  • 36.
    Introducing Performance Awarenessin an Integrated Specification Environment 23 Resources M2M Transformation
  • 37.
    Introducing Performance Awarenessin an Integrated Specification Environment 23 Resources M2M Transformation
  • 38.
    Live Demo Oh yeah! IntroducingPerformance Awareness in an Integrated Specification Environment 24
  • 39.
  • 40.
    Round-trip analysis time Evaluation IntroducingPerformance Awareness in an Integrated Specification Environment 26
  • 41.
    • Palladio canprovide real-time diagnostics • Variability analysis in IETS 3 • [Yes] What impact does this decision have on the performance? • [Yes] Are all performance requirements fulfilled? • [Yes] Are all performance requirements fulfilled for all relevant configurations? • [Not yet] Having an incomplete configuration, which features yield the best performance? Results & Conclusion Introducing Performance Awareness in an Integrated Specification Environment 27
  • 42.
    • Slide 1:https://commons.wikimedia.org/wiki/File:Fale_F1_Monza_2004_73.jpg • Slide 4: Becker, Steffen, Heiko Koziolek, and Ralf Reussner. "The Palladio component model for model-driven performance prediction." Journal of Systems and Software 82.1 (2009): 3-22. • Slide 5: Doors Screenshot: https://www.ibm.com/developerworks/mydeveloperworks/blogs/requirementsmanageme nt/resource/BLOGS_UPLOADED_IMAGES/seg2.jpg • Slide 5: ArchStudio Screenshot: http://y.web.umkc.edu/yzheng/img/archfeature/ArchFeature.PNG • Slide 5: EnterpriseArchitect Screenshot: http://assets.devx.com/articlefigs/Fig3_DetailedClassDiagrams.jpg • Slide 5: Palladio Bench Screenshot: http://sdq.ipd.kit.edu/uploads/media/palladio- bench_3.4_screenshot_01.jpg • Slide 5: IntelliJ IDEA Screenshot: https://www.jetbrains.com/idea/img/screenshots/idea_overview_5_1@2x.png Introducing Performance Awareness in an Integrated Specification Environment 28 Image References