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 le 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 le should include:

  C++ source code les of your program

  C++ source code of catch2 tests which test your code

●  a makele 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 rst 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 le and screencast must be named using your student ID, e.g.  M00123456.pdf; M00123456.zip and M00123456.mp4

●  Only source code  (header and cpp les) and a Makele should be included in the zip le, no other les  (any other les 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 le

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 les, 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 Makele

Create a Makefile to compile the classes.  As you implement other source code les 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 les) 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 Makele 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 (dont show the code)

  conclusion, including:

  a summary of the work

  limitations of your work (dont list features which arent 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 Makele and version control were used).

10

Conclusion, including:

- summary of work done

- limitations and critical reection

- 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

Makele

5

Implementation matches design

10

Implementation meets requirements

10

Quality of test code (and matches testing approach described in presentation)

10