You are on page 1of 22

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

CS408 COMPUTER SCIENCE CAPSTONE PROJECT

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

Issue Date Details Version Author


Hwayong
1 2008.02.29 1st draft 1.0
Shin
Benjamin
2 2008.03.02 Contents revision 1.1
Longhi
3 2008.03.02 Added appendix A tag feasibility 1.2 Jongil Yoon

SRS v1.2 2 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

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

SRS v1.2 3 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

LIST OF FIGURES AND TABLES


Figure 1 – System Environment ............................................................................................ 7
Figure 2 – Use case diagram.................................................................................................. 8
Table 1 – Use Case List ......................................................................................................... 8
Figure 3 – Preference Graph Generation Process ................................................................... 8
Figure 4 – Crawler use case: Crawling .................................................................................. 9
Figure 5 – User use case: Register Blog ................................................................................ 9
Figure 6 – User use case: Visualize Preference Graph.......................................................... 10
Figure 7 – User use case: Match Friends ............................................................................. 11
Figure 8 – User Interface: Sign-in ....................................................................................... 13
Figure 9 – User Interface: Sign-up....................................................................................... 14
Figure 10 – User Interface: Main ......................................................................................... 15
Figure 11 – User Interface: My Page ................................................................................... 16
Figure 12 - An example of generating graph. ....................................................................... 20
Figure 13 - An example of one-dimensional keywords matching ......................................... 21
Figure 14 - Orkut.com Friend Matching Screenshot ............................................................ 21
Figure 15 - An example of multi-dimensional weighted graph matching.............................. 22

SRS v1.2 4 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

1 Introduction

1.1 Purpose

The purpose of this document is to present a detailed description of the Grafriend v1


(GFv1) project. It will explain the purpose and the different features of the system, the
interfaces of the system, what the system will do, the constraints under which it must operate
and how the system will react to external stimuli. This document is intended for both the
stakeholders and the developers of the system.

1.2 Scope of Project

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..

SRS v1.2 5 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

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

1.5 Overview of Document

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.

SRS v1.2 6 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

2 Overall Description

2.1 System Environment

Blog

Crawler
GFv1

Preference Graph Preference Graph Friend Matching


Visualizer Manager Engine

User

Figure 1 – System Environment

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.

SRS v1.2 7 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

2.2 Functional Requirements Specification

Figure 2 – Use case diagram

GFv1 consists of 4 use cases. Naming convention is shown in below.

Use Case Code Name Description


UC-01-CR Crawling Crawls blog and generate/update
preference graph.
UC-02-RB Register Blog Registers blog to be crawled.
UC-03-VG Visualize Preference Graph See preference graph with visual effects.
UC-04-MF Match Friends Match potential friends and list them.

Table 1 – Use Case List

2.2.1 Crawler use case: UC-01-CR-Crawling

Figure 3 – Preference Graph Generation Process

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

SRS v1.2 8 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

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

Figure 4 – Crawler use case: Crawling

Brief Description
To update Preference Graph, the Crawler periodically crawls blog by polling method.

Initial Step-By-Step Description


1. The Crawler requests Crawling to the Preference Graph Manager.
2. The Preference Graph Manager crawls blogs and generate/update the Preference Graph.

2.2.2 User use case: UC-02-RB-Register Blog


Blog

GFv1
Preference Graph
Crawling
Manager

Register
User Blog

Figure 5 – User use case: Register 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.

SRS v1.2 9 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

Initial Step-By-Step Description


Before this use case can be initiated, the User has already signed-up, signed-in the GFv1
service and accessed the main page of the Preference Graph Manager. Since sign-up and
sign-in are general use cases, it will not be mentioned in this chapter any more.

1. The User selects Register Blog.


2. The User fills in the blog address and submits the form.
3. The system verifies the information, registers
4. Do UC-01-CR-Crawling use case.

2.2.3 User use case: UC-03-VG-Visualize Preference Graph

Figure 6 – User use case: Visualize Preference Graph

Brief Description
The user requests anybody visualized preference graph, so that the user can know people’s
preferences.

Initial Step-By-Step Description


Before the user requests his/her visualized preference graph, it is obvious that the User has
already signed-in the system. Before the user can request others visualized preference graph,
the User must know at least an identifier which can be obtained by the use case Match
Friends.

1. The User selects Visualize Preference Graph with an identifier which is either his/her or

SRS v1.2 10 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

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.

2.2.4 User use case: UC-04-MF-Match Friends

Figure 7 – User use case: Match Friends

Brief Description
The user requests his/her or other friends which have similar preferences.

Initial Step-By-Step Description


Similar with use case Visualize Preference Graph, before the user requests his/her friends, it
is obvious that the User has already signed-in the system. Before the user can request others
visualized preference graph, the User must know at least an identifier which can be obtained
by the use case Match Friends.

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.

2.3 User characteristics

This software is based on the blog tag. So obviously the User should be both blog
owner and tag user.

SRS v1.2 11 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

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.

2.5 Assumptions and dependencies

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.

SRS v1.2 12 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

3 Requirements Specification

3.1 External interface requirements

3.1.1 User interfaces

3.1.1.1 Sign-in

Figure 8 – User Interface: Sign-in

User gets the permission through 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.

SRS v1.2 13 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

3.1.1.2 Sign-up

Figure 9 – User Interface: Sign-up

Make an account. This id and password is used in the sign-in process.

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-

Register Blog → go to 3.1.1.3 main


l Cancel button mouse left click: go to 3.1.1.1 Sign-in.
Related Use Cases: UC-02-RB-Register Blog.

SRS v1.2 14 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

3.1.1.3 Main

Figure 10 – User Interface: 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

SRS v1.2 15 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

3.1.1.4 My Page

Figure 11 – User Interface: My Page

The User can modify information.

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 Functional Requirements

3.2.1 UC-01-CR-Crawling

Use Case Name UC-01-CR-Crawling


XRef 2.2.1 Crawler use case: UC-01-CR-Crawling
2.2.2 User use case: UC-02-RB-Register Blog
2.2.3 User use case: UC-03-VG-Visualize Preference Graph
Trigger The Crawler: by the timer, periodically. Exact timetick is not
decided yet.
The User: by the UC-02-RB-Register Blog and UC-03-VG-
Visualize Preference Graph
Precondition The User registered blog.
Basic Path 1. The Crawler or the User requests crawling to the Preference
Graph Manager.

SRS v1.2 16 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

2. The Crawler or the User define which blog is needed to be


crawled. (default is crawling every blog which is time
consuming)
3. The Preference Graph Manager crawls requested registered
blog and parse tags from it and generate preference graph. Then
store it to the database.
Alternative Paths
Postcondition The Preference Graph is generated / updated.
Exception Paths The blog may not be available (for example, user deleted the
blog), then this generating cannot be done. If the initiator is the
User, then show error message.
Other In this version, blog is limited to only egloos.com

3.2.2 UC-02-RB-Register Blog

Use Case Name UC-02-RB-Register Blog


XRef 2.2.1 Crawler use case: UC-01-CR-Crawling
2.2.2 User use case: UC-02-RB-Register Blog
3.1.1.2 Sign-up
3.1.1.4 My Page
Trigger When the User puts own blog address in signing-up or my page.
Precondition The User has account.
Basic Path 1. The User fills up the blog address.
2. The Preference Graph Manager registers the blog.
3. Do 3.2.1 UC-01-CR-Crawling process.
Alternative Paths
Postcondition The blog is registered
Exception Paths
Other

3.2.3 UC-03-VG-Visualize Preference Graph

Use Case Name UC-03-VG-Visualize Preference Graph


XRef 2.2.1 Crawler use case: UC-01-CR-Crawling
2.2.3 User use case: UC-03-VG-Visualize Preference Graph
3.1.1.3 Main
Trigger When the user sees the main page.
Precondition The User has signed-in.
The User knows the preference graph owner’s user id (if it is
user him/herself, of course he/she knows his/her user id. If it is
other’s graph, then user should get user id from UC-04-MF-
Match Friends)
Basic Path 1. The User selects what graph they want to see. (default is
user’s own graph)
2. Do 3.2.1 UC-01-CR-Crawling process.
3. Preference Graph Visualizer draws the preference graph and
it is displayed to the user.

SRS v1.2 17 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

Alternative Paths
Postcondition Preference graph is shown to the user.
Exception Paths
Other

3.2.4 UC-04-MF-Match Friends

Use Case Name UC-04-MF-Match Friends


XRef 2.2.4 User use case: UC-04-MF-Match Friends
3.1.1.3 Main
Trigger When the user sees the main page.
Precondition The User has signed-in.
The User knows the user id of owner of the friends (if it is user
him/herself, of course he/she knows his/her user id. If it is
other’s graph, then user should get user id from UC-04-MF-
Match Friends)
Basic Path 1. The User selects what friends list they want to see. (default is
user’s own)
2. Friend Matching engine returns friends list (it contains friend
id, similarity, blog address)
Alternative Paths
Postcondition Preference graph is shown to the user.
Exception Paths
Other Number of friend may be a lot.
So, how many number is returned to the User, and how many
number is displayed in one screen is not decided yet.

3.3 Non-functional requirements

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.

SRS v1.2 18 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

APPENDIX A BLOG TAG FEASIBILITY

Blog Tag is widely used in these days. To show this, actual blog service is analyzed.

l egloos blog (www.egloos.com) is used as a sample.


l Number of blog : 744 active blog

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.

Redundant Relative Redundant Relative


Frequency frequency
Tag frequency Tag Frequency
1 30464 84.63% 26~30 9 0.03%
2-5 4832 14.42% 31~35 12 0.03%
6-10 482 1.34% 36~40 6 0.02%
11~15 108 0.30% 41~ 10 0.03%
16~20 42 0.12%
21~25 30 0.08% total 35995 100%

30,464 tags are unique, however about 16% of tags are not unique. And it can be used as a
friend matching algorithm.

* Active blog: attached at least one tag to recent 100 articles.


* Semantic check: many similar tags were founded. For example wow, WOW, world of
warcraft and 와우 represent same game but it is counted as a different tag. It will not be
considered in this version, but should be considered later version.

SRS v1.2 19 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

APPENDIX B USER PREFERENCE GRAPH GENERATING ALGORITHM (DRAFT)

Generate a weighted-graph based on the tag data.

Figure 12 - An example of generating graph.

SRS v1.2 20 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

APPENDIX C FRIEND MATCHING ALGORITHM (DRAFT)

• Current approaching: one-dimensional keywords matching

Figure 13 - An example of one-dimensional keywords matching

* Orkut (SNS) case: user put the keywords under the certain category, then match it based on
the keywords.

Figure 14 - Orkut.com Friend Matching Screenshot

SRS v1.2 21 March 2, 2008


Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.

• Grafriend approaching: two-dimensional weighted graph matching


n Two-dimensional weighted graph matching method gives more reasonable and
accurate result than one-dimensional keywords matching.
n Algorithm to calculate exact similarity percentage is not yet designed. We are
working on analyzing ‘graph matching’ algorithms.

Figure 15 - An example of multi-dimensional weighted graph matching

SRS v1.2 22 March 2, 2008

You might also like