Level 0.
Settings of the parameters
exposed by an existing piece of software
are optimized for a given use
context (characterized by, say, a set
of typical input data), also known as
parameter tuning or algorithm configuration.
Level 1.
The design space represented
by an existing piece of software is
extended by exposing design choices
hardwired into code. Such choices include
certain magic constants, or literals
that, when modified, could affect
performance but not the programÃs
correct function, as well as hidden parameters
and named constants that
could take different values without
compromising the programÃs correctness.
Further examples of hardwired
choices are variables set to constant
values but not exposed as externally
accessible parameters and abandoned
design alternatives, or pieces of code
that could be used in addition to or
instead of active code without compromising
correctness but that are no longer
reachable during execution of the
current version of the program.
Level 2.
Design choices considered
during the normal course of the software-
development process are actively
kept and exposed to the user.
Level 3.
The software-development
process is structured and carried out
in a way that seeks to provide design
choices and alternatives in many performance-
relevant components of a
project.
Level 4.
The software-development
process is centered on the idea of providing
design choices and alternatives
in all parts of a project that might benefit
from them; design choices that cannot
be justified convincingly are not
made prematurely.
|