Wednesday, February 5, 2014

Where to start: Modules and roles

Modules are a way to split the functionality of your application into separate parts. The Modeler does not enforce any kind of module structure; it is up to you to choose logical modules for your application.

Setting up various modules beforehand encourages you to place entities you are about to create in a appropriate module. This reduces the temptation to locate these entities all in one module, causing your domain model to be unclear.

When you set up your project in a modular way, it also takes less effort to export and reuse one of your modules in a future project.

A good start, to determine which modules you should create, would be to define high level user stories and distillate your modules and user roles from them.
  • As an anonymous user I would like to sign-up to theWorld Cup Pool website, so I can use this application
  • As a participant I would like to predict results for the World Cup tournament, so I can take part in a competition with my friends/colleagues.
  • As a competition administrator, I would like to create a competion, so that my friends and collegues can compete in against a subset of all participants.

As you can see some parts of the user stories are bold. These parts guide us to the following module names:
Modules extracted from high level user stories


At this moment we come up with 4 user roleswhich basically cover all actors in this application.  I can't imagine we will need more roles in the future.

  • Anonymous user
  • Participant
  • Competition manager
  • Administrator


No comments:

Post a Comment