Client Server Application with Java DB and UML diagrams focusing on the Telecommunication Compay

Relationship to Module Learning Outcomes

  1. Apply UML use-case, activity, sequence and class diagrams to the analysis of programming problems and the design OO solutions.Exercises methodical analysis and design through the use of the specified UML diagrams applied to an object-oriented programming problem.

  2. Implement and execute small OO programs (up to 5 classes) Requires the implementation and execution of a program using GUIs, constructed from student defined and library classes in Java.

  3. Demonstrate the application of common data structures. Requires the use of data structures such as ArrayLists or HashMaps.

  4. Determine the requirements and structure of programs running and communicating across a network. This assignment requires a client-server application to be analysed.

  5. Design and develop and test OO programs that can communicate with each other across a network. This assignment requires a client-server application to be designed and developed.

Individual Task:
An international telecommunications company stores data about the topology of many different local area networks across the globe.  They employ network administrators who need to access and manage this topology data.
Your main task is to develop a Java client-server application for the network analysts to use.  The client-server application must allow them to access and manage this data remotely.  The database should sit on the server-side so that multiple clients can connect and access the data synchronously.  A simple graphical user interface (GUI) should be developed on the client-side so that network analysts can operate the system intuitively.  You are expected to use one of the Java GUI frameworks for building your GUI – choose either AWT or Swing.
A database is required to store network topology data.  You can use text-files, XML-files, or a relational database management system with SQL for your database solution. The marking of this assignment is not specifically concerned with how you implement the database, so it is suggested that you choose whichever solution you prefer to implement.  The database will require one data table as follows:

Network ID (Primary Key)
Number of Nodes
Number of Hubs
Number of Switches
Topology Structure
(e.g. Star, Ring, Mesh, Bus, Tree, Line, etc)

  • A network administrator using the system should be able to:

  • Open the client GUI and connect to the central server and database.

  • View a list of all networks.  Extra features could include:

    • Filter and view a list of all networks which match a specific Topology Structure.

    • Filter and view a list of all networks which have more or less than x amount of nodes.

  • Create a new network.

  • Delete an existing network.

  • Modify an existing network.

  • Print a list of networks.

Before writing the program a methodical analysis and design must be completed including UML:

  1. Console diagram for the GUI.  Show how the network administrators interact through the GUI.  Keep the GUI as simple as possible (all in the same frame).  Label components where necessary.

  2. UML use case diagram at high-level to show the goals of the network administrators for the system.

  3. UML activity diagram at high-level to show interaction for one major use case.  Show interaction between a network administrator and the system by using swimlanes.

  4. UML activity diagram at mid-level showing the event loop and possible events occurring in your client application after the network administrator has run your program and been presented by your main GUI screen.


  1. UML class diagram consistent with the application code (show the class design, attributes, methods, and any class relationships).

  2. UML sequence diagram for one major use case to show object-interaction.  The diagram must include a pseudocode narrative on the left-hand side.

For a pass your program should meet the following requirements to a suitable standard:

  1. The client program builds and runs without errors.

  2. The server program builds and runs without errors.

  3. An operational client-side GUI has been implemented with suitable controls allowing for transfer of data between user and client (use of Event Handling).

  4. The program is in close correspondence to the UML diagrams.

  5. The client program can successfully connect to and exchange data with the server.

  6. The server program can successfully store and retrieve data from the database.

  7. The basic program functionality is achieved.

  8. Use of data structures (such as ArrayLists) for temporary storage and manipulation of data.

  9. Neatly written program code with consideration to the use of tabbing, suitable naming conventions, structured appropriately.

For a first your program should additionally meet the following requirements to a high standard:

  1. The full program functionality is achieved.

  2. The GUI is refined in its layout and design (use of multiple components from the GUI framework and layouts).

  3. The client program is protected from entering invalid data it will not crash the program.

  4. The server is protected from clients sending bad data it will not crash the server or corrupt the database.

  5. Exception handling is implemented.

  6. Use of student defined classes to reduce the system complexity and promote an object-oriented design (demonstrates Abstraction, Encapsulation, Information Hiding, etc).

  7. The server program is multithreaded.

  8. The server can accept connections and exchange data with multiple clients at the same time.

All Java code files must contain your name and SID as comments at the top.
What are you waiting for? Get your solution now :)
Powered by