(57)【要約】【課題】Unified Process の中で、全体、各Iteration 毎、各サブシステム毎、各個人毎の各進捗度合いを工学的に管理し、視覚的に表示する技術を提供すること。【解決手段】Unified Process 等のリスクを管理しながらの繰返し型のソフトウェア開発プロセスを管理するプロセス管理システムにおいて、対象とする開発全体としてのシナリオに関する情報を格納するシナリオ情報格納装置と、各シナリオに対してそれを実現するための各グループのシナリオを管理するグループ毎のシナリオ情報格納装置と、全体のシナリオと、各サブシステム毎のシナリオとを関連付けるリンク情報を保持するためのシナリオリンク情報格納装置と、全体のシナリオ表の各シナリオに対してそれに関連するサブシステム毎のシナリオ進捗データを基に分析、設計、実装等の進捗状況を求める手段を有するシナリオ進捗計算装置と、を備える。【選択図】図１
2006302157.tif 000002
【特許請求の範囲】
【請求項１】
Unified Process 等のリスクを管理しながらの繰返し型のソフトウェア開発プロセスを管理するプロセス管理システムにおいて、対象とする開発全体としてのシナリオ（機能一覧に相当）に関する情報を格納するシナリオ情報格納装置と、各シナリオに対してそれを実現するための各グループのシナリオ（各グループ、若しくは各個人の作業項目リスト相当）を管理するグループ毎のシナリオ情報格納装置と、全体のシナリオと、各サブシステム毎のシナリオとを関連付けるリンク情報を保持するためのシナリオリンク情報格納装置と、全体のシナリオ表の各シナリオに対してそれに関連するサブシステム毎のシナリオ進捗データを基に分析、設計、実装等の進捗状況を求める手段を有するシナリオ進捗計算装置と、を備えたことを特徴とするプロセス管理装置。
【請求項２】
プロジェクトのリスク情報を管理するリスク情報格納装置と、シナリオを実現させることで解消するリスクがある場合、その関連情報を格納するシナリオ−リスク対応情報格納装置と、或るシナリオの実現の状況によってリスクが解消されたかどうかの判断を行うリスク解消判断装置、を備えたことを特徴とする請求項１記載のプロセス管理装置。
【請求項３】
各Iteration で実施するシナリオ一覧と、そのIteration で解消するリスク一覧を管理するIteration 計画表を格納するIteration 計画情報格納装置と、各Iteration でのシナリオに対する分析、設計、実装等の進捗状況を計算するIteration 毎のシナリオ進捗計算装置と、を備えたことを特徴とする請求項１記載のプロセス管理装置。
【請求項４】
各個人の作業項目一覧表を管理する個人作業情報管理装置と、各サブシステム毎のシナリオと個人作業との関連を保持するシナリオ−個人作業関連情報格納装置と、各個人毎の作業を集計してサブシステム毎の各シナリオに対する進捗情報を計算するサブシステム毎のシナリオ進捗計算装置と、を備えたことを特徴とする請求項１記載プロセス管理装置。
【請求項５】
各シナリオと、それに関係する各Package 毎のシナリオの間に置いて、重み（影響度）の情報を持つことを特徴とする請求項１記載のプロセス管理装置。
【請求項６】
各シナリオ毎に「重み」を設定し、その重みの割合を考慮して進捗具合を算出することを特徴とする請求項１記載のプロセス管理装置。
【請求項７】
分析、設計、実装の各項目に対するシナリオ進捗の状況をグラフで表示して示すことを特徴とする請求項１記載のプロセス管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発におけるプロジェクト管理方式と、プロジェクト管理システムに関するものである。例えば、Unified Process 等のリスクを管理しながらの繰返し型のソフトウェア開発プロセスを管理するプロセス管理システムにおいて、開発途中の各シナリオに対する進捗状況や、各Iteration 毎の進捗状況、各サブシステム毎、各個人毎の進捗状況を正確に把握するための方式に関するものである。
【背景技術】
【０００２】
ソフトウェア開発における開発プロセスに関しては、OMG が中心となって Unified
Processを提案する動きがあるが、その中では、リスク主導で繰り返し型の開発を計画していく概念は示されているが、具体的にどういう形態でそのプロセスを管理し、実施すればいいかということに関しては明記されていない。又、ソフトの進捗度合いや、リスクの解消の度合いを可視化する手法は見出されていなかった。
【０００３】
更に、既存のプロジェクト管理システムでは、Unified
Process の概念（Iteration の概念、シナリオ管理、リスク管理等）を実現する専用のシステムは提案されていない。
【０００４】
従来の典型的な方式、例えば、特許文献１や特許文献２では、作業工程に多階層構造があるプロジェクトの管理に関しては言及しているが、繰り返し型の開発や、リスク管理に関しては言及していない。
【０００５】
【特許文献１】特開２００２−２８８４０３号公報
【特許文献２】特開２００２−０７３９３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このため、実プロジェクトでUnified
Process の考え方を実施するためには、プロセスを運用するための技術を確立する必要がある。具体的には、Unified Process の中で、全体、各Iteration
毎、各サブシステム毎、各個人毎の各進捗度合いが感覚的ではなく、工学的に管理され、視覚的に表示される技術を提供することを課題としている。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、請求項１記載の発明は、Unified
Process 等のリスクを管理しながらの繰返し型のソフトウェア開発プロセスを管理するプロセス管理システムにおいて、対象とする開発全体としてのシナリオ（機能一覧に相当）に関する情報を格納するシナリオ情報格納装置と、各シナリオに対してそれを実現するための各グループのシナリオ（各グループ、若しくは各個人の作業項目リスト相当）を管理するグループ毎のシナリオ情報格納装置と、全体のシナリオと、各サブシステム毎のシナリオとを関連付けるリンク情報を保持するためのシナリオリンク情報格納装置と、全体のシナリオ表の各シナリオに対してそれに関連するサブシステム毎のシナリオ進捗データを基に分析、設計、実装等の進捗状況を求める手段を有するシナリオ進捗計算装置と、を備えたことを特徴とする。
【０００８】
請求項２記載の発明は、請求項１記載の発明において、プロジェクトのリスク情報を管理するリスク情報格納装置と、シナリオを実現させることで解消するリスクがある場合、その関連情報を格納するシナリオ−リスク対応情報格納装置と、或るシナリオの実現の状況によってリスクが解消されたかどうかの判断を行うリスク解消判断装置、を備えたことを特徴とする。
【０００９】
請求項３記載の発明は、請求項１記載の発明において、各Iteration で実施するシナリオ一覧と、そのIteration
で解消するリスク一覧を管理するIteration
計画表を格納するIteration 計画情報格納装置と、各Iteration でのシナリオに対する分析、設計、実装等の進捗状況を計算するIteration 毎のシナリオ進捗計算装置と、を備えたことを特徴とする。
【００１０】
請求項４記載の発明は、請求項１記載の発明において、各個人の作業項目一覧表を管理する個人作業情報管理装置と、各サブシステム毎のシナリオと個人作業との関連を保持するシナリオ−個人作業関連情報格納装置と、各個人毎の作業を集計してサブシステム毎の各シナリオに対する進捗情報を計算するサブシステム毎のシナリオ進捗計算装置と、を備えたことを特徴とする。
【００１１】
請求項５記載の発明は、請求項１記載の発明において、各シナリオと、それに関係する各Package 毎のシナリオの間に置いて、重み（影響度）の情報を持つことを特徴とする。
【００１２】
請求項６記載の発明は、請求項１記載の発明において、各シナリオ毎に「重み」を設定し、その重みの割合を考慮して進捗具合を算出することを特徴とする。
【００１３】
請求項７記載の発明は、請求項１記載の発明において、分析、設計、実装の各項目に対するシナリオ進捗の状況をグラフで表示して示すことを特徴とする。
【発明の効果】
【００１４】
従来の典型的な或る方式では、例えばUnified
Process のような繰返し型の開発プロセスに対しては、概念は理解されたとしても、進捗の視覚化ができなかったが、本発明を用いると、作業者の各個人が自分が処理すべきToDoリスト（Package 毎のシナリオ）に対して進捗具合を入力すると、プロジェクト全体、プロジェクトの各シナリオ毎、各Iteration
毎、各Package 毎の各シナリオ進捗の様子が視覚化（グラフ化）されて表現できるようになった。又、リスクとの対応も明確化し、シナリオを消化していくに従ってリスクが減っていく様子が明示できるようになった。
【００１５】
洗い出したものの質がその後のプロセス管理の善し悪しに大きな影響を与える、リスク、シナリオ等の洗い出しの作業に関しても、そのカテゴリを明示してそのカテゴリの説明に合わせて入力してもらうことで、プロジェクト毎のばらつきを抑えられるようになった。
【発明を実施するための最良の形態】
【００１６】
＜実施の形態１＞
図１は本発明の装置の構成図を示す。本発明の装置は、ＣＰＵ（１）、バス（２）、ＲＯＭ（３）、ＲＡＭ（４），入力インターフェース（５）、入力デバイス（６）、出力インターフェース（７）、出力デバイス（８）、外部記憶インターフェース（９）、外部記憶デバイス（１０）から構成されていることを特徴とする開発プロセス管理装置である。
【００１７】
図２は本発明の実施の形態の情報処理システムの機能構成を示す機能ブロック図である。
【００１８】
S201はIteration 計画格納装置、S202はリスク情報格納装置、S203は全体シナリオ情報格納装置、S204はサブシステムシナリオ情報格納装置、S205は各個人作業項目格納装置、S206はシナリオ−リスク対応情報格納装置、S207はシナリオリンク情報格納装置１である。
【００１９】
又、S208はシナリオリンク情報格納装置２、S209はリスク解消判断装置、S210は全体のシナリオ進捗計算装置、S211はIteration 毎のシナリオ進捗計算装置、S212はサブシステム毎のシナリオ進捗計算装置、S213は個人毎のシナリオ進捗計算装置、S214はリスク解消状況格納装置、S215は全体シナリオ進捗格納装置である。
【００２０】
更に、S216はIteration 毎のシナリオ進捗格納装置、S217はサブシステムシナリオ進捗格納装置、S218は個人毎シナリオ進捗格納装置、S219は進捗情報表示部、S220はリスク入力促進装置、S221はNCSSとシナリオ進捗対応装置、S222はNCSS情報格納装置である。
【００２１】
図３はS201で管理しているIteration 計画の例である。
【００２２】
例として、Iteration ID開始分析終了、設計終了、実装終了、終了、Iteration 内容、追加実現するシナリオ、解消するリスク、Iteration 終了基準の各項目がある。
【００２３】
図４はS202で管理しているリスク表の１例である。
【００２４】
例として、リスク ID 、リスク内容、リスクの重み、解消予定Iteration 、解消日、望まない事項、発生を抑える方法、解消条件、解消度等の項目がある。必要に応じて、項目の取捨選択は可能である。
【００２５】
図５はS203で管理している全体シナリオの例である。
【００２６】
例として、シナリオIDシナリオ名、シナリオ内容、重み、実現予定Iteration 、実現済みIteration 等の各項目がある。必要に応じて、項目の取捨選択は可能である。
【００２７】
図６はS204で管理しているサブシステムシナリオの例である。
【００２８】
例として、シナリオIDシナリオ名、シナリオ内容、重み、実現予定Iteration 、実現済みIteration 、の各項目がある。必要に応じて、項目の取捨選択は可能である。
【００２９】
図７はS207で管理している全体シナリオとサブシステムのシナリオとの対応情報の例である。
【００３０】
例として、全体シナリオID、サブシステムシナリオIDの各項目がある。
【００３１】
図８はS205で管理している各個人作業項目の例である。
【００３２】
例として、シナリオID、シナリオ名、シナリオ内容、重み、実現予定Iteration 、実現済みIteration 等の各項目がある。必要に応じて、項目の取捨選択は可能である。
【００３３】
図９はS206で管理しているシナリオとリクスの対応情報の例である。例として、リスクID、リスク解消条件の各項目がある。
【００３４】
図１０−１はS209のリスク解消判断装置の具体的なアルゴリズムの例である。
【００３５】
S100では、全リスクに対して処理したか？どうかを判断する。Yes であればS101へ、Noであればs1042 へ。S101では、或るリスクを取り出す。S102では、そのリスクに対応するシナリオを取り出す。S103では、リスクに対応するリスク解消のための条件式を評価した結果が解消済みか？判断する。Yes であればS104へ、Noであれば終了。
【００３６】
S104では、リスクを解消済みとする。S1042 では、解消したリスクの値を合計して全体のリスクの重みを合計した値から引き算して残リスクを計算する。
【００３７】
図１０−２はS209のリスク解消判断装置の具体的なアルゴリズムの別の実施形態を示すフローチャートである。
【００３８】
S105では、或るリスクを取り出す。S106では、そのリスクに対応するシナリオを取り出す。S107では、幾つかの方式でリスクの解消度を評価する。条件式の評価方式１では、「ｏｒ条件」のものはどれか1 つでもシナリオが完了していればリスク解消とする。「＆条件」のものは、全部のシナリオが完了していないと解消としない。
【００３９】
条件式の評価方式２では、「＆条件」のものは、＆条件に挙がっている各シナリオ数に対して、完了したシナリオ数の比率で解消度を計算する。
【００４０】
（例）リスク１を解消するには、４つのシナリオが＆条件で完了していることが条件だとした場合、そのうち２つのシナリオのみが完了していたならば、リスクの解消度を５０％とする。
【００４１】
条件式の評価方式３では、上記評価方式２に加えて、各リスクの重みも加味して解消度を計算する。
【００４２】
S108では、リスク解消状況を記録する。
【００４３】
図１１はS210の全体のシナリオ進捗計算装置の具体的なアルゴリズムの例である。
【００４４】
S111では、全シナリオに対するシナリオの進捗データ（分析、設計、実装、等）を合計する。
【００４５】
図１２はS211のIteration 毎のシナリオ進捗計算装置の具体的なアルゴリズムの例である。
【００４６】
文中、（方式１）と（方式２）が出てくる所があるが、どちらかの方式を指定して実行も可能であるし、両方の方式でそれぞれ値を計算することも可能である。
【００４７】
S121では、或るIteration を指定する。S122では、Iteration に対するシナリオの進捗データ（分析、設計、実装等）を初期化する。（方式１）では、対象シナリオ数＝０とする。
【００４８】
S123では、全体シナリオ進捗格納装置の中から、或るシナリオを取り出す。S124では、指定されたIteration のシナリオか？どうかを判別する。Yes であればS125へ、NoであればS126へ。
【００４９】
S125では、
（方式１）
シナリオの進捗データ（分析、設計、実装、等）を加算する。
【００５０】
対象シナリオ数を１増加させる。
（方式２）
シナリオ毎に重みの値が定義されている場合は、その「シナリオの重み」を掛け合わせた値を加算する。
【００５１】
又、シナリオの重みを合計しておく。
【００５２】
S126では、全シナリオをチェックしたか？どうかを判別する。Yes であればS127へ、NoであればS123へ。
【００５３】
S127では、
（方式１）の場合、
S125で加算した値を対象シナリオ数で割ってシナリオの進捗データ（分析、設計、実装等）とする。
（方式２）の場合、
S125で加算した値をシナリオの重みの合計値で割ってシナリオの進捗データ（分析、設計、実装等）とする。
【００５４】
S128では、シナリオの進捗データ（分析、設計、実装等）を格納する。
【００５５】
図１３はS212のサブシステム毎のシナリオ進捗計算装置の具体的なアルゴリズムの例である。
【００５６】
文中、（方式１）と（方式２）が出てくる所があるが、どちらかの方式を指定して実行も可能であるし、両方の方式でそれぞれ値を計算することも可能である。
【００５７】
S131では、或るサブシステムを指定する。S132では、そのサブシステムに対するシナリオの進捗データ（分析、設計、実装等）を初期化する。（方式１）対象シナリオ数＝０とする。
【００５８】
S133では、サブシステムシナリオ情報格納装置S204中から、或るシナリオを取り出す。S134では、指定されたサブシステムのシナリオか？どうかを判別する。Yes であればS135へ、NoであればS136へ。
【００５９】
S135では、
（方式１）では、
シナリオの進捗データ（分析、設計、実装等）を加算する。
【００６０】
対象シナリオ数を１増加させる。
（方式２）では、
シナリオ毎に重みの値が定義されている場合は、その「シナリオの重み」を掛け合わせた値を加算する。
【００６１】
又、シナリオの重みを合計しておく。
【００６２】
S136では、全シナリオをチェックしたか？どうかを判別する。Yes であればS137へ、NoであればS133へ。
【００６３】
S137では、
（方式１）では、
S125で加算した値を対象シナリオ数で割ってシナリオの進捗データ（分析、設計、実装等）とする。
（方式２）では、
S125で加算した値をシナリオの重みの合計値で割ってシナリオの進捗データ（分析、設計、実装等）とする。
【００６４】
S138では、シナリオの進捗データ（分析、設計、実装等）を格納する
図１４は個人毎のシナリオ進捗計算装置アルゴリズムである。
【００６５】
S141では、各個人毎の全シナリオに対するシナリオの進捗データ（分析、設計、実装等）を合計する。
【００６６】
図１５はNCSSとシナリオ対応計算装置アルゴリズムである。
【００６７】
S151では、NCSSとシナリオ進捗の日付けとして対応するデータを抽出し識別子を付ける。
【００６８】
図１６−１は図２のS215で示される全体シナリオ進捗格納装置の例１である。全体シナリオ進捗表（全体の各シナリオに対する進捗具合）である。
【００６９】
例として、シナリオID、分析進捗、設計進捗、実装進捗の項目がある。
【００７０】
図１６−２は図１のS215で示される全体シナリオ進捗格納装置の例２である。
【００７１】
全体の進捗の推移（全シナリオの進捗具合の合計の推移）を表わしたものである。
【００７２】
例として、分析進捗  、設計進捗、実装進捗のそれぞれの項目に対して計測日毎のデータが格納される項目がある。
【００７３】
図１７−１は図２のS217で示されるサブシステムシナリオ進捗格納装置の例１である。サブシステム毎シナリオ進捗表である。
【００７４】
例として、シナリオID、分析進捗、設計進捗、実装進捗の項目がある。
【００７５】
図１７−２は図２のS217で示されるサブシステムシナリオ進捗格納装置の例２である。サブシステム毎の進捗の推移を表わしたものである。
【００７６】
例として、各Iteration 毎に分析進捗、設計進捗、実装進捗のそれぞれの項目に対して計測日毎のデータが格納される項目がある。
【００７７】
Iteration に区切らずに、同様に全部を単に合計することも可能である。
【００７８】
図１８は図２のS216で示されるIteration 毎のシナリオ進捗格納装置の例２である。Iteration 毎シナリオ進捗の推移を表わしたものである。
【００７９】
例として、各Iteration 毎に分析進捗、設計進捗、実装進捗のそれぞれの項目に対して計測日毎のデータが格納される項目がある。
【００８０】
図１９−１は図２のS217で示されるリスク解消状況格納装置の例１である。リスクの解消状況を表わしている。例として、リスクＩＤスク解消度の項目がある。
【００８１】
図１９−２は図２のS217で示されるリスク解消状況格納装置の例２である。リスク解消度の推移を表わしたものである。
【００８２】
例として、残リスク、解消済みリスク等の項目に対して計測日毎のデータが格納される項目がある。
【００８３】
図２０−１はS220のリスク入力促進装置の中のリスクカテゴリ格納の例である。
【００８４】
項目の例として、リスクカテゴリ、リスクカテゴリの説明がある。
【００８５】
図２０−２はS220のリスク入力促進装置の具体的なアルゴリズムの例である。
【００８６】
S2001 では、リスク入力のカテゴリ（ヒント、キーワード）を表示する。S2002 では、ユーザーがリスクを入力する。S2003 では、全部のカテゴリに対して処理したか？判断する。Yes であれば終了。NoであればS2001 へ。
【００８７】
図２１は進捗情報表示部のアルゴリズムである。
【００８８】
Ｓ2101では、図１６−２、図１７−２、図１８、図１９−２等で記された計測日毎の進捗データをグラフで表示する。
【００８９】
＜実施の形態２＞
実施の形態１では、例えばUnified
Process のような繰返し型の（Iteration 方式の）開発プロセスにソフトウェア開発の進捗管理に関しての例であったが、同様のことが、電気、メカ等のソフトではない開発に置いても同様に適用可能である。
【００９０】
又、Iteration の方式を採っていない開発プロジェクトにおいても、本方式の中では、１つのIteration のみのプロジェクトとして扱うことで、同様の管理が可能である。
【００９１】
又、図２０−１、図２０−２で説明したような、リスク抽出の方式は、リスクだけではなく、シナリオの抽出、個人作業の抽出等のものに置いても同様に扱うことができる。
【００９２】
更に、実施の形態１では、シナリオ管理の階層が、全体−グループ毎−個人毎として説明してきたが、グループの下にサブグループが入る等、この階層構造の深さが変化したとしても、同様の扱いをすることができる。
【図面の簡単な説明】
【００９３】
【図１】本発明の装置の構成図を示す図である。
【図２】本発明の実施の形態の情報処理システムの機能構成を示す機能ブロック図である。
【図３】S201で管理しているIteration 計画の例である。
【図４】S202で管理しているリスク表の１例である。
【図５】S203で管理している全体シナリオの例である。
【図６】S204で管理しているサブシステムシナリオの例である。
【図７】S205で管理している各個人作業項目の例である。
【図８】S206で管理しているシナリオとリクスノ対応情報の例である。
【図９】S207で管理している全体シナリオとサブシステムのシナリオとの対応情報の例である。
【図１０−１】S209のリスク解消判断装置の具体的なアルゴリズムの例である。
【図１０−２】S209のリスク解消判断装置の具体的なアルゴリズムの別の実施例である。
【図１１】S210の全体のシナリオ進捗計算装置の具体的なアルゴリズムの例である。
【図１２】S211のIteration 毎のシナリオ進捗計算装置の具体的なアルゴリズムの例である。
【図１３】S21 ２のサブシステム毎のシナリオ進捗計算装置の具体的なアルゴリズムの例である。
【図１４】個人毎のシナリオ進捗計算装置アルゴリズムである。
【図１５】NCSSとシナリオ対応計算装置アルゴリズムである。
【図１６−１】図２のS215で示される全体シナリオ進捗格納装置の例１である。
【図１６−２】図２のS215で示される全体シナリオ進捗格納装置の例２である。
【図１７−１】図２のS217で示されるサブシステムシナリオ進捗格納装置の例１である。サブシステム毎シナリオ進捗表である。
【図１７−２】図２のS217で示されるサブシステムシナリオ進捗格納装置の例２である。
【図１８】図２のS216で示されるIteration 毎のシナリオ進捗格納装置の例２である。
【図１９−１】図２のS217で示されるリスク解消状況格納装置の例１である。
【図１９−２】図２のS217で示されるリスク解消状況格納装置の例２である。
【図２０−１】S220のリスク入力促進装置の中のリスクカテゴリ格納の例である。
【図２０−２】S220のリスク入力促進装置の具体的なアルゴリズムの例である。
【図２１】進捗情報表示部のアルゴリズムである。
【符号の説明】
【００９４】
１    ＣＰＵ
２    バス
３    ＲＯＭ
３ａ  処理プログラム
３ｂ  パラメータ
４    ＲＡＭ
５    入力インターフェイス
６    キーボード
７    出力インターフェイス
８    出力デバイス
８ａ  ＣＲＴ，ＬＣＤ
８ｂ  プリンタ、プロッタ
９    外部記憶装置インターフェイス
１０  外部記憶デバイス
【図１】
2006302157.tif 000003
【図２】
2006302157.tif 000004
【図３】
2006302157.tif 000005
【図４】
2006302157.tif 000006
【図５】
2006302157.tif 000007
【図６】
2006302157.tif 000008
【図７】
2006302157.tif 000009
【図８】
2006302157.tif 000010
【図９】
2006302157.tif 000011
【図１０−１】
2006302157.tif 000012
【図１０−２】
2006302157.tif 000013
【図１１】
2006302157.tif 000014
【図１２】
2006302157.tif 000015
【図１３】
2006302157.tif 000016
【図１４】
2006302157.tif 000017
【図１５】
2006302157.tif 000018
【図１６−１】
2006302157.tif 000019
【図１６−２】
2006302157.tif 000020
【図１７−１】
2006302157.tif 000021
【図１７−２】
2006302157.tif 000022
【図１８】
2006302157.tif 000023
【図１９−１】
2006302157.tif 000024
【図１９−２】
2006302157.tif 000025
【図２０−１】
2006302157.tif 000026
【図２０−２】
2006302157.tif 000027
【図２１】
2006302157.tif 000028