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.