Energy Conscious Builder Design Pattern with C# and Intermediate Language

Design Patterns have gained more and more acceptances since their emerging in software development world last decade and become another de facto standard of essential knowledge for Object-Oriented Programming developers nowadays. Their target usage, from the beginning, was for regular computers, so, minimizing power consumption had never been a concern. However, in this decade, demands of more complicated software for running on mobile devices has grown rapidly as the much higher performance portable gadgets have been supplied to the market continuously. To get along with time to market that is business reason, the section of software development for power conscious, battery, devices has shifted itself from using specific low-level languages to higher level ones. Currently, complicated software running on mobile devices are often developed by high level languages those support OOP concepts. These cause the trend of embracing Design Patterns to mobile world. However, using Design Patterns directly in software development for power conscious systems is not recommended because they were not originally designed for such environment. This paper demonstrates the adapted Design Pattern for power limitation system. Because there are numerous original design patterns, it is not possible to mention the whole at once. So, this paper focuses only in creating Energy Conscious version of existing regular "Builder Pattern" to be appropriated for developing low power consumption software.




References:
[1] E. Gamma, R. Helm, R. Johnson and J. Vlissides The Gang of four
[Online]. Available: http://hillside.net
[2] E. Gamma, R. Helm, R. Johnson and J. Vlissides, Design patterns:
elements of reusable object-oriented software. Massachusetts:
Addison-Wesley, 1995.
[3] V. Tiwari, S. Malik, and A.Wolfe. Power analysis of embedded
software: A first step towards software power minimization. In IEEE
Transaction VLSI Systems, December 1994.
[4] V. Tiwari, S. Malik and A. Wolfe. Compilation Techniques for Low
Energy: An Overview. In 1994 Symposium on Low-Power Electronics,
San Diego, CA, October 1994.
[5] Y-T S. Li and S. Malik. Performance Analysis of Embedded Software
Using Implicit Path Enumeration. In IEEE Transactions on Computer-
Aided Design of Integrated Circuits and Systems, December 1997.
[6] Peymandoust, T. Simunic and G.D. Micheli. Low Power Embedded
Software Optimization using Symbolic Algebra. In IEEE Proceeding of
the 2002 Design, Automation and Test in Europe Conference and
Exhibition, 2002.
[7] Chatzigeorgiou and G. Stephanides. Evaluating Performance and Power
of Object-Oriented Vs. Procedural Programming in Embedded
Processors. In Ada-Europe 2002, 2002.
[8] (Journal Online Sources style) K. Chantarasathaporn and C. Srisa-an.
(2006, January). Object-Oriented Programming Strategies in C# for
Power Conscious System. International Journal of Computer Science
[Online]. Volume 1 Number 1. Available:
http://www.enformatika.org/ijcs/v1/v1-1-7.pdf
[9] http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29
[10] http://www.dofactory.com/Patterns/PatternBuilder.aspx
[11] http://www.amd.com/usen/
assets/content_type/white_papers_and_tech_docs/24309.pdf
[12] http://www.valueram.com/datasheets/KVR266X64SC25_512.pdf
[13] Kumar, S. Struct in C#. Available:
http://www.codeproject.com/csharp/structs_in_csharp.asp