578484-603601UniSA STEM
578484-603601UniSA STEM
COMP 1048UO Object-Oriented Programming
Assignment OO Programming
All-That-Dice Game
The University of South Australia Online
SP6 2022
WARNING
This material has been reproduced and communicated to you by or on behalf of the University of South Australia in accordance with section 113P of the Copyright Act 1968 (Act). The material in this communication may be subject to copyright under the Act. Any further reproduction or communication of this material by you may be the subject of copyright protection under the Act.
Introduction
The assignment is intended to provide you with the opportunity to put into practice what you have learnt in the course by applying your object-oriented programming knowledge and skills. It will require you to apply object-oriented methods to design, implement, and test a text-based application software where users can play dice games.
The assignment is worth for 60% of the assessment in this course, and consists of two parts:
Assignment OO Design (30%, due Week 5)
Assignment OO Programming (30%, due Week 9)
This document specifies the tasks for the Assignment OO Programming, which is Python implementation of the software, while it should be read in conjunction with the specification on design given for Assignment OO Design provided as a separate document on the course website.
This assignment is an individual task that will require an individual submission.
This document is a kind of specification of the required end product that will be generated by implementing the assignment. Like many specifications, it is written in English and hence will contain some imperfectly specified parts. Please make sure you seek clarification if you are not clear on any aspect of this assignment.
Course Objectives
By completing this assignment, you are expected to partially fulfill the following course objects:
CO1. Convert a problem statement into an object-oriented solution
CO2. Use inheritance and polymorphism to solve problems
CO3. Debug and fix code defects
CO4. Apply international coding style standards
CO5. Plan and conduct testing of software
CO6. Analyse and explain the behaviour of object-oriented programs
Assignment Learning Outcomes
Implement an Object-Oriented designed software in Python.
Apply object-oriented principles including abstraction, data hiding, encapsulation, inheritance, and polymorphism to software implementation.
Practice Python programming skills including commenting with docstrings, handling exceptions, conducting unit tests, and version control with Git.
The Assignment Task Specification
The task for the Assignment OO Programming is to implement All-That-Dice in Python, a text-based application software designed in Assignment OO Design. The assignment will require you to revise your design in UML, implement, test, and debug the software practising object-oriented programming principles and Python programming skills. In addition, the assignment will require you to use version control to keep track of your implementation as you progress through the assignment and to document your classes appropriately.
Requirement 0. Header comment with personal details.
All of the Python files you submit must have the following block of comments at the top including the filename, description, and your student details:
#
# File: filename.py
# Description: A brief description of this Python module.
# Author: Steve Jobs
# Student ID: 12345678
# Email ID: jobst007
# This is my own work as defined by
# the University's Academic Misconduct Policy.
#
Requirement 1. Correct implementation in Python according to the specification in OO Design.
Your implementation must be in Python 3.9.x or above. Your submission must implement all the features to correctly produce the behaviours and output as specified in the Assignment OO Design specification document. Make sure you have a good review of the Assignment OO Design specification document which describes the features and behaviours of the software in details with sample outputs. The submission will be marked against these specifications and sample output provided in the Assignment OO Design document.
Requirement 2. Apply proper Object-Oriented design principles to implementation.
Your implementation must practice Object-Oriented design principles as following:
Abstraction
Your implementation must include definition of at least 8 classes including the AllThatDice class. All of your code must belong to one of the classes you define, except the import statements and the following code which will run the software:
my_all_that_dice = AllThatDice()
my_all_that_dice.run()
This run() method in the AllThatDice class must be the starting point of your software and call methods of other objects in the system.
Data Hiding and Encapsulation
All of the data attributes defined in your classes must be private. In addition, following conditions must be met on particular attributes:
Players name must not be changeable once initialised (i.e., must be read only).
The number of chips of each player must be only allowed for being increased or decreased by an asked amount but never to be set with a value (i.e., no setter method, but with methods to increase or decrease).
The number of games played and won must be only allowed for being increased by one. (i.e., no setter method, but with a method to increase).
Inheritance and Polymorphism
There should be at least one inheritance relationship used and at least one instance of practicing polymorphism (i.e., overriding a method in the superclass). Overriding an initialiser or string conversion method is not counted (i.e., you must override a method you defined in the superclass). A subclass must not repeat the code already in its superclass.
Requirement 3. Documentation with docstrings.
Your code must be documented appropriately using docstrings.
Each class and each method should have at least one docstring which can be brief. The responsibilities that you have specified in the UML diagram can be used as a starting point for the class docstring.
Document as you go, not all at the end. One strategy is to write a brief comment about what the "1 thing" the method is supposed to do when you declare it, then refer to that comment while implementing it: this helps maintain focus when implementing the method and helps stop yourself from making it do more than the '1' thing it is supposed to do.
Requirement 4. Use consistent coding style.
Your Python code must adhere to consistent coding style. Your class names must be in PascalCase or TitleCase style, while the methods and attributes could be in under_score style. While you may use one or the other it should be consistent throughout your code. If you are not sure, follow the Python style guide available here:
https://www.python.org/dev/peps/pep-0008/Requirement 5. Use exception handling.
Your implementation must use exception handling for dealing with incorrect user inputs or any other type of exceptions. For example, your program should not halt (a.k.a. crash) if the user gives non-numerical input where a number is expected, but rather handle such exceptions using try-except statements.
Requirement 6. Version control using Git.
You must use Git version control to keep track of your progress during implementation. If you are not familiar with Git, please review the material on Week 6.
(Note: Only the local Git repository is required in this assignment. You are not required to use an online version control repository, but if you choose to, please make sure your repository is private.)
You should perform regular commits as you implement features and fix errors (at least 10 commits must be made). Ensure each commit comment contains a short subject line. Your commit comments should reflect the context of the changes that were made in each commita fellow developer can always diff the contents to see exactly what changed but that does not provide the context.
Your submission should comprise your entire version control repository specific to the assignment. For example, you must create the Git repository in the directory for your assignment project. Do not commit your assignment to a repository created in a parent folder or any other location. Your repository must contain all source files required to run your program.
Requirement 7. Conduct testing.
Your submission must include Python module(s) for testing. It is recommended that you test individual methods as you go, rather than trying to test the whole application through the menu-driven interface. Writing code to test specific elements will speed up development as you will not need to constantly enter data through the menu interface.
Your submission should have code for testing the methods of each class you define.
Requirement 8. Updated UML class diagram
Update the UML diagram as you implement the program. You will need to submit an updated UML diagram with your submission.
Work Plan
To complete this assignment OO Programming, you will need to perform the following steps:
Read the assignment specification for Assignment OO Programming carefully, in conjunction with the specification for assignment OO Design.
Setup your project folder with a Git version control. Create Python file(s) you need and make sure they are added to the repository. Make sure you include a block of comments at the beginning of each file.
Implement the classes youve identified from the UML Class diagram of your assignment OO Design. The AllThatDice class and its run() method will be a good starting point, then expand to other classes.
Always include docstrings for documentation as you go. If you do this later, you may forget something, and it is more effort to insert documentation at a later stage.
Remember to use consistent coding style, and also make frequent commits to Git repository.
Make sure your code adheres to the OOP design principles, including abstraction, data hiding, encapsulation, inheritance, and polymorphism.
Update the UML class diagram to reflect your implementation.
Start testing the software early: (1) Write tests for methods as you develop them. (2) Play the game and try out different things.
Include exception handling where necessary based on test results.
Submit your assignment (including both the zip archive of your Python project folder and the UML class diagram).
Submission Details
You MUST submit the following files:
A zip archive (named after your email id, e.g., bonjy007_dice.zip) including your project folder which contains:
One or more Python files that contain the implementation and test modules.
Version control directory (.git folder)
Updated UML Class Diagram in a pdf file and a uxf file, including a note with your student details.
The files MUST be generated from the UMLet modelling tool and be legible: a photo of a hand-drawn diagram will NOT be accepted.
The submission is due by the date and time specified on the submission point on the course website.
This assignment is an individual task that will require an individual submission.
There will be no extensions or late submissions for this course without one of the following exceptions:
A medical certificate is provided that has the timing and duration of the illness and an opinion on how much the students ability to perform has been compromised by the illness. Please note if this information is not provided the medical certificate WILL NOT BE ACCEPTED. Late assessment items will not be accepted unless a medical certificate is presented to the OCF. The certificate must be produced as soon as possible and must cover the dates during which the assessment was to be attempted. In the case where you have a valid medical certificate, the due date will be extended by the number of days stated on the certificate up to five working days.
A Learning and Teaching Unit councillor contacts the OCF on your behalf requesting an extension. Normally you will use this if you have events outside your control adversely affecting your course work.
Unexpected work commitments. In this case, you will need to attach a letter from your work supervisor with your application stating the impact on your ability to complete your assessment.
Military obligations with proof.
Applications for extensions must be lodged on the course website before the due date of the assignment, or as soon as possible after the incident took place.
Note: Equipment failure, loss of data, Heavy work commitments or late starting of the course are not sufficient grounds for an extension. Make sure you make a back-up of your files frequently.
Marking Criteria
Your submission will be marked against the specifications and the marking criteria outlined below. Penalties will be applied if the submission is not submitted in the correct format.
Criteria Mark
Header comment with student details 5
Correct behaviour and output according to specification 10
Adheres to Object-Oriented design principles(abstraction, data hiding, encapsulation, inheritance, and polymorphism) 25
Documentation with docstrings 10
Consistent coding style 10
Exception handling 10
Git version control 10
Testing 10
Updated UML diagram 10
Total Possible Marks 100
Academic Misconduct
This assignment is an individual task that will require an individual submission.
Students are reminded that they should be aware of the academic misconduct guidelines available from the University of South Australia website.
Deliberate academic misconduct, such as plagiarism, is subject to penalties. Information about Academic integrity can be found in Section 9 of the Assessment Policies and Procedures Manual at:
https://i.unisa.edu.au/policies-and-procedures/codes/assessment-policies/
759154117387
UniSA STEM
COMP 1048UO Object-Oriented Programming
Assignment OO Design
All-That-Dice Game
The University of South Australia Online
SP6 2022
WARNING
This material has been reproduced and communicated to you by or on behalf of the University of South Australia in accordance with section 113P of the Copyright Act 1968 (Act). The material in this communication may be subject to copyright under the Act. Any further reproduction or communication of this material by you may be the subject of copyright protection under the Act.
Introduction
The assignment is intended to provide you with the opportunity to put into practice what you have learnt in the course by applying your object-oriented programming knowledge and skills. It will require you to apply object-oriented methods to design, implement, and test a text-based application software where users can play dice games.
The assignment is worth for 60% of the assessment in this course, and consists of two parts:
Assignment OO Design (30%, due Week 5)
Assignment OO Programming (30%, due Week 9)
This document specifies the tasks for Assignment OO Design, while Assignment OO Programming will be specified in a separate document.
This assignment is an individual task that will require an individual submission.
This document is a kind of specification of the required end product that will be generated by implementing the assignment. Like many specifications, it is written in English and hence will contain some imperfectly specified parts. Please make sure you seek clarification if you are not clear on any aspect of this assignment.
Course Objectives
By completing this assignment, you are expected to partially fulfill the following course objects:
CO1. Convert a problem statement into an object-oriented solution
CO2. Use inheritance and polymorphism to solve problems
CO6. Analyse and explain the behaviour of object-oriented programs
Assignment Learning Outcomes
This assignment is for assessing the following learning outcomes:
Design a UML class diagram using UMLet
Apply object-oriented principles including encapsulation, abstraction, inheritance, and polymorphism to the software design
The Assignment Task Specification
The task for the Part 1 of the assignment is to produce a UML class diagram of an application software, called the All-That-Dice, a text-based application software where users can play dice games.
As a text-based application software, All-That-Dice will use a command line interface where users type in a command or input and the relevant output is printed onto the screen in text. When the software is executed, it will show a greeting message and a list of commands, followed by a command prompt > indicating the system is ready to take users input. At the prompt, users can give one of the following commands:
r: register a new player, which will create a new player
s: show the leader board, which will print the list of the players and their statistics
p: play a game, which will start a new game
q: quit, which will quit the application
For registering a new player, the system will ask for the name of the new player. The name is not allowed to be changed after being registered, and also the name must be unique (i.e. not allowed to have the same name as an existing player). A new player is given 100 chips for playing games.
Below is an example of the output on the screen (users input in bold italic).
Welcome to All-That-Dice!
Developed by Alan Turing
COMP 1048 Object-Oriented Programming
What would you like to do?
(r) register a new player
(s) show the leader board
(p) play a game
(q) quit
> r
What is the name of the new player?
> Alan
Welcome, Alan!
What would you like to do?
(r) register a new player
(s) show the leader board
(p) play a game
(q) quit
> r
What is the name of the new player?
> Alan
Sorry, the name is already taken.
What would you like to do?
(r) register a new player
(s) show the leader board
(p) play a game
(q) quit
> r
What is the name of the new player?
> Steve
Welcome, Steve!
Users can play dice games. Only one game will be played at a time, i.e., the game must be finished before playing another game. There are three dice games users can choose from: Odd-or-Even, Maxi, and Bunco. Different dice games have different number of players required. Odd-or-Even is played by one player, Maxi can be played by 3 to 5 players, and Bunco can be played by 2 to 4 players. For playing Maxi or Bunco, users will be asked how many players will play the game at the beginning. If the number of players registered is not enough to play the selected game, an error message will be displayed and return to the main menu. Once the number of players to play the game has been decided, each player needs to input the name and how much chips to bid. If the name does not match to a valid registered player or if the player with the name is already in the game, an error message will be shown and asked again. Each player can only bid up to the number of chips they have. Depending on the game results, the winner will receive the amount s/he bid, while others will lose their bid. If the player has no chips left, then that player cannot play anymore.
What would you like to do?
(r) register a new player
(s) show the leader board
(p) play a game
(q) quit
> p
Which game would you like to play?
(o) Odd-or-Even
(m) Maxi
(b) Bunco
> m
Not enough players to play Maxi.
What would you like to do?
(r) register a new player
(s) show the leader board
(p) play a game
(q) quit
> p
Which game would you like to play?
(o) Odd-or-Even
(m) Maxi
(b) Bunco
> b
Lets play the game of Bunco!
How many players (2-4)?
> 2
What is the name of player #1?
> Bill
There is no player named Bill.
What is the name of player #1?
> Alan
How many chips would you bid Alan (1-70)?
> 100
Invalid number of chips.
How many chips would you bid Alan (1-70)?
> 20
What is the name of player #2?
> Alan
Alan is already in the game.
What is the name of player #2?
> Steve
How many chips would you bid Steve (1-100)?
> 25
After the players and their bids are all set, the game will start. Games that involve multiple players are played in a round-robin manner where each player takes a turn. When needing to throw dice, the player is asked for how strong s/he would throw, choosing a number between 0 to 5 (inclusive), which will affect the outcome by shifting the face up value. For example, if the random number generated by the system was 5, and the players input was 2, the face up value of the die will be 1. The outcome of throwing dice should be printed using the following symbols:
The game of Odd-or-Even has only one player playing with a die. To win, the player has to guess if the die will turn up with an odd or even number. Below are some examples of how it will be played:
Hey Steve, Odd (o) or Even (e)?
> a
Invalid choice.
Odd (o) or Even (e)?
> o
How strong will you throw (0-5)?
> 7
Invalid choice.
How strong will you throw (0-5)?
> 3
Congratulations, Steve! You win!
Hey Alan, Odd (o) or Even (e)?
> e
How strong will you throw (0-5)?
> 1
Sorry, Alan! You lose!
The game of Maxi is played with a pair of dice. Each player in the game takes turn to throw a pair of dice and the player who gets the highest sum of the face up values wins. If more than one player throws the same highest sum, then those players keep playing with others being left out. For example, below is an example of three players playing:
Let the game begin!
Its Steves turn.
How strong will you throw (0-5)?
> 3
Its Alans turn.
How strong will you throw (0-5)?
> 0
Its Bills turn.
How strong will you throw (0-5)?
> 5
Players remaining: Steve, Bill
Its Steves turn.
How strong will you throw (0-5)?
> 1
Its Bills turn.
How strong will you throw (0-5)?
> 5
Congratulations, Bill! You win!
The game of Bunco is played with a set of three dice. There are six rounds in each game, and in each round the players take turns to roll dice in round robin (in the order of the players added to the game). The first round starts from the first player added to the game, then the rest of the rounds starts from the next player after the last player played in the previous round. Once a player in turn rolls dice, one point is awarded for each die that matches the current round number. For example, if two dice has a face up value of 3 after rolled in round 3 that player is awarded 2 points. If all three dice match the current round number (named a "Bunco"), 21 points are awarded. If all three dice match each other but do not match the current round number, 5 points are awarded. If any points are scored in his/her turn, the player gets to roll again, continuing to add to their score in round. If no points are awarded after rolling dice, that player's turn ends, and the next player plays. Each round ends when a player has scored 21 points, which makes rolling a bunco an instant win. At the end of each round, the winner of that round is announced. The game ends when all six rounds are complete. At the end of the game a summary of the scores of each player in each round and the number of buncos played is reported, along with the winner of the game. The player with the most rounds won is the overall game winner, with ties broken by comparing total points scored. If the total points scored are the same, the player who had more Buncos win. Below is an example of three players playing the game of Bunco.
<Round 1>
Its Steves turn.
How strong will you throw (0-5)?
> 5
You earned 1 point, 1 point in total.
Keep playing Steve.
How strong will you throw (0-5)?
> 3
You earned 2 points, 3 points in total.
Keep playing Steve.
How strong will you throw (0-5)?
> 1
You earned no points, 3 points in total.
Its Bills turn.
How strong will you throw (0-5)?
> 2
Bunco!
You earned 21 points, 21 points in total.
Bill is the winner in round 1!
<Round 2>
Its Alans turn.
How strong will you throw (0-5)?
> 5
You earned 2 points, 2 points in total.
Keep playing Alan.
How strong will you throw (0-5)?
> 3
You earned 5 points, 7 points in total.
Keep playing Alan.
How strong will you throw (0-5)?
> 3
You earned no points, 7 points in total.
Its Steves turn.
How strong will you throw (0-5)?
> 0
Bunco!
You earned 21 points, 21 points in total.
Steve is the winner in round 2!
<Round 3>
Its Bills turn.
How strong will you throw (0-5)?
> 2
Bunco!
You earned 21 points, 21 points in total.
Bill is the winner in round 3!
<Round 4>
Its Alans turn.
How strong will you throw (0-5)?
> 1
You earned 5 points, 5 points in total.
Keep playing Alan.
How strong will you throw (0-5)?
> 2
You earned 5 points, 10 points in total.
Keep playing Alan.
How strong will you throw (0-5)?
> 0
You earned 2 points, 12 points in total.
Keep playing Alan.
How strong will you throw (0-5)?
> 3
You earned 5 points, 17 points in total.
Keep playing Alan.
How strong will you throw (0-5)?
> 2
You earned 5 points, 22 points in total.
Alan is the winner in round 4!
<Round 5>
Its Steves turn.
How strong will you throw (0-5)?
> 4
You earned 0 points, 0 points in total.
Its Bills turn.
How strong will you throw (0-5)?
> 2
You earned 2 points, 2 points in total.
Keep playing Bill.
How strong will you throw (0-5)?
> 5
You earned 0 points, 2 points in total.
Its Alans turn.
How strong will you throw (0-5)?
> 5
Bunco!
You earned 21 points, 21 points in total.
Alan is the winner in round 5!
<Round 6>
Its Steves turn.
How strong will you throw (0-5)?
> 4
You earned 0 points, 0 points in total.
Its Bills turn.
How strong will you throw (0-5)?
> 3
You earned 21 points, 21 points in total.
Bill is the winner in round 6!
======================================
Round Steve Bill Alan
======================================
1 3 21 0
2 21 0 7
3 0 21 0
4 0 0 22
5 0 2 21
6 0 21 0
======================================
Total 24 65 50
======================================
Bunco 1 3 1
======================================
Bill won 3 rounds, scoring 65 points, with 3 Buncos.
Congratulations, Bill! You win!
Users can check the leader board to keep track of their performance. The leader board will show the list of all registered players with their details, including their name, the number of games played, the number of games won, and the number of chips remaining. The list must be sorted in the order of the number of chips, and if having the same number of chips, then in the order of winning rate (i.e., the number of games won divided by the number of games played).
What would you like to do?
(r) register a new player
(s) show the leader board
(p) play a game
(q) quit
> s
=============================
Name Played Won Chips
=============================
Alan 11 8 325
Steve 5 4 170
Bill 7 3 170
Elon 15 8 95
=============================
What would you like to do?
(r) register a new user
(s) show the score board
(p) play a game
(q) quit
> q
Thank you for playing All-That-Dice!
Additional Requirements
The aim of the assignment is to allow you to practise creating an object-oriented design and implementing it in Python using object-oriented programming concepts such as abstraction, encapsulation, class inheritance, polymorphism.
In this first part of the assignment, you will need to develop a class design using UML class diagrams in UMLet based on the requirements above and in the remainder of this specification. The focus of the assignment is on identifying classes and applying appropriate relationships between the classes. The UML class diagram MUST include all necessary classes, attributes and methods, and all relationships between classes. Also, visibility, data types, and cardinalities must be specified in detail.
When designing the UML class diagram, you must keep in mind that the design is going to be implemented in the Assignment OO Programming. The UML design should be designed in such a way that code is reused and can be extended easily. Your design must presume the following Python code will run the application software you developed:
my_all_that_dice = AllThatDice()
my_all_that_dice.run()
Think of how this run() method will be the starting point and call methods of other objects in the system to identify classes, their methods and attributes, and their relationships based on reading the assignment task specification.
While more detailed instructions on implementation will be provided with the specification for Assignment OO Programming, the description in this document should provide enough details for designing the UML class diagram. However, if you have any doubt or question while developing the UML class diagram, please contact the Online Course Facilitator (OCF) for clarification through either online forum on the course website or through email.
Work Plan
To complete the Assignment OO Design, you will need to perform the following steps:
Read the assignment specification carefully.
Review the relationships between classes in a UML class diagram: inheritance, association, aggregation, and composition.
Identify which classes are necessary to capture the requirements.
Identify attributes and methods of those classes. Specify visibility for them as well as data types for attributes, parameters and return value of each method.
Identify relationships between classes and add cardinalities and labels to the relationship where applicable.
Revisit all classes and see if you can use inheritance to minimize duplication of code.
If you have an abstract class, then make sure you set its name in italic.
You may add annotations to classes if it helps you later with the implementation (e.g. responsibilities of classes).
Identifying all methods and attributes does not have to be complete at this point in time working on this assignment. However, enough details should be captured in the UML class diagram as it should give you the opportunity to think about the structure and flow of the application before starting the implementation. You can revise it later in the Assignment OO Programming as you progress through the implementation, for example, you may realise you are missing some arguments to a member function or missing an entire function. The marking of this aspect will focus on the appropriate classes and relationships, separation of concerns, and good naming that captures the requirements and concepts described in this assignment specification document.
After completing the design, make sure to include a note with your student details (Full name, Student ID, and email ID) in the diagram, then save it into a uxf file and submit it along with a pdf file to the submission point on the course website.
Submission Details
You MUST submit your UML Class Diagram in a pdf file and a uxf file to the submission link on the course website. The UML class diagram MUST be generated from the UMLet or UMLetino modelling tool: a photo of a hand-drawn diagram will NOT be accepted. The submission must include a note with your student details (Full name, Student ID, and email ID).
The submission is due by the date and time specified on the submission point on the course website.
This assignment is an individual task that will require an individual submission.
There will be no extensions or late submissions for this course without one of the following exceptions:
A medical certificate is provided that has the timing and duration of the illness and an opinion on how much the students ability to perform has been compromised by the illness. Please note if this information is not provided the medical certificate WILL NOT BE ACCEPTED. Late assessment items will not be accepted unless a medical certificate is presented to the OCF. The certificate must be produced as soon as possible and must cover the dates during which the assessment was to be attempted. In the case where you have a valid medical certificate, the due date will be extended by the number of days stated on the certificate up to five working days.
A Learning and Teaching Unit councillor contacts the OCF on your behalf requesting an extension. Normally you will use this if you have events outside your control adversely affecting your course work.
Unexpected work commitments. In this case, you will need to attach a letter from your work supervisor with your application stating the impact on your ability to complete your assessment.
Military obligations with proof.
Applications for extensions must be lodged on the course website before the due date of the assignment, or as soon as possible after the incident took place.
Note: Equipment failure, loss of data, Heavy work commitments or late starting of the course are not sufficient grounds for an extension. Make sure you make a back-up of your .uxf file frequently, especially when working on a web based UMLetino.
Marking Criteria
Your UML Class Diagram will be marked against an expected design. The focus is on the correct identification of classes and their relationships and capturing enough details from this assignment specification. Penalties will be applied if the design is not submitted in the correct format.
Criteria Mark
Correct identification of classes 20
Attributes with datatypes and visibility 10
Methods with parameters, return data types, and visibility. 10
Correct use of inheritance. 15
Correct use of aggregation and/or composition labels, reading directions and cardinalities. 15
Correct use of association with labels, reading directions and cardinalities. 15
Video Presentation on your design 15
Total Possible Marks 100
Academic Misconduct
This assignment is an individual task that will require an individual submission.
Students are reminded that they should be aware of the academic misconduct guidelines available from the University of South Australia website.
Deliberate academic misconduct, such as plagiarism, is subject to penalties. Information about Academic integrity can be found in Section 9 of the Assessment Policies and Procedures Manual at:
https://i.unisa.edu.au/policies-and-procedures/codes/assessment-policies/