Optimization is the third phase of the software identify, conceptualize, optimize, and verify/validate (ICOV) process (Chapter 11). Optimization is linked directly to software metrics (Chapter 5). In hardware, optimization has a very specific objective: minimizing variation and adjusting performance mean to the target, which may be static or dynamic in nature (El-Haik & Mekki, 2008). The DFSS methodology to achieve such an objective is called robust design. Application of robust design to software is presented in Chapter 18. However, software optimization is the process of modifying a software system in an effort to improve its efficiency.[180] One way software can be optimized is by identifying and removing wasteful computation in code, thereby reducing code execution time (LaPlante, 2005). However, there are several ways that software can be optimized, especially for real-time systems. Moreover, it also should be noted that software optimization can be executed on several different levels. That is, software can be optimized on a design level, a source code level, or even on a run-time level.

It is important to note that there may be tradeoffs when optimizing a system. For example, a very high level of memory may be compromised by another important factor, such as speed. More specifically, if a system's cache is increased, it improves the run-time performance but also will increase the memory consumption.

This chapter discusses ...

Get Software Design for Six Sigma: A Roadmap for Excellence now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.