使いやすい食器洗い機のモデル

2008年4月25日(金)
清水 英一

インスタンス化したオブジェクトを意識したアーキテクチャ設計

ここまででFrontPanelとMotorを追加した食器洗い機システムの構造と関連する振る舞いを定義しました。続いて定義したクラス群をインスタンス化と、食器洗い機システムの挙動を確認したいと思います。前回と異なりクラスの数が3つに増えたので、コンポジット構造図を用いて、インスタンス化の処理を明示的に定義を行います。

具体的に説明すると、DishwasherBuilderというクラスを作成し、クラス内に「FrontPanel」「Dishwasher」「Motor」のオブジェクトを定義します。DishwasherBuilderと命名されたクラスですが、これが食器洗い機システム本体を表すことになります。

DishwasherBuilderをインスタンス化した場合、内部に定義されたFrontPanel、Dishwasher、Motorもインスタンス化、実態化されることをコンポジット構造図を用いて定義しました。モデリング開発の世界では、クラスの内部アーキテクチャを定義するのに、この図を利用することが一般的です。

もう少し詳しく各オブジェクト名の定義の仕方について説明すると「itsFrontPanel:FrontPanel」を例にすると、クラスFrontPanelを元にインスタンス化されたオブジェクトitsFrontPanelであるという意味になります。オブジェクト間の関係は、新たに方向付きリンクで結びます。こうすることにより、インスタンス化された場合、オブジェクトitsFrontPanelはオブジェクト「itsDishwasher」の機能を利用することができます。また、itsDishwasherはオブジェクト「itsMotor」を使うことができます。


(画像をクリックすると別ウィンドウに拡大図を表示します)

Motorをインターフェースクラスに変換

ここまでの作業で、前回同様モデルレベルでの動作検証が可能になりますが、シーケンス図の概要については前回も触れたので、今回の例では次のステップの説明に移りたいと思います。次の作業として、駆動モーター(Motor)に関しても拡張を行います。Motorをインターフェースクラスとして定義し、派生クラスとしてのACモーター、DCモーターを作成します。

拡張したクラス図では、Motorをインターフェースクラスとし、実現の矢印をAC、DCの各クラスに引くことにより、両クラスは、Motorで宣言された操作を継承し、個別に実装を行えるように変更しました。

日本テレロジック株式会社
モデリングソリューションズプロダクト事業部 アプリケーションエンジニア。日本テレロジックにおいて、モデリングソリューションズプロダクト事業部に所属するエンジニアとして、組み込み開発向けモデリングツールTelelogic Rhapsody、制御システムビジュアル開発環境ツールTelelogic Statemateなど、モデリングに関しての幅広い営業技術支援、製品サポートおよびコンサルティングサービスのオペレーション、特に、自動車業界向けモデリング、家電(CE)業界向けモデリングを中心に担当しています。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています