public であるかなど.
各関係はどのパターンのどの関係にあたるかを含む
参照・集約については変数の項目で取り扱う
課題としては,関係の逆を(継承される側など)どうするか, 複数の RoleRelation が含まれる可能性があるのか (継承については機能が多重化することが考えられるが,変数は?), など.
各関数はどのパターンのどの関数にあたるかを含む.
これも,変数と同様に機能が多重化することがあり得るかが問題.
Class :- name, lang, package: Identifier; access: AcceSpec; otherspecs: Specifiers; roles: Roles; relations: Relations; members: Members Roles :- Role* Role :- patternname, rolename: Identifier Relations :- Relation* Relation :- Inheritance | Creation Inheritance :- target: Identifier; rolrels: RoleRelations Creation :- target: Identifier; rolrels: RoleRelations RoleRelations :- RoleRelation* RoleRelation :- patternname, relationname: Identifier Members :- Member* Member :- Variable | Method Variable :- type, name, initval: Identifier; access: AcceSpec; otherspecs: Specifiers; rolerels: RoleRelatons Method :- type, name: Identifier; access: AcceSpec; otherspecs: Specifiers; args: Args; roleops: RoleOperations code: Code Args :- Arg* Arg :- type, name: Identifier; specs: Specifiers RoleOperations :- RoleOperation* RoleOperation :- patternname, rolename, operationname: Identifier AcceSpec :- specifier: String Specifiers :- specifiers: String Code :- code: String Identifier :- name: String