Skip to content

Domain Model

Zhekai Jiang edited this page Nov 27, 2020 · 5 revisions

Class Diagram

domain model

Key decision made when designing class diagram

  • We decided that it would be a better idea if we use address as a single separate class instead of treating it as an attribute inside delivery class. In this way, we can define multiple attributes for the address and it would be convenient to edit or extract different parts of the address. Also, through the association between customer and address, each customer is able to add a list of address in his/her profile so that the address information can be automatically filled out for his/her order.
  • We also decided to separate payment as a new class instead of an attribute inside order class so that an order may contain several payments, including failure and successful ones. In this way, if one payment is failed, the user can make another payment right away on the same order instead of placing another order.
  • In addition, we added several enumeration classes to represent the status for payment, order, art piece, in-store pick up, and parcel delivery. In this way, the status of each order can be tracked through the entire process.

The domain model can be found in the directory model.