Request for Clarification
Why is the class called TransactionEvent instead of Transaction? Is there such a thing as a transaction that cannot be said to have happened? Also, given 'event' has a special meaning in finance, if you are going to call this out, should it not be called TransactionOccurrence?
Recommended Changes
Incorrect subclass relationships.
pas:TransactionEvent is something that does in fact happen, e.g. withdrawing $100 from an ATM. There for it is NOT an OccurrenceKind, which is defined as a " type of event, which has a description". It does in fact have a Date, where OccurrenceKind specifically lacks a Date.
ReFactoring Suggestions
Classes with names that are too general
The definition of caa:Account narrowly pertains to "a contractual relationship between a buyer and a seller", but this exludes many important accounts in finance, not a bank accounts and investment accounts.
Proposed Solution: Two options.
- Preferred: do not have a class that means what the current class means. Have a class called Account that means the more general case.
- Other: create a second more general class, if for some reason it is important to have both versions.
There are ripple effects, for example for Loans I want an account transaction history, so I want to use AccountingTransactionEvent, but it is limited to a too narrow a sense of account.
Properties with too narrow domain and/or range