Abstract
Energy efficiency and -awareness are of growing importance in the field of information and communication technology. On the one hand, computing center aim for reducing their energy consumption in order to save money and improve their carbon footprint. On the other hand, mobile devices that are typically battery powered, have to be aware of their energy consumption in order to prolong their up-time while at the same time keeping a specific level of quality-of-service. Research has shown that especially software, running on a (mobile) device has a large impact onto the energy consumption of that device. Software developers should be aware of a software systems’ energy related cost and about means for optimizing them. Best practices, community-believed guidelines for improving the quality (e.g., performance, energy efficiency, usability, etc.) of software, are one way to do so. This paper evaluates the effects of selected guidelines by a small experiment series and within a larger, commercial product. Results show that by systematically applying selected programming guidelines, energy consumption can be reduced by 9 % and performance by 1 % in average.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Apple: Performance tips. (2014). http://developer.apple.com/-PerformanceTips.html.
Bandi, R., Vaishavi, V., & Turk, D. (2003). Predicting maintenance performance using object-oriented design complexity metrics. IEEE TSE, 29(1), 77–87.
Briand, L., Bunse, C., & Daly, J. (2001). A controlled experiment for evaluating quality guidelines on the maintainability of oo-designs. IEEE TSE, 27(6).
Bunse, C. (2014). On the impact of user feedback on energy consumption. In 28th International Conference on Informatics for Environmental Protection, Oldenburg, Germany.
Bunse, C., & Stiemer, S. (2013). On the energy consumption of design patterns. Softwaretechnik-Trends, 33(2).
Feeney, L. (2001). An energy consumption model for performance analysis of routing protocols for mobile ad hoc networks. Mobile Networks and Applications, 6(3).
Google: Performance tips. (2014). http://developer.android.com/perf-tips.html.
Gottschalk, M., Josefiok, M., Jelschen, J., & Winter, A. (2012). Removing energy code smells with reengineering services. In 42. GI Jahrestagung, Braunschweig, Germany.
Hnatkowska, B., & Jaszczak, A. (2014). Impact of selected java idioms on source code maintainability – empirical study. In Ninth International Conference on Dependability and Complex Systems, Brunów, Poland.
Hönig, T., Eibel, C., Schröder-Preikschat, W., Cassens, B., & Kapitza, R. (2013). Proactive energy-aware software design with SEEP. Softwaretechnik-Trends, 33(2).
Höpfner, H., & Bunse, C. (2011). Energy awareness needs a rethinking in software development. In 6th International Conference on Software and Data Technologies, Seville, Spain.
Höpfner, H., & Schirmer, M. (2012). Software-based energy requirement measurement for smartphones. In 42nd GI Jahrestagung.
Höpfner, H., Schirmer, M., & Bunse, C. (2012). On measuring smartphones’ software energy requirements. In 7th International Conference on Software Paradigm Trends, Rome.
Johann, T., Dick, M., Naumann, S., & Kern, E. (2012). How to measure energy-efficiency of software: Metrics and measurement results. In First International Workshop on Green and Sustainable Software, Zurich, Switzerland.
Khan, M., Hankendi, C., Coskun, A., & Herbordt, M. (2011). Software optimization for performance, energy, and thermal distribution: Initial case studies. In International Green Computing Conference and Workshops, Orlando, USA.
Michigan, U. (2014). A power monitor for android based mobile platforms. http://ziyang.eecs.umich.edu/projects/powertutor/index.html.
Microsoft: Performance guidelines. (2014). https://technet.microsoft.com/cc835002.
Nigg, B., MacIntosh, B., & Mester, J. (2000). Biomechanics and biology of movement. Human Kinetics.
Noureddine, A., & Rajan, A. (2015). Optimising energy consumption of design patterns. In International Conference on Software Engineering, Florence, Italy.
PalominoLabs. Powergremlin. (2014). https://www.openhub.net/p/powergremlin.
Seo, C., Malek, S., & Medvidovic, N. (2008). Component-level energy consumption estimation for distributed java-based software systems. In Component-Based Software Engineering, 11th International Symposium, Karlsruhe, Germany.
Sneed, H. (1987). Software management. Müller GmbH.
Van Hoorn, A., Waller, J., & Hasselbring, W. (2012). Kieker: A framework for application performance monitoring and dynamic software analysis. In 3rd International Conference on Performance Engineering.
Wilke, C., Richly, S., Götz, S., & Assmann, U. (2013). Energy profiling as a service. In 43rd GI Jahrestagung 2013, Koblenz, Germany.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing Switzerland
About this paper
Cite this paper
Bunse, C., Rohdé, A. (2017). Software Development Guidelines for Performance and Energy: Initial Case Studies. In: Wohlgemuth, V., Fuchs-Kittowski, F., Wittmann, J. (eds) Advances and New Trends in Environmental Informatics. Progress in IS. Springer, Cham. https://doi.org/10.1007/978-3-319-44711-7_3
Download citation
DOI: https://doi.org/10.1007/978-3-319-44711-7_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-44710-0
Online ISBN: 978-3-319-44711-7
eBook Packages: Business and ManagementBusiness and Management (R0)