最近は、様々な用事で忙殺されております。今週は、前回にも書きましたように横浜のチベットにこもっておりますが、今週末から来週にかけてはOMG総会のためサンディエゴへ出張することになりました。
また、昨年秋にオフィスを引越したばかりですが、入居しているビルがなんと耐震強度が弱いことが判明して建替えることになってしまい、来月中にどこか別の場所へ引越さなければならないことになりました。
筆者は生来、引越が好きな方ですが、まだ一年も経っていない上に、新しい物件を見に行く暇もない状態で、正直の所辟易しています。
筆者のささやかな希望としては、青山近辺で、すぐそばに気の利いた静かなカフェがあり、お客様が来られたら、カフェでエスプレッソでも飲みながら談笑する、というのが良いのですが、そんな所は、なかなか見つからないでしょうね。
成果物のメタクラス
図10-02は、成果物(Artifact)のメタモデル図です。
成果物は、ソースコードのファイルとか実行モジュールとか言った、ソフトウエア開発プロセス上で物理的実体を持つものを表しますので、クラスの一種として定義することも可能ですが、UML2.1では、図10-02のように分類子を特化してクラスとは別に独立して定義しています。これは、恐らく、クラスから定義すると、成果物では使わない様々な性質を継承してしまうことを嫌ったからだと思います。
また、このために、逆に、オペレーションとかプロパティ(属性等)と言ったクラスでははじめから用意されているものを、定義付けしてやる必要があります。(関連は、分類子が元から持っている性質ですので定義不要。)
具現は、主にコンポーネントやノードが対象になりますが、メタモデル上では、「packageableElement」を包括的に指定しています。これにより、成果物はモデル図中で用いられる全てのエレメントを定義するモデル図ファイルであることも可能になります。
図10-02