次に、本発明を実施する形態について図面を参照して詳細に説明する。
以下の実施形態においては、上記した、登録されたコメントを蓄積し、係るコメントを閲覧可能なように提供するシステムの代表例として、不具合管理システムについて説明する。しかしながら、以下の実施の形態に記載されている構成は単なる例示であり、本願発明の技術範囲はそれらには限定されず、例えば上記した各種コミュニケーションシステム等にも適用可能である。
<第1の実施形態>
以下、本発明の第1の実施形態について、図1を参照して説明する。図1は、本発明の第1の実施形態に係る不具合管理システムの機能的な構成を例示するブロック図である。
なお、本実施形態における不具合管理システムは、ソフトウェア・プログラム(コンピュータ・プログラム)に対する不具合(バグ)を管理するものとして、以下の説明ではバグ管理システムと称する場合がある。
本実施形態におけるバグ管理システム100は、入出力部101、バグ関連データ処理部102、及び、バグ関連情報記憶部103を有し、これらの構成要素の間は、任意の通信手段等により相互に通信可能に接続されている。また、バグ管理システム100は、任意の通信ネットワーク104を介して、他の情報処理装置105等と通信可能に接続されてもよい。
また、本実施形態におけるバグ管理システム100は、例えば、1以上のコンピュータ等の情報処理装置、及び、当該情報処理装置において実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)により構成されてもよい。また、本実施形態におけるバグ管理システム100は、周知の仮想化技術を用いて仮想環境に構築された、仮想的なコンピュータ等により構成されてもよい。本実施形態におけるバグ管理システム100を実現可能なハードウェア及びソフトウェア構成については、後述する。
次に、本実施形態におけるバグ管理システム100の構成要素について説明する。なお、図1に例示する構成要素の区分は、各構成要素の機能に基づく具体例である。このため、本実施形態におけるバグ管理システム100は、図1に例示する構成要素の機能を実現可能な限り、図1とは異なる任意の構成を採用してよい。
入出力部101は、バグ情報等の各種入力データの入力を受け付けると共に、バグ管理システム100において管理するバグに関連した各種情報を出力する。
入出力部101は、例えば、通信ネットワーク104を介して接続された情報処理装置105との間で、上記各種入出力データを送受信してもよい。この場合、入出力装置101aは、例えば、上記通信ネットワーク104との間でデータを送受信するための、ネットワークインタフェースを含んでもよい。
また、入出力部101は、図示しないユーザや管理者(以下ユーザ等と称する場合がある)との間で、上記各種データの入出力を実行してもよい。この場合、入出力装置101aは、キーボード、マウス、ディスプレイ、プリンタ等、適宜適切な周知の入出力機器を含んでもよい。
バグ関連データ処理部102は、バグ情報登録部102a、コメント情報登録部102b、サマリ情報登録部102c、及び、表示データ生成部102dを有する。
バグ情報登録部102aは、入出力部101を介して特定のバグに関する各種情報の入力を受け付け、係る各種情報を後述するバグ関連情報記憶部103に蓄積する。上記バグに関する各種情報は、バグ管理システム100において、特定のバグに対する属性を設定する情報として扱われる。上記バグに関する各種情報の具体例については後述する。
コメント情報登録部102bは、入出力部101を介して特定のバグに関するコメント情報の入力を受け付け、係るコメント情報を後述するバグ関連情報記憶部103に登録(蓄積)する。上記コメント情報の具体例については後述する。
サマリ情報登録部102cは、入出力部101を介して特定のバグに関するサマリ情報の入力を受け付け、係るサマリ情報を後述するバグ関連情報記憶部103に登録(蓄積)する。
サマリ情報は、特定のバグに関して登録されたコメント情報を要約して表示することが可能な情報を有する。係るサマリ情報は、そのような情報として、1以上のコメント情報に対する要約を表す情報と、当該コメント情報の重要度を表す情報と、当該コメント間の関係性を表す情報とを有してもよい。本実施形態においては、係るサマリ情報に基づいて、要約されたコメント情報を表示する表示データが生成される。上記サマリ情報の具体例については後述する。
表示データ生成部102dは、後述するバグ関連情報記憶部103に蓄積された、バグに関する各種情報、バグに関するコメント情報、及び、バグに関するサマリ情報等を参照して、表示データを生成する。バグ管理システム100は、上記表示データを、入出力部101を介して外部の情報処理装置105等に送信してもよい。また、バグ管理システム100は、上記表示データを、入出力部101における入出力装置101aを介して、図示しないユーザ等に提示してもよい。
なお、本実施形態において、上記表示データの形式は、例えば、HTML(HyperText Markup Language)や、XML(Extensible Markup Language)等の、文書構造を表現可能なデータ形式であってもよい。また、上記表示データには、例えば、上述した文書構造を表現可能なデータに加えて、係る文書構造を表示した際に、文書の一部の表示状態を操作可能とする、周知のスクリプト言語による実装コード等を含めてもよい。
バグ関連情報記憶部103は、バグ情報保持部103a、コメント情報保持部103b、及び、サマリ情報保持部103cを有する。バグ関連情報記憶部103は、バグ管理システム100に入力された各種情報を蓄積する記憶領域である。バグ関連情報記憶部103は、例えば、任意のストレージシステムや、データベースシステムにより構成してもよい。
バグ情報保持部103aは、上記バグ情報登録部102aにおいて入力データとして受け付けた、特定のバグに関する各種情報を蓄積する。
コメント情報保持部103bは、上記コメント情報登録部102bにおいて入力データとして受け付けた、特定のバグに関するコメント情報を蓄積する。
サマリ情報保持部103cは、上記サマリ情報登録部102cにおいて入力データとして受け付けた、特定のバグに関するサマリ情報を蓄積する。
なお、上記バグ情報保持部103a、コメント情報保持部103b、及び、サマリ情報保持部103cが蓄積する情報は、それぞれ、バグ関連情報記憶部103を構成する記憶領域の一部に記憶される。これらの情報を記憶する具体的な方法は、バグ関連情報記憶部103の構成に応じて適宜適切に選択してよい。このため、例えば、これらの情報をデータベースのレコードとして記憶してもよく、任意のファイルシステムにおけるファイルとして記憶してもよい。
通信ネットワーク104は、バグ管理システム100と、他の情報処理装置105等との間を通信可能に接続する、任意の通信回線である。本実施形態においては、通信ネットワーク104として、インターネット等の広域通信網を採用してもよく、LAN(Local Area Network)等の構内通信網を採用してもよい。
情報処理装置105は、上記通信ネットワーク104を介して、バグ管理システム100に対してアクセスする、任意のコンピュータ等の情報処理装置である。情報処理装置105は、入出力装置105a、及び、表示装置105bを有してもよい。
入出力装置105aは、通信ネットワーク104との間で各種情報を送受信する送受信装置を含んでもよく、また、図示しないユーザ等との間で各種情報を入出力する、適宜適切な周知の入出力機器を含んでもよい。
本実施形態においては、図示しないユーザ等は、入出力装置105aを用いて、バグ管理システム100に対して上記バグに関する各種情報、特定のバグに関するコメント情報、及び、特定のバグに関するサマリ情報等を入力することができる。
また、情報処理装置105は、バグ管理システム100から受信した表示データを、表示装置105bに表示可能な形式に変換し、係る変換した表示データを表示装置105bに表示することが可能である。
次に、上記のように構成された本実施形態におけるバグ管理システム100の機能について説明する。
本実施形態におけるバグ管理システム100は、上記したように、特定の開発対象(例えば、ソフトウェアプログラム等)において発生した不具合(バグ)に関する情報を管理し、当該開発対象のバグの解決に必要な調査情報等を、ユーザ等の間で共有可能とする。
本実施形態におけるバグ管理システム100は、係る調査情報の共有のため、例えば、図2に例示するようなバグ一覧画面201を提供する。係るバグ一覧画面は、例えば以下のような処理によって生成され、表示される。
例えば、図示しないユーザ等が、バグ管理システム101に対して、特定の開発対象に対するバグに関する情報へのアクセスを要求する。係る要求に対して、表示データ生成部102dは、バグ関連情報記憶部103に蓄積された各種情報を収集し、上記バグ一覧画面201を構成する表示データを生成する。
入出力部101は、上記生成された表示データを、通信回線104を介して情報処理装置105に送信する。情報処理装置105は、受信した表示データに基づいて、バグ一覧画面201を表示装置105bに表示する。なお、以下説明するバグ管理システム100の動作において、上記表示データの生成から表示に至る各処理は共通するものとしてよい。
図2に例示するバグ一覧画面201は、開発対象を識別可能な名称を表すプロジェクト(図2における符号202)と、当該開発対象に対して登録されたバグの一覧(図2における符号203)、及び、各種操作ボタン(符号204乃至符号206)を有する。なお、係る画面の構成要素は任意に選択して良く、バグ一覧画面は他の構成要素を表示してもよい。
図2に例示する具体例においては、ユーザ等がプロジェクト202として選択した名称(図においては「AAAA」)により識別される開発対象に対するバグ一覧203が表示される。なお、図示しないユーザ等は、他の開発対象を識別する名称を選択することにより、係る開発対象に対するバグの一覧を表示することも可能である。
図2に例示するバグ一覧203には、特定のバグを一意に識別可能なバグID、当該バグに対する優先度、当該バグの対応状況、当該バグに対する情報の最終更新日、及び、当該バグの概要(タイトル)等が表示される。なお、バグ一覧203には、上記以外の項目を表示してもよい。
本実施形態においては、例えば、図示しないユーザ等が、バグ一覧203に表示されている個別のバグID等を選択することにより、当該バグに対する個別の詳細情報を閲覧することが可能である。バグ管理システム100は、上記したような個別のバグに関する詳細情報を表示する画面として、例えば図3に例示するような個別バグ情報閲覧画面(図3における符号301)を表示可能な、表示データを提供する。
具体的な動作としては、例えば、図示しないユーザ等が、情報処理装置105におけるキーボードやマウス等を用いて、バグ一覧203に表示されている特定のバグを選択する。情報処理装置105は、係る選択情報をバグ管理システム100に、通信ネットワーク104を介して送信する。上記要求を受信したバグ管理システム100においては、表示データ生成部102dが、バグ関連情報記憶部103に蓄積された各種情報を収集して、個別バグ情報閲覧画面301を構成する表示データを生成する。入出力部101は、上記生成された表示データを、通信回線104を介して情報処理装置105に送信する。情報処理装置105は、受信した表示データに基づいて、個別バグ情報閲覧画面301を表示装置105bに表示する。
本実施形態に置いては、図示しないユーザ等が、バグ一覧画面201における各種操作ボタン(符号204乃至符号206)を押下することにより、本実施形態におけるバグ管理システム100が提供する、各種機能を利用可能である。
例えば、本実施形態におけるバグ管理システム100は、ユーザ等がボタン204を押下した場合、新規のバグの登録画面(不図示)を提供してもよい。また、ユーザ等がボタン205を押下した場合、特定のバグを検索する検索画面(不図示)を提供してもよい。また、ユーザ等がボタン206を押下した場合、バグ管理システム100に対する各種設定画面を表示してもよい。なお、本実施形態において、これらの画面については適宜適切な構成を採用してよいため、詳細な説明は省略する。
図3に例示する個別バグ情報閲覧画面301は、個別のバグに関する各種情報(符号302、以下個別バグ情報と称する場合がある)と、個別のバグに関するコメント一覧(符号303、以下コメント一覧と称する場合がある)と、コメント登録するフォーム(符号304、以下コメント登録部と称する場合がある)と、新規サマリを登録するボタン(符号305、以下サマリ登録ボタンと称する場合がある)とを表示する。
個別バグ情報302に表示される情報は、バグ管理システム100におけるバグ情報保持部103aに保持されており、表示データ生成部102dは、それらの情報を参照して個別バグ情報閲覧画面301を構成する表示データを生成する。
個別バグ情報302は、例えば、上記バグ一覧画面201に表示される各種情報に加えて、当該特定のバグが登録された登録日に関する情報、当該バグを報告した報告者に関する情報、当該バグの調査担当者に関する情報、及び、当該バグの重要度に関する情報等を表示してもよい。
なお、個別バグ情報302は、上記以外の他の情報を表示してもよい。なお、これらの情報は、例えば、ユーザ等が、バグ管理システム100に対して新規バグを登録した際に、当該バグに関連する情報として合わせて登録してもよい。
本実施形態において、バグ管理システム100は、例えば、個別バグ情報302に表示される情報を編集可能な編集画面(不図示)等を、ユーザ等に対して提供してもよい。
コメント一覧303は、特定のバグに対する調査過程において登録されたコメントを一覧として表示する。コメント一覧303に表示される情報は、バグ管理システム100におけるコメント情報保持部103bに保持されており、表示データ生成部102dは、それらの情報を参照して個別バグ情報閲覧画面301を構成する表示データを生成する。
後述するサマリ情報が登録されていない場合、特定のバグに対して登録されたコメントは、それらのコメントが登録された時系列に沿って、コメント一覧303に一覧形式で表示されてもよい。この場合において、コメント一覧303には、コメントを一意に特定可能なコメント番号と、当該コメント番号に対応するコメントとが関連付けられて表示される。
サマリ情報が登録された場合のコメント一覧303の表示については、後述する。
コメント登録部304は、特定のバグに対するコメントを記入する登録フォーム304aと、登録フォーム304aに記載されたコメントを登録する処理を実行する、登録ボタン304bとを表示する。なお、コメント登録部304は、上記以外の構成要素を表示してもよい。
コメントを登録する具体的な動作としては、例えば、図示しないユーザ等が、個別バグ情報閲覧画面301に表示されている特定のバグに対するコメントを登録フォーム304aに記入し、登録ボタン304bを押下する。
登録ボタン304bが押下された際、情報処理装置105は、記入されたコメントの情報を必要に応じて適切な形式に変換し、通信回線104を介してバグ管理システム100に送信する。
バグ管理システム100における入出力部101は、上記送信されたコメント情報を受信し、コメント情報登録部102bに通知する。コメント情報登録部102bは、必要に応じて、通知されたコメント情報を解析してコメント本文のデータを抽出し、そのコメント本文のデータをコメント情報保持部103bに登録してもよい。
なお、上記説明したバグ情報保持部103a及びコメント情報保持部103bは、例えば、図4に例示するように、それぞれ特定のバグを識別可能なバグIDに関連付けて、当該バグに関する各種情報と、コメント情報とを保持してもよい。
コメント情報保持部103bは、図4に例示するように、当該バグについて登録されたコメントを、当該コメントを特定可能なコメント番号と関連付けて保持する。この場合において、係るコメント番号は、コメントが登録された順番で順次増加するように構成してもよい。このように構成した場合、最後に登録されたコメントに対するコメント番号が、最も大きな値となる。
図4に例示する構成では、バグIDに関してインデックス401が設けられており、バグ関連情報記憶部103は、必要に応じて当該インデックス401を参照することにより、特定のバグIDに関して登録された各種情報やコメント等を参照してもよい。なお、バグ情報保持部103a及びコメント情報保持部103bの構成は、図4に例示する構成に限定されず、任意の構成を採用してよい。
サマリ登録ボタン305は、特定のバグに対して登録された上記コメントに対する、サマリ情報を登録する、サマリ入力画面501(後述)を表示するボタンである。
サマリ入力画面501を表示する具体的な処理の流れは、例えば、以下の通りである。
例えば、図示しないユーザ等が個別バグ情報閲覧画面301に表示されているサマリ登録ボタン305を押下する。サマリ登録ボタン305が押下された際、情報処理端末105は、サマリ入力画面501の表示を要求する情報を、通信ネットワーク104を介して、バグ管理システム100に送信する。
上記要求を受信したバグ管理システム100においては、表示データ生成部102dが、バグ関連情報記憶部103に蓄積された各種情報を収集して、サマリ入力画面501を構成する表示データを生成する。
なお、表示データ生成部102dは、例えば、コメント情報保持部103bを参照して、上記要求を受信した際に登録されている最後のコメントに対するコメント番号を取得する。そして、表示データ生成部102dは、上記取得したコメント番号を、サマリ入力画面501において入力される新規のサマリ情報に対するサマリ範囲データとして含むよう、上記表示データを生成する。表示データ生成部102dは、例えば、上記表示データに対して、係るサマリ範囲データを画面に表示されないデータとして埋め込んでもよい。
なお、上記サマリ範囲データは、後述するサマリ情報の入力が開始された際に、上記コメント情報保持部103bに登録されている最後のコメントを表す。
入出力部101は、上記生成された表示データを、通信回線104を介して情報処理装置105に送信する。情報処理装置105は、受信した表示データに基づいて、個別バグ情報閲覧画面301を表示装置105bに表示する。
図5に例示するように、サマリ入力画面501は、新規サマリを登録するフォーム(符号502、以下「サマリ登録部」と称する場合がある)を表示する。サマリ入力画面501は、また、上記説明した個別バグ情報閲覧画面301と同様、個別バグ情報302と、コメント一覧303とを表示してもよい。
サマリ登録部502は、特定のバグに対して登録されたコメントを要約するサマリ情報を記入するサマリ登録フォーム502aと、サマリ登録フォーム502aに記載されたサマリを登録する処理を実行する、サマリ登録ボタン502bとを表示する。なお、サマリ登録部502は、上記以外の構成要素を表示してもよい。
以下、本実施形態におけるサマリの情報、及び、サマリを登録した場合のバグ管理システム100の動作について概要を説明する。
本実施形態におけるサマリ情報は、特定のバグの調査過程において登録された1以上のコメントについて、コメントの重要度、コメント間の関係性、及び、複数のコメントをまとめたコメントグループに対する部分的要約を有する。なお、上記コメントの重要度、コメント間の関係性は、複数のコメントをまとめたコメントグループについて設定することも可能である。
このようなサマリ情報が登録された場合、本実施形態におけるバグ管理システム100は、サマリ情報において指定されたコメントを、部分的要約とあわせて表示する表示データを生成する。なお、バグ管理システム100は、サマリ情報を登録する前に登録されたコメントについて、サマリ情報に指定されたコメントのみを表示するよう、上記表示データを生成してもよい。
バグ管理システム100は、上記サマリ情報に設定されたコメント間の関係性に基づいて、サマリ情報に設定されたコメントを表示する表示データを生成する。本実施形態においては、そのようなコメント間の関係性を表す構造として、木(ツリー)構造を採用する。
また、バグ管理システム100は、上記サマリ情報において重要度が低い(非重要)と設定されたコメントについては、部分的要約のみを表示してコメント本文は非表示状態とする表示データを生成する。その一方、通常の重要度が設定されたコメントについては、部分的要約と共に、コメント本文を表示する表示データを生成する。なお、バグ管理システム100は、必要に応じて、表示状態を切り替えることが可能な表示データを生成してもよい。
なお、バグ管理システム100は、サマリ情報の入力が開始された後(例えば、図3に例示するサマリ登録ボタン305が押下された後)に書き込まれたコメントについては、全てそのまま表示してもよい。また、バグ管理システム100は、サマリ情報が登録された後に書き込まれたコメントについても、そのまま表示してもよい。
以上のようなバグ管理システム100の動作について、以下、具体例を用いて詳細に説明する。
まず、図示しないユーザ等が、例えば、サマリ登録部502におけるサマリ登録フォーム502aにサマリ情報を記入し、サマリ登録ボタン502bを押下する。
サマリ登録ボタン502bが押下された際、情報処理装置105は、記入されたサマリ情報を必要に応じて適切な形式に変換し、通信回線104を介してバグ管理システム100に送信する。この際、上記入力されたサマリ情報とともに、例えば、上記サマリ範囲データも送信してもよい。
バグ管理システム100における入出力部101は、上記送信されたサマリ情報を含むデータを受信し、サマリ情報登録部102cに通知する。サマリ情報登録部102cは、通知されたサマリ情報を含むデータ解析して記入されたサマリの内容(以下、サマリ記述と称する場合がある)を抽出し、そのサマリの内容をバグ関連情報記憶部103におけるサマリ情報保持部103cに登録する。
図6に例示するように、サマリ情報保持部103cは、例えば、特定のバグを識別可能なバグIDに関連付けて、当該バグにサマリ情報を保持してもよい。図6に例示する構成では、バグIDに関してインデックス601が設けられており、バグ関連情報記憶部103は、必要に応じて当該インデックス601を参照することにより、特定のバグIDに関して登録された各種情報やコメント等を参照してもよい。この場合、係るインデックス601と、上記説明した図4におけるインデックス401は、同じインデックスを採用してもよい。
また、サマリ情報保持部103cは、上記送信されたサマリ情報を含むデータを解析し、上記したサマリ範囲データが含まれている場合には、係るサマリ範囲データを、サマリ範囲として記憶してもよい。
なお、図4に例示したバグ情報保持部103a、コメント情報保持部103b、及び、図6に例示したサマリ情報保持部103cは、共通のバグIDに関連付けて統合した形式によりそれぞれのデータを保持してもよい。この場合、例えば、図4に例示するバグ情報、コメント情報の欄に対して、図6に例示するサマリ情報の欄を追加してもよい。
次に、具体例を用いて、サマリ情報登録時の動作について説明する。以下においては、図5に例示する特定のバグ(バグIDがBUG_1)について、サマリ情報が登録される前に、図7に例示するコメントがコメント情報保持部102bに登録されていたものとする。
まず、ユーザ等が、図8に具体例として例示するサマリ記述800を、サマリ情報登録フォーム502aに入力する。
本実施形態におけるサマリ記述800は、図9に概念的に例示するように、コメント情報グループ901と、コメント重要度情報902と、コメント部分要約情報903とを含む、1以上のサマリセット904により構成される。なお、図8及び図9に図示されるサマリ記述800の実体は同一である。即ち、図9における破線は、説明の便宜上、サマリ記述800の記載内容を区分するために図示したものであり、サマリ記述800を構成するものではない。
コメント情報グループ901は、特定のバグについて登録された1以上のコメントをグループとしてまとめたものである。本実施形態においては、サマリ記述800の作成者は、コメント情報グループ毎に、後述するコメント重要度情報902と、コメント部分要約情報903とを設定する。
コメント情報グループ901には、グループに含まれる1つ以上のコメントに対するコメント番号が記載される。また、コメント情報グループ901には、グループに含まれるコメント間の関係性を表す構造を記載可能である。
上記したように、本実施形態においては、コメント間の関係性を表す構造として、木(ツリー)構造を採用する。このため、図9に例示するように、コメント情報グループ901においては、グループに含まれるコメント間の関係性を木構造として表記する記号が記載される。
図9に例示する具体例において、サマリの作成者は、上記した木構造を表記する記号として”,”と、”−>”と、”(”と、”)”を記載可能である。以下、コメント間の関係性を表す木構造を表す上記記号を「コメント構造情報」と称する場合がある。また、コメント間の関係性を表す木構造を、コメント木と称する場合がある。
コメント構造情報”,”は、木構造において同じ階層(根ノードからの深さ)のノードを並べることを表す。図9に例示する具体例において、”1,2”は、コメント番号1のノードと、コメント番号2のノードが同じ階層に配置されることを示す。この場合、コメント番号が記載された順番により、当該コメント番号に対応するコメント本文のデータが表示される。
コメント構造情報”−>”は、木構造において、特定のノードに対する子ノードを作成することを表す。図9に例示する具体例において、”3−>5, 6, 7”という表記は、木構造において、コメント番号3のノードの子ノードとして、コメント番号5、コメント番号6、及び、コメント番号7のノードが配置されることを示す。なお、コメント番号5、コメント番号6、及び、コメント番号7のノードは、コメント構造情報”,”により並べられているため、同じ階層に配置される。
コメント構造情報”(”及び”)”は、あいまいさを回避するために用いられる。図9に示す具体例において、”8−>(9−>11), 10”という表記は、コメント番号8のノードの子ノードとして、” (9−>11)”による部分木を有するノードと、コメント番号10のノードが配置されることを示す。
なお、本実施形態において、コメント構造情報は上記具体例に示した記号に限定されず、任意の記号を採用して良い。
コメント重要度情報902は、コメント情報グループ901に含まれるコメントに対する、重要度を設定する記載である。図9に例示する具体例においては、サマリ記述800の作成者は、コメント重要度情報として記号”+”と、”*”との、いずれかを記載可能である。この場合において、記号”+”は、当該コメント情報グループ901に含まれるコメントが重要ではない(以下「非重要」と称する場合がある)ことを示す。また、記号”*”は、コメント情報グループ901に含まれるコメントが通常の重要度を有する(即ち、詳細を確認すべきコメントである場合)ことを示す。
なお、本実施形態において、コメント重要度情報は上記具体例に示した記号に限定されず、任意の記号を採用して良い。
コメント部分要約情報903は、コメント情報グループ901に含まれるコメントを要約した、部分的な要約の文章を表す。
上記をまとめると、図9に例示する具体例において、ユーザ等は、通常の重要度を有するコメント情報グループに対する部分的要約を入力する際には、記号”*”を記入する。一方、非重要なコメント情報グループに対する部分的要約を入力する際には、記号”+”を記入する。 ユーザ等は、上記記号の後に要約の文章(コメント部分要約情報903)を記入し、次の行に要約するグループに含まれるコメントの番号と、当該コメントの構造(コメント情報グループ901及び、コメント構造情報)を記入する。
図示しないユーザ等が、上記説明した図8に例示するサマリ記述800を登録する。この場合にサマリ情報保持部103cに記録されるサマリ範囲は、サマリ入力開始時に登録されていたコメントの最後の番号である、「11」となる。表示データ生成部102dは、登録されたサマリ記述800を解析し、解析結果に基づいて表示データを生成する。
より具体的には、表示データ生成部102dは、サマリ記述800に記載されたサマリセット904毎に、コメント部分要約情報903を表示する表示データを生成する。
また、表示データ生成部102dは、各サマリセット904毎に、コメント重要度情報902が非重要と設定されたコメント情報グループについては、コメント本文を非表示状態とする表示データを生成する。一方、通常の重要度を有するコメント情報グループについては、コメント本文を表示状態とする表示データを生成する。
また、表示データ生成部102dは、サマリセット904に含まれるコメント情報グループ毎に、記載されたコメント構造情報を解釈して、コメント間の関係を木構造として表す表示データを生成する。
具体的には、例えば、バグ管理システム100に対して図7に例示するコメントが登録されている状況において、サマリ記述800が登録された場合、図10に例示するようなコメント一覧(図3における符号303)の表示データが生成される。
図10に例示するように、サマリ記述800において「非重要」と設定されたコメント番号1乃至2、及び、コメント番号3乃至7に関するコメントについては、それぞれコメント部分要約情報903に記載された要約文(図10における符号1001)のみが表示される。この場合、コメント本文は表示されていない。
その一方、サマリ記述800において通常の重要度が設定されたコメント番号8乃至11については、サマリ記述800に記載されたコメント構造情報に基づいて、コメント間の構造が木構造により表示され、コメント本文も表示される。また、コメント部分要約情報903に記載された要約文(符号1001)も表示される。
また、上記生成された表示データには、サマリ記述800において設定したコメント情報グループ901に含まれるコメントの表示・非表示を操作可能な、表示状態操作部に関するデータが含まれてもよい。
この場合、当該表示データを表示した際、図10に例示するように、表示状態操作部1002が表示される。図示しないユーザ等は、例えば、図10に例示する表示状態操作部1002を操作することによりサマリ記述800において設定したコメント情報グループ901毎に、当該グループに含まれるコメントの表示・非表示を切り替えることができる。具体的には、例えば、図10に例示する表示データがコメント一覧303に表示された際に、表示状態操作部1002を、クリックあるはタッチすることにより、表示状態を変更可能としてもよい。なお、ユーザ等が表示状態操作部1002を操作した場合、表示状態操作部1002自体の表示内容が変化してもよい。この場合、ユーザ等は、表示状態操作部1002自体の表示状態を確認することにより、非表示状態のコメント情報が存在するか否かを確認可能である。
図10に例示する表示データを表示した場合について、全てのコメントを表示するように、ユーザ等が表示状態操作部1002を操作した結果を、図11に例示する。図11に例示した具体例においては、登録された全てのコメントが表示されると共に、表示状態操作部1002自体の表示も変化する。
次に、図9に例示するサマリ記述800が登録され、図10に示すような表示データが生成された状態において、新たに図12に例示するコメント番号12、及びコメント番号13が上記コメント情報保持部103bに登録された場合について説明する。
この場合、表示データ生成部102dは、サマリ情報保持部103cに記憶されているサマリ範囲を確認し(この場合は「11」)、コメント番号12及びコメント番号13に係るコメントが、サマリ記述800の入力が開始された後に登録されたと判定する。
係る判定に基づいて、表示データ生成部102dは、図13に例示するように、コメント番号12及びコメント番号13に係るコメントをそのまま表示するような表示データを生成する。
次に、図13に例示するような表示データが生成された状況において、更に、図示しないユーザが、バグ管理システム100に対して、図14に例示するサマリ記述1400を登録した場合について説明する。この場合にサマリ情報保持部103cに記録されるサマリ範囲は、サマリ記述1400の入力が開始された際に登録されているコメントの最後の番号である、「13」となる。
上記サマリ記述1400においては、コメント番号13に対応するコメントがサマリ記述に反映されており、コメント間の構造の可読性を高めるため、コメント番号9と、コメント番号10とを入れ替えている。この場合、表示データ生成部102dは、図15に例示するような表示データを生成する。
以上説明した、本実施形態におけるバグ管理システム100にける表示データの生成処理について、図16に例示するフローチャートを用いて説明する。なお、図16に例示するフローチャートは、特定のバグに対するコメント情報及びサマリ情報が登録されている場合の表示データの生成処理を表す。
まず、表示データ生成部102dは、サマリ情報保持部103cに登録されているサマリ情報を解析し、サマリ記述を表す木構造データを生成する(ステップS1601)。この場合、表示データ生成部は、係る木構造データを、メモリ等の記憶装置上に生成してもよい。
なお、サマリ情報を解析して木構造データを生成する具体的な処理は、例えば、形式言語等に対する周知の構文解析処理と同様の処理としてよい。このため、具体的な説明は省略する。
具体例として、図7に例示するコメント情報が登録されている場合において、図8に例示するサマリ記述800から生成した木構造データを図17に示す。
図17に例示する具体例において、「root」(符号1701)は、木構造データ1700の根ノードである。
表示データ生成部102dは、当該根ノードの下に、サマリ情報に含まれるそれぞれのサマリセット(例えば、図9における符号904)に対するコメント重要度情報(例えば、図9に例示する符号902)を表すノード1702を生成する。以下、ノード1702を、コメント重要度ノード1702と称する場合がある。
また、表示データ生成部102dは、サマリ記述800に記載されたコメント構造情報を解釈して、コメント間の関係を表す木構造1703をコメント重要度ノード1702に接続する。係る木構造1703を構成する各ノード1704には、それぞれコメント情報が表示される。以下、木構造1703のノードをコメントノード1704と称する場合がある。表示データ生成部102dは、サマリ記述800に記載された上記コメント構造情報を解釈して上記木構造1703を部分木として生成し、係る部分木をコメント重要度ノード1702に接続してもよい。
この場合において、上記木構造の各ノードは、当該ノードに対する表示データを特定可能な情報を有していてもよい。例えば、コメント重要度ノード1702は、特定のコメント情報グループに対するコメント部分要約情報(例えば図9に例示する符号903)を特定可能な情報を有してもよい。また、上記コメント間の関係を表す木構造1703における各ノードは、当該ノードに表示するコメント情報を特定可能な情報を有してもよい。
なお、上記各ノードに対する表示データを特定する情報は、例えば、登録されているサマリ記述やコメント情報に対して適宜識別子を設定する等、任意の方法を用いてよいため、詳細な説明は省略する。
次に、表示データ生成部102dは、コメント情報保持部102bに登録されているコメント情報を参照してコメント情報を読み出し、コメント番号をインデックスとする配列データを生成する(ステップS1602)。即ち、図7に例示するデータと略同じ構造のデータを生成する。表示データ生成部102dは、係る配列データを、メモリ等の記憶装置上に生成してもよい。
次に、表示データ生成部102dは、上記ステップS1601において生成した木構造データ1700を走査し、木のノードの種類に応じて、画面表示のためのデータを出力する(ステップS1603)。
表示データ生成部102dは、上記木構造データ1700のノードがコメント重要度ノード(符号1702)である場合、コメント部分要約情報を出力する。また、表示データ生成部102dは、コメント情報を初期の表示状態において表示あるいは非表示とする表示データを出力してもよい。
例えば、表示データ生成部102dは、特定のコメント情報グループに対するコメント重要度情報が「非重要」と設定されている場合、係るコメント情報グループを、初期の表示状態において非表示とする表示データを出力する。具体的な表示データの形式は任意に選択してよい。例えば、表示データの形式としてHTMLを採用する場合は、各コメント情報の表示データが配置されるブロックレベル要素と、係るブロックレベル要素の表示・非表示を制御するスクリプトとを生成してもよい。
また、この場合、表示データ生成部102dは、上述した表示状態操作部(例えば、図10における符号1002)を生成する表示データを出力してもよい。
表示データ生成部102dは、上記木のノードがコメントノード1704である場合、上記ステップS1602において生成した配列データを参照し、コメント番号と、コメント本文とを出力する、出力データを生成する。
表示データ生成部102dは、ステップS1603の後、サマリ情報保持部103cを参照してサマリ範囲を確認する。表示データ生成部102dは、サマリ情報の入力開始後に登録されたコメント情報が存在する場合は、係るコメント情報を出力する出力データを生成する(ステップS1604)。
なお、表示データ生成部102dは、上記木構造データ1700を構成する各ノードに対する出力データとともに、木構造を表現するデータを出力してもよい。本実施形態に置いて、そのような木構造を表現する具体的な表示データの形式は任意に選択してよい。例えば、表示データの形式としてHTMLを採用する場合、木構造を表すデータ形式として、例えば、入れ子にしたリスト要素等を採用してもよい。
上記表示データをHTMLやXML等の構造を表現可能な言語を用いて表す処理をコンピュータに実行させる場合の、疑似的な処理コードを図18に示す。図18に例示する疑似的な処理コードは、あくまで一例であり、これ以外の任意の処理を採用してもよい。
HTMLやXML等の構造を表現可能な言語では開始タグ及び終了タグにより表示内容を囲む場合がある。このため、図18に例示する擬似コードでは、表示データの構造を表す開始タグと、終了タグとを表示内容の前後に出力できるように、表示データの出力を前半と後半とに分けている。
以上のように構成された、本実施形態におけるバグ管理システムによれば、特定のバグに対して登録されたコメントに対して、サマリ情報を登録可能である。そして、係るサマリ情報により、バグに対して登録されている一連のコメントをまとめた要約が付され、要約のみ確認可能である。また、サマリ情報によって、要約が付されたコメントの表示・非表示の初期状態を設定可能である。
このため、バグの調査において重要な内容(コメント)だけが、部分的要約やコメント間の構造とともに表示されることにより、調査状況の把握が容易になり、バグの調査作業を効率化可能である、という効果を奏する。
また、本実施形態におけるバグ管理システムによれば、一人の開発者がサマリ情報を入力することにより、他の開発者は要約された情報を確認可能となる。このため、コメント全体を読んで理解する場合に比べて、調査状況の把握に要する時間と工数を低減可能である。
更に、実施形態におけるバグ管理システムによれば、入力されたコメントを削除せずに非表示状態として残すことが可能であるため、必要に応じてサマリ記述を変更することにより、要約として表示する内容を変更可能である。
例えば、バグ調査においては過去に発生した現象を確認する場合もあるため、調査が完了したバグについてサマリ情報を登録することにより、情報を整理することで、他のバグ調査に役立てることが可能である。
なお、上記においては、サマリ記述として図8に例示するような形式を採用した具体例を説明したが、本実施形態はこれには限定されない。即ち、本実施形態において、サマリ記述をどのような形式により記載するかは任意に選択してよく、例えば、XML等の構造表記可能なデータ形式で、サマリ記述を記載してもよい。
また、本実施形態におけるサマリ範囲の登録方法は上記説明した方法には限定ず、バグ管理システム100は、適宜適切な方法によりサマリ範囲を登録してよい。例えば、サマリ登録ボタン305の押下をバグ管理システム100が検知した際に、サマリ登録部102cがコメント登録部102bに登録されている最後のコメント番号を取得してもよい。サマリ登録部102cは、取得したコメント番号を例えば仮のサマリ範囲としてサマリ情報登録部103cに登録してもよい。サマリ登録部102cは、サマリ情報が登録された際に、当該サマリ情報に対して、適宜適切な方法により上記仮に登録したサマリ範囲を関連付けてもよい。
また、上記においては、登録されたコメントを蓄積し、係るコメントを閲覧可能なように提供するシステムの代表例として、バグ管理システムについて説明したが、本実施形態はこれには限定されない。
本実施形態は、例えば、特定のトピックに関して蓄積されたメッセージやコメント等の電子コメントを管理して表示する、コメント管理システムに適用可能である。そのようなメッセージ管理システムは、例えば、特定のトピック毎に掲示板形式でメッセージを表示する、電子掲示板システム等を含んでもよい。
<第2の実施形態>
次に、本発明の第2の実施形態について、図19を参照して説明する。図19は、本発明の第2の実施形態に係るコメント管理システムの機能的な構成を例示するブロック図である。
本実施形態におけるコメント管理システム1900は、コメント情報登録部1901と、コメント情報保持部1902と、サマリ情報登録部1903と、サマリ情報保持部1904と、表示データ生成部1905とを有する。なお、本実施形態におけるコメント管理システム1900は、入出力部1906を有してもよい。
本実施形態におけるコメント管理システム1900は、1以上のコンピュータ等の情報処理装置等により構成されてもよい。また、周知の仮想化技術を用いて仮想環境に構築された、仮想的なコンピュータ等により構成されてもよい。
なお、本実施形態におけるコメント管理システム1900を構成する上記各構成要素は相互に通信可能に接続されていればよく、それぞれが同一または異なる情報処理装置等により実現されてもよい。
コメント情報登録部1901は、図示しないユーザ等からコメント情報の入力を受け付ける。また、コメント情報登録部1901は、入力されたコメント情報を必要に応じて解析してコメント本文のデータを抽出し、そのコメント本文のデータを後述する第1の記憶部であるコメント情報保持部1902に登録してもよい。
本実施形態におけるコメント情報登録部1901は、図示しないユーザ等に対して、コメント情報を登録するための任意の登録手段を提供してもよい。また、本実施形態におけるコメント情報登録部1901は、入出力部1906を介して、ユーザからコメント情報の入力を受け付けてもよい。
コメント情報保持部1902は、上記コメント情報登録部1901を介して登録された1以上のコメント情報を保持する第1の記憶部である。
サマリ登録部1903は、図示しないユーザ等によるサマリ情報の入力を受け付ける。また、サマリ情報登録部1903は、入力されたサマリ情報を必要に応じて解析してサマリ記述のデータを抽出し、そのサマリ記述のデータを、後述する第2の記憶部であるサマリ情報保持部1904に登録してもよい。
本実施形態におけるサマリ情報登録部1903は、図示しないユーザ等に対して、サマリ情報を登録するための任意の登録手段を提供してもよい。また、本実施形態におけるサマリ情報登録部1903は、入出力部1906を介して、ユーザからサマリ情報の入力を受け付けてもよい。
本実施形態において、上記サマリ情報は、上記コメント情報保持部1902に保持されている1以上のコメント情報を含むコメント情報グループに関する要約を表すコメント部分要約情報と、上記コメント情報グループに対する重要度を表すコメント重要度情報と、上記コメント情報グループに属する各コメント情報間の関係を表すコメント構造情報とを含んでもよい。
サマリ情報保持部1904は、上記サマリ情報登録部1903を介して登録されたサマリ情報を保持する第2の記憶部である。
表示データ生成部1905は、上記コメント情報保持部1902に登録されたコメント情報と、上記サマリ情報保持部1904に登録されたサマリ情報とに基づいて、当該コメント情報に対する表示データを生成する。
なお、本実施形態におけるコメント管理システム1900は、上記生成した表示データを表示する表示部(不図示)を有してもよい。また、コメント管理システム1900は、係る表示データを、入出力部1906を介して外部の任意の情報処理装置等に送信してもよい。この場合、係る表示データを受信した情報処理装置等が当該表示データを表示してよい。
また、本実施形態におけるコメント情報保持部1902と、サマリ情報保持部1904とは、同一の記憶装置等により構成してもよく、相異なる記憶装置等により構成してもよい。
上記のように構成した本実施形態におけるコメント管理システムによれば、登録されたコメントに対するサマリ記述を登録可能である。また、係るサマリ記述により、コメントの重要度と、コメント間の関係性に基づいてコメント情報の表示を制御可能である。
このため、本実施形態におけるコメント管理システムによれば、登録された一連のコメントにおいて重要な内容だけが、部分的な要約やコメント間の構造とともに表示されることにより、一連のコメントに関する内容の把握が容易になる、という効果を奏する。
<ハードウェア及びソフトウェア・プログラム(コンピュータ・プログラム)の構成>
以下、上記説明した各実施形態を実現可能なハードウェア構成について説明する。
上記各実施形態において説明したバグ管理システム100、及び、コメント管理システム1900は、それぞれの機能を実現する専用のハードウェア装置により構成してもよい。以下の説明において、バグ管理システム100、及び、コメント管理システム1900を、単に「コメント管理システム」と称する場合がある。
上記各実施形態において、上記コメント管理システムは、一部、または、全部を統合したハードウェア(処理ロジックを実装した集積回路等)として実現されもよく、それぞれ個別のハードウェアにより構成されてもよい。
また、上述したコメント管理システムは、図20に例示するようなハードウェアと、係るハードウェアによって実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成してもよい。この場合、コメント管理システムを構成する構成要素は、単独のハードウェアにおいて実行されるソフトウェア・プログラムとして実現してもよい。また、複数のハードウェアにおいて実行されるソフトウェア・プログラムとして実現してもよい。
なお、以下の説明において、図20に例示するハードウェアを、単に情報処理ハードウェアと称する場合がある。
図20における演算装置2001は、汎用のCPU(Central Processing Unit)やマイクロプロセッサ等の演算処理装置である。演算装置2001は、例えば後述する不揮発性記憶装置2003に記憶された各種ソフトウェア・プログラムを記憶装置2002に読み出し、係るソフトウェア・プログラムに従って処理を実行してもよい。
記憶装置2002は、演算装置2001から参照可能な、RAM(Random Access Memory)等のメモリ装置であり、ソフトウェア・プログラムや各種データ等を記憶する。なお、記憶装置2002は、揮発性のメモリ装置であってもよい。
不揮発性記憶装置2003は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置のような、不揮発性の記憶装置であり、各種ソフトウェア・プログラムやデータ等を記録してもよい。
ネットワークインタフェース2006は、通信ネットワークに接続するインタフェース装置であり、例えば有線及び無線のLAN(Local Area Network)接続用インタフェース装置等を採用してもよい。上記説明した第1の実施形態においては、例えば、バグ管理システム100と、通信ネットワーク104との間を、上記ネットワークインタフェース2006を介して接続してもよい。
外部記憶装置2004は、例えば、後述する外部記憶媒体2005に対するデータの読み込みや書き込みを処理する装置である。
外部記録媒体2005は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記録媒体である。
入出力インタフェース2007は、外部入力装置(例えばキーボードやマウス等)及び外部出力装置(例えばディスプレイ装置やプリンタ等)との間の入出力を制御する装置である。
例えば、上記第4の実施形態において、図示しないユーザ等は、上記コメント管理システムを構成する上記情報処理ハードウェアに対して、当該情報処理ハードウェアが具備する上記入出力インタフェースを介して、コメント情報やサマリ情報を入力してもよい。
上述した各実施形態を例に説明した本発明は、例えば、図20に例示した情報処理ハードウェアにより上記コメント管理システムを構成してもよい。そして、係る情報処理ハードウェアに対して、上記各実施形態の説明において参照したフローチャートの機能を実現可能なソフトウェア・プログラムを供給した後、そのソフトウェア・プログラムを、演算装置2001が実行することによって、本発明を達成してもよい。
上述した各実施形態において、上記各図に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能(処理)単位である、ソフトウェアモジュールとして実現することができる。但し、これらの図面に示した各ソフトウェアモジュールの区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。
例えば、図1、及び、図19に示した各部をソフトウェアモジュールとして実現する場合、これらのソフトウェアモジュールを不揮発性記憶装置2003に記憶しておいてもよい。この場合、演算装置2001がそれぞれの処理を実行する際に、これらのソフトウェアモジュールを記憶装置2002に読み出すよう構成してもよい。
また、これらのソフトウェアモジュール間は、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成してもよい。このような構成により、これらのソフトウェアモジュール間は、相互に通信可能に接続可能である。
更に、上記各ソフトウェア・プログラムを外部記憶媒体2005に記録しておき、上記通信装置等の出荷段階、あるいは、運用段階等において、適宜外部記憶装置2004を通じて当該ソフトウェア・プログラムを不揮発性メモリ2003に格納するよう構成してもよい。
また、上記各ノードにおける構成要素をソフトウェア・プログラムとして実現する場合、上記各実施形態において説明した、バグ情報保持部(符号103a)、コメント情報保持部(130b、1902)、サマリ情報保持部(符号103c、1904)等は、適宜適切なデータ構造等を用いて、記憶装置2002や、不揮発性記憶装置2003に記憶してもよい。また、これらの情報は、任意のデータベース等に格納することにより、不揮発性記憶装置2003に記憶してもよい。
なお、上記の場合において、上記コメント管理システムを構成する情報処理装置への各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは、出荷後のメンテナンス段階等において、適当な治具を利用して当該装置内にインストールする方法を採用してもよい。また、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用してもよい。
そして、このような場合において、本発明は、係るソフトウェア・プログラムを構成するコード、あるいは、係るコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると捉えることができる。
以上、本発明を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更、または、改良を加えることが可能であることは明らかである。そのような場合、係る変更、または、改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。