CMPS311 object oriented modeling
Group Project
Milestone-1: Requirements Analysis
Objectives of the Project
The purpose of this project is to reinforce the concepts discussed in the class. The project gives you the opportunity to practice the concepts and techniques taught in the class on a realistic problem. The main objectives of the project are to practice the eliciting Requirements Specification, OO Analysis Modeling, and OO Design Modeling for a software solution to a problem.
Background
Assume Mr. Abdullah Abdullah is the new Director of the Qatar Vehicle Registration (QVR) department. Currently, the department provides various services such as renewal of vehicle registration, transfer of ownership, managing compulsory insurance policies, fitness certificate, accident, and penalty. At the moment, these services are not available online to the general people. Mr. Abdullah has decided to offer its major services online to the general public in Qatar. He believes that, by going online, QVR can serve the people in the most efficient and accurate manner, and will increase the customer satisfaction significantly. Your group has been contacted recently by Mr. Abdullah to develop the online system for QVR department. He has prepared a description of the major functions that are expected to be available online. He reminds your team that the scope of your analysis and design tasks and the system boundary is iQVR only.
Currently, QVR is a manual system without any online supports. It has five sections: Finance section deals with payments, Penalty section handles fines and offences, Registration section processes renewal and ownership transfer, Accident section deals with all accident matters, and Technical section manages the fitness of vehicles. The department has a computer-based system that manages all payments, and salary of the employees. This is a standard, commercial-off-the-shelf package called qPay. Now, Mr. Abdullah wants to replace all five sections with an automated online system, but wants to keep qPay as a separate system connected to iQVR. He plans to employ only one system administrator to handle this automated process. The new online system called iQVR should work as described below. Anyone wants to use the system, he/she must first register with the iQVR system. The system will provide a login ID and password. The person needs the same login ID and password every time he/she uses the system. The vehicle owners, insurance companies, and authorized workshops must need the login ID and password for the online service of iQVR. It is assumed that by default every user has already logged in, so login is not a functionality of the system that your team should design or develop.
In order to register a new vehicle or renew the registration, a vehicle owner first buys an insurance policy from an insurance company. Once an insurance policy for a vehicle is bought, the insurance company immediately submits the policy of a vehicle online to the iQVR system. A vehicle must have an insurance policy, and an insurance policy is valid for one vehicle. The company enters VIN(Vehicle Identification Number) to the system, policy number, expiry date, and attaches the copy of the policy. The system simply records this information with the company data, and produces an acknowledgement receipt for the company. If the vehicle is more than two years old, it needs a fitness certificate from an authorized workshop in Qatar. Once a vehicle gets a fitness certificate, the workshop submits the fitness certificate online to the iQVR system by entering the VIN, certificate number, and attaching a copy of the certificate. One certificate is valid for only one vehicle, however, an workshop can issue many certificates. The system stores these with the workshop data, and generates an acknowledgement receipt for the workshop. A registered vehicle can have only one current owner, however, an owner can have more than one vehicle.
In order to transfer the ownership of a new vehicle, not registered before, to another person, the current owner enters the VIN to the system, vehicle make, model, and year of make. The system provides VIN and car details to another system run by the vehicle manufacturer company that verifies immediately with its factory database if the VIN and other specifications are correct. If the response is positive from the manufacturer, the iQVR system asks the current owner to supply his/her name, QID, address and mobile phone number. Otherwise, it terminates the session with a message “Incorrect vehicle information.” The iQVR system then communicates with another system run by Qatar Trade Service with the VIN and QID of the current owner to check if this owner imported the vehicle from overseas. Qatar Trade Service checks its file to find the vehicle and provides a response to iQVR. If the response is positive, the system then finds the insurance policy of the vehicle already submitted by the insurance company. If the response is negative, the system terminates the session with a message “Incorrect ownership.” If the insurance policy exists, the system concurrently generates a registration number for the vehicle, assigns this to the vehicle, and displays the number to the owner. Now the current owner provides the name, QID, address and mobile phone of the new owner. The system records these, and assigns the vehicle to the new owner. It sets the current owner as ‘previous owner’ and the new owner as the ‘current owner’ concurrently. The system then confirms the ownership transfer by generating a new registration sticker, and creates an invoice (bill) for the transfer fee for the new owner to pay later.
However, to transfer an already registered vehicle to another person, the current owner enters the VIN of the registered vehicle, QID number of the owner, and name, the system first finds the registration details of the vehicle. If the retrieved information does not match with the provided data, the system terminates with the message “Incorrect Information,” otherwise it initiates the transferring process. The system checks if the vehicle has any unpaid invoices (bills) for registration fee or fines for traffic offenses. If there is any, the system asks the owner to pay the pending invoices, and terminates the ownership transfer process with a message “Pay the bills first.” The payment procedure is explained later. If there are no unpaid dues, the system requests for the details of the new owner. The current owner provides the name, QID, address and mobile phone number of the new owner. The assigns the vehicle to the new owner, sets the current owner as ‘previous owner’ and the new owner as the ‘current owner’. The insurance policy already assigned to the vehicle during the last registration remains unchanged. However, the new owner can change the insurance policy later. The system then confirms the ownership transfer by generating a new registration sticker, and creates an invoice for the transfer fee.
For the renewal of a registered vehicle, the vehicle owner enters the VIN to the system. It retrieves the registration details and checks if the vehicle is more than 2 years old. If it is, the system finds the vehicle fitness certificate issued by an authorized workshop. The system terminates with a message “Get fitness certificate first”, if the fitness certificate is not available. If the certificate exists, it retrieves the compulsory insurance policy of the vehicle issued by an insurance company. If a new insurance policy is available, the system checks for any unpaid fines for traffic offenses; otherwise terminate the system with a message “Get insurance policy”. If there is any, it asks the owner to pay the fines and the unpaid registration fee before processing the renewal of the registration, and terminates the process with a message “Pay the bill first. If there are no unpaid dues, the system creates a new registration with the same validation period as specified in the new insurance policy. The insurance policy and the fitness certificate are then attached concurrently with the vehicle registration. The system then prepares a new registration sticker with new validity. It finally creates an invoice for the registration renewal.
For an accident between only two vehicles, if a vehicle accepts that it was his/her fault, he/she enters VINs of his/her and other vehicle’s (victim) vehicle. The system finds vehicle details and registration information of both vehicles. The system then asks to provide the date, time, location, and a brief description of the accident. The system records this information, and by default it sets that the vehicle who entered all information is the owner of the offending vehicle, and other vehicle is the victim of the accident. The system asks the owner of the offending vehicle to confirm this. Once confirmed, the system stores this. The system then concurrently finds the insurance policy of the offending vehicle, and creates an accident report with a unique case number. The iQVR system then sends the accident report to the insurance company that immediately sends an acknowledgement receipt which is saved by the iQVR system. The accident report is then stored, and available for both parties (owners of the offending and victim vehicles) to retrieve at any time. Any authorized workshop can retrieve the accident report if the case number is known. However, if there is a dispute regarding an accident, no online reporting is allowed. Both parties must go to a police station to solve the dispute.
Vehicle owners can pay any unpaid invoices for a vehicle using a credit card. In order to pay, the owner provides the VIN, credit card details such as number, name of the cardholder, and validity. The system retrieves the vehicle registration details. If the registration details do not exist, the system displays an error message and asks to enter a correct VIN. Otherwise, it lists unpaid invoice(s), if there is any. The owner then selects which of the invoices and fines he/she wants to pay. The system saves the selection, computes the total amount, then forwards the card details and the total amount to the qPay system for approval. qPay is a separate software system, but owned by the DVR department. The qPay checks for the validity of the card by contacting the credit card provider (bank). If the card is invalid, it generates an error message to iQVR without processing the payment. Otherwise, qPay returns an approval advice to iQVR. For invalid credit card, iQVR asks the owner to enter valid credit card details. The iQVR system records the outcome sent by qPay. It then concurrently records approval number, prepares a payment receipt, and sets the invoice(s) as paid. It then displays the receipt. Finally, the system updates the list of the unpaid invoices associated with the vehicle.
The traffic police can find out which vehicle has how many red-light offenses in last one year or one month or one week. He/she enters the period, and selects the red-light offense type from the system. Based on these criteria, the system finds a list of vehicles that match these criteria. The traffic police selects those vehicles that exceed a certain number of red-light offenses during this period. The system creates confiscating order for those vehicles, and asks for confirmation from the traffic police. It saves the confirmation, cancels registration of those vehicles, and informs the owner of each vehicle. The owner receives the order. It then broadcasts the orders to all police departments. A confiscating order is attached with only one vehicle, however, one vehicle can get more than one order.
The system knows the registration details of vehicles, model and the make of each vehicle; previous and current owners of each vehicle such as their name, QID, address. It also knows the insurance policy of every registered vehicle such as policy number, validity, and the name of the contact details of the issuing company of the policy. A company can sell many insurance policies. The system also stores information about the fitness certificate of each registered vehicle and the details of workshop that issued the certificate. It keeps information about the invoices, fines, traffic offences and the involving vehicles. The system knows details of each accident such as date, time of the accident, and the involving vehicles. However, it does not record any information about the traffic police except their login data. The system keeps records of all acknowledgements and responses that it received from external systems.
Additional Information
It is likely that you will require additional information about the operations of QVR to complete this project. When a software engineer is working on a system design in industry it is common for the engineer to seek more information about the problem. For this project, your client is your section instructor (either Dr. Osama Shata or Dr Khaled Khan depending on your class section) who can provide more information/clarification about QVR. Send email to or see your instructor during his office hours. In most cases, you need to make assumptions. Note, the above requirements description may be confusing, duplicated, or incomplete. You MUST attach your justifications for any assumptions that you made with your project.
Tasks of Your Project
Milestone 1: Requirements Analysis
This project concentrates on the technical aspects of the software engineering process, and hence emphasizes the modeling components developed during the process. The focus of this Milestone-1 is on the requirements analysis to produce the Use case model, the Domain Model and the System Interaction models using the Unified Modeling Language (UML) and Visual Paradigm tools. The body of your Milestone 1: Requirement Analysis will consist of the following deliverables:
1. |
A complete use case diagram covering all major functionalities of the system and actors. Apply abstraction and classification techniques in order to develop your use case diagram. Optimal diagram covering the exact scope of the system boundary will attract higher marks. |
2. |
Propose Use case specification for most complex and major five (5) use cases selected from your use case diagram. Your proposed each use case specification should include brief description, primary actor(s), trigger, main success scenario, pre-condition(s), postcondition(s), Normal scenario (actor action, system response), alternative flows(if any). Use the template available from Blackboard. The file name is: Template for the Project.docx |
3. |
Activity diagram with swim-lanes for all five (5) use cases proposed in Task 2. Use fork, merge, branch wherever appropriate. |
4. |
Propose a domain model of the entire system. The model will include only the major domain concepts/objects, multiplicity, and their attributes without any methods. Include association between domains, but do not include any attribute types, operations, generalization, or aggregation. Apply abstraction and classification principles to identify the domains. |
Provide any assumptions you made regarding the system description in the document. Project components will be evaluated based on accuracy, clarity, relevancy, justifications, fulfillment of submission requirements, logic, and completeness (especially among components and among artifacts) of your document. The quality of the solution and/or optimal solution will attract higher marks.
Please upload your electronic version to Blackboard as a zip file including both the Word Document and the Visual Paradigm diagram (.vpp file). The Word document must have all the diagrams. You must call the zip file: Group?-Milestone_1_yourQUID.zip (Group? is your Group Number, yourQUID is QU ID) . Example: G2-Milestone_1_20110909.zip. Each student must upload individually a copy of the electronic file on Blackboard.
Each group must submit only one hardcopy either to your section instructor or drop it in his mailbox located in Corridor 5 (ground floor) by the due date.
Grading scheme for Milestone-1: Requirements Analysis
Grading Distribution |
Grading % | |
Task 1:Use case diagram |
20 | |
Task 2: Five use case specifications using template |
25 | |
Task 3: Five activity diagrams with swim lanes |
25 | |
Task 4: Domain model |
30 | |
Total |
100 |