Developing a Software Engineer's Energy-Optimization Decision

Developing a Software Engineer's Energy-Optimization Decision

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

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    165 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us