Closed jhanmtl closed 4 years ago
final UML on paper added. Waiting for Wiki tab in order to add domain model there.
Missing/required:
[x] ArtOrder is not accessible as a node of the overall object tree. It's not a composition of anything. Impossible to navigate to it as an object using the dot notation. Suggest you make it a composition directly below AGS.
[x] Registration, same issue as above
[x] In ArtOrder, commission should be double
[x] In MailService, price is double
[x] Add a description attribute to Artist
[x] Change WEB in ArtPieceLocation enum to OFFSITE (an umbrella term for any location not at GALLERY). Also WEB is not a physical location.
[x] The multiplicity of ArtPiece (rolename 'piece) should be 1..* since if you are placing an order, you are buying at least one piece.
Suggested:
[x] The association between Customer (customer) and ArtPiece (browsing) can be one-directional from Customer to ArtPiece.
[x] A different word than 'browsing' for the role name of the ArtPiece in this association. Stay away from verbs. Maybe something like 'currentPiece'
[x] Not so sure about the xor association for the pickup and delivery. Seems a bit redundant. Can we create the association class MailService to cover both home delivery and gallery pickup? In other words, only keep your ArtOrder-MailService-Address associations. But add a ServiceType enum that has DELIVERY and PICKUP. Then we can write a constraint like in 223 where if ServiceType == PICKUP, destinationAddress is Gallery Address and company is Gallery and deliveryDistance is 0.
[x] Create attributes buyerName, artistName, and pieceName in ArtOrder. They can be populataed with copying from respective classes. Reason is that if a buyer/artisti/artpiece is deleted from AGS, we would still want that information to be retained in the ArtOrder instances
[x] In ArtPiece, combine xDim, yDim into a single dimension attribute (String) so that we are not limited to 2D. Or some pieces can even have no D.
[x] Make UserRole abstract. It's a design decision where we say these are the only 3 roles of users in AGS
[x] in the OrderStatus enum, change UNPAID to CREATED
All changes implemented except the following: -description attribute for Artist already as attribute in its profile. -xor association retained since the Gallery and MailService are two totally different concepts with different attributes and possible roles. There is less commonalities than differences between them so I consider is better modeled like that. -UserRole already abstract (itallics).
-description attribute for Artist already as attribute in its profile.
-UserRole already abstract (itallics).
-xor association retained since the Gallery and MailService are two totally different concepts with different attributes and possible roles. There is less commonalities than differences between them so I consider is better modeled like that.
still missing:
2 new versions added (v2 and v3) after fixing some modelling mistakes
@MassFC @natis5005 just on paper. push to this folder and also place on wiki