Specification
Introduction
A suitable system to implement. This system must be a data processing system that concerns the creation, storage, management, processing and visualising of a set of data with which you are currently involved.
This implementation MUST be undertaken using the Python 3 programming language (as per the work you have done in your learning sessions).
Part 1 – System Build
Provide a concise written description of your selected data processing system (guideline word count 500 words). This can include diagrams or images if this is required to best support your description. Also, include the user stories that describe the functionality of the system. Whilst this will not directly accrue any marks, it is required to establish if your software implementation satisfies the requirements of the system.
Produce a Python 3 implementation of your chosen system. This must provide the data processing and visualisation relevant to your system and provide a graphical user interface (GUI) to this processing and visualisation.
You must utilise object-oriented programming where appropriate and structure your solution using the module and package approach adopted by good idiomatic Python 3 implementations (also referred to as being Pythonic). It is expected that the structure of your submitted Python project will also reflect this
structure, utilising a main project folder (with any necessary sub-folders) and appropriate Python 3 script files.
You are also expected to provide full documentation of the details of your implementation by including appropriate code comments within your Python 3 script files.
Part 2 – Automated Testing
Provide a set of automated unit tests (using a suitable Python 3 automated testing framework such as the unittest module) that exercise and demonstrate the correct functionality for 4 separate methods taken from a class (or classes) that is involved with part of the data processing in your system. You can choose methods related to any of the CRUD functions. Do not include any method which would require testing of the GUI (this is beyond what was included as part of your learning during the module). Ensure you fully document your test code using appropriate code commenting.
Your automated unit tests must be provided within the Python project in a way that properly separates these tests from the production version of your implementation. Also, the automated unit tests must be able to be run from within the PyCharm Community Edition IDE you have worked with in your learning sessions, using the automated unit testing integration offered by this IDE.
Part 3 – System Function Traceability Report
Produce a report that traces the functionality provided in your software implementation back to the specific requirement for that function in your system description. This must be done by mapping the user stories that represent your system requirements to the various classes and methods of those classes that you have implemented in your software solution.
You must also provide for each trace back a short explanation as to how the mapped class and /or method directly contributes to satisfying the “So that…” aspect of the user story involved.
A recommended approach here is to tabulate your mappings so they can be easily traced.
Part 4 – Reflective Report
You are to write a short reflective report (guideline word count 500 words) focussing on one future trend in computing and considering how new ideas and theories could be applied in the application domain you have developed for this assignment.
You should consider both the potential benefits of the new ideas as well as the inherent complexities and present your reasoned evaluation and conclusions regarding the application of those new ideas within your chosen domain.
If your application is work related, you could conclude your reflective evaluation with recommendations relevant to your employer regarding the adoption, or otherwise, of new advanced computing techniques.
For this reflective report you could consider any one of the following topics or chose any other current computing topic:
Big Data / Data mining or analytics / Data visualisation
Artificial Intelligence / Machine learning
Robotics and Social Interaction
Virtual or Augmented reality
Security within Cloud computing
The internet of things (IoT)
Autonomous Transportation
Wearable devices and sensors
You are not expected to reference research papers or present a very technical explanation of the topic – rather you are expected to focus on the advantages and complexities of applying the theory in your application area.
You should start your reflective report with a short description of your chosen topic (250 words or thereabouts would be appropriate for this) before presenting your evaluation of its application.
Citations of web sources for this is perfectly fine but your sources must be correctly cited and a reference list provided (as per the Harvard referencing scheme).
Quotations should be kept to a very minimum and 90% of the words should be your own.
Deliverables
A zipped archive of your main Python project folder which must include all relevant files need to both run your software implementation and run the automated unit tests. Also, include in this archive the word processed document that contains the concise description of the system and the associated user stories (as required in Part 1). Any details of further instructions or any additional Python 3 libraries (beyond those in the standard Python 3 installation) must also be provided in a readme.txt file (to ensure your software implementation can be run). Provide this archive as a single zip file. This archive will be used when you provide your demonstration of your system.
A single word processed document that contains the traceability and reflective reports required for the Part 3 and Part 4 tasks. Make sure this document is
clearly organised into titled sections and that any diagrams and images are referenced with a figure number. Ensure it is evident which of these sections relates to which assessment task to avoid any ambiguity when your work is considered during marking.
Also, ensure you provide any referenced work within this document (as per the normal Harvard referencing scheme).