swift辅导 | COSC2471/2472 – iPhone Software Engineering

COSC2471/2472 – iPhone Software Engineering
iPhone Software Engineering Assignment 2 September 2019 Page 1 of 7
iPhone Software Engineering
Semester 2 (2019)
Assignment 2
Due: Sunday 13th October, 2019
(11:59 P.M.)
Assignment Type: Individual / Group (3 maximum)
Total Marks: 20 marks (20%)
You job now is to complete your app (complete with all the
features) to a professional standard that is ready to submit to the
App store.
The final deliverable for this assessment is an iOS app with a Swift
4.0 code base and an updated report:
What you need to do
You need to complete and submit:
1. Read this document throughly
2. Read the marking rubric throughly
3. Submit the following:
a. An updated report
b. A Xcode project as your finished app.
If any bugs or points of improvement were discovered in the
prototype these should now be fixed prior to implementing the
additional features.
You should begin working on the assignment on the day the
specification is released.
Your completed app
needs to be finished to a
professional standard.
All features should now
be implemented.
You should have good
quality code that is
cohesive. This means you
should break large classes
into smaller classes and
large methods into
smaller methods. Your
code should also be well
No unused code should
be left in the solution as
commented. If the code
is not being used it should
be removed.
COSC2471/2472 – iPhone Software Engineering
iPhone Software Engineering Assignment 2 September 2019 Page 2 of 7
Finished App
Your finished app should include all of the features you plan to have in your app.
The features should now be fully operational, dynamic and make use of local persistence and
Your client should be able to open the app on a simulator or device and use it as the finished
product. The essential idea behind this implementation that it should represent an app that is
ready to be submitted to the app store.
The app must be developed using storyboards and submissions that create the whole app from
code will not be marked and receive a zero grade.
Using code to create some elements of the app will be accepted, but the app must demonstrate
an understanding of building apps from a storyboard with a minimum of 4 scenes loaded from the
The completion of your app should focus on:
1. implement remote retrieval of data via a REST based service.
2. implement a LOCAL persistance option
(either core data or sqlite).
3. implement Unit Tests that test the business logic of your app.
4. demonstrate the use of Adaptive Layout
5. design and implement a design pattern.
6. implement a facial recognition feature.
7. implement an artificial intelligence feature.
Read the marking rubric very carefully to ensure that you are meeting all the
(Networking, Persistence, Facial Recognition & AI)
The final app must also include a some more advanced features.
Research three networking libraries, complete a comparitive analysis to justify an implementation
in the context of your app.
Implement the networking feature using the library you chose.
COSC2471/2472 – iPhone Software Engineering
iPhone Software Engineering Assignment 2 September 2019 Page 3 of 7
You should now implement your database using the Core Data framework.
Please note other database solutions such as: SQLLite, Firebase, Realm or other cloud based
solutions that manage remote and local data are not permitted to satisfy this requirement.
You can choose to implement such solutions in addition to the core requirement but not in place
of a core data implementation.
Facial Recognition:
Design Facial Recognition facial detection/recognition feature to be used in your app.
Artificial Intelligence:
Develop a case for the implementation of an addtional AI feature within your app. You must also
design your own algorithm to be used in the context of the the AI implementation.
Design Patterns
The apps architecture should be updated to include the use a design pattern of your choosing.
The pattern chosen must be in addition to the basic MVVM pattern and must not be a Singleton.
Your report should detail why you chose this pattern in the context of your app.
Postgraduate students must also update the architecture of the app to use the Coordinator
pattern. You must reseach this pattern on your own and design its implementation for your app.
Unit Tests & UITests
Any UITests should be updated to ensure that they are still operating correctly.
You should also implement unit testing on your model classes.
Auto Layout & Adaptive Layout
The final implementation must ensure that all scenes operate in Portrait and Landscape
orientation via the use of auto layout.
In addition it must demonstrate the use of Adaptive Layout through the use of size classes.
Adaptive layout needs to demonstrate a change in layout between portrait and landscape
The report from your first assignment should be updated to reflect any changes you have made to
the design and/or function of the app as a result of your iterative process of development.
COSC2471/2472 – iPhone Software Engineering
iPhone Software Engineering Assignment 2 September 2019 Page 4 of 7
In addition the report should now identify how and where you have met the requirements of this
It should identify the code files and scenes that have been used to complete each of the
Enjoy! You will learn a lot while creating an app for this assignment. Who knows it could lay the
foundation of your next career!
Any questions regarding this assignment or any of the requirements discussed in the specification
should be directed to the Assignment 2 discussion.
Group Work
Do not work completely independently and then try and merge work together at the end.
Make sure that commits are made to the repository as soon as the feature you are working on has
been completed and tested. This will ensure that if anything goes wrong that you won’t have lost
too much time.
Include an appendix in your report that has a summary log of the contribution of each group
member with dates of contribution.
If you are having trouble with a group member participating you should address this
Within your team a work schedule should be set and if a group member fails to meet that schedule
on two occassions you should report this to the lecturer immediately.
Non functional groups will be split up and the members will be required to work individually.
Marking Guide
The marking guide/rubric can be found in the assignment submission section.
You must read both this specification and the marking rubric in detail to fully understand the
requirements of this assessment.
If anything is unclear, you must post your queries to the discussion forum well in advance of the
due date to ensure clarifications can be made in a timely manner.
Please note that whilst we permit you to work on your own idea, this must be within the context
of what is being assessed as indicated in this marking guide.
COSC2471/2472 – iPhone Software Engineering
iPhone Software Engineering Assignment 2 September 2019 Page 5 of 7
For example: Asking if you have to implement a database because your app doesn’t need
one is not a reason for skipping this part of the assessment.
If your idea doesn’t conform to the marking guide, you will either need to modify your idea or
choose a different idea.
Marking Penalties
All of your Swift code must be object oriented and follow good principles of objected oriented
design. Code that does not follow good object oriented design will incur a 20% marking penalty.
Submitting a corrupted or missing file or code that contains compile time or runtime errors will
also incur significant marking penalties. Make sure that any files you add to your Xcode projects
are located and referenced inside the project and not to an external drive or location.
• A single compilation error will result in a 10% marking penalty.
• Two or more compilation errors will result in a 20% marking penalty.
• Runtime errors will incur a 5% marking penalty for each runtime error encountered up to a
maximum of 20%.
Read the marking rubric very carefully to ensure that you are meeting all the
Submission Instructions
Where you do make use of other references, please cite them in your work.
You should submit the following in a single archive file (zip), please do not use other archive formats:
1. your entire XCode project including any dependencies so your app can be run without the assessor
having to re-configure your app or download and install dependencies.
2. a pdf report that meets the requirements specified above should be included in the root of your
project so it is contained in the zip archive that is uploaded to Blackboard.
You may submit your assignment more than once. The last submission will be the one used for assessment.
We cannot use multiple submissions for the assessment only the latest version will be assessed.
You should submit your assignment each time you complete a major section of the assignment. This will
make sure that you are familiar with the process and don’t have any last minute issues with your final
COSC2471/2472 – iPhone Software Engineering
iPhone Software Engineering Assignment 2 September 2019 Page 6 of 7
YOU MUST download and check your final submission after you have submitted to ensure that it uploaded
correctly and is the correct version.
Incorrect submissions will incur significant late marking penalties that will require you to re-submit when
the error has been discovered.
Extension and Late submission
All requests for an extension should be emailed to the lecturer (rodneyian.cocker@rmit.edu.au).
If you are unable to submit by the due date you WILL be required to provide additional
documentation such as a medical certificate as per university policies.
Extenisons will not be granted without supporting documentation.
A penalty of 10% per day of the total marks will apply for each day late, including weekend. After five days,
you will receive zero marks and the submission will not be marked.
Your instructor can only grant extensions of up to 7 days provided the correct form and
documentation has been submitted. If you require an extension you must apply prior to the
due date by filling out an ‘extension of time’ request and attaching the requisite
The form and documentation should be e-mailed to the lecturer.
■ http://www1.rmit.edu.au/students/assessment/extension
For extensions of greater than 7 days or for those with EAA provisions organised by the DLU:
■ http://www.rmit.edu.au/students/specialconsideration
If you are a student who has EAA provisions organised by the DLU then you must negotiate
any extension you may require with the lecturer well in advance of the submission deadline
(at least 72 hours in advance of the on-time submission deadline would be ideal).
For further information, please see the RMIT website.
You can google search:
• RMIT Extension of Time
(current link: https://tinyurl.com/y8n8sydu)
• RMIT Special Consideration
(current link: https://tinyurl.com/ybpuywnl)
COSC2471/2472 – iPhone Software Engineering
iPhone Software Engineering Assignment 2 September 2019 Page 7 of 7
All assignments will be checked for plagiarism. Any student found to have plagiarised is subject to
disciplinary action. Plagiarism includes
• submitting code that is not your own or submitting text that is not your own.
• copying assignments of the students from previous semester – allowing others to copy your work
via email, printouts, social media etc. – posting assignment questions (in full or partial) on external
technical forums
RMIT electronic submission of work for assessment
I declare that in submitting all work for this assessment I have read, understood and agree to the
content and expectations of the Assessment declaration at the following URL: