Professional Documents
Culture Documents
Software
Requirement
Specification
For Grafriend v1 (GFv1)
Team Golf
20010326 Jongil Yoon
20020273 Hwayong Shin
20076184 Benjamin Longhi
2008-03-02
Abstract: This document presents a Software Requirement Specification of the GFv1 project which is
initiated by the Team Golf, CS408 Computer Science Capstone Project, KAIST
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
DOCUMENT HISTORY
TABLE OF CONTENTS
DOCUMENT HISTORY ............................................................................................................ 2
TABLE OF CONTENTS ............................................................................................................ 3
LIST OF FIGURES AND TABLES .............................................................................................. 4
1 Introduction.................................................................................................................... 5
1.1 Purpose ................................................................................................................. 5
1.2 Scope of Project .................................................................................................... 5
1.3 Glossary ................................................................................................................ 6
1.4 References ............................................................................................................ 6
1.5 Overview of Document ......................................................................................... 6
2 Overall Description ........................................................................................................ 7
2.1 System Environment ............................................................................................. 7
2.2 Functional Requirements Specification.................................................................. 8
2.2.1 Crawler use case: UC-01-CR-Crawling ...................................................... 8
2.2.2 User use case: UC-02-RB-Register Blog .................................................... 9
2.2.3 User use case: UC-03-VG-Visualize Preference Graph ............................ 10
2.2.4 User use case: UC-04-MF-Match Friends ................................................ 11
2.3 User characteristics ............................................................................................. 11
2.4 Constraints .......................................................................................................... 12
2.5 Assumptions and dependencies ........................................................................... 12
3 Requirements Specification .......................................................................................... 13
3.1 External interface requirements ........................................................................... 13
3.1.1 User interfaces ......................................................................................... 13
3.1.1.1 Sign-in ....................................................................................... 13
3.1.1.2 Sign-up ...................................................................................... 14
3.1.1.3 Main .......................................................................................... 15
3.1.1.4 My Page ..................................................................................... 16
3.2 Functional Requirements ..................................................................................... 16
3.2.1 UC-01-CR-Crawling ................................................................................ 16
3.2.2 UC-02-RB-Register Blog ......................................................................... 17
3.2.3 UC-03-VG-Visualize Preference Graph ................................................... 17
3.2.4 UC-04-MF-Match Friends ....................................................................... 18
3.3 Non-functional requirements ............................................................................... 18
3.3.1 Performance ............................................................................................. 18
3.3.2 Security ................................................................................................... 18
3.3.3 Extendibility ............................................................................................ 18
APPENDIX A BLOG TAG FEASIBILITY ...................................................................................... 19
APPENDIX B USER PREFERENCE GRAPH GENERATING ALGORITHM (DRAFT) ......................... 20
APPENDIX C FRIEND MATCHING ALGORITHM (DRAFT) ......................................................... 21
1 Introduction
1.1 Purpose
The main target user of this software system will be a young (17~30yr) social
networker who spends lots of time to blogging or social networking. Nowadays bloggers can
make thousands of online friends easily via their social networking. However their quality is
not guaranteed. This online friend has similarity with me? Not, sure. Should they spend
chatting-time to know each other for becoming a friend? Unfortunately, yes. Even though,
there are some rock-band club website or something, it just can guarantee one or two
keywords similarity which is not enough.
This software provides a totally new type of friend matching method using user
preference graph. This is the process:
1) Generate user’s preference graph automatically. The information used to create the
graph is user’s blog tag. Indeed after some research, see Appendix A Blog Tag Feasibility. It
claims that blog tags are good enough to represent user’s preferences. The algorithm which
generates the Preference graph is shown in Appendix B User Preference Graph
Generating Algorithm (draft).
2) Match users through preference graph matching algorithm as shown in Appendix
C Friend Matching Algorithm (draft).
Since this version is the 1st release, this document will be mainly focused on the core
features of the software and the following additional features will not be considered:
1) Maintaining friend feature – send message, chatting, etc..
1.3 Glossary
Term Definition
Blog Tag (=Tag) Additional information of the blog posting. In GFv1, this is
used as a preference data of one’s user.
Grafriend v1 Name of this project. Graph + friend.
GFv1
Preference What a user like, is interested in, taste, think.
Software Requirements A document that completely describes all of the functions of
Specification a proposed system and the constraints under which it must
operate. For example, this document.
Stakeholder Any person with an interest in the project who is not a
developer.
User Any person who use this software. (any person who has
created account and logged-in GFv1)
1.4 References
IEEE. IEEE Std 830-1998 IEEE Recommended Practice for Software Requirements
Specifications. IEEE Computer Society, 1998.
SRS Sample, www.cse.msu.edu/~chengb/RE-491/Papers/SRSExample-webapp.doc,
2004
The next section named as Overall Description of this document gives an overview
of the functionality of the product. It describes the informal requirements and is used to
establish a context for the technical requirements specification in the next chapter.
The third section Requirements Specification of this document is mainly written for
the developers and describes in technical terms the details of the functionality of the product.
Both sections of the document describe the entire software product, but each parts are
intended for different audiences and thus use different type of language.
2 Overall Description
Blog
Crawler
GFv1
User
GFv1 has two active actors, one cooperating system, and one external system. The
User represents actual customer of this software. The Crawler is an active module that
activate GFv1 on every single certain time. The User access the GFv1 system through the
Internet. Preference Graph Manager generates and stores preference graph from the Blog.
Preference Graph Visualizer actually draws graph. And Friend Matching Engine compare
different graph to find out potential friend using their similar preferences.
The Preference Graph Generation Process state-transition diagram summarizes the use cases
listed below. Generating preference graph is one of the most important use cases. The User
registers blog and then preference graph is generated. Later on, it is updated automatically by
a timer polling mechanism done by the Crawler’s Crawling feature. When the User requests
for Visualize Preference Graph then the graph is updated, and serviced to the User.
Blog
Crawler
GFv1
Crawling Preference Graph
Manager
Brief Description
To update Preference Graph, the Crawler periodically crawls blog by polling method.
GFv1
Preference Graph
Crawling
Manager
Register
User Blog
Brief Description
The user enters a new or modifies his/her blog address, so that the Preference Graph Manager
generates his/her preference graph.
Brief Description
The user requests anybody visualized preference graph, so that the user can know people’s
preferences.
1. The User selects Visualize Preference Graph with an identifier which is either his/her or
others.
2. Do UC-01-Crawling use case.
3. Preference Graph Visualizer gets graph information from the Preference Graph Manager.
And draw a preference graph.
Brief Description
The user requests his/her or other friends which have similar preferences.
1. The User selects Match Friends with an identifier which is either his/her or others.
2. Friend Matching Engine gets graph information from the Preference Graph Manager and
matches similar preference friends.
This software is based on the blog tag. So obviously the User should be both blog
owner and tag user.
2.4 Constraints
Since every single blog service has different way of tag parsing algorithm, every blog
cannot be available in this software. In GFv1, blog egloos.com will be supported.
In security point of view, every public blogs are opened to public. So this system
assumes that the Preference graph of the public blog is also public. It means any GFv1 user
can see any others preference graph and friends list.
3 Requirements Specification
3.1.1.1 Sign-in
Properties
l ID textbox: user id
l Password textbox: user password
Events
l Sign-up button mouse left click: go to 3.1.1.2 Sign-up.
l Sign-in button mouse left click: start sign-in process → go to 3.1.1.3 main.
3.1.1.2 Sign-up
Properties
l ID textbox: user id
l Password textbox: user password
l Re-type Password textbox: user password
l Blog URL: user’s blog URL
Events
l Create My Account button mouse left click: start sign-up process → UC-02-RB-
3.1.1.3 Main
Events
l My preference button mouse left click: UC-03-VG-Visualize Preference Graph / UC-
04-MF-Match Friend (current user’s)
l My page button mouse left click: go to 3.1.1.4 My Page
l Sign-out button mouse left click: sign-out → go to 3.1.1.1 sign-in
l History buttons mouse left click: UC-03-VG-Visualize Preference Graph / UC-04-
MF-Match Friend (selected user)
l Go to this blog button mouse left click: link to the blog.
l User’s friend buttons mouse left click: UC-03-VG-Visualize Preference Graph / UC-
04-MF-Match Friend (selected user)
l Zoom slider mouse drag: zoom-in or zoom-out preference graph.
Related Use Cases: UC-03-VG-Visualize Preference Graph. UC-04-MF-Match Friend
3.1.1.4 My Page
Properties
l Password textbox: user password
l Re-type Password textbox: user password
l Blog URL: user’s blog URL
Events
l Modify button mouse left click: start modify process → UC-02-RB-Register Blog
→ go to 3.1.1.3 main
l Cancel button mouse left click: go to 3.1.1.3 Main
Related Use Cases: UC-02-RB-Register Blog.
3.2.1 UC-01-CR-Crawling
Alternative Paths
Postcondition Preference graph is shown to the user.
Exception Paths
Other
3.3.1 Performance
l UC-03-VG-Visualize Preference Graph should be done within up to 3 minutes.
l UC-04-MF-Match Friends should be done within up to 3 minutes.
3.3.2 Security
The user can see any others preference graph and friends list.
3.3.3 Extendibility
This version only supports egloos.com blog. However, the architecture of software
should be designed to be general, so that many blogs will be supported later.
Blog Tag is widely used in these days. To show this, actual blog service is analyzed.
50,821 tags are attached to 744 active blogs. It means each blog has 68.3 tags at average. 68
keywords are pretty good enough to express one’s preferences.
If those 50,821 tags are all unique, tag graph matching algorithm can work well. So
redundancy check is performed. The result is shown in below.
30,464 tags are unique, however about 16% of tags are not unique. And it can be used as a
friend matching algorithm.
* Orkut (SNS) case: user put the keywords under the certain category, then match it based on
the keywords.