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 | ||||