Senior Design Project

blareweyrSoftware and s/w Development

Dec 13, 2013 (3 years and 7 months ago)

62 views





Bilkent University





Senior Design Project


Social RSS

High
-
Level Design

Report

Supervisor:

Fazlı Can

Jury Members:

Uğur Güdükbay, Özgür Ulusoy

Project Group:

Emre Çağırıcı, Sefa Şahin Koç, Mustafa Özkıdık,
Serhat Yılmaz

Expert:

Seda Yüksel


Decem
ber
28
, 2012

Thi s repor t i s submi t t ed t o t he Depart ment of Comput er Engi neeri ng of Bi l kent Uni ver si t y
i n par t i al ful fi l l ment of t he requi rement s of t he Seni or Desi gn Proj ect cour se CS491.

Departm
ent of Computer Engineering

I


Table of Contents

1. Introduction

................................
................................
................................
................................
........

1

1.1 Purpose of the system

................................
................................
................................
..................

1

1.2 Design goals

................................
................................
................................
................................
..

1

1.3 Definitions, acronyms, and abbreviations

................................
................................
....................

2

1.4 Overview

................................
................................
................................
................................
.......

2

2. Current software architecture

................................
................................
................................
............

3

3. Proposed software architecture

................................
................................
................................
.........

3

3.1 Overview

................................
................................
................................
................................
.......

3

3.2 Subsystem decomposition

................................
................................
................................
............

4

3.3 Hardware/software mapping
................................
................................
................................
........

4

3.4 Persistent data management

................................
................................
................................
........

4

3.5 Access control and security
................................
................................
................................
...........

5

3.6 Global software control

................................
................................
................................
................

5

3.7 Boundary conditions

................................
................................
................................
.....................

6

4. Subsystem services

................................
................................
................................
.............................

7

5. Glossary

................................
................................
................................
................................
...............

7

6. References

................................
................................
................................
................................
..........

8

II


Abstract

For our senior project, we aim to design and implement a system for mobile devices
which simplifies tracking of information flow from multiple social networks such as;
Facebook, Twitter, Google+, Instagram and Linkedin. The system we propose will help user
s
to check easily their notifications in an organized manner. A user will be able to prevent,
allow and group the notifications coming from his/her connections.

In this report, we will focus on the constraints, ethical issues, professional concerns
and ini
tial requirements of our project.

Keywords:

Facebook, Twitter, Social Network, RSS
1



1. Introduction

1.1 Purpose of the system

Social RSS is a system which aims to control notifications, updated events via mobile
phones. It combines different so
cial networks for users and provides notifications. The
system needs to have user
-
friendly interface which enables users to control their
notifications from social networks easily. User can create and manage groups in order to
check his/her updated events.

User can determine whether he/she wants to take
notifications from a person, a group or a social network. The system aims to provide users
with easy control of notifications from his/her connections and social networks.


1.2 Design goals

It is very
important to identify the design goals of our system before composing the
system. Most of our design goals derived from non
-
functional requirements of our analysis
report. Design goals of our system are described below.



Accessibility
: The program can be
accessible for users in Android Market, Google
Play. The person which has smart phone or tablet and has Android operating
system can reach our system, then, can use it. Therefore, it is easy for many
users to access and benefit from the program.



Availabili
ty
: We are planning to make the program free in Google Play initially.
The program will be available for Android users.



Performance
: The program should be fast while users are running it; the
response time needs to be short. Otherwise, users may not want t
o use it in the
long term.



Safety
: Users will share very significant information, their passwords of their
accounts; we need to provide safe environment for users. The system guarantees
users to safety of their account information and their information wi
ll not share
with any other resource.

2




Compatibility
: Our system will include some of popular social networks. In
addition, we can add new social networks to our system. Users can have our
system and use different platform, versions of Android.



Reliability
: The program controls notifications of social networks of users. The
user can check his/her notifications without having problems.



Usability
: The program can be used by different kinds of users. Most of users
want to take benefit from the system without
big effort. Therefore, the system
must have usability property. To provide this property, there must be a user
-
friendly interface and users can easily understand and use the system.


Trade Offs



Functionality


Usability:
Usability is one of the most import
ant design goals of
our system. With a user
-
friendly interface, usability property can provide us with
many and wide range of users. Therefore, the system should not be too complex
to control. In other words, functionality of our system
needs to be basic.
Since
we aim

to make users’ works easier, we prefer usability to functionality. The
users will not need to waste much time to understand our system; they can
easily use it.

1.3 Definitions, acronyms, and abbreviations


The following list is a brief list of

acronyms and abbreviations,

JDK: Java Development Kit

SQL: Structured Query Language

RSS: Rich Site Summary

DB: Database

UI: User Interface

PDF: Portable Document Format

1.4 Overview

Social network applications are installed to mobile phones by users to follow the
updated events. The notifications related to these updated events are stored in a
notification box or directly shown on the screen of the mobile phone. If there are many
3


foll
owed events or the entries from different social networks are updated very often, the
screen or notification box of the mobile phone becomes confusing due to the number of
notification messages. For this reason, users prefer turning the event notifications

off.

As a solution to this problem, we aim to implement a program which facilitates
following many numbers of frequently updated events. By this program, users will have an
organized view of notifications from different social networks in one frame. Manag
ement of
notifications can be configured from one panel and this service avoids a confusing view on
the screen. Since our program eases keeping track of information, users will tend to use
notifications more often in their mobile phones.

2. Curren
t softwar
e architecture


There are a lot of applications that are about social networks and controlling them.
Social networks have their own applications for smart phones and there are different
interfaces, applications, which are designed by developers.

Number o
f registers in Facebook is about 900.000.000, Twitter has about
345.000.000 register
s

and so
on [
1]. There is a big market for software. Therefore, there are
a lot developers and a lot of applications, which are about social networks. These
applications
have about 60.0000.000 users totally; people use these applications in order for
different reasons such as flexibility, their interface, their performance. Combining social
networks, social network aggregation is another good idea and there are some signif
icant
developers who work in this area. There are some applications that provide users with
aggregation property but there are many applications. We want to provide specific features
to our system, then, we aim to create a reason for people to use our appl
ication.

3. Proposed software architecture

3.1 Overview

Our system provides users with easy management for th
eir notifications. The user
can easily

select priorities and it will be easy to create, modify groups. User interface and
other features should be
understood well by user. Therefore, our system must be user
4


friendly, then, each kind of users can take benefits from it. The program allows users to
control social networks, their notifications without big effort.

3.2 Subsystem decomposition


Figure
1
: Subsystems

3.3 Hardware/software mapping

Our program, Social RSS, will run on any Android platform from version 2.3(aka.
Gingerbread) to latest version available, which is Jelly Bean at the time of development.

Therefore, any mobile device (regardless of smartphones or tablets) that has the specified
version of Android will be able to run the program properly. Since these devices do not
require any additional hardware for keyboard or pointer inputs, no addition
al hardware is
required.

We will use SQLite, which is an Open Source Database, to store data on mobile
device. Since SQLite is embedded into Android, no additional installation of this software is
required.


3.4 Persistent data management

SQLite itself
does not validate if the types written to the columns are actually of the
defined type, e.g. you can write an integer into a string column and vice versa.
”[1].
5


Therefore, we need to be careful about the persistency of the data.

These two criteria are
impor
tant for our database:



Time efficiency

Since social networks are updated so frequently, we need to fetch feeds from
internet and store it to database asynchronously. Otherwise if we use synchronous database
management, the user will have to wait for the da
tabase operation to finish. This can be
slow, because it requires the program to access file system of the mobile device.



Storage efficiency

The updates from the social networks will increase very fast and the storage
requirement will be enormous if we k
eep all the data available on the database. Therefore,
we follow a smarter approach. We will only keep latest updates for the groups that user
follows. We will only fetch more feeds from the internet if the user wants to see more from
a particular group.
[
2]


3.5 Access control and security

The user will create a profile after the installation of the program only once and the
program will be logged in until user explicitly logs out. The user can enter the password s/he
created at the installation of the
program to log back in.

Only one user can have profile on a
particular mobile device.

Social RSS
stores critical

login information about s
ocia
l n
etworks,

such as Google+ and
Instagram, to access them. Therefore,
we need to store these information to databa
se
encrypted

to prevent malicious software to use them in case if they reach to these files
.

Social RSS needs to access file system of the mobile device to store its database. There
will be a separate subsystem component to handle the database operations a
nd only that
subsystem of the program will have permission to access file system.

3.6 Global software control

Social RSS is an event driven mobile application.

It need authentication from social networks
to get friend list and feeds from these social netwo
rks.
The program does not post on behalf on the
user and user can limit the access. The program
needs internet connection to get updates and can
6


only access to those social networks is permitted. There will be multiple threads running
concurrently to check

whether there are new feeds available periodically.

3.7 Boundary conditions

Initialization

Initialization condition for Social RSS is a smart phone or table which has Android operating
system. A user can get the system from Google Play. The user can
connect our system via
internet connection. To use our system, he/she needs to have at least one social network
account, such as Facebook, Twitter, Google+, Instagram,


Termination

If the user changes his/her smart phone or tablet, user needs to replace hi
s/her account
with password and username. Nonetheless, if he/she does not have Android operating
system, he/she cannot use Social RSS.


Failure

Most of the failures occur because of the version of the Android operating system; if the
user has older version
s of Android(before 2.4), he/she will fail. There can be problem about
user accounts in his/her social networks, this kind of problems are independent from us.
Other failures will be managed by alerting the user with appropriate error messages.

7


4. Subsyste
m services


Figure
2

: Subsystems wıth ınternal classes

5. Glossary

Social network:

A

web and mobile based technology to support interactive dialogs between
organizations, communi
ties, companies and individuals

(E.g. twitter,
google+, facebook).

Notification system:

A

software system to support infor
mation traffic about what user
expects to
change on a
web
site. When any new action has been done, us
er is informed via pre
-
organized
notification system. For example, when a new art
icle is added int
o Wikipedia, user is informed by e
-
mail.

RSS(Rich Side Summary):

RSS

is a system that feeds frequentl
y updated works such as blogs, news
etc…

Android

Operating System
:

Android

is a

Linux
-
based

operating system

designed primarily
for
touchscreen mobile devices such as smartphones

and tablet computers.

Google Play:

Google Play
, formerly known as the

Android Market
, is a digital

application distribution
platform for android developed and maintained by Google. The service allows users to browse and
download music, magazines, books, movies, tv programs and applications that were published through
Google.

SQLite
: SQLite is a relatio
nal database management system contained in small C programming library.


8


6. References

[1]
http://www.vogella.com/articles/AndroidSQLite/article.html

[2]
http://pdf.aminer.org/000/262/290/data_definition_and_management_techniques_for_inter
active_geo_facility_applications.pdf

[3]Cleme
nts, Bachmann, Bass, Garlan, Ivers, Little, Merson, Nord; Stafford; Addison
Wesley; “Documenting Software Architectures”; 2
nd

Edition 2011.

[4]
Fowler, Martin. et al.


Patterns of Enterprise Application


Architecture”
,

Addison
-
Wesley
Professional, 2002.

[6]
Maier, Mark W. & Rechtin, Eberhardt.


The Art of


Systems Architecting,” 2nd Edition