System Analysis & Design With UML Version 2.0 Minicase Question 2
Read Dennis et al. Chapter 6: Minicase 2. Work through it and answer the questions. See the attached example.
Based on the structural model you created in Chapter 5 and the problem description in Chapter 5,
create a functional model (use case diagram, activity diagrams, and use case descriptions) for the business processes associated with the Holiday Travel Vehicles sales system.
Create a sequence and a communication diagram for each scenario of each use case identified in the functional model.
Create a behavioral state machine for each of the complex classes in the class diagram.
Perform a CRUD analysis to show the interactivity of the objects in the system.
Perform a verification and validation walkthrough of each model: functional, structural, and behavioral.
Class Name: Salesperson
ID: 1
Type: Concrete, Model
Description: Represent the sale person information
Associated Use Case:
Responsibilities
Collaborators
To store the sale person information
None
Back
Attributes
Int: id
String: name
String: address
Long: phonenumber
Relationship
Generalisation (a-kind-of): NA
Aggregation (has-a):
1. Works On zero or Many Purchase
Other Associations: NA
Class Name: Purchase
ID: 2
Type: Concrete, Domain
Description: Store the information about the purchase being made by the sales person for an Customer
Associated Use Case:
Responsibilities
Collaborators
Keeps the customer information
Customer
Keeps the salesperson information
salesperson
Keeps the vehicle information for purchase
Vehicle
Keeps a reference to the sale invoice when purchase is finalised
SalesInvoice
Back
Attributes
Customer: customer
Salesperson: salesperson
Vehicle: vehicle
SalesInvoice: invoice
Relationship
Generalisation (a-kind-of):
Aggregation (has-a):
1. Worked on by only one Salesperson
2. Negotiated by zero-or-many Customer
3. Agreed upon by only one SalesInvoice
4. For only one Vehicle
Other Associations: NA
Class Name: Customer
ID: 3
Type: Concrete, Model
Description: Used to represent a customer
Associated Use Case:
Responsibilities
Collaborators
Holds the information about a new customer
None
Back
Attributes
String: id
String: name
String: address
Long: phoneNumber
Relationship
Generalisation (a-kind-of): NA
Aggregation (has-a):
1. Negotiate zero-or-many Purchase
Other Associations: NA
Class Name: SalesInvoice
ID: 4
Type: Concrete, Domain
Description: Represent a sale invoice for a agreed upon purchase
Associated Use Case:
Responsibilities
Collaborators
Holds the information for a trade in vehicle
Vehicle
Holds the information for the trade in allowance against the trade-in-vehicle.
DealerInstalledOptions
Holds the information about the dealer installed option if any
Holds information about other taxes and fees
When sales invoice is finalised, it will hold customer signature as well
Back
Attributes
Vehicle: tradeInVehicle
Double: tradeInAllowance
Int: id
DealerInstalledOptions[]: installedOptions
Double: finalPrice
Double: taxes
Double: licenseFee
String: customerSignature
Relationship
Generalisation (a-kind-of): NA
Aggregation (has-a):
1. Agreed based on only one Purchase
2. Trade in zero-or-one Vehicle
3. Lists zero-or-many DealerInstalledOptions
Other Associations:
Class Name: Vehicle
ID: 5
Type: Concrete, Model
Description: Represent a new vehicle as well as a trade-in vehicle.
Associated Use Case:
Responsibilities
Collaborators
Hold the information for a new vehicle being sold at the store
None
Hold the information for a trade-in-vehicle if any while making a purchase
Back
Attributes
Int: serialNo
String: name
String: model
Int: year
String: manufacture
Double: baseCost
Relationship
Generalisation (a-kind-of): NA
Aggregation (has-a):
1. Traded in as a part of only on SalesInvoice
2. Sold as a part of zero-or-one Purchase
Other Associations: NA
Class Name: DealerInstalledOptions
ID: 6
Type: Concrete, Model
Description: Represent the dealer installed option
Associated Use Case:
Responsibilities
Collaborators
Holds the information about the installed options provided by the dealer
None
Back
Attributes
String: optionCode
String: description
Double: price
Relationship
Generalisation (a-kind-of): NA
Aggregation (has-a): Listed on zero-or-many SalesInvoice
Other Associations: NA