POMPEO 26th edition of the IEEE International Conference on Software Analysis, Evolution and Reengineering Zhejiang University in Hangzhou, February 24-27, 2019 Journal First Presentation SEA Quality Group, DISIM, University of L’Aquila {davide.arcelli, vittorio.cortellessa, daniele.dipompeo}@univaq.it HTTPS://TINYURL.COM/Y8WVHWHO
Evolution and Reengineering PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. SOFTWARE ENGINEERING AND ARCHITECTURE QUALITY GROUP 2 Vittorio Cortellessa Davide Arcelli Daniele Di Pompeo ICT and Math Dept (DISIM) University of L’Aquila https://git.io/fhocV [email protected][email protected][email protected] TAKE A LOOK AT OUR PROJECTS
Evolution and Reengineering 3 PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. SOFTWARE PERFORMANCE ENGINEERING FLOW 1 - Design 2 - M2M Transformation 3 - Performance Indices 4 - Check Requirement 5 - Feedback to users Application Designer S M2M Perf Model 0.89 0.45 0.34 1.34 4 4.7 0.89 0.45 0.46 1.34 4 4.7 Perf Indices NO A B D C Actor UC1 UC2 N1 N3 N2 Perf-oriented Design Model A B D C Actor UC1 UC2 N1 N3 N2 Filled Perf-oriented Design Model Filler x Performance Expert EWL EVL EPL PORTING ENGINE OR YES ? A B D C Actor UC1 UC2 N1 N3 N2 Refactored Perf-oriented Design Model Solver DESIGN PERFORMANCE Perforiented Model Integration A B D C Actor UC1 UC2 N1 N3 N2 ` Design Model 1 2 4 3 5
Evolution and Reengineering DESIGN PHASE 1 B A C A - Deployment View ( Node / Device ) B - Static View ( Component ) C - Dynamic View ( Lifeline & Messages ) 4 PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D.
Evolution and Reengineering 2 M2M TRANSFORMATION 5 QUEUEING NETWORK MODEL PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. NODES MAPPED TO SERVICE CENTERS SCENARIOS MAPPED TO JOB CLASSES
Evolution and Reengineering 3 6 QUEUEING NETWORK MODEL PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. GATHERING INDICES UTILIZATION = 0.399 NODES MAPPED TO SERVICE CENTERS SCENARIOS MAPPED TO JOB CLASSES
Evolution and Reengineering 4 7 QUEUEING NETWORK MODEL NODES MAPPED TO SERVICE CENTERS SCENARIOS MAPPED TO JOB CLASSES PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. UTILIZATION = 0.399 Is PRutil met? CHECKING PERF REQ
Evolution and Reengineering Application Designer S M2M Perf Model 0.89 0.45 0.34 1.34 4 4.7 0.89 0.45 0.46 1.34 4 4.7 Perf Indices NO A B D C Actor UC1 UC2 N1 N3 N2 Perf-oriented Design Model A B D C Actor UC1 UC2 N1 N3 N2 Filled Perf-oriented Design Model Filler x Performance Expert EWL EVL EPL PORTING ENGINE OR YES ? A B D C Actor UC1 UC2 N1 N3 N2 Refactored Perf-oriented Design Model Solver DESIGN PERFORMANCE Perforiented Model Integration A B D C Actor UC1 UC2 N1 N3 N2 ` Design Model 8 2 4 5 PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. SOFTWARE PERFORMANCE ENGINEERING FLOW 1 - Design 2 - M2M Transformation 3 - Performance Indices 4 - Check Requirement 5 - PADRE 3 1
Evolution and Reengineering A PERFORMANCE ANTIPATTERN PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. 9 9OpI 2 O, S 2 S, i 2 N | FresDemand(Op)[i] ThresDemand[i] ^ FprobExec(S, OpI) = 1 ^ (FmaxHwUtil(Pc, all) ThmaxHwUtil _ FT (S) < ThSthReq) <latexit sha1_base64="(null)">(null)</latexit> <latexit sha1_base64="(null)">(null)</latexit> <latexit sha1_base64="(null)">(null)</latexit> <latexit sha1_base64="(null)">(null)</latexit> BAD DESIGN PRACTICES THAT INDUCE PERFORMANCE DEGRADATION FIRST-ORDER LOGIC REPRESENTATION
Evolution and Reengineering 10 EPSILON SUITE LANGUAGE PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. 8 DIFFERENT LANGUAGES HTTPS://WWW.ECLIPSE.ORG/EPSILON/ INTEGRATED DEVELOPMENT TOOLS STRONG SUPPORT FOR EMF 7 DIFFERENT TOOLS Epsilon Validation Language (EVL) A model validation language that supports both intra and inter-model consistency checking, and provides out-of-the- box integration with EMF & GMF editors. Epsilon Wizard Language (EWL) A language tailored for interactive in-place transformations on model elements selected by the user. EWL provides out-of-the-box integration with EMF & GMF editors. Epsilon Pattern Language (EPL) EPL provides facilities for performing pattern matching on a model and produces a match model that can be used with the other Epsilon languages in order to query, evaluate, transform the found matches.
Evolution and Reengineering 5 PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING FRAMEWORK x EWL EVL EPL PORTING ENGINE OR Performance Expert PERFORMANCE ANTIPATTERN BASED REFACTORING TOOL 10 DIFFERENT REFACTORING ACTIONS 7 DIFFERENT PERFORMANCE ANTIPATTERNS + A PORTING ENGINE 11 PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. 3 DIFFERENT REFACTORING ENGINES BATCH ( EPL ) SINGLE ( EWL ) MULTIPLE ( EVL ) BATCH - EPL useful for nightly and long Perf AP detection and refactoring session SINGLE - EWL useful with expert users and for applying actions directly on the model MULTIPLE - EVL useful when users want apply a sequence of refactoring action before analysing the model
Evolution and Reengineering CODIFIED DETECTION RULE & REFACTORING ACTION Target Metaclass & Performance antipattern name Detection rule Refactoring action block Message to the user The refactoring action UML::Operation PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. 12
Evolution and Reengineering PORTING RULES AMONG EPSILON LANGUAGES PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. 13 EVL EWL EPL
Evolution and Reengineering PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. FROM UML NODES TO SERVICE CENTERS AND DELAY NODES 14 CASE STUDY
Evolution and Reengineering PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. FROM UML SCENARIOS TO JOB CLASSES 15 CASE STUDY
Evolution and Reengineering PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. 16 Refactoring actions executed on the source BGCS PRAccessGreenhouse = 30 sec PRChangeSettings = 40 sec CASE STUDY
Evolution and Reengineering PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. 17 Are not promising paths CASE STUDY PRAG = 30 sec PRCS = 40 sec
Evolution and Reengineering CASE STUDY PERFORMANCE-DRIVEN SOFTWARE MODEL REFACTORING - ARCELLI D., CORTELLESSA V., DI POMPEO D. 18 Moves a component to a new Node PRAG = 30 sec PRCS = 40 sec PRAG and PRCS are not met, but the trend is going to the right direction