(57)【要約】【課題】既存ファイルセットに基づいて新規ファイルセットを生成する場合において、ユーザが変更対象とすべき箇所を確実に特定できるとともに、ユーザに対して変更を促すことのできるファイルセット生成装置、ファイルセット生成方法およびファイルセット生成プログラムを提供する。【解決手段】位置特定部３３は、第２既存ファイル１２の各々について、差分に対応するキーワードの存在の有無を判断する。第２ファイル変更出力部３４は、第２既存ファイル１２のうち、上記の差分に対応するキーワードが存在する第２既存ファイルを、当該キーワードに対応付けられたデータを削除した上で第２新規ファイルとして出力する。これに対して、第２ファイル複写出力部３５は、上記の差分に対応するキーワードが存在しない第２既存ファイルを第２新規ファイル２２として出力する。【選択図】図３
2009032062.tif 000002
【特許請求の範囲】
【請求項１】
予め格納された既存ファイルセットに基づいて新規ファイルセットを生成するファイルセット生成装置であって、
前記既存ファイルセットは、少なくとも１つのキーワードを含む第１の既存ファイルと、前記第１の既存ファイルの中の前記キーワードに対応付けられたデータを含む少なくとも１つの第２の既存ファイルとからなり、
前記新規ファイルセットは、第１の新規ファイルと、前記第２の既存ファイルと同数の第２の新規ファイルとからなり、
前記ファイルセット生成装置は、
外部入力されるファイルを前記第１の新規ファイルとして出力する出力手段と、
前記外部入力されるファイルと前記第１の既存ファイルとの間の差分を抽出する差分抽出手段と、
前記第２の既存ファイルの各々について、前記差分に対応するキーワードの位置を特定する位置特定手段と、
前記第２の既存ファイルのうち、前記差分に対応するキーワードが存在する第２の既存ファイルを、当該キーワードに対応付けられたデータを削除した上で前記第２の新規ファイルとして出力する変更出力部と、
前記第２の既存ファイルのうち、前記差分に対応するキーワードが存在しない第２の既存ファイルを前記第２の新規ファイルとして出力する複写出力部とを備える、ファイルセット生成装置。
【請求項２】
前記既存ファイルセットおよび前記新規ファイルセットは、構造化ドキュメントからなる、請求項１に記載のファイルセット生成装置。
【請求項３】
前記外部入力されるファイルは、ユーザによって、新規作成または前記第１の既存ファイルを編集して生成される、請求項１または２に記載のファイルセット生成装置。
【請求項４】
演算装置を用いて、記憶装置に予め格納された既存ファイルセットに基づいて新規ファイルセットを生成するファイルセット生成方法であって、
前記既存ファイルセットは、少なくとも１つのキーワードを含む第１の既存ファイルと、前記第１の既存ファイルの中の前記キーワードに対応付けられたデータを含む少なくとも１つの第２の既存ファイルとからなり、
前記新規ファイルセットは、第１の新規ファイルと、前記第２の既存ファイルと同数の第２の新規ファイルとからなり、
前記ファイルセット生成方法は、
前記演算部が、外部入力されるファイルを前記第１の新規ファイルとして出力するステップと、
前記外部入力されるファイルと前記第１の既存ファイルとの間の差分を抽出するステップと、
前記第２の既存ファイルの各々について、前記差分に対応するキーワードの位置を特定するステップと、
前記第２の既存ファイルのうち、前記差分に対応するキーワードが存在する第２の既存ファイルを、当該キーワードに対応付けられたデータを削除した上で前記第２の新規ファイルとして出力するステップと、
前記第２の既存ファイルのうち、前記差分に対応するキーワードが存在しない第２の既存ファイルを前記第２の新規ファイルとして出力するステップとを備える、ファイルセット生成方法。
【請求項５】
コンピュータを、予め格納された既存ファイルセットに基づいて新規ファイルセットを生成するファイルセット生成装置として機能させるためのプログラムであって、
前記既存ファイルセットは、少なくとも１つのキーワードを含む第１の既存ファイルと、前記第１の既存ファイルの中の前記キーワードに対応付けられたデータを含む少なくとも１つの第２の既存ファイルとからなり、
前記新規ファイルセットは、第１の新規ファイルと、前記第２の既存ファイルと同数の第２の新規ファイルとからなり、
前記プログラムは、前記コンピュータを、
外部入力されるファイルを前記第１の新規ファイルとして出力する出力手段と、
前記外部入力されるファイルと前記第１の既存ファイルとの間の差分を抽出する差分抽出手段と、
前記第２の既存ファイルの各々について、前記差分に対応するキーワードの位置を特定する位置特定手段と、
前記第２の既存ファイルのうち、前記差分に対応するキーワードが存在する第２の既存ファイルを、当該キーワードに対応付けられたデータを削除した上で前記第２の新規ファイルとして出力する変更出力部と、
前記第２の既存ファイルのうち、前記差分に対応するキーワードが存在しない第２の既存ファイルを前記第２の新規ファイルとして出力する複写出力部として機能させる、ファイルセット生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、互いに対応付けられた複数のファイルからなる既存ファイルセットから新規ファイルセットを生成するファイルセット生成装置、ファイルセット生成方法およびファイルセット生成プログラムに関する。
【背景技術】
【０００２】
従来から、ソフトウェア開発などの分野では、過去の資産を活用した開発手法が一般的に採用されてきた。すなわち、既存のドキュメントなど複写（コピー）し、このコピーしたドキュメントを基に改良や修正を加えていく方法が常套的に用いられている。
【０００３】
近年では、いわゆるオブジェクト指向と呼ばれるソフトウェア開発技術が用いられるため、参照関係にある複数のファイルが１つのファイルセットにまとめられている場合が多い。この参照関係とは、代表的に、キーワードを含む第１のファイルと、このキーワードに対応付けられたデータを含む第２のファイルとの関係を意味し、第１のファイルに記述された何らかの処理を行なう場合に、第２のファイルの内容が参照されることで、全体的な処理が実現される。
【０００４】
このようなファイルセットにおいて、第１のファイルに何らかの修正を加える場合には、その修正内容に応じて、参照関係にある第２のファイルについても修正を加える必要が生じ得る。しかし、開発者などのファイル作成者は、第２のファイルのうち修正すべき箇所の特定を誤ってしまう場合があった。その結果、第２のファイルへの修正が十分に行なわれないという問題があった。
【０００５】
そこで、たとえば特開平０２−１３０６５０号公報（特許文献１）には、オンライン処理とそのデータファイルの再構成を同時に実行してもデータの同一性を確保できるファイル管理方法を開示する。この方法によれば、元のファイルのデータが再構成後のファイルのどのデータとして格納されたかを記憶する手段、オンライン処理による元のファイルのデータの変更を、この情報に基づき、再構成後のファイルのデータにも反映する手段を含む。
【特許文献１】特開平０２−１３０６５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記のファイル管理方法は、元のファイル（第１のファイル）のデータの修正内容から、再構成後のファイル（第２のファイル）のデータに対する修正内容を自動的に決定できる場合に限って適用できるものであり、上記のファイルセットのように、第２のファイルに対する修正内容を自動的に決定できない場合には適用できない。そのため、上記のような課題を十分に解決することはできなかった。
【０００７】
そこで、この発明は、かかる課題を解決するためになされたものであり、その目的は、既存ファイルセットに基づいて新規ファイルセットを生成する場合において、ユーザが変更対象とすべき箇所を確実に特定できるとともに、ユーザに対して変更を促すことのできるファイルセット生成装置、ファイルセット生成方法およびファイルセット生成プログラムを提供することである。
【課題を解決するための手段】
【０００８】
この発明のある局面に従えば、予め格納された既存ファイルセットに基づいて新規ファイルセットを生成するファイルセット生成装置を提供する。既存ファイルセットは、少なくとも１つのキーワードを含む第１の既存ファイルと、第１の既存ファイルの中のキーワードに対応付けられたデータを含む少なくとも１つの第２の既存ファイルとからなる。新規ファイルセットは、第１の新規ファイルと、第２の既存ファイルと同数の第２の新規ファイルとからなる。ファイルセット生成装置は、外部入力されるファイルを第１の新規ファイルとして出力する出力手段と、外部入力されるファイルと第１の既存ファイルとの間の差分を抽出する差分抽出手段と、第２の既存ファイルの各々について、差分に対応するキーワードの位置を特定する位置特定手段と、第２の既存ファイルのうち、差分に対応するキーワードが存在する第２の既存ファイルを、当該キーワードに対応付けられたデータを削除した上で第２の新規ファイルとして出力する変更出力部と、第２の既存ファイルのうち、差分に対応するキーワードが存在しない第２の既存ファイルを第２の新規ファイルとして出力する複写出力部とを含む。
【０００９】
好ましくは、既存ファイルセットおよび新規ファイルセットは、構造化ドキュメントからなる。
【００１０】
好ましくは、外部入力されるファイルは、ユーザによって、新規作成または第１の既存ファイルを編集して生成される。
【００１１】
この発明の別の局面に従えば、演算装置を用いて、記憶装置に予め格納された既存ファイルセットに基づいて新規ファイルセットを生成するファイルセット生成方法を提供する。既存ファイルセットは、少なくとも１つのキーワードを含む第１の既存ファイルと、第１の既存ファイルの中のキーワードに対応付けられたデータを含む少なくとも１つの第２の既存ファイルとからなる。新規ファイルセットは、第１の新規ファイルと、第２の既存ファイルと同数の第２の新規ファイルとからなる。ファイルセット生成方法は、演算部が、外部入力されるファイルを第１の新規ファイルとして出力するステップと、外部入力されるファイルと第１の既存ファイルとの間の差分を抽出するステップと、第２の既存ファイルの各々について、差分に対応するキーワードの位置を特定するステップと、第２の既存ファイルのうち、差分に対応するキーワードが存在する第２の既存ファイルを、当該キーワードに対応付けられたデータを削除した上で第２の新規ファイルとして出力するステップと、第２の既存ファイルのうち、差分に対応するキーワードが存在しない第２の既存ファイルを第２の新規ファイルとして出力するステップとを含む。
【００１２】
この発明のさらに別の局面に従えば、コンピュータを、予め格納された既存ファイルセットに基づいて新規ファイルセットを生成するファイルセット生成装置として機能させるためのプログラムを提供する。既存ファイルセットは、少なくとも１つのキーワードを含む第１の既存ファイルと、第１の既存ファイルの中のキーワードに対応付けられたデータを含む少なくとも１つの第２の既存ファイルとからなる。新規ファイルセットは、第１の新規ファイルと、第２の既存ファイルと同数の第２の新規ファイルとからなる。プログラムは、コンピュータを、外部入力されるファイルを第１の新規ファイルとして出力する出力手段と、外部入力されるファイルと第１の既存ファイルとの間の差分を抽出する差分抽出手段と、第２の既存ファイルの各々について、差分に対応するキーワードの位置を特定する位置特定手段と、第２の既存ファイルのうち、差分に対応するキーワードが存在する第２の既存ファイルを、当該キーワードに対応付けられたデータを削除した上で第２の新規ファイルとして出力する変更出力部と、第２の既存ファイルのうち、差分に対応するキーワードが存在しない第２の既存ファイルを第２の新規ファイルとして出力する複写出力部として機能させる。
【発明の効果】
【００１３】
この発明によれば、既存ファイルセットに基づいて新規ファイルセットを生成する場合において、ユーザが変更対象とすべき箇所を確実に特定できるとともに、ユーザに対して変更を促すことができる。
【発明を実施するための最良の形態】
【００１４】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１５】
（ハードウェア構成）
本発明の実施の形態に従うファイルセット生成装置は、代表的に、パーソナルコンピュータやワークステーションといったコンピュータ上で実行されるプログラムによって実現される。
【００１６】
図１は、この発明の実施の形態に従うファイルセット生成装置を実現するための代表的なハードウェア構成であるコンピュータ１００を示す斜視図である。
【００１７】
図１を参照して、コンピュータ１００は、ＦＤ（Flexible Disk）駆動装置１１１およびＣＤ−ＲＯＭ（Compact Disk-Read Only Memory)駆動装置１１３を備えたコンピュータ本体１０１と、モニタ１０２と、キーボード１０３と、マウス１０４とを含む。
【００１８】
図２は、コンピュータ１００のハードウェア構成を示す概略構成図である。
図２を参照して、コンピュータ本体１０１は、図１に示すＦＤ駆動装置１１１およびＣＤ−ＲＯＭ駆動装置１１３に加えて、相互にバスで接続された、演算装置であるＣＰＵ（Central Processing Unit）１０５と、メモリ１０６と、記憶装置である固定ディスク１０７と、通信インターフェース１０９とを含む。
【００１９】
ＦＤ駆動装置１１１にはＦＤ１１２が装着され、ＣＤ−ＲＯＭ駆動装置１１３にはＣＤ−ＲＯＭ１１４が装着される。上述したように、本実施の形態に従うファイルセット生成装置は、ＣＰＵ１０５がメモリ１０６などのコンピュータハードウェアを用いて、プログラムを実行することで実現される。一般的に、このようなプログラムは、ＦＤ１１２やＣＤ−ＲＯＭ１１４などの記録媒体に格納されて、またはネットワークなどを介して流通する。そして、このようなプログラムは、ＦＤ駆動装置１１１やＣＤ−ＲＯＭ駆動装置１１３などにより記録媒体から読取られて、または通信インターフェース１０９にて受信されて、固定ディスク１０７に格納される。さらに、固定ディスク１０７からメモリ１０６に読出されて、ＣＰＵ１０５により実行される。
【００２０】
モニタ１０２は、ＣＰＵ１０５が出力する情報を表示するための表示部であって、一例としてＬＣＤ（Liquid Crystal Display）やＣＲＴ（Cathode Ray Tube）などから構成される。マウス１０４は、クリックやスライドなどの動作に応じたユーザから指令を受付ける。キーボード１０３は、入力されるキーに応じたユーザから指令を受付ける。ＣＰＵ１０５は、プログラムされた命令を順次実行することで、各種の演算を実施する演算処理部である。メモリ１０６は、ＣＰＵ１０５のプログラム実行に応じて、各種の情報を記憶する。通信インターフェース１０９は、コンピュータ１００と他の装置との間の通信を確立するための装置であり、ＣＰＵ１０５が出力した情報をたとえば電気信号に変換して他の装置へ送出するとともに、他の装置から電気信号を受信してＣＰＵ１０５が利用できる情報に変換する。固定ディスク１０７は、ＣＰＵ１０５が実行するプログラムや予め定められたデータなどを記憶する不揮発性の記憶装置である。また、コンピュータ１００には、必要に応じて、プリンタなどの他の出力装置が接続されてもよい。
【００２１】
（機能ブロック）
図３は、この発明の実施の形態に従うファイルセット生成装置１の機能ブロック図である。
【００２２】
図３を参照して、ファイルセット生成装置１は、既存ファイルセット１５を予め格納するファイルセット記憶部４０を含む。なお、ファイルセット記憶部４０は、代表的に固定ディスク１０７の所定領域に形成される。既存ファイルセット１５は、第１既存ファイル１０と、複数の第２既存ファイル１２Ａ，１２Ｂ，・・・からなる第２既存ファイル群１１とを含む。そして、ファイルセット生成装置１は、新規ファイル生成部２から新規ファイル３を入力されると、ファイルセット記憶部４０に予め格納されている既存ファイルセット１５に基づいて、新規ファイルセット２５を生成する。なお、新規ファイルセット２５は、新規ファイル生成部２から入力された新規ファイル３を複写した第１新規ファイル２０と、複数の第２既存ファイル１２Ａ，１２Ｂ，・・・にそれぞれ対応する複数の第２新規ファイル２２Ａ，２２Ｂ，・・・からなる第２新規ファイル群２１とを含む。したがって、第２既存ファイル群１１に含まれる第２既存ファイル１２Ａ，１２Ｂ，・・・のファイル数と、第２新規ファイル群２１に含まれる第２新規ファイル２２Ａ，２２Ｂ，・・・のファイル数とは互いに一致する。既存ファイルセット１５および新規ファイルセット２５のファイル構造については、後述する。なお、以下の説明では、第２既存ファイル１２Ａ，１２Ｂ，・・・を「第２既存ファイル１２」とも総称するとともに、第２新規ファイル２２Ａ，２２Ｂ，・・・を「第２新規ファイル２２」とも総称する。
【００２３】
さらに、ファイルセット生成装置１は、第１ファイル出力部３１と、差分抽出部３２と、位置特定部３３と、第２ファイル変更出力部３４と、第２ファイル複写出力部３５とを含む。
【００２４】
第１ファイル出力部３１は、新規ファイル生成部２から入力される新規ファイル３を複写して、第１新規ファイル２０として出力するとともに、この新規ファイル３（第１新規ファイル２０）を差分抽出部３２へ出力する。
【００２５】
差分抽出部３２は、新規ファイル３と、既存ファイルセット１５に含まれる第１既存ファイル１０との間の差分を抽出する。そして、差分抽出部３２は、この抽出した差分についての差分情報を位置特定部３３へ出力する。
【００２６】
位置特定部３３は、第２既存ファイル１２の各々に対して、上記の差分に対応するキーワードの位置を特定する。さらに、位置特定部３３は、第２既存ファイル１２の各々について、上記の差分に対応するキーワードの存在の有無を判断する。そして、位置特定部３３は、このキーワードの存在の有無に基づいて、第２ファイル変更出力部３４および第２ファイル複写出力部３５からの出力を制御する。
【００２７】
第２ファイル変更出力部３４は、第２既存ファイル１２のうち、上記の差分に対応するキーワードが存在する第２既存ファイルを、当該キーワードに対応付けられたデータを削除した上で第２新規ファイルとして出力する。
【００２８】
これに対して、第２ファイル複写出力部３５は、上記の差分に対応するキーワードが存在しない第２既存ファイルを、そのまま第２新規ファイル２２として出力する。すなわち、第２ファイル複写出力部３５は、第２既存ファイル１２のうち、第２ファイル変更出力部３４から第２新規ファイル２２として出力されたものを除いた残余の第２既存ファイル１２を、複写（コピー）した上で第２の新規ファイル２２として出力する。
【００２９】
なお、新規ファイル生成部２は、代表的に、コンピュータのオペレーティングシステム
（ＯＳ）によって提供されるファイルマネージャや編集アプリケーションなどで構成される。そして、新規ファイル生成部２は、ユーザ操作に応じて、ファイルセット記憶部４０に予め格納されている第１既存ファイル１０を複写・編集したり、新規作成したりして、新規ファイル３を生成する。すなわち、開発者などのファイル作成者は、ファイルセット記憶部４０に予め格納されている第１既存ファイル１０に所望の修正を加えるなどにより、新規ファイル３を作成する。
【００３０】
（ファイル構造）
図４は、この発明の実施の形態に従う既存ファイルセット１５および新規ファイルセット２５のファイル構造を示す概略図である。ここで、図４（ａ）は、既存ファイルセット１５のファイル構造を示し、図４（ｂ）は、新規ファイルセット２５のファイル構造を示す。なお、既存ファイルセット１５および新規ファイルセット２５は、一例として、構造化ドキュメントである。
【００３１】
図４（ａ）を参照して、第１既存ファイル１０の一例である「基本設計書Ａ」には、「機能設計書１」，「機能設計書２」，「機能設計書３」，「システムテスト設計書」が対応付けられている。そして、「機能設計書１」，「機能設計書２」，「機能設計書３」には、それぞれ「機能テスト設計書１」，「機能テスト設計書２」，「機能テスト設計書３」がさらに対応付けられている。一例として、これらの第２既存ファイル１２は、「基本設計書Ａ」に含まれる機能名というデータに対応するデータを含んでいる。
【００３２】
次に、図４（ｂ）を参照して、新規ファイルセット２５は、図４（ａ）に示す既存ファイルセット１５と同様のファイル構成を有する。すなわち、新規ファイルセット２５は、第１既存ファイル１０の一例である「基本設計書Ａ」に対応して、第１新規ファイル２０の一例である「基本設計書Ａ’」を含む。さらに、新規ファイルセット２５は、この「基本設計書Ａ’」に直接的または間接的に対応付けられる「機能設計書１’」，「機能設計書２’」，「機能設計書３’」，「システムテスト設計書’」，「機能テスト設計書１’」，「機能テスト設計書２’」，「機能テスト設計書３’」を含む。
【００３３】
図５は、この発明の実施の形態に従うファイル間の対応付けを説明するための図である。図５には、一例として、図４（ａ）に示す「基本設計書Ａ」と「機能設計書１」との対応付けの例を示す。
【００３４】
図５を参照して、第１既存ファイル１０の一例である「基本設計書Ａ」は、＜Ｍｏｄｕｌｅ＞タグ〜＜／Ｍｏｄｕｌｅ＞タグ（領域１６ａ）で１つの機能の概略設計を表す。また、＜Ｍｏｄｕｌｅ＞タグ〜＜／Ｍｏｄｕｌｅ＞タグの間に挿入されているタグは、対応の機能に属する設計情報の種別を表すという構造になっている。図５に示す例では、携帯電話のプロジェクトにおいて、「ＴＶ機能」という名称が付けられた機能の概略設計が記述されており、次に続く、＜Ｏｐｅｒａｔｉｏｎ＞タグ〜＜／Ｏｐｅｒａｔｉｏｎ＞タグの中に、「ＴＶ機能」の操作方法として「メニューのＴＶ→受信を選択する」が記述されている。さらに、図５に示す例では、「電子メール」という名称が付けられた機能の概略設計も記述されている（領域１６ｂ）。
【００３５】
これに対して、第２既存ファイル１２の一例である「機能設計書１」は、＜Ｔｉｔｌｅ＞タグ〜＜／Ｔｉｔｌｅ＞タグを用いて、「基本設計書Ａ」との対応関係を示す。すなわち、＜Ｔｉｔｌｅ＞タグ〜＜／Ｔｉｔｌｅ＞タグ（領域１４）の間には、「機能設計書１」において「ＴＶ機能」という名称が付けられた機能との対応関係を示すように、同一の「ＴＶ機能」という名称が記述されている。このように「機能設計書１」には、キーワード１０ａ，１０ｂが含まれるとともに、このキーワード１０ａに対応付けて「基本設計書Ａ」における機能についてのより詳細な機能設計が記述されている。すなわち、＜Ｏｐｅｒａｔｉｏｎ＞タグ〜＜／Ｏｐｅｒａｔｉｏｎ＞タグの中に、「ＴＶ機能」のより詳細な操作方法として「ＴＶキー  受信キー  決定キー  の順に押す。」が記述されている。
【００３６】
このように、第１既存ファイル１０と第２既存ファイル１２との間では、共通のキーワードを用いて対応付け（参照関係）が実現される。
【００３７】
第１既存ファイル１０の一例である「基本設計書Ａ」と、他の第２既存ファイル１２である「機能設計書２」，「機能設計書３」，「システムテスト設計書」との間の対応付け、および第２既存ファイル１２同士間の対応付けについても、図５と同様の方法で実現される。
【００３８】
（ファイル生成処理）
次に、図６および図７を参照して、本実施の形態に従うファイルセット生成装置１におけるファイルセット生成処理について説明する。
【００３９】
図６は、新規ファイル３の内容が図５に示す第１既存ファイル１０の内容と異なる場合の処理を示す図である。
【００４０】
図７は、新規ファイル３の内容が図５に示す第１既存ファイル１０の内容と同一である場合の処理を示す図である。
【００４１】
図６（ａ）を参照して、ファイル作成者が予め格納されている第１既存ファイル１０を編集して、新たな新規ファイル３を生成した場合には、新規ファイル３の内容が図５に示す第１既存ファイル１０の内容と異なるものとなる。なお、新規ファイル３と第１既存ファイル１０との間の差分の有無にかかわらず、ファイルセット生成装置１は、新規ファイル３をそのまま第１新規ファイル２０として出力する。
【００４２】
一例として、第１既存ファイル１０である「基本設計書Ａ」の＜Ｏｐｅｒａｔｉｏｎ＞タグ〜＜／Ｏｐｅｒａｔｉｏｎ＞タグの中の記載が「メニューのＴＶ→受信を選択する」であり、新規ファイル３（第１新規ファイル２０）である「基本設計書Ｂ」の対応する＜Ｏｐｅｒａｔｉｏｎ＞タグ〜＜／Ｏｐｅｒａｔｉｏｎ＞タグの中の記載が「液晶画面を縦向きから横向きにする」に変更された場合を考える。すなわち、新規ファイル３と第１既存ファイル１０との間の差分は、この＜Ｏｐｅｒａｔｉｏｎ＞タグ〜＜／Ｏｐｅｒａｔｉｏｎ＞タグの中の記載となる。
【００４３】
すると、ファイルセット生成装置１は、第１既存ファイル１０中のこの差分に対応するキーワード（この場合には、「ＴＶ機能」）を抽出し、さらに第２既存ファイル１２に対して、この抽出したキーワードである「ＴＶ機能」の位置を特定する。
【００４４】
図６（ｂ）を参照して、一例として、第２既存ファイル１２である「機能設計書１」における＜Ｔｉｔｌｅ＞タグ〜＜／Ｔｉｔｌｅ＞タグの中に「ＴＶ機能」が存在しているとする。この場合には、ファイルセット生成装置１は、「機能設計書１」中において、対象のキーワードである「ＴＶ機能」に対応付けられたデータ、すなわち＜Ｏｐｅｒａｔｉｏｎ＞タグ〜＜／Ｏｐｅｒａｔｉｏｎ＞タグの中の記載を削除した上で、第２新規ファイル２２である「機能設計書１’」として出力する。
【００４５】
このように、第１既存ファイル１０に対応する新規ファイル２０に変更が加えられた場合には、この変更箇所に相当する部分のデータが削除されるので、ユーザは修正対象となる箇所を確実に特定することができる。このため、既存のファイルセットを利用して新たなファイルセットを生成する過程において、その作業量を低減できるとともに、人為的なミスを抑制できる。
【００４６】
これに対して、新規ファイル３の変更箇所に相当しないキーワードに対応付けられた第２既存ファイルについては、そのまま第２新規ファイル２２として出力される。
【００４７】
図７（ａ）を参照して、一例として、第１既存ファイル１０である「基本設計書Ａ」の＜Ｏｐｅｒａｔｉｏｎ＞タグ〜＜／Ｏｐｅｒａｔｉｏｎ＞タグの中の記載と、新規ファイル３（第１新規ファイル２０）である「基本設計書Ｂ」の対応する＜Ｏｐｅｒａｔｉｏｎ＞タグ〜＜／Ｏｐｅｒａｔｉｏｎ＞タグの中の記載とが同一である場合を考える。すなわち、「基本設計書Ａ」の「ＴＶ機能」に関連する記載に変更がない場合を考える。
【００４８】
この場合には、ファイルセット生成装置１は、第２既存ファイル１２である「機能設計書１」を複写して、第２新規ファイル２２である「機能設計書１’」として出力する。
【００４９】
このように、第１既存ファイル１０に対応する新規ファイル２０に変更が加えられていない場合には、対応する第２既存ファイル１２をそのまま第２新規ファイル２２として出力するので、ファイル作成者における作業量を低減できる。
【００５０】
（処理手順）
図８は、この発明の実施の形態に従うファイルセット生成装置における全体処理手順を示すフローチャートである。このフローチャートは、代表的に、ＣＰＵ１０５（図２）が固定ディスク１０７に予め格納されたプログラムをメモリ１０６に読み出して実行することにより実現される。
【００５１】
図３および図８を参照して、第１ファイル出力部３１として機能するＣＰＵ１０５は、新規ファイル３が入力されたか否かを判断する（ステップＳ１０）。新規ファイル３が入力されていなければ（ステップＳ１０においてＮＯ）、ＣＰＵ１０５は、新規ファイル３が入力されるまで待つ（ステップＳ１０）。
【００５２】
新規ファイル３が入力されると（ステップＳ１０においてＹＥＳ）、ＣＰＵ１０５は、この新規ファイル３を第１新規ファイル２０として出力する（ステップＳ１２）。続いて、差分抽出部３２として機能するＣＰＵ１０５は、ファイルセット記憶部４０（固定ディスク１０７）に予め格納されている既存ファイルセット１５のうち、第１既存ファイル１０を読出す（ステップＳ１４）。そして、差分抽出部３２として機能するＣＰＵ１０５は、新規ファイル３と第１既存ファイル１０とを比較して、両者の間の差分を抽出する（ステップＳ１６）。なお、ステップＳ１６における差分抽出処理の詳細については、後述する。
【００５３】
続いて、位置特定部３３は、ファイルセット記憶部４０に予め格納される第２既存ファイル１２を読出す（ステップＳ１８）。そして、位置特定部３３は、この読出した第２既存ファイル１２において、ステップＳ１６で抽出した差分に対応するキーワードの位置を特定し（ステップＳ２０）、当該第２既存ファイル１２に差分に対応するキーワードが存在しているか否かを判断する（ステップＳ２２）。
【００５４】
差分に対応するキーワードが存在している場合（ステップＳ２２においてＹＥＳの場合）には、第２ファイル変更出力部３４として機能するＣＰＵ１０５は、当該第２既存ファイル１２に対して、当該キーワードに対応付けられたデータを削除した上で第２新規ファイルとして出力する（ステップＳ２４）。
【００５５】
一方、差分に対応するキーワードが存在していない場合（ステップＳ２２においてＮＯの場合）には、第２ファイル複写出力部３５として機能するＣＰＵ１０５は、当該第２既存ファイル１２を複写して第２新規ファイルとして出力する（ステップＳ２６）。
【００５６】
その後、位置特定部３３として機能するＣＰＵ１０５は、ファイルセット記憶部４０に予め格納される第２既存ファイル１２をすべて読出したか否かを判断する（ステップＳ２８）。第２既存ファイル１２をすべて読出していなければ（ステップＳ２８においてＮＯ）、位置特定部３３はステップＳ１８以降の処理を再度実行する。これに対して、第２既存ファイル１２をすべて読出していれば（ステップＳ２８においてＹＥＳ）、処理は終了する。
【００５７】
（差分抽出処理）
次に、図３に示す差分抽出部３２が実行する（図８に示すフローチャートにおけるステップＳ２２の）差分抽出処理について詳述する。
【００５８】
特に、本実施の形態に従うファイルセット生成装置１においては、差分抽出部３２は、新規ファイル３と第１既存ファイル１０とを比較して、２種類の差分情報を生成する。具体的には、差分抽出部３２は、新規ファイル３と第１既存ファイル１０との間で相違する箇所について、第１既存ファイル１０の内容を出力した既存ファイル差分情報８０と、新規ファイル３の内容を出力した新規ファイル差分情報８２とを出力する。
【００５９】
既存ファイル差分情報８０は、第１既存ファイル１０に対して内容が「変更」または「追加」がされることで新規ファイル３が作成された場合に、その「変更」または「追加」された箇所を特定するために用いられる。一方、新規ファイル差分情報８２は、第１既存ファイル１０に対して内容が「削除」されることで新規ファイル３が作成された場合に、その「削除」された箇所を特定するために用いられる。
【００６０】
図９は、差分抽出部３２で生成される差分情報の内容を示す図である。
図９（ａ）は、既存ファイル差分情報８０および新規ファイル差分情報８２のデータ形式を示し、図９（ｂ）は、生成される既存ファイル差分情報８０の一例を示し、図９（ｃ）は、新規ファイル差分情報８２の一例を示す。なお、図９（ｂ）および図９（ｃ）は、図６に示す新規ファイル３と第１既存ファイル１０との間の差分情報の一例を示す。
【００６１】
図６および図９（ａ）を参照して、既存ファイル差分情報８０および新規ファイル差分情報８２のデータ構造としては、いずれも、Ｍｏｄｕｌｅ列８０ａと、タグ列８０ｂと、データ部列８０ｃと、差分列８０ｄとを含む。なお、行数については、格納されるデータの数に応じて決定される。
【００６２】
Ｍｏｄｕｌｅ列８０ａには、第１既存ファイル１０または新規ファイル３の＜Ｍｏｄｕｌｅ＞タグに記載されている値（機能の名称）が格納される。タグ列８０ｂには、対応する（同一行の）＜Ｍｏｄｕｌｅ＞タグに格納されている値にネストされている文字列（タグ名）が格納される。データ部列８０ｃには、タグ列８０ｂに格納されているタグ値をもつタグに囲まれて記述される文字列（データ）が格納される。差分列８０ｄには、第１既存ファイル１０または新規ファイル３との間の相違箇所（差分）が「追加」「変更」「削除」「一致」のいずれであるかを示す値が格納される。なお、「一致」の場合には、差分が無いことを意味する。
【００６３】
図６（ａ）および図９（ｂ）を参照して、既存ファイル差分情報８０として出力される内容についてみれば、Ｍｏｄｕｌｅ列８０ａには「ＴＶ機能」が格納され、タグ列８０ｂには「ＴＶ機能」に含まれるタグ名「Ｏｐｅｒａｔｉｏｎ」が格納され、データ部列８０ｃには、タグ名「Ｏｐｅｒａｔｉｏｎ」で囲まれる「メニューのＴＶ→受信を選択する」が格納される。そして、差分列８０ｄには「変更」が格納される。特に、データ部列８０ｃとして出力される内容は、第１既存ファイル１０の内容になっている。
【００６４】
これに対して、図６（ａ）および図９（ｃ）を参照して、新規ファイル差分情報８２として出力される内容についてみれば、Ｍｏｄｕｌｅ列８０ａ、タグ列８０ｂおよび差分列８０ｄとして格納されるデータは、既存ファイル差分情報８０のそれと同様であるが、データ部列８０ｃとして「液晶画面を縦向きから横向きにする」が格納されている。このデータ部列８０ｃに格納されるデータは、新規ファイル３に対応する内容となっている。
【００６５】
図１０および図１１は、この発明の実施の形態に従う差分抽出部３２における差分抽出処理の手順を示すフローチャートである。
【００６６】
図６（ａ）および図１０を参照して、差分抽出部３２として機能するＣＰＵ１０５は、第１既存ファイル１０から１行分の文字列を読出す（ステップＳ１００）。すなわち、ＣＰＵ１０５は、新規ファイル３と第１既存ファイル１０とを１行ずつ比較し、差分情報を生成する。ＣＰＵ１０５は、この読出した１行分の文字列を、“＜”，“＞”で囲まれたタグ部分と、それ以外のデータ部分とに分離する（ステップ１０２）。このとき、タグ部分が存在しない場合は、前回分離したタグ部分の値がそのまま用いられる。さらに、ＣＰＵ１０５は、この分離したタグ部分の値が“＜Ｍｏｄｕｌｅ＞”であるか否かを判断する（ステップＳ１０４）。
【００６７】
この分離したタグ部分の値が“＜Ｍｏｄｕｌｅ＞”である場合（ステップＳ１０４においてＹＥＳの場合）には、ＣＰＵ１０５は、さらにデータ部分に文字列があるか否かを判断する（ステップＳ１０６）。データ部分に文字列がある場合（ステップＳ１０６においてＹＥＳの場合）には、ＣＰＵ１０５は、既存ファイル差分情報８０に行を追加するとともに、この追加した行の対応するＭｏｄｕｌｅ列８０ａに、このデータ部分に存在する文字列を記録する（ステップＳ１０８）。
【００６８】
ステップＳ１０８の処理後、またはデータ部分に文字列がない場合（ステップＳ１０６においてＮＯの場合）には、処理は後述するステップＳ１２０へ進む。
【００６９】
一方、分離したタグ部分の値が“＜Ｍｏｄｕｌｅ＞”でない場合（ステップＳ１０４においてＮＯの場合）には、ＣＰＵ１０５は、タグ部分が“＜／”で始まっているか否かを判断する（ステップＳ１１０）。タグ部分が“＜／”で始まっている場合（ステップＳ１１０においてＹＥＳの場合）には、ＣＰＵ１０５は、データ部分の文字列を破棄して後述のステップＳ１２０の処理を実行する。
【００７０】
一方、タグ部分が“＜／”で始まっていない場合（ステップＳ１１０においてＮＯの場合）には、ＣＰＵ１０５は、読出した１行分の文字列が“＜”および“＞”で囲まれたタグで始まっているか否かを判断する（ステップＳ１１２）。
【００７１】
読出した１行分の文字列が“＜”および“＞”で囲まれたタグで始まっている場合（ステップＳ１１２においてＹＥＳの場合）には、ＣＰＵ１０５は、既存ファイル差分情報８０の対応するタグ列８０ｂにタグ部分の値を記録する（ステップＳ１１４）。このとき、タグ列８０ｂに何らかの値が既に記録されている場合には、新たに行を追加してＭｏｄｕｌｅ列８０ａに記録されている値を複写した上で、新たに追加した行のタグ列８０ｂにタグ部分の値を記録する。
【００７２】
ステップＳ１１４の処理後、または読出した１行分の文字列が“＜”および“＞”で囲まれたタグで始まっていない場合（ステップＳ１１２においてＮＯの場合）には、ＣＰＵ１０５は、データ部分に文字列があるか否かを判断する（ステップＳ１１６）。データ部分に文字列がない場合（ステップＳ１１６においてＮＯの場合）には、処理はステップＳ１２０へ進む。
【００７３】
一方、データ部分に文字列がある場合（ステップＳ１１６においてＹＥＳの場合）には、ＣＰＵ１０５は、既存ファイル差分情報８０の対応するＭｏｄｕｌｅ列８０ａに、このデータ部分に存在する文字列を記録する（ステップＳ１１８）。そして、処理はステップＳ１２０へ進む。
【００７４】
ステップＳ１２０では、ＣＰＵ１０５は、第１既存ファイル１０に含まれるすべての文字列を読出したか否かを判断する（ステップＳ１２０）。第１既存ファイル１０に含まれるすべての文字列を読出していない場合（ステップＳ１２０においてＮＯの場合）には、処理はステップＳ１００へ戻り、ＣＰＵ１０５は、第１既存ファイル１０から次の１行分の文字列を読出し、ステップＳ１０２以下の処理を再度実行する。
【００７５】
一方、第１既存ファイル１０に含まれるすべての文字列を読出している場合（ステップＳ１２０においてＹＥＳの場合）には、処理はステップＳ１３０へ進む。
【００７６】
以上のように、ステップＳ１００〜ステップＳ１２０の処理は、第１既存ファイル１０から、既存ファイル差分情報８０のＭｏｄｕｌｅ列８０ａと、タグ列８０ｂと、データ部列８０ｃとを抽出するための処理である。
【００７７】
次に、差分抽出部３２として機能するＣＰＵ１０５は、新規ファイル３から１行分の文字列を読出し（ステップＳ１３０）、この読出した１行分の文字列を、“＜”，“＞”で囲まれたタグ部分と、それ以外のデータ部分とに分離する（ステップ１３２）。このとき、タグ部分が存在しない場合は、前回分離したタグ部分の値がそのまま用いられる。さらに、ＣＰＵ１０５は、この分離したタグ部分の値が“＜Ｍｏｄｕｌｅ＞”であるか否かを判断する（ステップＳ１３４）。
【００７８】
この分離したタグ部分の値が“＜Ｍｏｄｕｌｅ＞”である場合（ステップＳ１３４においてＹＥＳの場合）には、ＣＰＵ１０５は、さらにデータ部分に文字列があるか否かを判断する（ステップＳ１３６）。データ部分に文字列がある場合（ステップＳ１３６においてＹＥＳの場合）には、ＣＰＵ１０５は、新規ファイル差分情報８２に行を追加するとともに、この追加した行の対応するＭｏｄｕｌｅ列８０ａに、このデータ部分に存在する文字列を記録する（ステップＳ１３８）。
【００７９】
ステップＳ１３８の処理後、またはデータ部分に文字列がない場合（ステップＳ１３６においてＮＯの場合）には、処理は後述するステップＳ１５０へ進む。
【００８０】
一方、分離したタグ部分の値が“＜Ｍｏｄｕｌｅ＞”でない場合（ステップＳ１３４においてＮＯの場合）には、ＣＰＵ１０５は、タグ部分が“＜／”で始まっているか否かを判断する（ステップＳ１４０）。タグ部分が“＜／”で始まっている場合（ステップＳ１４０においてＹＥＳの場合）には、ＣＰＵ１０５は、データ部分の文字列を破棄して後述のステップＳ１５０の処理を実行する。
【００８１】
一方、タグ部分が“＜／”で始まっていない場合（ステップＳ１４０においてＮＯの場合）には、ＣＰＵ１０５は、読出した１行分の文字列が“＜”および“＞”で囲まれたタグで始まっているか否かを判断する（ステップＳ１４２）。
【００８２】
読出した１行分の文字列が“＜”および“＞”で囲まれたタグで始まっている場合（ステップＳ１４２においてＹＥＳの場合）には、ＣＰＵ１０５は、新規ファイル差分情報８２の対応するタグ列８０ｂにタグ部分の値を記録する（ステップＳ１４４）。このとき、タグ列８０ｂに何らかの値が既に記録されている場合には、新たに行を追加してＭｏｄｕｌｅ列８０ａに記録されている値を複写した上で、新たに追加した行のタグ列８０ｂにタグ部分の値を記録する。
【００８３】
ステップＳ１４４の処理後、または読出した１行分の文字列が“＜”および“＞”で囲まれたタグで始まっていない場合（ステップＳ１４２においてＮＯの場合）には、ＣＰＵ１０５は、データ部分に文字列があるか否かを判断する（ステップＳ１４６）。データ部分に文字列がない場合（ステップＳ１４６においてＮＯの場合）には、処理はステップＳ１５０へ進む。
【００８４】
一方、データ部分に文字列がある場合（ステップＳ１４６においてＹＥＳの場合）には、ＣＰＵ１０５は、新規ファイル差分情報８２の対応するＭｏｄｕｌｅ列８０ａに、このデータ部分に存在する文字列を記録する（ステップＳ１４８）。そして、処理はステップＳ１５０へ進む。
【００８５】
ステップＳ１５０では、ＣＰＵ１０５は、新規ファイル３に含まれるすべての文字列を読出したか否かを判断する（ステップＳ１５０）。新規ファイル３に含まれるすべての文字列を読出していない場合（ステップＳ１５０においてＮＯの場合）には、処理はステップＳ１３０へ戻り、ＣＰＵ１０５は、新規ファイル３から次の１行分の文字列を読出し、ステップＳ１３２以下の処理を再度実行する。
【００８６】
一方、新規ファイル３に含まれるすべての文字列を読出している場合（ステップＳ１５０においてＹＥＳの場合）には、処理は、図１１に記載のフローチャートへ進む。
【００８７】
以上のように、ステップＳ１３０〜ステップＳ１５０の処理は、新規ファイル３から、新規ファイル差分情報８２のＭｏｄｕｌｅ列８０ａと、タグ列８０ｂと、データ部列８０ｃとを抽出するための処理である。
【００８８】
次に、図６（ａ）および図１１を参照して、差分抽出部３２として機能するＣＰＵ１０５は、新規ファイル差分情報８２から１行分の内容を読出す（ステップＳ１６０）。そして、ＣＰＵ１０５は、既存ファイル差分情報８０に含まれる行の各々に対して、読出した新規ファイル差分情報８２の１行分の内容におけるＭｏｄｕｌｅ列８０ａおよびタグ列８０ｂに格納されている値と同一の値をもつ行を検索する（ステップＳ１６２）。さらに、ＣＰＵ１０５は、既存ファイル差分情報８０に、読出した新規ファイル差分情報８２の１行分の内容におけるＭｏｄｕｌｅ列８０ａおよびタグ列８０ｂに格納されている値と同一の値をもつ行が存在するか否かを判断する（ステップＳ１６４）。
【００８９】
既存ファイル差分情報８０に同一の値をもつ行が存在しない場合（ステップＳ１６４においてＮＯの場合）には、ＣＰＵ１０５は、ステップＳ１６０において読出した行の差分列８０ｄに「追加」を記録する（ステップＳ１６６）。そして、処理は後述するステップＳ１７４へ進む。
【００９０】
一方、既存ファイル差分情報８０に同一の値をもつ行が存在する場合（ステップＳ１６４においてＹＥＳの場合）には、ＣＰＵ１０５は、両者のデータ部列８０ｃに記録されている文字列が互いに一致するか否かを判断する（ステップＳ１６８）。
【００９１】
両者のデータ部列８０ｃに記録されている文字列が一致しない場合（ステップＳ１６８においてＮＯの場合）には、ＣＰＵ１０５は、ステップＳ１６０において読出した行の差分列８０ｄ、および同一の値をもつ既存ファイル差分情報８０の行の差分列８０ｄに「変更」をそれぞれ記録する（ステップＳ１７０）。そして、処理は後述するステップＳ１７４へ進む。
【００９２】
これに対して、両者のデータ部列８０ｃに記録されている文字列が一致する場合（ステップＳ１６８においてＹＥＳの場合）には、ＣＰＵ１０５は、ステップＳ１６０において読出した行の差分列８０ｄ、および同一の値をもつ既存ファイル差分情報８０の行の差分列８０ｄに「一致」をそれぞれ記録する（ステップＳ１７２）。そして、処理は後述するステップＳ１７４へ進む。
【００９３】
ステップＳ１７４では、ＣＰＵ１０５は、新規ファイル差分情報８２に含まれるすべての行の内容を読出したか否かを判断する（ステップＳ１７４）。新規ファイル差分情報８２に含まれる行の内容をすべては読出していない場合（ステップＳ１７４においてＮＯの場合）には、処理はステップＳ１６０へ戻り、ＣＰＵ１０５は、新規ファイル差分情報８２から次の１行分の内容を読出し、ステップＳ１６２以下の処理を再度実行する。
【００９４】
一方、新規ファイル差分情報８２に含まれるすべての行の内容を読出している場合（ステップＳ１７４においてＹＥＳの場合）には、ＣＰＵ１０５は、既存ファイル差分情報８０に含まれる行のうち、差分列８０ｄが空白のものすべてに対して「削除」をそれぞれ記録する（ステップＳ１７６）。そして、処理は図８のフローチャートにおけるステップＳ２４に戻る。
【００９５】
以上のように、ステップＳ１６０〜ステップＳ１７９の処理は、既存ファイル差分情報８０および新規ファイル差分情報８２の差分列８０ｄの値をそれぞれ決定するための処理である。
【００９６】
（第２新規ファイルの出力処理）
次に、図８に示すフローチャートのステップＳ１４〜Ｓ２６の処理（第２新規ファイル２２の出力処理）について詳述する。
【００９７】
図１２および図１３は、この発明の実施の形態に従う第２新規ファイル２２の出力処理の処理手順を示すフローチャートである。
【００９８】
図１２を参照して、位置特定部３３として機能するＣＰＵ１０５は、ファイルセット記憶部４０に予め格納される第２既存ファイル１２を読出す（ステップＳ１８）。
【００９９】
まず、ＣＰＵ１０５は、予めメモリ１０６（図２）の特定の領域に格納される変更フラグを初期化（クリア）する（ステップＳ２００）。次に、ＣＰＵ１０５は、読出した第２既存ファイル１２の中にある“＜ＴＩＴＬＥ＞”タブを検索し、そのデータ部分から機能名を抽出する（ステップＳ２０２）。
【０１００】
そして、ＣＰＵ１０５は、新規ファイル差分情報８２に含まれる行のうち、Ｍｏｄｕｌｅ列８０ａの値がステップＳ２０２において抽出した機能名と一致する最初の行を検索する（ステップＳ２０４）。さらに、ＣＰＵ１０５は、Ｍｏｄｕｌｅ列８０ａの値がステップＳ２０２において抽出した機能名と一致する行が存在するか否かを判断する（ステップＳ２０６）。
【０１０１】
Ｍｏｄｕｌｅ列８０ａの値がステップＳ２０２において抽出した機能名と一致する行が存在する場合（ステップＳ２０６においてＹＥＳの場合）には、ＣＰＵ１０５は、当該機能名と一致する行に対応する差分列８０ｄに格納されている値を読出す（ステップＳ２０８）。そして、ＣＰＵ１０５は、ステップＳ２０８において読出した値が「変更」であるか否かを判断する（ステップＳ２１０）。
【０１０２】
ステップＳ２０８において読出した値が「変更」である場合（ステップＳ２１０においてＹＥＳの場合）には、ＣＰＵ１０５は、対象の第２既存ファイル１２に対して、当該機能名と一致する行に対応するタグ列８０ｂに格納されているタグ名を検索する（ステップＳ２１２）。そして、ＣＰＵ１０５は、対象の第２既存ファイル１２において、タグ列８０ｂに格納されているタグ名と一致するタグが存在しているか否かを判断する（ステップＳ２１４）。
【０１０３】
タグ列８０ｂに格納されているタグ名と一致するタグが存在している場合（ステップＳ２１４においてＹＥＳの場合）には、ＣＰＵ１０５は、変更フラグを有効化するとともに、対象の第２既存ファイル１２の当該タグに対応するデータ部分を削除する（ステップＳ２１６）。そして、処理はステップＳ２２２へ進む。
【０１０４】
一方、タグ列８０ｂに格納されているタグ名と一致するタグが存在しない場合（ステップＳ２１４においてＮＯの場合）には、処理はステップＳ２２２へ進む。
【０１０５】
これに対して、ステップＳ２０８において読出した値が「変更」でない場合（ステップＳ２１０においてＮＯの場合）には、ＣＰＵ１０５は、ステップＳ２０８において読出した値が「追加」であるか否かを判断する（ステップＳ２１８）。
【０１０６】
ステップＳ２０８において読出した値が「追加」である場合（ステップＳ２１８においてＹＥＳの場合）には、ＣＰＵ１０５は、変更フラグを有効化するとともに、対象の第２既存ファイル１２の最終行に、タグ列８０ｂに格納されているタグ名を追記する（ステップＳ２２０）。そして、処理はステップＳ２２２へ進む。
【０１０７】
一方、ステップＳ２０８において読出した値が「追加」でない場合（ステップＳ２１８においてＮＯの場合）には、処理はステップＳ２２２へ進む。
【０１０８】
ステップＳ２２２では、ＣＰＵ１０５は、新規ファイル差分情報８２に含まれるすべての行を読出したか否かを判断する。新規ファイル差分情報８２に含まれるすべての行を読出していない場合（ステップＳ２２２においてＮＯの場合）には、ＣＰＵ１０５は、新規ファイル差分情報８２に含まれる行のうち、Ｍｏｄｕｌｅ列８０ａの値がステップＳ２０２において抽出した機能名と一致する次の行を検索する（ステップＳ２２４）。そして、ＣＰＵ１０５は、ステップＳ２０６以下の処理を再度実行する。
【０１０９】
一方、新規ファイル差分情報８２に含まれるすべての行を読出している場合（ステップＳ２２２においてＹＥＳの場合）には、処理は図１３に示すステップＳ２３０へ進む。
【０１１０】
図１３を参照して、続いて、ＣＰＵ１０５は、既存ファイル差分情報８０に含まれる行のうち、Ｍｏｄｕｌｅ列８０ａの値がステップＳ２０２において抽出した機能名と一致する最初の行を検索する（ステップＳ２３０）。さらに、ＣＰＵ１０５は、Ｍｏｄｕｌｅ列８０ａの値がステップＳ２０２において抽出した機能名と一致する行が存在するか否かを判断する（ステップＳ２３２）。Ｍｏｄｕｌｅ列８０ａの値がステップＳ２０２において抽出した機能名と一致する行が存在しない場合（ステップＳ２３２においてＮＯの場合）には、処理はステップＳ２２へ進む。
【０１１１】
一方、Ｍｏｄｕｌｅ列８０ａの値がステップＳ２０２において抽出した機能名と一致する行が存在する場合（ステップＳ２３２においてＹＥＳの場合）には、ＣＰＵ１０５は、当該機能名と一致する行に対応する差分列８０ｄに格納されている値を読出す（ステップＳ２３４）。そして、ＣＰＵ１０５は、ステップＳ２３４において読出した値が「削除」であるか否かを判断する（ステップＳ２３６）。
【０１１２】
ステップＳ２３４において読出した値が「削除」である場合（ステップＳ２３６においてＹＥＳの場合）には、ＣＰＵ１０５は、対象の第２既存ファイル１２に対して、当該機能名と一致する行に対応するタグ列８０ｂに格納されているタグ名を検索する（ステップＳ２３８）。そして、ＣＰＵ１０５は、対象の第２既存ファイル１２において、タグ列８０ｂに格納されているタグ名と一致するタグが存在しているか否かを判断する（ステップＳ２４０）。
【０１１３】
タグ列８０ｂに格納されているタグ名と一致するタグが存在している場合（ステップＳ２４０においてＹＥＳの場合）には、ＣＰＵ１０５は、変更フラグを有効化するとともに、対象の第２既存ファイル１２の当該タグに対応するデータ部分を削除する（ステップＳ２４２）。そして、処理はステップＳ２４４へ進む。
【０１１４】
一方、ステップＳ２３４において読出した値が「削除」でない場合（ステップＳ２３６においてＮＯの場合）、または、タグ列８０ｂに格納されているタグ名と一致するタグが存在していない場合（ステップＳ２４０においてＮＯの場合）には、処理はステップＳ２４４へ進む。
【０１１５】
ステップＳ２４４では、ＣＰＵ１０５は、既存ファイル差分情報８０に含まれるすべての行を読出したか否かを判断する。既存ファイル差分情報８０に含まれるすべての行を読出していない場合（ステップＳ２４４においてＮＯの場合）には、ＣＰＵ１０５は、既存ファイル差分情報８０に含まれる行のうち、Ｍｏｄｕｌｅ列８０ａの値がステップＳ２０２において抽出した機能名と一致する次の行を検索する（ステップＳ２４６）。そして、ＣＰＵ１０５は、ステップＳ２３２以下の処理を再度実行する。
【０１１６】
一方、既存ファイル差分情報８０に含まれるすべての行を読出している場合（ステップＳ２４４においてＹＥＳの場合）には、処理はステップＳ２２へ進む。
【０１１７】
ステップＳ２２では、ＣＰＵ１０５は、対象の第２既存ファイル１２に差分に対応するキーワードが存在するか否かを判断する。具体的には、ＣＰＵ１０５は、上述のステップＳ２００〜Ｓ２４６の処理によって、変更フラグが有効化されているか否かを判断する。
【０１１８】
変更フラグが有効化されている場合（ステップＳ２２においてＹＥＳ）の場合には、ＣＰＵ１０５は、対象の第２既存ファイル１２に対して、当該キーワードに対応付けられたデータを削除した上で第２新規ファイルとして出力する（ステップＳ２４）。
【０１１９】
一方、変更フラグが有効化されていない場合（ステップＳ２２においてＮＯ）の場合には、ＣＰＵ１０５は、対象の第２既存ファイル１２を複写して第２新規ファイルとして出力する（ステップＳ２６）。そして、処理は、図８に示すステップＳ２８へ進む。
【０１２０】
以上のような処理手順によって、第２新規ファイル２２が順次出力される。
なお、上述の実施の形態においては、第１既存ファイル１０および第２既存ファイル１２、ならびに第１新規ファイル２０および第２新規ファイル２２がいずれも構造化ドキュメントからなる場合について例示したが、本発明に係るファイル生成装置の適用先は、このような構造化ドキュメントに限定されることはない。すなわち、キーワードなどを用いて、互いに対応付けられた複数のファイルからなるファイルセットであれば、いずれの構造のファイルセットにも適用可能である。
【０１２１】
本発明に係るプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【０１２２】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【０１２３】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
【０１２４】
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
【０１２５】
本実施の形態によれば、第１既存ファイルに対応する新規ファイルに変更が加えられた場合には、この変更箇所に相当する部分のデータが削除された第２新規ファイルが出力されるので、ユーザは、第２新規ファイルのうち変更対象とすべき箇所を確実に特定できるとともに、データが削除されているので、ユーザに対して変更を促すことにもつながる。一方、第１既存ファイルに対して変更を加えていない箇所については、第２既存ファイルがそのまま第２新規ファイルとして出力されるので、第１新規ファイルと第２新規ファイルとの間には、第１既存ファイルと第２既存ファイルとの間の対応関係が維持される。そのため、ユーザは効率的に作業を行なうことができる。
【０１２６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１２７】
【図１】この発明の実施の形態に従うファイルセット生成装置を実現するための代表的なハードウェア構成であるコンピュータを示す斜視図である。
【図２】コンピュータのハードウェア構成を示す概略構成図である。
【図３】この発明の実施の形態に従うファイルセット生成装置の機能ブロック図である。
【図４】この発明の実施の形態に従う既存ファイルセットおよび新規ファイルセットのファイル構造を示す概略図である。
【図５】この発明の実施の形態に従うファイル間の対応付けを説明するための図である。
【図６】新規ファイルの内容が図５に示す第１既存ファイルの内容と異なる場合の処理を示す図である。
【図７】新規ファイルの内容が図５に示す第１既存ファイルの内容と同一である場合の処理を示す図である。
【図８】この発明の実施の形態に従うファイルセット生成装置における全体処理手順を示すフローチャートである。
【図９】差分抽出部で生成される差分情報の内容を示す図である。
【図１０】この発明の実施の形態に従う差分抽出部における差分抽出処理の手順を示すフローチャートである。
【図１１】この発明の実施の形態に従う差分抽出部における差分抽出処理の手順を示すフローチャートである。
【図１２】この発明の実施の形態に従う第２新規ファイルの出力処理の処理手順を示すフローチャートである。
【図１３】この発明の実施の形態に従う第２新規ファイルの出力処理の処理手順を示すフローチャートである。
【符号の説明】
【０１２８】
１  ファイルセット生成装置、２  新規ファイル生成部、３  新規ファイル、１０  第１既存ファイル、１１  第２既存ファイル群、１２，１２Ａ，１２Ｂ，・・・  第２既存ファイル、１５  既存ファイルセット、２０  第１新規ファイル、２１  第２新規ファイル群、２２，２２Ａ，２２Ｂ，・・・  第２新規ファイル、２２  第２新規ファイル、２５  新規ファイルセット、３１  ファイル出力部、３２  差分抽出部、３３  位置特定部、３４  ファイル変更出力部、３５  ファイル複写出力部、４０  ファイルセット記憶部、８０  既存ファイル差分情報、８２  新規ファイル差分情報、１００  コンピュータ、１０１  コンピュータ本体、１０２  モニタ、１０３  キーボード、１０４  マウス、１０６  メモリ、１０７  固定ディスク、１０９  通信インターフェース、１１１  ＦＤ駆動装置、１１２  ＦＤ、１１３  ＣＤ−ＲＯＭ駆動装置、１１４  ＣＤ−ＲＯＭ。
【図１】
2009032062.tif 000003
【図２】
2009032062.tif 000004
【図３】
2009032062.tif 000005
【図４】
2009032062.tif 000006
【図５】
2009032062.tif 000007
【図６】
2009032062.tif 000008
【図７】
2009032062.tif 000009
【図８】
2009032062.tif 000010
【図９】
2009032062.tif 000011
【図１０】
2009032062.tif 000012
【図１１】
2009032062.tif 000013
【図１２】
2009032062.tif 000014
【図１３】
2009032062.tif 000015