SlideShare a Scribd company logo
1 of 8
Download to read offline
Page 1 of 8
Assignment 2 – Task Specification
ITECH2100
Assignment 2:
Processing Log Files of a
Computer Management System
ITECH6100 Students should not use this document – it is for ITECH2100 students
Due date: Sunday evening at end of Week 11, by 11:59 PM
Cut-off: 1 week (168 hours) after the due date. The cut-off date is the date after which no
submission will be accepted without an approved extension having been granted to
you. This is because feedback and sample solutions may be released from this date.
Assessment Value: 20% of final course result.
Minimum Time Expectation to complete tasks:
4 hours, if you are adequately prepared by having done all learning activities that
pertain to the topics being assessed. Note though, the task should be achievable in a
maximum of 23 hours.
The work you submit must be your own individual work. Your work may be
submitted by staff to an online code-plagiarism checking software service to
compare your work to other students’ work.
Objectives
The purpose of this assignment is to assess your progress towards attainment of a selection of the
learning objectives as covered up to week 9, with an emphasis on topics of weeks 6 through 9.
On successful completion of this assignment you should have demonstrated that you are able to:
 Write a program consisting of multiple objects which interact with each other by following
appropriate design practices
 Write a program that provides the requested functionality for the system
 Implement classes which have generalization relationships with other classes
 Utilise polymorphism and abstraction techniques
 Utilise appropriate collection classes from Java’s Collections API in appropriate ways/places
 Read data from and write data to text files
 Handle exceptions by constructing try … catch blocks for appropriate circumstances
The assignment may cause you to demonstrate that you have attained other learning objectives; the
above list is not necessarily exhaustive. However, we are not expecting you to demonstrate
attainment of learning objectives from week 10 onwards. The above items essentially form the
criteria against which you will be assessed.
ITECH2100/6100 (Programming 2) – Assignment 2 Page 2 of 8
Overview of Assignment
This assignment requires you to write an application that meets a list of provided functional and
design requirements, utilising the concepts and techniques taught in this course. You will write your
own classes that will create a text-menu based program for the user to control the operation.
You will be required to develop your application using Java (preferably in the Eclipse IDE). You
will need to add all your work to a zip file when you are finished and submit it on Moodle by the
due date. You will also need to submit a report which will require some written information
describing your system as well as addressing design and testing requirements which will be outlined
below. Please write this supporting documentation clearly and IN YOUR OWN WORDS
(plagiarism is NOT acceptable – refer to Course Description).
Before you begin, read over this entire assignment and understand all the tasks.
All code must conform to stylistic standards including proper commenting, appropriate choice of
identifier names, proper indenting and other readability issues. Otherwise, marks may be deducted.
Consult http://www.oracle.com/technetwork/java/codeconventions-150003.pdf
Assessment Details
Context/Background Information (CI)
For this assignment, you will create a program that provides the user with access to a range of
information about matters surrounding the management of an enterprise’s computers. It is similar to
the software used by the university on its main campuses (Federation University uses Microsoft’s
System Centre Configuration Manager).
The general idea is that a central coordinating server keeps track of the state of all the computers of
the enterprise that have been registered with that server. The individual machines that people use at
their desk have software installed on them which periodically perform some tasks according to
settings/rules decided by the enterprise’s system administrator that are stored on the central server.
The actual work of these tasks is undertaken by software entities called ‘agents’, each which are
tasked with particular actions.
For example, one agent on a user’s machine will contact the central server at regular intervals (e.g.
once an hour) to ask if there are new ‘policies’, which are rules about how the computer is meant to
be set up. The agent will ‘enforce’ the policies, which means that it makes sure the computer is
following the rules that have been assigned to it by the administrator.
There are different types of policies that can be set up. One type is a security policy, specifying
whether to close or open particular ports of the machine’s internet connection. Another type of
policy specifies rules about what software must be installed – it may be used for example to ensure
that every machine has the latest version of Java or Flash Player installed. A variant of that is the
type of policy that specifies a software that could be installed if the user chose to install it from the
local network.
The policies are decided by the system administrator, and he enters them in to the central server,
and designates which computers the policy are applicable to. (For example, some policies may only
apply to computers running windows XP, others apply to computers running Windows 8. Or some
may apply only to computers that are assigned to IT lecturers, and some apply to machines assigned
ITECH2100/6100 (Programming 2) – Assignment 2 Page 3 of 8
to student lab rooms). When an individual computer is turned on each day, it will contact the server
to ask for the latest policies that are applicable to it; the server will respond with a list of all the
relevant policies. The computer then checks its own list, and any that it had which are now obsolete
are deleted (and stop being enforced – whatever action they may have enforced might be rolled-
back); and for any that are new, the computer may need to enforce them, which could involve
downloading an installer and running it automatically, or some changing some setting in the system
registry or some other action.
Once the policies are enforced on a user’s machine, the computer will send a message back to the
server telling it so. Then the server will “know” that the machine is compliant or otherwise, with
respect to all the policies assigned to it. Similarly, when various other tasks are completed
(described soon), and information has been gathered about the task, these are sent to the server as
well. The messages are all time-stamped, i.e. the time at which they were generated is recorded as
part of the message, so that the server has an accurate understanding of the sequence in which
things have occurred. It saves these messages into files called log files, which can be analysed – and
these log files are basically what this assignment task is going to be focusing on.
The following is an extract (i.e. the middle) of what a log file on the server may look like:
 
... 
11:32:01am Porcupine POLICY 419182 Applied 
11:32:02am Eucalypt INVENTORY Software completed 
11:32:04am Sassafras POLICY 419184 Applied 
11:32:04am Sassafras POLICY 419186 Applied 
11:32:05am Sassafras POLICY 418777 Unapplied 
11:32:47am Boolarra INVENTORY Hardware completed 
11:33:11am Jindabyne SOFTWAREUPDATES 223 Non‐compliant 
11:34:27am Alligator SOFTWAREUPDATES 223 Compliant 
11:46:09am Turnip INVENTORY Software interrupted 
11:47:45am Sassafras SOFTWAREUPDATES 223 Failed 
12:10:04pm Jindabyne SOFTWAREUPDATES 223 Compliant 
12:10:20pm Turnip SOFTWAREUPDATES 221 Failed 
12:12:21pm Turnip SOFTWAREUPDATES 223 Compliant 
... 
 
Each line specifies one event that has occurred across the enterprise in relation to the management
of the system. Each event has a time at which the event occurred, which is the first field. (We
assume that the log files are for a specific day only – each day has separate log file).
Every machine in the university has a unique ‘name’, which is used by the central server to identify
each computer. This is the second item in each line of the log. For example, Porcupine, Boolarra
and Alligator are machine names.
The next word of each line indicates the type of event that has occurred:
 Policy event – this specifies that a policy as set by the administrator, has been retrieved by
the machine. Each policy has a unique number to identify it – a given policy can be
applicable to one or more machines. Initially policies are set to be applied to a machine, but
after a period they may be unapplied (no longer applicable to the machine, so the machine
has to delete it.) The number in the log file shows the policy number of which policy is
affected, and is followed by either ‘Applied’ or ‘Unapplied’ to indicate whether the policy
was set active, or removed from being active on the machine,
 Inventory event – this specifies that the machine has had information collected about it.
There are two types of inventories that can be performed. A Software inventory scans the
ITECH2100/6100 (Programming 2) – Assignment 2 Page 4 of 8
computer to identify all the software that has been installed on the computer. A Hardware
inventory gathers information about how much RAM, how much free disk space, and other
physical traits about the hardware of the machine. The log file entry indicates which type of
inventory has been attempted. If the inventory action completed, it will say ‘completed’, but
if the inventory is not completed on the machine, because the user turned it off before it
could complete, then the next time the machine is turned on it will generate an event saying
‘interrupted’ (as shown for the machine named ‘Turnip’ above) and the machine will not re-
attempt until it is next scheduled to do an inventory (e.g. the same day of the following
week, or another hour later the same day).
 Software Updates – From time to time, Microsoft and other software companies release
updates for the operating system or programs (e.g. Microsoft Office). The administrator can
specify that particular software updates are to be installed on machines (but they might hold-
off for some other software updates until a later time). A given set of updates, is given an
identifier (to distinguish it from other sets). Once these have been decided by the
administrator, the machines will perform a check to see whether they need any updates. If
they do, the machines are considered ‘non-compliant’ until they are installed. Some updates
are not completely installed until the machine has been rebooted. The lines in the log file of
the server indicate that a machine has performed a check of compliance for a given set of
updates. There are three possible outcomes of the check. One is, that the machine is not
compliant – it needs to install some or all of the updates. This is indicated by the log
message that says ‘Non-Compliant’, after the number identifying which set of updates is
missing. The other outcome is that the updates are all completely installed, indicated by the
log message that says ‘Compliant’. In the example log shown, you can see that at one point
in time (11:33), the machine ‘Jindabyne’ was not compliant – it needed the updates. But
about half an hour later, the machine had installed the updates, and now was compliant. A
third possibility is that the machine attempted to install the updates, but failed to install (the
installation was unable to make the relevant corrections). For example, the ‘Sassafras’
machine failed to install at least one of the updates in the set numbered as 223.
The purpose of the system you are to code, is to enable the log files to be untangled, so that we
can both (1) get a clearer perspective of a single machine, and (2) analyse the state of affairs across
all machines. It is also designed to enable you to apply the programming concepts you have covered
in recent weeks. The log files all conform to the manner described above, and some example files
are provided to you. The marker will use a different set of files to assess your work, but provided
that you have adhered to the format described above in interpreting the lines of the log files, your
program should work fine with these other files. (You may even like to vary the contents of the
given files to check various things).
ITECH2100/6100 (Programming 2) – Assignment 2 Page 5 of 8
Required behaviour of the final system
This section outlines the functionality required to be provided by the program that you write for the
assignment. Keep in mind that you need to address the criteria against which the work will be
judged (the assessment criteria), when you implement the following behaviour of the system.
FR-1: Allow loading of a log file to populate the system with data
The program must allow the user to enter the name of a log file that it should interpret. If the file
does not exist, you should tell the user and re-ask for a name.
If the file does exist, then it should be interpreted line by line loading data into appropriate objects
and linking the objects appropriately so that the information can be accessed later (by other FRs).
Note that the very first line of a log file is an integer specifying how many log events follow (on the
subsequent lines of the file).
You should use a HashMap in order to store an object that represents the aggregation of events for a
given machine.
FR-2: The program should provide a text-menu based user interaction interface
After a log file has been loaded, the system should repeatedly show the user a menu of possible
actions they can perform (described more fully in other FRs).
FR-3: Allow the user to see a list of all machines that have reported any events
One menu option should allow the user to see a list of all the machines, who are mentioned by the
log file that has been loaded. Note that some other FRs may also need to present the list, as well,
but this FR is simply to display the list and then return back to the menu.
FR-4: Produce a text file reporting all the events for a nominated machine
When selected, this option should ask the user to choose a machine from the list of all machines that
appeared in the log file. Then, for the selected machine, it will generate a file that contains only the
log details about that machine (by accessing the relevant object in the HashMap). For example,
selecting the ‘Sassafras’ machine for the example log file given earlier, would produce a file with
the following contents:
Events for machine 'Sassafras' 
11:32:04am Sassafras POLICY 419184 Applied 
11:32:04am Sassafras POLICY 419186 Applied 
11:32:05am Sassafras POLICY 418777 Unapplied 
11:47:45am Sassafras SOFTWAREUPDATES 223 Failed 
End of events. 
The file should be named using the machine’s name followed by a hyphen and the word report,
with the extension of ‘txt’, e.g. ‘Sassafras-report.txt’
ITECH2100/6100 (Programming 2) – Assignment 2 Page 6 of 8
FR-5: Produce a report of all events signifying ‘failed’ situations across all machines
Failed situations are when a software update fails, or when an inventory action is interrupted and so
doesn’t complete. When the user selects the menu option for this functional requirement, generate a
report to the screen showing just (a) the name of the machines and (b) the type of action that failed
(Software Update, or Inventory). Do not show the time, or any other details about the event.
You are to group all the Software Update events together, before the Inventory events, in the output.
However the order of output within each of these two groups is unimportant.
For example, given the example file extract from earlier, the following could be the output (the
order of items could vary on your implementation):
Software Updates that failed: 
Turnip: update 221 
Sassafras: update 223 
 
Inventory Actions that failed to complete: 
Turnip: Software Inventory 
Note that, this task gives a prime opportunity to utilise polymorphism – a method that can
specifically return whether the event is about a failure, could be defined to behave appropriately
(but differently) in each subclass.
You might also find that there is opportunity to use the Set type in this task, but it is not mandatory
to use it.
Additional Design Requirements
The following are additional things which must be addressed in your solution, in order to meet the
assessment’s objectives.
ADR-1: Submit a MS-Word document addressing the following items
In the following few ADRs, you are told to write things in a Word document, which must be
submitted to Moodle along with the code.
ADR-2: Solution must make use of Generalization/Specialization
Your solution is expected to employ the technique of making at least one subclass of some other
class.
In the Word document, explain how you have made use of generalization/specialization and explain
the reasons for deciding to use it in the places/ways that you have used it.
ADR-3: Solution must make use of a Map
You are expected to make use of some sort of Map collection class somewhere in your program. In
the Word document, please explain how you decided where to use this mechanism.
ADR-4: Must include suitable exception handling mechanisms
You are expected to make the program robust against typical problems, by employing exception-
handling techniques. Nothing about this needs to be described in the Word document.
ITECH2100/6100 (Programming 2) – Assignment 2 Page 7 of 8
ADR-5: Include evidence of testing
In the Word document, give a brief explanation of some of the ways you have tested your code to
confirm it works as intended.
Tasks to Complete
Task-1: Plan your program
Consider the functional and additional design requirements, and determine which classes you will
need to implement. In the Word document, write a short description of the role/purpose of each
class that you have in your program – please sort them in alphabetic order by class name.
Task-2: Code a functioning program that addresses the behavioural and additional design
requirements
Write the classes that you have determined are needed to make a functioning program. You should
aim to write code following high quality coding practices that have been taught in this course this
semester – including comments, catching checked and potential exceptions and exhibiting good
design where code is separated into separate methods.
Task-3: Ensure all supplementary documentation is complete.
Go through your Word document and make sure that everything required to be included, has
actually been included and is complete.
Provided Files
You are being provided with a few sample data files that you can use to test your program with.
These can be found in the folder named ‘given-files’, and they are accompanied by a document
which summarises the events for individual days (so that you can test your program’s behaviour).
Submission Requirements
All files which you wish to submit for marking must be placed into a single ZIP file (with extension
of .zip, using your full name as the name of the file). Upload this file to Moodle through the
assignment link labelled “Submit Major Assignment”. This link will only become available after
you have completed the ‘Declaration of Originality’ form associated to it, and accept the Student’s
Statement – which is instead of you needing to sign a paper cover sheet.
At minimum, the following files (if they are attempted) should be present:
 A Microsoft Word document – for the supplementary documentation/responses.
 All source-code files (.java) to allow your program to be compiled and run.
The work submitted must be your own work.
ITECH2100/6100 (Programming 2) – Assignment 2 Page 8 of 8
Plagiarism:
Plagiarism is the presentation of the expressed thought or work of another person as though it is
one's own without properly acknowledging that person. You must not allow other students to copy
your work and must take care to safeguard against this happening. More information about the
plagiarism policy and procedure for the university can be found at
http://federation.edu.au/students/learning-and-study/online-help-with/plagiarism.
Guide to how the assignment will be graded – Marking Criteria
The work will be assessed both for correctness of functional behaviour (20%), and also against the
assessment items listed here: (80%)
Item 1: Ability to implement classes which have generalization relationships with other classes
Item 2: Ability to utilise polymorphism and abstraction techniques in coding
Item 3: Ability to utilise appropriate collection classes from Java’s Collections API (such as
maps, sets, and lists) in appropriate ways/places
Item 4: Ability to read data from and write data to text files
Item 5: Ability to handle exceptions by constructing try … catch blocks for appropriate
circumstances
Item 6: Ability to write a program consisting of multiple objects which interact with each other
by following appropriate design practices
For each of the above items, you will be given a rating on the following scale: Excellent, Good,
Satisfactory, Poor (i.e. attempted, but not to satisfactory level), Not Demonstrated.
The ratings are then used to find which base grade you have qualified for according to the following
rubric:
40% 50% 60% 70% 80%
Item 1 (Irrelevant) Satisfactory Good Good Excellent
Item 2 (Irrelevant) Satisfactory Good Good Excellent
Item 3 Poor Poor Satisfactory Good Excellent
Item 4 Poor Satisfactory Satisfactory Good Excellent
Item 5 (Irrelevant) Poor Satisfactory Good Excellent
Item 6 Satisfactory Satisfactory Satisfactory Good Excellent
END OF ASSIGNMENT SPECIFICATION

More Related Content

Recently uploaded

Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxdhanalakshmis0310
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Association for Project Management
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docxPoojaSen20
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxcallscotland1987
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseAnaAcapella
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 

Recently uploaded (20)

Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptx
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Computer System Management Assignment Help|25% Off Assignment Help

  • 1. Page 1 of 8 Assignment 2 – Task Specification ITECH2100 Assignment 2: Processing Log Files of a Computer Management System ITECH6100 Students should not use this document – it is for ITECH2100 students Due date: Sunday evening at end of Week 11, by 11:59 PM Cut-off: 1 week (168 hours) after the due date. The cut-off date is the date after which no submission will be accepted without an approved extension having been granted to you. This is because feedback and sample solutions may be released from this date. Assessment Value: 20% of final course result. Minimum Time Expectation to complete tasks: 4 hours, if you are adequately prepared by having done all learning activities that pertain to the topics being assessed. Note though, the task should be achievable in a maximum of 23 hours. The work you submit must be your own individual work. Your work may be submitted by staff to an online code-plagiarism checking software service to compare your work to other students’ work. Objectives The purpose of this assignment is to assess your progress towards attainment of a selection of the learning objectives as covered up to week 9, with an emphasis on topics of weeks 6 through 9. On successful completion of this assignment you should have demonstrated that you are able to:  Write a program consisting of multiple objects which interact with each other by following appropriate design practices  Write a program that provides the requested functionality for the system  Implement classes which have generalization relationships with other classes  Utilise polymorphism and abstraction techniques  Utilise appropriate collection classes from Java’s Collections API in appropriate ways/places  Read data from and write data to text files  Handle exceptions by constructing try … catch blocks for appropriate circumstances The assignment may cause you to demonstrate that you have attained other learning objectives; the above list is not necessarily exhaustive. However, we are not expecting you to demonstrate attainment of learning objectives from week 10 onwards. The above items essentially form the criteria against which you will be assessed.
  • 2. ITECH2100/6100 (Programming 2) – Assignment 2 Page 2 of 8 Overview of Assignment This assignment requires you to write an application that meets a list of provided functional and design requirements, utilising the concepts and techniques taught in this course. You will write your own classes that will create a text-menu based program for the user to control the operation. You will be required to develop your application using Java (preferably in the Eclipse IDE). You will need to add all your work to a zip file when you are finished and submit it on Moodle by the due date. You will also need to submit a report which will require some written information describing your system as well as addressing design and testing requirements which will be outlined below. Please write this supporting documentation clearly and IN YOUR OWN WORDS (plagiarism is NOT acceptable – refer to Course Description). Before you begin, read over this entire assignment and understand all the tasks. All code must conform to stylistic standards including proper commenting, appropriate choice of identifier names, proper indenting and other readability issues. Otherwise, marks may be deducted. Consult http://www.oracle.com/technetwork/java/codeconventions-150003.pdf Assessment Details Context/Background Information (CI) For this assignment, you will create a program that provides the user with access to a range of information about matters surrounding the management of an enterprise’s computers. It is similar to the software used by the university on its main campuses (Federation University uses Microsoft’s System Centre Configuration Manager). The general idea is that a central coordinating server keeps track of the state of all the computers of the enterprise that have been registered with that server. The individual machines that people use at their desk have software installed on them which periodically perform some tasks according to settings/rules decided by the enterprise’s system administrator that are stored on the central server. The actual work of these tasks is undertaken by software entities called ‘agents’, each which are tasked with particular actions. For example, one agent on a user’s machine will contact the central server at regular intervals (e.g. once an hour) to ask if there are new ‘policies’, which are rules about how the computer is meant to be set up. The agent will ‘enforce’ the policies, which means that it makes sure the computer is following the rules that have been assigned to it by the administrator. There are different types of policies that can be set up. One type is a security policy, specifying whether to close or open particular ports of the machine’s internet connection. Another type of policy specifies rules about what software must be installed – it may be used for example to ensure that every machine has the latest version of Java or Flash Player installed. A variant of that is the type of policy that specifies a software that could be installed if the user chose to install it from the local network. The policies are decided by the system administrator, and he enters them in to the central server, and designates which computers the policy are applicable to. (For example, some policies may only apply to computers running windows XP, others apply to computers running Windows 8. Or some may apply only to computers that are assigned to IT lecturers, and some apply to machines assigned
  • 3. ITECH2100/6100 (Programming 2) – Assignment 2 Page 3 of 8 to student lab rooms). When an individual computer is turned on each day, it will contact the server to ask for the latest policies that are applicable to it; the server will respond with a list of all the relevant policies. The computer then checks its own list, and any that it had which are now obsolete are deleted (and stop being enforced – whatever action they may have enforced might be rolled- back); and for any that are new, the computer may need to enforce them, which could involve downloading an installer and running it automatically, or some changing some setting in the system registry or some other action. Once the policies are enforced on a user’s machine, the computer will send a message back to the server telling it so. Then the server will “know” that the machine is compliant or otherwise, with respect to all the policies assigned to it. Similarly, when various other tasks are completed (described soon), and information has been gathered about the task, these are sent to the server as well. The messages are all time-stamped, i.e. the time at which they were generated is recorded as part of the message, so that the server has an accurate understanding of the sequence in which things have occurred. It saves these messages into files called log files, which can be analysed – and these log files are basically what this assignment task is going to be focusing on. The following is an extract (i.e. the middle) of what a log file on the server may look like:   ...  11:32:01am Porcupine POLICY 419182 Applied  11:32:02am Eucalypt INVENTORY Software completed  11:32:04am Sassafras POLICY 419184 Applied  11:32:04am Sassafras POLICY 419186 Applied  11:32:05am Sassafras POLICY 418777 Unapplied  11:32:47am Boolarra INVENTORY Hardware completed  11:33:11am Jindabyne SOFTWAREUPDATES 223 Non‐compliant  11:34:27am Alligator SOFTWAREUPDATES 223 Compliant  11:46:09am Turnip INVENTORY Software interrupted  11:47:45am Sassafras SOFTWAREUPDATES 223 Failed  12:10:04pm Jindabyne SOFTWAREUPDATES 223 Compliant  12:10:20pm Turnip SOFTWAREUPDATES 221 Failed  12:12:21pm Turnip SOFTWAREUPDATES 223 Compliant  ...    Each line specifies one event that has occurred across the enterprise in relation to the management of the system. Each event has a time at which the event occurred, which is the first field. (We assume that the log files are for a specific day only – each day has separate log file). Every machine in the university has a unique ‘name’, which is used by the central server to identify each computer. This is the second item in each line of the log. For example, Porcupine, Boolarra and Alligator are machine names. The next word of each line indicates the type of event that has occurred:  Policy event – this specifies that a policy as set by the administrator, has been retrieved by the machine. Each policy has a unique number to identify it – a given policy can be applicable to one or more machines. Initially policies are set to be applied to a machine, but after a period they may be unapplied (no longer applicable to the machine, so the machine has to delete it.) The number in the log file shows the policy number of which policy is affected, and is followed by either ‘Applied’ or ‘Unapplied’ to indicate whether the policy was set active, or removed from being active on the machine,  Inventory event – this specifies that the machine has had information collected about it. There are two types of inventories that can be performed. A Software inventory scans the
  • 4. ITECH2100/6100 (Programming 2) – Assignment 2 Page 4 of 8 computer to identify all the software that has been installed on the computer. A Hardware inventory gathers information about how much RAM, how much free disk space, and other physical traits about the hardware of the machine. The log file entry indicates which type of inventory has been attempted. If the inventory action completed, it will say ‘completed’, but if the inventory is not completed on the machine, because the user turned it off before it could complete, then the next time the machine is turned on it will generate an event saying ‘interrupted’ (as shown for the machine named ‘Turnip’ above) and the machine will not re- attempt until it is next scheduled to do an inventory (e.g. the same day of the following week, or another hour later the same day).  Software Updates – From time to time, Microsoft and other software companies release updates for the operating system or programs (e.g. Microsoft Office). The administrator can specify that particular software updates are to be installed on machines (but they might hold- off for some other software updates until a later time). A given set of updates, is given an identifier (to distinguish it from other sets). Once these have been decided by the administrator, the machines will perform a check to see whether they need any updates. If they do, the machines are considered ‘non-compliant’ until they are installed. Some updates are not completely installed until the machine has been rebooted. The lines in the log file of the server indicate that a machine has performed a check of compliance for a given set of updates. There are three possible outcomes of the check. One is, that the machine is not compliant – it needs to install some or all of the updates. This is indicated by the log message that says ‘Non-Compliant’, after the number identifying which set of updates is missing. The other outcome is that the updates are all completely installed, indicated by the log message that says ‘Compliant’. In the example log shown, you can see that at one point in time (11:33), the machine ‘Jindabyne’ was not compliant – it needed the updates. But about half an hour later, the machine had installed the updates, and now was compliant. A third possibility is that the machine attempted to install the updates, but failed to install (the installation was unable to make the relevant corrections). For example, the ‘Sassafras’ machine failed to install at least one of the updates in the set numbered as 223. The purpose of the system you are to code, is to enable the log files to be untangled, so that we can both (1) get a clearer perspective of a single machine, and (2) analyse the state of affairs across all machines. It is also designed to enable you to apply the programming concepts you have covered in recent weeks. The log files all conform to the manner described above, and some example files are provided to you. The marker will use a different set of files to assess your work, but provided that you have adhered to the format described above in interpreting the lines of the log files, your program should work fine with these other files. (You may even like to vary the contents of the given files to check various things).
  • 5. ITECH2100/6100 (Programming 2) – Assignment 2 Page 5 of 8 Required behaviour of the final system This section outlines the functionality required to be provided by the program that you write for the assignment. Keep in mind that you need to address the criteria against which the work will be judged (the assessment criteria), when you implement the following behaviour of the system. FR-1: Allow loading of a log file to populate the system with data The program must allow the user to enter the name of a log file that it should interpret. If the file does not exist, you should tell the user and re-ask for a name. If the file does exist, then it should be interpreted line by line loading data into appropriate objects and linking the objects appropriately so that the information can be accessed later (by other FRs). Note that the very first line of a log file is an integer specifying how many log events follow (on the subsequent lines of the file). You should use a HashMap in order to store an object that represents the aggregation of events for a given machine. FR-2: The program should provide a text-menu based user interaction interface After a log file has been loaded, the system should repeatedly show the user a menu of possible actions they can perform (described more fully in other FRs). FR-3: Allow the user to see a list of all machines that have reported any events One menu option should allow the user to see a list of all the machines, who are mentioned by the log file that has been loaded. Note that some other FRs may also need to present the list, as well, but this FR is simply to display the list and then return back to the menu. FR-4: Produce a text file reporting all the events for a nominated machine When selected, this option should ask the user to choose a machine from the list of all machines that appeared in the log file. Then, for the selected machine, it will generate a file that contains only the log details about that machine (by accessing the relevant object in the HashMap). For example, selecting the ‘Sassafras’ machine for the example log file given earlier, would produce a file with the following contents: Events for machine 'Sassafras'  11:32:04am Sassafras POLICY 419184 Applied  11:32:04am Sassafras POLICY 419186 Applied  11:32:05am Sassafras POLICY 418777 Unapplied  11:47:45am Sassafras SOFTWAREUPDATES 223 Failed  End of events.  The file should be named using the machine’s name followed by a hyphen and the word report, with the extension of ‘txt’, e.g. ‘Sassafras-report.txt’
  • 6. ITECH2100/6100 (Programming 2) – Assignment 2 Page 6 of 8 FR-5: Produce a report of all events signifying ‘failed’ situations across all machines Failed situations are when a software update fails, or when an inventory action is interrupted and so doesn’t complete. When the user selects the menu option for this functional requirement, generate a report to the screen showing just (a) the name of the machines and (b) the type of action that failed (Software Update, or Inventory). Do not show the time, or any other details about the event. You are to group all the Software Update events together, before the Inventory events, in the output. However the order of output within each of these two groups is unimportant. For example, given the example file extract from earlier, the following could be the output (the order of items could vary on your implementation): Software Updates that failed:  Turnip: update 221  Sassafras: update 223    Inventory Actions that failed to complete:  Turnip: Software Inventory  Note that, this task gives a prime opportunity to utilise polymorphism – a method that can specifically return whether the event is about a failure, could be defined to behave appropriately (but differently) in each subclass. You might also find that there is opportunity to use the Set type in this task, but it is not mandatory to use it. Additional Design Requirements The following are additional things which must be addressed in your solution, in order to meet the assessment’s objectives. ADR-1: Submit a MS-Word document addressing the following items In the following few ADRs, you are told to write things in a Word document, which must be submitted to Moodle along with the code. ADR-2: Solution must make use of Generalization/Specialization Your solution is expected to employ the technique of making at least one subclass of some other class. In the Word document, explain how you have made use of generalization/specialization and explain the reasons for deciding to use it in the places/ways that you have used it. ADR-3: Solution must make use of a Map You are expected to make use of some sort of Map collection class somewhere in your program. In the Word document, please explain how you decided where to use this mechanism. ADR-4: Must include suitable exception handling mechanisms You are expected to make the program robust against typical problems, by employing exception- handling techniques. Nothing about this needs to be described in the Word document.
  • 7. ITECH2100/6100 (Programming 2) – Assignment 2 Page 7 of 8 ADR-5: Include evidence of testing In the Word document, give a brief explanation of some of the ways you have tested your code to confirm it works as intended. Tasks to Complete Task-1: Plan your program Consider the functional and additional design requirements, and determine which classes you will need to implement. In the Word document, write a short description of the role/purpose of each class that you have in your program – please sort them in alphabetic order by class name. Task-2: Code a functioning program that addresses the behavioural and additional design requirements Write the classes that you have determined are needed to make a functioning program. You should aim to write code following high quality coding practices that have been taught in this course this semester – including comments, catching checked and potential exceptions and exhibiting good design where code is separated into separate methods. Task-3: Ensure all supplementary documentation is complete. Go through your Word document and make sure that everything required to be included, has actually been included and is complete. Provided Files You are being provided with a few sample data files that you can use to test your program with. These can be found in the folder named ‘given-files’, and they are accompanied by a document which summarises the events for individual days (so that you can test your program’s behaviour). Submission Requirements All files which you wish to submit for marking must be placed into a single ZIP file (with extension of .zip, using your full name as the name of the file). Upload this file to Moodle through the assignment link labelled “Submit Major Assignment”. This link will only become available after you have completed the ‘Declaration of Originality’ form associated to it, and accept the Student’s Statement – which is instead of you needing to sign a paper cover sheet. At minimum, the following files (if they are attempted) should be present:  A Microsoft Word document – for the supplementary documentation/responses.  All source-code files (.java) to allow your program to be compiled and run. The work submitted must be your own work.
  • 8. ITECH2100/6100 (Programming 2) – Assignment 2 Page 8 of 8 Plagiarism: Plagiarism is the presentation of the expressed thought or work of another person as though it is one's own without properly acknowledging that person. You must not allow other students to copy your work and must take care to safeguard against this happening. More information about the plagiarism policy and procedure for the university can be found at http://federation.edu.au/students/learning-and-study/online-help-with/plagiarism. Guide to how the assignment will be graded – Marking Criteria The work will be assessed both for correctness of functional behaviour (20%), and also against the assessment items listed here: (80%) Item 1: Ability to implement classes which have generalization relationships with other classes Item 2: Ability to utilise polymorphism and abstraction techniques in coding Item 3: Ability to utilise appropriate collection classes from Java’s Collections API (such as maps, sets, and lists) in appropriate ways/places Item 4: Ability to read data from and write data to text files Item 5: Ability to handle exceptions by constructing try … catch blocks for appropriate circumstances Item 6: Ability to write a program consisting of multiple objects which interact with each other by following appropriate design practices For each of the above items, you will be given a rating on the following scale: Excellent, Good, Satisfactory, Poor (i.e. attempted, but not to satisfactory level), Not Demonstrated. The ratings are then used to find which base grade you have qualified for according to the following rubric: 40% 50% 60% 70% 80% Item 1 (Irrelevant) Satisfactory Good Good Excellent Item 2 (Irrelevant) Satisfactory Good Good Excellent Item 3 Poor Poor Satisfactory Good Excellent Item 4 Poor Satisfactory Satisfactory Good Excellent Item 5 (Irrelevant) Poor Satisfactory Good Excellent Item 6 Satisfactory Satisfactory Satisfactory Good Excellent END OF ASSIGNMENT SPECIFICATION