I'm trying to derive the functional requirements from a use case but I'm with some doubts.
The use case is about create a new post and it is presented below. For example looking to the pre-conditions one functional requirement could be:
When a user submit his credentials and they are valid, the system shall initiate the session of this user
It is correct? I read that a functional requirement can be written in the user or system perspective. In the case above it is in the system perspective, in the user or both? Because it has "when a user..." and then "the system shall...".
And for example in the step number 1 of the main flow what could be a functional requirement for this? I write this 2 options below but I don't know if it is correct, because I don't know if it should be written in the user or system perspective. For example in the user perspective:
The admin shall be able to fill and submit the information relative to a post.
Or in the system perspective:
When an admin fill and submits the post information, the system should store in the database that information.
Can you help understand better how to define the functional requirements properly in the example?
The use case is this:
Title: Create Post
Pre-conditions: The administrator has a session initiated in the system.
Trigger: The administrator indicates that he wants to create an event.
1- The admin fill the information relative to title and message
2- The system presents a preview of the post in the page
3 - The admin submits the filled information, and the admin can just save the post information or publish the post
4- The system validates the information inserted by the admin
5- If the admin just save the post the system saves the inserted information in the db and informs the user that the post was saved. If the admin publish the post, the system saves the inserted information in the db,publish the event, and informs the user that the post was publish.
6- The system redirects the admin to the admin page.
Alternative flow: Invalid Data
1- The system presents a message to inform the admin that exist fields that were filled in a incorrect way
2- The admin corrects the fields
3- The flux continues in the step 3 of the main flow.
Post-condition: Post registered in the system.