ICT365 Major Assignment One This assignment aims to provide a .NET solution to a specific simulation problem. To solve this problem, you need the knowledge gained from the first Topics of this Unit. You may also need to undertake independent research to find out some .NET framework classes required in your solution. This assignment is worth 20% of the total unit assessment. Learning Outcomes Assessed in this Assignment Demonstrate fluency in a contemporary programming language and software development framework. Implement and document an object-oriented programming solution using object-oriented analysis and design techniques. Evaluate and demonstrate the theory and concepts of contemporary/ industry standards programming and design in the software development life cycle. Demonstrate awareness of industry standards of software development. Critically appraise the use of various software development frameworks. Description of the Problem Geospatial-based Recommender System using Social Networks and Multimedia Murdoch University is conducting research in Assistive Technologies for Dementia Sufferers and Carers, specifically to combat the group of symptoms present in the early stages dementia, and that affect mental cognitive tasks such as memory and reasoning and reduce Quality of Life. (Refer to the Appendix at the end of this document for definitions.) The system is dependent on a person using lifelogging technology to input valuable personal information into the system, e.g. by uploading geotagged photos or status updates. The system can then use Artificial Intelligence (AI) to learn habits, cues, to support someone in their daily activities. The AI (in its simplest form, merely retrieving the “nearest” lifelogged information) will support the human memory and reasoning systems, for instance by knowing which photos, and other information, can be used at the appropriate moment to trigger memories. The GPS-enabled reminder system acts as a kind of “cognitive scaffold” supporting recall of important events, people, and so on in a persons’ environment. This integrated help can provide security to the user, by mitigating against anxiety, and even reduce care giver stress by lending support to daily activities and interactions. Figure 1. Example map with images of friends, family, associates displayed Your role is to create a simulation program that implements certain core features of the desired end-product. It will be WinForms-based C#.NET program that has a map as a foundation, and clicking on this map will result in one of two actions: - STORE EVENT: Add a new event to the lifelog list of events - RETRIEVE EVENT: Retrieve and display the most relevant information that is stored in the lifelog list of events, given the time/location/current profile The lifelog events are stored in a SOAP XML file. SOAP is a specific flavour of XML often used to return queries from collections. The following figure (2) shows an example/template that can be used for this assignment.
ENV:encodingStyle="http://www.w3.org/2001/12/soap-encoding" > ID1 This is some tweet in my day 999 999 datetimestamp ID2 This is some status update in my day 999 999 datetimestamp ID3 /photos/image.jpg 999 999 ID4 /videos/film.mp4 999 999 datetimestamp datetimestamp ID4 /tracklog/track.gpx ..... datetimestamp datetimestamp Figure 2. Example SOAP file “lifelog-events.xml” with proposed Event examples NOTE: While the domain of this assignment will no doubt be new to you, the key areas that are assessed in this assignment are the use of Libraries, Collections, Design Patterns, GUI coding, Refactoring, UML, Testing and Documentation. The complete scenario for the assignment will be discussed in lectures and support provided in tutorials. The Task Your task is divided into two parts: • Basic Features: your system must have a set of prescribed features. All students are required to implement these basic features. The full marks for this part is 65% of the assignment. This part will be assessed in terms of completeness in meeting the prescribed feature requirement, quality of your code, the appropriateness of your choice of visual controls, the ease-of-use and the look-and-feel of your graphical user interface, the robustness and reliability of your program, and the overall quality of your documentation which includes the adherence to Documentation and Submission Requirements. • Advanced Features: This part contains the design patterns and design principles. This part is worth 35% of the assignment. This part provides an ideal platform for more ambitious students and/or senior Computer Science students to demonstrate their creativity and competency in software design and implementation. As part of your solution, you need to provide a detailed description of the patterns and principles you have implemented in your system. Marks will be awarded for novelty and usefulness of the functionalities, appropriateness and ease of use of the graphical user interface, and reliability and robustness of the implementation. To score highly in this part, we expect significant enhancements over and beyond the base system. The Basic Features The basic features are worth 65%. Your system must be window-based and implemented in .NET using C#. It must contain the following functionality: • Task 01 Consider the events provided in the example SOAP file. Add in several more events (at least 20) into the file. • Task 02 Create a Windows form GUI using Visual Studio. A key part of this must be a canvas area/map to display the events from your SOAP file. • Task 03 Using LINQ to XML load the data from the SOAP file into an appropriate collection of objects. Use a C# Dictionary as the format for your collection. Develop an appropriate class(es) for the events. • Task 04 Display the events (using suitable icons, text etc) on the canvas. • Task 05 By clicking on the canvas, give the user the option to Add a new event, or Retrieve information. If Adding, use a subform to obtain the relevant information and insert into the SOAP file. If Retrieving, develop a method to indicate which of the current events are being accessed, and display the information (e.g. draw a line from the current position to the nearest Event, or a circumference around the current position etc.) The Advanced Features The advanced features are worth 35%. The following is a list of advanced features for your consideration. You may implement some of them, all of them, or none of them. You may also implement features not listed below. If you do not implement any advanced feature, your marks will not exceed 65%. Advanced GUI metaphors. Additional functionality, for instance: the ability to review and link related Events; adding People into the system; a calendar of activities to be reminded of; derivation of new Events from information already logged/recorded about a person (e.g. Google); consideration of how to implement a geoprofile; consideration of sophisticated event models from the literature; consideration of representations of memories (and their indexes) from the literature. Unit tests for the most important parts of your code. Description of any refactoring that you have made during your development. Implementation of appropriate design patterns and principles into your solution. For example, consider which patterns would: allow the system to be flexible enough to easily add new Events; make sense in a GUI event-driven programme. Documentation and Submission Requirements Your submission must be in the form of a single ZIP archive file consisting of 1) one Microsoft Word file named "Assignment1.doc" containing a critical analysis and documentation of your solution, and 2) the Visual C# files for your solution to the problem. Your assignment will not be marked unless both are included in the ZIP archive file. You must submit the ZIP file using ICT365 Unit LMS on or before the deadline. A Microsoft Word document named "Assignment1.doc" containing the documentation of your solution to the problem. It must contain the following documents and these documents must be layout in the following order: i. The “ICT365 Major Assignment Check List” is available from the Assignment section. All students must complete this form. ii. If you have been granted extension, include the email from your Unit Coordinator. iii. The detailed description of the problem you aim to solve. This includes a detailed specification of the advanced features you have implemented. Please only list features that are a fully working. iv. Self-diagnosis, evaluation and declaration. You must provide a full and detailed declaration of the following: the features that are fully implemented and fully working, the features that are not fully working, and the features that are not implemented. Where possible, you should also identify the possible causes of the problems for those features that are not fully working. You will not receive a pass mark unless the above declaration is made. v. A brief description of your solution to the problem. The length of your description should be around one page, but no more than two pages. vi. Evidence that your solution meets each requirement of the assignment, including each of the requirements you have specified for the self-selected advanced features. Please note that although your tutor may test your program to verify the evidence presented in your documentation, it is not the responsibility of your tutor to test your program for the purpose of finding marks for you. It is up to individual student to mount a convincing case that the submitted solution meets all requirements. You will lose a significant number of marks (up to 70% of the assignment) if the evidence you presented is not convincing or not complete, even if your program actually works. vii. The source code listing - including all Visual C# files of your application. The ZIP file name must conform to the following format: ICT365_MajorAssignment1_FirstName_Surname.zip For example, someone with the name of John Smith should name his assignment ZIP file as ICT365_MajorAssignment1_John_Smith.zip The ZIP file must be submitted using ICT365 Unit LMS. Please be aware that the Unit LMS will not accept your assignment if it is late by more than 10 days. Please type in your email address when submitting your assignment, so that LMS will send you a confirmation that your assignment is submitted successfully. The above documentation and submission requirements will be strictly enforced. Your assignment will not be marked, or your marks will be significantly reduced, if you fail to adhere to the above requirements. Policy on the Reuse of the Third Party Source Code Please read this section very carefully. All students are encouraged to solve the problems independently with their own source code. I understand, however, that occasionally there may be justifiable reasons to re-use source codes from a third party. Please note that if you have used one or more pieces of third party source codes in your program (this includes the situations where you have made minor modifications to the third party source code), your assignment will be acceptable only if you have satisfied all of the following conditions: • The third party source code is fully identified, including the page numbers and line numbers in your hard-copy assignment documentation, and • The origin of the third party code is fully disclosed and acknowledged in your assignment submission, and • The third party source code is fully commented in your program listing. All variables, functions and major control structures must be commented to show clearly that you understand the logic of the code, and • The third party source code is less than 20% of your program (in terms of the number of lines), excluding the code specifically allowed to be used. Failure to satisfy any one of the above conditions will result in 0 marks being awarded to your entire assignment. The above policy will be rigorously enforced by the Unit Coordinator. Deadline and Penalty for Late Submission The deadline for submitting this assignment is given in the respective Assignment Submission section of the Unit LMS. Unless you have exceptional circumstances, be advised that late submissions will incur a penalty of 10% of the total marks per day (including weekends and public holidays). Please see the further explanation on how the number of days is calculated in the following paragraph. Work submitted more than 10 days late will not be accepted. In calculating the number of days late, a fractional day is rounded up to one whole day. For example, if you submit your assignment one day and three hours (1.125 days) after the deadline, your submission is considered to be late for two whole days under this rule, hence your marks will be deducted by 20%. Applications for extension of your assignment deadline can only be made via email to the Unit Coordinator or his delegate, normally prior to the specified due date of the assignment. If an extension is granted (also by email), you must attach a copy of the email to your submission (see Documentation and Submission Requirements). Applications for extension by phone or in person do not count even if granted. The above policy will be rigorously enforced. Errata This document is subject to change based on errors found. Any errors found and corrected will be posted in the Unit Announcements page of the Unit LMS. If you print out a copy of this page, please follow the news in the Unit Announcements page. Appendix: Dementia and Mild Cognitive Impairment Dementia is a clinical diagnosis made when acquired cognitive deficits in more than one area of cognition interfere with activities of daily living and represent a decline from a previously higher level of functioning.
51作业君