Software design
Software design is the process of creating specifications for software, including software development artifacts.
This article is about the activity between requirements and programming. For the broader meaning, see software development.
Contents
Description
Software design may refer to either "all the activities 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."
Solving problems with software
Software design usually involves problem solving and planning a software solution.
High-level, low-level
Software design is typically divided into two (or more) scales:
- High-level: architectural design
- Low-level: component and algorithm design
Advice
Advice from Mixu:
Most projects start with high ambitions, and an imperfect understanding of the problem at hand. Our implementations tend to outpace our understanding. It is possible to write code without understanding the problem fully; that code is just more complex than it needs to be because of our lack of understanding.
See also
- Artifact (software development)
- Software architecture
- Software development
- Software engineering
- Software requirements
External links
- Software design @ Wikipedia