解決策
13. 曖昧 資源
5.2 維持型ビジネスプロセスパターンの形 式的記述
前節で述べたように,「ビジネス評価式」と「ある 状態を維持すること」を形式的に記述することがで きれば,維持型ビジネスプロセスを形式的に記述す ることができる.統一モデリング言語(
UML)[8]
と オブジェクト制約言語(OCL
)[6]
を用いて記述した 維持型ビジネスプロセスのパターンを図5.2
に示す.7
II-115
5.2.1
知識の名前 維持型ビジネスプロセス5.2.2
コンテクスト以下のようなビジネスプロセスで用いられる.
•
製造業において顧客からの注文に応じて生産計画を策定するビジネスプロセス•
製造業において生産量に応じて部材を発注するビジネスプロセス•
人材管理部門において今後の需要に応じて人材育成計画を策定するビジネスプロセス•
金融業において預金額と貸付額のバランスをとるビジネスプロセス5.2.3
問題の存在どのようにして望ましい状態を維持するのか?
5.2.4
解決方法「ある状態を維持すること」を目的とする維持型ビジネスプロセスの
UML
クラス図とこれに対する制約 を以下に示す.このクラス図では,維持型ビジネスプロセスを
MaintenanceProcess
というクラスで表現し,維持する対 象をMaintainedEntity
というクラスで表現している.このクラス図では,複数の対象を維持する事を 想定して,MaintenanceProcess
とMaintainedEntity
の関連を1対多の関連としている.この記述の
isMaintaining( term:Integer )
という関数が「ある状態を維持すること」を表現して いる.この関数はisMaintainingOn( term ) and isMaintaining( term + 1 )
と定義されている の で ,isMaintaining( term:Integer )
が 真 と な る の は ,そ の 時 点 で 望 ま し い 状 態 が 成 立 し て お り(
MaintenanceProcess::isMaintainingOn( term )
が 真 )か つ 以 降 も 望 ま し い 状 態 を 維 持 し て い る(
MaintenanceProcess::isMaintaining( term+1 )
が真)場合であることを再帰的に表現している.さ ら に
MaintenanceProcess::isMaintainingOn( term:Integer )
が 真 と な る の は ,そ の 時 点 で 維 持 す べ き す べ て の 対 象MaintainedEntity
で あ る 状 態 が 維 持 さ れ て い る(
MaintainedEntity::isMaintainedOn( term )
が真)場合であることを表現している.つまり,この維持型ビジネスプロセスのビジネスゴールは
MaintenanceProcess::isMaintainingOn(
term:Integer )
を真に保つことであり,この式がビジネス評価式となる.このビジネス評価式をパラメーターとすることによりビジネスプロセスのパターンを得ることができ,具体的なビジネス評価式を 指定することで様々なビジネスプロセスの記述を得ることができる.
このパターンを利用する場合は,
MaintenanceProcess::isMaintainingOn( term:Integer )
の実体 を定義することになる.図
5.2:
宣言的記述による維持型ビジネスプロセスのパターン8
II-116
pa c k a g e m a i n t e n a n c e t e m p l a t e
- - ビ ジ ネ ス ゴ ー ル を 達 成 し て い る の は , あ る 状 態 を 維 持 し て 場 合 で あ る . co n t e x t M a i n t e n a n c e P r o c e s s
def M a i n t e n a n c e B u s i n e s s G o a l :
i s B u s i n e s s G o a l A c h i e v e d ( t e r m B e g i n : Integer , t e r m E n d : I n t e g e r ): B o o l e a n = i s S t a t u s M a i n t a i n e d ( termBegin , t e r m E n d )
- - あ る 状 態 を 維 持 し て い る の は , 開 始 時 点 で あ る 状 態 に あ り , - - そ れ 以 降 も あ る 状 態 を 維 持 し て い る 場 合 で あ る .
co n t e x t M a i n t e n a n c e P r o c e s s def S t a t u s I s M a i t a i n e d :
i s S t a t u s M a i n t a i n e d ( t e r m B e g i n : Integer , t e r m E n d : I n t e g e r ): B o o l e a n = i s M a i n t a i n i n g O n ( t e r m B e g i n ) and i s M a i n t a i n i n g ( t e r m B e g i n + 1 , t e r m E n d )
- - あ る 時 点 以 降 プ ロ セ ス が 維 持 し 続 け て い る の は , そ の 時 点 で プ ロ セ ス が 維 持 し て お り , - - か つ , 以 降 も プ ロ セ ス が 維 持 し つ つ け て い る 場 合 で あ る .
co n t e x t M a i n t e n a n c e P r o c e s s def P r o c e s s I s M a i n t a i n i n g :
i s M a i n t a i n i n g ( t e r m B e g i n : Integer , t e r m E n d : I n t e g e r ): B o o l e a n = if t e r m B e g i n > t e r m E n d then
i s M a i n t a i n i n g O n ( t e r m B e g i n ) and i s M a i n t a i n i n g ( t e r m B e g i n + 1 , t e r m E n d ) else
i s M a i n t a i n i n g O n ( t e r m B e g i n ) endif
- - あ る 時 点 で プ ロ セ ス が 維 持 し て い る の は ,
- - す べ て の エ ン テ ィ テ ィ が 維 持 さ れ て い る 場 合 で あ る . co n t e x t M a i n t e n a n c e P r o c e s s
def P r o c e s s I s M a i n t a i n i n g O n : i s M a i n t a i n i n g O n ( term : I n t e g e r ): B o o l e a n = m a i n t a i n e d e n t i t i e s - > forAll ( me | me . i s M a i n t a i n e d O n ( ter m ))
e n d p a c k a g e
図
5.2:
(続き)9
II-117