Before revision: Software design may refer to either "all the activity involved in conceptualizing, framing, implementing, commissioning, and ultimately modifying complex systems " or "the activity following requirements specification and before programming, as ... [in] a stylized software engineering process."
After revision: The term is sometimes used broadly to refer to "all the activity involved in conceptualizing, framing, implementing, commissioning, and ultimately modifying complex systems " the software, or more specifically "the activity following requirements specification and before programming, as ... [in] a stylized software engineering process."