Continuous Integration of Performance Model

Applying model-based performance prediction requires that an up-to-date Performance Model (PM) is available throughout the development process. Creating such a model manually is an expensive process that is unsuitable for agile software development aiming to produce rapid releases in short cycles. Existing approaches automate the extraction of a PM based on reverse engineering and/or measurements techniques. However, these approaches require to monitor and analyse the whole application. Thus, they are too costly to be applied frequently, up to after each code change. Moreover, keeping potential manual changes of the PM is another challenge as long the PM is regenerated from scratch every time. To address these problems, this paper envisions an approach for efficient continuous integration of a parametrised performance model in an agile development process. Our work will combine static code analysis with adaptive, automatic, dynamic analysis covering updated parts of code to update the PM with parameters, like resource demands and branching probabilities. The benefit of our approach will be to automatically keep the PM up-to-date throughout the development process which enables the proactive identification of upcoming performance problems and provides a foundation for evaluating design alternatives at low costs.

[1]  Wilhelm Hasselbring,et al.  Kieker: a framework for application performance monitoring and dynamic software analysis , 2012, ICPE '12.

[2]  Samuel Kounev,et al.  LibReDE: a library for resource demand estimation , 2014, ICPE.

[3]  Max E. Kramer,et al.  Modeling and Simulating Software Architectures: The Palladio Approach , 2016 .

[4]  Steffen Becker,et al.  The Palladio component model for model-driven performance prediction , 2009, J. Syst. Softw..

[5]  Samuel Kounev,et al.  Evaluating approaches to resource demand estimation , 2015, Perform. Evaluation.

[6]  Michael Langhammer Automated Coevolution of Source Code and Software Architecture Models , 2017 .

[7]  Uwe Fink,et al.  Performance Solutions A Practical Guide To Creating Responsive Scalable Software , 2016 .

[8]  Samuel Kounev,et al.  Providing Model-Extraction-as-a-Service for Architectural Performance Models , 2017, Softwaretechnik-Trends.

[9]  Robert Heinrich,et al.  CASPA: A Platform for Comparability of Architecture-Based Software Performance Engineering Approaches , 2017, 2017 IEEE International Conference on Software Architecture Workshops (ICSAW).

[10]  Ralf H. Reussner,et al.  Using Genetic Search for Reverse Engineering of Parametric Behavior Models for Performance Prediction , 2010, IEEE Transactions on Software Engineering.

[11]  Max E. Kramer,et al.  View-centric engineering with synchronized heterogeneous models , 2013 .

[12]  Gregor Kiczales Aspect-oriented programming , 2005, ICSE.

[13]  Wilhelm Hasselbring,et al.  Performance-oriented DevOps: A Research Agenda , 2015, ArXiv.

[14]  Steffen Becker,et al.  The palladio component model , 2010, WOSP/SIPEW '10.

[15]  Robert Heinrich,et al.  Model-driven Instrumentation with Kieker and Palladio to Forecast Dynamic Applications , 2013, KPDAYS.

[16]  Samuel Kounev,et al.  A Reference Architecture for Online Performance Model Extraction in Virtualized Environments , 2016, ICPE Companion.

[17]  Klaus Pohl,et al.  iObserve 2: Integrated Observation and Modeling Techniques to Support Adaptation and Evolution of Software Systems , 2012 .

[18]  Erik Burger,et al.  Flexible views for view-based model-driven development , 2013, WCOP '13.

[19]  Nenad Medvidovic,et al.  Automated Extraction of Rich Software Models from Limited System Information , 2016, 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA).

[20]  Virgílio A. F. Almeida,et al.  Performance by Design - Computer Capacity Planning By Example , 2004 .

[21]  Klaus Krogmann,et al.  Reconstruction of software component architectures and behaviour models using static and dynamic analysis , 2012 .

[22]  Klaus Krogmann,et al.  A Co-evolution Approach for Source Code and Component-based Architecture Models , 2015, Softwaretechnik-Trends.

[23]  Jez Humble,et al.  Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation , 2010 .

[24]  Samuel Kounev,et al.  Automated extraction of palladio component models from running enterprise Java applications , 2009, VALUETOOLS.

[25]  Samuel Kounev,et al.  An Expandable Extraction Framework for Architectural Performance Models , 2017, ICPE Companion.

[26]  Helmut Krcmar,et al.  Comparing the Accuracy of Resource Demand Measurement and Estimation Techniques , 2015, EPEW.