The Use Case model is at the conceptual center of the entire SDLC because it drives every development activity that follows. It is often developed in conjunction with a domain model where your (textual) problem statement was developed from. Basically a use case model is more than just a single use case diagram but attached with all the related information of the use cases, for example:
- A use case may be originally derived from a problem statement where identify them from.
- Each of the use cases is attached with a use case description (textual) and in turn, we can detail the use cases by refining the use case description into the flow of events.
- Base on the flow of events we can then perform use case scenario analysis by representing them with a group of related sequence diagrams and etc.
We can see that use case driven approach is, as mentioned before, the conceptual center that can drive the entire software development lifecycle, we perform the following steps for use case driven approach that lead you all the way from analysis to design, and subsequently to development and testing:
- A problem statement is developed for a problem
- Use Case identification (scoping and partitioning of a problem into a set of functional requirements)
- Detail each use case with the flow of events (from analysis to design)
- Based on the flow of events, we can develop a sequence diagram for representing each of the use case scenarios
- By refining a system-level sequence diagram into a more detailed MVC sequence diagram, we can partition a system functionality into a 3 layers reusable software architecture as a clear implementation specification.
- By consolidating the sequence diagrams for the corresponding use case, we can identify a group of candidate objects required by implementing the system functionality (the case) currently underdeveloped.
- To enhance the user experience and build what the user wants, you can:
- Based on the flow of events for each use case, you can develop a wireframe mockup presentation for receiving early feedback of the propose features from the customers.
- To ensure we can fulfill the customer expectation, you can:
- On the other hand, the flow of events for a use case scenario provides you a good blueprint for test cases, especially your use case descriptions or flow of events are attached with acceptance criteria)
Tips for actual Implementation and team development
- At this point, you had partitioned your system into a collection of use cases
- Each use case has been partitioned into a set of use case scenarios
- Typically, the normal use case scenario should be in a good size for implementation
- It should self-sufficient end-to-end features for demonstration right after completion to obtain early feedback from the customers.
- You are recommended to manage your collection of use case and the development in a story map if you wish to follow a more agile development approach
- You can also breakdown the use case scenarios into tasks to be put into multiple development iterations for team development use a task manager
- All these iterations form your product release plan and roadmap.