I am designing an automatic pet feeder. I am referencing this to help guide myself through the design process.
Literature review
Background information including current technologies, applicable standards, market analysis, etc.
Initial client meeting
Try to determine the problem statement.
Requirements
A static time-capturing document that details the project motivation, goals, objectives, requirements, specifications and constraints
Alternatives analysis
Given a completed requirements document, you can start to think of solutions that can satisfy each objective.
Naïve flow analysis
Traditional engineering requirements lead software only to a naïve architecture. It gives you an idea of what the architecture should look like given what we know right now but will not tell us what we need to look like a year from now.
Helps us transform our naïve architecture into something that will be able to survive the product lifecycle that software goes through and adapt to the changing requirements over time.
Preliminary Design Process
All components are given an initial design. The design is as comprehensive as possible, but still assumed to not be the final design. Some prototypes will be needed to prove certain aspects of the design.