Skip to content

Latest commit

 

History

History
148 lines (116 loc) · 12.7 KB

lbaw1763_a2.md

File metadata and controls

148 lines (116 loc) · 12.7 KB

A2: Actors and User stories

The main goal of SegFault is to establish a platform for programmers to learn, discuss different approaches, present ideas and share knowledge in a Q&A style. To this end, the following sections provide detailed insight into the project, its actors and functionalities.

1. Actors

Actors Diagram

Identifier Description Examples
User Generic user with access to public content, such as questions, their answers and their comments. n/a
Visitor Unauthenticated user that can register itself or authenticate in the system. n/a
Member Authenticated user that can create new questions, answer questions, comment and edit all the its questions, answers and comments. Can also vote other user entries. jlopes
Owner A message's author that can change its properties. jlopes
Moderator A trusted member of the community that has edit/delete permissions over all messages. jlopes
API External APIs that can be used to register and / or authenticate into the system. GitHub Login, Google+

Table 1: Actor's description.

2. User Stories

2.1. User

Identifier Name Priority Description Estimated Effort (in hours)
US01 Question Page High As a User, I want to consult Questions, their Answers and their Comments, so that I can clarify my doubts. 40
US02 Profile High As a User, I want to consult the profile of an authenticated User, so that I can see his biographic information. 10
US03 Search High As a User, I want to search for specific posts, so that I can find what I'm looking for faster. 5
US05 Profile Badges High As a User, I want to consult the badges of an authenticated User, so that I can better understand his community contributions and privileges. 12
US04 Category Consult Medium As a User, I want to consult the questions related to a given category, so that I can search content regarding that category. 4
US06 About Page Low As a User, I want to access the About page, so that I can see a complete website's description. 3

Table 2: User's user stories.

2.2. Visitor

Identifier Name Priority Description Estimated Effort (in hours)
US11 Sign Up High As a Visitor, I want to register myself into the system, so that I can become a Member. 4
US12 Log In High As a Visitor, I want to authenticate into the system, so that I can have Member privileges. 2
US13 Sign Up using Github Low As a Visitor, I want to register myself into the system using a Github account, so that I can become a Member, spending less time registering. 3
US14 Log In using Github Low As a Visitor, I want to authenticate into the system using a Github account, so that I can have Member privileges. 1
US15 Sign Up using Google+ Low As a Visitor, I want to register myself into the system using a Google account, so that I can become a Member, spending less time registering. 3
US16 Log In using Google+ Low As a Visitor, I want to authenticate into the system using a Google account, so that I can have Member privileges. 1

Table 3: Visitor's user stories.

2.3. Member

Identifier Name Priority Description Estimated Effort (in hours)
US201 Logout High As a Member, I want to logout from the system, so that my account remains safe and other users can authenticate. 1
US202 Create a Question High As a Member, I want to create a Question for the community to answer, so that I can get enlightened regarding my doubt. 5
US203 Answer a Question High As a Member, I want to answer a Question created by other Member, so that I help him with his problems and doubts. 5
US204 Edit Profile Information High As a Member, I want to edit my own profile information, so that it's updated and adequate (e.g. changing profile picture and editing biography). 6
US205 Edit Account Settings High As a Member, I want to edit my own account settings, so that I keep my account safe (e.g. changing password). 6
US206 Vote a Comment High As a Member, I want to vote on a Comment, so that other Users know what I think about that Comment. 3
US207 Vote an Answer High As a Member, I want to vote on an Answer, so that other Users know what I think about that Answer. 3
US208 Vote a Question High As a Member, I want to vote on a Question, so that other Users know what I think about that Question. 3
US209 Create a Comment Medium As a Member, I want to comment an Answer or a Question, so that I can contribute to the discussion regarding that Question/Answer. 5
US210 Mark a Question Low As a Member, I want to mark a question, so that I have easier access to it. 1
US211 View Marked Questions Low As a Member, I want view my marked questions, so that I have easier access to them. 2
US212 Notifications Low As a Member, I want to see my notifications, so that I'm always aware of updates on my questions. 6
US213 Report a Message Low As a Member, I want to report a Message, so that the website remains without inadequate content. 6

Table 4: Member's user stories.

2.4. Owner

Identifier Name Priority Description Estimated Effort (in hours)
  US31   Select correct Answer Medium As an Owner, I want to select a correct Answer to my own Question, so that other Users know what is the correct Answer without having to read all of the other answers. 5
  US32   Delete a Question Medium As an Owner, I want to delete my own Question, so that the website does not contain inadequate information. 3
  US33   Delete an Answer Medium As an Owner, I want to delete my own Answer, so that the related Question does not have inappropriate Answers. 3
  US34   Delete a Comment Medium As an Owner, I want to delete my own Comment, so that the related Question/ Answer does not have inappropriate comments. 3
  US35  Edit a Question Medium As an Owner, I want to edit my own Questions, so that I keep them updated and adequate. 2
  US36   Edit an Answer Medium As an Owner, I want to edit my own Answers, so that I keep them updated and adequate. 2
  US37   Edit a Comment Medium As an Owner, I want to edit my own Comments, so that I keep them updated and adequate. 2
  US38   Edit a Question's Categories Medium As an Owner, I want to edit my Questions' Categories, so that I keep them updated and correct previous mistakes. 2

Table 5: Owner's user stories.

2.5. Moderator

Identifier Name Priority Description Estimated Effort (in hours)
US41 Select correct Answer Medium As a Moderator, I want to select a correct Answer to any Question, so that other Users know what is the correct Answer without having to read all of the other answers. 3
  US42   Delete a Question Medium As a Moderator, I want to delete any Question, so that the website does not contain inadequate information. 3
  US43   Delete an Answer Medium As a Moderator, I want to delete any Answer, so that the related Question does not have inappropriate Answers. 3
  US44   Delete a Comment Medium As a Moderator, I want to delete any Comment, in order to filter inappropriate comments from a discussion. 3
  US45   Edit a Question Medium As a Moderator, I want to edit any Question, so that I keep them updated and adequate. 2
  US46   Edit an Answer Medium As a Moderator, I want to edit any Answer, so that I keep them updated and adequate. 2
  US47   Edit a Comment Medium As a Moderator, I want to edit any Comment, so that I keep them updated and adequate. 2
  US48   Edit a Question's Categories Medium As a Moderator, I want to edit the Categories of any Questions, so that I keep them updated and adequate. 2

Table 5: Moderator's user stories.

A1. Annex: Supplementary requirements

A1.1. Business rules

Identifier Name Description
BR01 Correct Answer restriction There can only be one answer marked as correct, per question.
BR02 Self voting restriction Users can't vote on their own messages.
BR03 Reputation points Reputation points will be calculated according to the formula: $QuestionPoints + AnswerPoints + \frac{CommentPoints}{2} - Reports * 10$.
BR04 Number of categories A question must have between one and five categories, inclusive.
BR05 Moderator Badge Having achieved 500 reputation points and been awarded the Trustworthy Badge, a Member becomes a Moderator.
BR06 Delete Answer Whenever an Answer is deleted the respective Comments should be deleted as well.
BR07 Delete Question Whenever a Question is deleted the respective Answers (their comments) and the Question comments should be deleted as well.
BR08 Banned Message A message is automatically eliminated after being reported over $(5 + score^{\frac{1}{3}})$ times.
BR09 Edited Message An edited message must be adequately marked as such.

A1.2. Technical requirements

Identifier Name Description
TR01 Availability The system must be available 99 percent of the time in each 24-hour period.
TR02 Accessibility The system must ensure that everyone can access the pages, regardless of whether they have any handicap or not, or the Web browser they use.
TR03 Usability The system should be simple and easy to use.
TR04 Performance The system should have response times shorter than 2s to ensure the user's attention.
TR05 Web application The system should be implemented as a Web application with dynamic pages (HTML5, JavaScript, CSS3 and PHP).
TR06 Portability The server-side system should work across multiple platforms (Linux, Mac OS, etc.).
TR07 Database The PostgreSQL 9.4 database management system must be used.
TR08 Security The system shall protect information from unauthorized access through the use of an authentication and privilege verification system.
TR09 Robustness The system must be prepared to handle and continue operating when runtime errors occur.
TR10 Scalability The system must be prepared to deal with the growth in the number of users and corresponding operations.
TR11 Ethics The system must respect the ethical principles in software development (for example, the password must be stored encrypted to ensure that only the owner knows it).

A1.3. Restrictions

Identifier Name Description
C01 Deadline The system should be ready to be used by the end of May, in order to be properly assessed for delivery.

Revision history

  • 22/02/2018: Added introduction and increased the priority of Votes and Badges.
  • 23/02/2018: Actor image now has round heads.
  • 24/02/2018: Decreased the usage of the word "information" and its variants.
  • 25/02/2018: Edited several user stories regarding to reflect the teacher's suggestions (US01, US02, US03, US206, US207, US208, US38, US48), as well as business rules (BR01, BR02). Also added BR09.
  • 01/03/2018: Added US211.

GROUP1763, 09/02/2018