System Analysis & Design with UML Version 2.0 Minicase Question 2
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 |