【研究室】ソフトウェアプロダクトライン開発(SPL)「UML」モデルにおけるSPL可変点の設計では『オブジェクト指向』の特徴である、継承および多態性(ポリモーフィズム)を利用してソフトウェアを設計 ~継承と多態性の利用(UML)

【研究室】ソフトウェアプロダクトライン開発(SPL)「UML」モデルにおけるSPL可変点の設計では『オブジェクト指向』の特徴である、継承および多態性(ポリモーフィズム)を利用してソフトウェアを設計 ~継承と多態性の利用(UML)

【研究室】ソフトウェアプロダクトライン開発(SPL)「UML」モデルにおけるSPL可変点の設計では『オブジェクト指向』の特徴である、継承および多態性(ポリモーフィズム)を利用してソフトウェアを設計 ~継承と多態性の利用(UML)

ソフトウェアプロダクトライン開発(SPL)「UML」モデルにおけるSPL可変点の設計では『オブジェクト指向』の特徴である、継承および多態性(ポリモーフィズム)を利用してソフトウェアを設計 ~継承と多態性の利用(UML)
この方式では、オブジェクト指向の特徴である継承および多態性(ポリモーフィズム)を利用してソフトウェアを設計します。その手順は以下のとおりです。

1.  共通となる部分のフレームワーク化

対象としているコンポーネントを利用する全ての製品をカバーするように、抽象設計を行います。ここで定義されるクラス群の内、可変点を持つクラスをスーパークラスとして設計します。これには以下の種類があります。
A)  インタフェース
属性や共通メソッドを持たない、単なるインタフェースクラスです。この場合は、「インタフェースと実装の分離」と同一になります。
B)  抽象インタフェースと具象実装を有するクラス
属性や共通メソッドが定義されたスーパークラスで、かつ抽象インタフェースも保有しています。このため、サブクラスにて抽象インタフェースを実装しないと、インスタンス化できません。
C)  具象実装のみを有するクラス
抽象インタフェースを持たないクラスです。よって、これ単体でインスタンス化が可能です。
通常はA, またはBを使いますが、スコープ内の大多数の製品の実装は共通で、ごく少数の製品だけが異なる実装を必要とする場合には、Cの方式を使ってスーパークラスでデフォルト実装を行うと効果的です。

2.  可変部の設計

可変点を持つスーパークラスに対して、その差分をサブクラスとして設計します。
「UML」モデルにおけるSPL可変点の設計では『オブジェクト指向』の特徴である、継承および多態性(ポリモーフィズム)を利用してソフトウェアを設計
このように実装すれば、開発する製品に合わせてサブクラスを選択することで、製品用のモデルを構成することができます。また、可変部の内容が製品毎に異なる場合は、サブクラスを製品開発時に作成します。

【研究室】SPL(ソフトウェアプロダクトライン)「UML」モデルにおけるSPL可変点の設計では『オブジェクト指向』の特徴である、継承および多態性(ポリモーフィズム)を利用してソフトウェアを設計~継承と多態性の利用(UML)|pagetop