3

I'm here again asking about software documentation. I read a lot about it but it is a bit harder to put in practice, first because of the lack of examples and second because most small companies just don't care at all.

So I have a set of requirements for functionalities for a iteration of a software that I and a friend is doing. see bellow:

  • The system shall enable users to login through a UI* where he enters a username* and password*.
  • The system shall display an error message on a particular area of ​​the UI* If the user* enters a combination of wrong username and password.
  • The system shall redirect the user to a welcome UI* after successfully logged in.
  • The system shall allow each user to have an access level, forming a hierarchy where only users of higher levels can perform an action* on users* from lower levels.
  • The system shall associate users* that have special permissions* for a custom group*.
  • The system shall associate each user* with a group*.
  • The system shall retain the permissions* per user if the user belongs to the custom group*. Otherwise the permissions* should be inherited from the group.
  • The system shall enable password reset only generating an automatic password and sending to the user's* email.
  • The system must store the following user information, login, group, password, name, email, mobile phone.
  • The system should allow users to change their information.
  • The system should enable administration of permissions* actions*, groups* and users* through a UI* where user's can add, delete, create and edit entries (eg. Add groups, delete users).

So should I challenge these requirements more? How can I test/challenge it effectively?

After that, how can I go from this set of requirements to use cases (assuming they are good enough) to Use case.

I know I need to start finding the actors. But the only actor I see is the 'user' and he will performing CRUD operations on users, actions, groups and permissions. But how should I detail these use cases, 'Manage users' for example? Or should I go for a deeper detail level? Like 'add user' 'create group', etc.

glossary
*user: is the person who will use the system to manage it based on his privileges.
*UI: user interface.
*username: a set of characters with max length of 50 with alpha numeric chars.
*password: a set of characters with max length of 50 with alpha numeric chars, must be encrypted.
*group: a list of named groups that each user must be associated with.
*actions: a list of actions a user can do on the system that must be associated with permissions.
*permission: a list associating users and groups to a specific action.

Thank you guys.

Ulrich Eckhardt
  • 16,572
  • 3
  • 28
  • 55
Ricardo Silva
  • 1,221
  • 9
  • 19
  • This sounds more like a project management question than a coding question. You might have more luck asking this on http://pm.stackexchange.com/ – Cameron Skinner May 25 '15 at 03:06
  • I just posted it in here because there is a lot of questions posted about this topic. But thank you for the heads up. I'll check it in. – Ricardo Silva May 25 '15 at 03:08
  • 1
    Might find this interesting: http://docs.behat.org/en/v2.5/cookbook/behat_and_mink.html (or [cut to the chase](http://docs.behat.org/en/v2.5/cookbook/behat_and_mink.html#writing-your-first-web-feature)) – Jared Farrish May 25 '15 at 03:09

0 Answers0