Instructions for Mid Semester Test
In this individual assessment, you are required to appear in mid-semester test based on contents covered from 1 to 6 sessions. The weightage of the test is 20%, comprising descriptive questions related to Java programming. The allotted time is 60 minutes, with 5 minutes designated for preparation, 45 minutes for completing the test paper, and 10 minutes for submission.
For this individual assessment, you are tasked with completing a mid-semester test based on the content covered in the first six lectures. Only one attempt is permitted, and the midterm test will be accessible for one hour during week 7 (April 15th – April 20th) within your tutorial session.
Assessment Details for Assessment Item 3:
Overview
Note: * denotes ‘Hurdle Assessment Item’ that students must achieve at least 40% in this item to pass the unit.s
Assessment tasks
Learning Outcome Mapping
Assessment ID
Assessment Item
When due
Weighting
ULO#
CLO# for
MITS
3*
Application Development (Group)
Part A –Design Part
Session 8
20%
1
1,2
Application Development (Group)
Part B –Implementation.
Session 12
30%
1, 2,3,4
1, 2, 3,4
ASSESSMENT ITEM 3: This is a group assessment (Group Size-5). You will design and implement an application after analyzing requirements given in a case study. You are required to apply basic constructs and OO programming principles in developing this software system.
Introduction (Part A)
INSTRUCTIONS:
Design a VIT Ride Management System using UML(class )diagram.
The system should allow administrators to manage users, drivers, and ride requests. The
1. User:
Design a class representing the user entity in the system. Include attributes such as user ID, name, contact information, and any other relevant information. Methods: Constructors, getters, and
2. Driver:
Design a class representing the driver entity. Include attributes like driver ID, name, license number, vehicle information, and availability status. Methods: Constructors, getters, and setters. Methods for driver-related functionalities (e.g., registering, removing, displaying).
3. Ride: Design a class representing a ride request or allocation. Include attributes such as ride ID, user ID, driver ID, pickup location, destination, and status. Methods: Constructors, getters, and setters, Methods for ride-related functionalities (e.g., requesting, allocating, displaying).
4.RideManager: Design a class to manage users, drivers, ongoing rides, and ride history. Include appropriate methods for registering, removing, and displaying users and drivers. Include methods for ride management, such as requesting rides, allocating drivers, and displaying ride history. Methods for ride management (e.g., requesting rides, allocating drivers, displaying ride history).
5. Main:
Contains the main method for testing the functionalities. Creates an instance of the Ride Manager class and provides a menu system to allow administrators to interact with the system.Create Relationships: User-Driver Relationship:
Define the relationship between the User and Driver classes to represent the association between users and drivers.
Ride-User-Driver Relationship:
Establish relationships between the Ride, User, and Driver classes to represent the associations between ride requests, users, and drivers. You may add some more relationships from your understanding.
The classes should be designed using object-oriented principles such as inheritance, encapsulation, and polymorphism. The application should allow to perform the following tasks:1. Register New Users: Implement a method to register new users for the ride service, including details such as name, student ID, and contact information.
2. Remove Users:
Implement a feature to remove users from the system based on their student ID.
3 Display All Users:
Implement a feature to register new drivers for the ride service, including details such as name, driver’s license number, and vehicle information.
5. Remove Drivers:
Develop functionality to remove drivers from the system based on their driver’s license number. 6. Display All Drivers:
Implement a method to display a list of all registered drivers available for rides.
7. Request a Ride: Design functionality that allows users to request a ride by providing their current location and desired destination.
8. Allocate Drivers to Rides:
Implement a method to allocate available drivers to ride requests based on factors such as proximity and availability.
9. Display Ongoing Rides:
Develop a feature to display a list of all ongoing rides, including details about the user, driver, and current status.
10. Display Ride History:
Implement functionality to display a list of all completed rides, including information such as starting point, destination, and feedback. Requirement for design
1. Utilize appropriate access modifiers for class attributes and methods. 2. Consider generalization, aggregation, Composition or dependencies, multiplicity etc.
3. Use inheritance or interfaces where applicable to promote code reuse and maintainability.
4. Consider any additional classes or interfaces that may be necessary to support the outlined functionalities. 5. Format the report as per IEEE format including following headings:
All Figures included must have captions and Figure numbers and be referenced within the document. Captions for figures placed below the figure, captions for tables placed above the table. Include a footer with the page number. Your report should use 1.5 spacing with a 12-point Times New Roman font. Include references where appropriate
a. Title Page
b. Table of Contents
c. Introduction
d. System Description
e. Requirement Specifications
i. Functional Requirements
ii. Non-functional Requirements
iii. Others
f. Assumptions / Constraints
g. Class Diagram
h. References
Submission Instructions
Submission: The report Application Development Design report of not excessing 2000 words must be submitted in the pdf file through the Moodle submission link for assignment 3 Part A.
Note: All work is due by the due date and time. Late submissions will be penalized at 20% of the assessment final grade per day, including weekends.
Marking Criteria/Rubric
You will be assessed on the following marking criteria/Rubric:
Assessment criteria
Exceptional >=80%
Admirable 70% – 79%
Creditable 60% – 69%
Acceptable 50% – 59%
Unsatisfactory <=49
Class Design(5)
The class diagram is exceptionally clear,
comprehensive, and anticipates future
enhancements.
The class diagram is admirable in clarity, completeness, and
understanding of
entities.
The class diagram is creditable, providing a clear representation but with minor gaps.
The class diagram is acceptable, capturing the fundamental
elements.
The class diagram is unsatisfactory, lacking clarity and
completeness.
Relationships(5)
Relationships are
accurately defined,
demonstrating a deep understanding and
foresight.
Basic relationships are present with potential inaccuracies or areas for improvement.
Relationships are
correctly defined,
showing a clear
understanding of
entity interactions.
Relationships are
acceptable, capturing the basic interactions but with noticeable gaps.
Relationships are
unsatisfactory,
hindering the
understanding of entity interactions.
Attributes and
Methods(5)
Attributes and methods are well-defined,
showcasing a keen
understanding of best practices.
Basic attributes and
methods are present but with room for
improvement in
completeness.
Attributes and
methods are
creditable, providing effective functionality but lacking some
completeness.
Attributes and methods are acceptable,
capturing fundamental functionalities but with noticeable gaps.
Attributes and methods are unsatisfactory,
hindering effective functionality.
Inheritance/Interfaces(5)
Inheritance/interfaces are used optimally,
reflecting a deep
understanding and
forward-thinking.
Limited or unclear use of inheritance/interfaces, with potential for
improvement.
Appropriate use of inheritance/interfaces, contributing to a well organized class
hierarchy.
Inheritance/interfaces are acceptable,
providing some level of code reuse but with room for improvement.
Inheritance/interfaces are unsatisfactory,
causing confusion in system design.
Introduction (Part B)
This assignment will be completed in groups.
INSTRUCTIONS:
This assignment is an extension of assignment 3 Part A, that is the team is working on the same case study as in assignment 3 Part A, and
Using the feedback provided by the teaching instructor, update the requirements of the VIT Ride application. Based on the of the whole system showing all classes and relationships, you are expected to develop software application in Java implementing
The system should allow administrators to manage users, drivers, and ride requests. The
1. User:
Instance Variables :name (String): User’s name., user ID (String): User’s ID, contact Information (String): User’s contact information. Methods: Constructors, getters, and setters. Methods for user-related functionalities (e.g., registering, removing, displaying).
2. Driver:
Instance Variables: name (String): Driver’s name, license Number (String): Driver’s license
Methods: Constructors, getters, and setters. Methods for driver-related functionalities (e.g.,
3. Ride:
Instance Variables: user (User): User associated with the rid, driver (Driver): Driver assigned to the ride, current Location (String): Current location for the ride, destination (String): DesiredMethods: Constructors, getters, and setters, Methods for ride-related functionalities (e.g., requesting, allocating, displaying).
4.RideManager:
Instance Variables: users (List<User>): List of registered users. drivers, (List<Driver>): List of registered drivers., ongoing Rides (List<Ride>): List of ongoing rides., ride History (List<Ride>): List
Methods: Constructors., Methods for registering, removing, and displaying users and drivers. Methods for ride management (e.g., requesting rides, allocating drivers, displaying ride history).
5. Main: Contains the main method for testing the functionalities. Creates an instance of the Ride Manager class and provides a menu system to allow administrators to interact with the system.
11. Register New Users:
a. Implement a method to register new users for the ride service, including details such as name, student ID, and contact information.
12. Remove Users:
Implement a feature to remove users from the system based on their student ID. 13. Display All Users:
Develop a method to display a list of all users registered for the ride service. 14. Register New Drivers:
Implement a feature to register new drivers for the ride service, including details such as name, driver’s license number, and vehicle information.
15. Remove Drivers:
Develop functionality to remove drivers from the system based on their driver’s license number.
16. Display All Drivers:
Implement a method to display a list of all registered drivers available for rides.
17. Request a Ride:
Design functionality that allows users to request a ride by providing their current location and desired destination.
18. Allocate Drivers to Rides:
Implement a method to allocate available drivers to ride requests based on factors such as proximity and availability.
19. Display Ongoing Rides:
Develop a feature to display a list of all ongoing rides, including details about the user, driver, and current status.
20. Display Ride History:
Implement functionality to display a list of all completed rides, including information such as starting point, destination, and feedback.
The classes should be designed using object-oriented principles such as inheritance, encapsulation, and polymorphism. The program should use a graphical user interface (GUI) but should instead use a command-line interface.
Second part Video demonstrationThe whole group will be present in the video with face visible (Camera on). The whole group must introduce themselves and present their contributions. Then the team should discuss design and demonstrate the running of the system (VIT Ride Application). The video must not exceed more than 10 minutes Workplan / Work breakdown Agreement (WBA) You are expected to work as a group on this assignment and contribute very closely to approximately an equal amount of work (unless the special consideration policy outlined applies). In your workplan you must provide details about the contributions and how the work is organised and managed. In most cases, if this is followed, students will receive equal marks on those aspects to their teammates. The Workplan section must include the following information:
Student Name: Contribution Description:
%age of Contribution: I [NAME OF THE STUDENT] hereby accept the Work breakdown/contribution as agreed.
[DATE] NOTE: We will take into account your WBA while marking your assessments and the marks will be adjusted based on the WBA. MARKING SCHEME / GUIDE
The assessment will be marked on the following criteria
Task1: Implementation (15 Marks)
1. Design in the code matches the design in the class diagram. 2. Coding standards. Applies to any code that has been touched by human hands (e.g. meaningful variable and method names, commenting, layout). We will look for meaningful identifier names (variable, classes, methods), inline comments, method header comments, class/module comments, layout.
3. Functional Completeness: All features are fully implemented, and snapshots are included inTask2: System Demonstrations (15 Marks)
1. Please start the video by discussing the contribution of each team member (i.e., which team2. Students demonstrate understanding of the system, the relationship between the code and the design documents of the system.
3. Students should point out where in their code the constructs shown in their design
Submission InstructionsWhat You Have to Submit Team leader to Submit: 1. A document detailing the design of your solution in as much detail. It should include an updated UML diagram of the inheritance hierarchy as well as the component hierarchy of the system. 2. The code for each class in your design. Each class listing should be fully documented commencing with a heading that includes your name, student number, date written, and lecturer’s name, along with a brief description of the class. At the start of each method, there should be a comment clearly describing what the method does. This should be done in NetBeans only. Other IDE will not be accepted. 3. A readme.doc file with information on how to run your program. Include any extra information about your design and program that you wish the marker to know. 4. A Word document with evidence of trial runs of your program, i.e., screen printouts of the results where you have tested all the features of your code. 5. NetBeans project folder.
6. Your Recorded
7. Combine 1, 2, and 4 into ONE word document.
Put 3, 5,6 and 7 together in one zipped folder. Submit the zipped folder via LMS.
Note:
Marking Criteria/Rubric
You will be assessed on the following making criteria/Rubric:
Assessment
criteria
Exceptional >=80%
Admirable 70% – 79%
Creditable 60% – 69%
Acceptable 50% – 59%
Unsatisfactory <=49
Design-Matching Implementation
(5 Marks)
Code design aligns seamlessly with the class diagram.
Design and code mostly align with minor discrepancies.
Adequate alignment with some noticeable design/code
mismatches.
Limited alignment, significant design/code discrepancies.
Poor alignment, major design/code inconsistencies.
Coding
Standards (5
Marks)
Exceptional adherence to coding standards, including meaningful variable/method names, thorough commenting, and consistent layout.
Very good adherence to coding standards with minor lapses.
Adequate adherence with noticeable lapses in coding standards.
Limited adherence, several lapses in coding standards.
Poor adherence, numerous lapses, impacting code readability.
Functional
Completeness (5 Marks)
Report consists Implementation of the all modules, bug-free, and aligns with requirements.
Report consists Mostly complete
implementation with minor bugs.
Adequate completion of modules in report , some notable bugs.
Limited completion, significant bugs impacting functionality.
Incomplete
implementation,
major bugs, significant
functionality issues.
Individual
Contribution
Presentation (5 Marks)
Clear and comprehensive presentation of each team member’s contribution.
Mostly clear presentation with minor omissions.
Adequate presentation, some gaps or lack of clarity.
Limited presentation, significant gaps in individual contributions.
Poor presentation, major omissions or unclear contributions.
Working System Demonstration (5 Marks)
A fully functional system, is demonstrated effectively.
Mostly functional system with minor glitches.
Adequate
demonstration with some noticeable issues.
Limited demonstration, significant issues affecting functionality.
Incomplete or non functional system demonstration.
Understanding of Code-Design
Relationship (5
Marks)
Demonstrates a deep
understanding of how the code implements the design
documents.
Shows good
understanding, with
minor gaps or
inaccuracies.
Adequate
understanding, with
noticeable gaps or
inaccuracies.
Limited understanding, significant gaps in
linking code to design.
Poor understanding, major gaps, inability to link code to
design.