bank -- bank example without any qualified association, not managed -- by Octopus -- file .uml : textual description of the class diagram -- enumerate type {male, female} Gender male; female; -- root class of the system Bank -- agency owned by the bank Agency id : String; ageClients() : Set(Integer); createAccount(p : Person) : Account; -- client of an agency or administrator Person age : Integer; gender : Gender; income : Integer; -- contract between a client and its agency Contract Agency.agency[0..*]<->Person.client[0..*] id : String ; -- bank account Account balance : Integer; -- minimum allowed min : Integer; accountNumber : String; retail(amount : Integer); credit(amount : Integer); -- bankbook BankBook balance : Integer; Person.advised[0..*]<->Person.counsellor[1]; Agency.bankAddress[0..1]<->Account.account[0..*]; Account.managedAccount[0..*]<->Person.administrator[1..*]; Account.account[0..*]<->Person.owner[1]; Account.attachedAccount[1]<->BankBook.bankbook[0..1]; Bank.bank[1]<->Agency.agency[0..*];