Reference no: EM132404966
COIT20257 - Distributed Systems: Principles and Development - Central Queensland University
Assignment
1. Objectives
The purpose of this assessment item is to assess your skills attributable to the following learning outcomes and achieving the expected graduate attributes of advanced level communication, knowledge, cognitive, technical, and creative skills, and self-management.
• Develop distributed applications using networking, inter-process communication, and remote invocation
• Solve problems in the distributed systems domain by applying the principles of distributed systems to authentic problems
2. Assessment task
Your task in this assessment is to analyse the given problem, model, design, implement, test and document a client/server application that allows multiple users to access stored data, or add new data. You will be implementing the software solution, applying efficient algorithms, inheritance, polymorphism, and exception handling. The topics required for this assessment task are from Weeks 1-4. You should also write a report, as specified in this document, demonstrating your conceptual knowledge. You will be required to use the topics learnt in the pre-requisite unit Data Structures and Algorithms.
2.1 Problem
Year 11 and 12 students study five subjects. There are many assessments for these subjects in different formats and the grades of these assessments are summative contributing to a student's final result. These two years of study are closely monitored by teachers and parents as the outcome decides the final grade a student achieves when s/he completes year 12. University entrance to various degrees are based on a student's year 12 final grade. Queensland Government Education department is keen to have better systems for parents to be informed and enable teachers to upgrade grades with one software system.
You are invited to develop a prototype of a Study Progress Monitor System (SPMS), for managing students' grades allowing administrators to add students, enrol subjects with assessments, set grade, and parents/students to access the stored details. You will be developing a multiple-threaded client/server application.
All users accessing the SPMS should able to view the following data:
1. List of assessments for a chosen subject
2. Grades of assessments for a student Administrator should be able to access the SPMS to:
1. Set grade for a chosen student and subject
Note: You will be given a data file containing list of subjects and assessment details from Term 1 2020.
2.2 Design Guidelines
You can use the following guidelines in your modelling and design.
Sever side
The server should enable the following functionalities. The server creates a new thread for each client connection (thread-per-connection model). The server side receives client requests, processes them and returns results. Multiple read requests are executed concurrently.
Request for view Assessments for a subject
If the client request is to view assessments for a subject, the server should parse the request received from the client and execute appropriate database queries to extract data and send the data back to the client.
Request to view grades of a student
If the client request is to view grades of a student, the server should parse the request containing the student's name received from the client and execute appropriate queries to extract all the graded assessments and send the data back to the client.
Request to set grade for a specific assessment of a student
If the client request is to set grade, the server should parse the request containing student's name, subject name, assessmentId, and achievement value to execute database query and update the database with the new grade. (It is assumed that the user is aware of the ungraded assessments or the user can display grades to view the current grade status. This is to reduce the complexity of the database operation as that is not the focus of this unit.) This should be synchronised as multiple clients will be running through multiple threads.
Client side
The client side interacts with the user, parses the request and sends it to the server. It receives messages from the server and displays to the user. The query frontend provides a menu to let a user choose any of the functions continuously until the user chooses to exit the SPMS.
The data base should have the following tables
1. Student to store student name, year level (studentId: primary key)
2. Subject to store subject name (subjectId: primary key)
3. Assessment to store the Assessment details as shown in Table 2 (use composite key of subjectId and Assessment Id)
4. Grade to store the Grade details as shown in Table 3
5. StudentGrade to store the set grade for an Assessment item of a student (use composite key of StudentId, subjectId, AssessmentId, and gradeId).
Student data given below can be used for testing purposes. Add any other table/s as necessary.
Note: The table listings only show the values to be stored as per the user requirements. The primary keys are generated during the programmatic creation of the tables and used for other database operations. These keys need not be displayed to the user. The primary keys can be auto-incremented integer values. One Student has to enrol in five Subjects and each Subject is enrolled by many Students. (many - to - many). You may add additional tables as
required for the correct functioning of the database. Create an ERD to understand the relationship between tables.
List of Students
Table 1 Test Data for Students
Student Name
|
Year Level
|
John Clarke
|
11
|
Peter White
|
11
|
Lily Li
|
11
|
Lisa Soon
|
11
|
Tom Dixon
|
11
|
List of Subjects English Mathematics B Biology
Business and Communication Technologies Religion and Ethics
Assessment Details
An example set of one assessment details for a subject is given in Table 2. A possible listing of all assessments for all the subjects is given in the file COIT20257Ass1.csv, available on the Unit website.
Table 2 Sample Assessment Details
Description
|
Value
|
Subject
|
English
|
Assessment Id
|
11.1
|
type
|
Multimedia presentation
|
topic
|
interior monologue 3-4 mins Australian Identity
|
format
|
speaking
|
Due date
|
Wed 9 - Wed 16 March 2017
|
Grade Details
Table 3. Grading Details
Degree of achievement:
|
Degree of knowledge and understanding:
|
Degree of skill and use of skill:
|
|
Very high
|
thorough understanding
|
uses a high level of skill in both familiar and new situations
|
High
|
clear understanding
|
uses a high level of skill in familiar
situations, and is beginning to use skills in new situations
|
Sound
|
understanding
|
uses skills in situations familiar to them
|
Developing
|
understands aspects of
|
uses varying levels of skill in situations familiar to them
|
Emerging
|
basic understanding
|
beginning situations
|
to
|
use
|
skills
|
in
|
familiar
|
Please revise and use the knowledge from Data Structures and Algorithms for database operations.
Data Structures
You may follow the following class design.
• Student class
Attributes: Student name, year level, and a Linked List of Subjects
• Subject class
Attributes: Subject name and a Linked List of Assessments
• Assessment class
Attributes: assessment id, type, topic, format, due date
• Graded Assessment
A Subclass of Assessment with a Grade object.
• Grade class
Attributes: achievement, knowledge, and skill as shown in Table 3.
Database Utility class
This class will have necessary data structures and methods to create the database and the tables of Student, Subject, Assessment, Grade, populate the tables, and extract data from the tables. Use Prepared Statements to populate the tables using values loaded from the file. Also use Prepared Statements to extract data and store in appropriate data structures.
Server class
This class will have necessary data structures and methods to create the sockets for client connection, creating threads for each client. This class will have main() method to invoke methods from other classes to run the application.
Client class
This class will display menus, take the user input, create socket and request connection to the server. This class will also send/receive the messages between the client/server.
3. Coding
Include necessary accessor, mutator methods, constructors, and toString() method for each class. Also, follow good coding practices, using meaningful names, camel case notation for naming, constants as necessary, and include meaningful comments.
4. Report
Submit a report with the following details.
1. Provide a diagrammatic representation of the SPMS architecture.
2. Include a test plan, and user instructions.
3. Ideally, the SPMS should be a cloud-based application. This should allow the parents/students to access the SPMS from their home and teachers to set grades. The added convenience of having ubiquitous availability of access to the SPMS creates the necessity for additional security requirements. Write the principles of RMI and how this is used in client/server applications. Explore the possibility of using this in the impelmentation of SPMS. Are there any advantages? You need to write a maximum of 500 words.
Attachment:- Distributed Systems.rar