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