« 各種技法の「競演モデリングライブ」を | トップページ | SQLを使わないでシステム開発 »

2013.01.16

BOMプロセッサの開発完了

 組立型生産管理システムのレファレンスモデル「CONCEPTWARE/生産管理」の実装版OSSの開発が快調である。お正月休みを経て「BOM(部品表)プロセッサ」が完成したのだが、これは生産管理システムの心臓部と呼ぶべき重要かつ高度なモジュールだ。これが無事完成したということは、開発基盤(XEAD Driver)が持つ要件対応力の高さを示す一定の証しでもある。一山越えた気分でひとり祝杯を挙げたのであった。

 「BOMプロセッサ」には、品目、部品表、工程表といった生産基本情報の保守機能が含まれる。ただし、今回の元ネタである「CONCEPTWARE/生産管理」の基本設計においては「フィーチャ・オプション」による品目拡張仕様の管理方式がとられている。したがって、部品表や工程表をフィーチャオプションコードによってマスキングできるようになっていて、BOMプロセッサとしての仕様としてはより複雑である。

 プロセッサの動きを一部紹介しよう。まずはメニューオプションの「品目と部品表の一覧・保守」で品目を一覧し(次図①)、特定品目の詳細情報を眺めているところだ(②)。

130115_1

 ②の見出し域に置かれている品目属性「FO摘要」に注目してほしい。これは、品目毎のフィーチャ体系を端的に表すフィールドなのだが、実はテーブル上には存在しない「仮想フィールド」である。すなわち、テーブル定義にバンドルされた「テーブルスクリプト」が、品目レコードが読み込まれたときに自動的に起動されるようになっていて、これがフィーチャ・オプションに関わるテーブル群を読み込み、さらにフィーチャ構成情報を様式化し、仮想フィールドの値として設定する。

 そのロジックが「アプリ側」ではなく「テーブル側」の仕様として置かれている点に注意してほしい。他にもさまざまな仕様要素が、アプリ側からテーブル側に移行されている。結果的にアプリの仕様が「うすっぺらでありきたり」に矮小化され、アプリの仕様書がパターンにしたがった関数に対するパラメータ構成として記述可能となる。それを専用エディタで眺めると整然たる「仕様書」に見えるのだが、なんと「そのまま実行可能」なのである。

 プロセッサの説明を続けよう。②で「BOM処理」のボタンを押すと、③のオプション選択ダイアログが表示される。選択肢はいくつかあるのだが、たとえば「品目展開の確認」を選ぶと、部品展開の条件を指定するためのダイアログ(次図④)が表示される。

130115_2

 つづいて④でFOコードのプロンプトボタンを押すと、指定品番のフィーチャ体系にもとづくオプション設定ダイアログ(⑤)が表示される。⑤の上でそれぞれのフィーチャに対してオプションを選択してOKボタンを押すと、FOコードが④に返る。さらに④上で展開区分(シングルレベル展開、階層展開、集約展開、最終使途展開)等を指定したうえでOKボタンを押せば、指定条件にもとづく部品展開処理が実行され、結果が示される(⑥)。

 これらのうち④と⑤のダイアログは、「InputDialog関数」を用いてScriptランチャー(*1)内で記述されている。その関数がなくても似たようなダイアログは表示可能ではあるのだが、そのためにスクリプトがごちゃごちゃしてしまうきらいがある。スクリプトの可読性を堅守したかったので、既存の「OptionDialog関数(*2)」に加え新たなダイアログ制御用関数として開発基盤に組み込んだ次第だ。このように実システムの開発によって鍛えられながら、開発基盤がさらに使いやすくなってゆく。それはシステムそのものの開発と同じくらいに楽しい過程だ。

 残高管理サブシステムまで出来上がったら、世界初の「仕様書で動く生産管理システム」として暫定公開する予定である。完成したあかつきには、業務知識や設計ノウハウの学習教材として、また実案件のレファレンスシステムとして活用してほしい。


*1.Scriptランチャーとは、Rhino/JavaScriptをテーブルの拡張仕様ではなくアプリとして記述するための機能タイプのこと。上述のDialog関数はいずれもScriptランチャー内で利用される。スクリプトがアプリとしての実体なので、コードの可読性にはことのほか神経質になったほうがいい。いっぽう、それ以外の機能タイプのアプリ(図中の①②⑥がその例)は仕様書としていきなり動作するので、作成も修正も高速かつ気楽にやれる。これらのアプリが全体の7割にのぼることを思えば、合理化の効果は大きい。
*2.図中の③のようなダイアログを表示するための関数。

|

« 各種技法の「競演モデリングライブ」を | トップページ | SQLを使わないでシステム開発 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: BOMプロセッサの開発完了:

« 各種技法の「競演モデリングライブ」を | トップページ | SQLを使わないでシステム開発 »