首页 > > 详细

Software Design Stage 2 --SOFT2201

Software Design Stage 2 --SOFT2201
 
 
You will continue to work on your 'Stickman' project, both to correct the existing features based on general
class feedback and specific points from your tutor's feedback, and to extend the application with new
features. You will now be required to improve and extend the view package to render the hero and other
domain objects. Feel free to discuss your feedback with your tutor.
Features to implement:
Loading different levels
Levels must be loaded from a json configuration file which gives instructions for a different
assets to be loaded and positioned
Level information must include platforms (that do not move), enemies (that might), a finish line
position, as well as the clouds and hero of the first stage
You will need to rationalise and elaborate on the design of your input format for different levels in
your report
Note: you do not need to have level transitions during execution of the game - the game loads a
single given level file on startup and ends when that level is complete
The hero must be able to stand on platform objects and must not be able to intersect with any object
Levels will contain enemy agents which will harm the hero
if the hero touches them by jumping on top of them, the enemy will disappear
If the hero touches them in any other way, the hero will lose a life and start back at the
originally configured location
The hero is able to cross a finish line, at which time the level (and at this stage the game) will finish
The game must record the current time elapsed since the start of the game until thehero has reached
the finish line
To achieve full marks, you will need to implement an additional feature. You can implement a suggested
feature or you can implement your own, however, please discuss with your tutor about your own feature idea.
Additional Feature ideas:
Different enemy movement personalities
Different physics on different platforms (eg Ice blocks that make thehero slide)
In Stage 2 you are responsible for the design of the entire application code - now including the view package.
You are allowed to use as much or as little of the existing code as you choose, however you should note that
the provided code was not given to you as an example of good design.You may source images however you wish or draw them yourself (ensure you acknowledge any sources in
your readme file)
DDeessiiggnn PPaatttteerrnnss
In order to gain marks for your design and report you must use the design patterns you have been taught so
far wherever you notice a need for them. Please note using the design patterns incorrectly or in places where
they do not provide a benefit will not lead to marks.
Tests
You are required to write jUnit4 tests for your code. These tests must cover the functionality of each of your
classes and must be runnable using gradle test (included in gradle build )
RReeppoorrtt
Your report for this stage must be a maximum of 1000 words, and concisely cover the following:
A brief description of your changes within stage 1 to fix any outstanding issues
A discussion of how your design for stage 1 helped or hindered your extensions made in this stage
Your level configuration design discussion
A report on each design pattern you have used covering
Which design pattern you chose
Where you used it (be explicit as to what classes are involved and in what roles)
What this pattern does for your code in terms of SOLID/GRASP/etc
What overall benefits this provides (be specific to your code, not the pattern in general)
What drawbacks this causes (be specific to your code, not the pattern in general)
A UML class diagram showing your submitted code's design
SSuubbmmiissssiioonn DDeettaaiillss
You are required submit code and tests first, and then later the report - see the due dates in Canvas. You are
encouraged to submit multiple times, but only your last submission will be marked.
You should include a readme file covering any quirks to running your application, a description of your level
configuration file, and any acknowledgements required.
MMaarrkkiinngg CCrriitteerriiaa ((1155%%))
7 Marks for the implementation of the application using the Java programming language. You will be
assessed on the implementation of the requirements and 1 additional feature.
Ensure your application can compile and run on the university's lab machines.
Ensure your application implements the logic described in implementation details
Ensure your application is able to load a configuration file and change the game's settings.
Ensure your application does repeat large sections of logic, try to minimise repetition.Ensure your application code exhibits good OO principles
1 Mark for the implementation of your additional feature and that you ensure it works correctly.
6 Marks for the final report, providing instances of design pattern usage, updated UML class diagram
and addressing issues outlined from tutor feedback.
Document design patterns and the rationale for their usage.
UML Class Diagram should describe the full system including updated code and design patterns.
Reflection of your application design, highlighting any outstanding issues and improvements that
can be made.
2 Marks for test cases of core features, ensure that the logic of your application is correct and handles
test cases. Aim for code coverage, common and corner cases.
Ensure your test cases cover over 90% of execution paths.
Ensure your test cases cover common cases.
Ensure your test cases cover edge cases.
WWaarrnniinngg: Any attempts to deceive or disrupt the marking system will result in an immediate zero for the entire
assignment. Negative marks can be assigned if you do not properly follow the assignment specification, or
your code is unnecessarily or deliberately obfuscated.
AAccaaddeemmiicc DDeeccllaarraattiioonn
By submitting this assignment you declare the following:
I declare that I have read and understood the University of Sydney Student Plagiarism: Coursework Policy and
Procedure, and except where specifically acknowledged, the work contained in this assignment/project is my
own work, and has not been copied from other sources or been previously submitted for award or
assessment.
I understand that failure to comply with the Student Plagiarism: Coursework Policy and Procedure can lead to
severe penalties as outlined under Chapter 8 of the University of Sydney By-Law 1999 (as amended). These
penalties may be imposed in cases where any significant portion of my submitted work has been copied
without proper acknowledgement from other sources, including published works, the Internet, existing
programs, the work of other students, or work previously submitted for other awards or assessments.
I realise that I may be asked to identify those portions of the work contributed by me and required to
demonstrate my knowledge of the relevant material by answering oral questions or by undertaking
supplementary work, either written or in the laboratory, in order to arrive at the final assessment mark.
I acknowledge that the School of Computer Science, in assessing this assignment, may reproduce it entirely,
may provide a copy to another member of faculty, and/or communicate a copy of this assignment to a
plagiarism checking service or in-house computer program, and that a copy of the assignment may be
maintained by the service or the School of Computer Science for the purpose of future plagiarism checking.
联系我们
  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp
热点标签

联系我们 - QQ: 99515681 微信:codinghelp
程序辅导网!