Uploaded by noiyremote

toaz.info-srs-document-pr 899ec2a4b9eacbfdab503be206e2f602

advertisement
Software Requirements
Specification
for
Quora
Version 1.0 approved
Prepared by Chinmaya Pati
K1402, B48, 11403573
27th September, 2016
Software Requirements Specification for Quora
Page ii
Table of Contents
Table of Contents .......................................................................................................................... ii
Revision History ............................................................................................................................ ii
1. Introduction ..............................................................................................................................1
1.1
1.2
1.3
1.4
1.5
Purpose ............................................................................................................................................ 1
Document Conventions.................................................................................................................... 1
Intended Audience and Reading Suggestions .................................................................................. 1
Product Scope .................................................................................................................................. 2
References........................................................................................................................................ 3
2. Overall Description ..................................................................................................................3
2.1
2.2
2.3
2.4
2.5
2.6
2.7
Product Perspective ......................................................................................................................... 3
Product Functions ............................................................................................................................ 3
User Classes and Characteristics ..................................................................................................... 4
Operating Environment.................................................................................................................... 5
Design and Implementation Constraints .......................................................................................... 5
User Documentation ........................................................................................................................ 6
Assumptions and Dependencies ...................................................................................................... 6
3. External Interface Requirements ...........................................................................................6
3.1
3.2
3.3
3.4
User Interfaces ................................................................................................................................. 6
Hardware Interfaces ......................................................................................................................... 7
Software Interfaces .......................................................................................................................... 7
Communications Interfaces ............................................................................................................. 7
4. System Features........................................................................................................................8
4.1 System Feature 1 ............................................................................ Error! Bookmark not defined.
4.2 System Feature 2 (and so on)......................................................... Error! Bookmark not defined.
5. Other Nonfunctional Requirements .......................................................................................9
5.1
5.2
5.3
5.4
5.5
Performance Requirements .............................................................................................................. 9
Safety Requirements ........................................................................................................................ 9
Security Requirements ..................................................................................................................... 9
Software Quality Attributes ............................................................................................................. 9
Business Rules ............................................................................... Error! Bookmark not defined.
6. Other Requirements ..............................................................................................................10
Appendix A: Glossary...................................................................... Error! Bookmark not defined.
Appendix B: Analysis Models ......................................................... Error! Bookmark not defined.
Appendix C: To Be Determined List .............................................. Error! Bookmark not defined.
Revision History
Name
Date
Reason For Changes
Version
Software Requirements Specification for Quora
Page 1
1. Introduction
1.1 Purpose
Quora is a question-and-answer site where questions are asked, answered, edited and organized
by its community of users. Here, users can collaborate by editing questions and suggesting edits
to other users’ answers. It is designed to share and grow the world’s knowledge, a vast amount of
knowledge that would be valuable to many people is currently only available to a few – either
locked in people’s heads, or only accessible to select groups. The main motive is to connect the
people who have knowledge to the people who need it, to bring together people with different
perspectives so they can understand each other better, and to empower everyone to share their
knowledge for the benefit of the rest of the world.
1.2 Document Conventions
1.2.1 Main Section Titles

Font: Arial

Face: Bold

Size: 11
1.2.2 Sub Section Titles

Font: Arial

Face: Bold

Size: 11
1.2.3 Other Text Explanations

Font: Arial

Face: Normal

Size: 11
Software Requirements Specification for Quora
Page 2
1.3 Intended Audience and Reading Suggestions
This document is to be read by the development team, the project manager, marketing staff,
testers and documentation writers. Our stakeholders may review the document to learn about the
project and to understand the requirements. The SRS has been organized approximately in order
of increasing specificity. The developers and project managers need to become intimately familiar
with the SRS.
Others involved need to review the document as such:
Overall Description – Marketing staff have to become accustomed to the various product features
in order to effectively advertise the product.
System features – Testers need an understanding of the system features to develop meaningful
test cases and give useful feedback to the developers.
The author would suggest clients to go through the requirement section thoroughly before
installing the software. The testers are expected to have certain knowledge in the terms used and
hence can go for the security issues directly. Students and developers can utilize the
documentation as a resource in developing the project to a new product.
1.4 Product Scope
1.4.1 The heart of Quora is questions — questions that affect the world, questions that explain
recent world events, questions that guide important life decisions, and questions that provide
insights into why other people think differently. Quora is a place where you can ask questions you
care about and get answers that are amazing.
1.4.2 Quora has only one version of each question. It doesn’t have a left wing version, a right wing
version, a western version, and an eastern version.
1.4.3 Quora brings together people from different worlds to answer the same question, in the
same place - and to learn from each other.
1.4.4 We want Quora to be the place to voice your opinion because Quora is where the debate is
happening. We want the Quora answer to be the definitive answer for everybody forever.
Software Requirements Specification for Quora
Page 3
1.4.5 Quora has content you will feel good about having read. Quora helps you understand why
the world works the way it does, why people behave the way they do, and what we can all do to
make the world better.
1.5 References

https://www.quora.com

https://en.wikipedia.org/wiki/Quora

http://techwhirl.com/writing-software-requirements-specifications/

Software Engineering: A Practitioner's Approach. , By: Pressman Roger, McGraw Hill
ISBN 9780073375977.
2. Overall Description
2.1 Product Perspective
This product is developed focusing on spreading knowledge across globe. This is a new kind in
the market and expected to grow in large sense.
Quora provides a personalized feed of insightful answers to questions you hadn’t realized you
should ask.
Quora’s answers come from people who really understand the issues and have first-hand
knowledge. Quora is the place to read Barack Obama on the Iran deal, prisoners on life in
prison, scientists on global warming, police officers on how to deter burglars, and TV producers on
how their shows are made. Quora is the place to read inspiring people such as Gloria
Steinem, Stephen Fry, Hillary Clinton, Glenn Beck, Sheryl Sandberg, Vinod Khosla, and Gillian
Anderson directly answering the questions people most wanted them to answer. Quora is where
you can read important insights that have never been shared anywhere else, from people you
could never reach any other way.
2.2 Product Functions
Quora provides the following described features: 2.2.1 Login/Sign up - Users can sign up and login to keep track of their activities on the site i.e.
asking a question, participating in some discussion forum or answering a question.
Software Requirements Specification for Quora
Page 4
2.2.2 Voting - There are also functionalities that enables users to up vote or down vote on a
specific answer. This helps in finding most helpful answer for the asked question.
2.2.3 Analytics - In Quora, analysis is performed on the questions asked by the date of posting,
content relevance and later provided some score that helps in publishing most trending and helpful
article in the homepage of the same.
2.2.4 Feeds – This section contains all bookmarked, followed, up voted contents by the user from
the users’ previous activities. Cookies are used to ensure delivery of proper feeds according to the
browsing history.
2.2.5 Trending Now – This section contains all trending posts till date. It always frequently
updated to provide the best happenings in the world.
2.2.6 Top Stories For You – This section contains questions posted, answers, comments for the
same and vote counts. There is also option to share the post in social medias specifically
Facebook and twitter.
2.2.7 Improve your feed – This section keeps track of users’ activities like visiting own feed,
following more than 20 topics, finding a friend on quora, up voting more than 3 good answers,
asking first question, adding info about what the user is aware of and answer a question.
2.2.8 Read – This is the home page of the site that holds all of the mentioned functionalities. It is
a static navigation section component.
2.2.9 Answer – This is also a static navigation section component that enables users to answer
any question which will be suggested by the system according to users preferences.
2.2.10 Notifications – This is a static navigation section component that delivers information
regarding new followers, questions answers that were asked by you or any new questions
generated specifically for the user by the system. It also includes a function “Mark these as read”
that prevents notifications highlighted on the home page.
2.2.11 Users Section – This is a static navigation section component which includes options to
update profile data, read messages, create or keep track of created blog, view users’ published
contents and modify settings.
2.3 User Classes and Characteristics
2.3.1 Users: The site is solely for the users that it has who believe in spreading knowledge and
participate actively asking questions, answering, following, creating and managing blog, or sharing
Software Requirements Specification for Quora
Page 5
in the social media. The users are expected to have little proficiency so that site’s reputation
doesn’t get affected.
2.3.2 Administrators: The admin group controls and monitors all the activities going on in the site.
They have access to the Quora database, and rights to manage the same. They have permissions
to add, block or notify a specific user regarding any issues to be dealt with.
2.3.3 Analyst: They analyze a post on the following dependencies, the date and time of post, by
author, number of people following, number of up votes or down votes. They provide content to be
delivered to homepage, feed section of user, notifications to the users.
2.3.4 Security: These team is 24*7 dedicated to prevent site from attackers by continuously
monitoring and updating obsolete functionalities.
2.4 Operating Environment
This site is written in Python, so Python web server kicks the site online. C++ is also used to index
the posts and perform analytics to provide feeds and updates to various sections of the program.
This site is compatible in the following web browsers:

Chrome 32.0.1700 and older, with layout engine Blink 537.36

Mozilla Firefox 49.0 and older

Apple Safari 6.1.6 and older running on OS X v10.5 Mountain Lion and above

Microsoft IE9 and above or Edge browsers
This software is compatible to run on any Linux system with kernel 4.1 or above, Windows NT 6.2
or above and OS X v10.5 or above.
2.5 Design and Implementation Constraints
2.5.1 Government Policies: Any policy made to regulate content of discussion or any type of
censorship imposed on the site could cause inefficient function of the site.
2.5.2 Attacks: Any cyber-attack, specifically distributed denial of services could cause loss
financially as well as to the productivity of the site. Proper resources and pre-planning needs to be
implanted to face the same.
2.5.3 Post Content: Any improper or vulgar post could harm the reputation of the site as it is
viewed by plenty of users including various age groups with class.
Software Requirements Specification for Quora
Page 6
User Documentation
This product is in development stage, and certainly not all required modules are currently included
in the same. Once it enters the beta stage, required company employee manuals can be provided.
Users’ manual is not necessary but can be prepared if demanded.
2.6 Assumptions and Dependencies
It is assumed that the software designed will work correctly with Linux, Windows or Mac Operating
System with mentioned legacy versions. With the given hardware requirements, software will work
efficiently. It will send user activities reports to the concerned team.
3. External Interface Requirements
3.1 User Interfaces
3.1.1 Dashboard: This page is displayed whenever user accesses the website no matter if not
logged in. It contains all the feeds, posts, trending topics, manage user functionalities and quality
of usage report.
3.1.2 Login/Sign up: This is present on right side of the navigation section. Users’ can sign up and
login to keep track of their activities on the site i.e. asking a question, participating in some
discussion forum or answering a question.
3.1.3 Feeds – This section contains all bookmarked, followed, up voted contents by the user from
the users’ previous activities. Cookies are used to ensure delivery of proper feeds according to the
browsing history.
3.1.4 Trending Now – This section contains all trending posts till date. It always frequently
updated to provide the best happenings in the world.
3.1.5 Top Stories for You – This section contains questions posted, answers, comments for the
same and vote counts. There is also option to share the post in social medias specifically
Facebook and twitter.
3.1.6 Improve your feed – This section keeps track of users’ activities like visiting own feed,
following more than 20 topics, finding a friend on quora, up voting more than 3 good answers,
asking first question, adding info about what the user is aware of and answer a question.
Software Requirements Specification for Quora
Page 7
3.1.7 Read – This is the home page of the site that holds all of the mentioned functionalities. It is
a static navigation section component.
3.1.8 Answer – This is also a static navigation section component that enables users to answer
any question which will be suggested by the system according to users preferences.
3.1.9 Notifications – This is a static navigation section component that delivers information
regarding new followers, questions answers that were asked by you or any new questions
generated specifically for the user by the system. It also includes a function “Mark these as read”
that prevents notifications highlighted on the home page.
3.1.10 Users Section – This is a static navigation section component which includes options to
update profile data, read messages, create or keep track of created blog, view users’ published
contents and modify settings.
3.2 Hardware Interfaces
This product requires a system with the following requirements:

Intel Xeon E9 Quad Core Processor clocked at 4GHz with liquid cooing features

ADATA 128GB Dual Channel DDR4 Ram

RAID10 100TB Storage

Optical Fibers connecting every machine to the routers

External Cooling System for the CPU as well as hard disk
3.3 Software Interfaces
The following software needs to be installed in the system:

Python 2.7.12 with OpenCV libraries and Django Framework

MySQL 5.5 with InnoDB engine and Phpmyadmin

G++ 4.8 with OpenCV libraries
3.4 Communications Interfaces

This product requires HTTP, HTTPS, FTP, SMTP protocols to be enabled in the firewall or
iptables.

A network connectivity with more than or equal to 100Mbps bandwidth is required.
Software Requirements Specification for Quora

Page 8
Server logs can be found in the logfile.txt generated by the system. Additional Users’ logs can
be found in the temporary repository database.
4. System Features
This product is expected to deliver required and relevant contents to its users, analysis and visitors
statistics reports to the administrators and managers of the same. This is a question-and-answer
knowledge sharing site with interactive features added.
4.1 Asking a question
4.1.1
Description and Priority
Question is expected to be appropriate, and have publicly viewable content. This is
viewed by users of various age groups and classes.
4.1.2
Stimulus/Response Sequences
Question asked can be answered by any user. There is no time limit constraint for
closing any post or so.
4.1.3
Notification
Any reply on the asked question will be notified to the user by notification on
navigation section.
4.2 Answering a question
4.2.1
Description and Priority
Answering a question is available in the improve your feed section at right hand side
in dashboard. It enables a user to answer any question that are currently available
which is generated by the system.
4.2.2
Response Sequence
Answer is expected to be publicly viewable content, and should have some
relevance to the question. User also have features to up vote or down vote any
answer.
Software Requirements Specification for Quora
Page 9
5. Other Nonfunctional Requirements
5.1 Performance Requirements
The performance of the product under the mentioned hardware and software requirements is
expected to result good. Upgrading the system, especially hard drive and needs, network
connectivity and cooling system could effectively improvise results.
5.2 Safety Requirements

All the mentioned protocols need to be enabled and expected to be properly working on
respective ports.

Failure of any hardware or software dependencies could lead to malfunction or downtime for
the site.

Prevention for various cyber-attacks should be initiated by default as well as additional manual
monitoring should be engaged to prevent downtime.
5.3 Security Requirements

A dedicated cyber-security team should be engaged to monitor attacks and prevent downtime.

Using obsolete software should be avoided and there should be timely check for updates.

Depending on the number of users, hardware should be upgraded. There should also be timely
check for maintenance of components such as hard drive, mother board etc.
5.4 Software Quality Attributes

This product is applicable to age groups above 8. This will be available in all reasons except
Germany and Poland.

Quora respects users’ privacy and hides adult contents as “not available” for respective age
group.

Quora features easy maintenance for user as well as administrators by providing easy to use
UI, analytics, control tools respectively.

Quora is written in object oriented pattern and has a MVC architecture. Hence it sports easy
portability as well as scalability.

Regular backup is taken and synchronized to prevent any type of loss. Python handles all the
content delivery stuff and C++ performs indexing and analysis of posts and contents. Hence
multiple threaded working environment is implemented to provide faster content delivery to
users.
Software Requirements Specification for Quora
Page 10
6. Other Requirements

Normalization of tables is required.

Regular database check as well as backup should be implemented.

Legal copy right for the following program should be obtained in order to prevent piracy of the
content.

Temporary storage is to be kept of small size and flushed in due time to prevent buffer
overflow.
Download