To store the sale person information
| 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 |




Leave a Reply
Want to join the discussion?Feel free to contribute!