Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

CPT304 Software Engineering II

Assignment 1

Implementing Design Patterns in a Console-Based Library Management System

Start date

13th March

Submission date

12th April

Assignment type

Group assignment (4 members)

Percentage in final marks

10%

Deliverables

1.   Source code

2.   Assignment report

Late submission policy

5% of the awarded marks shall be deducted for each working day after the submission date, up to maximum of five working days. Late submission for more than five working days will be not accepted.

Important notes

.    Plagiarism results in award of ZERO mark; all submissions will be checked by TurnItIn.

.    The formal procedure for submitting coursework at XJTLU is strictly followed. Submission link on Learning Mall will be provided in due course. The submission timestamp on Learning Mall will be used to check late submission.

Learning Outcome

.    A. Understand the key problems driving research and development in contemporary software engineering (e.g. the need to develop software using design patterns).

.    B. Demonstrate a familiarity with approaches to software engineering research and

development problems, as well as their advantages, disadvantages, and future research directions.

General instruction

Objective: The main aim of this project is to provide hands-on experience with design patterns. Students should be able to identify correct situations for different design patterns and implement them in a console-based application.

Task: Each group of 4 is to create a simple console-based Library Management System which must incorporate at least three design patterns: one Creational, one Structural, and one Behavioural.

.    Creational could be Singleton, Factory Method, or Builder。

.    Structural could be Adapter, Decorator, or Proxy.

.    Behavioural could be Observer, Strategy, or Command

Requirements:

1.   The application should be able to handle book add/remove operations, user registrations, and checking books in and out.

2.   Utilize the Singleton pattern to handle a database connection object, which in this case could be a simple file or in-memory database.

3.   Choose a use case for Factory Method or Builder pattern: Factory Method pattern can be used to create different types of books or users.

4.   For structural patterns, you might use the Decorator pattern to dynamically assign fines to overdue books.

5.   Use a behavioural pattern to handle some part of the application logic. For example, the   Strategy pattern could be used to switch between different search mechanisms for books, or the Observer pattern can notify users when a book they want becomes available.

Presentation: Each group will demonstrate their Library Management System, explaining their choice of design patterns, and demonstrating how they work in the context of their application.

Remember, understanding why you applied a particular pattern in a specific situation is just as important (if not more important) as the correct implementation of the pattern. The presentation must be recorded in a video not more than 8 minutes in length. The group can freely select one or more presenters. However, all group members must participant in the preparation of the presentation.

Report: Each group will write a 6-page report to explain and justify their choice of design patterns. The report should also explain in detail how the design patterns work in the context of their application.

Marking Criteria

The marking criteria and the weighting is based on the following factors: -

1.   Report quality (15%):

The report should be well presented. The language used in the report must be clear and concise. Whenever appropriate, use images or diagrams to aid understanding.

2.   Coding style and naming convention (10%):

The coding style must improve readability and maintainability of the code (Simple, clear, consistent). Naming convention for variables and methods must promote self- documentation.

3.   Design Pattern (30%):

The design pattern you adopt in your solution must be appropriate for the problem. The report must clearly explain the implementation.

4.   Completeness and accuracy of the solution (15%):

The final program must fulfil all the requirements in the problem statements. The algorithm must produce accurate results.

5.   Presentation (30%):

The presentation must show a good understanding of the project in terms of the selected designed patterned and its implementation. The presentation must cover all important aspects listed above. The presenters must show effective communication skills and well- prepared presentation materials.

Grouping

.    Each group MUST have exactly 4 members.

.    All exceptional case MUST be reported to be before 15th March via email ([email protected]).

.    All group with less than 4 members OR and individual without group will be randomly allocated.

.    Each group must select a group leader, who will be responsible for assignment submission.

.    After completing the assignment, before your submission, group leader must call for a meeting to conduct a peer evaluation using the below “Individual Contribution” form. The form must be signed by all members and attached to the appendix in the report.

Submission and markings notes:

.    You must submit the assignment report in PDF format via Learning Mall by the above submission date. Name the report as CPT304-A1-Report-GroupLeaderID.pdf

.    The report MUST NOT be more than 6 pages (excluding the cover page). Marks will only be given to the first 6 pages in your report.

.    You must submit the source code in ONE single ZIP file via Learning Mall by the above submission date. Name the zip file as CPT304-A1-Code-GroupLeaderID.zip

o Files in proprietary or non-standard file formats may not be readable and so are likely to be ignored.

o Do not submit the compiled binary, which will cause your zip file to be overly large.