モジュール製品構造の設計
多くの製品は複数のサブシステムから成り、サブシステムごとにオプションエレメントの独自のセットがあります。場合によっては、各サブシステムのオプションは論理的進行によって別々に処理されます。ただし、あるサブシステムで使用可能なオプションを、ほかのサブシステムでの選択によって制御する必要が生じることもあります。
たとえば、ディスプレイ、トリム、ライティングの各種オプションを使用して複数の異なるモデルで提供可能な金属製ディスプレイケースについて考えてみます。選択したディスプレイケースモデルに応じて、ディスプレイ、トリム、ライティングの各エレメントに使用可能なオプションは異なります。
少数のモジュールと限られた数のオプションによって構成された単純な製品構造の場合、適切なコンフィギュレーション可能製品構造を比較的簡単に作成してテストできます。しかし、製品構造に 5 つのモジュールがあり、それぞれ 6 つのオプションから選択可能な場合、組み合わせの合計は膨大な数になります (この場合、5 x 6 つまり 30)。
次の図に示すように、モジュールの製品構造を複数のコンフィギュレーション可能モジュールに整理することが推奨されます。
この例では、次のテーブルに示すように、ディスプレイケースが Model_01 から Model_05 の 5 種類のモデルで提供され、一部のオプションは特定のモデルにのみ適用可能であるとします。
Display Case モデル | Trim Options | Lighting Options | Display Options |
Model_01 | Twin Standard | Single Double | Shelf, Ventilated Shelf, Solid |
Model_02 | Standard Deluxe | Double, Triple | Shelf, Ventilated Shelf, Solid |
Model_03 | Twin Standard Deluxe | Single Double Triple | Shelf, Ventilated Rack |
Model_04 | Twin Standard Deluxe | Single Double Triple | Shelf, Ventilated Shelf, Solid Rack |
Model_05 | Twin Standard Deluxe | Single Double Triple | Shelf, Ventilated Shelf, Solid Rack |
次の手順では、各オプションモジュールを別々にテストしてから完全な製品構造に統合できるように、適切なロジックエレメントをモジュール形式で作成します。たとえば、Trim Options モジュールのロジックについて考えてみます。このモジュールには次の 4 つのパラメータが必要です。
askModel
• 文字列入力パラメータ
• プロンプト = "(TRIM OPTIONS) 必要なディスプレイケースモデルを選択してください"
• 制約: "Model_01", "Model_02", "Model_03", "Model_04", "Model_05"
• "hide when driven" = true
useStandard
• ブール非入力パラメータ
• Display Case コンフィギュレーション可能モジュールの「子部品」タブで、Bumper, Standard 部品の「挿入オプション」に追加されます
useTwin
• ブール非入力パラメータ
• Display Case コンフィギュレーション可能モジュールの「子部品」タブで、Bumper, Twin 部品の「挿入オプション」に追加されます
useDeluxe
• ブール非入力パラメータ
• Display Case コンフィギュレーション可能モジュールの「子部品」タブで、Bumper, Deluxe 部品の「挿入オプション」に追加されます
次に、以下のテーブルに示すように、ディスプレイケースの各モデルに、トリムオプションの適用性を制御する pickTrim などのケーステーブルが必要です。
Display Case モデル | Trim Options | Lighting Options | Display Options |
Model_03 | TwinStandardDeluxe | SingleDoubleTriple | Shelf, Ventilated Rack |
Model_04 | TwinStandardDeluxe | SingleDoubleTriple | Shelf, Ventilated Shelf, Solid Rack |
Model_05 | TwinStandardDeluxe | SingleDoubleTriple | Shelf, Ventilated Shelf, Solid Rack |
次の手順では、各オプションモジュールを別々にテストしてから完全な製品構造に統合できるように、適切なロジックエレメントをモジュール形式で作成します。たとえば、Trim Options モジュールのロジックについて考えてみます。このモジュールには次の 4 つのパラメータが必要です。
askModel
• 文字列入力パラメータ
• プロンプト = "(TRIM OPTIONS) 必要なディスプレイケースモデルを選択してください"
• 制約: "Model_01", "Model_02", "Model_03", "Model_04", "Model_05"
• "hide when driven" = true
useStandard
• ブール非入力パラメータ
• Display Case コンフィギュレーション可能モジュールの「子部品」タブで、Bumper, Standard 部品の「挿入オプション」に追加されます
useTwin
• ブール非入力パラメータ
• Display Case コンフィギュレーション可能モジュールの「子部品」タブで、Bumper, Twin 部品の「挿入オプション」に追加されます
useDeluxe
• ブール非入力パラメータ
• Display Case コンフィギュレーション可能モジュールの「子部品」タブで、Bumper, Deluxe 部品の「挿入オプション」に追加されます
次に、以下のテーブルに示すように、ディスプレイケースの各モデルに、トリムオプションの適用性を制御する pickTrim などのケーステーブルが必要です。
askModel | useStandard | useTwin | useDeluxe |
Model_01 | はい | はい | いいえ |
Model_02 | はい | いいえ | はい |
Model_03 | はい | はい | はい |
Model_04 | はい | はい | はい |
Model_05 | はい | はい | はい |
これらの論理式を使用して、Trim Options モジュールを個別にテストして、すべてが意図したとおりに機能していることを確認できます。
| ただし、各モジュールに同じアプローチを使用した場合、ユーザーは必要なディスプレイケースのモデルを繰り返し尋ねられるので、望ましくありません。したがって、各モジュールを作成し、それらが正しく機能することを確認した後は、それらを統合する必要があります。 |
モジュールを統合するには、次の操作を行います。
1. 次のように、Display Case コンフィギュレーション可能モジュール内のモデルを特定するための適切なパラメータを作成します。
◦ askModel - 必須の文字列入力パラメータ
◦ プロンプト = "必要なディスプレイケースモデルを選択してください"
◦ 制約: "Model_01", "Model_02", "Model_03", "Model_04", "Model_05"
2. Display Case コンフィギュレーション可能モジュール内の askModel とそのすべての子の間に対応関係を確立します。
3. 各オプションモジュールの各 askModel パラメータに対する制約を除去します。
| Display Case トップレベルコンフィギュレーション可能モジュールと各モジュールを構成するコンフィギュレーション可能モジュールの間の矛盾を回避するためには、これらの制約を除去する必要があります。 |
4. 完成したコンフィギュレーション可能製品構造をテストします。各モジュールをすでにテストしているので、Display Case トップレベルコンフィギュレーション可能モジュールでユーザーが入力した askModel の値が各モジュールに正しくコピーされていることだけを確認する必要があります。
| 「設定」ウィンドウの「パラメータを設定」ページで BOM ツリーを表示して「適用」ボタンを使用すれば、Display Case コンフィギュレーション可能モジュールでの askModel の現在の値が各モジュールにコピーされているかどうかを簡単に確認できます。 |