The Design phase develops the system architecture based on the requirements.
Three design decision guidelines are provided to support architects: outline a
compact design of data structures and efficient algorithms (however, a better
performance does not necessarily result in a higher energy efficiency), design
smart and efficient functionality (results in an efficient algorithm and fewer lines of
code during implementation), and decide carefully which frameworks and
external libraries are necessary (additional layers may cause additional processing
time but may also simplify software engineers’ work). Components should be
reused if possible (requires less energy-consuming development efforts). If reused
components do not meet the energy efficiency requirements, they should be
reorganized to conform to these requirements. The Implementation phase is
described together with the Design phase and does not come with any further
process descriptions, since it depends on the Design phase.