前の関連記事:LibreOffice(7)Pythonマクロ独習の資料を集める
LibreOfficeでアプリを作ろうかと思ってAPI ReferenceとかOpenOffice Developer's Guideを相手に暗中模索しています。これらの図にでてくる矢印の方向のつけ方がどうも納得できないので調べてみたらそれは統一モデリング言語UML(Unified Modeling Language)の書式で書いてあることがわかりました。
A inherited from Bでなぜ矢印がA$$$\leftarrow$$$BでなくA$$$\rightarrow$$$Bなの?
LibreOffice(6)IDLリファレンスでOpenOffice.org APIを知るで使うことにしたLibreOffice 4.2 SDK API ReferenceにでてくるInheritance diagramはAPIの継承関係が視覚的によくわかります。
XScriptContext InterfaceのInheritance diagram
XScriptContextはXinterfaceの性格を引き継いでいます。
XScriptContext inherited from Xinterface と書いてあるのに矢印がXScriptContext→Xinterfaceの向きなのです。
普通はA from BというとA←Bとなると思います。
なにかしっくりしないままOpenOffice Developer's Guideを読んでいると、これらの図は統一モデリング言語UML(Unified Modeling Language)で描いていると書いてありました。
統一モデリング言語UML(Unified Modeling Language)を理解しよう
UMLについてわかりやすい解説がありました。
記事内容はわかりやすいのに記事同士のリンクがわかりにくいのでリンクを全部リストアップします。
その記事で解説してる項目を下行に書きました。
【改訂版】初歩のUML:第1回 まずはUMLのクラス図を書いてみよう - ITmedia エンタープライズ
クラス図、多重度、クラス、インスタンス、オブジェクト図。
【改訂版】初歩のUML:第2回 クラス図の詳細化とその目的 - ITmedia エンタープライズ
関連名、ロール名、関連の方向性、集約、限定子。
【改訂版】初歩のUML:第3回 モデリングにおける「汎化」と「特化」 - ITmedia エンタープライズ
汎化(継承)$$$\leftrightarrow$$$特化、スーパークラス-サブクラス。
【改訂版】初歩のUML:第4回 少しだけ高度なモデリング技術(その1)関連クラスと集約、コンポジション - ITmedia エンタープライズ
関連クラス、コンポジション( $$$\subset$$$ 集約)。
【改訂版】初歩のUML:第5回 少しだけ高度なモデリング技術(その2)クラスの依存関係と実現関係 - ITmedia エンタープライズ
依存関係(使用関係)、ステレオタイプ、実現関係、ロール、ロリポップ。
【改訂版】初歩のUML:第6回 「関連」の理解をさらに深める - ITmedia エンタープライズ
自己再帰的な関連、派生属性、関連の方向性(誘導可能性)。
【改訂版】初歩のUML:オブジェクトの動的側面を見極める - ITmedia エンタープライズ
第7回。オブジェクト図、シークエンス図、コラボレーション図。
【改訂版】初歩のUML:第8回 顧客の要求をユースケースに反映させる - ITmedia エンタープライズ
ユースケース図、アクター。
【改訂版】初歩のUML:第9回 UMLベース開発プロセスの流れ - ITmedia エンタープライズ
この回以降はシステム設計の話になります。
【改訂版】初歩のUML:第10回 開発プロセスの上手な組み合わせ - ITmedia エンタープライズ
【改訂版】初歩のUML:第11回 UMLモデリングの開発過程(ビジネスモデリング編) - ITmedia エンタープライズ
アクティビティ図。
【改訂版】初歩のUML(12):UMLモデリングの開発過程 開発編 - ITmedia エンタープライズ
これが第12回。
【改訂版】初歩のUML(13):UMLモデリングのノウハウ、最後の秘訣(UMLモデリングの開発過程 開発編その2) - ITmedia エンタープライズ
これが最終回。
2004年1月更新の最終回に「書籍化する予定です」と書いてあるのに本の紹介がありません。
この連載の第3回 モデリングにおける「汎化」と「特化」の図4に矢印の図がでてきます。
まあ、A inherited from B を A→B と書くのはそういうルールなのです。
賢い人たちが集まって考えた結果なので素直に従いましょう。
文章で読む方向と同じなのでA←BよりもA→Bの方が→をinherited fromと読み替えればよいので確かにわかりやすいかもしれません。
プログラムの動作としてはBを継承したAを実行した場合、Aの中に該当する機能がなければ次にBの中に探しにいくという流れなのでA→Bという表現になっているようです。
矢印は継承の向きではなくそれが実行されるときの遡及していく方向を表しています。
もう慣れるしかないですね。
第5回の実現関係はまさにUNOの仕組みではないでしょうか。ロリポップを使った図はOpenOffice.org Developer's Guideのインターフェイスの説明にでてきますね。
この連載記事の第8回ぐらいまで読むとほぼUMLが理解できるように思います。
この連載を読んでOpenOffice Developer's Guideにでてくる用語がよくわかるようになりました。
今度はOpenOffice Developer's Guideで定義されている用語を理解しないといけませんね。
(2015.7.26追記。Unified Modeling Language (UML) description, UML diagram examples, tutorials and reference for all types of UML diagrams - use case diagrams, class, package, component, composite structure diagrams, deployments, activities, interactions, profiles, etc.
英語ですが、このKirill Fakhroutdinovさんという個人で書いているそうな解説ページがとてもわかりやすいです。)
参考にしたサイト
LibreOffice: com::sun::star Module Reference
LibreOffice 4.2 SDK API Reference
Apache OpenOffice Developer's Guide - Apache OpenOffice Wiki
LibreOfficeの解説はないのでOpenOfficeの解説書を使います。
OpenOffice.org Developer's Guide - DevelopersGuide_OOo3.1.0.pdf
Apache OpenOffice Developer's Guideを全部まとめたPDF。1656ページもあります。
【改訂版】初歩のUML:第1回 まずはUMLのクラス図を書いてみよう - ITmedia エンタープライズ
UMLのわかりやすい解説です。
Unified Modeling Language (UML) description, UML diagram examples, tutorials and reference for all types of UML diagrams - use case diagrams, class, package, component, composite structure diagrams, deployments, activities, interactions, profiles, etc.
UMLのわかりやすい解説。Kirill Fakhroutdinov - Google+この人は個人で書いているようです。
Unified Modeling Language (UML) description, UML diagram examples, tutorials and reference for all types of UML diagrams - use case diagrams, class, package, component, composite structure diagrams, deployments, activities, interactions, profiles, etc.
UMLのわかりやすい解説。Kirill Fakhroutdinov - Google+この人は個人で書いているようです。
0 件のコメント:
コメントを投稿