Design and implement two chat applications

Assignment Help Software Engineering
Reference no: EM133048042

SOFT40051 Advanced Software Engineering - Nottingham Trent University

Chat application written in C++ and Java

Assessment Requirements

The assignment is group coursework (with some individual tasks, see Section 1 and 2). Given the problem scenario in Section 2, the group is required to produce a collective report of the designed and implemented software application. A Video demonstrating the software is required and a video link MUST be submitted into the Dropbox folder named Video link. The portfolio (one per group) MUST be submitted electronically through NOW before the deadline:

Students MUST use the following convention for naming their folders and files: "Group_X_ASE_Report" (for example, Group_X where X is the name of the group -report for the assignment of the module SOFT40051). Students are also advised to add the same information to the header section of your submitted document.

All files MUST be submitted in a single, main folder per group.

The zipped file MUST have the following structure:

SRC containing all the code files (mandatory);

TESTS with the tests' source code and README file explaining how to run the tests

BUILD containing the build files:

RESULTS with results material/images of the software.

DOC containing Reference and User manuals, and report in the PDF/html formats.

Please upload all the videos to YouTube and provide the links in the reports. DO NOT include videos in the zip file.

The code MUST also be stored in a git repository. Please refer to Lab 2 to learn how to setup your git repository. Students are encouraged to add links to the main git repository in the report. This will enable you to recover quickly should the system fail and allow you to backtrack if your development goes astray.

Ensure that the work submitted will execute on the Ubuntu VMs provided.

Keep evidence of the submission of your assignment, and a copy of your assignment in case of the unlikely event of any loss.

Assessment Scenario/Problem

The project

Nowadays, is common to have applications written in more than one programming language. You will design and implement two chat applications (one in C++ and another in Java) using the client/server architecture. In this project, you will have to code in both C++ and Java to enable users to exchange messages between the java and C++ application. Please use the examples provided in the weekly labs to develop the application.

The collaborative platform must provide the following functionalities:

MUST provide a friendly User Interface (UI).

Users MUST only access their space after the login;

Passwords MUST be saved securely locally.

Each application (C++ and Java) MUST have a client and a server to ensure independent full-duplex communication (I.e. each client can start a new communication with the other application at any time and vice-versa).

The client SHOULD list all the personal contacts in the contacts pane;

The full history of the conversation COULD be listed when a specific contact is selected;

The user MUST be able to create chatrooms (rooms with more than two contacts);

Users MUST be able to see the active users in the chat room;

Offline messages COULD be stored in the client-side and transmitted to the target user(s) once they are online;

The user COULD be able to send emoji;

The user SHOULD be able to change his details including his picture;

Configurations (e.g. user details, contact list, etc) should be saved in JSON file;

The JSON file must be compatible with both applications (i.e. C++ and Java).

Implementation

You are expected to implement the above software system using C++ and Java. Please use the examples provided in the weekly labs to develop the application. The final application MUST meet the following requirements:

Make use of the STL library in C++ and JavaFX in Java

the demo must show the two applications exchanging messages between them

Error handling must be used when needed

at least one class where private member functions for common functionality that should not be exposed in the public interface

at least a simple GUI that allows users to interact with the system software

appropriate testing cases and testing library

Both applications should work as expected, i.e., if the applications do not work then the mark could be reduced even if the individual task is completed well.

The classes need to reflect on the chosen architecture style, e.g., if MVC (recommended) is chosen, then it is expected to have classes for Controller, View and Model (including any subclasses).

Concurrent programming should be used when appropriate.

Documentation
All group members are responsible to upload all the documentation. You will deliver a structured report. The report MUST include the following structure:

Cover page identifying the group members

Abstract

Plagiarism declaration

Revision history

Table of contents

List of tables

List of Images

Introduction

Background research - provide an overview of the external tools and libraries that were used to implement your application (e.g. docker, QT, BOOST, etc.).

Design including the following information:

list of requirements and restrictions using the MoSCoW analysis

list of tasks

time plans

adopted coding standards

other relevant information.

Implementation details. Please DO NOT add any code to your report. Use instead the UML diagrams and pseudo-code. Please explain all the diagrams. Note that the figure's caption is shown at the bottom of the figure.

All the test Scenarios MUST be specified using Table 1. Note that the tables caption is shown at the top of the table.

Please provide details about each of the unit, integration, functional and acceptance tests.

Results:

Include screenshots of your application and EXPLAIN every image. All the figures MUST contain captions and be mentioned in the text. Note that the figure's caption is shown at the bottom of the figure.

Include YouTube links (one per each test) as footnotes using the following format "Available online, <url>, last accessed <date>".

Discussion of the test results.

Conclusions and Future work

References List using the Harvard citations style.

Individual contributions per member.

Overall reflection of the work done.

Appendix (include the reference manual)

Please include the following information:

A general description of the system.

Use case diagram(s) and explain the diagram(s).

Class Diagram(s) and explain the diagram(s).

Sequence Diagram(s) and explain the diagram(s).

Communication UML Diagram(s) and explain the diagram(s).

An explanation of any design pattern used.

Reference Manual (DOC folder of your zipped file).

An explanation of the planned architecture and the reason of the choices (follow step 4 and 5, i.e., identify possible architecture styles and choose one with respect to the identified utility tree, you need to explain the reason).

An explanation of any C++/Java library used.

An explanation of the internal data structures used and the reason of the choices.

An explanation of the search or sorting algorithm used (and concurrent programming, if any) and the reason for the choices. Explain how the algorithm will work in the system with detailed steps.

Examples (screenshots) of the user interface.

An explanation about the software testing process and metrics.

A user manual (DOC folder of your zipped file).

Discussion and conclusion about your results (reflection on testing approach, reflection on performance such as computational efficiency, reliability, security, portability, maintainability, scalability, and design of system complexity).

A summary of the group experience.

Demo video link (Add it to the Dropbox folder Video link)

Attachment:- Assessment - Chat application.rar

Reference no: EM133048042

Questions Cloud

Physical network layer of cyber domain : Create a table to illustrate how you are connected to the physical network layer of the cyber domain.
What is expected level of wealth : What is your expected level of wealth after this arrangement?
Considering importance of data in organization : Considering the importance of data in organization, it is absolutely essential to secure the data present in the database
Conditions for team effectiveness textbook : Describe how an organization and/or team leader can create the five conditions for team effectiveness. Please use outside resources to further rationalize your
Design and implement two chat applications : Chat application written in C++ and Java - Design and implement two chat applications using the client/server architecture
What is an informed consent : What is an informed consent? (use your own words, please do not copy or paste information, you will not receive credit)
Blake and mouton managerial grid : 1. Explain which method of dealing with conflict [from the Dual Concerns Theory] each of the choices represents. [each of the five (5) methods is represented by
Longer part of our common vernacular : Using the course resources this week, why do you think these words have been replaced or are no longer part of our common vernacular?
What is the role of job evaluation : What is a job evaluation? What is the role (s) of job evaluation?

Reviews

Write a Review

Software Engineering Questions & Answers

  Research report on software design

Write a Research Report on software design and answer diffrent type of questions related to design. Report contain diffrent basic questions related to software design.

  A case study in c to java conversion and extensibility

A Case Study in C to Java Conversion and Extensibility

  Create a structural model

Structural modeling is a different view of the same system that you analyzed from a functional perspective. This model shows how data is organized within the system.

  Write an report on a significant software security

Write an report on a significant software security

  Development of a small software system

Analysis, design and development of a small software system.

  Systems analysis and design requirements

Systems Analysis and Design requirements

  Create a complete limited entry decision table

Create a complete limited entry decision table

  Explain flow boundaries map

Explain flow boundaries map the dfd into a software architecture using transform mapping.

  Frame diagrams

Prepare a frame diagram for the software systems.

  Identified systems and elements of the sap system

Identify computing devices, which could be used to support Your Improved Process

  Design a wireframe prototype

Design a wireframe prototype to meet the needs of the personas and requirements.

  Explain the characteristics of visual studio 2005

Explain the characteristics of Visual Studio 2005.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd