- May 15, 2020
悉尼大学SOFT2201课业解析题意：完善“Stickman”项目，根据课堂反馈和导师反馈的具体观点来纠正现有的功能，并使用新功能扩展应用程序。 解析： 功能实现： 1.加载不同的级别：
为代码编写jUnit4测试。这些测试必须涵盖每个类的功能，并且必须使用gradle test(包含在gradle构建中)运行 涉及知识点：软件设计，设计模式，单元测试 更多可加微信讨论微信号：angeal1116pdfSoftware Design Stage 2 – SOFT2201Problem DescriptionUsing the feedback from your first submission, you will need to implement a new set of features, refactor yourapplication, and improve your application’s design through the use of design patterns.Implementation DetailsYou will continue to work on your ‘Stickman’ project, both to correct the existing features based on generalclass feedback and specific points from your tutor’s feedback, and to extend the application with newfeatures. You will now be required to improve and extend the view package to render the hero and otherdomain objects. Feel free to discuss your feedback with your tutor.Features to implement:Loading different levelsLevels must be loaded from a json configuration file which gives instructions for a differentassets to be loaded and positionedLevel information must include platforms (that do not move), enemies (that might), a finish lineposition, as well as the clouds and hero of the first stageYou will need to rationalise and elaborate on the design of your input format for different levels inyour reportNote: you do not need to have level transitions during execution of the game – the game loads asingle given level file on startup and ends when that level is completeThe hero must be able to stand on platform objects and must not be able to intersect with any objectLevels will contain enemy agents which will harm the heroif the hero touches them by jumping on top of them, the enemy will disappearIf the hero touches them in any other way, the hero will lose a life and start back at theoriginally configured locationThe hero is able to cross a finish line, at which time the level (and at this stage the game) will finishThe game must record the current time elapsed since the start of the game until thehero has reachedthe finish lineTo achieve full marks, you will need to implement an additional feature. You can implement a suggestedfeature or you can implement your own, however, please discuss with your tutor about your own feature idea.Additional Feature ideas:Different enemy movement personalitiesDifferent 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 thatthe 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 inyour readme file)Design PatternsIn order to gain marks for your design and report you must use the design patterns you have been taught sofar wherever you notice a need for them. Please note using the design patterns incorrectly or in places wherethey do not provide a benefit will not lead to marks.TestsYou are required to write jUnit4 tests for your code. These tests must cover the functionality of each of yourclasses and must be runnable using gradle test (included in gradle build )ReportYour 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 issuesA discussion of how your design for stage 1 helped or hindered your extensions made in this stageYour level configuration design discussionA report on each design pattern you have used coveringWhich design pattern you choseWhere 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/etcWhat 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 designSubmission DetailsYou are required submit code and tests first, and then later the report – see the due dates in Canvas. You areencouraged 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 levelconfiguration file, and any acknowledgements required.Marking Criteria (15%)7 Marks for the implementation of the application using the Java programming language. You will beassessed 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 detailsEnsure 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 principles1 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 diagramand 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 thatcan be made.2 Marks for test cases of core features, ensure that the logic of your application is correct and handlestest 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.Warning: Any attempts to deceive or disrupt the marking system will result in an immediate zero for the entireassignment. Negative marks can be assigned if you do not properly follow the assignment specification, oryour code is unnecessarily or deliberately obfuscated.Academic DeclarationBy submitting this assignment you declare the following:I declare that I have read and understood the University of Sydney Student Plagiarism: Coursework Policy andProcedure, and except where specifically acknowledged, the work contained in this assignment/project is myown work, and has not been copied from other sources or been previously submitted for award orassessment.I understand that failure to comply with the Student Plagiarism: Coursework Policy and Procedure can lead tosevere penalties as outlined under Chapter 8 of the University of Sydney By-Law 1999 (as amended). Thesepenalties may be imposed in cases where any significant portion of my submitted work has been copiedwithout proper acknowledgement from other sources, including published works, the Internet, existingprograms, 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 todemonstrate my knowledge of the relevant material by answering oral questions or by undertakingsupplementary 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 aplagiarism checking service or in-house computer program, and that a copy of the assignment may bemaintained by the service or the School of Computer Science for the purpose of future plagiarism checking.