CST2550 Coursework 1 Summer Resit/Deferral 2022
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit
CST2550 Coursework 1 Summer Resit/Deferral
2022
1 Brief Task Description
You are required to design and implement a stock management system for a small pet shop. You should use UML diagrams to design the software. You should use Git to version control the software with regular commits and a repository on BitBucket. There should be multiple classes (for the various types of products) and a base class for all products. You should not use any third party libraries or code as a part of your solution and all code should be written by you, i.e. not automatically generated. You should only use standard C++ code and not use any third-party or operating system specific c ode o r headers.
2 Submission
The submission will consist of a single zip file o f a l l r e quired s o urce c o de; a s i ngle M P 4 video file o f a s creencast p resentation a nd a s ingle P DF fi le of th e pr esentation sl ides. Th e de adline is Friday, 29th July 2022.
The source code zip file should include:
● C++ source code files of your program
● C++ source code of catch2 tests which test your code
● a makefile to compile your program
In the presentation you should show your slides while you describe each section. Full details of what should be included in the presentation are given below. The video should be a maximum of 5 minutes long. If the video is longer, only the first 5 minutes will be marked.
Note:
● As anonymous marking will be applied, you should not include your name in your source code or presentation
● To allow the presentation and code to be marked together whilst maintain- ing anonymous marking, your presentation slides; code zip file and screencast must be named using your student ID, e.g. M00123456.pdf; M00123456.zip and M00123456.mp4
● Only source code (header and cpp files) and a Makefile should be included in the zip file, no other files (any other files will not be used when marking your work)
● If code does not compile and run it will severely limit your marks for the code
3 Scenario
A pet shop sells pet food, toys, accessories and books. It is in need of a stock management system to maintain stock records with a text (command line) menu with options to allow the user to perform the following functionality:
● sell items
● restock items (increase stock quantity)
● add new items
● update stock quantity (correct stock levels)
● view a listing of all products and current stock levels
● view a report of sales
● option to load/save data to/from a file
All of the products will have a price, but other information will vary by product type.
4 Detailed Description
It is recommended that you complete the tasks in the following order as the later sub-tasks will require the earlier ones.
4.1 Plan Software
Begin by planning which classes you need and how the software will work using UML diagrams, you should include:
● use case diagram(s)
● class diagram(s)
● activity diagram(s)
● sequence diagram(s)
4.2 Create a Git Repository
Create a Git repository for your coursework on BitBucket. As you create new files, you should add them to the Git repository.
4.3 Implement Classes
Once you are happy with your design, you should implement the classes, you should have a base class for the product with any shared member variables and member functions, and derived classes with product specific members.
You should test these classes before using them.
4.4 Write Makefile
Create a Makefile to compile the classes. As you implement other source code files add them to the Makefile. Your Makefile should be able to compile you project using the command make and should be able to clean your project (remove any compiled files) using make clean.
4.5 Implement the Program
Implement the stock management system using objects of the various classes mentioned above.
Test any methods work correctly and implement a menu for the user to interact with the program. The user input should be validated.
4.6 Plan Presentation
Plan a presentation and create presentation slides detailing the design, implementation, testing and evaluation of your work.
The presentation should include:
● introduction, including:
– your student number
– a brief description of the project (not the coursework task)
● design:
– clearly show each of your UML diagrams
– you should briefly describe what the diagrams are showing (do not just read the diagrams)
● implementation, including:
– your approach, i.e. how you translated the design into working software
– explain what the Makefile was used for
– explain how and why version control was used
– include a screenshot of the BitBucket repository which clearly shows all commits and commit messages
● testing approach, including:
– a statement of the approach used
– how you applied this approach
– details of test cases, clearly showing the tests (don’t show the code)
● conclusion, including:
– a summary of the work
– limitations of your work (don’t list features which aren’t required)
– how you would approach a similar project in the future to avoid these limitations
5 Academic Misconduct
This is individual work and you should complete it yourself. You should not work as a group and each submit the same work (even with minor changes) as your own. Any material or ideas found online, in textbooks, etc should be properly referenced.
You should familiarise yourself with the university’s academic integrity and misconduct policy: https://www.mdx.ac.uk/about-us/policies/university-regulations
6 Extenuating Circumstances
There may be difficult circumstances in your life that affect your ability to meet an assessment deadline or affect your performance in an assessment. These are known as extenuating circum- stances or ‘ECs’ . Extenuating circumstances are exceptional, seriously adverse and outside of your control. Please see link for further information and guidelines:
https://unihub.mdx.ac.uk/your-study/assessment-and-regulations/extenuating-circumstances
7 Marking
The presentation and included code will be marked according the to attached marking scheme. Marking will be anonymous, i.e. the marker will not see the name of the student while marking.
8 Feedback
Provisional marks and written feedback will be available on Moodle within 15 working days of your submission. If you would like clarification or more detailed feedback on your coursework contact your module tutor.
9 Marking Scheme
9.1 Presentation
Item |
Marks |
Introduction (description of the project, not the coursework task) |
5 |
Software design (description and UML diagrams) |
10 |
Software testing (description of testing approach used and evidence of testing) |
10 |
Implementation (description of approach and how the Makefile and version control were used). |
10 |
Conclusion, including: - summary of work done - limitations and critical reflection - how would change approach on similar task in future |
5 |
Layout and clarity of presentation and slides |
5 |
Approximately 5 minutes long |
5 |
9.2 Code
Item |
Marks |
Code quality (follows code guidelines and user input validation) |
10 |
Use of Git (regular commits, clear commit messages) |
5 |
Makefile |
5 |
Implementation matches design |
10 |
Implementation meets requirements |
10 |
Quality of test code (and matches testing approach described in presentation) |
10 |
2022-06-22