1 Problem Description
In this project, you are expected to implement a software system for the following:
Background: The SmartShoppers system is an online system that allows customers to find products in the physical retail stores with a greater precision. The main goal of the software system is to provide the customers with afaster and smooth shopping experience in store. SmartShoppers would allow customers to find the products that are available in a specific store and its location in the store. This product will have many benefits to the customer andthe SmartShoppers Inc. The customer will have financial benefits as they are able to save money by being providedall the on sale items. The customer also is able to find recommended products which they might not have had a chance to find in store. The customer saves time shopping because they know the exact locations of the products which they would like to purchase. ShoppersLand Inc. would benefit financially as they will sell more products because of the SmartShoppers online system. ShoppersLand’s employees would also be able to work efficiently as they will be asked fewer questions by the customers regarding the products.
Specifications: The detailed specification is in Software-Requirement-Specification.pdf.
2 Getting Started
There is no template for the course project. You should create your own Eclipse project.
You can use maven or gradle2 to maintain the libraries and dependencies of your project.
You are suggested to follow MVC3 model (i.e., Model–view–controller) to separate meta models, business logic, and GUI components during developing the project.
• Your project must be a Java GUI project.
3 You Tasks
4.1 Implement the System (50%)
You are expected to develop valid implementations and meet all the listed requirements in the software requirement specification document. (See attached document)
• You can design and implement your system with any design patterns that are applicable.
(Singleton pattern, factory pattern, abstract factory pattern, prototype pattern, builder pattern, adapter pattern, bridge pattern, iterator pattern, observer pattern…)
Your system should have basic Java GUI interfaces. You can use any third-party GUI libraries in your project.Database is not required, you can use text files (or csv file) to mimic the database. Good GUI implementation will get 5 bonus points.
You could make any assumption for any requirement (scenario, business logic, etc), while your assumptionsshould be reasonable and justified in your report.
4.2 Write Test Cases to Test Your Project (20%)
You are required to add as many tests as you judge necessary to test the correctness of your implementation.
You must add at least 2 test cases for each requirement, and all of them must pass. (In fact, you should write as many as you think is necessary.) Let’s skip the GUI related classes when writing tests.
You will be assessed by the quality of your tests via the code coverage. For the non-GUI classes,the average code coverage should be larger than 80% (i.e., after executing your test cases,more than 80% code should be covered). You can use JaCoCo4 to measure the code coverage of your test cases. JaCoCo has an Eclipse plugin which is available in the Eclipse Marketplace.
本网站支持淘宝 支付宝 微信支付 paypal等等交易。如果不放心可以用淘宝交易！
E-mail: email@example.com 微信:itcsdx