University of Twente Student Theses

Login

The Modularity of the Resource Utilization Model in Python

Windhouwer, Dennis (2014) The Modularity of the Resource Utilization Model in Python.

[img] PDF
1MB
Abstract:One proposed method for achieving greener software is the resource utilization model (RUM). To reduce the impact on the complexity of the software, the RUM method aims to modularize the energy optimizers from the rest of the software, separating the functional concerns from the optimization concerns. An implementation of the RUM style had not yet been realized. The goal of this study is to investigate how modular a program is when it is implemented in this style, and what the impact of modularizing the energy optimizers from the rest of the software is. Several languages had already been investigated in order to identify suitable programming mechanisms for the RUM style. Python was found to offer suitable mechanisms. In order to investigate the modularity of a program implemented in the RUM style, first suitable metrics were selected for measuring the modularity of a program. Then an object oriented program was implemented using design patterns. Next, to allow for a functionally similar program to be implemented in the RUM style, a development environment for the RUM style was implemented in Python. Finally these two functionally similar programs were compared on their modularity. The results showed a decreased coupling for functional components, in the RUM style they were no longer coupled to optimizers. At the same time the optimizers showed an increase in coupling, as they are now both coupled to the components which they optimize, and to the RUMs of those components. The separation of the functional concerns from the optimization concerns also allowed for the interjection of optimizers between any two functional components, without coupling those components to the optimizer. Thus the results show that a program in the RUM style in Python is at least as modular as a comparable Object Oriented program, and that the RUM style allows for the interjection of optimizers without coupling functional components to the optimizers.
Item Type:Essay (Master)
Faculty:EEMCS: Electrical Engineering, Mathematics and Computer Science
Subject:54 computer science
Programme:Computer Science MSc (60300)
Link to this item:http://purl.utwente.nl/essays/66433
Export this item as:BibTeX
EndNote
HTML Citation
Reference Manager

 

Repository Staff Only: item control page