Skip to main content

Advertisement

Log in

Investigating relationships between functional coupling and the energy efficiency of embedded software

  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

Software coupling involves dependencies among pieces of software called modules. Different types of coupling will dictate the manner whereby software modules interact and will result in different approaches to mutual function calls and return values, which can affect software quality attributes. Undoubtedly, coupling has been one of the most critical factors for supporting software modularity because it affects such important software quality attributes as reusability, readability, and maintainability. It is no surprise that coupling can affect energy efficiency. Recently, energy efficiency has increasingly been recognized as a critical software quality attribute, particularly for embedded software, including smartphone applications. Unfortunately, few studies have been conducted to date concerning coupling in developing energy-efficient and modular software, other than general studies on energy consumption and resource overutilization in the context of modularity. In this study, we aim to investigate the relationship between energy consumption and software coupling. In particular, we aim to determine whether it is possible to control energy consumption by applying different types of software coupling and, if so, how this might be done. We have performed a large number of experiments from which we have gained insight, although that insight might not be applicable to all possible types of coupling that are feasible, to help guide software engineers in developing energy-efficient embedded software. From the experimental results, we observe that overall “data” coupling reduces energy consumption when a large amount of data must be passed from one module to another, whereas “common” coupling is preferred when continuous memory references are needed, although energy consumption can also be somewhat dependent upon the operating environment. We describe such insights into the relationship between energy consumption and software coupling.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

References

  • Barnerjee, K. S. & Agu, E. (2005). PowerSpy: fine-grained software energy profiling for mobile devices. International Conference on Wireless Networks, Communications and Mobile Computing, 2, 1136–1141.

  • Bhattacharya, S., Nanda, M. G., Gopinath, K., Gupta, M. (2011). Reuse, Recycle to De-bloat Software, Proc. 25th European Conf. Object-Oriented Programming (ECOOP 11), LNCS 6813, Springer, pp. 408–432.

  • Cahtzigiannakis, I., Giannoulism, G., and Spriakis, P. G. (2008). Energy and Time Efficient Scheduling of Tasks with Dependencies on Asymmetric Multiprocessors, in Proceedings of the 27th ACM symposium on Principles of distributed computing.

  • Capra, E., Francalanci, C., & Slaughter, S. A. (2002). Is Software “green”? Application development environment and energy efficiency in open source applications. Information and Software Technology, 54, 60–71.

    Article  Google Scholar 

  • Chatzigeorgiou, A. (2003). Performance and power evaluation of C++ object-oriented programming in embedded processors. Information and Software Technology, 45, 195–201.

    Article  Google Scholar 

  • Cho, S., Yew, P., and Lee, G. (1999). Decoupling local variable accesses in a wide-issue superscalar processor, Proceedings of the 26th International Symposium on Computer Architecture, pp. 100–110.

  • Cong, J. and Gururaj, K. (2009). Energy Efficient Multiprocessor Task Scheduling under Input-dependent Variation, in Proceedings of the Design, Automation and Test in Europe Conference and Exhibition, pp. 411–416.

  • Evert, C. and Jones, C. (2009). Embedded Software: Facts, Figures, and Future, IEEE Computer, Vol. 42, Issue. 4, pp. 42–52, 2009.

  • Goraczko, M., Liu, J., Lymberopoulos, D., and et al. (2008). Energy-Optimal Software Partitioning in Heterogeneous Multiprocessor Embedded Systems, in proc. of DAC 2001, pp. 191–196.

  • Grubb, F. E. (1969). Procedures for detecting outlying observations in samples. Technometrics, 11(1), 1–21.

    Article  Google Scholar 

  • Hamblen, J., & Bekkum, G. (2013). An embedded systems laboratory to support rapid prototyping of robotics and the internet of things. IEEE Trans. on Education, 56(1), 121–128.

    Article  Google Scholar 

  • Herczeg, Z., Schmidt, D., et al. (2009). Energy simulation of embedded XScale systems with XEEMU. Journal of Embedded Computing, 3(3), 209–219. doi:10.3233/JEC-2009-0093.

    Google Scholar 

  • Katja, H., Eun, S. S., and Olivier, D. W. (2005). Tradeoff between modularity and performance for engineered systems and products, Proceedings of Int’l Conf. on Engineering Design.

    Google Scholar 

  • Kevein, J., Sullivan, W. G., Cai, Y., and Ben, H. (2001). The structure and value of modularity in software design, Proceedings of Int’l Symp. on Foundation of Software Engineering, pp. 99–108.

  • Kim, D. H., & Hong, J. E. (2015). ESUML-EAF: a framework to develop an energy-efficient design model for embedded software. Software & Syatem Modeling, 14(2), 795–812.

    Article  Google Scholar 

  • Liguo, Y., & Srini, R. (2011). Examining the relationships between software coupling and software performance: a cross-platform experiment. Journal of Computing and Information Technology, 19, 1–10.

    Article  Google Scholar 

  • Myers, G. (1974). Reliable software through composite design. New York: Mason and Lipscomb Publishers.

    Google Scholar 

  • Naik, K., & Wei, D. S. L. (2001). Software implementation strategies for power-conscious systems. Mobile Networks and Applications, 6(3), 291–305.

    Article  MATH  Google Scholar 

  • Okuma, T., Yasuura, H., & Ishihara, T. (2001). Software energy reduction techniques for variable-voltage processors. IEEE Design & Test of Computers, 18(2), 31–41.

    Article  Google Scholar 

  • Planet Source Code. (2014). http://www.planet-source-code.com/.

  • Russell, J. T. and Jacome, M. F. (1998). Software power estimation and optimization for high performance, 32-bit embedded processors, Proc., Internationals Conference on Computer Design: VLSI in Computers and Processors, pp. 328–333.

  • Singh, V., & Bhattacherjee, V. (2013). Identifying coupling metrics and impact on software quality. International Journal of Engineering and Technology (IJET), 5(4), 3433–3438.

    Google Scholar 

  • Sinha, A. and Chandrakasan, A. P. (2001). JouleTrack: a web based tool for software energy profiling, Proc. of the 38th annual Design Automation Conference (DAC’01), pp. 220–225.

  • Sinha, A., Ickes, N., & Chandrakasan, A. P. (2003). Instruction level and operating system profiling for energy exposed software. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 11(6), 1044–1057.

    Article  Google Scholar 

  • Standard Test Images. (2003). http://www.ece.rice.edu/~wakin/images/.

  • Stevens, W., Myers, G., & Constantine, L. (1974). Structured design. IBM Systems Journal, 13(2), 115–139.

    Article  Google Scholar 

  • Stitt, G., Grattan, B., Villarreal, J., and Vahid, F. (2002). Using on-chip configurable logic to reduce embedded system software energy, Proc., 10th Annual IEEE Conference on Field-Programmable Custom Computing Machines, pp. 143–151.

  • Suparna, B., Gopinath, K., Rajamani, K., & Gupta, M. (2011). Software bloat and wasted joules: is modularity a hurdle to green software? IEEE Computer, 44(9), 97–101.

    Article  Google Scholar 

  • Tan, T. K. and Jha, N. K. (2003). Software Architectural Transformation: A New Approach to Low Energy Embedded Software”, in Proceedings of the Design, Automation and Test in Europe Conference and Exhibition, pp. 1046–1051.

  • Tan, T. K., Raghunathan, A., and Jha, N. K. (2002). EMSIM: An Energy Simulation Framework for an Embedded Operating System, in Proc. ISCAS 2002.

  • TIOBE software. (2014). TIOBE index for November 2014, http://www.tiobe.com.

  • Wong, S., Kim, M., and Dalton, M. (2011). Detecting software modularity violations. Proceedings of Int’l conf. on Software Engineering, pp. 411–420.

  • Yau, S.S. (2004). Embedded Software in Real-time Pervasive Computing Environments, in Proceedings of the 28th Annual International Computer Software and Applications Conference, pp. 406–407.

  • Yourdon, E., and Constantine, L. (1979). Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design, Yourdon Press. ISBN 0–13-8544719.

  • Zhu, Y. (2011). Modeling energy-aware embedded software using process algebra. Communications in Computer and Information Science, 152, 389–394.

    Article  Google Scholar 

Download references

Acknowledgment

This research was supported by the NRF funded by the MOE, Korea (NRF-2014R1A1A4A01005566). The authors also sincerely thank Tom Hill, Grace E. Park, and Haan M. Johng, who are the research members of Requirement Engineering Lab., UT Dallas, for their generous help in finishing this paper.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jang-Eui Hong.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Kim, D., Hong, JE. & Chung, L. Investigating relationships between functional coupling and the energy efficiency of embedded software. Software Qual J 26, 491–519 (2018). https://doi.org/10.1007/s11219-016-9346-2

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11219-016-9346-2

Keywords

Navigation