With an initial domain model in place,
it’s time to begin writing use cases.
Use cases give you a structured way of capturing the behavioral requirements of a system,
so that you can reasonably create a design from them. They help you to answer some fundamental questions:
What are the users of the system trying to do?
What’s the user experience? A surprising amount of what your software does is dictated by the way in which users must interact with it.