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