程序代写案例-SOFT3202 EXAM

SOFT3202 EXAM
During the ‘Exam Pre-Work’ you have created a repository on https://github.sydney.edu.au under the
repository name “SCD2_2021_Exam” with
the listed collaborators:
• jbur2821
• mmcg5982
• bsch0132
• ttho6664
A snapshot of this repository was taken at the end of week 13 and will be used as a reference when marking
your exam work.
Your task in the timed exam portion of this work is to implement your pretend client’s desired extension to
your pre-work application, and to write a report describing this extension.
SUBMISSION
Your code will be submitted through https://github.sydney.edu.au as in previous work in this unit. Your report
will be submitted to the Exam Report assignment link in the main SOFT3202/COMP9202 Canvas Page. Note
this unit does NOT use a separate exam Canvas Page, the normal in-semester page should be used.
You must have your report uploaded before the close of the exam window. Your last git commit to your
main/master branch within the exam window will be considered your code submission.
EXTENSION
Your required extension will be targeted to the APIs you were assigned to use, and will be different for
different students. At the beginning of the exam window, you will be sent the extension requirements via an
email sent to your @uni.sydney.edu.au email address the same way your API allocation was sent.
Your extension code should be submitted as the latest commit (i.e. HEAD) to your SCD2_2021_Exam
repository’s main/master branch, with the prior commit history also assessable.
Your goals during this extension are as follows, and in the given order of priority:
• The existing application, and the extension feature(s), must compile and run successfully
• You must implement the extension using simple Test-Driven Development practices – that is, you
must modify or add to your test suite for the additional features first, commit that modified test suite
so it can be seen in your commit history, then progressively modify your main code to pass your
modified or added tests.
• You must implement the extension in a way that supports the MEM (Maintainability, Extensibility,
Modularity) design goals discussed during the semester
• You must implement the extension in a way that requires the least modification of the existing code
Note that you are only able to work on your extension in this exam window. You cannot work on adding the
original feature set, whatever was implemented by the end of Week 13 is fixed.



REPORT
Your report must cover the following headings (explicitly these headings, with these contents, in this order,
useful subheadings are encouraged):
• Cover page details:
o List your targeted APIs (note any swapped APIs)
o Indicate your required extension
o Indicate your claimed implemented feature set (Pass, Credit, Distinction)
• Code Modifications made:
o List each source code file modified, added, or removed by your extension work
o For each of these files, discuss what you changed and why. This could be a simple one-line
answer or multiple detailed paragraphs depending on the scale of the change and what
caused it.
o Include before and after UML snippets where appropriate. A full UML diagram of your
application is not required, focus on the packages and relationships that indicate your
changes.
• Feature Modifications made:
o Describe the visible changes to your application from the perspective of a user running it,
from the perspective of features which have changed/added/been removed, and any
changes to the method the user accesses them.
• Base code discussion
o Describe the way your base code influenced your implementation of your extension. In
particular highlight which aspects of your base code made your implementation easier or
more difficult than it could have been. You should ensure you reference design patterns in
this discussion, whether ones you used, or ones you did not.
• Resulting code discussion
o Describe the way your code has ended up after implementing your extension. In particular
highlight what positive or negative impacts your extension has had on the maintainability,
extensibility, and modularity of your code.
• Process discussion
o Describe your development process for your extension.
• [Optional] Alloy specification
o Select a small portion of your application that has some complex interactions between
components including valid paths and invalid paths, where you have used defensive coding
techniques to protect the invalid paths from execution. Your extension work must have
modified this in some way.
Model this portion of your application in Alloy such that the Alloy Analyser can indicate
whether your defensive techniques have protected each invalid path.






MARKING
The marking for this exam is broken up into stages. Each stage has additional requirements to meet and to
have that resulting mark be possible. Note that this mark is holistic for both the code and the report for the
early stages:
24/60 (40% Hurdle)
In order to receive this mark and pass the exam hurdle (regardless of the results of the progressive
assessments) your pre-work and exam work must meet the following requirements:
• Both your pre-work and your exam work code must compile and run successfully in the marking
environment.
o Your code need not be 100% bug free or perfect, but any crashes should be rare
o You may not include unapproved dependencies
o You must provide and document a mechanism for your marker to use their Input and Output
API accounts/authorisation keys
• Your pre-work must implement the Pass feature set specified for your targeted APIs
• Your exam work must implement the required new feature(s)
• Your pre-work code and exam work code must be free of major, obvious design flaws. Examples of
these (which are not a complete list) would be:
o ‘God classes’ or ‘god methods’ that know too much or do too much. Break your
implementation down into components.
o Spaghetti code, where functionality or data that should be kept together is split over many
methods or classes
o Major breaches in encapsulation – public attributes, liberal use of instanceof, etc
• Your report must contain the required headings, and be generally coherent
Note: These are the minimum requirements to pass this exam and unit. It is recommended you do not move
on to the more advanced features/requirements until you are confident you have met these.
If you do not meet the above criteria your maximum mark for the exam will be 23/60, and your maximum
result for the unit will be FA.
30/60 (50% Pass)
In order to receive this mark your pre-work and exam work must meet the following requirements:
• You must meet the 40% threshold requirements
• You must have correctly followed the simple Test-Driven Development practices during both your
pre-work and exam work, with initial commits containing failing tests that later commits pass.
• Your report must correctly indicate the changes you have made to your pre-work during the exam
extension
If you correctly deliver the above (both the 40% and 50% requirements) then your exam mark will be at least
30/60, with a maximum of 38 (~64%). Subsequent marking criteria will increase the ceiling on your mark,
with the quality of your code and report contributing to raise your mark between 50% and the given ceiling.
To increase your maximum mark to 44/60 (~74%) and allow a Credit result for the exam, your pre-work must
implement the Credit feature set specified for your targeted APIs (the database caching)
To increase your maximum mark to 50/60 (~84%) and allow a Distinction result for the exam, your pre-work
must implement the Distinction feature set specified for your targeted APIs (concurrency)
To increase your maximum mark to 60/60 (100%) and allow a High Distinction result for the exam, you must
include the optional Alloy specification section in your exam report, which must correctly specify the
behaviour you have chosen to model and be free from major errors.
Marks between 50% and your qualified ceiling will be obtained through your code demonstrating the MEM
goals, style, documentation, and other non-core requirements listed in the pre-work specification, and the
clarity and insight demonstrated in your report, with equal weight between the two.

欢迎咨询51作业君
51作业君 51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: ITCSdaixie