(57)【要約】【課題】開発プロセスを定義／編集し、開発プロセスをもとにプロジェクトを計画／実践／監視する、作業負荷を軽減する。【解決手段】開発プロセスモデルが定義するアクティビティや成果物などに対して横断する開発管理作業をアスペクト指向技術を用いて、アスペクト名とポイントカット名とポイントカットに対するジョインポイントとアドバイスを実行するポイントカット名とポイントカットに対する実行タイミングとアドバイスの実行内容を持つアスペクトとして定義して保存する開発プロセスアスペクト定義部と、保存されたアスペクトのジョインポイントに該当するプロジェクト計画上の箇所にアドバイスの実行内容を適用する静的ウイーバ部、とを備えた。【選択図】        図８
2005251010.tif 000002
【特許請求の範囲】
【請求項１】
開発プロセスメタモデルに基づく開発プロセスモデル上で指定された作業分野をプロジェクト計画にタスクとして設定する手順と、
上記開発プロセスモデルを上記開発プロセスメタモデルに基づき解釈することにより指定された上記作業分野が持つアクティビティ群を入手して上記プロジェクト計画にタスクとして設定する手順と、
該タスクのリソースとして上記開発プロセスモデルから入手した役割を設定する手順と、
上記プロジェクト計画にあるタスク間のリンクとして上記開発プロセスモデルから入手した上記アクティビティ間の順序関係を設定する手順と、によりプロジェクト計画スケルトンを得る計画生成部、を備えたことを特徴とする開発プロセス支援装置。
【請求項２】
開発プロセスモデルが定義するアクティビティや成果物に対して横断する開発管理作業をアスペクト指向技術により、アスペクト名を記述する手順と、
上記アスペクト名に対応するポイントカット名を記述する手順と、
上記ポイントカットに対するアドバイスの実行内容を記述する手順と、を備えて、上記記述の集合としてアスペクトを定義保存する開発プロセスアスペクト定義部、を備えたことを特徴とする開発プロセス支援装置。
【請求項３】
開発プロセスモデルが定義するアクティビティや成果物に対して横断する開発管理作業をアスペクト指向技術により、アスペクト名を記述する手順と、上記アスペクト名に対応するポイントカット名を記述する手順と、上記ポイントカットに対するアドバイスの実行内容を記述する手順と、を備えて、上記記述の集合としてアスペクトを定義保存する開発プロセスアスペクト定義部と、
保存された上記アスペクトのジョインポイントに該当するプロジェクト計画上の箇所にアドバイスの実行内容を適用する静的ウイーバ部、とを備えたことを特徴とする開発プロセス支援装置。
【請求項４】
開発プロセスモデルが定義するアクティビティや成果物に対して横断する開発管理作業をアスペクト指向技術により、アスペクト名を記述する手順と、上記アスペクト名に対応するポイントカット名を記述する手順と、上記ポイントカットに対するアドバイスの実行内容を記述する手順と、を備えて、上記記述の集合としてアスペクトを定義保存する開発プロセスアスペクト定義部と、
プロジェクト実績や成果物を管理する構成管理データベースの変更通知を受けると、該変更通知に該当するジョインポイントを持つポイントカットで指定されたタイミングでアドバイスの実行内容を適用する動的ウイーバ部、とを備えたことを特徴とする開発プロセス支援装置。
【請求項５】
開発プロセスメタモデルに基づく開発プロセスモデル上で指定された作業分野をプロジェクト計画にタスクとして設定するステップと、
上記開発プロセスモデルを上記開発プロセスメタモデルに基づき解釈することにより指定された上記作業分野が持つアクティビティ群を入手して上記プロジェクト計画にタスクとして設定するステップと、
該タスクのリソースとして上記開発プロセスモデルから入手した役割を設定するステップと、
上記プロジェクト計画にあるタスク間のリンクとして上記開発プロセスモデルから入手した上記アクティビティ間の順序関係を設定するステップと、を備えたことを特徴とする開発プロセス支援方法。
【請求項６】
開発プロセスモデルが定義するアクティビティや成果物に対して横断する開発管理作業をアスペクト指向技術により、アスペクト名を記述するステップと、
上記アスペクト名に対応するポイントカット名を記述するステップと、
上記ポイントカットに対するアドバイスの実行内容を記述するステップと、
上記記述の集合としてアスペクトをデータベースに定義保存するステップ、とを備えたことを特徴とする開発プロセス支援方法。
【請求項７】
開発プロセスモデルが定義するアクティビティや成果物に対して横断する開発管理作業をアスペクト指向技術により、アスペクト名を記述するステップと、
上記アスペクト名に対応するポイントカット名を記述するステップと、
上記ポイントカットに対するアドバイスの実行内容を記述するステップと、
上記記述の集合としてアスペクトをデータベースに定義保存するステップと、
保存された上記アスペクトのジョインポイントに該当するプロジェクト計画上の箇所にアドバイスの実行内容を適用するステップ、とを備えたことを特徴とする開発プロセス支援方法。
【請求項８】
開発プロセスモデルが定義するアクティビティや成果物に対して横断する開発管理作業をアスペクト指向技術により、アスペクト名を記述するステップと、
上記アスペクト名に対応するポイントカット名を記述するステップと、
上記ポイントカットに対するアドバイスの実行内容を記述するステップと、
上記記述の集合としてアスペクトをデータベースに定義保存するステップと、
プロジェクト実績や成果物を管理する構成管理データベースの変更通知を受けると、該変更通知に該当するジョインポイントを持つポイントカットで指定されたタイミングでアドバイスの実行内容を適用するステップ、とを備えたことを特徴とする開発プロセス支援方法。
【請求項９】
計算機が実行可能なプログラムとして構成し、
開発プロセスメタモデルに基づく開発プロセスモデル上で指定された作業分野をプロジェクト計画にタスクとして設定するステップと、
上記開発プロセスモデルを上記開発プロセスメタモデルに基づき解釈することにより指定された上記作業分野が持つアクティビティ群を入手して上記プロジェクト計画にタスクとして設定するステップと、
該タスクのリソースとして上記開発プロセスモデルから入手した役割を設定するステップと、
上記プロジェクト計画にあるタスク間のリンクとして上記開発プロセスモデルから入手した上記アクティビティ間の順序関係を設定するステップと、を備えたことを特徴とする開発プロセス支援プログラム。
【請求項１０】
計算機が実行可能なプログラムとして構成し、
開発プロセスモデルが定義するアクティビティや成果物に対して横断する開発管理作業をアスペクト指向技術により、アスペクト名を記述するステップと、
上記アスペクト名に対応するポイントカット名を記述するステップと、
上記ポイントカットに対するアドバイスの実行内容を記述するステップと、
上記記述の集合としてアスペクトをデータベースに定義保存するステップ、とを備えたことを特徴とする開発プロセス支援プログラム。
【請求項１１】
計算機が実行可能なプログラムとして構成し、
開発プロセスモデルが定義するアクティビティや成果物に対して横断する開発管理作業をアスペクト指向技術により、アスペクト名を記述するステップと、
上記アスペクト名に対応するポイントカット名を記述するステップと、
上記ポイントカットに対するアドバイスの実行内容を記述するステップと、
上記記述の集合としてアスペクトをデータベースに定義保存するステップと、
保存された上記アスペクトのジョインポイントに該当するプロジェクト計画上の箇所にアドバイスの実行内容を適用するステップ、とを備えたことを特徴とする開発プロセス支援プログラム。
【請求項１２】
計算機が実行可能なプログラムとして構成し、
開発プロセスモデルが定義するアクティビティや成果物に対して横断する開発管理作業をアスペクト指向技術により、アスペクト名を記述するステップと、
上記アスペクト名に対応するポイントカット名を記述するステップと、
上記ポイントカットに対するアドバイスの実行内容を記述するステップと、
上記記述の集合としてアスペクトをデータベースに定義保存するステップと、
プロジェクト実績や成果物を管理する構成管理データベースの変更通知を受けると、該変更通知に該当するジョインポイントを持つポイントカットで指定されたタイミングでアドバイスの実行内容を適用するステップ、とを備えたことを特徴とする開発プロセス支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、主としてソフトウェア製品の開発とソフトウェア開発工程の管理を行う際の、開発、管理の工程を容易にする、開発プロセスの実行支援に関するものである。
【背景技術】
【０００２】
従来の開発プロセス支援システムの全体構成を図１７に示す。
まずこのシステムの利用者である、「組織の開発プロセスエンジニア」Ｈ１は、例えば業界団体ＯＭＧ（Ｏｂｊｅｃｔ  Ｍａｎａｇｅｍｅｎｔ  Ｇｒｏｕｐ）が承認した開発プロセスのメタモデルを定義したＳＰＥＭが該当する開発プロセスメタモデル１１を開発の起点とする。この開発プロセスメタモデル１１は、開発プロセスを構成する要素（例えばソフトウェアを開発するための「アクティビティ」や「成果物」と言った概念）を定義した図１８に例を示すメタモデルであり、上記団体のホームページの非特許文献２から詳細が記述された内容を入手できる。
【０００３】
さて「組織の開発プロセスエンジニア」Ｈ１は、この開発プロセスメタモデル１１をスキーマとして用いて、例えば図１９に示す、非特許文献１の「ＲＵＰ」の「Ｗｏｒｋｂｅｎｃｈ」（登録商標）と呼ばれる開発プロセス定義部２１により、オブジェクト指向モデルで形式的に定義して、ソフトウェア開発を行う組織における標準的な開発プロセスモデル１２を生成する。図１９を用いて「組織の開発プロセスエンジニア」Ｈ１が、画面右側に順次、開発プロセスを構成する要素を配置していって、開発プロセスモデル１２を設計している。図１９画面右側の例ではＵＭＬのアクティビティ図を用いており、黒丸が「開始」、次の横棒が「分岐」、その下の５角形が「アクティビティ」、その下の横棒が「結合」、更に最下部の二重黒丸が「終了」を表している。「組織の開発プロセスエンジニア」Ｈ１が定義した開発プロセスモデル（以下、標準開発プロセスモデルと略す）は、組織が実施する多数のソフトウェア開発プロジェクトに共通的に適用可能である必要があるため、内容は汎用的かつ一般的である。
【０００４】
次に「プロジェクトの開発プロセスエンジニア」Ｈ２は、標準開発プロセスモデルを開発プロセス定義部２１を用いて編集し、プロジェクト用の開発プロセスモデルとして１２に保存し、この開発プロセスモデル１２から例えば開発プロセスパブリッシュ部２２を用いて、図２０に例示する開発プロセスコンテンツ１３を作成する。これは計算機が解釈できる形式的な開発プロセスモデル１２を読んで理解して、その内容から人間が読んで理解し実践できるような開発プロセスコンテンツ１３をプロジェクト用に作成するのであるが、開発プロセスパブリッシュ部２２は、例えば上記非特許文献１の「Ｐｕｂｌｉｓｈｅｒ」（登録商標）で示される他の作成支援ツールである。
【０００５】
こうして、特定のソフトウェア開発プロジェクトにおける開発プロセスコンテンツ１３を作成する。標準開発プロセスモデルは上述したように汎用的かつ一般的であるため、「プロジェクトの開発プロセスエンジニア」Ｈ２が定義する開発プロセスコンテンツは、各プロジェクトの特性（プロジェクト規模や開発対象ソフトウェアの種類など）に依存して、具体的かつ最適化される必要がある。
【０００６】
「プロジェクト計画者」Ｈ３は、プロジェクト用の開発プロセスコンテンツ１３を読みながら、計画定義部２３を用いてプロジェクトのタスクスケジュールや各タスクのリソース（担当者）などを割付けて具体的なプロジェクト計画１４を作成する。
計画定義部２３は、例えば非特許文献３の「Ｍｉｃｒｏｓｏｆｔ  Ｐｒｏｊｅｃｔ」（登録商標）で示されるように、プロジェクト計画のタスクやリソースなどを計算機画面上で表形式やグラフィカル形式で入力設定するツールであり、画面の例を図２１に示す。
【０００７】
「開発者」Ｈ５は、プロジェクト用の開発プロセスコンテンツ１３を読みながら、開発環境部２６を用いて、定義されたアクティビティを実施して開発成果物を作成し、その成果物を構成管理ＤＢ１６に格納する。
開発環境部２６は、ソフトウェア開発の上流工程では開発対象をモデリングする支援をし、下流工程ではソースコードをプログラミングしデバッグする支援をするツール群であり、例えば、非特許文献４の「Ｒａｔｉｏｎａｌ  Ｒｏｓｅ」（登録商標）に示される。
また構成管理ＤＢ１６は、ソフトウェア開発における成果物を管理するデータベースであり、例えば、非特許文献５のＩＭＢの製品「Ｒａｔｉｏｎａｌ  Ｃｌｅａｒ  Ｃａｓｅ」（登録商標）に示される。
【０００８】
「開発管理者」Ｈ４は、プロジェクト用の開発プロセスコンテンツ１３を読みながら、実績監視部２４を用いて、プロジェクト計画１４とプロジェクト実績１５を比較して開発進捗を管理する。
「開発管理者」Ｈ４と「開発者」Ｈ５は実績入力部２５を用いて、プロジェクト実績１５に実績を登録する。
これらの実績監視部２４や実績入力部２５も、プロジェクト計画のタスクやリソースなど、及び計画に対する実績値を、計算機画面上で表形式やグラフィカル形式で入力させ、計画と実績の差異を計算機がチェックし計算機画面上に表示するツールであり、例えば非特許文献３のツールである。
【０００９】
従来の開発プロセス支援装置では、プロジェクト計画のタスクやリソースの表現と、計画や実績を計算機画面上で表形式やグラフィカル形式で表現している。従って計画と実績の差異を計算機がチェックし計算機画面上に表示して、「プロジェクト計画者」「開発管理者」「開発者」（以下、この３者をプロジェクト員と略す）がプロジェクト管理に関わる作業をインタラクティブかつグラフィカルに実施していた。
なお開発プロセスモデル１２はオブジェクト指向技術により定義するが、一般的に、オブジェクト指向技術を補完する技術としてアスペクト指向技術がある。アスペクト指向言語の例として非特許文献６に示されるＡｓｐｅｃｔＪが知られている。
【非特許文献１】ＩＢＭ製品カタログ、「ＲＵＰ」。カタログ入手先はhttp://www-6.ibm.com/jp/software/rational/products/pdf/rup.pdf
【非特許文献２】ＯＭＧホームページのＳＰＥＭ（Ｓｏｆｔｗａｒｅ  Ｐｒｏｃｅｓｓ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｍｅｔａｍｏｄｅｌ）。文書入手先はhttp://www.omg.org/technology/documents/formal/spem.htm
【非特許文献３】マイクロソフトの製品、「Ｍｉｃｒｏｓｏｆｔ  Ｐｒｏｊｅｃｔ」。製品カタログ入手先はhttp://www.microsoft.com/japan/office/project/prodinfo/default.mspx
【非特許文献４】ＩＢＭの製品、「Ｒａｔｉｏｎａｌ  Ｒｏｓｅ」。製品カタログ入手先はhttp://www-6.ibm.com/jp/software/rational/products/design/
【非特許文献５】ＩＢＭの製品、「Ｒａｔｉｏｎａｌ  Ｃｌｅａｒ  Ｃａｓｅ」。製品カタログ入手先はhttp://www-6.ibm.com/jp/software/rational/products/scm/index.html)。
【非特許文献６】ＡｓｐｅｃｔＪプロジェクトの製品、情報はhttp://www.eclipse.org/aspectj/
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従来の開発プロセス支援装置は上記のように構成されており、プロジェクト員（プロジェクト計画者と開発管理者と開発者）と、開発プロセスエンジニアにとってそれぞれ以下の課題があった。
即ち、プロジェクト員が開発プロセスを実践（プロジェクトを計画し、開発作業を実施し、プロジェクト実績を監視）するには、開発プロセスを説明したコンテンツを読んで理解する必要があり、その実践の程度は各プロジェクト員の理解に依存する。しかし開発プロセスを説明したコンテンツは膨大かつ複雑な文書構造になっており、プロジェクト員にとって開発プロセス実践の作業負荷が高いという課題である。
また開発プロセスエンジニアは、先ずソフトウェア開発の主要工程である要求定義、分析、設計、実装、試験などを構成するアクティビティと成果物を、オブジェクト指向を用いてクラスとして定義する。しかしソフトウェア開発には上記の主要工程のアクティビティや成果物を横断して共通的に現れる管理作業（進捗管理や構成管理など）が存在する。これらの管理作業を、開発プロセスエンジニアが従来のオブジェクト指向のみで定義する場合、主要工程を構成する多数多様なアクティビティと成果物に対応するクラス毎に、管理作業の定義を挿入する必要がある。このような管理作業の定義の仕方は、同じ内容が開発プロセスモデルの中で重複して分散しているので、開発プロセスエンジニアが定義し、それを保守する作業の負荷が高いという課題である。
【００１１】
この発明は上記のような問題点を解決するためになされたもので、開発プロセスを定義／編集し、開発プロセスをもとにプロジェクトを計画／実践／監視する、作業負荷を軽減することを目的とする。
【課題を解決するための手段】
【００１２】
この発明に係る開発プロセス支援装置は、開発プロセスモデルが定義するアクティビティや成果物に対して横断する開発管理作業をアスペクト指向技術により、アスペクト名を記述する手順と、上記アスペクト名に対応するポイントカット名を記述する手順と、上記ポイントカットに対するアドバイスの実行内容を記述する手順と、を備えて、上記記述の集合としてアスペクトを定義保存する開発プロセスアスペクト定義部と、
保存された上記アスペクトのジョインポイントに該当するプロジェクト計画上の箇所にアドバイスの実行内容を適用する静的ウイーバ部、とを備えた。
【発明の効果】
【００１３】
以上のようにこの発明によれば、開発プロセスアスペクトを必要箇所に挿入する静的ウイーバ部を備えたので、プロジェクト計画者にとってスケルトンに対して必要な管理作業等がプロジェクト計画に自動付加されるので、一から計画立案しなくとも確認をすればよく、開発作業の負荷が軽減される効果がある。
【発明を実施するための最良の形態】
【００１４】
実施の形態１．
「開発プロセスメタモデル」をスキーマとして用いて、「開発プロセスモデル」が定義しているアクティビティ間の関係などを解釈して、「プロジェクト計画」のスケルトンを生成する装置を説明する。
即ち、開発プロセスメタモデルに基づく開発プロセスモデル上で指定された作業分野をプロジェクト計画にタスクとして設定する手順（図２の行番１〜２）と、この開発プロセスモデルを開発プロセスメタモデルに基づき解釈することにより指定された上記作業分野が持つアクティビティ群を入手して上記プロジェクト計画にタスクとして設定する手順（図２行番７）と、このタスクのリソースとして開発プロセスモデルから入手した役割を設定する手順（図２行番１０）と、プロジェクト計画にあるタスク間のリンクとして開発プロセスモデルから入手したアクティビティ間の順序関係を設定する手順（図２行番２５〜６）と、によりプロジェクトのスケジュール計画のスケルトンを自動生成する「計画生成部」を備えることを特徴とする開発プロセス支援装置である。
図１は、本実施の形態におけるシステム構成図である。図において、新しい要素である計画生成部３１は、開発プロセスメタモデル１１をスキーマとして用いて、開発プロセスモデル１２が定義しているアクティビティ間の関係などを解釈して、プロジェクト計画１４のスケルトンを生成する。その他の構成要素は図１７の同一番号の要素と同じである。
【００１５】
ここで先ず用語の説明をする。まず背景技術で述べた業界団体のＯＭＧが定義するＳＰＥＭの用語を以下に簡単に述べる。
プロセス（Ｐｒｏｃｅｓｓ）：開発作業の最初から最後までを含む全体を示すもの。
作業分野（Ｄｉｓｃｉｐｌｉｎｅ）：プロセスで定義している作業や成果物を共通のテーマに添って分類したもの。具体的には例えば、ビジネスモデリング、要求、分析／設計、実装、テスト、導入、構成及び変更管理、プロジェクト管理、環境が該当する。
作業（Ａｃｔｉｖｉｔｙ）：人が実行する仕事の最小単位を表現する。
成果物（ＷｏｒｋＰｒｏｄｕｃｔ）：プロセスを実施する過程で作成して、使うもので、プログラムや文書等がある。
役割（ＰｒｏｃｅｓｓＲｏｌｅ）：作業者の立場を表す。
次に背景技術で述べたＡｓｐｅｃｔＪプロジェクトのＡｓｐｅｃｔＪの用語を以下に簡単に述べる。
インスタンス：クラスを実体化した個々のもの。
ジョインポイント（Ｊｏｉｎｐｏｉｎｔ）：クラスにアスペクトを割り込ませることが可能なタイミングを表す。具体的には例えば、クラスのメソッド呼出のタイミングが該当する。
ポイントカット（Ｐｏｉｎｔｃｕｔ）：実際にアスペクトを割り込ませるジョインポイントの集合を表す。
アドバイス（Ａｄｖｉｃｅ）：ポイントカットにおいて実行する内容を表す。
アスペクト（Ａｓｐｅｃｔ）：ポイントカット（クラスに割り込むタイミング）とアドバイス（その割り込みで実行する内容）を組合わせたものを表す。
【００１６】
図２は、新しい計画生成部３１が機能として持つステップ記述を表現した擬似コードである。図において重要なステップは、行番２と７と１３の、プロジェクト計画にタスクを挿入するステップと、行番１０と１６の、プロジェクト計画にあるタスクのリソースとしてプロセス役割の名前を設定するステップと、行番２５と３２の、プロジェクト計画にあるタスク間にリンクを設定するステップ、である。
次に動作について説明する。「プロジェクト計画者」Ｈ３は、計画定義部２３を経由してこの計画生成部３１を用いる。そして「開発プロセスモデル」１２から「プロジェクト計画」１４のスケルトンを生成する。
【００１７】
図３は計画生成部３１の詳細構成を示す図である。図３に示すように、計画生成部３１はプロセッサ３０１とメモリ３０３と、図２のフローを記述した生成プログラムを記憶した生成プログラムメモリ３０２を持ち、入力部３０５への開発プロセスモデル１２からの入力に対して、出力部３０４からプロジェクト計画のスケルトンを出力する。この際、「プロジェクト計画者」Ｈ３は、自分が生成したいＤｉｓｃｉｐｌｉｎｅを指定する。
プロジェクト計画１４のスケルトンは以下のように生成される。なおこの図の中で、「」で囲っている先頭大文字の英字名（例えば行番号１の「Ｄｉｓｃｉｐｌｉｎｅ」）は「開発プロセスメタモデル」１１が定義しているメタクラス名であり、業界団体のＯＭＧが定義するＳＰＥＭに準拠している。
【００１８】
以下に図２の行番号を用いて計画生成部３１が行う生成動作を説明する。
計画生成部３１は、行番号１〜２で「プロジェクト計画者」Ｈ３がスケルトンを生成したいと考えて上記で入力したＤｉｓｃｉｐｌｉｎｅを入力部３０５で取得して、開発プロセスモデル１２での定義に従い、指定されたＤｉｓｃｉｐｌｉｎｅに対応してプロジェクト計画にタスクとして挿入する。行番号３〜４で、指定されたＤｉｓｃｉｐｌｉｎｅ直下に含まれるＡｃｔｉｖｉｔｙのリストを開発プロセスモデル１２から取得する。
計画生成部３１は、行番号５〜１９でＡｃｔｉｖｉｔｙのリストに含まれるＡｃｔｉｖｉｔｙをタスクとしてプロジェクト計画に挿入し、挿入したタスクを実施するリソースを設定する。この行番号７の、プロジェクト計画にあるＤｉｓｃｉｐｌｉｎｅに対応したタスクにサブタスクを挿入することが重要である。また行番号１０の、プロジェクト計画にあるタスクのリソースとして役割名を設定することが重要である。
なお行番号１２〜１８ではＡｃｔｉｖｉｔｙ直下に含まれるｓｕｂＷｏｒｋについてタスク挿入とリソース設定を実施する。行番号２０〜３６で挿入したタスク間の依存関係をリンクとして設定する。
更に行番号２５の、プロジェクト計画にあるタスクから他のタスクにリンクを設定することが重要である。従来はこれをプロジェクト計画者Ｈ３が手で入力していたが、スケルトン生成に際してタスク間のリンク自動指定をしておくことを意味する。
なお行番号２８〜３５では、開発プロセスモデル１２での定義に従ってＡｃｔｉｖｉｔｙ直下に含まれるｓｕｂＷｏｒｋについてリンク設定を実施する。
【００１９】
以上のように、「開発プロセスメタモデル」１１に則って上記汎用計算機が解釈できる「開発プロセスモデル」１２での定義を利用するようにして、計画生成部３１が上記説明した手順で「プロジェクト計画」１４のスケルトンを生成する。
このように、従来の装置では、プロジェクトの開発プロセスエンジニアが開発プロセスパブリッシュ部２２を用いて開発プロセスコンテンツを作成する。更にプロジェクト計画者が計画定義部２３を用いて手で順次設定して、プロジェクト計画を立案していた。しかし本実施の形態では、プロジェクト計画者はＤｉｓｃｉｐｌｉｎｅを指定すれば、計画生成部がその指定されたＤｉｓｃｉｐｌｉｎｅを含むプロジェクト計画のスケルトンを生成する。プロジェクト計画者が一から開発計画を立案する従来装置と、スケルトンを得て開発計画を確認する本実施の形態を比較すると、本実施の形態は大いに負荷が軽減され、また設定忘れ等の不備が解消される。
【００２０】
実施の形態２．
ソフトウェア開発を構成するアクティビティと成果物を横断して共通的に現れる管理作業（進捗管理や構成管理など）を、従来のオブジェクト指向のみで定義する場合、多数多様なアクティビティと成果物に対応するクラス毎に、管理作業の定義を挿入する必要がある。このような管理作業の定義の仕方は、同じ内容が開発プロセスモデルの中で重複して分散しているので、開発プロセスエンジニアが定義し、それを保守する作業の負荷が高い。従って、こうした管理作業を保守し易く、容易に定義する装置を説明する。
即ち、開発プロセスモデルが定義するアクティビティや成果物に対して横断する開発管理作業をアスペクト指向技術により、アスペクト名を記述する手順（図７行番１）と、上記アスペクト名に対応するポイントカット名を記述する手順（図７行番２）と、ポイントカットに対するジョインポイント名を記述する手順（図７行番３）と、アドバイスを実行するポイントカット名を記述する手順（図７行番４）と、ポイントカットに対する実行タイミングを記述する手順（図７行番５）と、ポイントカットに対するアドバイスの実行内容を記述する手順（図７行番６）と、を備えて、上記記述の集合としてアスペクトを定義保存する「開発プロセスアスペクト定義部」を備えることを特徴とする開発プロセス支援装置である。
図４は、本実施の形態におけるシステム構成図である。図において、新しい要素である、開発プロセスアスペクト４１は、「開発プロセスモデル」１２が定義するクラス群（個々のアクティビティや成果物など）を横断して共通的に現れる管理作業（進捗管理や構成管理など）を、アスペクト指向技術を用いて定義した内容である。また新しい要素である開発プロセスアスペクト定義部３２は、「組織の開発プロセスエンジニア」Ｈ１あるいは「プロジェクトの開発プロセスエンジニア」Ｈ２が開発プロセスアスペクト４１を計算機画面上で定義して編集可能にする機能である。その他の構成要素は従来のシステムにおける構成要素と同じである。
【００２１】
なお本実施の形態では開発プロセスアスペクト４１を記述するアスペクト指向言語の例としてＡｓｐｅｃｔＪの文法を擬似的に用いている。ＡｓｐｅｃｔＪの擬似コードとして記述した「開発プロセスアスペクト」の例を図５に、また開発アスペクト例の文法要素を図６に示す。図５の例の内容は、アクティビティの種類を問わず、任意のアクティビィティを開始する前には、該アクティビティを開始するのに必要な入力成果物を入手するマイルストーンがプロジェクト計画に必要であることを意味している。なおＡｓｐｅｃｔＪで記述されている用語の定義は、先の実施の形態１でまとめて述べた通りである。
この開発プロセスアスペクト定義部３２の説明を図４に基づいて述べる。
「組織の開発プロセスエンジニア」Ｈ１あるいは「プロジェクトの開発プロセスエンジニア」Ｈ２は、開発プロセス定義部２１を経由して、開発プロセスアスペクト定義部３２を用いて、例えば図５に示す、開発プロセスアスペクト４１を図６の文法要素に従いながら入力する。本実施の形態における開発プロセスアスペクト定義部３２の詳細構成は、図３の構成と同じであるが、生成プログラムメモリ３０２に記憶されるプログラムが、例えば図７の記述内容となっている。
【００２２】
次に開発プロセスアスペクト定義部３２の動作を図７を用いて説明する。なお図７は１つの開発プロセスアスペクトに対する動作であり、複数の開発プロセスアスペクトを定義する際は、図７を繰り返すことになる。行番号１ではアスペクト名を、行番号２ではポイントカット名を、行番号３ではジョインポイントを、行番号４ではアドバイスを実行するポイントカット名を、行番号５では入力されたポイントカットに対する実行タイミングを、行番号６ではアドバイスの実行内容を、開発プロセスアスペクト４１に保存する。
なお図７行番号3のジョインポイントとして、「開発プロセスモデル」１２に格納されているクラスに対する割り込みタイミングが定義可能である。また図７行番号６の「アドバイスの実行内容」として、「プロジェクト計画」に格納されているインスタンスに対する操作を記述可能である。
【００２３】
従来技術では「開発プロセスモデル」１２中のクラス群に重複して分散して定義しなければならなかった「管理作業」を、アスペクト指向技術を用いて定義することにより、１つの開発プロセスアスペクト４１に記憶、蓄積され、共通化することができる。
このように本実施の形態では、開発において共通的に現れる管理作業が整理してデータベースに蓄えられて、以後の保守が容易になる効果がある。
【００２４】
実施の形態３．
プロジェクト計画者がプロジェクト計画に管理作業を付加する際に発生しがちな計画立案忘れの不備を防ぐ装置である。
即ち、開発プロセスモデルが定義するアクティビティや成果物に対して横断する開発管理作業をアスペクト指向技術により、アスペクト名を記述する手順（図７行番１）と、アスペクト名に対応するポイントカット名を記述する手順（図７行番２）と、上記ポイントカットに対するアドバイスの実行内容を記述する手順（図７行番６）と、を備えて、上記記述の集合としてアスペクトを定義保存する開発プロセスアスペクト定義部と、保存されたアスペクトのジョインポイントに該当するプロジェクト計画上の箇所にアドバイスの実行内容を適用する手順（図９行番５）を持つ静的ウイーバ部、とを備えることを特徴とする開発プロセス支援装置である。
図８は、本実施の形態におけるシステム構成図である。図において、静的ｗｅａｖｅｒ部３３はプロジェクト計画時に開発プロセスアスペクトを解釈し、静的にプロジェクト計画にアスペクトを織り込む（ｗｅａｖｉｎｇ）機能である。その他の構成要素は先の実施の形態、図４における対応する番号の要素と同じである。また図９は静的ウイーバ部３３が持つ機能を示す擬似コード列を記載した図である。更に図１０は静的ウイーバ部３３が出力するプロジェクト計画を示す図である。図１１は開発プロセスのメタクラス、クラス、インスタンスの例を示す図である。更に静的ウイーバ部３３の詳細構成は、図３に示される構成と同じであるが、生成プログラムメモリ３０２に記憶されるプログラムの内容が図９の擬似コード列となる。
【００２５】
次に動作について説明する。
「プロジェクト計画者」Ｈ３は計画定義部２３を経由して静的ｗｅａｖｅｒ部３３を用いて、「開発プロセスアスペクト」を「プロジェクト計画」に対してｗｅａｖｉｎｇする。静的ｗｅａｖｅｒ部３３は、１つの「開発プロセスアスペクト」に対して図９の擬似コード列の機能を持つ。この中で行番号５の、プロジェクト計画中の該当箇所に所定のタイミングでアドバイスの実行内容を適用する記述が重要である。
例えば図５に示される開発プロセスアスペクトを「プロジェクト計画」に適用した場合の動作は、以下のようになる。
先ず図９の行番号５によって図５の開発プロセスアスペクト４１のアドバイスが起動される。そして図５の行番号９によって、図１０（ａ）に示すタスク「サブシステムＡの設計レビュー」の前に、図１０（ｂ）に示すようにマイルストーン「設計モデルの入手」「補助仕様書の入手」「設計ガイドラインの入手」、の各マイルストーンを挿入している。
「サブシステムＢの設計レビュー」においても同様なマイルストーンが挿入される。従来は図１０（ｂ）のプロジェクト計画を作成するには、開発プロセスコンテンツ１３を読んで、忘れずに「設計モデルの入手」「補助仕様書の入手」「設計ガイドラインの入手」等のマイルストーンを手で設定しなければならなかったが、本実施の形態においては、静的ウイーバ部３３がこれらのマイルストーンを挿入してくれる。
【００２６】
なお上記説明した静的ｗｅａｖｅｒ部３３が行う動作の例では、開発プロセスメタモデル１１、開発プロセスモデル１２、プロジェクト計画１４に格納されている例である図１１に示す情報を利用している。この図１１に示す情報は、タスク「サブシステムＡの設計レビュー」「サブシステムＢの設計レビュー」がアクティビティ「設計レビュー」のインスタンスであり、アクティビティ「設計レビュー」の入力成果物は「設計モデル」「補足仕様書」「設計ガイドライン」であることを示している。
以上のように、プロジェクト計画１４に格納されている情報は開発プロセスモデル１２が定義するクラスのインスタンスであり、開発プロセスモデル１２に格納されている情報は開発プロセスメタモデル１１が定義するメタクラスのインスタンスである。またこれらは形式的な情報なので計算機が解釈できることを利用して、本実施の形態では、開発プロセスアスペクト４１に定義された管理作業を静的ウイーバ部３３がプロジェクト計画１４に反映するようにしている。
このように本実施の形態においては、必要な管理作業がプロジェクト計画に付加されるので、開発プロセスに基づいたプロジェクト計画の立案作業負荷が軽減される効果がある。
【００２７】
実施の形態４．
開発管理者がプロジェクト実績や構成管理ＤＢを監視する際に発生しがちなチェックミスの不備を防ぐ装置である。
即ち、開発プロセスモデルが定義するアクティビティや成果物に対して横断する開発管理作業をアスペクト指向技術により、アスペクト名を記述する手順（図７行番１）と、アスペクト名に対応するポイントカット名を記述する手順（図７行番２）と、上記ポイントカットに対するアドバイスの実行内容を記述する手順（図７行番６）と、を備えて、上記記述の集合としてアスペクトを定義保存する開発プロセスアスペクト定義部と、プロジェクト実績や成果物を管理する構成管理データベースの変更通知を受ける（図１３行番１）と、この変更通知に該当するジョインポイントを持つポイントカットで指定されたタイミングでアドバイスの実行内容を適用する手順（図１３行番６）を持つ動的ウイーバ部、とを備えることを特徴とする開発プロセス支援装置である。
図１２は、本実施の形態におけるシステム構成図である。図において、動的ウイーバ（ｗｅａｖｅｒ）部３４は、プロジェクト実行時に「プロジェクト実績」１５や「構成管理ＤＢ」１６を監視し、開発プロセスアスペクト４１のポイントカットに該当すればアドバイスを実行し、その実行結果を「実績監視部」２４に通知する機能である。その他の構成要素は図４と図１７に示す構成と同じものである。また動的ウイーバ部３４の詳細構成は、図３に示す構成と同じであるが、その生成プログラムメモリ３０２に記憶するプログラムが図１３に示す擬似コードで記述されている。またプロジェクト実績１５や、構成管理ＤＢ１６は、自身の内容に変更が加えられると動的ｗｅａｖｅｒ部３４に通知する機能を付加されている。
【００２８】
次に動作について説明する。動的ｗｅａｖｅｒ部３４は、プロジェクト実績１５や構成管理ＤＢ１６から変更通知を受けると、開発プロセスアスペクト４１を解釈し実行する。即ち動的ｗｅａｖｅｒ部３４が開発プロセスアスペクト４１を解釈する際には、プロジェクト計画１４、開発プロセスモデル１２、開発プロセスメタモデル１１を参照する。動的ｗｅａｖｅｒ部３４は図１３に記述した擬似コードに従って動作する。図１３の行番号６の内容が、つまりアドバイスの実行内容を適用することが、重要である。
以下に、開発うプロセスアスペクトの例である図１４にしたがって、動的ｗｅａｖｅｒ部３４の動作例を述べる。なお図１４に示す開発プロセスアスペクト２の文法要素を図１５に示す。また動的ｗｅａｖｅｒ部３４は図１６に示す情報を利用する。図１６の情報は開発プロセスメタモデル１１、開発プロセスモデル１２、プロジェクト計画１４、構成管理ＤＢ１６に格納されている例である。
図１６に示す情報は、タスク「サブシステムＡの設計レビュー」「サブシステムＢの設計レビュー」がアクティビティ「設計レビュー」のインスタンスであり、アクティビティ「設計レビュー」の出力成果物は「レビューシート」であり、成果物「サブシステムＡの設計レビューシート」「サブシステムＢの設計レビューシート」はクラス「レビューシート」のインスタンスであることを示している。
【００２９】
先ず動的ｗｅａｖｅｒ部３４は図１３の行番号１で、プロジェクト実績１５からタスクの「サブシステムＡの設計レビュー」が完了したことを受信したとする。図１３の行番号２〜４で、図１４に示す開発プロセスアスペクト２のジョインポイントが該当し、該開発プロセスアスペクトが適用できることを決定する。図１３の行番号５〜７により、該開発プロセスアスペクト２のアドバイスの実行内容（図１４の行番号４〜１２）が実行される。図１４の行番号１０により、成果物「サブシステムＡの設計レビューシート」が構成管理ＤＢに未登録の場合は、実績監視部２４に警告を出力する。
以上のように、プロジェクト計画１４と構成管理ＤＢに格納されている情報は、開発プロセスモデル１２が定義するクラスのインスタンスであり、開発プロセスモデル１２に格納されている情報は開発プロセスメタモデル１１が定義するメタクラスのインスタンスである。これらは形式的な情報なので計算機が解釈できることを利用して、開発プロセスアスペクト４１が定義した管理作業を動的ウイーバ部３４がプロジェクト実行時に自動実行する動作となる。
【００３０】
従来の開発プロセス支援装置では、開発管理者がプロジェクト実績や構成管理ＤＢを手作業で定期的に監視するしかなく、作業負荷が高く、チェックミスも防止できなかった。本実施の形態では事前に開発プロセスアスペクトとして定義した管理作業をプロジェクト実行時に自動実行するので、開発プロセスに基づいたプロジェクト実行の作業負荷が軽減される効果がある。
【００３１】
実施の形態５．
上記各実施の形態では、計画生成部、開発プロセスアスペクト定義部、静的ウイーバ部、動的ウイーバ部は、それぞれＣＰＵとメモリで構成されるハードウェアであるとして説明した。しかし本発明はそれに限定されず、それぞれの実施の形態における擬似コードで記述した方法であってもよく、またそうした方法をプログラムとして任意の汎用計算機に読み込ませて実行させるようにしてもよい。
【図面の簡単な説明】
【００３２】
【図１】この発明の実施の形態１におけるシステム構成図である。
【図２】実施の形態１における計画生成部が機能として持つステップを表現した擬似コードである。
【図３】各実施の形態における計画生成部、開発プロセスアスペクト定義部、静的ウイーバ部、動的ウイーバ部の詳細構成を示す図である。
【図４】この発明の実施の形態２におけるシステム構成図である。
【図５】実施の形態２における開発プロセスアスペクトの例である。
【図６】実施の形態２における開発プロセスアスペクト例の文法要素を示す図である。
【図７】実施の形態２における開発プロセスアスペクト定義部の動作を示す図である。
【図８】この発明の実施の形態３におけるシステム構成図である。
【図９】実施の形態３における静的ウイーバ部が機能として持つステップを表現した擬似コードである。
【図１０】実施の形態３における静的ウイーバ部が動作する前のプロジェクト計画例と動作して出力した後のプロジェクト計画例を示す図である。
【図１１】実施の形態３における開発プロセスのメタクラス、クラス、インスタンスの例を示す図である。
【図１２】この発明の実施の形態４におけるシステム構成図である。
【図１３】実施の形態４における動的ウイーバ部が機能として持つステップを表現した擬似コードである。
【図１４】実施の形態４における開発プロセスアスペクトの例を示す図である。
【図１５】実施の形態４における開発プロセスアスペクト例の文法要素を示す図である。
【図１６】実施の形態４における開発プロセスのメタクラス、クラス、インスタンスの例を示す図である。
【図１７】従来の開発プロセス支援装置を示す図である。
【図１８】開発プロセスメタモデルの例を示す図である。
【図１９】開発プロセス定義部と開発プロセスモデルの例を示す図である。
【図２０】開発プロセスコンテンツの例を示す図である。
【図２１】計画定義部、実績監視部、実績入力部の画面例を示す図である。
【符号の説明】
【００３３】
１１  開発プロセスメタモデル、１２  開発プロセスモデル、１３  開発プロセスコンテンツ、１４  プロジェクト計画、１５  プロジェクト実績、１６  構成管理ＤＢ、２１  開発プロセス定義部、２２  開発プロセスパブリッシュ部、２３  計画定義部、２４  実績監視部、２５  実績入力部、２６  開発環境部、３１  計画生成部、３２  開発プロセスアスペクト定義部、３３  静的ウイーバ部、３４  動的ウイーバ部、４１  開発プロセスアスペクト、３０１  プロセッサ、３０２  生成プログラムメモリ、３０３  メモリ、３０４  出力部、３０５  入力部。
【図１】
2005251010.tif 000003
【図２】
2005251010.tif 000004
【図３】
2005251010.tif 000005
【図４】
2005251010.tif 000006
【図５】
2005251010.tif 000007
【図６】
2005251010.tif 000008
【図７】
2005251010.tif 000009
【図８】
2005251010.tif 000010
【図９】
2005251010.tif 000011
【図１０】
2005251010.tif 000012
【図１１】
2005251010.tif 000013
【図１２】
2005251010.tif 000014
【図１３】
2005251010.tif 000015
【図１４】
2005251010.tif 000016
【図１５】
2005251010.tif 000017
【図１６】
2005251010.tif 000018
【図１７】
2005251010.tif 000019
【図１８】
2005251010.tif 000020
【図１９】
2005251010.tif 000021
【図２０】
2005251010.tif 000022
【図２１】
2005251010.tif 000023