Java代写:CS264 Gliding Association

这次需要代写的程序,包括UML图的绘制,程序的逻辑设计与编码等。

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.

Feedback

Feedback will be provided on the coursework via the feedback section in the Moodle 2 gradebook. Individuals can discuss their feedback in the weekly tutorial slots as required. Feedback on the in-class test will be provided via written notes on the test scripts. In-class test scripts will be made available for collection and discussion after marking and moderation during the weekly tutorial slot.

Feedforward

This coursework will develop problem solving skills and programming capabilities which will be of great benefit for employability and parts of other modules.

Individual Assignment Task

A gliding association stores information about many qualified gliding clubs across the UK. The association employs sales people who need access to the information to help book trial gliding lessons for customers across the different clubs.

In order to book a trial gliding lesson, a gift voucher must be purchased from the sales team. Afterwards the customer can then redeem the voucher at a gliding club of their choosing.

Purchase a gift voucher - completed by a member of the sales team in conversation with the customer. A customer will contact a member of the sales team to book a voucher, the sales person will create a new voucher on the system, which should be added to the system database.

Redeem a gift voucher - completed by an instructor at the gliding club in conversation with the customer. A customer or gift recipient will contact a club instructor to redeem a voucher, the instructor will add details of; date, time, club, and type of booking.

Completed voucher - completed by a gliding club instructor. After the flight on the scheduled day the instructor will add complete details of flight duration, glider number, gliding instructor and a certificate can be printed off for the customer.

A voucher consists of:

  • Voucher code.
  • Purchaser name.
  • As a gift? Yes/No
  • Gift recipient name.
  • Delivery address.
  • Email address.
  • Purchase date - Expiry date can be calculated as 1 year from purchase date.

A redeemed voucher consists of all of the above and:

  • Flight Date.
  • Flight Time.
  • Club name.
  • Type of flight booking - e.g.: 1 winch launch, 2 winch launches, 1 aerotow to 2000ft, 1 aerotow to 3000ft, motor powered. Only some clubs can provide AeroTow or Winch launch or both.

A completed voucher consists of all of the above and:

  • Flight duration.
  • Glider number - e.g. K13 G-FCCC.
  • Gliding instructor.

On completion a certificate can be printed off with the completed flight details.

Your main task is to develop a Java client-server application for the sales team and gliding club instructors 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 a sales person can operate the system intuitively. You are expected to use one of the Java GUI frameworks for building your GUI - Swing is advised.

A database is required to store flight voucher 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 keep it simple and choose whichever solution you prefer to implement. The database will require one data table.

A sales person or gliding instructor using the system should be able to:

  • Open the client GUI and connect to the central server and database.
  • View a list of all vouchers. Extra features could include:
    • Search and view a single voucher by voucher code.
    • Filter and view a list of all vouchers which are at a specific gliding club.
    • Filter and view a list of all flights which are scheduled for a specific day at a club.
  • Create a new voucher.
  • Delete an existing voucher.
  • Modify an existing voucher.
  • Print a completed certificate.

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

Analysis

  1. Console diagram for the GUI. Show how the sales team 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 actors and their main goals for the system.
  3. Detailed use case description for one major use case.
  4. High-level UML activity diagram to show interaction for one major use case, use swimlanes.
  5. UML activity diagram at mid-level showing the event loop and possible events occurring in your client application after the program is run and presented with your main GUI screen.
  6. Perform textual analysis on your use case description and identify potential classes.

Design

  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.

All diagrams must be produced in their appropriate UML models. Include your name and SID in a note in the top left of each diagram. Store all UML models together in a single UMLStudio or Visual Paradigm file similar to as shown in figure 1.

After writing your program, you must create a YouTube video clip (approx. 3 minutes in length).
In the clip, you must demonstrate your program running with test data and describe the stability, features and functionality of your client-server application. Point out any shortcomings, bugs, logic errors or limitations in your solution.

For a pass your program and YouTube video should meet and demonstrate 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 and YouTube video demonstration 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 custom 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.