(57)【要約】 【課題】  ソフトウエアに要求される品質に応じた進捗判定条件を用いて最新の進捗状況を管理することができる進捗管理装置を提供する。【解決手段】  進捗状況定義表３２、進捗状況判定付加情報３３、および状況取得プログラム３５は、それぞれデータベースに登録される。進捗状況判定手段１４は、ソフトウエア３１が入力されると、入力されたソフトウエア３１に対して、登録された進捗状況判定付加情報３３が示す条件で登録された状況取得プログラム３５を実行する。そして、実行結果がどの進捗状況を示しているかを、登録された進捗状況定義表３２の状況判定ルールに従って判定し、判定された進捗状況を進捗状況蓄積手段１５に送り、進捗状況管理表に記憶する。進捗状況検索手段１６は、進捗状況の検索要求が与えられた場合に、進捗状況管理表から検索要求に合致する進捗状況を検索し、検索結果を表示する。【選択図】      図１
2007280305.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）入力手段と、
（ｂ）記憶手段と、
（ｃ）出力手段と、
（ｄ）制御手段であって、
（ｄ１）開発対象プログラムに対して予め定める処理を実行する開発支援プログラムおよび開発の進捗度を判定するための進捗判定条件を表す進捗判定条件情報が入力手段によって入力されると、入力された開発支援プログラムおよび進捗判定条件情報を記憶手段によって記憶させ、
（ｄ２）開発支援プログラムおよび進捗判定条件情報が記憶手段によって記憶された後、入力手段によって開発対象プログラムおよびその開発対象プログラムを識別するための開発対象プログラム識別情報が入力されると、記憶手段に記憶された開発支援プログラムのうち入力された開発対象プログラムに関連する開発支援プログラムを、入力された開発対象プログラムに対して実行し、その実行結果と、記憶手段に記憶された進捗判定条件情報のうち入力された開発対象プログラムに関連する進捗判定条件情報とに基づいて、入力された開発対象プログラムの進捗度を判定し、判定した進捗度を表す進捗度情報を、入力された開発対象プログラム識別情報に関連付けて記憶手段によって記憶させ、
（ｄ３）検索対象の開発対象プログラム識別情報が入力手段によって入力されると、記憶手段に記憶された開発対象プログラム識別情報から、入力された検索対象の開発対象プログラム識別情報と同じ開発対象プログラム識別情報を検索し、検索された開発対象プログラム識別情報に関連付けられた進捗度情報を、記憶手段に記憶された進捗度情報から抽出し、抽出した進捗度情報を出力手段によって出力させる、そのような制御手段とを含むことを特徴とする進捗管理装置。
【請求項２】
前記進捗判定条件情報は、その進捗判定条件情報に関連する開発対象プログラムの進捗度を判定するために実行すべき開発支援プログラムを識別するための開発支援プログラム識別情報を含み、
前記入力手段は、進捗判定条件情報を入力する際、その進捗判定条件情報に関連する開発対象プログラムの開発対象プログラム識別情報とともに入力し、
前記制御手段は、入力手段によって入力された進捗判定条件情報と開発対象プログラム識別情報とを対応付けて前記記憶手段によって記憶させることを特徴とする請求項１に記載の進捗管理装置。
【請求項３】
前記入力手段は、開発支援プログラムを入力する際、その開発支援プログラムを実行するための実行条件を表す実行条件情報をさらに入力し、
前記制御手段は、入力手段によって実行条件情報が入力されると、入力された実行条件情報を前記記憶手段によって記憶させ、記憶手段に記憶された開発支援プログラムを実行する際、記憶手段に記憶された実行条件情報のうち実行する開発支援プログラムに関連する実行条件情報が示す実行条件で実行することを特徴とする請求項１に記載の進捗管理装置。
【請求項４】
前記予め定める処理を実行する開発支援プログラムは、少なくともコンパイラおよびリンカのうちのいずれか１つを含む言語開発支援プログラム、ならびに少なくとも単体テストプログラムおよび静的解析プログラムのうちのいずれか１つを含む試験支援プログラムを含むことを特徴とする請求項１に記載の進捗管理装置。
【請求項５】
開発対象プログラムに対して予め定める処理を実行する開発支援プログラムおよび開発の進捗度を判定するための進捗判定条件を表す進捗判定条件情報が入力されると、入力された開発支援プログラムおよび進捗判定条件情報を記憶装置に記憶する進捗判定条件記憶工程と、
開発対象プログラムおよびその開発対象プログラムを識別するための開発対象プログラム識別情報が入力されると、進捗判定条件記憶工程で記憶装置に記憶された開発支援プログラムのうち入力された開発対象プログラムに関連する開発支援プログラムを、入力された開発対象プログラムに対して実行し、その実行結果と、進捗判定条件記憶工程で記憶装置に記憶された進捗判定条件情報のうち入力された開発対象プログラムに関連する進捗判定条件情報とに基づいて、入力された開発対象プログラムの進捗度を判定し、判定された進捗度を表す進捗度情報を入力された開発対象プログラム識別情報に関連付けて記憶装置に記憶する進捗度記憶工程と、
検索対象の開発対象プログラム識別情報が入力されると、進捗度記憶工程で記憶装置に記憶された開発対象プログラム識別情報から、入力された検索対象の開発対象プログラム識別情報と同じ開発対象プログラム識別情報を検索し、検索された開発対象プログラム識別情報に関連付けられた進捗度情報を、進捗度記憶工程で記憶装置に記憶された進捗度情報から抽出し、抽出された進捗度情報を出力する検索出力工程とを含むことを特徴とする進捗管理方法。
【請求項６】
コンピュータを請求項１に記載の進捗管理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウエア開発における進捗を管理することができる進捗管理装置、方法およびプログラムに関する。
【背景技術】
【０００２】
携帯電話などのデジタル家電製品に組み込まれるソフトウエアは、年々規模が増大しているが、短期間かつ低開発コストで高品質なソフトウエア開発を行わなければならず、ソフトウエア開発の進捗管理が、製品開発プロジェクトの成功の重要な要因となっている。ソフトウエアの進捗管理を実施することによって、ソフトウエア開発の早い時期に問題を発見して、対処することができるようになるので、品質確保、開発コスト超過防止、および納期遵守のためには、進捗管理は、不可欠である。
【０００３】
ソフトウエア開発において進捗状況を管理する従来の技術として、ソフトウエア開発管理装置がある。このソフトウエア開発管理装置では、管理サーバとは別のコンピュータにおいて、開発されるソフトウエアに対して、ソースファイル管理プログラム、言語開発支援プログラム、または試験支援プログラムが実行される。そして、それぞれの実行結果がその別のコンピュータから管理サーバに通知され、データベースに蓄積される。ソフトウエア開発管理装置は、このデータベースを検索することによって、特定のソースファイルの実行結果を取り出すことができる（たとえば特許文献１参照）。
【０００４】
【特許文献１】特開２０００−１６３２５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ソフトウエア製品は、要求される品質つまり信頼性のレベルが多様であるという特徴がある。たとえば生命維持に係る医療機器、金融機関の基幹システム、あるいはセキュリティシステムなど、不具合を一切許さない極めて高い信頼性を必要とするシステム用のソフトウエア製品から、研究用の特殊ソフトウエアなど、必要な機能さえ実現することができれば、多少のバグは許容されるシステム用のソフトウエア製品まで、さまざまなソフトウエア製品が存在している。
【０００６】
さらに、開発されるソフトウエアに対する試験も、ソフトウエアに要求される品質に応じて多様であるという特徴がある。高い信頼性を必要とされるソフトウエアの場合、その試験において、一切の漏れがないよう様々な状況を想定し、様々なテストが繰り返えし行われる。逆に、高い信頼性を必要とされないソフトウエアの場合、想定される１つないし少数の状況のみを想定した少ない項目のテストのみで試験が完了する。
【０００７】
しかしながら、従来の技術では、管理サーバには、試験支援プログラムからその実行結果として正常結果またはエラー結果のみが通知されるだけで、試験支援プログラムと管理サーバとの間で、ソフトウエアに要求される信頼性のレベルおよび試験支援プログラムが試験結果を得るために行う試験内容および結果を判定するために用いる結果判定基準などの情報が通知されることはない。したがって、ソフトウエアに要求される信頼性のレベルおよび試験支援プログラムの試験内容および結果判定基準は、各コンピュータ上で稼動する各試験支援プログラムが個別に管理している。すなわち、管理サーバは、ソフトウエアに要求される信頼性のレベルおよび試験支援プログラムが試験結果を得るために行う試験内容および結果を判定するために用いる結果判定基準を知ることができず、ソフトウエアの品質のレベルを管理することができない。
【０００８】
具体的には、高品質なソフトウエアを開発する場合、通常品質のソフトウエア開発に比べて、品質を作り込むための試験の種類が増える。たとえばハイエンドタイプ向けのソフトウエア開発では、ソースプログラムをオブジェクトプログラムに変換する言語開発支援プログラムにおいて、標準タイプ向けのソフトウエア開発で実施しているコンパイル以外に、静的解析試験つまりソフトウエアの書法の厳格なチェックを行う静的解析試験を追加することによって、さらに試験支援プログラムにおいて、標準タイプ向けのソフトウエア開発で実施している単体テスト、統合テスト、および総合テスト以外に、カバレッジテストつまり実行網羅率が所定の値以上になるようにするテストを追加することによって、高品質を保証する必要がある。しかしながら、従来の技術では、進捗度を判定するための進捗判定条件つまり結果判定基準は、３段階すなわちソースファイル管理プログラムの実行結果、言語開発支援プログラムの実行結果、および試験支援プログラムの実行結果の３段階のみであり、要求品質が異なるソフトウエア製品毎に、それぞれの品質に応じた進捗判定条件を設定することができず、多様な品質のソフトウエア開発に対応する進捗管理を行うことができないという問題がある。
【０００９】
同様に、１つのソフトウエア製品に組み込まれるソフトウエアでも、組み込まれるソフトウエア毎に要求される品質が多様であることがある。たとえば、１つの機能たとえば個人情報を扱う機能（以下機能Ａという）は非常に高品質が要求され、別の機能（以下機能Ｂという）は比較的高品質は要求されない場合、機能Ａの方が高品質を要求されるので、機能Ｂよりも厳しい試験を実施しなければならない。しかしながら、従来の技術では、管理サーバは、試験を実施したマシンつまりコンピュータと試験結果とを対応付けてデータベースで管理しており、同じマシン上で組み込まれる複数のソフトウエアに対して複数の異なる試験を実施しても、管理サーバでは、組み込まれたソフトウエアに対して行われた試験内容の区別をつけることができない。試験内容毎に異なるマシンを用意すれば試験内容の区別をつけることはできるが、試験の種類毎に新たなマシンを用意しなければならず、現実的な解とはいえず、ソフトウエアに要求される品質が多様である場合には利用することができない。
【００１０】
さらに、従来の技術では、最新の進捗状況を得られない場合がある。すなわち、従来の技術では、ソースファイル管理プログラム、言語開発支援プログラム、または試験支援プログラムが実行され、その実行結果が管理サーバに通知されることによって、進捗状況が更新される。よって、これらのプログラムが実行されない限り、管理サーバで管理されている進捗状況は更新されない。これらのプログラムは、必ずしも連続して実行されるとは限らないので、もし、ソースファイルが修正されて、ソースファイル管理プログラムを用いて修正されたソースファイルを管理対象として更新しても、言語開発支援プログラムおよび試験支援プログラムが実行されなければ、管理サーバは、言語開発支援プログラムおよび試験支援プログラムの実行結果が通知されていない状態として管理する。したがって、この状態で、そのソースファイルの進捗状況の問い合わせがあった場合、もし言語開発支援プログラムおよび試験支援プログラムが実行されていたとしたならば、実行結果が正常結果である場合も、それぞれのプログラムが実行されていないとして管理されているが故に、最新の同ソースファイルの進捗状況を得ることができない。すなわち、これらのプログラムは、管理サーバとは別のコンピュータにあり、管理サーバからこれらのプログラムを能動的に起動することができず、それぞれのプログラムがそのコンピュータで実行されるまで、管理サーバで管理されているソースファイルの進捗状況が変化しないという問題がある。したがって、進捗状況の判断を正しく行えない場合があり、開発遅延と判断される可能性がある。
【００１１】
本発明の目的は、ソフトウエアに要求される品質に応じた進捗判定条件を用いて最新の進捗状況を管理することができる進捗管理装置、方法およびプログラムを提供することである。
【課題を解決するための手段】
【００１２】
本発明は、（ａ）入力手段と、
（ｂ）記憶手段と、
（ｃ）出力手段と、
（ｄ）制御手段であって、
（ｄ１）開発対象プログラムに対して予め定める処理を実行する開発支援プログラムおよび開発の進捗度を判定するための進捗判定条件を表す進捗判定条件情報が入力手段によって入力されると、入力された開発支援プログラムおよび進捗判定条件情報を記憶手段によって記憶させ、
（ｄ２）開発支援プログラムおよび進捗判定条件情報が記憶手段によって記憶された後、入力手段によって開発対象プログラムおよびその開発対象プログラムを識別するための開発対象プログラム識別情報が入力されると、記憶手段に記憶された開発支援プログラムのうち入力された開発対象プログラムに関連する開発支援プログラムを、入力された開発対象プログラムに対して実行し、その実行結果と、記憶手段に記憶された進捗判定条件情報のうち入力された開発対象プログラムに関連する進捗判定条件情報とに基づいて、入力された開発対象プログラムの進捗度を判定し、判定した進捗度を表す進捗度情報を、入力された開発対象プログラム識別情報に関連付けて記憶手段によって記憶させ、
（ｄ３）検索対象の開発対象プログラム識別情報が入力手段によって入力されると、記憶手段に記憶された開発対象プログラム識別情報から、入力された検索対象の開発対象プログラム識別情報と同じ開発対象プログラム識別情報を検索し、検索された開発対象プログラム識別情報に関連付けられた進捗度情報を、記憶手段に記憶された進捗度情報から抽出し、抽出した進捗度情報を出力手段によって出力させる、そのような制御手段とを含むことを特徴とする進捗管理装置である。
【００１３】
本発明に従えば、制御手段によって、まず、開発対象プログラムに対して予め定める処理を実行する開発支援プログラムおよび開発の進捗度を判定するための進捗判定条件を表す進捗判定条件情報が入力手段によって入力されると、入力された開発支援プログラムおよび進捗判定条件情報が記憶手段によって記憶される。次に、開発支援プログラムおよび進捗判定条件情報が記憶手段によって記憶された後、入力手段によって開発対象プログラムおよびその開発対象プログラムを識別するための開発対象プログラム識別情報が入力されると、記憶手段に記憶された開発支援プログラムのうち入力された開発対象プログラムに関連する開発支援プログラムが、入力された開発対象プログラムに対して実行され、その実行結果と、記憶手段に記憶された進捗判定条件情報のうち入力された開発対象プログラムに関連する進捗判定条件情報とに基づいて、入力された開発対象プログラムの進捗度が判定され、判定された進捗度を表す進捗度情報が、入力された開発対象プログラム識別情報に関連付けられて記憶手段によって記憶される。さらに検索対象の開発対象プログラム識別情報が入力手段によって入力されると、記憶手段に記憶された開発対象プログラム識別情報から、入力された検索対象の開発対象プログラム識別情報と同じ開発対象プログラム識別情報が検索され、検索された開発対象プログラム識別情報に関連付けられた進捗度情報が、記憶手段に記憶された進捗度情報から抽出され、抽出された進捗度情報が出力手段によって出力される。
【００１４】
このように、まず、開発対象プログラムに対して予め定める処理を実行する開発支援プログラムおよび開発の進捗度を判定するための進捗判定条件を表す進捗判定条件情報を予め記憶装置に記憶しておき、開発対象プログラムが入力されると、その開発対象プログラムに関連する開発支援プログラムを記憶装置から読み出して、その開発対象プログラムに対して実行し、その実行結果が示す進捗度を、その開発対象プログラムに関連する進捗判定条件情報に従って判定し、判定した進捗度を表す進捗度情報を記憶装置に記憶する。さらに検索対象の開発対象プログラム識別情報が入力されると、記憶装置に記憶された進捗度情報から、検索対象の開発対象プログラム識別情報が示す開発対象プログラムの進捗度情報を抽出し、抽出した進捗度情報を出力するので、入力された開発対象プログラムであるソフトウエアに対してそのソフトウエアに関連するすべての開発支援プログラムを実行し、そのソフトウエアに対応する進捗判定条件で進捗度である進捗状況を判定することができ、ソフトウエアに要求される品質に応じた進捗判定条件を用いて最新の進捗状況を管理することができる。
【００１５】
また本発明は、前記進捗判定条件情報は、その進捗判定条件情報に関連する開発対象プログラムの進捗度を判定するために実行すべき開発支援プログラムを識別するための開発支援プログラム識別情報を含み、
前記入力手段は、進捗判定条件情報を入力する際、その進捗判定条件情報に関連する開発対象プログラムの開発対象プログラム識別情報とともに入力し、
前記制御手段は、入力手段によって入力された進捗判定条件情報と開発対象プログラム識別情報とを対応付けて前記記憶手段によって記憶させることを特徴とする。
【００１６】
本発明に従えば、進捗判定条件情報は、その進捗判定条件情報に関連する開発対象プログラムの進捗度である進捗状況を判定するために実行すべき開発支援プログラムを識別するための開発支援プログラム識別情報を含み、進捗判定条件情報が入力される際、その進捗判定条件情報に関連する開発対象プログラムの開発対象プログラム識別情報とともに入力され、入力された進捗判定条件情報と開発対象プログラム識別情報とが対応付けられて記憶手段によって記憶されるので、開発対象プログラムが開発対象プログラム識別情報とともに入力されると、その開発対象プログラムに関連する進捗判定条件情報と開発支援プログラムとを特定することができる。
【００１７】
また本発明は、前記入力手段は、開発支援プログラムを入力する際、その開発支援プログラムを実行するための実行条件を表す実行条件情報をさらに入力し、
前記制御手段は、入力手段によって実行条件情報が入力されると、入力された実行条件情報を前記記憶手段によって記憶させ、記憶手段に記憶された開発支援プログラムを実行する際、記憶手段に記憶された実行条件情報のうち実行する開発支援プログラムに関連する実行条件情報が示す実行条件で実行することを特徴とする。
【００１８】
本発明に従えば、開発支援プログラムが入力される際、その開発支援プログラムを実行するための実行条件を表す実行条件情報が入力され、その実行条件情報が開発支援プログラムとともに記憶手段によって記憶され、その開発支援プログラムが実行される際、その開発支援プログラムに関連する実行条件情報が記憶手段から読み出され、読み出された実行条件情報が示す実行条件で実行されるので、パラメータが必要な開発支援プログラムのパラメータを事前に設定しておくことができる。
【００１９】
また本発明は、前記予め定める処理を実行する開発支援プログラムは、少なくともコンパイラおよびリンカのうちのいずれか１つを含む言語開発支援プログラム、ならびに少なくとも単体テストプログラムおよび静的解析プログラムのうちのいずれか１つを含む試験支援プログラムを含むことを特徴とする。
【００２０】
本発明に従えば、予め定める処理を実行する開発支援プログラムは、少なくともコンパイラおよびリンカのうちのいずれか１つを含む言語開発支援プログラム、ならびに少なくとも単体テストプログラムおよび静的解析プログラムのうちのいずれか１つを含む試験支援プログラムを含むので、開発対象プログラムであるソフトウエアの開発に一般的に用いられる開発支援プログラムを用いることができる。
【００２１】
また本発明は、開発対象プログラムに対して予め定める処理を実行する開発支援プログラムおよび開発の進捗度を判定するための進捗判定条件を表す進捗判定条件情報が入力されると、入力された開発支援プログラムおよび進捗判定条件情報を記憶装置に記憶する進捗判定条件記憶工程と、
開発対象プログラムおよびその開発対象プログラムを識別するための開発対象プログラム識別情報が入力されると、進捗判定条件記憶工程で記憶装置に記憶された開発支援プログラムのうち入力された開発対象プログラムに関連する開発支援プログラムを、入力された開発対象プログラムに対して実行し、その実行結果と、進捗判定条件記憶工程で記憶装置に記憶された進捗判定条件情報のうち入力された開発対象プログラムに関連する進捗判定条件情報とに基づいて、入力された開発対象プログラムの進捗度を判定し、判定された進捗度を表す進捗度情報を入力された開発対象プログラム識別情報に関連付けて記憶装置に記憶する進捗度記憶工程と、
検索対象の開発対象プログラム識別情報が入力されると、進捗度記憶工程で記憶装置に記憶された開発対象プログラム識別情報から、入力された検索対象の開発対象プログラム識別情報と同じ開発対象プログラム識別情報を検索し、検索された開発対象プログラム識別情報に関連付けられた進捗度情報を、進捗度記憶工程で記憶装置に記憶された進捗度情報から抽出し、抽出された進捗度情報を出力する検索出力工程とを含むことを特徴とする進捗管理方法である。
【００２２】
本発明に従えば、まず、進捗判定条件記憶工程で、開発対象プログラムに対して予め定める処理を実行する開発支援プログラムおよび開発の進捗度を判定するための進捗判定条件を表す進捗判定条件情報が入力されると、入力された開発支援プログラムおよび進捗判定条件情報を記憶装置に記憶する。次に、進捗度記憶工程で、開発対象プログラムおよびその開発対象プログラムを識別するための開発対象プログラム識別情報が入力されると、進捗判定条件記憶工程で記憶装置に記憶された開発支援プログラムのうち入力された開発対象プログラムに関連する開発支援プログラムを、入力された開発対象プログラムに対して実行し、その実行結果と、進捗判定条件記憶工程で記憶装置に記憶された進捗判定条件情報のうち入力された開発対象プログラムに関連する進捗判定条件情報とに基づいて、入力された開発対象プログラムの進捗度を判定し、判定された進捗度を表す進捗度情報を入力された開発対象プログラム識別情報に関連付けて記憶装置に記憶する。さらに、検索出力工程で、検索対象の開発対象プログラム識別情報が入力されると、進捗度記憶工程で記憶装置に記憶された開発対象プログラム識別情報から、入力された検索対象の開発対象プログラム識別情報と同じ開発対象プログラム識別情報を検索し、検索された開発対象プログラム識別情報に関連付けられた進捗度情報を、進捗度記憶工程で記憶装置に記憶された進捗度情報から抽出し、抽出された進捗度情報を出力する。
【００２３】
このように、まず、開発対象プログラムに対して予め定める処理を実行する開発支援プログラムおよび開発の進捗度を判定するための進捗判定条件を表す進捗判定条件情報を予め記憶装置に記憶しておき、開発対象プログラムが入力されると、その開発対象プログラムに関連する開発支援プログラムを記憶装置から読み出して、その開発対象プログラムに対して実行し、実行された実行結果が示す進捗度を、その開発対象プログラムに関連する進捗判定条件情報に従って判定し、判定した進捗度を表す進捗度情報を記憶装置に記憶する。さらに、検索のための開発対象プログラム識別情報が入力されると、記憶装置に記憶された進捗度情報から、検索のための開発対象プログラム識別情報が示す開発対象プログラムの進捗度情報を抽出し、抽出した進捗度情報が示す進捗度を出力するので、入力された開発対象プログラムであるソフトウエアに対してそのソフトウエアに関連するすべての開発支援プログラムを実行し、そのソフトウエアに対応する進捗判定条件で進捗度である進捗状況を判定することができ、ソフトウエアに要求される品質に応じた進捗判定条件を用いて最新の進捗状況を管理することができる。
【００２４】
また本発明は、コンピュータを前記進捗管理装置の各手段として機能させるためのプログラムである。
【００２５】
本発明に従えば、コンピュータを進捗管理装置の各手段として機能させるためのプログラムとして提供することができる。
【発明の効果】
【００２６】
本発明によれば、開発対象プログラムであるソフトウエアに要求される品質に応じた進捗判定条件を用いて最新の進捗状況を管理することができるので、ソフトウエアの試験項目が多種多様、もしくは頻繁に変更されるような場合でも、すなわちソフトウエア開発の進捗状況を判断するための進捗判定条件を変更しなければならない場合でも容易に対応することができるので、適切なソフトウエア進捗管理を実現することができ、要求される品質を確保しつつ、納期遵守および開発コスト削減を図ることができる。
【００２７】
また本発明によれば、開発対象プログラムであるソフトウエアが開発対象プログラム識別情報とともに入力されると、そのソフトウエアに関連する進捗判定条件情報と開発支援プログラムとを特定することができるので、ソフトウエアの品質に応じて、進捗判定条件と実行すべき開発支援プログラムとを設定することができる。
【００２８】
また本発明によれば、パラメータが必要な開発支援プログラムのパラメータを事前に設定しておくことができるので、開発対象プログラムであるソフトウエアを入力する度にパラメータを設定する必要がない。
【００２９】
また本発明によれば、開発対象プログラムであるソフトウエアの開発に一般的に用いられる開発支援プログラムを用いることができるので、汎用性の高い進捗管理を行うことができる。
【００３０】
また本発明によれば、開発対象プログラムであるソフトウエアに要求される品質に応じた進捗判定条件を用いて最新の進捗状況を管理することができるので、ソフトウエアの試験項目が多種多様、もしくは頻繁に変更されるような場合でも、すなわちソフトウエア開発の進捗状況を判断するための進捗判定条件を変更しなければならない場合でも容易に対応することができるので、適切なソフトウエア進捗管理を実現することができ、要求される品質を確保しつつ、納期遵守および開発コスト削減を図ることができる。
【００３１】
また本発明によれば、コンピュータを進捗管理装置の各手段として機能させるためのプログラムとして提供することができる。
【発明を実施するための最良の形態】
【００３２】
図１は、本発明の実施の一形態であるソフトウエア進捗状況自動計測装置１の構成を模式的に示す。進捗管理装置であるソフトウエア進捗状況自動計測装置１は、開発対象プログラムであるソフトウエアたとえばソースプログラムおよびオブジェクトプログラムの開発の進捗状況つまり進捗度を管理するための装置である。ソースプログラムおよびオブジェクトプログラムは、記憶装置に記憶される場合、ファイル単位で管理される。以下ソースプログラムのことをソースファイル、およびオブジェクトプログラムのことをオブジェクトファイルともいう。
【００３３】
ソフトウエア進捗状況自動計測装置１は、ソフトウエア管理手段１１、進捗状況定義管理手段１２、状況取得プログラム管理手段１３、進捗状況判定手段１４、進捗状況蓄積手段１５、および進捗状況検索手段１６を含む機能と、ソフトウエアデータベース２１、状況取得プログラムデータベース２２、状況取得プログラム名・パス付きファイル名対応表データベース２３、進捗状況管理表データベース２４、および進捗状況定義表データベース２５を含むデータベースとを含む。
【００３４】
ソフトウエア進捗状況自動計測装置１は、たとえば一般的なコンピュータによって構成され、情報を入力するためのキーボードあるいはマウスなどの図示しない入力装置、情報を表示するための液晶ディスプレイなどの表示装置あるいは情報を印刷するためのプリンタなどの印刷装置を含む図示しない出力装置、情報を処理するＣＰＵ（Central
Processing Unit）によって構成される図示しない中央処理装置、ならびにプログラムと、情報を処理するために必要な情報とを記憶する半導体メモリあるいはハードディスク装置などの図示しない記憶装置を含む。中央処理装置が記憶装置に記憶されるプログラムを実行することによって、各機能が実現される。入力手段は、たとえば入力装置であり、出力手段は、たとえば出力装置であり、制御手段は、たとえば中央処理装置であり、記憶手段は、たとえば記憶装置である。
【００３５】
ソフトウエア管理手段１１は、ソフトウエアを登録・管理する。すなわち、開発対象であるソフトウエア３１が図示しない入力装置によって入力されると、入力されたソフトウエア３１をソフトウエアデータベース２１に記憶する。
【００３６】
進捗状況定義管理手段１２は、進捗状況定義表３２と進捗状況判定付加情報３３とを登録・管理する。すなわち、進捗状況定義表３２および進捗状況判定付加情報３３が入力装置によって入力されると、入力された進捗状況定義表３２および進捗状況判定付加情報３３を進捗状況定義表データベース２５に記憶する。進捗状況定義表３２は、ソフトウエアの開発の進捗度である進捗状況を判定するための進捗判定条件が定義される表である。進捗状況定義表３２は、進捗状況を識別するための状況ＩＤ（Identification）と、進捗状況を自然言語形式つまり人間が理解することができる言葉で記述した要約と、進捗状況を機械可読形式つまりコンピュータに判読させるための言語で記述した状況判定ルールとを、状況ＩＤ毎に対応付けた表である。進捗状況判定付加情報３３は、進捗状況定義表３２の状況判定ルールに従って進捗状況を判定するために付加的に必要な情報である。
【００３７】
状況取得プログラム管理手段１３は、状況取得プログラム３５および状況取得プログラム名・ファイル名対応表３４を登録・管理する。すなわち、状況取得プログラム３５および状況取得プログラム名・ファイル名対応表３４が入力装置によって入力されると、入力された状況取得プログラム３５を状況取得プログラムデータベース２２に記憶し、状況取得プログラム名・ファイル名対応表３４を、状況取得プログラム名・パスつきファイル名対応表として状況取得プログラム名・パス付きファイル名対応表データベース２３に記憶する。
【００３８】
状況取得プログラム３５は、ソフトウエア管理手段１１によって登録されるソフトウエアに対して、予め定める処理を実行する開発支援プログラムであり、たとえば言語開発支援プログラムであるコンパイラあるいはリンカ、または試験支援プログラムである単体テスト実行プログラムあるいは静的解析プログラムである。進捗状況定義表３２の状況判定ルールに従って、状況取得プログラム３５の実行結果がどの進捗状況を示しているかが判定される。状況取得プログラム名・ファイル名対応表３４は、状況取得プログラム３５を識別するための名前たとえば状況取得プログラム名と状況取得プログラムのファイル名とを対応付けた表であり、状況取得プログラム名・パスつきファイル名対応表は、状況取得プログラム名と状況取得プログラム３５を記憶する記憶装置内の場所を示すパスつきファイル名とを対応付けた表である。
【００３９】
進捗状況判定手段１４は、ソフトウエア管理手段１１によってソフトウエアが新たに登録されると、まず、状況取得プログラム管理手段１３によって、新たに登録されたソフトウエア３１に対応する状況取得プログラム３５を状況取得プログラムデータベース２２から読み出し、進捗状況定義管理手段１２によって、新たに登録されたソフトウエア３１に対応する進捗状況定義表３２および進捗状況判定付加情報３３を読み出す。ソフトウエア３１と状況取得プログラム３５との対応付け、ならびにソフトウエア３１と進捗状況定義表３２および進捗状況判定付加情報３３との対応付けは、後述する。次に、記憶装置から読み出された進捗状況判定付加情報３３が示す条件で、状況取得プログラムデータベース２２から読み出された状況取得プログラム３５を、新たに登録されたソフトウエア３１に対して実行する。そして記憶装置から読み出された進捗状況定義表３２の状況判定ルールに従って、実行結果がどの進捗状況を示しているかを判定し、判定された進捗状況を進捗状況蓄積手段１５に送る。
【００４０】
進捗状況蓄積手段１５は、進捗状況判定手段１４から受け取った進捗状況を進捗状況管理表へ蓄積・管理する。すなわち、進捗状況判定手段１４から受け取った進捗状況を進捗状況管理表データベース２４に記憶される進捗状況管理表に追加する。
【００４１】
進捗状況検索手段１６は、進捗状況の検索要求が与えられた場合に、進捗状況管理表から検索要求に合致するデータを検索し、結果を表示する。すなわち、検索要求に合致するソフトウエアの進捗状況を進捗状況管理表データベース２４から検索し、検索した進捗状況を図示しない表示装置に表示する。
【００４２】
ソフトウエアデータベース２１は、ソフトウエア管理手段１１によって登録および管理されるソフトウエアたとえばソースファイルあるいはオブジェクトファイルを記憶するデータベースである。状況取得プログラムデータベース２２は、状況取得プログラム管理手段１３によって登録および管理される状況取得プログラムを記憶するデータベースであり、たとえば言語開発支援プログラムであるコンパイラ、試験支援プログラムである単体テスト実行プログラム、言語開発支援プログラムであるリンカ、および試験支援プログラムである静的解析プログラムなどの状況取得プログラムを記憶する。状況取得プログラム名・パス付きファイル名対応表データベース２３は、状況取得プログラムが状況取得プログラムデータベース２２のどこに記憶されているかを示す状況取得プログラム名・パス付きファイル名対応表を記憶する。進捗状況管理表データベース２４は、進捗状況判定手段１４によって判定された進捗状況を進捗状況管理表として記憶する。進捗状況定義表データベース２５は、進捗状況定義管理手段１２によって登録および管理される進捗状況定義表３２と進捗状況判定付加情報３３と記憶する。ソフトウエアデータベース２１、状況取得プログラムデータベース２２、状況取得プログラム名・パス付きファイル名対応表データベース２３、進捗状況管理表データベース２４、および進捗状況定義表データベース２５に登録された情報は、図示しない記憶装置に記憶される。
【００４３】
進捗状況定義表３２および進捗状況判定付加情報３３は、ソフトウエア毎に作成される。ソフトウエア３１との対応は、ソフトウエア３１を識別するための識別情報たとえばソフトウエア名を用いて行う。すなわち、進捗状況定義表３２および進捗状況判定付加情報３３は、入力装置によって入力される際、対応するソフトウエア名とともに入力され、進捗状況定義管理手段１２は、入力された進捗状況定義表３２および進捗状況判定付加情報３３を進捗状況定義表データベース２５に記憶する際、入力されたソフトウエア名と対応付けて記憶する。ソフトウエア名としては、ソースファイル名またはオブジェクトファイル名を用いる。このソフトウエア名つまりソースファイル名またはオブジェクトファイル名が、ソフトウエア３１を特定するために、ソフトウエア管理手段１１、進捗状況定義管理手段１２、状況取得プログラム管理手段１３、進捗状況判定手段１４、および進捗状況蓄積手段１５の間で受け渡しされる。進捗状況定義表３２の状況判定ルールには、その進捗状況定義表３２に対応するソフトウエア３１に対して実行すべき状況取得プログラム３５が規定されている。さらに、進捗状況蓄積手段１５は、進捗状況判定手段１４から受け取った進捗状況を、ソフトウエア名に対応付けて進捗状況管理表に記憶する。
【００４４】
図２は、図１に示したソフトウエア進捗状況自動計測装置１の利用形態の一例を示す。ソフトウエア進捗状況自動計測装置１のユーザとしては、管理者２つまりソフトウエア開発管理を行う人、および開発者３つまりソフトウエアを開発する人の２種類の人を含む。
【００４５】
第１の利用形態は、管理者２がソフトウエア進捗状況自動計測装置１に対して進捗状況を定義する利用形態である。すなわち進捗状況を判定するための進捗判定条件を設定する利用形態である。第２の利用形態は、開発者３がソフトウエア進捗状況自動計測装置１に対してソフトウエアを登録する利用形態である。第３の利用形態は、管理者２がソフトウエア進捗状況自動計測装置１によって進捗状況を検索する利用形態である。以下第１の利用形態について、図２〜図７を用いて説明し、第２の利用形態について、図８〜図１０を用いて説明し、第３の利用形態について、図１１および図１２を用いて説明する。
【００４６】
図３は、図１に示したソフトウエア進捗状況自動計測装置１が実行する進捗状況定義処理を示すフローチャートである。たとえば管理者２がソフトウエア進捗状況自動計測装置１の図示しない入力装置によって、進捗状況定義処理の開始を指示するとステップＳ１に移る。
【００４７】
ステップＳ１では、状況取得プログラム３５を状況取得プログラム管理手段１３で登録する。すなわち、管理者２が図示しない入力装置によって入力した状況取得プログラム３５が、状況取得プログラム管理手段１３によって状況取得プログラムデータベース２２に記憶される。状況取得プログラム３５は、ソフトウエアたとえばソースファイルまたはオブジェクトファイルを状況取得プログラムへの入力とし、そのソフトウエアに対して予め定める処理を実行するプログラムのことである。状況取得プログラムの実行結果が、進捗状況の判定に用いられる。状況取得プログラム３５は、たとえばコンパイラ、リンカ、単体テスト実行プログラム、あるいは静的解析プログラムである。静的解析プログラムは、ソースプログラムの品質を評価するためのプログラムである。状況取得プログラム３５は、状況取得プログラム３５の実行形式ファイルが状況取得プログラムデータベース２２へ保管つまり記憶される。
【００４８】
ステップＳ２では、状況取得プログラム名・ファイル名対応表３４を状況取得プログラム管理手段１３で登録する。すなわち、管理者２が図示しない入力装置によって入力した状況取得プログラム名・ファイル名対応表３４が、状況取得プログラム管理手段１３によって、状況取得プログラム名・パス付きファイル名対応表に変換されて、状況取得プログラム名・パス付きファイル名対応表データベース２３に記憶される。
【００４９】
図４は、図１に示したソフトウエア進捗状況自動計測装置１に入力される状況取得プログラム名・ファイル名対応表３４の一例を示す。状況取得プログラム名・ファイル名対応表３４は、状況取得プログラム名とファイル名とを対応付けた表である。状況取得プログラム名は、状況取得プログラム３５を識別するための識別情報であり、文字列たとえば英数字およびいくつかの記号で表される。この状況取得プログラム名は、進捗状況定義表３２の状況判定ルールに規定される。ファイル名は、状況取得プログラムを収めた実行形式のファイルを識別するための識別情報であり、文字列たとえば英数字およびいくつかの記号で表される。
【００５０】
図４には、たとえば最初の状況取得プログラム名「ｃｏｍｐｉｌｅｒ１」に対して、ファイル名「ｃｏｍｐｉｌｅｒ１．ｅｘｅ」が示され、２番目の状況取得プログラム名「ｌｉｎｋｅｒ１」に対して、ファイル名「ｌｉｎｋｅｒ１．ｅｘｅ」が示され、３番目の状況取得プログラム名「ｕｎｉｔ＿ｔｅｓｔｅｒ１」に対して、ファイル名「ｕｎｉｔ＿ｔｅｓｔｅｒ１．ｅｘｅ」が示され、４番目の状況取得プログラム名「ｃｏｖｅｒａｇｅ＿ｃａｌｃｕｌａｔｏｒ１」に対して、ファイル名「ｃｏｖｅｒａｇｅ＿ｃａｌｃｕｌａｔｏｒ１．ｅｘｅ」が示され、５番目の状況取得プログラム名「ｓｔａｔｉｃ＿ａｎａｌｙｚｅｒ１」に対して、ファイル名「ｓｔａｔｉｃ＿ａｎａｌｙｚｅｒ１．ｅｘｅ」が示されている。
【００５１】
図５は、図１に示した状況取得プログラム名・パス付きファイル名対応表データベース２３に記憶される状況取得プログラム名・パス付きファイル名対応表３６の一例を示す。状況取得プログラム名・パス付きファイル名対応表３６は、状況取得プログラム管理手段１３が、状況取得プログラム名・ファイル名対応表３４を状況取得プログラム名・パス付きファイル名対応表データベース２３に記憶するために変換した表であり、状況取得プログラム名とパス付きファイル名とが対応付けられている。パス付きファイル名は、状況取得プログラム３５が記憶される状況取得プログラムデータベース２２の場所およびその状況取得プログラム３５のファイル名を示す。
【００５２】
図５には、たとえば最初の状況取得プログラム名「ｃｏｍｐｉｌｅｒ１」に対して、パス付きファイル名「Ｃ：／ＰｒｏｇｒａｍＦｉｌｅｓ／ｃｏｍｐｉｌｅｒ１／ｃｏｍｐｉｌｅｒ１．ｅｘｅ」が示され、２番目の状況取得プログラム名「ｌｉｎｋｅｒ１」に対して、ファイル名「Ｃ：／ＰｒｏｇｒａｍＦｉｌｅｓ／ｌｉｎｋｅｒ１／ｌｉｎｋｅｒ１．ｅｘｅ」が示され、３番目の状況取得プログラム名「ｕｎｉｔ＿ｔｅｓｔｅｒ１」に対して、ファイル名「Ｃ：／ＰｒｏｇｒａｍＦｉｌｅｓ／ｕｎｉｔＴｅｓｔ／ｕｎｉｔ＿ｔｅｓｔｅｒ１．ｅｘｅ」が示され、４番目の状況取得プログラム名「ｃｏｖｅｒａｇｅ＿ｃａｌｃｕｌａｔｏｒ１」に対して、ファイル名「Ｃ：／ＰｒｏｇｒａｍＦｉｌｅｓ／ｃｏｖｅｒａｇｅ／ｃｏｖｅｒａｇｅ＿ｃａｌｃｕｌａｔｏｒ１．ｅｘｅ」が示され、５番目の状況取得プログラム名「ｓｔａｔｉｃ＿ａｎａｌｙｚｅｒ１」に対して、ファイル名「Ｃ：／ＰｒｏｇｒａｍＦｉｌｅｓ／ＳｔａｔｉｃＡｎａｌｙｚｅ／ｓｔａｔｉｃ＿ａｎａｌｙｚｅｒ１．ｅｘｅ」が示されている。
【００５３】
図３を参照して、ステップＳ３では、進捗状況判定付加情報３３を進捗状況定義管理手段１２で登録する。すなわち、管理者２が図示しない入力装置によって入力した進捗状況判定付加情報３３が、進捗状況定義管理手段１２によって進捗状況定義表データベース２５に記憶される。進捗状況判定付加情報３３は、状況取得プログラム３５への入力であり、状況取得プログラム３５への入力として、判定対象のソフトウエアだけでは不十分である場合に付加して入力される情報である。
【００５４】
図６は、図１に示したソフトウエア進捗状況自動計測装置１に入力される進捗状況判定付加情報３３の一例を示す。図６に示した進捗状況判定付加情報３３は、たとえば静的解析プログラムのための進捗状況判定付加情報であり、図４に示した状況取得プログラム「ｓｔａｔｉｃ＿ａｎａｌｙｚｅｒ１」についての進捗状況判定付加情報である。静的解析プログラムは、プログラム内部に複数の豊富な静的解析チェックルールを内蔵しており、いずれのチェックルールを適用するかはプログラムの入力として与えるようになっている。すなわち、静的解析プログラムへの入力として、単に判定対象となるソフトウエアたとえばソースファイルを与えるだけでは不十分であり、複数存在する静的解析ルールの中からどのルールを適用するかを表す取捨選択情報が必要である。この取捨選択情報が、進捗状況判定付加情報である。
【００５５】
図６に示した進捗状況判定付加情報３３は、状況取得プログラム「ｓｔａｔｉｃ＿ａｎａｌｙｚｅｒ１」に対する進捗状況判定付加情報の一例であり、ファイル名「ｐｌａｎｎｅｄ＿ｃｈｅｃｋ＿ｐｏｉｎｔｓ１」で表される。このファイルの中で、静的解析プログラムでチェックするか否かを示すルールの情報が設定されている。図６に示した進捗状況判定付加情報３３には、「Ｓｔａｔｉｃ  ａｎａｌｙｚｅ  ｒｕｌｅ：」と題されて、ルール「Ｒｕｌｅ１：ｙｅｓ」、ルール「Ｒｕｌｅ２：ｎｏ」、ルール「Ｒｕｌｅ３：ｙｅｓ」・・・ルール「Ｒｕｌｅ１００００：ｙｅｓ」が示されている。
【００５６】
図３を参照して、ステップＳ４では、進捗状況定義表３２を進捗状況定義管理手段１２で登録して、処理を終了する。すなわち、管理者２が図示しない入力装置によって進捗状況定義表３２を入力すると、入力された進捗状況定義表３２が、進捗状況定義管理手段１２によって進捗状況定義表データベース２５に記憶される。進捗状況定義表３２は、ソフトウエア開発の進捗状況を、自然言語形式で記述した要約と、機械可読形式で記述した状況判定ルールとの組に対して、状況ＩＤという識別子を付与した表である。
【００５７】
図７は、図１に示したソフトウエア進捗状況自動計測装置１に入力される進捗状況定義表３２の一例を示す。図７に示した例では、状況ＩＤ毎に、進捗状況が「要約（自然言語形式）」および「状況判定ルール（機械可読形式）」の２つの形式で定義されている。すなわち要約は、人間に理解しやすい形式である自然言語形式で記述され、状況判定ルールは、機械によって自動的に読み取り可能な形式である機械可読形式で記述される。
【００５８】
図７に示した例では、ソフトウエア開発の進捗状況として、状況ＩＤ「Ｓ１」〜状況ＩＤ「Ｓ５」の５段階が定義されている。状況ＩＤ「Ｓ１」は、たとえばソフトウエアの開発をスタートしてから間がなく、ソフトウエアたとえばソースファイルがファイルとして存在するが、コンパイルするとコンパイルエラーとなる状況である。状況ＩＤ「Ｓ１」の要約は、「コンパイル可能」と記述され、状況ＩＤ「Ｓ１」の状況判定ルールは、「ｉｆ  ｅｘｅｃ（ｃｏｍｐｉｌｅｒ１，Ｍ）  ＆  ｓｉｚｅ（“ｃｏｍｐｉｌｅ．ｌｏｇ”）  ＞  ０  ＆  ｇｒｅｐ（”Ｃｏｍｐｉｌｅ  ＯＫ”，  “ｃｏｍｐｉｌｅ．ｌｏｇ”）  ＝＝  ｔｒｕｅ」と記述されている。状況ＩＤ「Ｓ１」の状況判定ルールを意訳すると、「もし、コンパイラｃｏｍｐｉｌｅｒ１によってＭが実行されることに成功し、かつ、コンパイラログファイルｃｏｍｐｉｌｅｒ．ｌｏｇが生成されており、かつ、コンパイラログファイルｃｏｍｐｉｌｅ．ｌｏｇの中に狽bｏｍｐｉｌｅ  ＯＫ”なる文字列が存在するのであれば、Ｍはコンパイル可能である。」ということである。この場合、ｃｏｍｐｉｌｅｒ１によるコンパイル結果が成功であれば、成功である旨の記述があるｓｉｚｅが０より大きいログファイルｃｏｍｐｉｌｅｒ．ｌｏｇが生成されるものとしている。
【００５９】
同様に、状況ＩＤ「Ｓ２」について、要約が「リンク可能」、状況判定ルールが「ｉｆ  ｅｘｅｃ（ｌｉｎｋｅｒ１，Ｍ）  ＆  ｓｉｚｅ（“ｌｉｎｋ．ｌｏｇ”）  ＞  ０  ＆  ｇｒｅｐ（”Ｌｉｎｋｅｒ  Ｎｏ  Ｅｒｒｏｒ”，  “ｌｉｎｋ．ｌｏｇ”）  ＝＝  ｔｒｕｅ」と記述され、状況ＩＤ「Ｓ３」について、要約が「計画された単体テストがすべて合格」、状況判定ルールが「ｉｆ  ｅｘｅｃ（ｕｎｉｔ＿ｔｅｓｔｅｒ１，ｔｅｓｔ＿ｃａｓｅ＿ｐｌａｎｎｅｄ１，Ｍ）  ＆  ｇｒｅｐ（“ｕｎｉｔ＿ｔｅｓｔ．ｌｏｇ” ，  ”Ｕｎｉｔ  Ｔｅｓｔ  Ｓｕｃｃｅｓｓ”）  ＝＝  ｔｒｕｅ」と記述され、状況ＩＤ「Ｓ４」について、要約が「計画された所定のカバレッジ率をクリア」、状況判定ルールが「ｉｆ  ｅｘｅｃ（ｃｏｖｅｒａｇｅ＿ｃａｌｃｕｌａｔｏｒ１，ｔｅｓｔ＿ｃａｓｅ＿ｉｍｐｒｏｖｅＣｏｖｅｒａｇｅ１，Ｍ）  ＆  ｇｅｔ＿ｃｏｖｅｒａｇｅ（“ｃｏｖｅｒａｇｅ．ｌｏｇ”）  ＞＝  ＰＬＡＮＮＥＤ＿ＭＩＮ＿ＣＯＶＥＲＡＧＥ」と記述され、状況ＩＤ「Ｓ５」について、要約が「計画された所定の静的解析項目をクリア」、状況判定ルールが「ｉｆ  ｅｘｅｃ（ｓｔａｔｉｃ＿ａｎａｌｙｚｅｒ１，ｐｌａｎｎｅｄ＿ｃｈｅｃｋ＿ｐｏｉｎｔｓ１，Ｍ）  ＆  ｇｒｅｐ（“ｓｔａｔｉｃ＿ａｎａｌｙｚｅｒ１．ｌｏｇ” ，  ”Ｎｏ  Ｗａｒｎｉｎｇｓ  ＆  Ｅｒｒｏｒｓ”）  ＝＝  ｔｒｕｅ」と記述されている。
【００６０】
このように、進捗状況定義表３２において、１つの進捗状況について、自然言語形式および機械可読形式の両方で定義しているので、以下の効果がある。
（１）進捗状況検索手段１６によってソフトウエアの進捗状況の検索結果を表示する際、人間が理解しやすい形式つまり自然言語形式による表示を出力することができ、人間にとってわかりやすい。
（２）進捗状況判定手段１４によってソフトウエアの進捗状況を判定する際、機械たとえばコンピュータに理解させることができる形式つまり機械可読形式を用いているので、ソフトウエアの進捗状況判定を自動的に行うことができ、進捗状況判定を省力化することができる。
【００６１】
図８は、図１に示したソフトウエア進捗状況自動計測装置１が実行するソフトウエア登録処理を示すフローチャートである。たとえば開発者３がソフトウエア進捗状況自動計測装置１の図示しない入力装置によって、ソフトウエア登録処理の開始を指示するとステップＴ１に移る。
【００６２】
ステップＴ１では、ソフトウエア３１をソフトウエア管理手段１１へ登録する。すなわち、開発者３が図示しない入力装置によって入力したソフトウエア３１が、ソフトウエア管理手段１１によって  ソフトウエアデータベース２１に記憶される。ソフトウエア管理手段１１は、ソフトウエアデータベース２１への登録対象であるソフトウエア３１たとえばソースファイルまたはオブジェクトファイルを登録する。ステップＴ２では、ソフトウエア管理手段１１は、進捗状況判定手段１４へソフトウエアを送る。すなわち、ソフトウエア管理手段１１は、ソフトウエアデータベース２１に登録したソフトウエアをソフトウエアデータベース２１から読み出して、進捗状況判定手段１４へ送る。
【００６３】
ステップＴ３では、進捗状況判定手段１４は、進捗状況定義管理手段１２へ、進捗状況定義表および進捗状況判定付加情報の取得要求を送る。ここでは、ステップＴ２でソフトウエア管理手段１１から受け取ったソフトウエアの進捗状況を判定するために必要な情報つまり進捗状況定義表および進捗状況判定付加情報を得るための前準備を行っている。ステップＴ４では、進捗状況定義管理手段１２は、要求された進捗状況定義表および進捗状況判定付加情報を進捗状況判定手段１４へ送る。
【００６４】
ステップＴ５では、進捗状況判定手段１４は、ソフトウエア、進捗状況定義表、および進捗状況判定付加情報から、「進捗状況判定処理」によって、進捗状況を判定する。以下このソフトウエアのソフトウエア名をＭとする。すなわち、図９に示す進捗状況判定処理によって、ソフトウエア管理手段１１から受け取ったソフトウエアの進捗状況を、進捗状況定義管理手段１２から受け取った進捗状況定義表および進捗状況判定付加情報に基づいて判定する。ステップＴ６では、進捗状況判定手段１４は、進捗状況判定結果を進捗状況蓄積手段１５へ送る。ステップＴ７では、進捗状況蓄積手段１５は、進捗状況判定結果を進捗状況管理表へ登録して処理を終了する。すなわち、進捗状況蓄積手段１５は、進捗状況判定手段１４から受け取った進捗状況判定結果を、進捗状況管理表データベース２４に記憶される進捗状況管理表に記憶する。
【００６５】
図９は、図８に示したフローチャートで用いられる進捗状況判定処理を示すフローチャートである。図８のステップＴ５から呼び出されたときに、ステップＵ１に移る。
【００６６】
ステップＵ１では、変数ｉに「１」を代入する。ステップＵ２では、ソフトウエアＭが状況Ｓｉであるかどうかを「進捗状況定義表の状況ルール」に記載の処理を実行し、条件が成立するかしないかを得る。すなわち、進捗状況判定手段１４は、進捗状況Ｓｉに対応する状況ルールに記載されている状況取得プログラムを、状況取得プログラムデータベース２２から読み出し、読み出した状況取得プログラムをソフトウエアＭに対して実行する。実行結果が、進捗状況Ｓｉに対応する状況ルールに記載されている条件を満たすか否かを判定する。
【００６７】
ステップＵ３では、条件が成立し、かつ、変数ｉが進捗状況定義表に含まれる状況ＩＤの個数より小さいか否かを判断する。「｜Ｓ｜」は、進捗状況定義表に含まれる状況ＩＤの個数を示す。条件が成立し、かつ、変数ｉが状況ＩＤの個数より小さい場合は、ステップＵ７に進み、条件が成立しないか、または、変数ｉが状況ＩＤの個数以上の場合は、ステップＵ４に進む。ステップＵ４では、変数ｉが状況ＩＤの個数に一致するか否かを判定する。変数ｉが状況ＩＤの個数に一致する場合、ステップＵ６に進み、変数ｉが状況ＩＤの個数に一致しない場合、ステップＵ５に進む。
【００６８】
ステップＵ５では、ソフトウエアＭの進捗状況は「Ｓｉ−１」であるとして終了する。ステップＵ６では、ソフトウエアＭの進捗状況は「Ｓｉ」であるとして終了する。ステップＵ７では、変数ｉを「１」増やして、ステップＵ２に戻る。
【００６９】
このように、図９に示した進捗状況判定処理では、ソフトウエアの進捗状況を、状況ＩＤ「Ｓ１」から順番に状況ＩＤ「Ｓ２」、 状況ＩＤ「Ｓ３」、・・・について判定していき、条件が不成立となるか、または、最後の状況ＩＤまで判定が到達するかのいずれかで、最後に条件が成立した状況ＩＤ、すなわち条件が成立する状況ＩＤ「Ｓｉ」のうち、変数ｉが最大の状況ＩＤを、ソフトウエアＭの進捗状況と判定する。
【００７０】
図１０は、図１に示した進捗状況管理表データベース２４に記憶される進捗状況管理表３７の一例を示す。進捗状況管理表３７は、ソフトウエア名毎に、ソフトウエアのバージョンと状況とを対応付けた表である。ソフトウエア名は、たとえばソースファイル名あるいはオブジェクトファイル名であり、状況は、進捗状況を示す状況ＩＤである。図１０に示した例では、ソフトウエア名「Ｍ１」については、バージョンは「０．１」であり、状況は「Ｓ１」である。ソフトウエア名「Ｍ２」については、バージョンは「１．０」であり、状況は「Ｓ２」であり、ソフトウエア名「Ｍ３」については、バージョンは「１．１」であり、状況は「Ｓ３」である。
【００７１】
このように、ソフトウエアの登録時点で、そのソフトウエアに関連するすべての状況取得プログラムを実行して、進捗状況定義表に従って、ソフトウエアの進捗状況を判定し、その判定結果を進捗状況管理表に登録しておくので、進捗状況管理表で管理されるソフトウエアの進捗状況は常に最新である。したがって、従来の技術での「進捗状況が最新とならない場合がある」という課題を解決することができる。
【００７２】
図１１は、図１に示したソフトウエア進捗状況自動計測装置１が実行する開発進捗状況検索処理を示すフローチャートである。たとえば管理者２がソフトウエア進捗状況自動計測装置１の図示しない入力装置によって、開発進捗状況検索処理の開始を指示するとステップＶ１に移る。
【００７３】
ステップＶ１では、開発進捗状況の検索要求を進捗状況検索手段１６で入力する。すなわち、管理者２が図示しない入力装置によって入力した検索条件が、その入力装置から進捗状況検索手段１６に送られる。ステップＶ２では、進捗状況検索手段１６は、進捗状況管理表から検索要求で指定されたソフトウエアの進捗状況を取り出し、表示して終了する。すなわち、進捗状況検索手段１６は、入力装置から受け取った検索条件が示すソフトウエアの進捗状況を、進捗状況管理表データベース２４に記憶される進捗状況管理表を検索し、検索した進捗状況を図示しない表示装置に表示する。検索条件は、たとえばソフトウエア名、またはソフトウエア名およびそのソフトウエアのバージョンである。
【００７４】
図１２は、図１に示したソフトウエア進捗状況自動計測装置１が表示する進捗状況表示の一例３８を示す。図１２に示した進捗状況表示では、検索対象のソフトウエアのソフトウエア名およびそのバージョンに対応して、状況ＩＤと要約とが表示される。ソフトウエア名は、たとえばソースファイル名あるいはオブジェクトファイル名である。図１２に示した進捗状況表示には、ソフトウエア名「Ｍ１」およびバージョンは「０．１」について、状況ＩＤ「Ｓ１」および要約「コンパイル可能」と示され、ソフトウエア名「Ｍ２」およびバージョン「１．０」について、状況ＩＤ「Ｓ２」および要約「リンク可能」と示され、ソフトウエア名「Ｍ３」およびバージョン「１．１」について、状況ＩＤ「Ｓ３」および要約「計画された単体テストがすべて合格」が示されている。
【００７５】
このように、まず、開発対象プログラムであるソフトウエアに対して予め定める処理を実行する開発支援プログラムたとえば状況取得プログラムおよび開発の進捗度つまり進捗状況を判定するための進捗判定条件を表す進捗判定条件情報たとえば進捗状況定義表を予め記憶装置に記憶しておき、開発対象プログラムが入力されると、その開発対象プログラムに関連する開発支援プログラムを記憶装置から読み出して、その開発対象プログラムに対して実行し、その実行結果が示す進捗度を、その開発対象プログラムに関連する進捗判定条件情報に従って判定し、判定した進捗度を表す進捗度情報を記憶装置に記憶する。さらに検索対象の開発対象プログラム識別情報たとえばソフトウエア名が入力されると、記憶装置に記憶された進捗度情報から、検索対象の開発対象プログラム識別情報が示す開発対象プログラムの進捗度情報を抽出し、抽出した進捗度情報を出力するので、入力された開発対象プログラムであるソフトウエアに対してそのソフトウエアに関連するすべての開発支援プログラムを実行し、そのソフトウエアに対応する進捗判定条件で進捗度つまり進捗状況を判定することができ、ソフトウエアに要求される品質に応じた進捗判定条件を用いて最新の進捗状況を管理することができる。したがって、ソフトウエアの試験項目が多種多様、もしくは頻繁に変更されるような場合でも、すなわちソフトウエア開発の進捗状況を判断するための進捗判定条件を変更しなければならない場合でも容易に対応することができるので、適切なソフトウエア進捗管理を実現することができ、要求される品質を確保しつつ、納期遵守および開発コスト削減を図ることができる。
【００７６】
さらに、進捗判定条件情報たとえば進捗状況定義表は、その進捗判定条件情報に関連する開発対象プログラムであるソフトウエアの進捗度つまり進捗状況を判定するために実行すべき開発支援プログラムたとえば状況取得プログラムを識別するための開発支援プログラム識別情報たとえば状況取得プログラム名を含み、進捗判定条件情報が入力される際、その進捗判定条件情報に関連する開発対象プログラムの開発対象プログラム識別情報たとえばソフトウエア名とともに入力され、入力された進捗判定条件情報と開発対象プログラム識別情報とが対応付けられて記憶手段である記憶装置によって記憶されるので、開発対象プログラムが開発対象プログラム識別情報とともに入力されると、その開発対象プログラムに関連する進捗判定条件情報と開発支援プログラムとを特定することができる。したがって、開発対象プログラムの品質に応じて、進捗判定条件と実行すべき開発支援プログラムとを設定することができる。
【００７７】
さらにまた、開発支援プログラムたとえば状況取得プログラムを入力する際、その開発支援プログラムを実行するための実行条件を表す実行条件情報たとえば進捗状況判定付加情報が入力され、開発支援プログラムとともに記憶手段である記憶装置によって記憶され、その開発支援プログラムが実行される際、その開発支援プログラムに関連する実行条件情報が記憶手段から読み出され、読み出された実行条件情報が示す実行条件で実行されるので、パラメータが必要な開発支援プログラムのパラメータを事前に設定しておくことができる。したがって、開発対象プログラムであるソフトウエアを入力する度にパラメータを設定する必要がない。
【００７８】
さらに、予め定める処理を実行する開発支援プログラムたとえば状況取得プログラムは、少なくともコンパイラおよびリンカのうちのいずれか１つを含む言語開発支援プログラム、ならびに少なくとも単体テストプログラムおよび静的解析プログラムのうちのいずれか１つを含む試験支援プログラムを含むので、開発対象プログラムであるソフトウエアの開発に一般的に用いられる開発支援プログラムを用いることができる。したがって、汎用性の高い進捗管理を行うことができる。
【００７９】
本発明の実施の他の形態である進捗管理方法の処理工程を示すフローチャートは、図３に示した進捗状況定義処理、図８に示したソフトウエア登録処理、図９に示した進捗状況判定処理、および図１１に示した開発進捗状況検索処理のフローチャートによって示される。進捗判定条件記憶工程は、たとえば図３に示した進捗状況定義処理であり、進捗状況記憶工程は、たとえば図８に示したソフトウエア登録処理および図９に示した進捗状況判定処理であり、検索出力工程は、たとえば図１１に示した開発進捗状況検索処理である。
【００８０】
このように、まず、開発対象プログラムであるソフトウエアに対して予め定める処理を実行する開発支援プログラムたとえば状況取得プログラムおよび開発の進捗度つまり進捗状況を判定するための進捗判定条件を表す進捗判定条件情報たとえば進捗状況定義表を予め記憶装置に記憶しておき、開発対象プログラムが入力されると、その開発対象プログラムに関連する開発支援プログラムを記憶装置から読み出して、その開発対象プログラムに対して実行し、その実行結果が示す進捗度を、その開発対象プログラムに関連する進捗判定条件情報に従って判定し、判定した進捗度を表す進捗度情報を記憶装置に記憶する。さらに、検索対象の開発対象プログラム識別情報たとえばソフトウエア名が入力されると、記憶装置に記憶された進捗度情報から、検索対象の開発対象プログラム識別情報が示す開発対象プログラムの進捗度情報を抽出し、抽出した進捗度情報を出力するので、入力された開発対象プログラムであるソフトウエアに対してそのソフトウエアに関連するすべての開発支援プログラムを実行し、そのソフトウエアに対応する進捗判定条件で進捗度である進捗状況を判定することができ、ソフトウエアに要求される品質に応じた進捗判定条件を用いて最新の進捗状況を管理することができる。したがって、ソフトウエアの試験項目が多種多様、もしくは頻繁に変更されるような場合でも、すなわちソフトウエア開発の進捗状況を判断するための進捗判定条件を変更しなければならない場合でも容易に対応することができるので、適切なソフトウエア進捗管理を実現することができ、要求される品質を確保しつつ、納期遵守および開発コスト削減を図ることができる。
【００８１】
図１に示したソフトウエア進捗状況自動計測装置１の機能は、進捗管理装置であるソフトウエア進捗状況自動計測装置１の図示しない中央処理装置が図示しない記憶装置に記憶されるプログラムを実行することによって実現される。さらに本発明の実施の他の形態である進捗管理方法の処理工程も同じプログラムを実行することによって処理される。すなわち、記憶装置に記憶されるプログラムは、コンピュータをソフトウエア進捗状況自動計測装置１の各手段として機能させ、コンピュータに進捗管理方法の各工程を実行させる。したがって、コンピュータを進捗管理装置であるソフトウエア進捗状況自動計測装置１の各手段として機能させるためのプログラムとして提供することができる。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施の一形態であるソフトウエア進捗状況自動計測装置１の構成を模式的に示す。
【図２】図１に示したソフトウエア進捗状況自動計測装置１の利用形態の一例を示す。
【図３】図１に示したソフトウエア進捗状況自動計測装置１が実行する進捗状況定義処理を示すフローチャートである。
【図４】図１に示したソフトウエア進捗状況自動計測装置１に入力される状況取得プログラム名・ファイル名対応表３４の一例を示す。
【図５】図１に示した状況取得プログラム名・パス付きファイル名対応表データベース２３に記憶される状況取得プログラム名・パス付きファイル名対応表３６の一例を示す。
【図６】図１に示したソフトウエア進捗状況自動計測装置１に入力される進捗状況判定付加情報３３の一例を示す。
【図７】図１に示したソフトウエア進捗状況自動計測装置１に入力される進捗状況定義表３２の一例を示す。
【図８】図１に示したソフトウエア進捗状況自動計測装置１が実行するソフトウエア登録処理を示すフローチャートである。
【図９】図８に示したフローチャートで用いられる進捗状況判定処理を示すフローチャートである。
【図１０】図１に示した進捗状況管理表データベース２４に記憶される進捗状況管理表３７の一例を示す。
【図１１】図１に示したソフトウエア進捗状況自動計測装置１が実行する開発進捗状況検索処理を示すフローチャートである。
【図１２】図１に示したソフトウエア進捗状況自動計測装置１が表示する進捗状況表示の一例３８を示す。
【符号の説明】
【００８３】
１  ソフトウエア進捗状況自動計測装置
１１  ソフトウエア管理手段
１２  進捗状況定義管理手段
１３  状況取得プログラム管理手段
１４  進捗状況判定手段
１５  進捗状況蓄積手段
１６  進捗状況検索手段
２１  ソフトウエアデータベース
２２  状況取得プログラムデータベース
２３  状況取得プログラム名・パス付きファイル名対応表データベース
２４  進捗状況管理表データベース
２５  進捗状況定義表データベース
３１  ソフトウエア
３２  進捗状況定義表
３３  進捗状況判定付加情報
３４  状況取得プログラム名・ファイル名対応表
３５  状況取得プログラム
３６  状況取得プログラム名・パス付きファイル名対応表
３７  進捗状況管理表
３８  進捗状況表示の一例
【図１】
2007280305.tif 000003
【図２】
2007280305.tif 000004
【図３】
2007280305.tif 000005
【図４】
2007280305.tif 000006
【図５】
2007280305.tif 000007
【図６】
2007280305.tif 000008
【図７】
2007280305.tif 000009
【図８】
2007280305.tif 000010
【図９】
2007280305.tif 000011
【図１０】
2007280305.tif 000012
【図１１】
2007280305.tif 000013
【図１２】
2007280305.tif 000014