(57)【要約】【課題】１つのフォークでフォークされた処理は、１つのジョインでジョインしなければならない制約をなくしたソースコード作成装置及びソースコード作成プログラムを提供する。【解決手段】アクティビティ図内のエレメントが待ち合わせ／分岐処理、選択処理、実行処理、終了処理のいずれであるかを判定し、待ち合わせ／分岐処理エレメントと選択処理エレメントを識別してソースコード追記する追記手段、分岐するエレメントに対応するソースコードを追記する追記手段、アクティビティエレメントが、単一アクティビティかサブアクティビティかを判定して次に実施するエレメントに対応するソースコードを追記する追記手段、最初に実施するアクティビティに対応するソースコードを追記する追記手段、終了と判定されたエレメントが、終了を通知するサブアクティビティに対応するソースコードを追記する追記手段とを有する。【選択図】図４
2015141489.tif 000002
【特許請求の範囲】
【請求項１】
待ち合わせ／分岐処理、選択処理、実行処理、及び終了処理を含んで構成されるアクティビティ図内の任意のエレメントを取得する取得手段と、
前記取得手段により取得された前記エレメントが待ち合わせ／分岐処理、選択処理、実行処理、終了処理のいずれであるかを判定（Ｒ１）する第１の判定手段と、
前記第１の判定手段により判定された結果に対応するソースコードを予め定められたファイルに追記する第１の追記手段と、
前記第１の判定手段により待ち合わせ／分岐処理と判定された場合、前記エレメントが、待ち合わせ完了後に分岐するエレメントを識別（Ｒ２）するためのフォークセレクタに対応するソースコードを予め定められたファイルに追記する第２の追記手段と、
前記第１の判定手段により待ち合わせ／分岐処理と判定された場合、前記エレメントが、待ち合わせするエレメントを識別（Ｒ３）するためのジョインセレクタに対応するソースコードを予め定められたファイルに追記する第３の追記手段と、
前記第１の判定手段により選択処理と判定された前記エレメントが、条件により分岐するエレメントを識別（Ｒ４）するためのデシジョンセレクタに対応するソースコードを予め定められたファイルに追記する第４の追記手段と、
前記第１の判定手段によりアクティビティと判定された場合、単一アクティビティかサブアクティビティかを判定（Ｒ５）する第２の判定手段と、
前記第２の判定手段によりサブアクティビティと判定された場合、前記エレメントが、最初に実施するアクティビティを識別（Ｒ７）するためのソースコードを予め定められたファイルに追記する第６の追記手段と、
前記第１の判定手段によりアクティビティと判定された場合、前記エレメントが、次に実施するエレメントを識別（Ｒ６）するためのソースコードを予め定められたファイルに追記する第５の追記手段と、
前記第１の判定手段により終了と判定された場合、前記エレメントが終了を通知するサブアクティビティを識別（Ｒ８）し、前記識別されたサブアクティビティがある場合は通知先のサブアクティビティを識別するソースコードを追記し、ない場合は追記しない第８の追記手段と、を有する、
ことを特徴とするソースコード作成装置。
【請求項２】
コンピュータを、
待ち合わせ／分岐処理、選択処理、実行処理、及び終了処理を含んで構成されるアクティビティ図内の任意のエレメントを取得する取得手段と、
前記取得手段により取得された前記エレメントが待ち合わせ／分岐処理、選択処理、実行処理、終了処理のいずれであるかを判定（Ｒ１）する第１の判定手段と、
前記第１の判定手段により判定された結果に対応するソースコードを予め定められたファイルに追記する第１の追記手段と、
前記第１の判定手段により待ち合わせ／分岐処理と判定された場合、前記エレメントが、待ち合わせ完了後に分岐するエレメントを識別（Ｒ２）するためのフォークセレクタに対応するソースコードを予め定められたファイルに追記する第２の追記手段と、
前記第１の判定手段により待ち合わせ／分岐処理と判定された場合、前記エレメントが、待ち合わせするエレメントを識別（Ｒ３）するためのジョインセレクタに対応するソースコードを予め定められたファイルに追記する第３の追記手段と、
前記第１の判定手段により選択処理と判定された前記エレメントが、条件により分岐するエレメントを識別（Ｒ４）するためのデシジョンセレクタに対応するソースコードを予め定められたファイルに追記する第４の追記手段と、
前記第１の判定手段によりアクティビティと判定された場合、単一アクティビティかサブアクティビティかを判定（Ｒ５）する第２の判定手段と、
前記第２の判定手段によりサブアクティビティと判定された場合、前記エレメントが、最初に実施するアクティビティを識別（Ｒ７）するためのソースコードを予め定められたファイルに追記する第６の追記手段と、
前記第１の判定手段によりアクティビティと判定された場合、前記エレメントが、次に実施するエレメントを識別（Ｒ６）するためのソースコードを予め定められたファイルに追記する第５の追記手段と、
前記第１の判定手段により終了と判定された場合、前記エレメントが終了を通知するサブアクティビティを識別（Ｒ８）し、前記識別されたサブアクティビティがある場合は通知先のサブアクティビティを識別するソースコードを追記し、ない場合は追記しない第８の追記手段として機能させる、
ことを特徴とするソースコード作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソースコード作成装置、ソースコード作成プログラムに関する。
【背景技術】
【０００２】
単一処理かそれ以外の処理（複合処理）かを判定する第１判定処理、終了したことを通知するための複合処理が存在するか否か判定する第３判定処理、複合処理と判定した場合に、フォークジョイン処理かサブ処理かを判定する第２判定処理、サブ処理と判定した場合に、最初に実行する処理を認識する第１認識処理、サブ処理と判定した場合に、いずれの処理が実行中であるかを認識する第２認識処理、実行中の処理の次に実行する処理が存在するか否かを判定する第４判定処理、サブ処理を実行した際に実行中の処理の次に実行する複数の処理が存在する場合に、いずれの処理を次に実行するかを判定する第５判定処理、フォークジョイン処理においてフォークする複数の処理を認識する第３認識処理、及びフォークした各処理の終了をジョインさせるためのジョイン処理をソースコードに追記するソースコード作成装が知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１９８４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
先行技術では、アクティビティ図のフォークとジョインを実現するために、フォークにより分岐した処理を、ジョインにより終了を待ち合わせるという手段（同期処理）を用いた。これにより、１つのフォークでフォークされた処理は、１つのジョインでジョインしなければならない制約があった。
本発明は、この制約をなくしたソースコード作成装置及びソースコード作成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
前記課題を解決するために、請求項１に記載のソースコード作成装置は、
待ち合わせ／分岐処理、選択処理、実行処理、及び終了処理を含んで構成されるアクティビティ図内の任意のエレメントを取得する取得手段と、
前記取得手段により取得された前記エレメントが待ち合わせ／分岐処理、選択処理、実行処理、終了処理のいずれであるかを判定（Ｒ１）する第１の判定手段と、
前記第１の判定手段により判定された結果に対応するソースコードを予め定められたファイルに追記する第１の追記手段と、
前記第１の判定手段により待ち合わせ／分岐処理と判定された場合、前記エレメントが、待ち合わせ完了後に分岐するエレメントを識別（Ｒ２）するためのフォークセレクタに対応するソースコードを予め定められたファイルに追記する第２の追記手段と、
前記第１の判定手段により待ち合わせ／分岐処理と判定された場合、前記エレメントが、待ち合わせするエレメントを識別（Ｒ３）するためのジョインセレクタに対応するソースコードを予め定められたファイルに追記する第３の追記手段と、
前記第１の判定手段により選択処理と判定された前記エレメントが、条件により分岐するエレメントを識別（Ｒ４）するためのデシジョンセレクタに対応するソースコードを予め定められたファイルに追記する第４の追記手段と、
前記第１の判定手段によりアクティビティと判定された場合、単一アクティビティかサブアクティビティかを判定（Ｒ５）する第２の判定手段と、
前記第２の判定手段によりサブアクティビティと判定された場合、前記エレメントが、最初に実施するアクティビティを識別（Ｒ７）するためのソースコードを予め定められたファイルに追記する第６の追記手段と、
前記第１の判定手段によりアクティビティと判定された場合、前記エレメントが、次に実施するエレメントを識別（Ｒ６）するためのソースコードを予め定められたファイルに追記する第５の追記手段と、
前記第１の判定手段により終了と判定された場合、前記エレメントが終了を通知するサブアクティビティを識別（Ｒ８）し、前記識別されたサブアクティビティがある場合は通知先のサブアクティビティを識別するソースコードを追記し、ない場合は追記しない第８の追記手段と、を有する、
ことを特徴とする。
【０００６】
前記課題を解決するために、請求項２に記載のソースコード作成プログラムは、
コンピュータを、
待ち合わせ／分岐処理、選択処理、実行処理、及び終了処理を含んで構成されるアクティビティ図内の任意のエレメントを取得する取得手段と、
前記取得手段により取得された前記エレメントが待ち合わせ／分岐処理、選択処理、実行処理、終了処理のいずれであるかを判定（Ｒ１）する第１の判定手段と、
前記第１の判定手段により判定された結果に対応するソースコードを予め定められたファイルに追記する第１の追記手段と、
前記第１の判定手段により待ち合わせ／分岐処理と判定された場合、前記エレメントが、待ち合わせ完了後に分岐するエレメントを識別（Ｒ２）するためのフォークセレクタに対応するソースコードを予め定められたファイルに追記する第２の追記手段と、
前記第１の判定手段により待ち合わせ／分岐処理と判定された場合、前記エレメントが、待ち合わせするエレメントを識別（Ｒ３）するためのジョインセレクタに対応するソースコードを予め定められたファイルに追記する第３の追記手段と、
前記第１の判定手段により選択処理と判定された前記エレメントが、条件により分岐するエレメントを識別（Ｒ４）するためのデシジョンセレクタに対応するソースコードを予め定められたファイルに追記する第４の追記手段と、
前記第１の判定手段によりアクティビティと判定された場合、単一アクティビティかサブアクティビティかを判定（Ｒ５）する第２の判定手段と、
前記第２の判定手段によりサブアクティビティと判定された場合、前記エレメントが、最初に実施するアクティビティを識別（Ｒ７）するためのソースコードを予め定められたファイルに追記する第６の追記手段と、
前記第１の判定手段によりアクティビティと判定された場合、前記エレメントが、次に実施するエレメントを識別（Ｒ６）するためのソースコードを予め定められたファイルに追記する第５の追記手段と、
前記第１の判定手段により終了と判定された場合、前記エレメントが終了を通知するサブアクティビティを識別（Ｒ８）し、前記識別されたサブアクティビティがある場合は通知先のサブアクティビティを識別するソースコードを追記し、ない場合は追記しない第８の追記手段として機能させる、
ことを特徴とする。
【発明の効果】
【０００７】
請求項１に記載の発明によれば、待ち合わせ／分岐処理、選択処理、及び実行処理を含むエレメントで構成されるアクティビティ図を示すアクティビティ情報、及び前記エレメントに対応するソースコードからアクティビティ図が示す処理を行なうためのソースコードを制約なく作成するソースコード作成装置を提供することができる。
請求項２に記載の発明によれば、待ち合わせ／分岐処理、選択処理、及び実行処理を含むエレメントで構成されるアクティビティ図を示すアクティビティ情報、及び前記エレメントに対応するソースコードからアクティビティ図が示す処理を行なうためのソースコードを制約なく作成するソースコード作成プログラムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】ソースコード作成装置１の機能構成の一例を示すブロック図である。
【図２】（ａ）は待ち合わせ／分岐処理の一例、（ｂ）は選択処理の一例を示す図である。
【図３】実施形態に係るモデルを示すクラス図である。
【図４】ソースコード作成装置１によるソースコード作成の流れを示すフローチャートである。
【図５】アクティビティ図で記述された動作からソースコードを作成できない処理のアクティビティ図の一例を示す図である。
【図６】先行技術のモデルを示すクラス図である。
【発明を実施するための形態】
【０００９】
次に図面を参照しながら、以下に実施形態及び具体例を挙げ、本発明を更に詳細に説明するが、本発明はこれらの実施形態及び具体例に限定されるものではない。
また、以下の図面を使用した説明において、図面は模式的なものであり、理解の容易のために説明に必要な要素以外の図示は適宜省略されている。
【００１０】
（１）ソースコード作成装置の全体構成
図１は本実施形態に係るソースコード作成装置１の機能構成の一例を示すブロック図である。
ソースコード作成装置１は、ＣＰＵ（Central Processing Unit）１０、ＲＯＭ（Read Only Memory）１１、ＲＡＭ（Random Access Memory）１２、ＨＤＤ（Hard Disk Drive）１３、ネットワークＩ／Ｆ部２０、操作情報部３０、バス４０を含んで構成されている。
【００１１】
ＣＰＵ１０は、ソースコード作成装置１の全体の動作を司るものであり、後述するソースコード作成装置１の処理を示すフローチャートは、ＣＰＵ１０により実行される。
ＲＯＭ１１は、ソースコード作成装置１の起動時に動作するブートプログラムなどが記憶されている不揮発性の記憶装置である。
ＲＡＭ１２は、ＯＳ（Operating System）、プログラム、各種データが展開される揮発性の記憶装置である。
ＨＤＤ１３は、各データベース、ソース作成プログラムなどのプログラム、ＯＳなどが記録される不揮発性の記憶装置である。
【００１２】
ネットワークＩ／Ｆ部２０は、ネットワークに接続するためのものであり、ＮＩＣ（Network Interface Card）及びドライバで構成される。操作情報部３０は、液晶表示パネル、各種操作ボタン、タッチパネル等を組み合わせて構成され、使用者（オペレータ）がソースコード作成装置１の操作や情報を入力する際に用いられる。また、ソースコード作成装置１に関する情報を使用者（オペレータ）に表示する。バス４０は、情報のやりとりが行われる際に使用される。
【００１３】
（２）アクティビティ図による動作の記述
図２（ａ）は待ち合わせ／分岐処理の一例、（ｂ）は選択処理の一例を示す図、図７は、先行技術では、アクティビティ図で記述された動作からソースコードを作成できない処理のアクティビティ図の一例を示す図である。
以下、図面を参照しながらアクティビティ図による動作の記述とソースコード作成について説明する。
【００１４】
（２．１）アクティビティ図
システムの記述には、統一モデリング言語（ＵＭＬ：Unified Modeling Language）を使用することができ、ＵＭＬはシステムを記述するための一連の方法を提供する。このような方法の１つが、アクティビティ図の使用である。
アクティビティ図は、アクティビティ（処理）の観点やアクティビティ間の制御フローの観点からシステムを記述する。
【００１５】
図２（ａ）は、待ち合わせ／分岐（ジョイン／フォーク）ノードと呼ばれるアクティビティ図の要素を示している。この例では、ジョイン／フォークノード１１０は、ステップＳ１０１のＡｃｔｉｖｉｔｙ１１、ステップＳ１０４のＡｃｔｉｖｉｔｙ１４、ステップＳ１０２のＡｃｔｉｖｉｔｙ１２、及びステップＳ１０３のＡｃｔｉｖｉｔｙ１３の間の関係を記述している。
すなわち、フォークノード１１０は、Ａｃｔｉｖｉｔｙ１１とＡｃｔｉｖｉｔｙ１４の完了を待ち合わせた後にＡｃｔｉｖｉｔｙ１２及びＡｃｔｉｖｉｔｙ１３が同時に開始される分岐処理を示している。
【００１６】
図２（ｂ）は、判断（デシジョン）ノードと呼ばれるアクティビティ図の要素を示している。ここで、デシジョンノード１３０は、ステップＳ１３１のＡｃｔｉｖｉｔｙ３１、ステップＳ１３２のＡｃｔｉｖｉｔｙ３２、及びステップＳ１３３のＡｃｔｉｖｉｔｙ３３の間の関係を記述している。
すなわち、デシジョンノード１３０は、Ａｃｔｉｖｉｔｙ３１の完了時にＡｃｔｉｖｉｔｙ３２及び３２のいずれか１つのみが開始されることを示している。Ａｃｔｉｖｉｔｙ３２及びＡｃｔｉｖｉｔｙ３３のいずれが開始されるかは、デシジョンノード１３０に関連付けられたロジック条件によって判断される。例えば、システムの特定のパラメータが何らかの所定値を上回るか又は下回るかである。
【００１７】
ＵＭＬアクティビティ図では、分岐（フォーク）されたアクティビティ要素と、待ち合わせ（ジョイン）を無関係に記述できるにも拘わらず、先行技術では一つの並列実行（フォーク／ジョイン）から分岐（フォーク）されたアクティビティ要素は、他の一つの並列実行（フォーク／ジョイン）により合流（ジョイン）される場合に制約があった。
そのために、図５に示すアクティビティ図で記述された動作から、ソースコードを作成できない部分があった。
【００１８】
具体的には、図５のアクティビティ図において、フォークノード２１０からフォークされたＡｃｔｉｖｉｔｙＡとＡｃｔｉｖｉｔｙＢは、同一のフォーク／ジョインノード２２０にジョインしなければならず、ＡｃｔｉｖｉｔｙＢはフォーク／ジョインノード２５０にジョインされることができなかった。
同様に、フォーク／ジョインノード２２０からフォークされたＡｃｔｉｖｉｔｙＣ、ＡｃｔｉｖｉｔｙＤ、ＡｃｔｉｖｉｔｙＥは、同一のフォーク／ジョインノード２４０にジョインしなければならず、ＡｃｔｉｖｉｔｙＥはフォーク／ジョインノード２３０にジョインされることができなかった。
【００１９】
（２．２）クラス図
図３は本実施形態に係るモデルを示すクラス図、図４は本実施形態に係るソースコード作成の流れを示すフローチャート、図６は先行技術のモデルを示すクラス図である。
本実施形態に係るデザインパターンを説明する前に、図６を参照しながら比較例として、先行技術に記載されたソースコード作成装置について説明する。
【００２０】
図６に示すＲ９は、Ａｃｔｉｖｉｔｙオブジェクト５０には、単一Ａｃｔｉｖｉｔｙオブジェクト５２とそれ以外である複合Ａｃｔｉｖｉｔｙオブジェクト５４の２種類あることを示している。
また、図５に示すＲ１０は、複合Ａｃｔｉｖｉｔｙオブジェクト５４には、フォークジョインＡｃｔｉｖｉｔｙオブジェクト５６とサブＡｃｔｉｖｉｔｙオブジェクト５８の２種類あることを示している。
【００２１】
比較例のソースコード作成装置は、まず、アクティビティ図の記述にかかわらず、仮のサブＡｃｔｉｖｉｔｙに対応するソースコードを所定のファイルに追記する。
【００２２】
次に、最初に取得したＡｃｔｉｖｉｔｙ要素を仮のサブＡｃｔｉｖｉｔｙの最初に実行するＡｃｔｉｖｉｔｙ（Ｒ２）とするための順序オブジェクト６８のソースコードを追記し、仮のサブＡｃｔｉｖｉｔｙを終了通知先（Ｒ７）とするソースコードを追記する。
【００２３】
そして、次に取得したＡｃｔｉｖｙｉｔｙ要素が存在する場合、それを次に実行するＡｃｔｉｖｉｔｙ（Ｒ８）とするための順序オブジェクト６８のソースコードを追記し、仮のサブＡｃｔｉｖｉｔｙを終了通知先（Ｒ７）とするソースコードを追記する。
存在しない場合は、次に実行するするＡｃｔｉｖｉｔｙ（Ｒ８）がないことを示す順序オブジェクト６８のソースコードを追記し、終了となる。
【００２４】
次に取得したＡｃｔｉｖｉｔｙ要素が単一Ａｃｔｉｖｉｙか複合Ａｃｔｉｖｉｔｙかを判別し、単一Ａｃｔｉｖｉｔｙである場合は、単一Ａｃｔｉｖｉｔｙに対応するソースコードを所定のファイルに追記する。
【００２５】
複合Ａｃｔｉｖｉｔｙの場合、それがフォークジョインＡｃｔｉｖｉｔｙかサブＡｃｔｉｖｉｔｙかを判別し、サブＡｃｔｉｖｉｔｙである場合はサブＡｃｔｉｖｉｔｙに対応するソースコードを追記し、フォークジョインＡｃｔｉｖｉｔｙである場合はフォークジョインＡｃｔｉｖｉｔｙに対応するソースコードを追記する。
【００２６】
取得したＡｃｔｉｖｉｔｙ要素がサブＡｃｔｉｖｉｔｙの場合、サブＡｃｔｉｉｖｉｔｙ内の最初に実行するＡｃｔｉｖｉｔｙ要素に対応するソースコード追記する。そして最初のサブＡｃｔｉｖｉｔｙ同様の処理を繰り返す。
【００２７】
取得したＡｃｔｉｖｉｔｙ要素がフォークジョインＡｃｔｉｖｉｔｙの場合、フォーク後ジョインするＡｃｔｉｖｉｔｙ要素に対応したソースコードを追記し、フォークジョインＡｃｔｉｖｉｔｙを終了通知先（Ｒ７）とするソースコードを追記する。
そして、取得したＡｃｔｉｖｉｔｙ要素をフォークしジョインするＡｃｔｉｖｉｔｙ（Ｒ６）とするためのフォークジョインオブジェクト６６のソースコードを追記する。
【００２８】
取得したＡｃｔｉｖｉｔｙ要素がデシジョンの場合、選択する判定を実施するデシジョンオブジェクト６２に対応するソースコードを追記する。
【００２９】
これにより、図６で示したクラス図で、アクティビティ図で示される処理を実行可能なソースコードを作成することができるが、フォークジョインＡｃｔｉｖｉｔｙにフォークされたＡｃｔｉｖｉｔｙ要素は、同一のフォークジョインＡｃｔｉｖｉｔｙでジョインしなければならないという制約があった。
【００３０】
（２．３）ソースコード作成装置１の動作
本実施形態に係るソースコード作成装置１は、フォークジョインするＡｃｔｉｖｉｔｙとジョインするＡｃｔｉｖｉｔｙ毎に別のソースコードを追記する。
以下本実施形態に係るモデルを示すクラス図（図３）及び本実施形態に係るソースコード作成の流れを示すフローチャート（図４）を参照しながらソースコード作成装置１の動作について説明する。
【００３１】
まずソースコード作成装置１は、待ち合わせ／分岐処理（フォーク／ジョイン）、選択処理（デシジョン）、実行処理（アクティビティ）、及び終了処理（終了）を含んで構成されるアクティビティ図内の任意のエレメント３００を取得する（Ｓ３０１）。
【００３２】
次に、取得されたエレメント３００がフォーク／ジョインオブジェクト３１０、デシジョンオブジェクト３２０、アクティビティオブジェクト３３０、終了オブジェクト３４０のいずれであるかを判定する第１判定処理（Ｒ１）を行う（Ｓ３０２）。
【００３３】
そして、取得されたエレメント３００がフォーク／ジョインオブジェクト３１０と判定された場合（Ｓ３０２：Ａ）には、フォーク／ジョインオブジェクト３１０に対応するソースコード追記し（Ｓ３０２Ａ）、フォーク／ジョインオブジェクト３１０と判定されたエレメント３００が待ち合わせ完了後に分岐（フォーク）するエレメントを識別（Ｒ２）するためのフォークセレクタオブジェクト３７０に対応するソースコードを予め定められたファイルに追記する（Ｓ３０３）。
【００３４】
そして、待ち合わせ（ジョイン）するエレメント３００を識別（Ｒ３）するためのジョインセレクタオブジェクト３８０に対応するソースコードを予め定められたファイルに追記する（Ｓ３０４）。
【００３５】
取得されたエレメント３００がデシジョンオブジェクト３２０と判定された場合（Ｓ３０２：Ｂ）には、デシジョンオブジェクト３２０に対応するソースコードを追記し（Ｓ３０２Ｂ）、デシジョンオブジェクト３２０と判定されたエレメント３００が、条件により分岐するエレメントを識別（Ｒ４）するためのデシジョンセレクタオブジェクト３９０に対応するソースコードを予め定められたファイルに追記する（Ｓ３０５）。
【００３６】
取得されたエレメント３００がアクティビティオブジェクト３３０と判定された場合には、アクティビティオブジェクト３３０と判定されたエレメント３００が、単一アクティビティオブジェクト３５０かサブアクティビティオブジェクト３６０かを判定する第２判定処理（Ｒ５）を行う（Ｓ３０６）。
第２判定処理（Ｓ３０６）によりエレメント３００が単一アクティビティオブジェクト３５０と判定された場合（Ｓ３０６：Ｅ）には、単一アクティビティオブジェクト３５０に対応するソースコードを追記し（Ｓ３０６Ｅ）、次に実施するエレメントを識別（Ｒ６）するためのソースコードを予め定められたファイルに追記する（Ｓ３０７）。
【００３７】
第２判定処理（Ｓ３０６）によりエレメント３００がサブアクティビティオブジェクト３６０と判定された場合（Ｓ３０６：Ｆ）には、サブアクティビティオブジェクト３６０に対応するソースコードを追記する（Ｓ３０６Ｆ１）。
そして、次に実施するエレメントを識別（Ｒ６）するためのソースコードを予め定められたファイルに追記し（Ｓ３０７Ｆ２）、エレメント３００が最初に実施するアクティビティオブジェクト３３０を識別するための（Ｒ７）ソースコードを予め定められたファイルに追記する（Ｓ３０８）。
【００３８】
第１判定処理（Ｓ３０２）によりエレメント３００が終了（Ｓ３０２：Ｄ）と判定された場合には、エレメント３００が終了を通知するサブアクティビティオブジェクト３６０を識別（Ｒ８）するためのソースコードを予め定められたファイルに追記する（Ｓ３０９）。
【００３９】
最後に、全エレメントの取得が完了したかを判定する（Ｓ３１０）。
【００４０】
（３）作用・効果
本実施形態に係るソースコード作成装置１によれば、フォークジョインＡｃｔｉｖｉｔｙにフォークされたＡｃｔｉｖｉｔｙ要素は、同一のフォークジョインＡｃｔｉｖｉｔｙでジョインしなければならないという制約を受けることがなく、比較例のソースコード作成装置ではソースコードを作成できなかった一例として、図６に図示した「不可」部分であってもソースコード作成が可能になる。
【符号の説明】
【００４１】
１・・・ソースコード作成装置
１０・・・ＣＰＵ
１１・・・ＲＯＭ
１２・・・ＲＡＭ
１３・・・ＨＤＤ
２０・・・ネットワークＩ／Ｆ部
３０・・・操作情報部
４０・・・バス
３００・・・エレメント
３１０・・・フォークジョインオブジェクト
３２０・・・デシジョンオブジェクト
３３０・・・アクティビティオブジェクト
３４０・・・終了オブジェクト
３５０・・・単一アクティビティオブジェクト
３６０・・・サブアクティビティオブジェクト
３７０・・・フォークセレクタオブジェクト
３８０・・・ジョインセレクタオブジェクト
３９０・・・デシジョンセレクタオブジェクト
【図１】
2015141489.tif 000003
【図２】
2015141489.tif 000004
【図３】
2015141489.tif 000005
【図４】
2015141489.tif 000006
【図５】
2015141489.tif 000007
【図６】
2015141489.tif 000008