(57)【特許請求の範囲】
【請求項１】
プロセッサとメモリを備えてスプレッドシート形式の設計書を処理する設計書の入出力装置であって、
予め生成されて前記設計書の構造を定義した設計情報定義と、予め生成されてスプレッドシート形式の前記設計書を半構造データ形式に変換する定義を有する設計情報雛形と、を格納する記憶部と、
前記スプレッドシート形式の前記設計書を受信して、当該設計書の情報を前記設計情報定義に基づいて前記設計情報雛形に設定し、前記半構造データ形式の設計情報として出力する変換部と、
前記記憶部に格納された前記設計情報を検索するための検索条件入力画面を、前記設計情報定義に基づいて生成する検索条件入力画面出力部と、を有し、
前記変換部は、
前記設計情報を前記半構造データ形式を維持して前記記憶部へ格納することを特徴とする設計書の入出力装置。
【請求項２】
請求項１に記載の設計書の入出力装置であって、
前記検索条件入力画面で受け付けた検索条件で、前記記憶部に格納された設計情報を検索し、当該検索結果を表示する検索結果表示画面を、前記設計情報定義に基づいて生成する検索及び結果表示画面出力部をさらに有することを特徴とする設計書の入出力装置。
【請求項３】
請求項２に記載の設計書の入出力装置であって、
前記検索結果表示画面に表示された設計情報の中から参照及び編集するための参照及び編集画面を、前記設計情報定義に基づいて生成する参照及び編集画面出力部をさらに有することを特徴とする設計書の入出力装置。
【請求項４】
請求項３に記載の設計書の入出力装置であって、
前記参照及び編集画面で編集を受け付けて、前記編集されたデータから前記設計情報定義と前記設計情報雛形に基づいて前記半構造データ形式の設計情報を生成し、当該生成した設計情報で前記記憶部に格納された設計情報を更新し、前記設計情報定義に基づいてスプレッドシート形式の設計書を生成する設計情報編集処理部を、さらに有することを特徴とする設計書の入出力装置。
【請求項５】
プロセッサとメモリを備えたメタ情報変換装置と、
プロセッサとメモリを備えた入出力装置と、
を有してスプレッドシート形式の設計書を処理する設計書の入出力システムであって、
前記メタ情報変換装置は、
前記スプレッドシート形式の設計書の構成情報を定義した設計書メタ情報を受け付けて、前記設計書の構造を定義した設計情報定義と、前記スプレッドシート形式の前記設計書を半構造データ形式に変換する定義を設定した設計情報雛形と、を生成して出力するメタ情報変換部を有し、
前記入出力装置は、
前記メタ情報変換装置から出力された前記設計情報定義と前記設計情報雛形とを格納する記憶部と、  前記スプレッドシート形式の前記設計書を受信して、当該設計書の情報を前記設計情報定義に基づいて前記設計情報雛形に設定し、前記半構造データ形式の設計情報として出力する変換部と、
前記記憶部に格納された前記設計情報を検索するための検索条件入力画面を、前記設計情報定義に基づいて生成する検索条件入力画面出力部と、を有し、
前記変換部は、
前記設計情報を前記半構造データ形式を維持して前記記憶部へ格納することを特徴とする設計書の入出力システム。
【請求項６】
請求項５に記載の設計書の入出力システムであって、
検索条件入力画面で受け付けた検索条件で、前記記憶部に格納された設計情報を検索し、当該検索結果を表示する検索結果表示画面を、前記設計情報定義に基づいて生成する検索及び結果表示画面出力部をさらに有することを特徴とする設計書の入出力システム。
【請求項７】
請求項６に記載の設計書の入出力システムであって、
前記検索結果表示画面に表示された設計情報の中から参照及び編集するための参照及び編集画面を、前記設計情報定義に基づいて生成する参照及び編集画面出力部をさらに有することを特徴とする設計書の入出力システム。
【請求項８】
請求項７に記載の設計書の入出力システムであって、
前記参照及び編集画面で編集を受け付けて、前記編集されたデータから前記設計情報定義と前記設計情報雛形に基づいて前記半構造データ形式の設計情報を生成し、当該生成した設計情報で前記記憶部に格納された設計情報を更新し、前記設計情報定義に基づいてスプレッドシート形式の設計書を生成する設計情報編集処理部を、さらに有することを特徴とする設計書の入出力システム。
【請求項９】
プロセッサとメモリを備えた入出力装置がスプレッドシート形式の設計書を処理する設計書の入出力方法であって、
前記入出力装置が、予め生成されて前記設計書の構造を定義した設計情報定義と、予め生成されてスプレッドシート形式の前記設計書を半構造データ形式に変換する定義を有する設計情報雛形と、を受け付けて記憶部に格納する第１のステップと、
前記入出力装置が、クライアント装置から前記スプレッドシート形式の設計書を受け付ける第２のステップと、
前記入出力装置が、前記受け付けた前記スプレッドシート形式の設計書の情報を、前記設計情報定義に基づいて前記設計情報雛形に設定し、前記半構造データ形式の設計情報として変換して出力する第３のステップと、
前記入出力装置が、前記記憶部に格納された前記設計情報を検索するための検索条件入力画面を、前記設計情報定義に基づいて生成する第４のステップと、を含み、
前記第３のステップは、
前記入出力装置が、前記設計情報の前記半構造データ形式を維持して前記記憶部へ格納することを特徴とする設計書の入出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばシステム開発等で作成及び保守される様々なレイアウトの設計書を、記憶装置で一元管理する目的で、スプレッドシートソフトで作成して記憶装置に入出力する技術に関するものである。
【背景技術】
【０００２】
システム開発では、計算機システムを構成する画面やデータベースに関する設計情報を記すために様々な設計書が作成される。設計書はワードプロセッシングソフトやスプレッドシート（表計算）ソフトなどで作成されるが、本発明ではスプレッドシート形式の設計書を対象とする。
【０００３】
設計書はシステム開発者間で設計情報を共有するためのメディアである。他方、設計書に記される設計情報を活用してプログラムの自動生成など機械的な処理を行うために、設計書を構造分析した上でデータベースの形式に設計情報を変換して一元管理する。
【０００４】
このようなスプレッドシートで記されるデータとデータベースのデータとの入出力を機械化する装置として特許文献１が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１２３６０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述の従来技術では、スプレッドシートで記されるデータとデータベースのデータとの入出力を機械化することはできるが、データベースにデータを格納するためのスキーマを事前に定義しておく必要があった。
【０００７】
システム開発で取り扱われる設計書は、開発プロジェクトごとに種類や記述する項目やレイアウトが異なり、また開発や保守の過程でレイアウトや項目が変更されることもある。従来技術では、データベースのスキーマの変更、及びスキーマの変更に伴うデータマイグレーションが必要とされる。また、設計書をデータベースに集約して設計情報を一括で保守するために、スキーマに則ってデータベースで格納されている設計情報の検索や編集をする画面や処理が作成されることがある。この場合、スキーマの変更に伴いそれらの画面や処理の改修も必要となる、という問題があった。
【０００８】
そこで本発明は、上記問題点に鑑みてなされたもので、設計書に記述される項目やレイアウトが変更になった場合にデータベースのスキーマの改修を不要にすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、プロセッサとメモリを備えてスプレッドシート形式の設計書を処理する設計書の入出力装置であって、予め生成されて前記設計書の構造を定義した設計情報定義と、予め生成されてスプレッドシート形式の前記設計書を半構造データ形式に変換する定義を有する設計情報雛形と、を格納する記憶部と、前記スプレッドシート形式の前記設計書を受信して、当該設計書の情報を前記設計情報定義に基づいて前記設計情報雛形に設定し、前記半構造データ形式の設計情報として出力する変換部と、前記記憶部に格納された前記設計情報を検索するための検索条件入力画面を、前記設計情報定義に基づいて生成する検索条件入力画面出力部と、を有し、前記変換部は、前記設計情報を前記半構造データ形式を維持して前記記憶部へ格納する。
【発明の効果】
【００１０】
本発明によれば、システム開発においてスプレッドシート形式で作成される設計書を半構造データ型式（例えば、ＸＭＬ形式）の設計情報に変換することが可能となる。ＸＭＬ形式の設計情報は、ＸＭＬファイルとして格納するか、またはデータベースの一カラムに格納する、あるいはＸＭＬデータベースなどの形式で記憶装置に格納できるため、設計書のレイアウトが変更された場合であってもデータベースのスキーマの変更は不要となる。これによりシステム開発において作成される様々な設計書に柔軟に対応可能であり、設計書のカスタマイズが容易なスプレッドシート形式設計書の入出力を実現できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例１を示し、計算機システムのハードウェア構成の一例を示すブロック図である。
【図２】本発明の実施例１を示し、計算機システムの機能要素の一例を示すブロック図である。
【図３】本発明の実施例１を示し、設計書メタ情報の一例を示す図である。
【図４】本発明の実施例１を示し、設計情報定義体の一例を示す図である。
【図５】本発明の実施例１を示し、設計情報雛形の一例を示す図である。
【図６】本発明の実施例１を示し、設計情報の一例を示す図である。
【図７Ａ】本発明の実施例１を示し、設計書雛形の一例を示す図である。
【図７Ｂ】本発明の実施例１を示し、設計書の一例を示す図である。
【図７Ｃ】本発明の実施例１を示し、設計書の一例を示す図である。
【図８】本発明の実施例１を示し、設計書登録画面の一例を示す画面イメージである。
【図９】本発明の実施例１を示し、検索条件入力画面の一例を示す画面イメージである。
【図１０】本発明の実施例１を示し、検索条件入力画面の一例を示す図である。
【図１１Ａ】本発明の実施例１を示し、設計情報検索結果表示画面の一例を示す画面イメージである。
【図１１Ｂ】本発明の実施例１を示し、設計情報検索結果表示画面の一例を示す画面イメージである。
【図１２】本発明の実施例１を示し、設計情報検索結果表示画面の一例を示す画面イメージである。
【図１３】本発明の実施例１を示し、設計情報参照及び編集画面の一例を示す画面イメージである。
【図１４】本発明の実施例１を示し、設計書メタ情報変換部の処理の一例を示すフローチャートである。
【図１５】本発明の実施例１を示し、設計情報読込及び変換部の処理の一例を示すフローチャートである。
【図１６】本発明の実施例１を示し、設計情報検索条件入力画面出力部の処理の一例を示すフローチャートである。
【図１７】本発明の実施例１を示し、設計情報検索及び結果表示画面出力部の処理の一例を示すフローチャートである。
【図１８】本発明の実施例１を示し、設計情報参照及び編集画面出力部の処理の一例を示すフローチャートである。
【図１９】本発明の実施例１を示し、設計情報編集処理部の処理の一例を示すフローチャートである。
【図２０】本発明の実施例１を示し、計算機の構成の一例を示すブロック図である。
【図２１】本発明の実施例２を示し、計算機の機能要素の一例を示すブロック図である。
【発明を実施するための形態】
【００１２】
本発明の一実施例について、以下図面を参照して説明する。なお、同一の符号は同一の構成要素を示す。
【実施例１】
【００１３】
＜装置構成＞
本発明の実施例１に係る計算機システムは、設計書メタ情報変換装置１０１と、設計情報入出力装置１０２と、クライアント装置１０３からなるスプレッドシート形式の設計書の入出力システム１００である。図１は、計算機システムのハードウェア構成の一例を示すブロック図を示す。
【００１４】
設計書メタ情報変換装置１０１と、設計情報入出力装置１０２と、クライアント装置１０３は、図１に示すように、制御及び演算部１０１ａと１０２ａと１０３ａと、入力部１０１ｂと１０２ｂと１０３ｂ、記憶部１０１ｃと１０２ｃと１０３ｃと、出力部１０１ｄと１０２ｄと１０３ｄと、通信インタフェース部１０４ａと１０４ｂ及び１０４ｃを有する計算機システムである。なお、通信インタフェース部１０４ａ、１０４ｂ及び１０４ｃはネットワークを介して接続される。
【００１５】
設計書メタ情報変換装置１０１と設計情報入出力装置１０２は、通信インタフェース部１０４ａと１０４ｂを介して互いの装置間のデータ通信連携を実現する。設計情報入出力装置１０２とクライアント装置１０３は、通信インタフェース部１０４ｂと１０４ｃを介して互いの装置間のデータ通信を実現する。これらの、設計書メタ情報変換装置１０１と、設計情報入出力装置１０２と、クライアント装置１０３は、一体で合っても構わない。
【００１６】
記憶部１０１ｃと１０２ｃと１０３ｃは、ハードディスクドライブ等の不揮発性の記憶媒体を含む記憶装置で構成される。設計書メタ情報変換装置１０１の記憶部１０１ｃには設計書メタ情報変換部２０１と表計算部２１０として機能するコンピュータソフトウェアプログラムが格納される。
【００１７】
設計情報入出力装置１０２の記憶部１０２ｃには設計書読込及び変換部２０２と設計情報検索条件入力画面出力部２０３と設計情報検索及び結果表示画面出力部２０４と設計情報参照及び編集画面出力部２０５と設計情報編集処理部２０６として機能するコンピュータソフトウェアプログラムが格納されている。
【００１８】
クライアント装置１０３の記憶部１０３ｃには設計書などを編集する表計算部２１１として機能するコンピュータプログラムと、ブラウザ２１２として機能するコンピュータプログラムと、スプレッドシートの設計書及び設計書の雛形が格納されている。また、記憶部１０３ｃには設計情報入出力装置１０２から送信された画面を出力部１０３ｄに表示するブラウザとして機能するコンピュータソフトウェアプログラムも格納されている。
【００１９】
制御及び演算部１０１ａ、１０２ａ、１０３ａは、後述するようにプロセッサとメモリを含み、記憶部１０１ｃ、１０２ｃ、１０３ｃからプログラムをメモリにロードしてプロセッサによって実行する。
【００２０】
設計書メタ情報変換部２０１及び表計算部２１０は、制御及び演算部１０１ａによって記憶部１０１ｃから読み出されて実行されることにより各機能を実現している。設計書読込及び変換部２０２と設計情報検索条件入力画面出力部２０３と設計情報検索及び結果表示画面出力部２０４と設計情報参照及び編集画面出力部２０５は制御及び演算部１０２ａによって記憶部１０２ｃから読み出されて実行されることにより各機能を実現している。表計算部２１１及びブラウザ２１２は、制御及び演算部１０３ａによって記憶部１０３ｃから読み出されて実行されることにより各機能を実現している。
【００２１】
入力部１０１ｂと１０２ｂと１０３ｂは、マウス等の入力デバイスである。出力部１０１ｄと１０２ｄと１０３ｄは、各種ディスプレイ等の表示デバイスであり、この他各種プリンタ等の他の出力装置を接続することもできる。
【００２２】
図２０は、スプレッドシート形式の設計書入出力システム１００を構成する計算機の一例を示すブロック図である。図示の例は、設計書メタ情報変換装置１０１として稼動する計算機１０の例を示すが、設計情報入出力装置１０２及びクライアント装置１０３も同様の構成である。
【００２３】
計算機１０は、制御及び演算処理を行うプロセッサ６０と、プログラムやデータを保持するメモリ７０と、ネットワーク４０に接続されて他の計算機等と通信を行う通信インタフェース部１０４ａと、記憶部１０１ｃに接続されてデータやプログラム等の読み書きを行うストレージインタフェース８６と、入力部１０１ｂに接続されたＩ／Ｏプロセッサ８３と、プロセッサ６０に接続された出力部１０１ｄを含む。なお、図１に示した制御及び演算部１０１ａ、１０２ａ、１０３ａは、プロセッサ６０及びメモリ７０に相当する。
【００２４】
プロセッサ６０は、ヘテロジニアスのマルチコアプロセッサで構成され、複数のＣＰＵコア６１と、複数のＧＰＵコア６２を含む。また、プロセッサ６０は、メモリ７０に接続されるメモリコントローラ６３と、出力部１０１ｄに接続されるディスプレイコントローラ６５と、Ｉ／Ｏプロセッサ８３、通信インタフェース部１０４ａ及びストレージインタフェース８６に接続されるＩ／Ｏコントローラ６４とを含む。入力部１０１ｂとしては、キーボードやマウスやタッチパネルを含む。出力部１０１ｄとしては、ディスプレイを含む。
【００２５】
メモリ７０には、ＯＳ７１がロードされてプロセッサ６０によって実行される。ＯＳ７１は設計書メタ情報変換部や表計算部などの１以上のソフトウェア７２を実行する。
【００２６】
設計書メタ情報変換部２０１などの各機能部はプログラムとしてメモリ７０にロードされる。
【００２７】
プロセッサ６０は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ６０は、設計書メタ情報変換プログラムに従って処理することで設計書メタ情報変換部２０１として機能する。他のプログラムについても同様である。さらに、プロセッサ６０は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００２８】
設計書メタ情報変換装置１０１の各機能を実現するプログラム、テーブル等の情報は、記憶部１０１ｃや不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００２９】
＜処理の概要＞
図２は、計算機システムの機能ブロック図の一例を示す。
【００３０】
本実施例１では、設計書メタ情報変換装置１０１を利用する開発者等が、クライアント装置１０３を利用するユーザの業務を処理する計算機システムを開発することを想定する。設計情報入出力装置１０２は、ユーザの業務で使用する設計書を処理する計算機である。
【００３１】
設計書メタ情報変換装置１０１は、開発者の操作に応じて、設計書３０４ｂ（図７Ｂ）の構造（項目及びレイアウト）を定義する設計書メタ情報３０１（図３）をスプレッドシート形式で生成する。
【００３２】
設計書メタ情報変換装置１０１では、設計書メタ情報変換部２０１が、設計書メタ情報３０１を読み込んで、設計書３０４ｂの構造を定義する設計情報定義体３０２（図４）と、設計書３０４ｂを変換する際に利用する設計情報雛形３０３（図５）に変換する。
【００３３】
設計書メタ情報変換装置１０１は、変換された設計情報定義体３０２と設計情報雛形３０３を、ユーザが利用する設計情報入出力装置１０２の記憶部１０２ｃへ格納させる。
【００３４】
また、設計書メタ情報変換装置１０１を利用する開発者は、設計書メタ情報３０１に対応する設計書雛形３０４ａ（図７Ａ）を生成して、ユーザが利用する設計情報入出力装置１０２の記憶部１０２ｃに格納しておく。
【００３５】
クライアント装置１０３のユーザは、表計算部２１０で設計書雛形３０４ａを読み込んで、スプレッドシート形式の設計書３０４ｂを生成し、記憶部１０２ｃに格納する。
【００３６】
クライアント装置１０３はユーザの操作に応じて、設計書３０４ｂの登録を要求する。設計書メタ情報変換部２０１は、登録要求を受け付けると設計書登録画面３０５をクライアント装置１０３に出力する。
【００３７】
クライアント装置１０３は設計書登録画面３０５から設計書３０４ｂの登録を実行する。設計情報入出力装置１０２は、スプレッドシート形式の設計書３０４ｂを受け付けると、設計書読込及び変換部２０２が設計情報定義体３０２と、設計情報雛形３０３を読み込んで、後述するようにスプレッドシート形式の設計書３０４ｂをＸＭＬ形式の設計情報３１０に変換し、記憶部１０２ｃに格納する。
【００３８】
設計情報入出力装置１０２は、クライアント装置１０３から検索要求を受け付けると、設計情報検索条件入力画面出力部２０３が設計情報定義体３０２を読み込んで検索条件入力画面３０６を生成し、クライアント装置１０３に出力する。なお、検索条件入力画面３０６は、図９、図１０の検索条件入力画面３０６ａ、３０６ｂの総称を示す。
【００３９】
設計情報入出力装置１０２は、クライアント装置１０３から検索項目を受け付けると、設計情報検索及び結果表示画面出力部２０４が検索を実行して、設計情報定義体３０２を参照して設計情報検索結果画面３０７を生成し、検索結果としてクライアント装置１０３に送信する。なお、設計情報検索結果画面３０７は、図１１Ａ〜図１２に示す設計情報検索結果画面３０７ａ、３０７ｂ、３０７ｃの総称である。
【００４０】
設計情報入出力装置１０２は、クライアント装置１０３から検索結果について設計情報の参照要求を受け付けると、設計情報参照及び編集画面出力部２０５が設計情報３１０と設計情報定義体３０２を読み込んで、設計情報参照及び編集画面３０８を生成し、クライアント装置１０３に出力する。
【００４１】
クライアント装置１０３は、設計情報参照及び編集画面３０８から設計情報３１０の編集を行うことができる。設計情報入出力装置１０２は、クライアント装置１０３から編集結果の出力要求を受け付けると、設計情報編集処理部２０６がＸＭＬ形式の設計情報３１０を読み込んで、設計情報定義体３０２と設計情報雛形３０３に応じてスプレッドシート形式の設計書３０４ｃを生成してクライアント装置１０３へ送信する。
【００４２】
＜データ構成＞
スプレッドシート形式で作成される各種設計書に対するメタ情報を定義した設計書メタ情報３０１について説明する。
【００４３】
設計書メタ情報３０１は、設計書メタ情報変換装置１０１の記憶部１０１ｃに格納されたファイルの一例であり、設計書メタ情報変換部２０１で利用される。設計書メタ情報３０１は、スプレッドシートで定義される設計書の種別ごとに１つのファイルが表計算部２１０によって作成される。
【００４４】
以下、図３に一例を示す設計書メタ情報３０１を利用してデータ構成について説明する。設計書メタ情報３０１は、クライアント装置１０３で利用するスプレッドシート形式の設計書３０４ｂ（設計書雛形３０４ａ）で使用する項目と、各項目のセルの位置等のレイアウトを定義した設計書３０４ｂの構造を定義したファイルである。
【００４５】
設計書メタ情報３０１の１ファイルの中には、“ファイル種別”（３０１１）と、“項目グループ間関連”（３０１２）と、“シート種別”（３０１３）と、 “単数項目グループ”（３０１４）と、“複数項目グループ”（３０１５）の要素が含まれる。
【００４６】
要素“ファイル種別”（３０１１）はスプレッドシート形式のファイルごとに設計書の種別を定義するものであり、要素“ローカル名”と要素“英字名”を含む。
【００４７】
要素“シート種別”（３０１３）はスプレッドシートで定義されるシートごとに定義される。したがって、スプレッドシート内に複数のシートで構成される設計書３０４ｂを対象とする場合、要素“シート種別”（３０１３）、及び以下の“単数項目グループ”（３０１４）と、“複数項目グループ”（３０１５）を複数定義する。要素“シート種別”（３０１３）は、要素“ローカル名”と要素“英字名”を含む。
【００４８】
要素“単数項目グループ”（３０１４）には、設計書で定義される１つの項目に対して値が１つ定義される項目（単数項目）の内容と付加情報を定義するグループを定義する。なお、要素“単数項目グループ”（３０１４）は、要素“ローカル名”と要素“英字名”を含む。また、定義される単数項目の数だけ、要素“項番”と、要素“必須フラグ”と、要素“単数項目ローカル名”と、要素“単数項目英字名”と、単数項目がスプレッドシート上のどの位置にあるかを示す情報として要素“開始行”と要素“開始列”と、単数項目を画面上に表示する際に必要とする情報として要素“種類”と要素“サイズ”が定義される。
【００４９】
“種類”は、クライアント装置１０３のブラウザで表示する際の形式を規定し、“input”は入力フィールドを示し、“text”は文字列を表示することを示す。また、“サイズ”は、入力される文字数を規定する。
【００５０】
要素“複数項目グループ”（３０１５）には、設計書で定義される１つの項目に対して値が複数定義される項目（複数項目）の内容と付加情報を定義するグループを定義する。要素“複数項目グループ”（３０１５）は、要素“ローカル名”と要素“英字名”を含む。また、複数項目の数だけ、要素“項番”と、要素“必須フラグ”と、要素“複数項目ローカル名”と、要素“複数項目英字名”と、複数項目がスプレッドシート上のどの位置から始まるかを示す情報として要素“開始行”と要素“開始列”と、複数項目を画面上に表示する際に必要とする情報として要素“種類”と要素“サイズ”が定義される。
【００５１】
なお、以上の要素“単数項目グループ”（３０１４）と要素“複数項目グループ”（３０１５）は、対象とする設計書に合わせて、それぞれ無くてもよいし、複数あってもよい。
【００５２】
要素“項目グループ間関連”（３０１２）には、要素“項番”と、要素“親項目グループ名”と、要素“子項目グループ名”と、要素“説明”を含む。要素“親項目グループ名”と要素“子項目グループ名”には、“単数項目グループ”（３０１４）または“複数項目グループ”（３０１５）の“英字名”が記入される。
【００５３】
設計書メタ情報３０１は、上記の内容で記憶部１０１ｃに格納される。設計書メタ情報３０１は、クライアント装置１０３が利用する設計書３０４ｂに対応して設計書メタ情報変換装置１０１を使用する開発者などが予め作成してクライアント装置１０３へ送信する。設計書メタ情報３０１は、設計書メタ情報変換装置１０１で作成してもよいし、他の計算機で生成してもよい。
【００５４】
以上のように設計書メタ情報３０１は、スプレッドシート形式の設計書３０４ｂ及び設計書雛形３０４ａの構造とレイアウトを含む構成情報を予め定義した情報である。
【００５５】
図４に設計情報定義体３０２の一例を示す。設計情報定義体３０２は、設計書メタ情報変換部２０１の処理によって１つの設計書メタ情報３０１から１つ生成されて、記憶部１０１ｃ及び記憶部１０２ｃに格納されるファイルである。以下、図４の設計情報定義体３０２を参照してデータの構成について説明する。
【００５６】
設計情報定義体３０２はＸＭＬ形式のファイルであり、ルート要素として“genericRule”（３０２１）を持つ。また、要素“genericRule”（３０２１）は属性として“localName”と“name”を持つ。
【００５７】
“localName”の値は設計書メタ情報３０１の“ファイル種別”（３０１１）の“ローカル名”から、“name”の値は設計書メタ情報３０１の“ファイル種別”（３０１１）の“英字名”から、設計書メタ情報変換部２０１の処理でそれぞれ設定される。
【００５８】
さらに要素“genericRule”（３０２１）は、要素“relationship”（３０２２）と要素“designSpecification”（３０２３）を複数含む。
【００５９】
要素“relationship”（３０２２）は、設計書メタ情報３０１で定義される“項目グループ間関連”と同数だけ、設計書メタ情報変換部２０１の処理によって生成される。また、要素“relationship”（３０２２）は属性として“parentItem”と“childItem”を持つ。“parentItem”の値は設計書メタ情報３０１の“親項目グループ名”から、“childItem”の値は設計書メタ情報３０１の“子項目グループ名”から、設計書メタ情報変換部２０１の処理でそれぞれ設定される。
【００６０】
要素“designSpecification”（３０２３）は、設計書メタ情報３０１で定義される“シート種別”と同数だけ、設計書メタ情報変換部２０１の処理によって生成される。要素“designSpecification”（３０２３）は属性として“localName”と“sheetCls”を持つ。
【００６１】
“localName”の値は設計書メタ情報３０１の“シート種別”（３０１３）の“ローカル名”から、“sheetCls”の値は設計書メタ情報３０１の“シート種別”（３０１３）の“英字名”から、設計書メタ情報変換部２０１の処理でそれぞれ設定される。さらに要素“designSpecification”（３０２３）は、要素“key”を複数含む。
【００６２】
要素“key”は、設計書メタ情報３０１の“単数項目グループ”（３０１４）または“複数項目グループ”（３０１５）の数だけ、設計書メタ情報変換部２０１の処理によって生成される。また、要素“key”は属性として“localName”と“name”と“type”を持つ。
【００６３】
“localName”の値は設計書メタ情報３０１の“単数項目グループ”（３０１４）の“ローカル名”または“複数項目グループ”（３０１５）の“ローカル名”から設計書メタ情報変換部２０１の処理で設定される。“name”の値は設計書メタ情報３０１の“単数項目グループ”（３０１４）の“英字名”または“複数項目グループ”（３０１５）の“英字名”から設計書メタ情報変換部２０１の処理で設定される。
【００６４】
“type”の値は“単数項目グループ”（３０１４）の場合は“single”または“複数項目グループ”（３０１５）の場合は“list”から、設計書メタ情報変換部２０１の処理で設定される。さらに要素“key”は、“type”に設定された値が”single”の場合は要素“singleItemKey”を複数含み、または“type”に設定された値が“list”の場合は要素“listItemKey”を複数含む。
【００６５】
要素“singleItemKey”（３０２４）は、設計書メタ情報３０１の“単数項目グループ”（３０１４）で定義される項目の数だけ、設計書メタ情報変換部２０１の処理によって生成される。また、要素“singleItemKey”（３０２４）は属性として“localName”と“name”と“mandatory”を持つ。
【００６６】
“localName”の値は設計書メタ情報３０１の“単数項目グループ”（３０１４）の“単数項目ローカル名”から、“name”の値は設計書メタ情報３０１の“単数項目グループ”（３０１４）の“単数項目英字名”から、“mandatory”の値は設計書メタ情報３０１の“必須フラグ”に“○”が記入されている場合は“true”が、“必須フラグ”に何も記入されていない場合は“false”が、設計書メタ情報変換部２０１の処理でそれぞれ設定される。
【００６７】
さらに、要素“singleItemKey”（３０２４）は、要素“spreadsheet”と要素“webScreen”を含む。要素“listItemKey”（３０２５）は、設計書メタ情報３０１の“複数項目グループ”（３０１５）で定義される項目の数だけ、設計書メタ情報変換部２０１の処理によって生成される。また、要素“listItemKey”（３０２５）は属性として“localName”と“name”と“mandatory”を持つ。
【００６８】
“localName”の値は設計書メタ情報３０１の“複数項目グループ”（３０１５）の“複数項目ローカル名”から、“name”の値は設計書メタ情報３０１の“複数項目グループ”（３０１５）の“複数項目英字名”から、“mandatory”の値は設計書メタ情報３０１の“必須フラグ”に“○”が記入されている場合は“true”が“必須フラグ”に何も記入されていない場合は“false”が、設計書メタ情報変換部２０１の処理でそれぞれ設定される。さらに、要素“listItemKey”（３０２５）は、要素“spreadsheet”と要素“webScreen”をそれぞれ１つずつ含む。
【００６９】
必須フラグは設計書３０４ｂで必ず使用する項目を識別するフラグで、“○”であれば設計書３０４ｂで必須の項目であることを示す。また、必須フラグが“○”に設定された項目は、検索処理で検索キーとなる。
【００７０】
要素“sheet”（３０２６）は、要素“cellLine”と要素“cellColumn”をそれぞれ１つずつ含む。要素“cellLine”（３０２６）の値は設計書メタ情報３０１の“開始行”から、要素“cellColumn”の値は設計書メタ情報３０１の“開始列”から、設計書メタ情報変換部２０１の処理でそれぞれ設定される。
【００７１】
要素“webScreen”（３０２７）は、要素“itemType”と、要素“itemLength”を、それぞれ１つずつ含む。要素“itemType”の値は設計書メタ情報３０１の“種類”から、要素“itemLength”の値は設計書メタ情報３０１の“サイズ”から、設計書メタ情報変換部２０１の処理でそれぞれ設定される。
【００７２】
以上のように、設計情報定義体３０２には、スプレッドシート形式の設計書３０４ｂの行番号（cellLine）と列番号（cellColumn）で定まるセルの情報が定義される。設計書読込変換部２０２は、設計書３０４ｂに応じた設計情報定義体３０２を参照することで、スプレッドシート形式の設計書３０４ｂの構造を取得できる。
【００７３】
図５にスプレッドシート形式の設計書３０４ｂをＸＭＬ形式に変換するために使用する設計情報の雛形、または記憶部１０２ｃに格納された設計情報３１０をＸＭＬ形式に再変換するために使用する設計情報雛形３０３の一例を示す。
【００７４】
設計情報雛形３０３は、設計書メタ情報変換部２０１の処理によって設計書メタ情報３０１を元にして生成され、記憶部１０１ｃ及び１０２ｃに格納されるファイルである。以下、図５に一例を示す設計情報雛形３０３を利用してデータ構成について説明する。
【００７５】
設計情報雛形３０３はＸＭＬ形式のファイルであり、ルート要素として“documentCls”（３０３１）を持つ。また、要素“documentCls”（３０３１）は属性として“name”と“fileName”と“date”を持つ。
【００７６】
属性“name”の値は設計書メタ情報３０１の“ファイル種別”（３０１１）の“英字名”から、設計書メタ情報変換部２０１の処理で設定される。属性“fileName”の値は  設計書登録画面３０５でユーザにより入力される“設計書ファイル名”から、設計書読込及び変換部２０２の処理で設定される。属性“date”の値は、設計書読込及び変換部２０２で設計書３０４ｂが記憶部１０２ｃに登録された際の、または設計情報編集処理部２０６で設計書３０４ｃを生成する際の年月日日時分秒が、例えば“YYYY/MM/DD/HH：MM：SS”の形式で生成される。さらに要素“documentCls”（３０３１）は、要素“sheetCls”（３０３２）を複数含む。
【００７７】
要素“sheetCls”（３０３２）は設計書メタ情報３０１で定義される“シート種別”（３０１３）と同数だけ、設計書メタ情報変換部２０１の処理によって生成される。また、“sheetCls”（３０３２）は属性として“name”を持つ。属性“name”の値は設計書メタ情報３０１の“シート種別”（３０１３）の“英字名”から、設計書メタ情報変換部２０１の処理で設定される。さらに要素“sheetCls”（３０３２）は、要素“singleItems”（３０３３）または要素“listItems”（３０３７）を含む。
【００７８】
要素“singleItems”（３０３３）は、設計書メタ情報３０１の“単数項目グループ”（３０１４）の数だけ、設計書メタ情報変換部２０１の処理によって生成される。また、要素“singleItems”（３０３３）は属性として“name”を持つ。属性“name”の値は設計書メタ情報３０１の“単数項目グループ”（３０１４）の“英字名”から、設計書メタ情報変換部２０１の処理で設定される。
【００７９】
さらに要素“singleItems”（３０３３）には、設計書メタ情報３０１の“単数項目グループ”（３０１４） で定義される“単数項目英字名”を要素名とする複数の要素が、設計書メタ情報変換部２０１の処理で生成され含まれる。設計書メタ情報３０１の“単数項目グループ”（３０１４） で定義される“単数項目英字名”を要素名とする要素の値には、“${}”で囲まれた変数が設計書メタ情報変換部２０１で生成される。変数名は、設計書メタ情報３０１の“シート種別”（３０１３）の“英字名”と設計書メタ情報３０１の“単数項目グループ”（３０１４）の“英字名”を“.”で連結した形式で、設計書メタ情報変換部２０１によって生成される。
【００８０】
要素“listItems”（３０３７）は、設計書メタ情報３０１の“複数項目グループ”（３０１５）の数だけ、設計書メタ情報変換部２０１の処理によって生成される。また、要素“listItems”（３０３７）は属性として“name”を持つ。属性“name”の値は設計書メタ情報３０１の“複数項目グループ”（３０１５）の“英字名”から、設計書メタ情報変換部２０１の処理で設定される。さらに要素“listItems”（３０３７）は要素“member”（３０３５）が一つ含まれる。なお、要素“listItems”（３０３７）と要素“member”（３０３５）の間には“#foreach( $member in $XXXX)”が、要素“member”（３０３５）の直後には“#end”が設計書メタ情報変換部２０１によって生成される。前記の“XXXX”には、設計書メタ情報３０１の“シート種別”（３０１３）の“英字名”と設計書メタ情報３０１の“複数項目グループ”（３０１５）の“英字名”を“.”で連結した形式の名前とする変数が設計書メタ情報変換部２０１で生成される。
【００８１】
要素“member”（３０３５）には、設計書メタ情報３０１の“複数項目グループ” （３０１５）で定義される“複数項目英字名”を要素名とする複数の要素が、設計書メタ情報変換部２０１の処理で生成され含まれる。設計書メタ情報３０１の“複数項目グループ”（３０１５） で定義される“複数項目英字名”を要素名とする要素の値には、“${}”で囲まれた変数が設計書メタ情報変換部２０１で生成される。変数名は、設計書メタ情報３０１の“シート種別”（３０１３）の“英字名”と設計書メタ情報３０１の“複数項目グループ”（３０１５）の“英字名”を“.”で連結した形式で、設計書メタ情報変換部２０１によって生成される。
【００８２】
以上のように、設計情報雛形３０３は、設計情報３１０を生成する際に、設計書３０４ｂの値をＸＭＬ形式のファイルに設定するフォームが定義される。したがって、設計書読込変換部２０２は、設計情報定義体３０２に従ってスプレッドシート形式の設計書３０４ｂから読み込んだ値を設計情報雛形３０３に設定することで、ＸＭＬ形式の設計情報３１０に変換することができる。
【００８３】
図６は、設計情報３１０の一例を示す図である。設計情報３１０は、クライアント装置１０３で生成したスプレッドシート形式の設計書３０４ｂを、設計情報入出力装置１０２の設計書読込及び変換部２０２でＸＭＬ形式に変換した結果を示す。
【００８４】
設計情報３１０は、図５に示した設計情報雛形３０３の変数＄に設計書３０４ｂの内容を設定した情報として設計書読込及び変換部２０２で生成される。
【００８５】
図７Ａは、本発明の実施例１を示し、設計書雛形３０４ａの一例を示す図である。設計書雛形３０４ａは、クライアント装置１０３の記憶部１０３ｃに予め格納されているスプレッドシート形式の情報である。
【００８６】
図７Ａの設計書雛形３０４ａは、未入力の状態を示す。設計書雛形３０４ａは、設計書雛形３０４ａの種類を示すドキュメント分類３０３１と、設計書３０４ｂの題目を格納する題目３０３２と、コンポーネントＩＤ３０３３と、コンポーネント名３０３４と、作成者３０３５と、更新者３０３６と、承認者３０３７と、作成日３０３８と、更新日３０３９と、承認日３０４０と、データの番号を示す項番３０４１と、パッケージ名前空間３０４２と、クラス日本語名３０４３と、クラス英字名３０４４と、メソッド日本語名３０４５と、メソッド英字名３０４６と、他コンポ公開３０４７と、備考３０４８のセルを含む。
【００８７】
図７Ｂは、本発明の実施例１を示し、設計書３０４ｂの一例を示す図である。図７Ｂの設計書３０４ｂは、図７Ａの設計書雛形３０４ａにクライアント装置１０３のユーザが表計算部２１１で所定の値を入力した結果を示す。設計書３０４ｂの各セルの符号は、設計書雛形３０４ａと同一である。
【００８８】
図７Ｃは、本発明の実施例１を示し、設計書３０４ｃの一例を示す図である。図７Ｃの設計書３０４ｃは、後述する図１３に示す設計情報参照及び編集画面３０８で編集された設計情報をスプレッドシート形式で示した情報である。
【００８９】
＜フローチャート＞
設計書メタ情報３０１を入力として、設計情報定義体３０２と設計情報雛形３０３を出力する、設計書メタ情報変換部２０１の処理を図１４に示すフローチャートを用いて説明する。
【００９０】
ステップ１４０１で、設計書メタ情報変換部２０１は、入力部１０１ｂからの指示を契機に処理を開始する。
【００９１】
ステップ１４０２で、設計書メタ情報変換部２０１は、記憶部１０１ｃに予め登録されている設計書メタ情報３０１のファイルを読み込む。
【００９２】
ステップ１４０３では、ステップ１４０２で読み込んだ設計書メタ情報３０１のファイルの情報から、設計書メタ情報変換部２０１が前述の方法で設計情報定義体３０２の要素と値を生成し、設計情報定義体３０２のファイルを生成して記憶部１０１ｃに格納する。
【００９３】
ステップ１４０４では、ステップ１４０２で読み込んだ設計書メタ情報３０１のファイルの情報から、設計書メタ情報変換部２０１が前述の方法で設計情報雛形３０３の要素と値を生成し、設計情報定義体３０２のファイルを生成して記憶部１０１ｃに格納する。
【００９４】
ステップ１４０５では、設計書メタ情報変換部２０１がステップ１４０３で生成された設計情報定義体３０２のファイルと、ステップ１４０４で生成された設計情報雛形３０３のファイルを、記憶部１０１ｃから読み込んでみ通信インタフェース部１０４ａを介してデータ転送処理を行い、設計情報入出力装置１０２の記憶部１０２ｃに格納させる。
【００９５】
最後にステップ１４０６で、設計書メタ情報変換部２０１は出力部１０１ｄに処理が完了したメッセージを出力する。
【００９６】
上記処理により、設計書メタ情報変換装置１０１は、設計書メタ情報３０１から設計情報定義体３０２と、設計情報雛形３０３を生成して設計情報入出力装置１０２の記憶部１０２ｃに格納させる。
【００９７】
図２において、設計書読込変換部２０２は設計情報定義体３０２を入力として設計書登録画面３０５を表示し、設計書雛形３０４ａに基づいて作成されたスプレッドシート形式の設計書３０４ｂを受け付ける。そして、設計書読み込み変換部２は、受け付けた設計書３０４ｂと、設計書メタ情報変換装置１０１が生成した設計情報定義体３０２と設計書雛形３０４ａを入力として、設計情報３１０を生成する。
【００９８】
図８は、設計書読込変換部２０２が出力する設計書登録画面３０５の一例を示す画面イメージである。設計書登録画面３０５は、記憶部１０２ｃに登録されている全ての設計書メタ情報３０１の要素“ファイル種別”をプルダウンリストで選択する登録対象３０５１と、ファイル名を入力する“設計書ファイル名”（３０５２）と“登録ボタン”が配置される。
【００９９】
設計書登録画面３０５は、設計情報入出力装置１０２を利用するクライアント装置１０３の出力部１０３ｄに表示される。クライアント装置１０３を使用するユーザまたは管理者などが入力部１０３ｂの操作によって登録対象３０５１を選択して設計書ファイル名３０５２を入力した後、“登録ボタン”を操作すると、設計書読込及び変換部２０２によって設計情報３１０が生成される。
【０１００】
次に、設計書雛形３０４ａに基づいて作成されたスプレッドシート形式の設計書３０４ｂと設計情報定義体３０２と設計情報雛形３０３とを入力として、設計情報３１０を出力する設計書読込及び変換部２０２の処理の一例を図１５に示すフローチャートを用いて説明する。
【０１０１】
ステップ１５０１で、設計書読込及び変換部２０２は、クライアント装置１０３の入力部１０３ｂからの指示を契機に処理を開始する。
【０１０２】
ステップ１５０２で、入力部１０３ｂから通信インタフェース部１０４ｃを介して送信された処理リクエストを、設計情報入出力装置１０２の設計書読込及び変換部２０２が受け付けて設計書登録画面３０５を生成する。
【０１０３】
設計書読込及び変換部２０２は通信インタフェース部１０４ｂを介して処理レスポンスをクライアント装置１０３に応答し、クライアント装置１０３の出力部１０３ｄに設計書登録画面３０５を表示させる。なお、設計書登録画面３０５の“登録対象”（３０５１）の選択肢には、記憶部１０２ｃに登録されている全ての設計書メタ情報３０１の要素“ファイル種別”の“ローカル名”が一覧で並ぶ。
【０１０４】
ステップ１５０３で、クライアント装置１０３は入力部１０３ｂの操作によって、設計書登録画面３０５の“登録対象”（３０５１）と“設計書ファイル名”（３０５２）が入力され、設計書登録画面３０５の“登録”ボタンが押されたことを受け付ける。クライアント装置１０３は、設計書登録画面３０５で入力された“設計書ファイル名”（３０５２）に該当した設計書３０４ｂのファイルを記憶部１０３ｃから読み込む。クライアント装置１０３は、通信インタフェース部１０４ｃを介して設計書３０４ｂのデータと設計書登録画面３０５で入力された“登録対象”（３０５１）と処理リクエストを設計情報入出力装置１０２に通知する。以降のステップの処理は設計情報入出力装置１０２で実行される。
【０１０５】
ステップ１５０４では、設計書読込及び変換部２０２が記憶部１０２ｃに登録されている設計情報定義体３０２のファイルの中から、設計書登録画面３０５の“登録対象”（３０５１）で選択された文字列と同じ値を設計情報定義体３０２の要素“genericRule”（３０２１）の属性“localName”に持つ設計情報定義体３０２のファイルを記憶部１０２ｃから検索して読み込む。
【０１０６】
ステップ１５０５では、設計書読込及び変換部２０２が記憶部１０２ｃに登録されている設計書メタ情報３０１のファイルの中から、ステップ１５０４で読み込んだ設計書メタ情報３０１の“ファイル種別”（３０１１）の“英字名”と同じ値を設計情報雛形３０３の要素“documentCls”（３０３１）の属性“name”の値に持つ設計情報雛形３０３のファイルを記憶部１０２ｃから検索して読み込む。
【０１０７】
ステップ１５０６では、設計書読込及び変換部２０２がステップ１５０３で読み込んだスプレッドシート形式の設計書３０４ｂのファイルを、ステップ１５０４で読み込んだ設計情報定義体３０２を利用して、設計書３０４ｂのファイルから単数項目３０１４または複数項目３０１５の項目名（ローカル名）と値を取得する。
【０１０８】
なお、設計書３０４ｂのファイルから単数項目または複数項目に該当するステップ１５０４で読み込んだ設計情報定義体３０２の要素“singleItemKey”（３０２４）または要素“listItemKey”（３０２５）の属性“mandatory”の値が、“true”であるにも関わらず、設計書３０４ｂのファイル上で単数項目３０１４または複数項目３０１５の値が入力されていなかった場合、設計書読込及び変換部２０２はエラーを出力する。
【０１０９】
具体的に単数項目３０１４の場合、つまり設計情報定義体３０２の要素“key”の属性“type”の値が“single”である場合、設計書読込及び変換部２０２は設計情報定義体３０２の要素“singleItemKey”３０１４とこの属性“name”から項目名を取得し、項目名に対する値の行位置を要素“singleItemKey”（３０２４）内の要素“cellLine”から取得し、項目名に対する値の列位置を要素“singleItemKey”（３０２４）内の要素“cellColumn”から取得し、スプレッドシート形式の設計書３０４ｂのファイルから取得した行位置と列位置の値を取得する。設計書読込及び変換部２０２は、以上の処理を設計情報定義体３０２の要素“key”に含まれる要素“singleItemKey”（３０２４）の数だけ繰り返す。
【０１１０】
または複数項目３０１５の場合、つまり設計情報定義体３０２の要素“key”の属性“type”の値が“list”である場合、設計書読込及び変換部２０２は設計情報定義体３０２の要素“listItemKey”（３０２５）とこの属性“name”から項目名を、項目名に対する値の行位置を要素“listItemKey”（３０２５）内の要素“cellLine”から取得し、項目名に対する値の列位置を要素“listItemKey”（３０２５）内の要素“cellColumn”から取得し、スプレッドシート形式の設計書３０４ｂのファイルから取得した行位置と列位置の値、及び行位置を一つずつ増やして値が存在する行まで値を複数取得する。
【０１１１】
設計書読込及び変換部２０２は、以上の処理を設計情報定義体３０２の要素“key”に含まれる要素“listItemKey”（３０２５）の数だけ繰り返す。ただし、設計書読込及び変換部２０２は一つの設計情報定義体３０２の要素“key”に含まれる要素“listItemKey”（３０２５）から取得する値の数は、要素“listItemKey”（３０２５）の属性“mandatory”が“true”で指定される値の数に等しい。
【０１１２】
例えば、図７Ｂに示す設計書３０４ｂのファイルの複数項目の例において、“クラス日本語名”（３０５３）と“メソッド日本語名”（３０５５）という項目に対する要素“listItemKey”（３０２５）の属性“mandatory”が“true”で指定されている場合、それぞれ３行目まで値が埋まっているので、設計書読込及び変換部２０２は“項番”（３０５１）が“３”の行までの値が取得される。
【０１１３】
ステップ１５０７では、設計書読込及び変換部２０２が、まずステップ１５０６で取得した値を次のようにして、設計情報雛形３０３に埋め込む変数を設定する。
【０１１４】
設計書読込及び変換部２０２は、単数項目について、ステップ１５０４で読み込んだ設計情報定義体３０２の、要素“designSpecification”の属性“sheetCls”の値と、要素“key”の属性“name”の値と、要素“singleItemKey”（３０２３）の属性“name”の値を“.”で連結した形式で変数を設定し、この変数にステップ１５０６で取得した項目の値を代入する。
【０１１５】
設計書読込及び変換部２０２は、複数項目について、ステップ１５０４で読み込んだ設計情報定義体３０２の、要素“designSpecification”（３０２３）の属性“sheetCls”の値と、要素“key”の属性“name”の値を“.”で連結した形式で変数を設定する。この変数はリストオブジェクトであり、設計書読込及び変換部２０２が、ステップ１５０４で読み込んだ設計情報定義体３０２の要素“listItemKey”（３０２５）の属性“name”の値を名前とした変数を設定する。
【０１１６】
そして、設計書読込及び変換部２０２は、前記ステップ１５０６でスプレッドシート形式の設計書３０４ｂでクラス情報（３０５３、３０５４）及びメソッド情報（３０５５、３０５６）のリストから取得した値を、リストの一行ごとに登録し、このオブジェクトを前記のリストオブジェクトに登録する。
【０１１７】
設計書読込及び変換部２０２は、設計情報雛形３０３の“$”の変数を、以上のようにして設定した変数の値に置き換えて、設計情報３１０を生成する。なお、設計情報３１０内の“#foreach( $member in $XXXX)”と“#end”で囲まれた部分は次のように処理する。
【０１１８】
例えば、前記リストオブジェクト“XXXX”の部分が図５の設計情報雛形３０３に一例を示すように、前記リストオブジェクト“classMethodDesignDoc.classMethodList”であった場合、設計書読込及び変換部２０２は、“classMethodDesignDoc.classMethodList”に登録されている複数のオブジェクトの中から先頭のオブジェクトを取り出して変数“$member”に代入し、要素“member”（３０３５）に含まれる要素内の変数を後述するように値に置き換えて、図５の“#end”まで処理する。
【０１１９】
例えば、図５に示す要素“classLocalName”（３０３６）の変数“${member.classlocalName}”では、設計書読込及び変換部２０２が、“member”（３０３５）から“classlocalName”を取り出し、その値に置き換える。
【０１２０】
設計書読込及び変換部２０２は、リストオブジェクトに登録されているオブジェクトの数だけ、要素“member”（３０３５）と、この要素に含まれる要素をコピーして、前記の要素内の変数を値に置き換える処理を繰り返す。設計書読込及び変換部２０２は、最後に“#foreach( $member in $XXXX)”と“#end”を消去する。
【０１２１】
ステップ１５０８では、設計書読込及び変換部２０２が、ステップ１５０７で生成したＸＭＬ形式の設計情報３１０のファイルの要素“documentCls”の属性“date”の値に、上記処理を実行した年月日日時分秒を例えば“YYYY/MM/DD/HH：MM：SS”の形式で設定する。
【０１２２】
そして、設計書読込及び変換部２０２は、図５に示した要素“documentCls”の属性“fileName”の値に設計書登録画面３０５でユーザによって入力された“設計書ファイル名” の名前を設定し、当該ファイル名でステップ１５０７で生成したＸＭＬ形式の設計情報３１０のファイルを記憶部１０２ｃに格納する。また、設計書読込及び変換部２０２は、受け付けた設計書３０４ｂを記憶部１０２ｃに格納する。
【０１２３】
なお、設計書読込及び変換部２０２は、ＸＭＬ形式の設計情報３１０を記憶部１０２ｃに格納したデータベースの一つのフィールドに格納することができる。これにより、設計書３０４ｂのレイアウトや項目が変更されてもＸＭＬ形式の設計情報３１０を格納するデータベースを改修する必要はなくなる。また、設計情報３１０をデータベースの一つのフィールドに格納する際には、ＸＭＬ形式を維持することで検索処理を円滑に行うことができる。
【０１２４】
設計書読込及び変換部２０２は、最後にステップ１５０９で出力部１０３ｄに処理が完了したメッセージを出力して終了する。
【０１２５】
以上の処理によって、スプレッドシート形式の設計書３０４ｂの内容は、設計書読込変換部２０２が設計情報定義体３０２に従って設計情報雛形３０３に設定することで、ＸＭＬ形式の設計情報３１０に変換されて記憶部１０２ｃに格納される。
【０１２６】
設計情報３１０は、一つのファイルやデータベースの一つのカラムに格納することができるので、設計書３０４ｂのレイアウトや項目が変更されても、前記従来例のようにデータベースを改修する必要はない。したがって、システム開発において作成または更新される様々な設計書３０４ｂに柔軟に対応することが可能であり、設計書のカスタマイズが容易なスプレッドシート形式設計書の入出力システム１００を提供することができる。
【０１２７】
なお、設計情報３１０を記憶部１０２ｃのデータベースへ格納する際には、ＸＭＬ形式に限定されるものではなく、テキスト形式など所望の形式（フォーマット）で一つのカラムに格納することができる。
【０１２８】
図１６は、設計情報検索条件入力画面出力部２０３の処理の一例を示すフローチャートである。この処理は、設計情報入出力装置１０２がクライアント装置１０３から検索要求を受け付けたときなどに実行される。設計情報検索条件入力画面出力部２０３は、設計情報定義体３０２と設計情報定義体３０２を入力して、検索条件入力画面３０６ａを出力する。
【０１２９】
ステップ１６０１で、設計情報検索条件入力画面出力部２０３は、クライアント装置１０３の入力部１０３ｂからの指示（検索要求）を契機に処理が開始する。設計情報入出力装置１０２は、入力部１０３ｂから通信インタフェース部１０４ｂを介して処理リクエストを、設計情報検索条件入力画面出力部２０３が受け付けて、検索条件入力画面３０６ａを生成する。
【０１３０】
ステップ１６０２で、設計情報検索条件入力画面出力部２０３は、記憶部１０２ｃに登録されている設計情報定義体３０２を全て読み込む。ステップ１６０３で、設計情報検索条件入力画面出力部２０３は、読み込んだ設計情報定義体３０２の要素“designSpecification”（３０２３）の属性“localName”の値を、生成した検索条件入力画面３０６ａの“検索対象”（３０６１）の選択肢にセットする。
【０１３１】
ステップ１６０４では、ユーザによって図９の“検索対象”（３０６１）が選択されている場合、設計情報検索条件入力画面出力部２０３は、ユーザによって選択された“検索対象”（３０６１）に合致する設計情報定義体３０２を特定する。ただし、ユーザによって“検索対象”が選択されていない場合、本ステップをスキップする。
【０１３２】
具体的には、設計情報検索条件入力画面出力部２０３が、ユーザによって選択された“検索対象”（３０６１）を要素“designSpecification”（３０２３）の属性“localName”の値を持つ設計情報定義体３０２を特定する。設計情報検索条件入力画面出力部２０３は、特定した設計情報定義体３０２に含まれる要素“key”ごとに、要素“key”の属性“localName”の値を名前に持つ入力フォームのグループを生成する。
【０１３３】
さらに、設計情報検索条件入力画面出力部２０３は、生成した入力フォームのグループの中に要素“key”に含まれる要素“singleItemKey”（３０２４）または要素“listItemKey”（３０２５）の属性“mandatory”が“true”である場合に属性“localName”の値ごとに入力フォーム（３０６２、３０６４）と、“検索”（３０６３、３０６５）ボタンを生成する。
【０１３４】
図９は、検索条件入力画面３０６ａの一例を示す図である。設計情報検索条件入力画面出力部２０３が生成する検索条件入力画面３０６ａは、検索の対象をプルダウンリスト等で選択する“検索対象”（３０６１）と、検索する項目と“検索”ボタン３０６３、３０６５を含む２つの入力フォーム３０６２、３０６４を含む例を示す。
【０１３５】
図９の例では、図４に示した設計情報定義体３０２に基づいて、要素“key”の属性“localName”の値が“クラス・メソッド設計情報”と“クラス・メソッド一覧”を名前とする２つの入力フォームのグループを、設計情報検索条件入力画面出力部２０３が生成した例を示す。
【０１３６】
設計情報検索条件入力画面出力部２０３は、ユーザによって選択された“検索対象”（３０６１）を図４の要素“designSpecification”（３０２３）の中に要素“relationship”が含まれ、要素“relationship”の属性“parentItem”の値と”childItem”の値で指定される単数項目グループまたは複数項目グループが存在する場合、設計情報検索条件入力画面出力部２０３は、“parentItem”の値と”childItem”の値で指定される単数項目グループまたは複数項目グループを纏めて入力フォームのグループと入力フォームと、“検索”ボタンも生成する。
【０１３７】
例えば、図４に一例を示す設計情報定義体３０２では、要素“relationship”の属性“parentItem”の値に“classMethodDesignInfo”を持ち単数項目グループ“クラス・メソッド設計情報(要素“key”の属性“localName”の値が“クラス・メソッド設計情報”で属性“name”の値が“classMethodDesignInfo”で属性“type”の値が“single”)を指定されている。
【０１３８】
設計情報検索条件入力画面出力部２０３は、要素“relationship”の属性“childItem”の値に“classMethodList”を持ち複数項目グループ“クラス・メソッド一覧” (要素“key”の属性“localName”の値が“クラス・メソッド一覧”で属性“name”の値が“classMethodList”で属性“type”の値が“list”)を指定されており、それら単数項目と複数項目を合わせた入力フォームのグループ“クラス・メソッド設計情報−クラス・メソッド一覧”を持つ検索条件入力画面３０６ｂを図１０で示すように生成する。
【０１３９】
ステップ１６０５で、設計情報検索条件入力画面出力部２０３は、通信インタフェース部１０４ｂを介して処理レスポンスをクライアント装置１０３に応答し、クライアント装置１０３の出力部１０３ｄにステップ１６０４で生成した検索条件入力画面３０６ａまたは３０６ｂを表示してから終了する。
【０１４０】
図１０は、検索条件入力画面３０６ｂの一例を示す図である。設計情報検索条件入力画面出力部２０３が生成する検索条件入力画面３０６ａは、検索の対象をプルダウンリスト等で選択する“検索対象”（３０６１）と、検索する項目と“検索”ボタン３０６７を含む２つの入力フォーム３０６６を含む例を示す。
【０１４１】
図１０の例では、図４に示した設計情報定義体３０２に基づいて、上述のように“クラス・メソッド設計情報−クラス・メソッド一覧”を名前とする単数項目と複数項目を合わせた入力フォームを、設計情報検索条件入力画面出力部２０３が生成した例を示す。
【０１４２】
上記の処理によって、図９または図１０に示す検索条件入力画面３０６ａ、３０６ｂが設計情報定義体３０２の内容に応じて生成され、クライアント装置１０３のユーザは入力フォーム内の検索項目へ所望の値を入力してから“検索”ボタンを押すことで、検索を実行することができる。
【０１４３】
図１７は、設計情報検索及び結果表示画面出力部２０４で行われる処理の一例を示すフローチャートである。設計情報検索及び結果表示画面出力部２０４は、設計情報定義体３０２と設計情報３１０を入力して、図９または図１０で受け付けた入力フォームの項目で設計情報の検索を実行し、検索の結果を設計情報検索結果画面３０７として出力する。この処理は、検索条件入力画面３０６ａ、３０６ｂで“検索”ボタン３０６３、３０６５、３０６７がクリックされた後に実行される。
【０１４４】
ステップ１７０１で、検索条件入力画面３０６ａ、３０６ｂで、“検索”ボタンがクリックされてクライアント装置１０３の入力部１０３ｂから指示（検索実行）が発生し、この指示を設計情報検索及び結果表示画面出力部２０４が受け付けると処理を開始する。
【０１４５】
ステップ１７０２で、入力部１０３ｂから通信インタフェース部１０４ｂを介して渡される処理リクエストを、設計情報検索及び結果表示画面出力部２０４が受け付け、検索条件入力画面３０６ａ、３０６ｂで入力された検索条件（入力フォーム内の項目）を検索キーにして、設計情報定義体３０２を利用して設計情報３１０を検索する。すなわち、設計情報検索及び結果表示画面出力部２０４は、検索条件に応じて設計情報３１０のファイル種別を検索する。
【０１４６】
なお、検索の範囲は“検索”ボタンがクリックされた入力フォームのグループを単位として、設計情報検索及び結果表示画面出力部２０４が決定する。例えば、図９の検索条件入力画面３０６ａにおいて、入力フォームのグループである“クラス・メソッド設計情報”で入力フォーム３０６２内の検索条件が入力され“検索”ボタン３０６３がクリックされた場合、設計情報定義体３０２において、設計情報検索及び結果表示画面出力部２０４は、属性“localName”の値が“クラス・メソッド設計情報”を持つ要素“key”を特定する。設計情報検索及び結果表示画面出力部２０４は、特定した要素“key”の“name”の値“classMethodDesignInfo”を取得して、この取得した値を属性“name”の値に持つ設計情報の要素“singleItems ”の範囲で記憶部１０２ｃを検索する。
【０１４７】
同様にして、検索条件入力画面３０６ａにおいて、入力フォームのグループである“クラス・メソッド一覧”の入力フォーム３０６４で検索条件が入力され“検索”ボタン３０６５がクリックされた場合、設計情報検索及び結果表示画面出力部２０４は、設計情報定義体３０２において属性“localName”の値が“クラス・メソッド一覧” を持つ要素“key”を特定する。設計情報検索及び結果表示画面出力部２０４は、特定した要素“key”の“name”の値“classMethodList” を取得して、この取得した値を属性“name”の値に持つ設計情報の要素“listItems”（３０３７）の範囲で記憶部１０２ｃを検索する。
【０１４８】
さらに同様に、図１０の検索条件入力画面３０６ｂにおいて、入力フォームグループである“クラス・メソッド設計情報−クラス・メソッド一覧”の入力フォーム３０６６で検索条件が入力されて、“検索”ボタン３０６７がクリックされた場合、設計情報検索及び結果表示画面出力部２０４は、設計情報定義体３０２において属性“localName”の値が“クラス・メソッド設計情報”または“クラス・メソッド一覧”を持つ要素“key”を特定する。
【０１４９】
そして、設計情報検索及び結果表示画面出力部２０４は、特定した要素“key”の“name”の値“classMethodDesignInfo”または値“classMethodList” を取得して、これら取得した値を属性“name”の値に持つ設計情報３１０の要素“singleItems ”と“listItems”の範囲で記憶部１０２ｃを検索する。
【０１５０】
ステップ１７０３で、設計情報検索及び結果表示画面出力部２０４は、ステップ１７０２で検索された設計情報３１０のファイル種別、即ち設計情報３１０の要素“documentCls”の属性“name”の値を取得する。
【０１５１】
ステップ１７０４で、設計情報検索及び結果表示画面出力部２０４は、ステップ１７０３で取得された値を、要素“genericRule”の属性“name”に持つ設計情報定義体３０２を記憶部１０２ｃから読み込む。
【０１５２】
ステップ１７０５で、設計情報検索及び結果表示画面出力部２０４は、ステップ１７０２で取得した設計情報３１０及びステップ１７０４で取得した設計情報定義体３０２を元に、図１１Ａ〜図１２に示す設計情報検索結果画面３０７ａ、３０７ｂまたは３０７ｃを生成する。
【０１５３】
図１１Ａ〜図１２に示す設計情報検索結果画面３０７ａ〜３０７ｃの検索範囲は、ステップ１７０２で検索した範囲とし、検索条件入力画面３０６ａ〜３０６ｂでクリックされた“検索”ボタン３０６３〜３０６７が属する入力フォームのグループに依存する。
【０１５４】
例えば、図９の検索条件入力画面３０６ａにおいて、入力フォームグループである“クラス・メソッド設計情報”の入力フォーム３０６２で検索条件が入力され“検索”ボタン３０６３がクリックされた場合、設計情報検索及び結果表示画面出力部２０４は、ステップ１７０２で設計情報の要素“singleItems ”の属性“name”の値に対応した“クラス・メソッド設計情報”である範囲を検索する。設計情報検索及び結果表示画面出力部２０４は、この検索結果をリスト形式にして図１１Ａに示す“クラス・メソッド設計情報 検索結果画面”３０７ａを生成する。
【０１５５】
図１１Ａにおいて、“クラス・メソッド設計情報  検索結果画面”３０７ａのリストのカラムヘッダ３０７１には、“設計情報参照”（３０７２）と、要素“singleItems”に含まれる要素名に対応するローカル名を、設計情報定義体３０２の要素“singleItemKey”の属性“name”を特定して属性“localName”の値を割り当てる。
【０１５６】
また、検索条件入力画面３０６ａにおいて、入力フォームグループである“クラス・メソッド一覧”の入力フォーム３０６４で検索条件が入力され“検索”ボタン３０６５がクリックされた場合、設計情報検索及び結果表示画面出力部２０４は、ステップ１７０２で設計情報の要素“listItems”の属性“name”の値に対応した“クラス・メソッド一覧”である範囲を検索する。
【０１５７】
設計情報検索及び結果表示画面出力部２０４は、この検索結果をリスト形式にして図１１Ｂに示す“クラス・メソッド一覧 検索結果画面”３０７ｂを生成する。リストのカラムヘッダ３０７１には、“設計情報参照”（３０７２）と、要素“member”に含まれる要素名に対応するローカル名を、設計情報定義体３０２の要素“listItemKey”の属性“name”を設計情報検索及び結果表示画面出力部２０４が特定して属性“localName”の値を割り当てる。
【０１５８】
さらに、検索条件入力画面３０６ｂにおいて、入力フォームグループである“クラス・メソッド設計情報 - クラス・メソッド一覧”の入力フォーム３０６６で検索条件が入力され“検索”ボタン３０６７がクリックされた場合、設計情報検索及び結果表示画面出力部２０４は、ステップ１７０２で設計情報の要素“singleItems ”の属性“name”の値に対応した“クラス・メソッド設計情報”と、要素“listItems”の属性“name”の値に対応した“クラス・メソッド一覧”の範囲を検索する。
【０１５９】
設計情報検索及び結果表示画面出力部２０４は、これらの検索結果をリスト形式にして“クラス・メソッド一覧 検索結果画面”３０７ｃを生成する。設計情報検索及び結果表示画面出力部２０４は、リストのカラムヘッダ３０７１に、“設計情報参照”（３０７２）と、要素“singleItems”に含まれる要素名に対応するローカル名を割り当て、設計情報定義体３０２の要素“singleItemKey”の属性“name”を特定して属性“localName”の値と、要素“member”に含まれる要素名に対応するローカル名を、設計情報定義体３０２の要素“listItemKey”の属性“name”を特定して属性“localName”の値を割り当てる。
【０１６０】
なお、上述の設計情報検索結果画面３０７ａと３０７ｂと３０７ｃのいずれの“設計情報参照”（３０７２）の値は、設計情報参照及び編集画面３０８に遷移するボタンであり、リストの各行の設計情報に対応する設計書ファイル名、即ち設計情報３１０の要素“documentCls”の属性“fileName”の値を保持している。
【０１６１】
設計情報検索及び結果表示画面出力部２０４は、最後にステップ１７０６で、通信インタフェース部１０４ｂを介して処理レスポンスをクライアント装置１０３に応答し、クライアント装置１０３の出力部１０３ｄにステップ１７０５で生成した設計情報検索結果画面３０７ａ〜３０７ｃを表示させて処理を終了する。
【０１６２】
上記処理によって、設計情報入出力装置１０２はクライアント装置１０３から受け付けた検索条件で検索した結果を、設計情報検索結果画面３０７ａ、３０７ｂ、３０７ｃとして出力することができる。
【０１６３】
本実施例１では、設計情報入出力装置１０２は、受け付けた検索条件でＸＭＬ形式の設計情報３１０のファイルを検索する。すなわち、設計書３０４ｂのレイアウトや項目が変更されても、設計情報入出力装置１０２ではＸＭＬ形式の設計情報３１０のファイルの検索を行うことができる。したがって、前記従来例のように、設計書３０４ｂのレイアウトや項目の変更に応じてデータベースを改修する必要はなくなって、設計書３０４ｂの変更などに伴う労力や運用コストを削減できる。
【０１６４】
図１８は、設計情報参照及び編集画面出力部２０５の処理の一例を示すフローチャートである。この処理は、設計情報検索結果画面３０７ａ〜３０７ｃの“設計情報参照”（３０７２）がクリックされたときに実行される。設計情報参照及び編集画面出力部２０５は、設計情報定義体３０２と設計情報３１０を入力として、設計情報参照及び編集画面３０８を出力する。
【０１６５】
ステップ１８０１で、設計情報検索結果画面３０７ａや３０７ｂや３０７ｃに表示された“設計情報参照”（３０７２）のボタンがクリックされてクライアント装置１０３の入力部１０３ｂから指示が発生し、この指示を契機に処理が開始される。
【０１６６】
ステップ１８０２では、設計情報参照及び編集画面出力部２０５が“設計情報参照”（３０７２）のボタンに割り当てられた設計書ファイル名を要素“documentCls”（３０３１）の属性“fileName”の値に含む設計情報３１０を記憶部１０２ｃから検索する。
【０１６７】
ステップ１８０３では、設計情報参照及び編集画面出力部２０５がステップ１８０２で読み込んだ設計情報３１０のファイル種別、即ち設計情報３１０の要素“documentCls”（３０３１）の属性“name”の値を取得する。
【０１６８】
ステップ１８０４では、設計情報参照及び編集画面出力部２０５がステップ１８０３で取得した値を、要素“genericRule”（３０２１）の属性“name”に持つ設計情報定義体３０２を記憶部１０２ｃから読み込む。
【０１６９】
ステップ１８０５では、設計情報参照及び編集画面出力部２０５がステップ１８０２で取得した設計情報３１０を、ステップ１８０４で読み込んだ設計情報定義体３０２を利用して、図１３に示す設計情報参照及び編集画面３０８を生成する。
【０１７０】
具体的には、設計情報参照及び編集画面出力部２０５は、図１３の“ファイル種別”（３０８１）として設計情報３１０の要素“documentCls”（３０３１）の属性“name”の値に対応したステップ１８０４の設計情報定義体３０２の要素“documentCls”の属性“localName”の値と、“ファイル名”（３０８２）として要素“documentCls”（３０３１）の属性“fileName”の値を生成する。
【０１７１】
設計情報参照及び編集画面出力部２０５は、“ファイル種別”（３０８１）内に“シート種別”（３０８４）として設計情報３１０の要素“sheetCls”の属性“name”の値に対応したステップ１８０４の設計情報定義体３０２の要素“sheetCls”の属性“localName”の値を生成する。
【０１７２】
設計情報参照及び編集画面出力部２０５は、“登録日時”（３０８３）内に要素“documentCls”の属性“date”の値を生成する。また、“シート種別”（３０８４）内には単数項目グループや複数項目グループを生成する。
【０１７３】
単数項目グループの場合は、図５の要素“singleItems”（３０３３）の属性“name”の値に対応したステップ１８０４の設計情報定義体３０２の要素“key”の属性“localName”の値と、要素“singleItems”（３０３３）に含まれる要素とその値を生成する。
【０１７４】
設計情報参照及び編集画面３０８では要素“singleItems”（３０３３）に含まれる要素のローカル名を表示させるために、設計情報定義体３０２の要素“singleItemKey”（３０２４）の属性“name”を特定して属性“localName”の値を割り当てる。
【０１７５】
なお、設計情報参照及び編集画面出力部２０５は、要素“singleItems”（３０３３）に含まれる要素の値を、設計情報参照及び編集画面３０８において、編集不可能なテキストとするか、編集可能な入力フィールドとするかを、該当する設計情報定義体３０２の要素“itemType”の値で判定して設計情報参照及び編集画面３０８を生成する。
【０１７６】
複数項目グループの場合、設計情報参照及び編集画面出力部２０５は、要素“listItems”（３０３７）の属性“name”の値に対応したステップ１８０４で読み込んだ設計情報定義体３０２の要素“key”の属性“localName”の値と、要素“listItems”（３０３７）に含まれる要素“member”に含まれる要素とその値をリスト形式で生成する。
【０１７７】
設計情報参照及び編集画面出力部２０５は、リストのカラムヘッダ３０８５には、要素“member”に含まれる要素名に対応するローカル名を、設計情報定義体３０２の要素“listItemKey”（３０２５）の属性“name”を特定して属性“localName”の値を割り当てる。
【０１７８】
設計情報参照及び編集画面出力部２０５は、リスト化される値を、画面において、編集不可能なテキストとするか、編集可能な入力フィールドとするかを、該当する設計情報定義体３０２の要素“itemType”の値で判定して設計情報参照及び編集画面３０８を生成する。なお、設計情報参照及び編集画面３０８内でリスト化される値を表示する領域の大きさは、設計情報参照及び編集画面出力部２０５が該当する設計情報定義体３０２の要素“itemLength”の値で判定して画面を生成する。なお、設計情報参照及び編集画面３０８の“追加”（３０８６）ボタンがクリックされると、リスト内に一行を新たに追加できる。また、リスト内の一行が選択され“削除”（３０８７）ボタンがクリックされると、選択されたリスト内の一行のデータを削除できる。また、“登録・設計書出力”（３０８８）のボタンがクリックされると、後述の図１９の処理が開始される。
【０１７９】
設計情報参照及び編集画面出力部２０５は、最後にステップ１８０６で、通信インタフェース部１０４ｂを介して処理レスポンスをクライアント装置１０３に応答し、クライアント装置１０３の出力部１０３ｄにステップ１７０５で生成した設計情報参照及び編集画面３０８を表示させて処理を終了する。
【０１８０】
上記処理によって、設計情報入出力装置１０２は、ＸＭＬ形式の設計情報３１０を読み込んで設計情報参照及び編集画面３０８として表示することができる。
【０１８１】
図１９は、設計情報編集処理部２０６の処理の一例を示すフローチャートである。設計情報編集処理部２０６は、設計情報定義体３０２と設計情報雛形３０３と設計情報３１０と設計書雛形３０４ａを入力として、設計情報参照及び編集画面３０８で編集された設計情報３１０（図６）と設計書３０４ｃ（図７Ｃ）を出力する。
【０１８２】
ステップ１９０１で、設計情報参照及び編集画面３０８に表示された“登録・設計書出力”（３０８８）ボタンがクリックされるとクライアント装置１０３の入力部１０３ｂから指示が発生し、この指示を契機に処理が開始される。
【０１８３】
ステップ１９０２では、設計情報編集処理部２０６が、設計情報参照及び編集画面３０８の“ファイル種別”（３０８１）の値を、要素“genericRule”（３０２１）の属性“localName”の値に持つ設計情報定義体３０２を記憶部１０２ｃから読み込む。
【０１８４】
ステップ１９０３では、設計情報編集処理部２０６が、記憶部１０２ｃに登録されている設計書メタ情報３０１のファイルの中から、ステップ１９０２で読み込んだ設計書メタ情報３０１の“ファイル種別”（３０８１）の“英字名”と同じ値を設計情報雛形３０３の要素“documentCls”の属性“name”の値に持つ設計情報雛形３０３のファイルを記憶部１０２ｃから読み込む。
【０１８５】
ステップ１９０４では、設計情報編集処理部２０６が、まず設計情報雛形３０３の要素“documentCls”（３０３１）の属性“fileName”の値に、設計情報参照及び編集画面３０８の“ファイル名”（３０８２）を設定する。
【０１８６】
次に、設計情報編集処理部２０６は、ステップ１９０２で読み込んだ設計情報定義体３０２を利用して、設計情報参照及び編集画面３０８から単数項目または複数項目の値を読み込んで所定の変数に代入し、ステップ１９０３で読み込んだ設計情報雛形３０３に変数の値を設定してＸＭＬ形式の設計情報３１０を生成する。
【０１８７】
なお、設計情報編集処理部２０６は、設計情報参照及び編集画面３０８から単数項目または複数項目に該当するステップ１９０２で読み込んだ設計情報定義体３０２の要素“singleItemKey”（３０２４）または要素“listItemKey”（３０２５）の属性“mandatory”の値が、“true”であるにも関わらず、設計情報参照及び編集画面３０８で単数項目または複数項目の値が入力されなかった場合、または消去されて無い場合はエラーを出力する。
【０１８８】
設計情報編集処理部２０６は、単数項目について、設計情報定義体３０２の要素“key”の属性“type”の値が“single”である場合、設計情報定義体３０２の要素“singleItemKey”（３０２４）とこの属性“localName”と同じ名前をヘッダに持つ値を設計情報参照及び編集画面３０８から取得する。設計情報編集処理部２０６は、取得した値を、設計情報定義体３０２の、要素“designSpecification”（３０２３）の属性“sheetCls”の値と、要素“key”の属性“name”の値と、要素“singleItemKey”（３０２４）の属性“name”の値を“.”で連結した形式で変数を生成して値を代入する。以上の処理を設計情報定義体３０２の要素“singleItemKey”の数だけ繰り返す。
【０１８９】
設計情報編集処理部２０６は、複数項目について、設計情報定義体３０２の要素“key”の属性“type”の値が“list”である場合、設計情報定義体３０２の要素“listItemKey”（３０２５）とこの属性“localName”と同じ名前をリストのヘッダに持つカラムの複数の値を設計情報参照及び編集画面３０８から取得する。
【０１９０】
設計情報編集処理部２０６は、取得した値を、設計情報定義体３０２の、要素“designSpecification”（３０２３）の属性“sheetCls”の値と、要素“key”の属性“name”の値を“.”で連結した形式で変数を生成する。この変数はリストオブジェクトであり、設計情報定義体３０２の要素“listItemKey”（３０２５）の属性“name”の値を名前とした変数を作成して、前記設計情報参照及び編集画面３０８から取得した値を登録する。
【０１９１】
設計情報編集処理部２０６は、以上のようにして生成した変数の値を、設計情報雛形３０３の“$”の変数を対応する値に置き換えて、設計情報３１０を生成する。なお、設計情報３１０内の“#foreach( $member in $XXXX)”と“#end”で囲まれた部分の処理は上記ステップ１５０７の処理と同様である。
【０１９２】
以上のようにして、設計情報編集処理部２０６は、設計情報参照及び編集画面３０８から編集後のＸＭＬ形式の設計情報３１０を生成する。
【０１９３】
ステップ１９０５では、設計情報編集処理部２０６が、ステップ１９０４で生成した設計情報３１０を記憶部１０２ｃに格納して、編集されたデータで設計情報３１０を更新する。なお、設計情報編集処理部２０６は、ＸＭＬ形式の設計情報３１０をデータベースの一つのカラムに格納することができる。
【０１９４】
ステップ１９０６では、設計情報編集処理部２０６が、予め記憶部１０２ｃにファイル種別毎に格納されている設計書雛形３０４ａを、設計情報参照及び編集画面３０８の“ファイル種別”（３０８１）の値を元に特定して記憶部１０２ｃから読み込む。
【０１９５】
ステップ１９０７では、設計情報編集処理部２０６が、ステップ１９０２で読み込んだ設計情報定義体３０２を用いて、ステップ１９０４で生成した設計情報３１０からステップ１９０６で読み込んだ設計書雛形３０４ａを更新することによって、設計情報参照及び編集画面３０８で編集された設計情報３１０を反映した設計書３０４ｃを生成する。
【０１９６】
具体的に単数項目の場合、設計情報編集処理部２０６は、設計情報３１０の要素“singleItems”（３０３３）の属性“name”の値と同じ値を持つ設計情報定義体３０２の要素“key”を特定した上で、設計情報３１０の要素“singleItems”（３０３３）に含まれる各要素の値と同じ値を属性“name”に持つ（特定した要素“key”内の）要素“singleItemKey”（３０２４）を特定する。
【０１９７】
この要素“singleItemKey”（３０２４）内の要素“cellLine”からスプレッドシートの行と、要素“cellColumn”からスプレッドシートの列を取得し、設計情報３１０の要素“singleItems”（３０３３）に含まれる各要素の値を、ステップ１９０６で読み込んだ設計書雛形３０４ａに取得した行と列で特定されるセルに反映する。
【０１９８】
次に複数項目の場合、設計情報編集処理部２０６は、設計情報３１０の要素“listItems”（３０３７）の属性“name”の値と同じ値を持つ設計情報定義体３０２の要素“key”を特定する。そして、設計情報編集処理部２０６は、設計情報３１０の要素“member”に含まれる各要素の値と同じ値を属性“name”に持つ（特定した要素“key”内の）要素“listItemKey”（３０２５）を特定する。
【０１９９】
設計情報編集処理部２０６は、この要素“listItemKey”（３０２５）内の要素“cellLine”からスプレッドシートの行と、要素“cellColumn”からスプレッドシートの列を取得し、設計情報３１０の要素“member”に含まれる各要素の値を、ステップ１９０６で読み込んだ設計書雛形３０４ａに取得した行と列で特定されるセルに反映する。
【０２００】
また、設計情報編集処理部２０６は、設計情報３１０の要素“documentCls”（３０３１）の属性“date”の値にこの処理時の年月日日時分秒を例えば“YYYY/MM/DD/HH：MM：SS”の形式で設定する。
【０２０１】
ステップ１９０８では、設計情報編集処理部２０６が、ステップ１９０７で生成した設計書３０４ｃを、記憶部１０２ｃに格納し、通信インタフェース部１０４ｂを介してデータ転送処理を行い、クライアント装置１０３の記憶部１０３ｃに登録する。
【０２０２】
なお、設計情報編集処理部２０６は、ステップ１９０７で生成した設計書３０４ｃを、ユーザが例えばクライアント装置１０３上の表計算部２１１で編集し、これを設計書３０４ｂとしてもよい。
【０２０３】
設計情報編集処理部２０６は、最後にステップ１９０８で出力部１０３ｄに処理が完了したメッセージを出力する。
【０２０４】
上記処理によって、設計情報参照及び編集画面３０８で編集された設計情報３１０がＸＭＬ形式のデータとして記憶部１０２ｃに格納され、さらに設計情報３１０はスプレッドシートの設計書３０４ｃに変換されてクライアント装置１０３へ出力される。
【０２０５】
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【０２０６】
こうした本実施例１によれば、システム開発において作成される様々な設計書に柔軟に対応可能でありカスタマイズ容易なスプレッドシート形式の設計書の入出力システム１００を実現できる。
【０２０７】
本実施形態のスプレッドシート形式の設計書３０４ｂを格納する記憶部１０２ｃにおいて、設計情報３１０を格納するにあたり、ＸＭＬファイルとして格納する、データベースの一カラムに格納する、またはＸＭＬデータベースに格納する、としてもよい。
【０２０８】
本実施形態のスプレッドシート形式の設計書３０４ｂを格納する記憶部１０２ｃにおいて、設計書３０４ｂはＸＭＬ形式としたが、ＸＭＬ(Extensible Markup Language)と同様に半構造データ形式であればＪＳＯＮ(JavaScript Object Notation（JavaScriptは登録商標）)など、であってもよい。
【０２０９】
また、スプレッドシート形式は表計算部（表計算ソフトウェア）２１０、２１１によって生成された情報であり、行と列の識別子を有するセルと、複数のセルを有するシートを含んで構成されればよい。
【０２１０】
また、上記ではスプレッドシート形式の設計書３０４ｂに本発明を適用する例を示したが、設計書に限定されるものではなく、スプレッドシート形式の情報をＸＭＬ形式に変換して編集、検索するものであればよい。この場合、上記実施例１の設計書３０４ｂを入力情報と読み替え、設計情報定義体３０２を入力情報定義体とし、設計情報雛形３０３を変換情報雛形と読み替えればよい。
【実施例２】
【０２１１】
図２１は、第２の実施例を示し、計算機１０の機能要素の一例を示すブロック図である。本実施例２では、前記実施例１に示した設計情報入出力装置１０２を仮想サーバとして計算機１０上で稼動させる例を示す。その他の構成は、前記実施例１と同様である。
【０２１２】
計算機１０では、計算機資源を仮想サーバへ提供する仮想化部４００が稼動し、仮想化部４００上では１以上のゲストＯＳ７１０−１〜７１０−ｘが稼動する。図示の例では、ゲストＯＳ７１０−１は、設計情報入出力サーバ１０２−１を提供し、ゲストＯＳ７１０−ｘは仮想サーバ１０２−ｘを提供する。なお、仮想化部４００及びゲストＯＳ７１０−１〜７１０−ｘは、仮想化部４００が割り当てた図２０のメモリ７０にロードされて、プロセッサ６０によって実行される。
【０２１３】
仮想化部４００は、計算機１０の計算機資源である入力部１０２ｂ、記憶部１０２ｃ、出力部１０２ｄ及び通信インタフェース部１０４ｂを各ゲストＯＳ７１０−１〜７１０−ｘに提供する。
【０２１４】
設計情報入出力サーバ１０２−１では、ゲストＯＳ７１０−１上で、設計書読込変換部２０２と、設計情報検索条件入力画面出力部２０３と、設計情報検索及び結果表示画面出力部２０４と、設計情報参照及び編集画面出力部２０５と、設計情報編集処理部２０６が稼動する。なお、設計書読込変換部２０２〜設計情報編集処理部２０６は、前記実施例１と同様に、プロセッサ６０が各プログラムを実行することで各部の機能を提供する。
【０２１５】
ネットワーク４０を介して接続されたクライアント装置１０３は、ブラウザ２１２を介して設計情報入出力サーバ１０２−１の各機能を利用することができる。例えば、ブラウザ２１２で設計情報入出力サーバ１０２−１の設計書読込変換部２０２を読み出して、設計書３０４ｂを登録する。クライアント装置１０３は設計書３０４ｂを設計情報入出力サーバ１０２−１へ送信し、設計情報入出力サーバ１０２−１は受信した設計書３０４ｂを記憶部１０２ｃへ格納する。設計書読込変換部２０２は、記憶部１０２ｃに格納された設計書３０４ｂに対応する設計情報定義体３０２と設計情報雛形３０３を読み込んで、ＸＭＬ形式の設計情報３１０に変換し記憶部１０２ｃへ格納する。
【０２１６】
なお、クライアント装置１０３からの要求に応じて仮想化部４００が設計情報入出力サーバ１０２−１を生成してもよい。この場合、計算機１０の計算機資源を有効に利用することが可能となる。
【０２１７】
また、前記実施例１に示した設計書メタ情報変換装置１０１やクライアント装置１０３を、計算機１０上の仮想サーバとして提供することも可能である。また、複数の計算機１０を有するクラウドシステムで設計情報入出力サーバ１０２−１を稼動させてもよい。
【０２１８】
＜まとめ＞
以上のように、実施例１、２によれば、システム開発においてスプレッドシート形式で作成される設計書３０４ｂをＸＭＬ形式の設計情報３１０に変換することが可能となる。ＸＭＬ形式の設計情報３１０は、ＸＭＬファイルとして記憶部１０２ｃへ格納するか、または設計情報３１０を格納するデータベースの一カラム（またはひとつのフィールド）に格納する、あるいは上述のＸＭＬデータベースなどの形式で記憶装置に格納できるため、設計書のレイアウトが変更された場合であってもデータベースのスキーマの変更は不要となる。
【０２１９】
すなわち、設計情報入出力装置１０２、１０２−１では、スプレッドシート形式の設計書３０４ｂをＸＭＬ形式の設計情報３１０に変換し、記憶部１０２ｃに格納しておく。これにより、設計書３０４ｂのレイアウトが変更されても、設計情報３１０を格納するファイルやデータベースを改修する必要はなく、前記従来例に比して設計書３０４ｂの変更などに伴う労力や運用コストを削減できる。
【０２２０】
また、設計書３０４ｂに記述される項目やレイアウトが変更になった場合は、設計書メタ情報変換装置１０１で、設計書メタ情報３０１を変更して設計情報定義体３０２と設計情報雛形３０３を再生成し、設計情報入出力装置１０２へ送信する。
【０２２１】
設計情報入出力装置１０２は、再生成された設計情報定義体３０２と設計情報雛形３０３を利用して、前述の通り入力されたスプレッドシート形式の設計書３０４ｂをＸＭＬ形式に変換して記憶部１０２ｃに格納できる。
【０２２２】
また、設計情報入出力装置１０２では、再生成された設計情報定義体３０２と設計情報雛形３０３を記憶部１０２ｃに格納しておくことで設計情報３１０の検索や編集をするための画面や処理も自動的に変更でき、かつ編集されて再格納された設計情報３１０をスプレッドシート形式の設計書３０４ｃとして出力することも可能となる。
【０２２３】
このようにして、本発明はシステム開発において作成または更新される様々な設計書に柔軟に対応することが可能であり、設計書のカスタマイズが容易なスプレッドシート形式の設計書の入出力システム１００を提供することができる。
【０２２４】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
【０２２５】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０２２６】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０２２７】
１００  スプレッドシート形式の設計書の入出力システム
１０１  設計書メタ情報変換装置
１０１ａ  制御及び演算部
１０１ｂ  入力部
１０１ｃ  記憶部
１０１ｄ  出力部
１０２  設計情報入出力装置
１０２ａ  制御及び演算部
１０２ｂ  入力部
１０２ｃ  記憶部
１０２ｄ  出力部
１０３  クライアント装置
１０３ａ  制御及び演算部
１０３ｂ  入力部
１０３ｃ  記憶部
１０３ｄ  出力部
１０４ａ〜１０４ｃ  通信インタフェース部
１０５  通信インタフェース部
２０１  設計書メタ情報変換部
２０２  設計書読込及び変換部
２０３  設計情報検索条件入力画面出力部
２０４  設計情報検索及び結果表示画面出力部
２０５  設計情報参照及び編集画面出力部
２０６  設計情報編集処理部
３０１  設計書メタ情報
３０２  設計情報定義体
３０３  設計情報雛形
３０４ａ  設計書雛形
３０４ｂ  設計書
３０４ｃ  設計書
３０５  設計書登録画面
３０６  検索条件入力画面
３０７  設計情報検索結果画面
３０８  設計情報参照及び編集画面
３１０  設計情報
【図１】
0006425672.tif 000002
【図２】
0006425672.tif 000003
【図３】
0006425672.tif 000004
【図４】
0006425672.tif 000005
【図５】
0006425672.tif 000006
【図６】
0006425672.tif 000007
【図７Ａ】
0006425672.tif 000008
【図７Ｂ】
0006425672.tif 000009
【図７Ｃ】
0006425672.tif 000010
【図８】
0006425672.tif 000011
【図９】
0006425672.tif 000012
【図１０】
0006425672.tif 000013
【図１１Ａ】
0006425672.tif 000014
【図１１Ｂ】
0006425672.tif 000015
【図１２】
0006425672.tif 000016
【図１３】
0006425672.tif 000017
【図１４】
0006425672.tif 000018
【図１５】
0006425672.tif 000019
【図１６】
0006425672.tif 000020
【図１７】
0006425672.tif 000021
【図１８】
0006425672.tif 000022
【図１９】
0006425672.tif 000023
【図２０】
0006425672.tif 000024
【図２１】
0006425672.tif 000025