FIT3077 Software Engineering
In Sprint 1, each assessment group started work on the Fiery Dragons game by completing (i) a set of user stories, (ii) a Domain Model, and (iii) a low fidelity UI prototype. In Sprint 2, each team member (individually) is to continue the work started in Sprint 1 and add complete the following tasks:
-
● An initial object-oriented design of the Fiery Dragon game (the domain model created in Sprint 1 is to be used as the starting point, but can be modified where required)
-
● A justification (i.e. rationale) for the initial design
-
● An implementation (in the technologies listed in Sprint 1 – they can be changed were required) of
key elements of the design (see below for specific details)
-
● The creation of an executable deliverable of the implementation (together with installation
instructions) so that the implementation can be run and tested on suitable target platforms
-
● A short, max. 3 minutes video that demonstrates how the created implementation works
Further details of each of these tasks is given below. Looking ahead, in Sprint 3 each team is to consolidate the work done by individual team members, take the best ideas and corresponding code bases, and create a complete, fully running implementation of the Fiery Dragon’s game (no extensions required - they will be added in Sprint 4).
Sprint 2 Deliverables (20% of final unit mark – Individual Assessment)
All tasks are mandatory.
1. Object-Oriented Design and Design Rationales
-
● A complete Class Diagram for the Fiery Dragon game, including class names, attributes, methods, relationship between classes, and cardinalities. UML notation is fine, but you can use other notations as well if you wish to do so.
Note: it is strongly recommended that you complete the design task first and think through your solution approach before implementing any code. Reverse engineering designs from source code is – most of the time – a waste of anybody’s time and defeats the purpose of doing a design in the first instance. It is OK if your design is not a perfect match with the source code you are creating as long as the difference is not too substantial. We reserve the right to penalise students where we detect an obvious reverse engineering from a code base.
-
● A summary of how the key game functionalities of
(i) set up the initial game board (including randomised positioning for dragon cards);
(ii) flipping of dragon (“chit”) cards;
(iii) movement of dragon tokens based on their current position as well as the last flipped dragon
-
2. Tech-based Work-in-Progress (software prototype)
Your prototype (implemented using the technologies you chose in Sprint 1) must include
● set up the initial game board (including randomised positioning for dragon cards) and visualisationof the ‘starting board’ based on the ideas you have created with the Low-Fi prototype from Sprint 1 ● one of the other four key game functionalities(i.e. (ii) to (v)) listed above.
Note: it is recommended that not everybody in your team chooses the same other key game functionality. Also, you do not need to implement the full functionality of all classes to demonstrate your chosen other key game functionality and you can rely on partial implementations that only cover what you need for your other key game functionality to work. For example, for key functionality (ii) (flipping of dragon cards), you do not need to demonstrate how a token moves as the result of a particular dragon card being flipped. Your implementation only needs to illustrate how a dragon card can be selected by a user and the flipped card is appropriately visualised as a result thereof. Similarly, for key functionality (v) (winning the game), you can create a situation where a token is already positioned on a suitable field (e.g., two fields away from the relevant cave) and a ‘winning’ dragon card has been flipped.
If specific artwork is created for your user interface (e.g., icons, images for game objects etc.), this can be shared by all team members. However, it needs to be made explicit in your submission who created what art work and/or whether art work was created by Generative AI. No source code can be shared across team members and any shared code fragments will be treated as an academic integrity issue. Frequent commits of your code to your repository helps to establish the origin of any code written.
3. Executable Deliverable -
4. Video Demonstration -
● Prepare and submit a video that demonstrates very briefly the implementation of your software prototype: the set-up of the initial board as well as the key functionality you have chosen.
-
● Maximum 3 minutes for the video is recommended (you may not actually need the entire 3 minutes).
You can submit the demonstration video through Moodle (note the 500MB Moodle file upload size limit), or as an unlisted video on YouTube if file size is too large. If submitting the demonstration as an unlisted YouTube video, please ensure that your video link is committed to your Monash GitLab repository and also included in your Moodle submission. Please also note that we recommend not uploading your video to Moodle at the last minute as there is a risk that Moodle will be very slow and may crash on you (we have experienced this in the past).
Please also check the instructions provided on Moodle on how to create and edit basic videos. We recommend that you keep it simple for this Sprint as the main purpose of the video is to demonstrate to us that you have completed a prototype implementation and that it works.
● Provide an executable of your software prototype implementation that does not require an IDE or any third-party libraries (e.g., PyGame, JavaFX) to be installed separately on a target platform. If your software prototype relies on third-party libraries, they need to be included in your executable. We recommend that, unless you have already done so, you test this out with a small throwaway test application as soon as possible in order to avoid any unnecessary issues ahead of the submission deadline.
● Submit clear instructions on how to build and run the executable of your software prototype, including the target platform(s) the executable will run on (e.g., Windows, Linux, MacOS).
● If we cannot run the executable software prototype, the prototype component will be assessed as a Fail (below ‘Poor’). We will, however, still assess the remaining deliverables based on their merits.
咨询 Alpha 小助手,获取更多课业帮助