Title: Reverse Engineering Performance Models for ComponentBased Software Systems
1Reverse EngineeringPerformance Models for
Component-BasedSoftware Systems
- 2008-04-22
- SOSoRNet Workshop
Klaus Krogmann (krogmann_at_ipd.uka.de)
2Motivation
3Performance Prediction
?
How to get such models?
- Performance modelof a component-basedsoftware
architecture
- Performance data
- Execution time
- Throughput
- Resource utilisation
4Why Creating Models? (1)
Sizing / Scalability / Relocation
vs.
Changes in usage profile
vs.
Extensions of legacy software systems
Performance predictions at design time
5Why Creating Models? (2)
Analytical solvable Performance jumps
Critical contention levels
Simulation Faster than real execution
6Approach
7Reverse Engineering Component Behaviour
I
(Java)Source Code
8Example File Share
BusinessLogic
compressed true
compressed false
Callcompress cfile.length fileInput.length
CallcheckFile if(compressed) file.length
fileInput.lengthelse file.length
compress.out.length
checkFile.out true
checkFile.out false
InternalStoreFile HDD file.length 2
25CPU file.length 5.34
Legend Control flow Dataflow Resource
consumption
9Process for II
10Genetic Algorithm
- Learns on monitoring data from running
application - Data argument (call / return) properties
(primitive types, length of collection types, ) - Calling frequencies
- Pre-configured by static analysis results
- Gene selection (e.g. constants, if-then-else)
- Initial chromosomes
- Usually (non-stochastic) functional dependency
exists
11Machine Learning
- Not limited to one approach
- Genetic Algorithms (GA)
- Support Vector Machines (SVM)
- Hill-Climbing / simulated annealing
- Regression (Splines / linear)
- Stochastic approximation
- Greedy optimization
12Conclusion
13Conclusion
- Combination of static and dynamic source code
analysis for reverse engineering - Machine learning applied to reverse engineer a
parameterised behavioural specification of
component services - Focus of target model
- Performance prediction
- Component-based software architectures
14BACKUP
15What is to be learned?
- Loops
- Break conditions
- Loop number
- Branches
- Branching conditions
- Probabilities
- Call of component-external services
- Frequency / probability
- Conditions
- Call parameters (x, y)
- Return value of provided service (long)
- Based on (input dimensions)
- Service input parameters (of described service)
(a, b) - Return parameters (of component-external calls)
(float)