MSE800 Software Engineering

Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due

Object-Oriented

Programming Assignment

30%

Objective

The objective of this assignment is to apply software engineering principles and practices to develop a functional Car Rental System. You will utilize object-oriented programming concepts, design patterns, and appropriate software development methodologies to create a robust and user-friendly system.

Assessment Instructions

Ask your tutor if you need further explanation or if the instructions are not clear.

The purpose of this assessment is to assess your knowledge. As part of your academic and professional integrity, you must work alone on this assessment. In the event Yoobee suspects collusion, this will be addressed. For more information on plagiarism, please refer to the Student Handbook.

Submit your completed assessment online (Blackboard) in the correct space provided.

Percentage and feedback will be returned within 15 days of the submission date.

Submission Requirements

Upload the following to Blackboard in the correct space provided.

Source Code Folder: The folder containing source code along with other necessary project files or a text file containing link to your source code along with other necessary project files.

Release Build Zip: Zip the release build executable.

ReadMe: A text/pdf file containing details of User Documentation.

Design and Architecture: A pdf file containing UML diagrams.

Maintenance and Support: A pdf file containing strategies for managing maintenance, versioning, and backward compatibility.

Background:

You have been hired as a software engineer by a car rental company that wants to automate its rental process. The company currently relies on manual paperwork, which is time-consuming and prone to errors. Your task is to design and implement a Car Rental System that will streamline the rental process, improve efficiency, and enhance customer satisfaction. Requirements of the Rental System are the following:

Learning Outcomes (LOs)

LO1: Apply advanced software engineering skills in the context of architectural styles, testing procedures, and the software development lifecycle.

LO2: Analyse how diverse software engineering applications can produce innovative solutions to meet specific industry requirements.

Graduate Profile Outcomes (GPOs) covered

GPO1: Develop advanced software engineering knowledge and skills and apply these to solve emerging or existing problems.

GPO4: Critically analyse, assess and solve software-related problems using project management tools and techniques, creative thinking and enterprise skills.

Success Criteria

You need to meet all the requirements of each of the learning outcomes and receive 50% or more to pass this assessment. You are allowed a maximum of three attempts. To meet all the requirements of each of the learning outcomes, you must achieve PASS results for each task item

Grading

The final grade will be determined by the score achieved in this assessment based on the following table. Should a second or third attempt be required the maximum contribution toward the overall mark for the tasks that required a second or third assessment attempt is 50%. A late submission is considered a second attempt, so the contribution will be capped at 50%.

Requirements:

User Management:

Implement user registration and login functionality.

Differentiate between customer and admin roles, each with specific privileges.

Car Management:

Create a database of available cars, including their details (ID, make, model, year, mileage, available now, minimum rent period, maximum rent period.)

Allow admins to add, update, and delete car records.

Rental Booking:

Enable customers to view available cars and their details.

Implement a booking feature that allows customers to select a car, specify rental dates, and provide necessary details.

Calculate the rental fees based on the selected car, rental duration, and any additional charges.

Rental Management:

Allow admins to manage rental bookings, including approving or rejecting requests.

Assessment Tasks

Task 1: Design and Architecture (LO1)

Design an object-oriented architecture for the car rental system. Consider using appropriate design patterns (such as Factory Method, Singleton, Observer) to enhance modularity and maintainability. Provide a high-level architectural diagram and a description of how each component interacts.

Task 2: Innovative Solutions (LO2)

Propose an innovative feature or enhancement that sets your car rental system apart from traditional systems. This could involve integration with modern technologies (such as mobile apps, IoT devices, or cloud services) or introducing a unique user experience. Explain how this innovation addresses a specific industry requirement and provides a competitive advantage.

Task 3: Software Evolution (LO2)

Outline a plan for evolving the car rental system over time. Describe how you would handle updates, bug fixes, and new feature additions. Discuss strategies for managing software maintenance, versioning, and backward compatibility. Highlight the importance of software engineering principles in ensuring the system's long-term success.




发表评论

电子邮件地址不会被公开。 必填项已用*标注