ShopNav
Abstract
ShopNav is your new ultimate smart grocery shopping assistant. ShopNav prioritises precision and innovation and provides you with an efficient yet seamless shopping experience. You’ll never waste precious minutes mindlessly walking through shopping isles again, as ShopNav will provide you with the perfectly optimised route to tick off every item from your grocery list. On top of that, ShopNav will integrate with stores to give you all the important information all in one place, and will provide you with personalised grovery lists and real-time price comparisons. Prioritising quality attributes of scalability, reliability, and interoperability, ShopNav will be the definitive solution for your grocery shopping needs. Say goodbye to massive queues and endless searches as your journey will be streamlined, saving you not only effort, but your precious time as well.
Author
Name: Manav Trivedi
Student number: 46988946
Functionality
ShopNav aims to provide a variety of features to improve every shoppers experience:
Quality Attributes
- Scalability: Scalability will be vital to the system, as it will ensure that the application can perform consistently and remain responsive under varying user loads. During peak shopping hours, there will be a larger load posed on ShopNav as more people will be utilising the applications route optimisation feature. The system must be able to dynamically scale to support the increased users, but also scale down during non-peak hours to prevent inefficient use of resources. The architecture must be designed to scale horizontally where more instances or servers can be run simultaneously as user load increases.
- Reliability: Reliability will also be important to ShopNav as users will expect the system to perform consistently and accurately without failure. For ShopNav to perform consistently, it must be able to perform the essential functions of route optimisation accurately, and display correct and up-to-date data about stores and their products. Reliability will be crucial to this application, as users will be using ShopNav to save time when shopping and make informed decisions when spending, hence providing unreliable information will cause users to lose confidence in the system.
- Interoperability: Interoperability will be an important quality attribute to ShopNav as it will ensure that the system can easily share information and exchange data with other systems. ShopNav must be able to integrate with APIs and databases of stores to fetch up-to-date data related to store locations, layouts, product prices and product stock. Since ShopNav will interact with numerous different stores, it is essential that standardised formatting for data and protocols is utilised, and hence this attribute is crucial for ShopNav to communicate effectively with different grocery stores.
Evaluation
- Scalability:
- To evaluate the scalability of the system, load testing by simulating user traffic will assess how the system manages differing user loads from low load during non-peak hours to peak loads. To build on this, stress testing will identify the limits of the system which can potentially identify weak points in the system architecture.
- The evaluation metric for this attribute is the response time to requests made by users at different traffic coniditons. This will measure its ability on how effectively the system is able to scale to accomodate different loads.
- Reliability:
- The approach to evaluate this attribute will be functional testing, verifying that each function in the system behaves as intended and according to its specification. The key functionality to be thoroughly assesed is to check that the route optimisation feature actually provides the quickest route, with correct directions and with all the correct grocery items and prices. However, comprehensive testing for all aspects of the system will need to be performed to ensure maximum reliability and this can be done by unit testing.
- Additionally, time between failure and time to recover will be calculated to assess how the system can recover and handle failures.
- Interoperability:
- This can be evaluated by testing integration with different third-party systems, APIs and databases to check that communication and data exchange is valid. In addition, the formatting for data and protocols will need to be compared against the standardised formatting to check its valid. Testing from different platforms such as browsers, operating systems or different types of devices will be utilised to evaluate consistency.