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