
DEVELOPING A SOFTWARE ENGINEER'S ENERGY-OPTIMIZATION DECISION SUPPORT FRAMEWORK by Irene Manotas Guti´errez A dissertation submitted to the Faculty of the University of Delaware in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Computer Science Fall 2017 c 2017 Irene Manotas Guti´errez All Rights Reserved DEVELOPING A SOFTWARE ENGINEER'S ENERGY-OPTIMIZATION DECISION SUPPORT FRAMEWORK by Irene Manotas Guti´errez Approved: Kathleen F. McCoy, Ph.D. Chair of the Department of Computer and Information Sciences Approved: Babatunde A. Ogunnaike, Ph.D. Dean of the College of Engineering Approved: Ann L. Ardis, Ph.D. Senior Vice Provost for Graduate and Professional Education I certify that I have read this dissertation and that in my opinion it meets the academic and professional standard required by the University as a dissertation for the degree of Doctor of Philosophy. Signed: Lori Pollock, Ph.D. Professor in charge of dissertation I certify that I have read this dissertation and that in my opinion it meets the academic and professional standard required by the University as a dissertation for the degree of Doctor of Philosophy. Signed: James Clause, Ph.D. Member of dissertation committee I certify that I have read this dissertation and that in my opinion it meets the academic and professional standard required by the University as a dissertation for the degree of Doctor of Philosophy. Signed: Benjamin A. Carterette, Ph.D. Member of dissertation committee I certify that I have read this dissertation and that in my opinion it meets the academic and professional standard required by the University as a dissertation for the degree of Doctor of Philosophy. Signed: William G.J. Halfond, Ph.D. Member of dissertation committee TABLE OF CONTENTS LIST OF TABLES :::::::::::::::::::::::::::::::: viii LIST OF FIGURES ::::::::::::::::::::::::::::::: ix ABSTRACT ::::::::::::::::::::::::::::::::::: xi Chapter 1 INTRODUCTION :::::::::::::::::::::::::::::: 1 2 BACKGROUND AND STATE OF THE ART :::::::::::: 5 2.1 Measuring Energy Consumption ::::::::::::::::::::: 6 2.2 Strategies for Systems Energy Efficiency :::::::::::::::: 7 2.2.1 Hardware Approaches :::::::::::::::::::::: 7 2.2.2 Compiler Approaches ::::::::::::::::::::::: 8 2.2.3 Operating System Approaches :::::::::::::::::: 8 2.3 Software Engineering and Energy Efficiency :::::::::::::: 8 2.3.1 Exploring Impacts of Software Engineering Decisions ::::: 9 2.3.2 Analyzing, Detecting, and Improving the Energy Usage of Software :::::::::::::::::::::::::::::: 11 3 UNDERSTANDING SOFTWARE DEVELOPERS' CHALLENGES AND NEEDS THROUGH STUDIES ::::::: 14 3.1 A Case Study: Impacts of Web Servers on Web Applications Energy Usage ::::::::::::::::::::::::::::::::::: 14 3.1.1 Methodology ::::::::::::::::::::::::::: 15 3.1.1.1 Experimental Variables :::::::::::::::: 15 3.1.1.2 Controlling for Changes in the Web Application's Code 15 iv 3.1.1.3 Controlling for Inconsistencies in Driving the Web Application ::::::::::::::::::::::: 17 3.1.1.4 Controlling the Web Browser ::::::::::::: 18 3.1.1.5 Considered Subjects :::::::::::::::::: 19 3.1.1.6 Data Collection ::::::::::::::::::::: 22 3.1.2 Threats to Validity :::::::::::::::::::::::: 23 3.1.3 Evaluation ::::::::::::::::::::::::::::: 24 3.1.4 Summary of Results ::::::::::::::::::::::: 29 3.1.5 Implications :::::::::::::::::::::::::::: 30 3.2 Investigating Practitioners' Perspectives on Green Software Engineering 30 3.2.1 Methodology ::::::::::::::::::::::::::: 31 3.2.1.1 Interviews :::::::::::::::::::::::: 32 3.2.1.2 Survey :::::::::::::::::::::::::: 34 3.2.1.3 Threats to Validity ::::::::::::::::::: 36 3.2.2 Findings :::::::::::::::::::::::::::::: 37 3.2.2.1 Where is Energy Usage a Concern? :::::::::: 38 3.2.2.2 Perspectives on Requirements ::::::::::::: 41 3.2.2.3 Perspectives on Design ::::::::::::::::: 44 3.2.2.4 Perspectives on Construction ::::::::::::: 47 3.2.2.5 Perspectives on Finding and Fixing Issues :::::: 49 3.2.2.6 Perspectives on Maintenance ::::::::::::: 51 3.2.3 Implications :::::::::::::::::::::::::::: 52 3.2.3.1 Implications for Requirements ::::::::::::: 52 3.2.3.2 Implications for Design ::::::::::::::::: 53 3.2.3.3 Implications for Construction ::::::::::::: 54 3.2.3.4 Implications for Finding and Fixing Issues :::::: 55 3.2.3.5 Implications for Maintenance ::::::::::::: 56 3.2.4 Related Work ::::::::::::::::::::::::::: 56 3.2.5 Summary ::::::::::::::::::::::::::::: 57 4 THE SOFTWARE ENGINEER'S ENERGY DECISION v SUPPORT FRAMEWORK (SEEDS) :::::::::::::::::: 59 4.1 Overview of SEEDS :::::::::::::::::::::::::::: 59 4.1.1 Example Usage Scenario ::::::::::::::::::::: 60 4.1.2 SEEDS Components ::::::::::::::::::::::: 63 4.1.2.1 SEEDS Inputs ::::::::::::::::::::: 63 4.1.2.2 SEEDS Outputs :::::::::::::::::::: 66 4.1.2.3 Application-Specific Search Space in SEEDS ::::: 67 4.1.2.4 SEEDS Search ::::::::::::::::::::: 69 4.1.2.4.1 Exhaustive Approaches :::::::::: 71 4.1.2.4.2 Metaheuristic-based Search :::::::: 72 4.2 Instantiating SEEDS for Software Engineers' Decisions :::::::: 74 4.2.1 Support for the Selection of Energy Efficient Design Patterns : 74 4.2.2 Support for the Selection of Energy Efficient Refactorings for Mobile Applications ::::::::::::::::::::::: 76 4.2.3 Support for the Selection of Energy Efficient Library Implementations ::::::::::::::::::::::::: 78 4.3 Case Study: SEEDSapi Instantiation and Implementation :::::: 79 4.3.1 Observational Study of Collections API Impact on Energy :: 79 4.3.2 SEEDSapi Components :::::::::::::::::::::: 81 4.3.2.1 SEEDSapi Inputs :::::::::::::::::::: 82 4.3.2.2 SEEDSapi Outputs ::::::::::::::::::: 84 4.3.2.3 SEEDSapi Application-specific Search Space ::::: 85 4.3.2.4 SEEDSapi Search :::::::::::::::::::: 86 4.3.2.4.1 Limited Exhaustive Search :::::::: 86 4.3.2.4.2 Metaheuristic-based Search :::::::: 87 4.3.2.5 SEEDSapi Transform and Profile ::::::::::: 89 4.4 Empirical Evaluation ::::::::::::::::::::::::::: 92 4.4.1 Experimental Subjects :::::::::::::::::::::: 92 4.4.2 RQ1: Effectiveness :::::::::::::::::::::::: 94 4.4.3 RQ2: Exploration Capability :::::::::::::::::: 96 vi 4.4.4 RQ3: Cost Using the Limited Exhaustive Search :::::::: 100 4.4.5 RQ4: Search Space Reduction :::::::::::::::::: 101 4.4.6 RQ5: Metaheuristic-based Search Strategy ::::::::::: 106 4.4.7 RQ6: Proxy Measure ::::::::::::::::::::::: 115 4.4.8 Threats to Validity :::::::::::::::::::::::: 116 4.5 Related Work ::::::::::::::::::::::::::::::: 117 4.6 Summary ::::::::::::::::::::::::::::::::: 119 5 CONCLUSIONS AND FUTURE WORK ::::::::::::::: 120 5.1 Future Work :::::::::::::::::::::::::::::::: 121 5.1.1 Extensions ::::::::::::::::::::::::::::: 121 5.1.2 New Directions :::::::::::::::::::::::::: 122 Appendix INTERVIEW AND SURVEY QUESTIONS :::::::::::::: 145 A.1 Interview Questions :::::::::::::::::::::::::::: 145 A.2 Developer Energy Survey ::::::::::::::::::::::::: 149 vii LIST OF TABLES 3.1 Metrics for Tracks ::::::::::::::::::::::::::: 20 3.2 Integration test cases :::::::::::::::::::::::::: 20 3.3 Server Configuration Parameters ::::::::::::::::::: 23 3.4 Energy consumption of Tracks when using each web server. ::::: 25 3.5 Percentage change of energy consumption from the mean. ::::: 27 4.1 Potential Improvement or Degradation in Energy Usage from Switching Collection Implementations. :::::::::::::::: 80 4.2 Subject Applications. :::::::::::::::::::::::::: 93 4.3 the SEEDS API Implementation Selector (SEEDSapi) Effectiveness in Improving Energy Usage With Limited Exhaustive Search Strategy. 95 4.4 Cost to Automatically Improve an Application Using the Limited Exhaustive Search. ::::::::::::::::::::::::::: 99 4.5 SEEDSapi effectiveness comparison using the LEAP and RAPL energy profiling systems. :::::::::::::::::::::::: 107 4.6 Comparison between Limited Exhaustive Search and Metaheuristic-based search strategies (gGa, NSGA-II) :::::::: 110 4.7 Costs for Limited Exhaustive Search and Metaheuristic-based search strategies (gGa, NSGA-II) ::::::::::::::::::::::: 112 4.8 Correlation between Energy Usage and Execution Time for Subject Applications ::::::::::::::::::::::::::::::: 115 viii LIST OF FIGURES 3.1 Example of a Rack application. :::::::::::::::::::: 17 3.2 Example of a Cucumber integration test. ::::::::::::::: 19 3.3 Energy usage per test and per web server for the Calendar, Context edit, and Search integration tests. ::::::::::::::::::: 28 3.4 The applied research methodology. :::::::::::::::::: 31 3.5 Responses to Statement S1 from all respondents and respondents who indicated that they are experienced in each domain. ::::::::: 38 3.6 Requirements-related statement and responses from experienced practitioners. :::::::::::::::::::::::::::::: 43 3.7 Design-related statements and responses from experienced practitioners. :::::::::::::::::::::::::::::: 43 3.8 Construction-related statements and responses from experienced practitioners. :::::::::::::::::::::::::::::: 46 3.9 Finding and fixing issues-related statements and responses from experienced practitioners. ::::::::::::::::::::::: 48 3.10 Maintenance-related statements and responses from experienced practitioners. :::::::::::::::::::::::::::::: 52 4.1 Place where a Set Implementation is instantiated and can be switched with another Set implementations. :::::::::::::::::: 61 4.2 Overview of the Software Engineer's Energy-optimization Decision Support framework (SEEDS). :::::::::::::::::::: 62 4.3 SEEDS Framework Class Diagram. :::::::::::::::::: 66 ix 4.4 Application versions belonging to the application-specific search space. :::::::::::::::::::::::::::::::::: 68
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages165 Page
-
File Size-