(57)【要約】【課題】操作履歴データベースの内容をすべて共有データベースに反映させた後にも共有データに対する操作履歴を復元できる。【解決手段】統一モデリング言語（ＵＭＬ）により開発するソフトウェアモデルをすべての開発者に共有にして格納する共有データベース１と、開発者ごとに分担して開発操作する分担ソフトウェアモデルを格納する編集データベース２と、開発者ごとの操作履歴を登録する開発者共有の操作履歴データベース３とを備えたシステムにおいて、履歴情報データベース９を用意し、操作履歴データベースの操作履歴をすべて共有データベースに反映させるときに、操作履歴データとこの操作履歴データを特定できる特定情報と共に１つにまとめてパッケージ化したバックアップ履歴情報として作成／保存しておく。バックアップ履歴情報を、特定情報の指定で検索し、履歴情報を復元する。【選択図】図１
2008269280.tif 000002
【特許請求の範囲】
【請求項１】
統一モデリング言語（ＵＭＬ）により開発するソフトウェアモデルをすべての開発者に共有にして格納する共有データベースと、開発者ごとに分担して開発操作する分担ソフトウェアモデルを格納する編集データベースと、開発者ごとの操作履歴を登録する開発者共有の操作履歴データベースとを備えたソフトウェア開発支援システムにおいて、
前記分担ソフトウェアモデルが作成され、前記操作履歴データベースの操作履歴をすべて共有データベースに反映させて前記共有データベースに登録するときに、該操作履歴データとこの操作履歴データを特定できる特定情報と共に１つにまとめてパッケージ化したバックアップ履歴情報として作成／保存しておく登録手段と、
前記登録手段で登録した前記バックアップ履歴情報を、前記特定情報の指定で検索する検索手段と、
を備えたことを特徴とするソフトウェア開発支援システム。
【請求項２】
前記操作履歴データベースの操作履歴をすべて前記共有データベースに反映させ、該操作履歴データベースの内容をクリアするときに、反映する前の状態のすべてのデータベースのデータをコピーし、これをバックアップフォルダにファイルとして保存する保存手段を備えたことを特徴とする請求項１に記載のソフトウェア開発支援システム。
【請求項３】
バックアップフォルダに保存するファイルを操作履歴一覧表示する表示手段と、
前記操作履歴一覧表示画面から選択した操作履歴がもつ前記共有データベースと操作履歴データベースと履歴情報データベースの３つのデータベースのデータを、それぞれ現在のデータベースのデータと置き換える戻し手段とを備えたことを特徴とする請求項１に記載のソフトウェア開発支援システム。
【請求項４】
統一モデリング言語（ＵＭＬ）により開発するソフトウェアモデルをすべての開発者に共有にして格納する共有データベースと、開発者ごとに分担して開発操作する分担ソフトウェアモデルを格納する編集データベースと、開発者ごとの操作履歴を登録する開発者共有の操作履歴データベースとを備えたソフトウェア開発支援システムにおいて、
前記分担ソフトウェアモデルが作成され、前記操作履歴データベースの操作履歴をすべて共有データベースに反映させて前記共有データベースに登録するときに、該操作履歴データとこの操作履歴データを特定できる特定情報と共に１つにまとめてパッケージ化したバックアップ履歴情報として作成／保存しておく登録ステップと、
前記登録手段で登録した前記バックアップ履歴情報を、前記特定情報の指定で検索する検索ステップと、
を有することを特徴とするソフトウェア開発支援方法。
【請求項５】
前記操作履歴データベースの操作履歴をすべて前記共有データベースに反映させ、該操作履歴データベースの内容をクリアするときに、反映する前の状態のすべてのデータベースのデータをコピーし、これをバックアップフォルダにファイルとして保存する保存ステップを有することを特徴とする請求項４に記載のソフトウェア開発支援方法。
【請求項６】
バックアップフォルダに保存するファイルを操作履歴一覧表示する表示ステップと、
前記操作履歴一覧表示画面から選択した操作履歴がもつ前記共有データベースと操作履歴データベースと履歴情報データベースの３つのデータベースのデータを、それぞれ現在のデータベースのデータと置き換える戻しステップとを有することを特徴とする請求項４に記載のソフトウェア開発支援方法。
【請求項７】
請求項４〜６に記載のソフトウェア開発支援方法における処理手順を、コンピュータで実行可能に構成したことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、統一モデリング言語（ＵＭＬ）によるソフトウェア開発支援システムおよび開発支援方法に係り、特にソフトウェア開発作業における操作履歴の管理に関する。
【背景技術】
【０００２】
ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）は、ソフトウェア開発のためのモデリング言語であり、開発対象のシステムの構造を表現するための表記法で、開発者同士の意思疎通を図ることができる。
【０００３】
ＵＭＬによるソフトウェア開発には、開発対象となるシステムの仕様作成支援機能や分析設計支援機能、スケジュール管理機能などソフトウェア開発に関する様々な作業をサポートする。システムの仕様作成、分析設計、実装を支援する表記物として、ユースケース図（システムの機能定義）、アクティビティ図（動作の流れ）、シーケンス図（オブジェクト間の相互作用）、オブジェクト図（インスタンスのスナップショット表記）、クラス図（静的なモデルを定義）などを作成する（例えば、非特許文献１参照）。
【０００４】
さらに、ソフトウェア開発支援システムは、チーム開発における共同作業支援機能も持っており、この機能にはユースケース図の作成、クラスのメソッド追加などの、各開発者の操作を操作履歴として管理している。この共同作業支援機能は、開発しようとするシステムの共有データ（各種ＵＭＬ図など）を各開発者が分担して作成できるようにファイルの分散環境を確立する（例えば、特許文献１参照）。
【０００５】
図１０は、ソフトウェア開発支援システムの要部構成図を示す。このシステム構成は、すべての開発者に共有のソフトウェアモデルを格納する共有データベース（ＤＢ）１、開発者ごとに分担して開発操作する分担モデルを格納する編集データベース２、開発者ごとの操作履歴を登録する開発者共有の操作履歴データベース３、システム開発のスケジュールを格納するプロジェクトデータベース４を搭載する。そして、これらデータベースをデータ記憶装置とし、仕様作成支援機能５、分析設計支援機能６、共同作業支援機能７およびスケジュール管理機能８をコンピュータのソフトウェアとして搭載することで、仕様作成作業や分析設計作業などをサポートする。
【０００６】
また、ソフトウェア開発支援システムのメイン画面では、図１１に例を示すように、各開発者に対するＴＯＤＯリストを一覧に表示し、重要度（緊急や参考など）や種別（バグや変更など）、送信者、内容、期限などを表示する。
【非特許文献１】明電時報  ２００６  ９・１０月  通巻３１０号  Ｎｏ．５
【特許文献１】特開平１１−３０６０６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前記のように、あるシステムを複数の開発者で分析・設計を行う場合、各開発者が操作履歴を共有化することによりシステムを開発していく。このとき、システムに不具合が生じた場合、操作履歴が残っていればその内容を調査することにより、原因を究明することができる。しかし、操作履歴データベース３の内容をすべて共有データベース１に反映させてしまうと、反映後の共有データベース１の内容と操作履歴データベース３の内容との整合性を保つために操作履歴をすべて消去するため、不具合の原因を究明することができない。
【０００８】
例えば、図１２に示すように、クラス図Ａを作成し、それにクラスＰを作成することを考える。最初に、共有データベース１にはなにもデータが存在せず、操作履歴データベース３には操作履歴「クラス図Ａの作成」と「クラスＰの作成」が存在する。これらの操作結果を共有データベース１に反映すると、共有データベース１に「クラス図Ａ」と「クラスＰ」がデータとして存在する。ここで、操作履歴として「クラス図Ａの作成」と「クラスＰの作成」が残っていると、同じデータを二重に作成してしまうことになり、データの整合性が合わなくなってしまうため、これらの操作履歴をすべて消去する。
【０００９】
また、ある開発者が別の開発者宛に依頼した内容について、その開発者が対応してくれているのかどうか、対応した場合、ＴＯＤＯリスト一覧からは、図１１のように重要度や種別、送信者、内容、期限という情報しか得られないため、いつどのように対応したかが分からない
本発明の目的は、操作履歴データベースの内容をすべて共有データベースに反映させた後にも共有データに対する操作履歴を復元できるソフトウェア開発支援システム、開発支援方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、前記の課題を解決するため、開発者が分担して開発作業を行い、この開発データを共有データベースに登録するときに、開発作業で操作した操作履歴をバックアップ履歴情報として作成／保存し、このバックアップ履歴情報を基に過去の操作履歴を検索可能にする。
【００１１】
（１）統一モデリング言語（ＵＭＬ）により開発するソフトウェアモデルをすべての開発者に共有にして格納する共有データベースと、開発者ごとに分担して開発操作する分担ソフトウェアモデルを格納する編集データベースと、開発者ごとの操作履歴を登録する開発者共有の操作履歴データベースとを備えたソフトウェア開発支援システムにおいて、
前記分担ソフトウェアモデルが作成され、前記操作履歴データベースの操作履歴をすべて共有データベースに反映させて前記共有データベースに登録するときに、該操作履歴データとこの操作履歴データを特定できる特定情報と共に１つにまとめてパッケージ化したバックアップ履歴情報として作成／保存しておく登録手段と、
前記登録手段で登録した前記バックアップ履歴情報を、前記特定情報の指定で検索する検索手段と、
を備えたことを特徴とする。
【００１２】
（２）前記操作履歴データベースの操作履歴をすべて前記共有データベースに反映させ、該操作履歴データベースの内容をクリアするときに、反映する前の状態のすべてのデータベースのデータをコピーし、これをバックアップフォルダにファイルとして保存する保存手段を備えたことを特徴とする。
【００１３】
（３）バックアップフォルダに保存するファイルを操作履歴一覧表示する表示手段と、
前記操作履歴一覧表示画面から選択した操作履歴がもつ前記共有データベースと操作履歴データベースと履歴情報データベースの３つのデータベースのデータを、それぞれ現在のデータベースのデータと置き換える戻し手段とを備えたことを特徴とする。
【００１４】
（４）統一モデリング言語（ＵＭＬ）により開発するソフトウェアモデルをすべての開発者に共有にして格納する共有データベースと、開発者ごとに分担して開発操作する分担ソフトウェアモデルを格納する編集データベースと、開発者ごとの操作履歴を登録する開発者共有の操作履歴データベースとを備えたソフトウェア開発支援システムにおいて、
前記分担ソフトウェアモデルが作成され、前記操作履歴データベースの操作履歴をすべて共有データベースに反映させて前記共有データベースに登録するときに、該操作履歴データとこの操作履歴データを特定できる特定情報と共に１つにまとめてパッケージ化したバックアップ履歴情報として作成／保存しておく登録ステップと、
前記登録手段で登録した前記バックアップ履歴情報を、前記特定情報の指定で検索する検索ステップと、
を有することを特徴とする。
【００１５】
（５）前記操作履歴データベースの操作履歴をすべて前記共有データベースに反映させ、該操作履歴データベースの内容をクリアするときに、反映する前の状態のすべてのデータベースのデータをコピーし、これをバックアップフォルダにファイルとして保存する保存ステップを有することを特徴とする。
【００１６】
（６）バックアップフォルダに保存するファイルを操作履歴一覧表示する表示ステップと、
前記操作履歴一覧表示画面から選択した操作履歴がもつ前記共有データベースと操作履歴データベースと履歴情報データベースの３つのデータベースのデータを、それぞれ現在のデータベースのデータと置き換える戻しステップとを有することを特徴とする。
【００１７】
（７）上記の（４）〜（６）に記載のソフトウェア開発支援方法における処理手順を、コンピュータで実行可能に構成したことを特徴とする。
【発明の効果】
【００１８】
以上のとおり、本発明によれば、開発者が分担して開発作業を行い、この開発データを共有データベースに登録するときに、開発作業で操作した操作履歴をバックアップ履歴情報として作成／保存し、このバックアップ履歴情報を基に過去の操作履歴を検索可能にしたため、操作履歴データベースの内容をすべて共有データベースに反映させた後にも共有データに対する操作履歴を復元できる。
【００１９】
具体的には、
（１）履歴情報をある単位でパッケージ化して保存することができる。開発者などをキーワードとして指定することにより、簡単に履歴情報を検索することができる。
【００２０】
（２）操作履歴一覧により、不具合が生じたときの原因究明を行うことができる。操作履歴のバージョン単位で操作を戻すことができる。
【００２１】
（３）操作履歴一覧により、あるモデルに関する作成日時や作成者を把握することができる。
【００２２】
（４）メイン画面のＴＯＤＯリスト一覧により、他の開発者の操作履歴をＴＯＤＯリストから簡単に閲覧することができる。
【００２３】
（５）操作内容設定ダイアログにより、操作の段階で予め履歴情報を入力しておくことで、共有データベースへの登録時に簡単に履歴情報を設定することができる。
【発明を実施するための最良の形態】
【００２４】
図１は、本発明の実施形態を示すソフトウェア開発支援システムの要部構成図である。同図が図１０と異なる部分は、履歴情報データベース９を設け、開発者が分担して開発作業を行い、このときの開発データを共有データベースに登録するときに、開発作業で操作した操作履歴をバックアップ履歴情報として履歴情報データベース９に保存し、このバックアップ履歴情報を基に過去の操作履歴を検索可能にする。
【００２５】
図２は、履歴情報データベース９に格納する履歴情報のデータ構造例を示し、開発者が操作履歴を共有化する（操作履歴データベース３に登録する）ときに、そのときの操作履歴を特定できる情報（共有データベースのバージョン、開発者情報、操作内容、登録日時など）と共に１つにまとめてパッケージ化する。なお、履歴情報は上記以外の特定できる情報を追加してパッケージ化してもよい。
【００２６】
図３は、履歴情報の管理機能構成図を示し、各機能は共同作業支援機能７にソフトウェアとして追加搭載される。操作履歴共有登録機能１１は、従来と同様に、開発者が仕様作成、分析設計等の作業を行い、編集データベース２に得られた開発データ（分担ソフトウェアモデル）を共有データとして反映させるときに操作履歴および開発データを両データベース１、３に登録する。履歴情報作成機能１２は、開発者による仕様作成、分析設計等の作業に応じて、図２のような履歴情報を作成する。履歴情報保存機能１３は、開発者がひと区切りの作業を終了して共有データとして反映させるときに、履歴情報作成機能１２で作成しておいた履歴情報を履歴情報データベース９に保存する。このとき、関連するＴＯＤＯリストが存在すれば、ＴＯＤＯリスト設定機能１４は、該当する１つまたは複数のＴＯＤＯリスト（プロジェクトデータベース４に保存されるリスト）に対して履歴情報を関連付ける。
【００２７】
操作履歴データベース３の内容をすべて共有データベース１に反映させ、該操作履歴データベース３の内容をクリアするとき、履歴情報バックアップ機能１５は、共有データベース１、操作履歴データベース３および履歴情報データベース９の現在のデータをひとまとめにして、任意のデータベース内に確保した専用の場所（例えば、バージョン番号を名前として持つフォルダ）にコピーし、これをバックアップフォルダ１６にファイルとして保存しておく。
【００２８】
この後、従来と同様に、操作履歴本登録機能１７により、操作履歴データベース３の内容をすべて共有データベース１に反映させ、操作履歴データベース３の内容はすべて消去する。これに合わせて、履歴情報データベース９の内容もすべて消去する。
【００２９】
なお、操作履歴データベース３の内容が何もないとき（何も操作されていないとき）は、連続して操作履歴本登録機能１７を行った場合など、コピーした操作履歴データベース３や履歴情報データベース９の内容が、消去された空のものに上書きされる可能性があるので、上記の処理は行わない。
【００３０】
以下、履歴情報を使った操作履歴の登録処理と検索処理の例を説明する。
【００３１】
（例１）クラス図の作成操作を操作履歴の共有データベースへ反映させる例。
【００３２】
１−１．クラス図の作成から共有データベースへの登録
図４および図５は、クラス図の作成操作として、開発者Ｄがクラス図Ａを作成し、それにクラスＰとクラスＱを作成し、これを共有データベース１に共有登録する場合の模式図を示す。
【００３３】
図４において、共有データベース１は、バージョン「１」で、中身は何もないものとする。履歴情報「１」のうち、共有データベース１のバージョン、開発者情報、登録日時、操作履歴データについては、ソフトウェア開発支援システムより取得する。それぞれ、共有データベース１のバージョンは現在の共有データベースのバージョン「１」、開発者情報はクラス図Ａを作成した「開発者Ｄ」、登録日時は開発者Ｄが操作履歴を共有に登録する操作を行ったシステムの時間「２００７／２／１  ０９：３０」、操作履歴データは３つの操作履歴「クラス図Ａの作成」「クラスＰの作成」「クラスＱの作成」で構成される操作履歴「１」となる。
【００３４】
一方、複数の操作履歴データの結果を表す操作内容については、ソフトウェア開発支援システムより取得できない。そこで、専用の履歴情報設定ダイアログを表示して、開発者Ｄが操作内容を自然言語で入力する。このダイアログに操作履歴の一覧を表示しておくと、開発者は操作内容を入力しやすくなる。開発者が設定ボタンを押すと、操作内容を開発者が入力したもの「機能Ｆを実現するクラスの作成」に設定してパッケージ化した履歴情報「１」を作成し、履歴情報データベース９に追加する。
【００３５】
図５は、開発者Ｄに関連するＴＯＤＯリストが存在し、該当するＴＯＤＯリストに関連付ける場合を示し、履歴情報設定ダイアログに開発者に対するすべてのＴＯＤＯリストを表示し、該当するＴＯＤＯリストを選択することによって、関連付ける。
【００３６】
１−２．操作履歴の共有データベースへの反映
図６〜図８は、上記１−１の操作の後、開発者Ｄが、操作履歴を共有データベースに反映させてから、履歴の閲覧までの模式図を示す。
【００３７】
図６は、操作履歴を共有データベースに反映させるまでを示す。共有データベース１のバージョンは「１」であり、操作履歴データベース３と履歴情報データベース９にはそれぞれ上記１−１の「操作履歴１」と「履歴情報１」が入っている。
【００３８】
開発者Ｄがこの「操作履歴１」を共有データベース１に反映するとき、共有データベース１と操作履歴データベース３と履歴情報データベース９の３つのデータベースを、現在の共有データベースのバージョン「１」で新たにフォルダ（バックアップフォルダ１６）を作成し、その中にバックアップ「１」として保存しておく。
【００３９】
この後、操作履歴データベース３と履歴情報データベース９の中身を空にして、操作履歴が１つなので共有データベースのバージョンを１つ上げて「２」にする。なお、操作履歴が２つあれば、２つ上げて「３」にする。また、ＴＯＤＯリストの「履歴情報１」は、バックアップ「１」の「履歴情報１」を指すようにしておく。
【００４０】
以上のように、操作履歴を共有データベースに反映させる毎に上記の操作を行い、共有データベースのバージョン毎のフォルダ（例えば、バックアップ１）を作成して、その中にバックアップデータとして共有データベース１と操作履歴データベース３と履歴情報データベース９に保存する。
【００４１】
図７は、過去の操作履歴の表示例を示す。バックアップフォルダ毎に操作履歴データベース３や履歴情報データベース９を読み込み、その中身を操作履歴一覧画面やツリー形式などで表示することで、操作履歴を過去にさかのぼって検索・閲覧を可能にする。操作履歴だけでなく履歴情報を合わせて表示することにより、開発者は過去の操作について詳しい情報を確認することができる。
【００４２】
また、「操作を戻す」ボタンを押すことにより、操作履歴一覧で選択した操作履歴まで操作を戻す。上記のバックアップを利用して、選択した操作履歴のバージョンのフォルダにある共有データベースと操作履歴データベースと履歴情報データベースの３つのデータベースのデータを、それぞれ現在のデータベースのデータと置き換える。これら３つのデータベースは、実際にモデルの整合性が保たれている同時期のものであるため、置き換えてもエラーとなることはない。また、現在のデータベースを別のフォルダにバックアップしておけば、このバックアップしたデータベースを元に戻すことによって簡単に復元することができる。
【００４３】
開発者情報で操作履歴を検索する場合、開発者情報にチェックを入れて、目的の開発者を選択すると、操作履歴一覧には、開発者情報にその開発者が存在する操作履歴のみを表示する。図８は、開発者情報をキーワードに操作履歴を検索する例を示している。バージョン１は開発者Ｄのものであるが、バージョン２は開発者Ｄのものでないため、操作履歴一覧にはバージョン１のみ表示されている。キーワードとして開発者情報以外の別の項目があってもよい。
【００４４】
なお、操作履歴データベースの中身が空の場合、続けて操作履歴を共有データベースに反映させると、共有データベースのバージョンが変わらないため、フォルダ名の作成方法によっては、同じフォルダに中身が空のデータベースを上書きしてしまう可能性がある。このような場合、操作履歴を共有データベースに反映させること自体を行わないようにすることで、回避することができる。
【００４５】
（例２）操作内容を予め記述する例。
【００４６】
前記の例１では、開発者は自身の操作を共有に登録するときに、初めて操作内容を自然言語で入力する。操作が単純で少ないものであれば、このときに操作内容を入力するのは簡単である。一方、複数のＴＯＤＯリストの項目に対応するために、内容の異なる操作を行い、これらの操作を一度に共有に登録するときは、このときに操作内容を入力するのは非常に困難である。
【００４７】
そこで、図９に示すように、操作内容を予め記述する領域を編集データベース２に追加する。編集データベース２は、開発者毎に操作した内容を一時的に保存しておくためのもので、これに操作内容を追加する。
【００４８】
図９では、操作内容を入力するための専用の操作内容設定ダイアログを用意して、開発者は操作内容を入力する。ダイアログを表示するときに、現在設定されている操作内容を予め入力欄に表示しておく。また、操作一覧を合わせて表示することにより、開発者は操作を参考に操作内容を入力しやすくなる。「設定」ボタンを押すと、編集データベース２の操作内容は、ダイアログに入力した操作内容に置き換わる。「キャンセル」ボタンを押すと、操作内容はそのまま変更しない。
【００４９】
なお、本発明は、上記の実施形態で示すソフトウェア開発支援システムの一部又は全部の処理手順を有する開発支援方法とすること、あるいはこの方法における処理手順をコンピュータで実行可能に構成したプログラムとして提供することができる。
【図面の簡単な説明】
【００５０】
【図１】本発明の実施形態を示すソフトウェア開発支援システムの要部構成図。
【図２】履歴情報データベースのデータ構造例。
【図３】履歴情報の管理機能構成図。
【図４】ユースケース図の作成から共有登録する場合の模式図（１）。
【図５】ユースケース図の作成から共有登録する場合の模式図（２）。
【図６】操作履歴の共有データベースへの反映の例。
【図７】過去の操作履歴の表示の例。
【図８】過去の操作履歴の検索の例。
【図９】編集データベースのデータ構造の例。
【図１０】ソフトウェア開発支援システムの要部構成図（従来）。
【図１１】メイン画面のＴＯＤＯリスト一覧の例。
【図１２】操作履歴を共有に反映する例。
【符号の説明】
【００５１】
１  共有データベース
２  編集データベース
３  操作履歴データベース
４  プロジェクトデータベース
５  仕様作成支援機能
６  分析設計支援機能
７  共同作業支援機能
８  スケジュール管理機能
９  履歴情報データベース
【図１】
2008269280.tif 000003
【図２】
2008269280.tif 000004
【図３】
2008269280.tif 000005
【図４】
2008269280.tif 000006
【図５】
2008269280.tif 000007
【図６】
2008269280.tif 000008
【図７】
2008269280.tif 000009
【図８】
2008269280.tif 000010
【図９】
2008269280.tif 000011
【図１０】
2008269280.tif 000012
【図１１】
2008269280.tif 000013
【図１２】
2008269280.tif 000014