Assignment title: Information
School of Science and Technology
COURSEWORK ASSESSMENT ELEMENT
MODULE CODE : COMP20081
MODULE TITLE : Systems Software
MODULE LEADER : Giovanni Acampora
TUTOR(S) : Patrick Merritt
COMPONENT : 1 of 1
TITLE : Java Programming Assignment
LEARNING OUTCOMES
ASSESSED : K3, K4, S3, S4, S5
CONTRIBUTION TO
ELEMENT : 100% of the total coursework mark
DATE SET : 15th February 2016 (Teaching Week 16)
DATE OF
SUBMISSION : 11th April 2016 (Teaching Week 24) for report
and code; Demonstration of Task in week beginning
11th April 2016.
SUBMISSION
METHOD : Electronic version of the report along with all
code to be submitted to NOW dropbox.
FEEDBACK DATE : 21 days after submission (Teaching Week 27)
FEEDBACK
METHOD : NOW, feedback in demo's & by appointment for
more detailed feedback
NOTE : The usual University penalties apply for late
submission and plagiarism. Please consult your student
handbook for further details.
© Copyright 2015
COMP20081: Systems Software
Coursework Assignment – Internetworking with Java
2
I. Assessment Requirements
To pass the coursework component you must demonstrate a solution to the tasks described in section II . You may
use the example architecture as a source but you must be in a position to be able to explain in detail the workings
of your code. The solution to the overall coursework must be demonstrated and explained to your lab tutor in the
labs during the week of 20th April – 24th April 2015. If you fail to explain features of the coursework, the marks
for the feature will not be awarded to you. You are required to submit a short (min 4 pages) explanation of your
coursework solutions. Submit the write-up for the coursework by the 23th April 2014 (note – you may have to
hand in the documentation before you demonstrate your solution). You must also submit an electronic version
of your report along with code to dropbox. The code that you demonstrate has to be the same code that is
submitted electronically.
II. Assessment Scenario/Problem
Java program for a Music Social Network system.
You can work on this coursework either alone or in a pair with a colleague, not
necessarily from the same seminar or lab group.
If you elect to work as a pair then equal marks will normally be given to both parties but the module leader
reserves the right to reduce the marks for a contributor if it is clear there has been an imbalance of effort.
The assignment is about delivering a graphical social network system with a centralised server implementing a
Spotify-like service. The clients connect to the "Music Social Network" server to register new members to the
social network system and upload their profile in terms of "music preferences" (e.g. opera, pop music, rock music,
and so on), personal photo and a set of personal information such as place of birth, place of residence, sentimental
state of the corresponding new social network member. Moreover, each client uploads to the server, at the time of
registration or subsequently, the songs (mp3 files) that it intends to share in the social network. After the
registration step, the new member is enabled to send new friendship requests, post new messages to the social
network, and listen to the songs shared by his friends. Only people that are friends among them can see their
respective posts and listen their respective music. Moreover, social network friends can chat among them by
means of the additional "Chat" server. In particular, the client can ask to the Chat server to act as a bridge to
connect it to its friends and start a new chat session.
The "Music Social Network" server accepts the requests from clients and adds the information related to each
request to a data structure containing the name of the new member, the related profile (information and music
files) and the IP address of the client. This data structure can be stored in a database in order to share it with the
Chat server. Once the "Music Social Network" server completes a new member registration, it sends messages
containing the list of current members to the clients. The "Music Social Network" server will send an updated list
of current members to the clients every two seconds in order to allow each client to always know who are the
people connected to system and enable it to send new friendship requests. Moreover, the "Music Social Network"
server has to show, to each client, the list of songs that the client is enabled to listen, i.e., the songs shared by its
friends. In addition, the Social Network server must forward posts uploaded by other members to the eligible
members. The client uses a graphical window to show the list. The "Music Social Network" server can store the
information about friendships in the same data structure used to manage member registration.
The social network members can contact their friends by starting a chat session by means of the Chat Server. In
particular, the member can contact a friend directly by clicking on the name, or can perform a profile-matching
task to search the set of friends with a particular profile. During the chat session, clients can exchange text, files
and images.
You must implement the client-client and client-server communication and manage all of the music social
network functionalities. A client connecting to the system should be able to: obtain (from the server) a list of who
is currently online; select a person to start a conversation; send text messages to the selected person; listen songs
shared by its friends.
COMP20081: Systems Software
Coursework Assignment – Internetworking with Java
3
You are to implement two servers (Social Network and Chat) and several client objects (see Figure 1). You must
produce a graphical user interface for the client and server systems (see Figures 2).
The functionality of the Client is that it should be able to:
• connect to the server and register its IP address as a valid user along with the name of the user and his/her
profile in order to join the social network service (i.e. login).
• remove the user from the service (i.e. when disconnecting to execute log-off command).
• send a message to the server for selecting the desired person P with whom to ask for a new friendship.
• receive friendship acceptance notifications.
• receive and show post from friends.
• play music shared by friends.
• search for people with a particular profile (e.g. they like "opera").
• send/receive text from other clients.
• send/receive file/images from other clients.
Each client would have to use a set of GUI similar to the following ones:
Member
Client
Member
Client
Member
Client
Social
Network
Server
Registration
Members
Data
Storing/Retrieval
Chat
Server
Member
Client
Member
Client
Chat
Chat
Storing/Retrieval
Member
Client
Friends Information
Figure 1 - Architecture of the Music Social Network
COMP20081: Systems Software
Coursework Assignment – Internetworking with Java
4
Figure 2 - An Example of Minimal Graphical User Interface
COMP20081: Systems Software
Coursework Assignment – Internetworking with Java
5
The required functionality of the Social Network Server is that it should be able to:-
• keep a record (in some form) of all on-line members, their IP addresses, their profiles, and their shared
songs.
• accept new member registrations and add them to the active participants list.
• accept requests from the members to remove itself from its records (log-off ).
• list the roster of current registered members and send it to new clients.
• receive post messages and perform the actions required such as sending the right information to the
members.
• handle multiple member connections concurrently.
The required functionality of the Chat Server is that it should be able to:-
• accept new requests for starting new chat sessions.
• receive messages from members and perform the actions required such as sending the message to the
receiver members.
• handle multiple members connections concurrently.
The mark awarded will be proportionate to the functionality implemented – you can pick and choose which
functionality you want to implement. The design of the system is up to you. Demonstration and explanation of the
prototype is required. Please also refer to the marking scheme defined separately in the Java Coursework Marking
Scheme file.
As well as demonstrating your Server and Client you must submit a short report to include:-
1. List of the students presenting this particular implementation.
2. Commented listings of the client and server
3. An explanation of the design of your system which details items such as :
• the nature of the network connection used. That is if the server holds an open connection to each
client or not and if connections are pooled or created on the fly.
• the data structure used by the server to record active participant information
• how the client handles the communication with the Social Network server.
• how the client handles the communication with the Chat server.
• any other enhancements you have made for extra points – you will get additional marks for
every feature even if the feature is part of a higher band marking requirements and you have not
fulfilled some of the lower bands marking requirements.
III. Assessment Criteria
Class General Characteristics
FIRST
(Excellent)
The report and implemented solution demonstrates outstanding/excellent knowledge
and understanding of the chosen area. The report and developed code shows the
student is typically able to go beyond what has been taught (particularly for a
mid/high 1st). Evidence of extensive and appropriate selection and critical evaluation
/ synthesis / analysis of reading / research beyond the prescribed range of
information given in lectures and labs. The submission shows an excellent
demonstration of relevant skills and knowledge. In particular, the student is required
to implement a chat system based on two different servers and two or more clients
uploading posts, sharing music and chatting among them by using a centralised
approach. The clients and server use a graphical user interface to perform their
activities. The server implements asynchronous communication to update the clients
with the list of currently connected people.
UPPER
SECOND
The report and implemented solution demonstrates very good knowledge and
understanding of the area of study. The report shows evidence of appropriate
COMP20081: Systems Software
Coursework Assignment – Internetworking with Java
6
(Very good) selection of reading/research, some beyond the prescribed range of information
given in lectures and labs in the development of the solution. In particular, the
student is required to implement a chat system based on a single server and two or
more clients uploading posts, sharing music and chatting among them by using a
centralised approach. The clients and server use a graphical user interface to
perform their activities.
LOWER
SECOND
(Good)
Good knowledge and understanding of the area of study balanced towards the
descriptive rather than analytical (i.e. more evidence of more complete descriptions
rather than more in-depth understanding of the process behind the given area and
its implementation). Both the developed code and report shows evidence of an
appropriate selection and evaluation of reading/research but is generally reliant on
set sources to advance the work and implementation. Both the report and developed
code may be limited in range and complexity. The report and code shows clarity but
structure may not always be coherent. In particular, the student is required to
implement a simple social network system based on a single server and two or more
clients exchanging posts among them by using the server to forward their messages.
The clients and server use a graphical user interface to perform their activities.
THIRD
(Sufficient)
Knowledge and understanding is sufficient to deal with terminology, concepts and
algorithms but fails to make meaningful synthesis. Some ability to select and
evaluate reading/research for the development of the code is present, however work
may be more generally descriptive and not provide detail into how the chosen area
algorithmically works or the potential complexities. Both the report and code shows
strong reliance on available sources to advance the work and content/code may be
weak or poorly constructed. The submission shows adequate demonstration of
relevant skills over a limited range but contains some weaknesses.
In particular, the student is required to implement a simple social network system
based on a single server and two or more clients exchanging posts among them by
using the server to forward their messages.
FAIL
(Insufficient)
Insufficient knowledge and understanding of the area. Concepts, algorithms and the
development of code is generally descriptive and fails to address requirements of the
assessment.
Zero Work of no merit OR absent, work not submitted, penalty in some misconduct cases.
IV. Feedback Opportunities
Formative (Whilst you're working on the coursework)
You will be given the opportunity to receive informal verbal feedback from your lab tutor
regarding your coursework development during the practical sessions.
Summative (After you've submitted the coursework)
You will receive specific feedback regarding your coursework submission together with
your awarded mark when it is returned to you. Clearly, feedback provided with your
coursework is only for developmental purposes so that you can improve for the next
assessment or subject-related module.
V. Moderation
The Moderation Process
All assessments are subject to a two-stage moderation process. Firstly, any details related
to the assessment (e.g., clarity of information and the assessment criteria) are considered
by an independent person (usually a member of the module team). Secondly, the grades
awarded are considered by the module team to check for consistency and fairness across
the cohort for the piece of work submitted.