A collection of guidelines describing the best way to design software, particularly on a large scale. Guidelines range from high-level strategy (e.g. choice of overall development process) down to low-level procedures and steps (e.g. testing patterns). See also CMM, ESSI.