UNIVERSITY NAME Faculty Name Department Name Course Code and Name Year - Semester Course website address Analysis Assignment/Project Car Rental Due: Date & Time Number of marks About the assignment scope and domain This is an assignment in requirements analysis. The scope of it is restricted by the coverage of the material in the first five chapters of the RASD 2ed textbook and by the coverage of software development tools in the practical classes. The application domain is a web-based car rental system. Problem statement for the assignment Car Rental (CR) The purpose of the assignment is to develop a (partial) requirements analysis document for a car rental (CR) application. This is an E-commerce application to enable customers to rent cars over the Internet. The customer can input car hire details and request the quotation for a car. After obtaining the quote, the user can proceed with the car booking by supplying credit card details. These details will then be validated and the application will email the confirmation of the car rental arrangement to the customer s chosen email address and then update the car rental database accordingly. For the purpose of this assignment, the scope of the CR system is limited to the following functionality: 1. Customers should be able to request a quote for renting a car. To facilitate this they should be able to enter the pick-up and drop-off locations they require, the pick-up and drop-off dates and their age in order to obtain a list of available car types based on those search criteria. 2. The search results include details of vehicle types, prices for telephone booking, and prices for online booking. 3. From the displayed search results, the customer should be able to request more detailed information about a particular vehicle type, including vehicle makes and models in the chosen type, the seating capacity, and the luggage capacity. 4. From the displayed search results, the customer should also be able to request the quote for renting a chosen vehicle type to be emailed to him/her. To this end, the customer must provide e-mail address. Sending of email is confirmed to the customer. Course/Year/Semester Page 1 of 14
5. From the displayed search results, the customer should also be able to proceed with booking a car. After selecting this option, the customer will be able to check that the details for the rental transaction are correct. 6. Prior to making the booking, the customer will be able to select from a few options including a request for an excess reduction for an additional fee, a protection waiver against cancellation and entry of a promotional code. Some extras can also be specified, including additional drivers, baby capsules and baby seats. 7. The customer will need to be given other important information such as age restrictions, fuel conditions and any other general restrictions, as well as any information on insurance details and pick-up instructions. 8. Still prior to making the booking, the customer will need to enter personal information (such as name, address, telephone number and e-mail address) as well as payment information (credit card details). 9. When processing the booking request, the system will check the completeness and correctness of the customer s data entry (in particular, the credit card information). After successful validation of entered data, the system will confirm the booking with a rental confirmation number. As an additional confirmation of the booking, an e-mail will be sent to the customer s e-mail address. In general, the CR system would have the functionality similar to other typical online car hire systems, such as http://www3.travel.com.au/cars.html. For reference convenience, please consult screenshots at the end of this document demonstrating the car rental process employed by http://www3.travel.com.au/cars.html. To gain additional domain knowledge, you can study pre-packaged COTS (Commercial-Of-The-Shelf) solutions for car rental software, such as http://www.p-c-s.com.au/ and https://www.rentcentric.com/. Task 1 (? marks) In Rational Rose create a new project (model) file named asg1sol.mdl. Develop a business use case model for the CR system. You may need to customize the Use Case View toolbar to see buttons you will need for drawing business use cases, business actors, both-directional associations, etc. Name the model Task1. Apply an abstraction level such that your model will identify only the main use cases of interest to the customer (i.e. the model should take the actor s (rather than system s) viewpoint on the use cases; this is discussed in RASD 2ed pp.113-114 and in few other places in the book). Use <<extend>> and/or <<include>> relationships to visualize the workflow (time and other processing dependencies) between use cases. Use <<communicate>> relationships between actor and use cases (use both-directional relationships when an actor is engaged in interaction with the system, i.e. both sends and receives events). Task 2 (? marks) Develop a use case model for the CR system. Name the model Task2. Apply an abstraction level such that your model will consist of between ten and fifteen use cases. Model for a happy scenario, i.e. do not be preoccupied with exceptional conditions, error messages, etc. Make sure that the use cases cover the requirements in the problem statement. Show use cases and the <<extend>> and <<include>> relationships between them, so that you express time and conditional dependencies between use cases. Do not show actors. As opposed to Task 1, the use cases in Task 2 should take the internal system s perspective, not the actor s perspective (i.e. use cases should be named to reflect the system s functions, as they need to be implemented Course/Year/Semester Page 2 of 14
eventually). Note that the system s perspective favors <<include>> relationships because the consecutive use cases of a workflow must be provided in the system whether or not the actor will use them (however, don t take this hint literally as there is still a scope for <<extend>> relationships in use cases modeled from the system s perspective). Task 3 (? marks) Develop a business class model for CR. Name the diagram Task3. You may need to customize the Logical View toolbar to see the business entity button. Apply an abstraction level such that your model will identify about five business entities. Show associations between business entities and determine their multiplicities. Ensure a minimal model, i.e. do not show associations that can be derived from the associations already in the model. Explain the meaning of the diagram. Task 4 (? marks) Develop an entity class diagram (i.e. entity classes only) for CR. Name the diagram Task4. Prefix the name of each class with letter E (i.e. ECustomer, not Customer). Apply an abstraction level sufficient to model data structures referred to in the requirements listed in the problem statement (this is likely to result in about ten entity classes) Show main attributes in classes (no need to specify types and visibility). Do not show operations. Specify relationships between classes and their multiplicities. Explain any not obvious modeling decisions. Task 5 (? marks) Using Requisite Pro write a use case document for the use case Accept Search Request and Display Search Results. This use case enables the customer to search for a rental vehicle. Your use case document should be saved as a Requisite Pro document named asg1sol.ucs and it should conform to the Requisite Pro template for.ucs documents. Once completed, copy the main body of the.ucs document and paste it as an answer to this task into your main assignment document asg1sol.doc One way to obtain the.ucs template document is to: (1) create a new project using Composite Template, (2) create a new document and specify its document type as Use Case Specification Document Type and then give it the name asg1sol. Task 6 (? marks) Using Rational Rose, develop a sequence diagram and a corresponding collaboration diagram for the use case Accept Search Request and Display Search Results defined in Task 5. Name both diagrams Task6. Create the diagrams as part of the asg1sol.mdl project. Assume the happy path scenario, i.e. there is no need to account for Alternative Flows. Apply naming convention for classes that uses a single letter prefix to identify presentation (P), control (C), and entity (E) objects. Show interactions from the actor (Customer). Show message arguments (names only, no types). Explain not obvious modeling decisions. For objects instantiated in the sequence diagram, use either the constructor names or new() operations and ensure that instantiation messages go to object boxes, not to object lifelines. Include a CarDatabase object (this could be an actor) to show trips to the database. Allow only control object(s) to communicate with CarDatabase. You can assume that when the use case starts the application has already instantiated at least one control class able to intercept user s events on the car search page. Course/Year/Semester Page 3 of 14
As you (hopefully) know, you can generate the collaboration diagram automatically from the sequence diagram (e.g. by just pressing the F5 key). Rose has a tendency to generate some links between objects in collaboration diagrams even though these links do not exist in the sequence diagram (i.e. there are no messages on these links). For clarity, you can remove such links (if you get them). Because the current version of Rational Rose does not fully support UML 2.0 recommendations for message types, you do not need to be concerned about the kinds of arrows used by Rose on message lines. Also, because Rational Rose does not support alternative execution paths (branching of messages), you can model such alternative executions as if they were executing in sequence. Please use the following options in Task 6. Remember also that the Object Specification window has a check-box to indicate multiple instances (which may be relevant for entity objects). Task 7 (? marks) Using Rational Rose, develop a class diagram corresponding to your sequence and collaboration diagrams from Task 6. Make the diagram a part of the asg1sol.mdl project and name it Task7. Course/Year/Semester Page 4 of 14
Show operations in classes (specify names of operation s arguments and return types). Show constructors for classes instantiated in Task 6. Specify relationships between classes. Use uni-directional associations unless the collaborations in Task 6 entail both-directional communication. Take advantage of instantiates relationship available in Rose (instantiates implies the existence of association). Show visibility. Explain not obvious modeling decisions. Note that CarDatabase in Task 6 does not represent a proper actor. It was only used for modeling convenience and it is not part of the application (it represents a server database that a client application communicates with). On the other hand, Customer is an (external) actor that exists also internally as a class (ECustomer). Task 8 (? marks) Using Rational Rose, develop a class diagram for the following scenario. Make the diagram a part of the asg1sol.mdl project and name it Task8. From the viewpoint of the customer, the quotation and the booking refer to a car type (car category). However, from the system s perspective, the booking is associated with a particular car in the fleet that is available for the rental duration and pickup location. Assume that a car type is characterized by four attributes: cartypeid, description (e.g. luxury 4dr auto a/c), seatingcapacity and luggagecapacity. A car has attributes such as carregnumber, make, model, status and it may have its own values for seatingcapacity and luggagecapacity. Develop a model for inheritance hierarchy such that car objects can access description, seatingcapacity and luggagecapacity of their car type, but cannot access cartypeid. Show attribute names and their visibilities (no need to specify types). Course/Year/Semester Page 5 of 14
Screenshots based on http://www3.travel.com.au/cars.html Course/Year/Semester Page 6 of 14
Course/Year/Semester Page 7 of 14
Course/Year/Semester Page 8 of 14
Course/Year/Semester Page 9 of 14
Course/Year/Semester Page 10 of 14
Course/Year/Semester Page 11 of 14
Course/Year/Semester Page 12 of 14
Course/Year/Semester Page 13 of 14
Course/Year/Semester Page 14 of 14