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.