190 likes | 333 Views
Firefox 6 Architectural Enhancement (Fully Optimized Favourites ). By Fully Optimized eXperience (FOX) James Brereton - 06069736 Katie Tanner - 06060472 Gordon Krull - 06003108 Rob Staalduinen - 06009513 . Presentation Overview. Introduction Enhancement Implementations
E N D
Firefox 6 Architectural Enhancement (Fully Optimized Favourites) By Fully Optimized eXperience (FOX) James Brereton - 06069736 Katie Tanner - 06060472 Gordon Krull - 06003108 Rob Staalduinen - 06009513
Presentation Overview • Introduction • Enhancement • Implementations • Stakeholders & NFRs • SAAM Analysis • Sequence Diagrams • Testing • Limitations • Lessons Learned & Team Issues • Conclusions
Introduction • Everyone uses bookmarks for quicker access to their favourite pages, but we felt that we could improve upon this • Therefore, our enhancement is a way to give users very fast access to their favourite pages • Will work in conjunction with the current system so that it will not hinder performance when loading other web pages but still allow for faster access
Enhancement • The main goal of our enhancement is to allow for instant access of a user’s favourite pages by ensuring that pre-rendered, cached versions of the page are continuously updated • Implementation of this enhancement requires the addition of modules and function calls in the UI, Gecko and the Data Persistence • The rationale behind this enhancements is the large amount of unused idle time that tends to exist in a user’s web-browsing session • The UI would see the addition of button next to the “awesome bar” presenting the user with a drop down of their favourite pages
Implementation 1 • Proposed Design: • Add Favourites Data Component to Data Persistence which holds pre-parsed data, header files, and address of top favourites • Every X amount of time, Favourites Data makes a request to Necko for the header for one of its top favourites and checks for differences • If different, gets full website data and then sends it to Content Model and replaces header file in Favourites Data • After Content Model has manipulated data, the data is sent to Frame Constructor for final rendering before being send back to Favourites Data for storage
Implementation 2 • Proposed Design: • Would also add Favourites Data component to Data Persistence, but only store parsed data and addresses • An Update Module would be added to Gecko, which would store header files and addresses • Update Module would poll Necko for updates to the favourite sites whenever Necko had idle time • As before, compares header files and retrieves data if they differ • Sends to Content Model for rendering, header files are stored in the module and rendered data gets sent to Favourites Data
Chosen Design • Based on our SAAM Analysis, we have decided to choose Implementation 2 • Deciding factors: • Elimination of impact on browser performance, as this feature should never affect standard browsing • Fewer dependencies between subsystems eases modifiability and integration
Testing • Subsytems the enhancement would interact with that need to be tested include: • User Interface • Necko • Data Persistence • Tests planned for each subsystem • User Interface- Measure time required to render the page, ensure it’s not hindering performance • Necko- Ensure resource allocation is being handled correctly and not interfering with the retrieval of non-favourite sites • Data Persistence- Make sure cached websites don’t inflate data persistence and hinder standard browsing
Limitations • Limitations: • Impossible to determine the full impact on the system without actually having the time to implement the feature • We have no prior experience developing for a large-scale project such as Firefox
Lessons Learned and Team Issues • Lessons Learned: • Knowledge of concrete architecture made it much easier to determine how our enhancement would affect each component of Firefox as well as how it would affectNFRs • Trade-offs betweenNFRsare unavoidable • Team Issues: • Found it much easier to collaborate on Brain-Storming potential enhancements and implementation details compared to previous deliverable
Conclusions • We chose to implement a ‘Top Favourites”feature to Firefox which allows users to select approx. 5 pages to be continually updated in cache • Stakeholders: end users and developers • Considered 2 alternatives, and based on a SAAM analysis, chose one consisting of adding a Favourites Data component to Data Persistence and an Update Module to Gecko • Overall layered architecture is preserved; no significant changes to the design other than the addition of components