There is no unique general way to proceed when designing a system. I’m writing this list as personal reference, which can be updated over time according to new experience.
So these could be a possible path in the designing process.
- Collection of Requirements. This steps should be revisited multiple times, whenever new requirements are found:
- Problems Analysis. Think about all actors and each of them can behave in such a way to cause problems.
- Performance Criteria. What are the most important performance parameters? See also design consideration. More detailed list also available in list of system quality attributes.
- SWOT Analysis. The requirements coming in this stage depends on your (or your company) and environmental situation.
- Other requirements.
- Use-Case Diagram: it focuses on the goals of actors, i.e. functionalities offered by the system from the actors point of view.
- Activity Diagram: describes the order of the steps from start to end activity with all possible decisions.
- Context Diagram of the system: focus on inputs / outputs of the system. Together with previous diagrams could be used to define modules.
- UI Design: focus on maximizing usability and the user experience.
- System Architecture
- Entity-relationship diagram
- UML Sequence Diagram