(CSCI321-IT12-4C) Preliminary Technical Report

advertisement
SCHOOL OF COMPUTER SCIENCE & SOFTWARE ENGINEERING
Bachelor of Information Technology (Computing)
FINAL YEAR PROJECT (CSCI321)
TECHNICAL REPORT
Group: News-Sheet (IT12/4C)
Student No.
4322496
4322447
4111199
4322460
Name
Chua Wee Siang
Gao Rong
Jiang Wen Tao
Lai XueYang
Email
wschua005@mymail.sim.edu.sg
rgao001@mymail.sim.edu.sg
wjiang003@mymail.sim.edu.sg
xlai002@mymail.sim.edu.sg
Supervisor:
Dr Loo Poh Kok
Assessor: Mr Premarajan Ponnambath
Page 1 of 51
Document Characteristics
General
FeedMe!
Technical Report
Edition:
002
Edition Date:
22-Dec-2012
Status:
Preliminary Technical Report
Keywords:
Technical Report
Abstract:
This document is the technical report for FeedMe! application
porject.
Document Change Record
Reasons for change
Pages
Affected
Approved
by
Revision
Date
001
01/12/ First edition;
All
2012 Remarks: Preliminary Technical Report
Project
Manager
002
22/12/ Reviewed by Gao Rong
2012
Project
Manager
Page 2 of 51
All
Contents
Document Characteristics .................................................................................................................... 2
1
2
INFORMATION ............................................................................................................................. 6
1.1
Executive Summary ................................................................................................................ 6
1.2
Document Identification .......................................................................................................... 7
APPLICATION DESCRIPTION .................................................................................................... 8
2.1
Introduction ............................................................................................................................. 8
2.2
Objective of System ................................................................................................................ 9
2.3
Definition of Terms and Glossary ........................................................................................... 9
2.4
Business Model Objectives ................................................................................................... 10
2.5
Application Requirement ...................................................................................................... 10
2.5.1
Functional Requirements ................................................................................................... 10
1.
Displaying Feed Site ............................................................................................................. 10
2.
Displaying News from RSS Feed (text-based) ...................................................................... 10
3.
Displaying News from RSS Feed (Graphical-based) ............................................................ 11
4.
Categorization of RSS Feeds ................................................................................................. 11
5.
Searching of News by News Agent ....................................................................................... 11
6.
Searching of News by Keywords .......................................................................................... 11
7.
Sorting of search result .......................................................................................................... 12
8.
Adding search result to list .................................................................................................... 12
9.
Sharing of News .................................................................................................................... 12
10.
Preference Management .................................................................................................... 12
11.
Article Recommendation ................................................................................................... 12
2.5.2
Non-Functional Requirement ............................................................................................ 13
1.
Targeted number of clicks to desired news ........................................................................... 13
2.
Targeted number of clicks to addition of feed links .............................................................. 13
3.
Auto Updating feeds on intervals .......................................................................................... 13
4.
Reduce memory usage........................................................................................................... 13
5.
Reduce CPU processing power ............................................................................................. 14
6.
Displaying News from cached XML feeds ........................................................................... 14
7.
Minimize local storage space ................................................................................................ 14
8.
External Sharing API Usage.................................................................................................. 14
9.
Application Self-Test ............................................................................................................ 14
2.5.3
Other Requirements ........................................................................................................... 15
Page 3 of 51
1.
Advertisement Display .......................................................................................................... 15
2.
Result relevancy .................................................................................................................... 15
2.5.4
System Requirement Analysis ........................................................................................... 16
1.
Proposed Hardware Requirement .......................................................................................... 16
2.
Proposed Software Requirement ........................................................................................... 16
3.
ROLES & RESPONSIBILITIES .................................................................................................. 16
4.
LITERATURE REVIEW .............................................................................................................. 17
1.
2.
Research on current software .................................................................................................... 17
1.2
Bing News ......................................................................................................................... 17
1.3
News Bento ....................................................................................................................... 19
1.4
News360 ............................................................................................................................ 21
1.5
ClassicRSS ........................................................................................................................ 22
Product Comparison .................................................................................................................. 24
5.
PROJECT RISK ASSESSMENT ................................................................................................. 24
6.
SCOPE & PROBLEM ANALYSIS .............................................................................................. 27
7.
RESEARCH ANALYSIS ............................................................................................................. 28
1.
Programming language and Designing Tools ........................................................................... 28
2.
Comparison of Programming Languages .................................................................................. 30
3.
Activity Diagram ....................................................................................................................... 31
4.
Use Case Diagram ..................................................................................................................... 32
5.
Class Diagram ........................................................................................................................... 33
8.
GRAPHIC USER INTERFACE DESIGN .................................................................................... 34
9.
SOFTWARE DESIGN .................................................................................................................. 35
1.
Development Methodology ....................................................................................................... 35
1.1
Scrum Methodology .......................................................................................................... 35
1.2
Scrum Process Flow .......................................................................................................... 37
1.2.1
Product Backlog ............................................................................................................ 38
1.2.2
Sprints............................................................................................................................ 38
1.2.3
Burndown Chart ............................................................................................................ 39
1.2.4
Sprint Review ................................................................................................................ 40
1.3
2.
Issues, Limitations & Constrains ....................................................................................... 40
System Performance .................................................................................................................. 41
2.1 Test Plan .................................................................................................................................. 41
2.1.1
Introduction ................................................................................................................... 41
Page 4 of 51
2.1.2
Purposed Plan ................................................................................................................ 41
Test Items .......................................................................................................................................... 41
2.1.3
Software risk issue......................................................................................................... 41
2.1.4
Features to be tested ...................................................................................................... 42
9.1
Test Types ............................................................................................................................. 42
9.1.1
Functional Testing ......................................................................................................... 42
9.1.2
User Interface Testing ................................................................................................... 42
9.2
Approach ............................................................................................................................... 43
9.2.1
Testing level .................................................................................................................. 43
9.2.2
Testing tools .................................................................................................................. 43
9.2.3
Item Pass/Fail Criteria ................................................................................................... 43
9.2.4
Installation Testing ........................................................................................................ 43
9.2.5
Testing Environment ..................................................................................................... 43
9.3
Test Result Sheet ................................................................................................................... 45
9.4 Project Timeline .......................................................................................................................... 47
10.
MINUTES ................................................................................................................................. 48
Project Meeting #1 ............................................................................................................................ 48
Project Meeting #2 ............................................................................................................................ 50
11.
References ................................................................................................................................. 51
Page 5 of 51
1 INFORMATION
1.1
Executive Summary
FeedMe! is an application found in Microsoft Window 8 app store that provides the reader a one stop
application which allows them to read the latest headline news and social feed of their choice.
Rather than traversing through web pages in the typical browser, the application will display photos in
grid mode, with the relevant news tagged onto the photo, allowing the reader to select the photo and
continue reading more if they choose to do so. Once they click or touch on the photo, the application
will load the news in full to allow the user to read them.
Of course, the user will also be able to login to their social feeds (Facebook, twitter, tumblr etc.) This
allows the application to grab the news and updates from them and display it on our application. They
can also choose to like a page, make a comment on the posts or retag, like how they usually do it on
their social feeds.
The objectives in this project are:
 Developing a light weight desktop application
 Designing visual appealing interactive user interface
 Auto update of news from chosen feeds
 Storing of past news
 Providing readers with preference settings
 Integrating of API from social sites.
 User-friendliness
With such functions in mind, developing this desktop application will be welcomed by the industries
and also by users who are favourable in such multi-function and interactive application. It will not stop
with the above objectives that FeedMe! team aims to develop. A more complexity functionality
application may be developed if the market welcomes such application.
In recent years, application of such newsreaders has been produced in the market; however, not many
have done it for the windwos 8 desktop.
For most web sites have provided RSS feeds, but none has the ability to combine all sites in one
application. Therefore, the usefulness in having this application is essential to many news-reading
users, as they would like to read all news through one application.
Having a glance is also part of the users’ daily life, where news displayed on the front page guided by
the users’ preference which were pre-set, brings the latest news in one glance.
Finally, this project is making the possibility to use the available RSS that most web sites are
providing. Embedding multiple web sites’ feed into one application will also not be an easy task.
Therefore, research on open source available in the market will be also to assist us in developing a
more perfect application.
Page 6 of 51
1.2
Document Identification
This document describes the design of FeedMe! application. This document is prepared by Group for
assessment in final year project.
Page 7 of 51
2 APPLICATION DESCRIPTION
2.1
Introduction
In the current world of Information Technology where the web is growing rapidly, there is a lot of
news published online throughout the whole world. It can be a daunting task to browse through the
entire list of popular news website or social feed.
It is also not efficient to browse through an entire news website just to read the popular news or
headline. Hence with this desktop application, we are able to combine all the popular news and
headline of different news web and social feeds into the main page, allowing readers to glance through
all of them just by launching the application, saving a great deal of time for them to be updated with
the latest news.
Readers are spoilt for choices when it comes to such application, as developers for smartphones and
tablets has been releasing different kind of applications which have the ability to allow them to glance
or read through their popular news or social feed all in one single application. However, a desktop
application that is user friendly and fast which combines all these function may not be readily
available on the market.
The team received this Final Year Project grouping and assignment on the 12th October 2012.
Commencing meetings and research to various commercial products, brainstorming to see we can
come out with a product in which we have vision for.
We have also picked a new platform to develop on, and there might be a few hardware requirements in
which not all of the team members can comply with, thus we decided to start working on the project as
soon as we receive on the outline of the deliverables in order to resolve all these issues the soonest.
As the team consist of working adults, with a day time job (some even works on a weekend), our
development time has shorten and only limited to our own free time. This can be quite a bit of a
challenge as we are also working on integrating popular social feeds (Facebook, twitter etc.) into our
application.
Page 8 of 51
2.2
Objective of System
The objective is to implement a GUI based lightweight desktop news reader application for windows 8
computers with range of users from child to adult, home-based usage to office-usage. Through this
applicaton, user can easily view latest new, photos and vidoes which he/she may interest on through
the intelligent graph user interface, morever, this information can be sorted, archived and shared by
simply click, and the new information will be automatically updated.
Through using the existing technology such as RSS and XML, the application can get changing
information from from internet at the fastest, lightest, economic data transfer possible.
The design goals of RSS reader using XML formatted files are to emphasize simplicity, generality,
and usability over the internet. It is a textual format with strong support via Unicode for languages of
the world. Through the design of XML focuses on documents, RSS news reader will be able to present
structured data and documents onto devices in a well-formatted design.
2.3
Definition of Terms and Glossary
In the RSS system and symbolizes, this technology is widely used in the World Wide Web, mobile
devices and also personal computer. Almost in every device that connects to the internet would have
this function and likely to use it for simple reading purpose.
Some are text-based, graphical-based and interactive-based. RSS uses a set of XML file to pull the
relevant information over the internet and re-beautify it to present on any device in a short and
minimized information format.
The variable length and sized of the text that are provided by the website owner has the ability to
selectively choose the amount of text and graphics to display.
Purpose of RSS read is to minimize the amount of data being used in downloading news to the device
for reading purpose.



Symbology – Refers to the symbol used in the technology.
RSS – Stands for Rich Site Summary. It is a technology that is used to deliver formatted text
and information over a regularly changing content through the internet.
XML – Extensible Markup Language is a set of rules for encoding documents into machinereadable format.
Page 9 of 51
2.4
Business Model Objectives
The final product shall include two different version of software, which comes in either Free Version
or Paid Version.
 Free Version
This version will come packed with advertisements banner which will display advertisements relevant
to the news the reader is currently reading. The banner will strictly not be obstructing the content of
the news or social feeds and will only take up a small amount of space in the entire application.
Advertisers, if they choose to do so, can also specifically request their banners be advertised on our
application for a period of time and reasonable cost.
 Paid Version
This version will have the advertisement banner removed, providing an ad-free application. It will also
be priced very competitively; this is because this application is to show case the individual talent of
our team and our capability to learn and develop an application on a new platform.
The paid version is simply a way of showing us your support. Enabling us to improve our product and
create more innovative and creative application in the future.
2.5
Application Requirement
2.5.1 Functional Requirements
1.
Displaying Feed Site
1. Description
i.
Display title of RSS feed site
2. Input
i.
Customer no needs to enter anything. Once it was open, new sheet will
automatically download.
3. Processing
i.
Download RSS feed file
4. Output
i.
Display RSS feed site titles
2.
Displaying News from RSS Feed (text-based)
1. Description
i.
Display the latest news of the RSS feed site
2. Input
i.
Customer chooses any category of the menu, FeedMe! will
automatically update
3. Processing
i.
Extract the news information from RSS feed to news objects
ii.
Store the news information gathered from RSS feed.
Page 10 of 51
4. Output
i.
If no internet connection, FeedMe! will display the last updated news
list.
ii.
If it has internet connection, the latest news shows on top.
3.
Displaying News from RSS Feed (Graphical-based)
1. Description
i.
Display news with pictures
2. Input
i.
Click news agent
3. Processing
i.
Use RSS to get news and pictures
4. Output
i.
Display the first few sentences of news and its picture
4.
Categorization of RSS Feeds
1. Description
i. Categorize sections. FeedMe! will display customer's favorite news in
"Favorite News" section
2. Input
i. Customer clicks "Favorite News" section
3. Processing
i. FeedMe! will auto save in the folder.
4. Output
i. Display the news list which customer added in
5.
Searching of News by News Agent
1. Description
i.
Search news by news agent
2. Input
i.
Customer enters the agent name and click search button
3. Processing
i.
New sheet will search through internet
4. Output
i.
Display the agent and the latest news.
6.
Searching of News by Keywords
1. Description
i.
Search news by key words
2. Input
i.
Customer enters the key words
3. Processing
i.
FeedMe! constructs search engine URL
ii.
Extract search results which are RSS feed
4. Output
i.
List the search results
Page 11 of 51
7.
Sorting of search result
1. Description
i.
Sort search results
2. Input
i.
Customer uses search engine to search news
ii.
Customer is allowed to choose which agent, which category, which
period of time to search
3. Processing
i.
FeedMe! extracts search results which are RSS feed and sort the list
with customer’s requirements
4. Output
i.
List the search results with customer’s requirements
8.
Adding search result to list
1. Description
i.
Add search result to list/favorite file
2. Input
i.
Customer select the add button
3. Processing
i.
FeedMe! extracts search results which are RSS feed and add the result
to customer’s list/favorite file
4. Output
i.
The search results are already in the list/favorite file
9.
Sharing of News
1. Description
i.
Share news/search results in Facebook/twitter
2. Input
i.
Customer chooses the news which he wants to share in public and
clice Facebook/twitter button
3. Processing
i.
FeedMe! connects to Facebook/twitter login page
4. Output
i.
Share successfully
10. Preference Management
1. Description
i.
Management preferences such as add, delete and remove functions.
2. Input
i.
Customer can choose add, delete and remove button to insert and
remove news/news agent.
3. Processing
i.
New sheet will add or remove or delete news after customer clicked
the button.
4. Output
i.
News/news agent will be added or deleted.
11. Article Recommendation
1. Description
Page 12 of 51
i. FeedMe! shows recommended articles.
2. Input
i. Customer no needs to enter anything.
3. Processing
i. FeedMe! keeps track of article keywords which user read past 7 days
ii. For search engine, FeedMe! create search result object
iii. Comparing the keywords and search result, FeedMe! will recommend
news which includes the keywords or category
4. Output
i. Show recommended news in front page
2.5.2 Non-Functional Requirement
1.
Targeted number of clicks to desired news
1. Description
i.
Few clicks to get the desired news
2. Input
i.
Within 3 clicks user is able to get to the desired news
3. Processing
i.
GUI interface is simple and categorized, download RSS Feed
contents
4. Output
i.
Display user’s desired news contents
2.
Targeted number of clicks to addition of feed links
1. Description
i.
Few clicks to add News feed links
2. Input
i.
Within 5 clicks user is able to add new News feed link
3. Processing
i.
User can search and click on add button to add a new News feed link
4. Output
i.
New News feed link is added to the system
3.
Auto Updating feeds on intervals
1. Description
i.
News will be updated on intervals
2. Input
i.
User can set different interval for retrieving latest news depends on
individual preferences
3. Processing
i.
System will grab the latest news from news feed links
4. Output
i.
Display latest news contents
4.
Reduce memory usage
1. Description
i.
Do not use large memory
2. Input
Page 13 of 51
i.
System will not have memory leak issues
3. Processing
i.
System will use less than 100 MB RAM of memory
4. Output
i.
System does not use large memory
5.
Reduce CPU processing power
1. Description
i.
Do not use large CPU processing power
2. Input
i.
System is designed with simple coding
3. Processing
i.
System will use less than 10% of CPU usage
4. Output
i.
System will not use large CPU processing power causing system to
slow down
6.
Displaying News from cached XML feeds
1. Description
i.
System is available even if there’s no internet access
2. Input
i.
System will have cache of news
3. Processing
i.
System will display last updated cache of news
4. Output
i.
User is able to read archive news even without internet
7.
Minimize local storage space
1. Description
i.
System use little storage space
2. Input
i.
Storage of cache of news is not huge
3. Processing
i.
System will store last 7 days cache of news
4. Output
i.
System does not use up huge storage space
8.
External Sharing API Usage
1. Description
i.
Requires login for sharing of news
2. Input
i.
User is required to login their social network account
3. Processing
i.
System will allow login to social network for sharing of news links
4. Output
i.
User can safely share news links
9.
Application Self-Test
1. Description
i.
System stability
Page 14 of 51
2. Input
i.
System is stable and does not crash easily
3. Processing
i.
Codes are tested and organize
4. Output
i.
System is stable to use
2.5.3 Other Requirements
1.
Advertisement Display
1. Description
i.
Advertising space for advertiser
2. Input
i.
Advertising space is available for advertiser to advertise their services
or products
3. Processing
i.
System display advertisement of services or products
4. Output
i.
Advertiser can promote their services or products on the system
2.
Result relevancy
1. Description
i.
Search result is relevant
2. Input
i.
Search result is relevant to the keywords input
3. Processing
i.
System display most relevant result first
4. Output
i.
System will display relevant search result
Page 15 of 51
2.5.4 System Requirement Analysis
1.
Proposed Hardware Requirement
i.
ii.
iii.
iv.
v.
2.
Intel Core 2 Duo or equivalent and above
Minimum of 1Gb ram
Intel shared graphic card or equivalent
Minimum 500mb of hard disk space
Internet Connectivity
Proposed Software Requirement
i.
ii.
.Net framework 4.0 distribution package
Windows 8 32 bit or 64 bits operation system
3. ROLES & RESPONSIBILITIES
Lai XueYang
Chua Wee
Siang
Project Manager
System Analyst
Requirement Analyst
User Interface Designer
Test Designer
Tester
Programmer
Technical guide
Documentation
Minutes
Page 16 of 51
Gao Rong
Jiang Wentao
4. LITERATURE REVIEW
1. Research on current software
Our team has conducted some online research on the products available on the market. However, we
found no similar desktop application in similar to what we have visualized.
Below is some of the existing application on the market:
1.2 Bing News
Bing News is the default application for Windows 8 developed by Microsoft that allows user to
browse through news; user can select which source of news to be displayed on the front page. It also
offers wide selections of news website to display from.
Page 17 of 51
Page 18 of 51
1.3 News Bento
Developed by Hubrious for Microsoft Windows 8, it is a fluid and beautiful news reader which
supports Google Reader, RSS search and custom source.
Page 19 of 51
Page 20 of 51
1.4 News360
News360 will help you uncover high-quality, relevant articles about the day’s top headlines and your
specific interests and hobbies. The result is personalized news reading experience that is as useful and
intelligent as it is beautiful.
Page 21 of 51
1.5 ClassicRSS
ClassicRSS is a simple feed reader which provides a familiar interface for reading updates from your
news and entertainment sources. Subscribe to your favorite RSS feeds and read the updates the same
Page 22 of 51
way you read your mail. You can also search through your RSS feeds and share links with your
contacts
Page 23 of 51
2. Product Comparison
Software
Bing News
News
Bento
News 360
ClassicRSS
Load
Picture
Yes
Yes
RSS
Search
Yes
Yes
Share
Links/News
No
Yes
Yes
Yes
User
Friendliness
6
7
Free
No
Yes
Social
Sites
No
No
Yes
Yes
No
Yes
No
No
Yes
No
7
6
Yes
No
Yes
Yes
According to the preliminary research, there are a few news feeding applications available online for
leisure or commercial purpose. However, we found out that these applications are neither expensive
nor user- friendly and most do not display picture or photos. Thereby, we propose a solution to create
an application that is free and user-friendly. Our main target audience is home user for leisure purpose.
5. PROJECT RISK ASSESSMENT
The following list describing risk assessment for each identified risk event during our project
development. Each risk event can have multiple Mitigation Strategies and Contingency Plans.
Probability of Occurrence and Estimated Project Impact can be used to “prioritize” risk events for
continuous monitoring throughout the project.
Probability
Very Likely
Guidelines Impact Guidelines for
Scope, Cost, Schedule or
Quality
High (Catastrophic)
70-100%
Probably
Unlikely
40-70%
0-40%
Medium (Critical)
Low (Marginal)
Page 24 of 51
Mitigation
Strategy
Deflection
Transfer Risk to another
party
Mnimize the effect
Accept the consequences
Reject the risk; do
nothing
Control
Retention
Avoidance
Risk Event
Description/Issu
e
Schedule
Risks




Operational
Risks





Technical
Risks



Probability
of
Occurrenc
e
Very Likely
Wrong time
estimation
Resources are
not tracked
properly. All
resources like
staff,
systems,
skills of
individuals
etc.
Failure to
identify
complex
functionalitie
s and time
required to
develop those
functionalitie
s
Unexpected
project scope
expansions
Failure to
Probably
address
priority
conflicts
Failure to
resolve the
responsibiliti
es
Insufficient
resources
No resource
planning
No
communicati
on in team
Requirements Probably
mismatch
Continuous
changing
requirements
No advanced
technology
available or
the existing
technology is
Estimate
d Project
Impact
Mitigatio
n&
Strategy
Contingency Plan
High
Control




High
Control



High
Page 25 of 51
Control




Rational planning
process
Understand and
track estimation
range over time
Understand and
track size/schedule
estimation accuracy
over time
Rework schedule
using evolutionary
or spiral techniques
so that frequent
deliveries are
scheduled
Holding meetings,
and communicate
using kinds of
instant messaging
software
Roles assigned
based on specialist
knowledge
Assign jobs to
members by project
manager
Understand/measur
e current status and
address issues
Don’t start
development until
there is a
reasonably stable
set of requirements
Plan for change
Understand



in initial
stages.
Product is
complex to
implement
Difficult
project
modules
integration.
Legacy
software


Programmin
g Risks


High test
defect counts
Poor
Software
Quality
Probably
Medium
Page 26 of 51
Deflection
(measure) the
realized
productivity
Shield staff, review
the development
process, adjust
plans if necessary,
recognize
underachievement
as an early warning
sign of a
dysfunctional
culture
Better risk
management of the
project and of
technology-specific
issues
• Create test plan for
components
• Cultivate a focus on
software quality
6. SCOPE & PROBLEM ANALYSIS
If user does not receive RSS information for long periods, the information is outdated and unable to
browse because there is no dedicated server for each user to save information. If user does not timely
receive, the information may outdate. Hence, user needs to update RSS frequently to reduce
information outdated.
It’s hard to design an interactive and intelligent application which is hundred percent satisfied by
users. Different user has different preference and habit. It is difficult to cater for all tastes. Simple
GUI, user friendly and clear catalog are necessary for the application.
Favorite file -- News-sheet application has a folder which can stores user’s favorite news. But it needs
some storage to save the articles. Whether the folder includes some sub-folders and how large should
be given for this folder still need discussion.
Usually as long as an XML logo on the website, it means that the site offers RSS service. But not all
the websites provide RSS service. Hence, News-sheet application may not be able to get all the
information through internet.
Export articles. This function allows user to output text. But some RSS readers are not publishing the
full text of the article.
Furthermore, some RSS readers directly output everything, even the label codes and the
advertisement.
Page 27 of 51
7. RESEARCH ANALYSIS
1. Programming language and Designing Tools
In order for us to build a Metro-Style Application for Windows 8, we can utilize the programming
languages (inside the red outline). HTML5/JavaScript is one way of building our application;
however, the combination of XAML/C# or XAML/VB is going to be the way that our team decides to
build our apps upon as we are more comfortable working with them.
C# is a multi-paradigm programming language encompassing strong typing,
imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented
programming disciplines. C# is one of the programming languages designed for the Common
Language Infrastructure. C# is intended to be a simple, modern, general-purpose, object-oriented
programming language.
Visual Basic .NET is the most productive tool for rapidly creating a wide range of Windows, Web,
Mobile, and Office applications built on the .NET Framework. The Visual Basic language is designed
to be human readable and accessible to everyone from novice programmers to advanced system
Page 28 of 51
architects. All of this is built on top of the .NET Framework, which guarantees that programs written
in Visual Basic run with unsurpassed scalability and reliability.
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming
language. It is regarded as an intermediate-level language, as it comprises a combination of both highlevel and low-level language features, it adds object oriented features, such as classes, and other
enhancements to the C programming language.
HTML5 is a markup language for structuring and presenting content for the World Wide Web and a
core technology of the Internet. It is the fifth revision of the HTML and is still under development. Its
core aims have been to improve the language with support for the latest multimedia while keeping it
easily readable by humans and consistently understood by computers and devices. HTML5 is intended
to subsume not only HTML 4, but XHTML 1 and DOM Level 2 HTML as well.
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation semantics
(the look and formatting) of a document written in a markup language. It’s most common application
is to style web pages written in HTML and XHTML, but the language can also be applied to any kind
of XML document, including plain XML, SVG and XUL.
CSS is designed primarily to enable the separation of document content (written in HTML or a similar
markup language) from document presentation, including elements such as the layout, colors, and
fonts. This separation can improve content accessibility, provide more flexibility and control in the
specification of presentation characteristics, enable multiple pages to share formatting, and reduce
complexity and repetition in the structural content (such as by allowing for table-less web design).
Microsoft Visual Studio is an integrated development environment (IDE) from Microsoft. It is used
to develop console and graphical user interface applications along with Windows Forms applications,
web sites, web applications, and web services.
This is our primary development environment.
Page 29 of 51
2. Comparison of Programming Languages
C++
Hybrid /
MultiParadigm
Visual Basic
Static
Static
Static
No
Single class,
multiple
interfaces
No
Yes
Yes
Yes
No
Multiple
None
Feature Renaming
Method Overloading
Operator Overloading
No
Single class,
multiple
interfaces
No
Yes
No
No
Yes
Yes
No
No
No
Higher Order Functions
No
No
No
No
Lexical Closures
No
Mark and
Sweep or
Generational
No
No
Mark and
Sweep or
Generational
No
No
No
None
Reference
Counting
No
Yes
Yes
Yes
Yes
No
Yes
Yes
public,
protected,
private,
internal,
protected
internal
No
Yes
Standard
Library
Yes
All .NET
Languages
Yes
No
No
public,
protected,
private,
"friends"
public,
private
No
Libraries
No
No
No
No
Yes
No
C (via
DCOM)
No
Object-Orientation
Static / Dynamic
Typing
Generic Classes
Inheritance
Garbage Collection
Uniform Access
Class Variables /
Methods
Reflection
Access Control
Design by Contract
Multithreading
Java
C#
Hybrid
Hybrid
Static
public,
protected,
"package",
private
Pointer Arithmetic
No
Yes
Standard
Library
No
Language Integration
C, some C++
Built-In Security
Yes
Regular Expressions
Page 30 of 51
C, Assembler
No
Partial
Support
3. Activity Diagram
Page 31 of 51
4. Use Case Diagram
Page 32 of 51
5. Class Diagram
Page 33 of 51
8. GRAPHIC USER INTERFACE DESIGN
Introduction
Graphic design can refer to a number of artistic and professional disciplines that focus on visual
communication and presentation. Various methods are used to create and combine words, symbols,
and images to create a visual representation of ideas and messages. A graphic designer may use
typography, visual arts and page layout techniques to produce the final result. Graphic design often
refers to both the process (designing) by which the communication is created and the products
(designs) which are generated.
Page layout
The page layout aspect of graphic design deals with the arrangement of elements (content) on a page,
such as image placement, and text layout and style. All the design should be user friendly. And
consideration the special users such as color bind.
User experience design
Considers how a user interacts with and responds to an interface and adjusts it accordingly. A simple,
3-click design is what a normal user looking for. Such, clicking method that reduces the amount of
click user has to perform during each operation, will engage the user’s behavior in a psychological
way. As such, the design of this application is kept simple, instead of user adding each search by
clicking the add button each time he/she wants, we designed it to select multiple and add it once and
for all.
Icon button
Button is very important for application, almost all the websites are using buttons for navigation,
decoration and style. However, clicking multiple buttons can be irritating in a desktop application.
Henceforth, minimizing button usage is important. Application should limit the need to click the same
button more than thrice for the same action to be performed. There are many button styles that are used
by web designers. However, application designers whom perform GUI designing has to consider the
runtime used and the graphical constraint that user might encounter.
Category
For text-rich application that runs on desktop, end-user prefers an option of categorizing the text
accordingly in preference of their liking. For example, newspapers that you read daily without the
category of world, local or sports, and all these categories in a mess, are a headache for the reader.
Henceforth, a good desktop application that provides information shall also provide the ability for
organizing category accordingly along with the preference.
Page 34 of 51
9. SOFTWARE DESIGN
1. Development Methodology
1.1 Scrum Methodology
What is Scrum?
Scrum is an agile approach to software development. Rather than a full process or methodology, it is a
framework. So instead of providing complete, detailed descriptions of how everything is to be done on
the project, much is left up to the software development team. This is done because the team will know
best how to solve the problem they are presented.
Advantages
Disadvantages
Communication can improve across all the teams.
It provides for an open forum, where everyone
knows who is responsible for which item.
Scrum can increase team efficiency by as much as 20
per cent.
Problems are more transparent.
Decision-making is entirely in the hands of the teams
There has to be constant, hands-on management
Roles in Scrum
Scrum has three fundamental roles: Product Owner, ScrumMaster, and team member.
Product Owner
In Scrum, the Product Owner is responsible for communicating the vision of the product to the
development team. He or she must also represent the customer’s interests through requirements and
prioritization. Because the Product Owner has the most authority of the three roles, it’s also the role
with the most responsibility. In other words, the Product Owner is the single individual who must face
the music when a project goes awry.
ScrumMaster
The ScrumMaster acts as a liaison between the Product Owner and the team. The ScrumMaster does
not manage the team. Instead, he or she works to remove any impediments that are obstructing the
team from achieving its sprint goals. In short, this role helps the team remain creative and productive,
while making sure its successes are visible to the Product Owner. The ScrumMaster also works to
advise the Product Owner about how to maximize ROI for the team.
Team Member
In the Scrum methodology, the team is responsible for completing work. Ideally, teams consist of
seven cross-functional members, plus or minus two individuals. For software projects, a typical team
includes a mix of software engineers, architects, programmers, analysts, QA experts, testers, and UI
designers. Each sprint, the team is responsible for determining how it will accomplish the work to be
Page 35 of 51
completed. This grants teams a great deal of autonomy, but, similar to the Product Owner’s situation,
that freedom is accompanied by a responsibility to meet the goals of the sprint.
Page 36 of 51
1.2 Scrum Process Flow
Scrum projects make progress in a series of sprints, which are time boxed iterations no more than a
month long. At the start of a sprint, team members commit to delivering some number of features that
were listed on the project's product backlog. At the end of the sprint, these features are done--they are
coded, tested, and integrated into the evolving product or system. At the end of the sprint a sprint
review is conducted during which the team demonstrates the new functionality to the product owner
and other interested stakeholders who provide feedback that could influence the next sprint.
Page 37 of 51
1.2.1
Product Backlog
The Product Backlog is the master list of all functionality desired in the product. When using Scrum, it
is not necessary to start a project with a lengthy, upfront effort to document all requirements. a Scrum
team and its product owner begin by writing down everything they can think of easily. This is almost
always more than enough for a first sprint. The Product Backlog is then allowed to grow and change
as more is learned about the product and its customers.
1.2.2
Sprints
The sprint backlog is the list of tasks that the Scrum team is committing that they will complete in the
current sprint. Items on the sprint backlog are drawn from the Product Backlog, by the team based on
the priorities set by the Product Owner and the team's perception of the time it will take to complete
the various features. It is critical that the team selects the items and size of the sprint backlog. Because
they are the ones committing to completing the tasks they must be the ones to choose what they are
committing to.
Page 38 of 51
1.2.3
Burndown Chart
During the Sprint the ScrumMaster maintains the sprint backlog by updating it to reflect which tasks
are completed and how long the team thinks it will take to complete those that are not yet done. The
estimated work remaining in the sprint is calculated daily and graphed, resulting in a sprint burndown
chart.
Page 39 of 51
1.2.4
Sprint Review
At the end of each sprint a sprint review meeting is held. During this meeting the Scrum team shows
what they accomplished during the sprint. Typically this takes the form of a demo of the new features.
The sprint review meeting is intentionally kept very informal, typically with rules forbidding the use of
PowerPoint slides and allowing no more than two hours of preparation time for the meeting. A sprint
review meeting should not become a distraction or significant detour for the team; rather, it should be
a natural result of the sprint.
During the sprint review the project is assessed against the sprint goal determined during the Sprint
planning meeting. Ideally the team has completed each product backlog item brought into the sprint,
but it is more important that they achieve the overall goal of the sprint.
We choose scrum methodology for this project, as we felt that this methodology will fill into our
requirements. Comparing scrum methodology with the other methodologies like waterfall model
which may have problem if the design phase has gone wrong and things can get very complicated
during the implementation phase. IBM Rational Unified Process model is a very powerful and
complete methodology; however our team is not an expert in this field which may make the
development process is too complex and disorganized.
While Scrum is not perfect, it is definitely a way to maximize efficiency, improve communication
between team members and provide for an open approach to tackling a project. Scrum methodology
will helps to break the tasks into smaller, manageable parts hence increasing our team efficiency to
complete this project in a limited amount of time. This will allow the stakeholders to have the
advantage of seeing the progress being made every day. Our team will also practice careful decision
making and constantly get feedback from the stakeholders.
1.3 Issues, Limitations & Constrains
Internet connectivity
FeedMe! must work within Internet access. This is the only way to update the latest news. FeedMe!
has 7 days to store the news. If the customer does not have Internet access, and he has updated in 7
days, FeedMe! will display the previous updated news. But if the customer does not have internet
access and haven't updated in previous 7 days, FeedMe! may not display anything.
Application size limitation
In order to controlling the application size of FeedMe!, FeedMe! only can store the news in 7 days.
This function is used to save the space of customer's computer. In another hand, it also limits the
customer to find news which published 7 days ago.
This limitation also affects the "Favorite Folder" which stores the favorite news by customer.
Difficult to share with multiple users
FeedMe! supports to publish in social networks such as Facebook and Twitter with login to customer's
account. But if customer wants to share news with multiple users, it may have some difficulty.
If customer wants to share a new with a particular user, customer has to open the news and copy the
link. Then, use another application send the link to the user.
Page 40 of 51
2. System Performance
2.1 Test Plan
2.1.1 Introduction
This is the Master Test Plan for the FeedMe! project. This plan will address only those items
and elements that are related to the FeedMe! Engine, both directly and indirectly affected
elements will be addressed. The primary focus of this plan is to ensure that the FeedMe!
application meets its requirement of gathering news in accordance with the users’ preferences
and users would be able to specify rules for the types of articles gathered. The project will
have three levels of testing, Unit, System/Integration and Acceptance. The details for each
level are addressed in the approach section and will be further defined in the level specific
plans.
2.1.2 Purposed Plan
The objective of Software Testing helps to identify potential /critical bugs in the software to
ensure its functions reliability and usability. At the same time it is also been used to validate
the software to ensure that it meets the user’s requirements and functionalities.
The entire testing phase consists mainly of:
1. Functional Testing
2. User Interface Testing
3. Installation
4. Performance
5. Environment (network, operating system)
After completing the testing (Factory Acceptance Test) phase and Commission (User
Acceptance Test) phase, it also completed the SDLC (Software Development Life Cycle) of
the project.
Test Items
The following is a list, by version and release, of the items to be tested:
 News feed
 Search Engine
2.1.3 Software risk issue
There are several parts of the project that are not within the control of the FeedMe! application
but has direct impacts on the process and must be checked as well.
 Feedme! must connect to Internet which means computer must have internet
access. Else RSS cannot update the latest news. FeedMe! 2011 will display
the last updated news.
 If user does not receive RSS information for long periods, the information is
outdated and unable to browse, because there is no dedicated server for each
user to save information. If user does not timely receive, the information may
outdate.
Page 41 of 51
2.1.4
Features to be tested
The following is a list of the areas to be focused on during testing of the application.
1.
2.
3.
4.
FeedMe! ability to store the news information gathered from RSS feed
FeedMe! ability to download RSS Feed File
FeedMe! ability to extract the news information from RSS feed to News Object
FeedMe! ability to displays title of RSS feed site and latest news of the RSS feed
site
5. FeedMe! ability to saves an Array of News sites which the user has added and
retrieve the array of news sites which the user has added
6. Search Engine ability to construct Search Engine URL
7. Search Engine ability to extract search results which are RSS feed
8. Search Engine ability to sort search results
9. Search Engine ability to add Search Result to List
9.1 Test Types
9.1.1
Functional Testing
Functional Testing will be test via the software functional requirements and its execution flow
using the user interaction approach to identify, rectify and improve the software usability.
1. Test Objective
i.
Ensure proper application navigation, data entry, processing and its expected
output.
2. Technique
i.
Execute each use cases or functions for validating its expected results.
3. Completion Criteria
i.
All functionalities or functions has been executed and function as per expected.
4. There shall be no consideration criteria for this test phase
9.1.2
User Interface Testing
User Interface Testing is to ensure that proper execution of the interactive interface is able to p
erform as expected.
1. Test Objective
i.
Ensure interactive action using the interface is able to be perform as expected
2. Technique
i.
Execute the proper steps requires to perform the functionalities.
3. Completion Criteria
i.
All functionalities or functions has been executed and function as per expected.
4. There shall be no consideration criteria for this test phase
Page 42 of 51
9.2 Approach
9.2.1
Testing level
The testing for the FeedMe! 2011 project will consist of Unit, System/Integration (combined)
and Acceptance test levels. It is hoped that there will be at least one full time independent test
person for system/integration testing. However, with the budget constraints and time line
established; most testing will be done by the test manager with the developer participation.
Unit Testing will be done by the developer. Proof of unit testing (test case list, sample output,
data printouts, and defect information) must be provided by the developer and verified by the
team before unit testing will be accepted and passed. All unit test information will also be
provided to the test manager.
System/Integration Testing will be performed by the test manager with assistance from the
developers as required. No specific test tools are available for this project.
Acceptance Testing will be performed by the actual end users (represented by team leader)
with the assistance of the test manager and developer.
9.2.2
Testing tools
There are no specific test tools; however, the environment must be set up prior to any testing.
9.2.3
Item Pass/Fail Criteria
The test process will be completed once the newsreader that crawls all possible RSS provided
by the web sites that end user specifies. FeedMe!, targets from home-based users to enterprise
level were updates can be brought to them all in one application.
It will deem completed once the FeedMe! is able to fulfill all search function with regard to
the utilization of keywords. It should allow sorting search result and adding search result to
list.
It also should allow user uses Preference Management such as add, delete and remove
functions.
9.2.4
Installation Testing
The Installation Testing is to ensure consideration has been taken into account for external
factors such as the diversity of hardware specification on different machine and behavior on
operation system (i.e. Windows). This is to ensure that the installation can be completed and
performance at the optimal level.
1. Test Objective
a. Ensure the installation process can be completed successfully and perform
normally.
2. Technique
a. Execute the necessary expected installation procedure is able to perform
successfully.
3. Completion Criteria
a. All installation process is completed successful and no abnormal behavior is
observed.
4. Consideration
a. Ensure that the proper tools and configuration has been installed or running.
9.2.5
Testing Environment
The following elements are required to support the overall testing effort at all levels within the
reassigned sales project:
Page 43 of 51
A.
B.
C.
D.
E.
F.
G.
provide internet access
Intel Core 2 Duo or equivalent and above
Minimum of 2Gb ram
.Net framework 4.0 distribution package
Minimum 500mb of hard disk space
Intel shared graphic card or equivalent
Microsoft Visual Studio 2012
Page 44 of 51
9.3 Test Result Sheet
S/No Description
FeedMe! 2012 Test
1
Add news feed (new category)
Steps
Expected Results
Left panel should show new
category with subscription.
4.
Right click on left panel, choose “Add news” function
Type in URL
Choose “New category” and type in category name “BBC
news”
Click “OK”
1.
2.
3.
2
Add news feed (existing category)
1.
2.
3.
4.
Right click on left panel, choose “Add news” function
Type in URL
Choose existing category
Click “OK”
Left panel should show the new
subscription.
3
Delete news feed
1.
2.
Select on left panel the news to delete
Right click and choose “delete news”
Left panel should not show the
news.
4
Delete category
1.
2.
Select on left panel the category to delete
Right click and choose “delete category”
Left panel should not show the
category.
5
View news
1.
Select news on left panel
Right panel should show news
title, description and link
6
Save and restore subscription
1. Close application
2. Run application
Previously subscribed news
should show up.
7
Search RSS feed availability of
single word
1. Key in search word “stomp”
2. Keyword parse to an online RSS search engine that crawls huge
database of RSS
3. Click “search” button
Any feed that has the keyword
“stomp” should be listed the link
and title in right panel
8
Search RSS feed availability of
multiple words
1. Key in search word “stomp singapore”
2. Keyword parse to an online RSS search engine that crawls huge
Any feed that has “stomp” and
likely from “singapore” should
Page 45 of 51
Status
Remarks
database of RSS
3. Click “search” button
1. Key in nothing
2. Click “search” button
be listed the link and title in right
panel
Pop up to inform user to enter
the key word
9
Search RSS feed with null value
10
Validate search result
1. Key in search word “stomp singapore”
2. Keyword parse to an online RSS search engine that crawls huge
database of RSS
3. Once list the search result, click a “known” invalid link
valid link and invalid link will be
listed
11
View news in search result
1. Key in search word “stomp singapore”
2. Keyword parse to an online RSS search engine that crawls huge
database of RSS
3. Click ‘View News’ button
View News page should come
out and shows the titles and
hyperlinks related to the search
result.
Page 46 of 51
9.4 Project Timeline
7/10/2012 8/29/2012 10/18/2012 12/7/2012 1/26/2013 3/17/2013
Project Proposal
Project Website
Requirement Gathering
Analysis & Design
Development & Testing of Prototype
Finalizing Prototype for DEMO
Preliminary User Manual
Preliminary Technical Design Manual
Development & Testing of Application
Recording of Short Presentaion Video
Technical Manual
User Manual
Final Group Presentaion
Start Date
Duration
Page 47 of 51
10. MINUTES
Project Meeting #1
Venue: Raffles Place
Date & Time: Saturday, 27 Oct 2012, 2pm
Chairperson:
Attendees:
Lai XueYang (XY)
Chua Wee Siang (WS)
Jiang WenTao (WT)
Gao Rong (GR)
N/A
Gao Rong (GR)
Absentees:
Minutes Consolidated By
AGENDA
1.
2.
3.
4.
Read and discuss the project specification
Identify and assign the responsibilities
Discuss on the platform for the news- sheet application
Plan for the timeline based on the requirements
Items Opened:
Item
#
1
2
Discussion Details / Updates
Read and discuss the project
specification
Team has gathered and read
through on the project
specification released by the
supervisor. Team members
then briefly discuss their
understanding of this project.
Identify and assign of
responsibility
Action By
All
All
WS - System Analyst & Tester
& Programmer & Technical
guide
GR- User Interface Designer &
Tester & Documentation &
Programmer & Minutes Taker
XY – Project Manager &
Requirement Analyst & Tester
& Programmer & Technical
guide
WT - Test Designer &
Documentation & Technical
Page 48 of 51
Target End
Date
End of 3rd
Week
End of 1st
Project
meeting
Status
N/A
N/A
guide
3
4
5
6
Discuss on the platform for
the news-sheet application as
well as programming
language to use
Platform: IOS, Android &
Windows 8
Programming language: C#,
VB, Java, Object C
Suggestion to do the proposal
and plan out project timeline
All
XY – Draft
Proposal
XY suggested to come out
with a draft proposal and to
have each members to
contribute into the proposal.
GR – Draft
Application
Discuss on application name
& logo
XY
Each member should come
out with 3 application names
and upload to dropbox. Team
will select the most
comfortable one for final
application name.
Date of Next Meeting
All
Proposed
development on
Microsoft Windows
8 using Visual Studio
2012
Draft
Proposal End of Week
8 (Session 1)
Draft
Application
– End of
Week 9
(Session 1)
Draft Logo –
End of Week
4 (Session 1)
TBA
Next meeting will be held next
Saturday.
There being no other matters, the meeting ended at 3:52PM.
Page 49 of 51
N/A
N/A
Tentatively 3rd
November 2012
Project Meeting #2
Venue: Skype
Date & Time: Saturday, 3 Nov 2012, 2pm
Chairperson:
Attendees:
Lai XueYang (XY)
Chua Wee Siang (WS)
Jiang WenTao (WT)
Gao Rong (GR)
N/A
Gao Rong (GR)
Absentees:
Minutes Consolidated By
AGENDA
1.
2.
3.
4.
Discuss on the types of news sheet application.
Identify the platform for the application.
Discuss on the UI design.
Discuss on the format of the project report.
Items Opened:
Item
#
1
2
3
4
Discussion Details / Updates
Discuss on the types of newssheet application
Team discuss about the types
of news sheet application
based on last meeting,
compared with each other.
Identify the requirements on
Microsoft Window 8
Team researched on some of
the open source components
and that can be used for
identify the requirements as
Windows8 is very new for us.
Create website for further
uploading all relevant data
Team identifies
wordpress.com with domain
name feedmew8 as a suitable
blogs for further uploading all
relevant data.
Suggestion to settle the UI
design
UI should be mostly
Action By
Target End
Date
Status
All
N/A
All
N/A
All
N/A
All –
Download
and install
Microsoft
Page 50 of 51
End of the
week
N/A
implemented by week 8
(session 1)
5
XY suggest GR to install
Microsoft Visual Studio 2012
for UI development.
Suggestion to do the proposal
by parts splitting it
accordingly with each
member
Windows 8 &
Visual Studio
2012
XY
N/A
All
N/A
XY has suggested to come out
with a draft proposal and to
have each members to
contributed into the proposal
6
7
Important milestone to take
note
Team leader, XY informed that
roughly week 6, to submit
project diaries.
Date of Next Meeting
All
TBA
Next meeting will be held in
the next Saturday.
There being no other matters, the meeting ended at 5:00pm.
11. References
Research:
http://email.about.com/cs/rssfeedreaders/gr/
Development Method:
http://en.wikipedia.org/wiki/Systems_Development_Life_Cycle
http://en.wikipedia.org/wiki/Waterfall_model
http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process
http://en.wikipedia.org/wiki/Scrum_(development)
Risk Management:
http://en.wikipedia.org/wiki/Risk_management
Programming Languages:
http://en.wikipedia.org/wiki/Programming_language
http://en.wikipedia.org/wiki/C%2B%2B
http://en.wikipedia.org/wiki/Java_(programming_language)
http://en.wikipedia.org/wiki/Visual_Basic
http://en.wikipedia.org/wiki/C_Sharp_(programming_language)
http://www.jvoegele.com/software/langcomp.html
Page 51 of 51
Tentatively 10th
November 2012
Download