本発明の一実施例について、以下図面を参照して説明する。なお、同一の符号は同一の構成要素を示す。
図1は、設計書の入出力システム100のシステム構成の一例を示すブロック図である。設計書の入出力システム100は、設計書メタ情報生成支援装置101と、設計書メタ情報変換装置102と、設計情報入出力装置103と、クライアント装置104を有する計算機システムである。
設計書メタ情報生成支援装置101は、設計書雛形601a(図6A参照)を受け付けると、設計書雛形601aに応じた更新前の設計書メタ情報201を読み込んで、設計書雛形601aに記述された項目名と、前記項目に対応付けられた値の開始行及び開始列を判定し、前記項目名に対応する項目英字名を設計項目辞書20から取得する。設計項目辞書20は、項目IDと、項目ローカル名(項目名)、および、項目英字名をカラムに含むデータベースである。
そして、設計書メタ情報生成支援装置101は、前記項目に従属する付加情報を更新前の設計書メタ情報201から取得し、更新後の設計書メタ情報201を生成する設計書メタ情報生成制御部105と、設計書雛形601a上で更新後の設計書メタ情報201の開始行及び開始列を示す位置に、項目名と付加情報を出力する重畳表示部106と、を有する計算機である。
設計書メタ情報変換装置102は、更新後の設計書メタ情報201を読み込んで、設計書601b(図6B参照)の構造(項目及びレイアウト)を定義する設計情報定義体301(図3参照)と、設計書601bを変換する際に利用する設計情報雛形401(図4参照)に変換する設計書メタ情報変換部107を有する計算機である。
設計情報入出力装置103は、スプレッドシート形式の設計書601bを受け付けると、設計情報定義体301と、設計情報雛形401を読み込んで、スプレッドシート形式の設計書601bをXML形式の設計情報501(図5参照)に変換し、記憶部103cに格納する設計書読込及び変換部109と、クライアント装置104から検索要求を受け付けると、設計情報定義体301を読み込んで検索条件入力画面を生成し、クライアント装置104に出力する設計情報検索条件入力画面出力部110と、クライアント装置104から検索項目を受け付けると、設計情報定義体301を参照して設計情報検索結果画面を生成し、検索結果としてクライアント装置104に送信する設計情報検索及び結果表示画面出力部111と、クライアント装置104から検索結果について設計情報の参照要求を受け付けると、設計情報501と設計情報定義体301を読み込んで、設計情報参照及び編集画面を生成し、クライアント装置104に出力する設計情報参照及び編集画面出力部112と、クライアント装置104から編集結果の出力要求を受け付けると、XML形式の設計情報501を読み込んで、設計情報定義体301と設計情報雛形401に応じてスプレッドシート形式の設計書601bを生成してクライアント装置104へ送信する設計情報編集処理部113とを有する計算機である。
なお、設計情報入出力装置103は、設計書雛形601aや設計書601b、設計書メタ情報(更新前)201aや設計書メタ情報(更新後)201bを記憶部103cに格納して管理するデータベースとして機能する。
クライアント装置104は、ユーザの操作に応じて、設計書601bの登録を要求、および、設計情報501の編集を行うブラウザ114を有する計算機である。また、クライアント装置104のユーザは、表計算部115で設計書雛形601aを読み込んで、スプレッドシート形式の設計書601bを生成し、記憶部104cに格納する。
設計書メタ情報生成支援装置101、設計書メタ情報変換装置102、設計情報入出力装置103、および、クライアント装置104の各々を構成する計算機は、プログラムに従って処理する制御及び演算部101a、102a、103a、104aと、データやファイル、およびプログラムを記憶し、制御及び演算部101a、102a、103a、104aからアクセス可能な記憶部101c、102c、103c、104cと、他の計算機とネットワークなどを介してデータやファイルを送受信する通信部101e、102e、103e、104eと、ユーザからの指示を受け付ける入力部101b、102b、103b、104bと、さらに、制御及び演算部の処理結果などを出力する出力部101d、102d、103d、104dとを有する。プログラムに従って、制御及び演算部が記憶部内のデータやファイルにアクセスして処理を実行する。なお、通信部101eと102eと103e及び104eはネットワークを介して相互に接続される。
設計書メタ情報生成支援装置101と、設計書メタ情報変換装置102と、設計情報入出力装置103は、通信部101eと102eと103eを介して互いの装置間のデータ通信連携を実現する。設計情報入出力装置103とクライアント装置104は、通信部103eと104eを介して互いの装置間のデータ通信を実現する。
これらの、設計書メタ情報生成支援装置101と、設計書メタ情報変換装置102と、設計情報入出力装置103と、クライアント装置104は、一体の計算機であっても構わない。
記憶部101cと102cと103cと104cは、ハードディスクドライブ等の不揮発性の記憶媒体を含む記憶装置で構成される。
設計書メタ情報生成支援装置101の記憶部101cには設計書メタ情報生成制御部105と重畳表示部106として機能するコンピュータソフトウェアプログラムが格納される。また、記憶部101cには、設計書雛形601aに記述された項目名と、項目英字名を対応づけた設計項目辞書20が予め格納される。
設計書メタ情報変換装置102の記憶部102cには設計書メタ情報変換部107と表計算部108として機能するコンピュータソフトウェアプログラムが格納される。設計情報入出力装置103の記憶部103cには設計書読込及び変換部109と設計情報検索条件入力画面出力部110と設計情報検索及び結果表示画面出力部111と設計情報参照及び編集画面出力部112と設計情報編集処理部113として機能するコンピュータソフトウェアプログラムが格納されている。
クライアント装置104の記憶部104cには設計書などを編集する表計算部115として機能するコンピュータプログラムと、ブラウザ114として機能するコンピュータプログラムと、スプレッドシートの設計書及び設計書の雛形が格納されている。また、記憶部104cには設計情報入出力装置103から送信された画面を出力部104dに表示するブラウザとして機能するコンピュータソフトウェアプログラムも格納されている。
制御及び演算部101a、102a、103a、104aは、後述するようにプロセッサとメモリを含み、記憶部101c、102c、103c、103cからプログラムをメモリにロードしてプロセッサによって実行する。
設計書メタ情報生成制御部105及び重畳表示部106は、制御及び演算部101aによって記憶部101cから読み出されて実行されることにより各機能を実現している。
設計書メタ情報変換部107及び表計算部108は、制御及び演算部102aによって記憶部102cから読み出されて実行されることにより各機能を実現している。設計書読込及び変換部109と設計情報検索条件入力画面出力部110と設計情報検索及び結果表示画面出力部111と設計情報参照及び編集画面出力部112は制御及び演算部103aによって記憶部102cから読み出されて実行されることにより各機能を実現している。表計算部211及びブラウザ212は、制御及び演算部104aによって記憶部103cから読み出されて実行されることにより各機能を実現している。
入力部101bと102bと103bと104bは、マウス等の入力デバイスである。出力部101dと102dと103dと104dは、各種ディスプレイ等の表示デバイスであり、この他各種プリンタ等の他の出力装置を接続することもできる。
図12は、スプレッドシート形式の設計書入出力システム100を構成する計算機の一例を示すブロック図である。図示の例は、設計書メタ情報生成支援装置101として稼動する計算機10の例を示すが、設計書メタ情報変換装置102と設計情報入出力装置103及びクライアント装置104も同様の構成である。
計算機10は、制御及び演算処理を行うプロセッサ60と、プログラムやデータを保持するメモリ70と、ネットワーク40に接続されて他の計算機等と通信を行う通信部101eと、記憶部101cに接続されてデータやプログラム等の読み書きを行うストレージインタフェース86と、入力部101bに接続されたI/Oプロセッサ83と、プロセッサ60に接続された出力部101dを含む。なお、図1に示した制御及び演算部101a、102a、103a、104aは、プロセッサ60及びメモリ70に相当する。
プロセッサ60は、ヘテロジニアスのマルチコアプロセッサで構成され、複数のCPUコア61と、複数のGPUコア62を含む。また、プロセッサ60は、メモリ70に接続されるメモリコントローラ63と、出力部101dに接続されるディスプレイコントローラ65と、I/Oプロセッサ83、通信部101e及びストレージインタフェース86に接続されるI/Oコントローラ64とを含む。入力部101bとしては、キーボードやマウスやタッチパネルを含む。出力部101dとしては、ディスプレイを含む。
メモリ70には、OS71がロードされてプロセッサ60によって実行される。OS71は設計書メタ情報生成制御部105や重畳表示部106などの1以上のソフトウェア72を実行する。計書メタ情報生成制御部105などの各機能部はプログラム(ソフトウェア72)としてメモリ70にロードされる。
プロセッサ60は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ60は、設計書メタ情報生成制御プログラムに従って処理することで設計書メタ情報生成制御部105として機能する。他のプログラムについても同様である。さらに、プロセッサ60は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
設計書メタ情報生成支援装置101の各機能を実現するプログラム、テーブル等の情報は、記憶部101cや不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
図2は設計書メタ情報201の一例を示す図である。設計書メタ情報201は、スプレッドシート形式で作成される各種設計書に対応するメタ情報を定義したものである。
設計書メタ情報201は、スプレッドシート形式の設計書601b(設計書雛形601a)で使用する項目と、各項目のセルの位置等のレイアウトを定義した設計書601bの構造と、各項目の入出力や編集で参照される付加情報を定義したファイルである。
設計書メタ情報201は、スプレッドシートで定義される設計書601bの種別ごとに1つのファイルが作成される。設計書601bに記述される項目やレイアウトが変更になった場合には、設計書の入出力システム100が変更内容に合わせて設計書メタ情報201を更新する。
本実施例では、更新前の設計書メタ情報201を設計書メタ情報(更新前)201a、更新後の設計書メタ情報201を設計書メタ情報(更新後)201bと呼称する。
設計書メタ情報201の1ファイルの中には、“ファイル種別”(202)と、“項目グループ間関連”(203)と、“シート種別”(204)と、“単数項目グループ”(205)と、“複数項目グループ”(206)の要素が含まれる。
要素“ファイル種別”(202)はスプレッドシート形式のファイルごとに設計書の種別を定義するものであり、要素“ローカル名”と要素“英字名”を含む。
要素“シート種別”(204)はスプレッドシートで定義されるシートの種類ごとに定義される。したがって、ファイルが複数種類のシートで構成される設計書601bを対象とする場合、要素“シート種別”(204)、及び以下の“単数項目グループ”(205)と、“複数項目グループ”(206)を複数定義する。要素“シート種別”(204)は、要素“ローカル名”と要素“英字名”を含む。
要素“単数項目グループ”(205)には、設計書で定義される1つの項目に対して値が1つ定義される項目(単数項目)の内容と付加情報を定義するグループを定義する。なお、要素“単数項目グループ”(205)は、要素“ローカル名”と要素“英字名”を含む。また、定義される単数項目の数だけ、要素“項番”と、要素“必須フラグ”と、要素“単数項目ローカル名”と、要素“単数項目英字名”と、単数項目の値がスプレッドシート上のどの位置にあるかを示す情報として要素“開始行”と要素“開始列”と、単数項目を画面に表示する際に必要とする情報として要素“種類”と要素“サイズ”が定義される。
“種類”は、クライアント装置104のブラウザで表示する際の形式を規定し、“input”は入力フィールドを示し、“text”は文字列を表示することを示す。また、“サイズ”は、入力フィールドに入力可能な文字数を規定する。
要素“複数項目グループ”(206)には、設計書で定義される1つの項目に対して値が複数定義される項目(複数項目)の内容と付加情報を定義するグループを定義する。要素“複数項目グループ”(206)は、要素“ローカル名”と要素“英字名”を含む。また、複数項目の数だけ、要素“項番”と、要素“必須フラグ”と、要素“複数項目ローカル名”と、要素“複数項目英字名”と、複数項目の値がスプレッドシート上のどの位置から始まるかを示す情報として要素“開始行”と要素“開始列”と、複数項目を画面に表示する際に必要とする情報として要素“種類”と要素“サイズ”が定義される。
なお、以上の要素“単数項目グループ”(205)と要素“複数項目グループ”(206)は、対象とする設計書に合わせて、それぞれ無くてもよいし、複数あってもよい。
要素“項目グループ間関連”(203)には、要素“項番”と、要素“親項目グループ名”と、要素“子項目グループ名”と、要素“説明”を含む。要素“親項目グループ名”と要素“子項目グループ名”には、“単数項目グループ”(205)または“複数項目グループ”(206)の“英字名”が記入される。
以上のように設計書メタ情報201は、スプレッドシート形式の設計書601b及び設計書雛形601aの構造とレイアウトを含む構成情報を予め定義した情報である。
図3は設計情報定義体301の一例を示す図である。設計情報定義体301は、設計書メタ情報変換部107の処理によって1つの設計書メタ情報201から1つ生成されて、記憶部102c及び記憶部103cに格納されるファイルである。
設計情報定義体301には、スプレッドシート形式の設計書601bの行番号(cellLine)と列番号(cellColumn)で定まるセルの情報が定義される。設計書読込及び変換部109は、設計書601bに応じた設計情報定義体301を参照することで、スプレッドシート形式の設計書601bの構造を取得できる。
図4は設計情報雛形401の一例を示す図である。設計情報雛形401は、設計書メタ情報変換部107の処理によって設計書メタ情報(更新後)201bを元にして生成され、記憶部102c及び103cに格納されるファイルである。
設計情報雛形401は、設計情報501を生成する際に、設計書601bの値をXML形式のファイルに設定するフォームが定義される。したがって、設計書読込変換部109は、設計情報定義体301に従ってスプレッドシート形式の設計書601bから読み込んだ値を設計情報雛形401に設定することで、XML形式の設計情報501に変換することができる。
図5は設計情報501の一例を示す図である。設計情報501は、スプレッドシート形式の設計書601bを、設計情報入出力装置103の設計書読込及び変換部109でXML形式に変換した結果である。設計情報501は、図4に示した設計情報雛形401の変数$に設計書601bの内容を設定した情報として設計書読込及び変換部109で生成される。
図6Aは、設計書雛形601aの一例を示す図である。設計書雛形601aは、クライアント装置104の記憶部104cに予め格納されているスプレッドシート形式の情報である。
図6Aの設計書雛形601aは、設計書雛形601aの種類を示すドキュメント分類602と、設計書雛形601aの題目を格納する題目603と、コンポーネントID604と、コンポーネント名605と、作成者606と、更新者607と、承認者608と、作成日609と、更新日610と、承認日611と、データの番号を示す項番612と、パッケージ名前空間613と、クラス日本語名614と、クラス英字名615と、メソッド日本語名616と、メソッド英字名617と、他コンポ公開618と、備考619のセルを含む。
図6Bは、設計書601の一例を示す図である。図6Bの設計書601bは、図6Aの設計書雛形601aにクライアント装置104のユーザが表計算部115で所定の値を入力した結果を示す。設計書601bの各セルの符号は、設計書雛形601aと同一である。
図6Cは、レイアウトなどが変更された設計書雛形601aに、更新後の設計書メタ情報201の項目を重畳表示した一例を示す図である。設計書メタ情報生成支援装置101の重畳表示部106は、設計書雛形601aの項目名の下または右のセルに、更新後の設計書メタ情報201の項目を表示する。
重畳表示部106は、設計項目辞書20に項目名が登録済みの設計書メタ情報201の項目を図中ハッチングの背景で出力し、設計項目辞書20に項目名が未登録の項目は図中網掛けの背景で出力される。
また、重畳表示部106は、設計書メタ情報(更新前)201aに存在しない新たな項目名についても図中網掛けの背景で出力し、設計書雛形601aの変更箇所を明示する。
図示の例では、「他コンポ公開」という項目名が網掛けの背景で表示されて、設計項目辞書20に登録されていないことを示す。そして、当該項目名には、追加の作業が必要であることを示すメッセージが付加される。これにより、クライアント装置104のユーザは、更新後の設計書メタ情報201の項目について、設計項目辞書20に登録済みであるか否かを容易に把握することが可能となる。
以下、設計書メタ情報生成支援装置101で行われる処理を、図1の全体システム構成図を引用しながら、図7の処理概要フローチャート、図8のレイアウト解析フローチャート、図9の辞書検索フローチャート、図10の付加情報検索処理フローチャート、図11の重畳表示部フローチャートに従い、ステップごとに説明する。
なお、以下の本実施例の説明において、スプレッドシート上で下方向(行方向)をX軸、右方向(列方向)をY軸とする。また、単数項目と複数項目で共通の処理を行うことから、設計書メタ情報201の要素“単数項目ローカル名”および“複数項目ローカル名”は“項目ローカル名”と省略し、“単数項目英字名”および“複数項目英字名”は“項目英字名”と省略する。
図7のフローチャートに示す設計書メタ情報生成支援装置101の処理は、クライアント装置104などからの指令に基づいて開始される。設計書メタ情報生成支援装置101は、指令された設計書雛形601aと設計書メタ情報201aを読み込んで、レイアウト解析処理と、辞書検索処理と、付加情報検索処理を行って更新後の設計書メタ情報201bを生成し、設計書メタ情報201bの項目を設計書雛形601aに重ねて出力する。設計書メタ情報生成支援装置101の利用者は、クライアント装置104などの出力部101dに重畳表示部106からの出力を表示させて、設計書メタ情報201bのレイアウトを確認することができる。
ステップ701で,設計書メタ情報生成支援装置101は、設計書メタ情報生成制御部105の処理を開始する。次に、ステップ702で、設計書メタ情報生成制御部105が設計書メタ情報生成支援装置101の記憶部101cに格納されている設計書メタ情報(更新前)201aを読み込む。
ステップ703では、設計書メタ情報生成制御部105が設計書メタ情報生成支援装置101の記憶部101cに格納されている設計書雛形601aを読み込む。ステップ704では、設計書メタ情報生成制御部105が設計書雛形601aについて、スプレッドシート形式の右方向優先でセルを探索し、文字列を含むセルを選択する。この処理は、基準となるセル(例えば、1行目1列)から順次行うことができる。
ステップ705では、レイアウト解析処理を開始する。以下、図8のフローチャートに基づいて、レイアウト解析処理の一例を説明する。
ステップ801では、設計書メタ情報生成制御部105がレイアウト解析処理を開始する。ステップ802では、設計書メタ情報生成制御部105が、上記ステップ704で取得したセルを起点にして、右方向に文字列を含むセルが存在するか否かを判定する。存在する場合、ステップ803へ進む。存在しない場合、ステップ804へ進む。
ステップ803では、設計書メタ情報生成制御部105が、右方項目座標Ritemにステップ802で取得したセルの座標を代入する。
ステップ804では、設計書メタ情報生成制御部105が、右方項目座標Ritemに初期値を代入する。すなわち、Ritem[X]にはステップ704で取得したセルのX座標を、Ritem[Y]には設計書雛形601aの最大幅+1を代入する。なお、Ritem[X]、[Y]は変数である。
ステップ805では、設計書メタ情報生成制御部105が、上記ステップ704で取得したセルを起点にして、右方向に空白かつ無背景色のセルが存在するか否かを判定する。存在する場合、ステップ806へ進む。存在しない場合、ステップ807へ進む。なお、無背景色のセルは値を入力可能なセルとして判定される。
ステップ806では、設計書メタ情報生成制御部105が、右方向値座標Rvalueにステップ805で取得したセルの座標を代入する。
ステップ807では、設計書メタ情報生成制御部105が、右方向値座標Rvalueに初期値を代入する。すなわち、Rvalue[X]には上記ステップ704で取得したセルのX座標を、Rvalue[Y]には設計書雛形601aの最大幅+1を代入する。なお、Rvalue[X]、[Y]は変数である。
ステップ808では、設計書メタ情報生成制御部105が、上記ステップ704で取得したセルを起点にして、下方向で文字列を含むセルが存在するか否かを判定する。存在する場合、ステップ809へ進む。存在しない場合、ステップ810へ進む。
ステップ809では、設計書メタ情報生成制御部105が、下方項目座標Ditemに上記ステップ808で取得したセルの座標を代入する。
ステップ810では、設計書メタ情報生成制御部105が、下方項目座標Ditemに初期値を代入する。すなわち、Ditem[X]には設計書雛形601aの最大高+1を、Ditem[Y]にはステップ704で取得したセルのY座標を代入する。なお、Ditem[X]、[Y]は変数である。
ステップ811では、設計書メタ情報生成制御部105が、ステップ704で取得したセルを起点にして、下方向に空白かつ無背景色のセルが存在するか否かを判定する。存在する場合、ステップ812へ進む。存在しない場合、ステップ813へ進む。なお、上述のように、無背景色のセルは値を入力可能なセルとして判定される。
ステップ812では、設計書メタ情報生成制御部105が、下方向値座標Dvalueにステップ811で取得したセルの座標を代入する。
ステップ813では、設計書メタ情報生成制御部105が、下方向値座標Dvalueに初期値を代入する。すなわち、Dvalue[X]には設計書雛形601aの最大高+1を、Dvalue[Y]にはステップ704で取得したセルのY座標を代入する。なお、Dvalue[X]、[Y]は変数である。
ステップ814では、設計書メタ情報生成制御部105が、右方項目座標Ritem[Y]と右方値座標Rvalue[Y]の大小を比較し、下方項目座標Ditem[X]と下方向値座標Dvalue[X]の大小を比較する。そして、Ritem[Y]< Rvalue[Y]かつDitem[X]<Dvalue[X]という条件が成立する場合、ステップ815へ進む。成立しない場合、ステップ817へ進む。
ステップ815では、設計書メタ情報生成制御部105が、ステップ704で取得したセルの文字列をグループローカル名(一次用)に代入する。
ステップ816では、設計書メタ情報生成制御部105が、ステップ704で取得したセルがグループ項目であることを示すグループフラグをONにする。次に、ステップ821へ進む。なお、グループ項目とは複数の項目を代表する項目であり、たとえば、図6Aの設計書雛形601aの「クラス情報」のように、クラス日本語名614とクラス英字名615の項目を代表する項目をグループ項目とする。
ステップ817では、設計書メタ情報生成制御部105が、ステップ704で取得したセルの文字列を設計書メタ情報(更新後)201bの要素“項目ローカル名”に代入する。
ステップ818では、設計書メタ情報生成制御部105が、右方項目座標Ritem[Y]と右方向値座標Rvalue[Y]の大小を比較する。Ritem[Y]<Rvalue[Y]という条件が成立する場合、ステップ819へ進む。成立しない場合、ステップ820へ進む。
ステップ819では、設計書メタ情報生成制御部105が、Ditemの座標を設計書メタ情報(更新後)201bの要素“開始行”と“開始列”に代入する。
ステップ820では、設計書メタ情報生成制御部105が、Ritemの座標を設計書メタ情報(更新後)201bの要素“開始行”と“開始列”に代入する。
ステップ821では、設計書メタ情報生成制御部105が、レイアウト解析処理を終了し、図7のフローチャートに戻る。
図7のステップ706では、設計書メタ情報生成制御部105が辞書検索処理を開始する。以下、図9のフローチャートに基づいて、辞書検索処理の一例を説明する。
図7のステップ901では、設計書メタ情報生成制御部105が辞書検索処理を開始する。
ステップ902では、設計書メタ情報生成制御部105が図7のステップ704で取得したセルの文字列をキーにして、設計項目辞書20の項目ローカル名(項目名)を検索する。
ステップ903では、設計書メタ情報生成制御部105がステップ902の検索で取得できたレコードが存在するか否かを判定する。レコードが存在する場合、ステップ904へ進む。レコードが存在しない場合、ステップ905へ進む。
ステップ904では、設計書メタ情報生成制御部105がステップ902で取得したレコードの値を設計書メタ情報(更新後)201bの要素“項目ID”と“項目英字名”に代入する。なお、設計書メタ情報(更新後)201bは、入力された設計書メタ情報(更新前)201aの内容に基づいて、新規な部分を追加または更新して生成される。
ステップ905では、設計書メタ情報生成制御部105がステップ704で取得したセルの文字列が項目辞書に登録されていないことを示す辞書未登録フラグをセットする。
ステップ906では、設計書メタ情報生成制御部105が辞書検索処理を終了し、図7のフローチャートに戻る。
図7のステップ707では、設計書メタ情報生成制御部105がグループフラグがOFFであるか否かを判定する。OFFの場合、ステップ708へ進む。ONの場合、ステップ709へ進む。グループフラグがONであれば、現在の項目はグループ項目であるので、付加情報検索処理をスキップして次の処理へ進む。
ステップ708では、設計書メタ情報生成制御部105が付加情報検索処理を開始する。以下、図10のフローチャートに基づいて、付加情報検索処理の一例を説明する。
ステップ1001では、設計書メタ情報生成制御部105が付加情報検索処理を開始する。ステップ1002では、設計書メタ情報生成制御部105がステップ904で取得した項目ID、および、ステップ815で取得したグループローカル名(一次用)の複合キーで設計書メタ情報(更新前)201aを検索する。
ステップ1003では、設計書メタ情報生成制御部105がステップ1002の検索で取得できたレコードが存在するか否かを判定する。レコードが存在する場合、ステップ1004へ進む。レコードが存在しない場合、ステップ1005へ進む。
ステップ1004では、設計書メタ情報生成制御部105がグループローカル名(一次用)を設計書メタ情報(更新後)201bの要素“グループローカル名”に代入する。次に、ステップ1009へ進む。
ステップ1005では、設計書メタ情報生成制御部105がステップ904で取得した項目IDをキーに設計書メタ情報(更新前)201aを検索する。
ステップ1006では、設計書メタ情報生成制御部105がステップ1005の検索で取得できたレコードが存在するか否かを判定する。レコードが存在する場合、ステップ1007へ進む。レコードが存在しない場合、ステップ1008へ進む。
ステップ1007では、設計書メタ情報生成制御部105がステップ1006で取得したレコードからグループローカル名を設計書メタ情報(更新後)201bの要素“グループローカル名”に代入する。
ステップ1008では、設計書メタ情報生成制御部105がステップ704で取得したセルの文字列が設計書メタ情報(更新前)201aに存在しないことを示す未登録フラグをセットする。次に、ステップ1010に進む。
ステップ1009では、設計書メタ情報生成制御部105がステップ1002、および、ステップ1005で取得したレコードの値を、設計書メタ情報(更新後)201bの要素“グループ種別”と、“必須フラグ”と、“画面種類”と“画面サイズ”に代入する。
ステップ1010では、設計書メタ情報生成制御部105が付加情報検索処理を終了し、図7のフローチャートに戻る。
図7のステップ709では、設計書メタ情報生成制御部105が設計書雛形601aについて、文字列を含む次のセルを取得できる否かを判定する。次のセルを取得できた場合、ステップ705へ戻って上記処理を繰り返す。一方、次のセルを取得できなかった場合、ステップ710へ進む。
ステップ710では、設計書メタ情報生成制御部105が設計書メタ情報(更新後)201bを設計書メタ情報生成支援装置101の記憶部101cに出力する。
ステップ711では、重畳表示部106が重畳表示処理を実行する。以下、図11のフローチャートに基づいて、重畳表示処理の一例を説明する。
ステップ1101では、重畳表示部106が処理を開始する。ステップ1102では、重畳表示部106が設計書メタ情報生成支援装置101の記憶部101cに格納されている設計書メタ情報(更新後)201bを読み込む。
ステップ1103では、重畳表示部106が設計書メタ情報生成支援装置101の記憶部101cに格納されている設計書雛形601aを読み込む。ステップ1104では、重畳表示部106が設計書メタ情報(更新後)201bから最初のレコードを取得する。
ステップ1105では、重畳表示部106が、設計書雛形601aにおいて、設計書メタ情報(更新後)201bの要素“開始行”と“開始列”が示すセルに、設計書メタ情報(更新後)201bの要素“ローカル項目名”を出力する。
ステップ1106では、重畳表示部106が現在のセルについて辞書未登録フラグがOFFか否かを判定する。辞書未登録フラグがOFFの場合、ステップ1107へ進む。一方、辞書未登録フラグがONの場合、ステップ1109へ進む。
ステップ1107では、重畳表示部106が設計書雛形601aにおいて、ステップ1105で指し示したセル(“開始行”と“開始列”)の背景色を黄色(図6Cではハッチング)に変更する。
ステップ1108では、重畳表示部106が設計書雛形601aにおいて、ステップ1105で指し示したセルのコメント欄に、設計書メタ情報(更新後)201bの付加情報を出力する。次に、ステップ1111へ進む。
ステップ1109では、重畳表示部106が設計書雛形601aにおいて、ステップ1105で指し示したセルの背景色を褐色(図6Cでは網掛け)に変更する。
ステップ1110では、重畳表示部106が設計書雛形601aにおいて、ステップ1105で指し示したセルのコメント欄に、追加作業が必要なことをユーザに知らせるメッセージを出力する。次に、ステップ1111へ進む。
ステップ1111では、重畳表示部106が設計書メタ情報(更新後)201bについて、次のレコードが存在するかを判定する。存在する場合は、ステップ1105へ進む。存在しない場合、ステップ1112へ進む。ステップ1112では、重畳表示部106の処理を終了し、図7のフローチャートに戻る。図7のステップ712では、設計書メタ情報生成制御部105が処理を終了する。
以上の処理によって、設計書メタ情報生成支援装置101では、レイアウトなどが変更された設計書雛形601aと、設計書メタ情報(更新前)201aとを入力し、レイアウト解析処理と、辞書検索処理と、付加情報検索処理を実施して、設計書雛形601aの変更を反映した新たな設計書メタ情報(更新後)201bを生成する。そして、設計書メタ情報生成支援装置101の重畳表示部106は、設計書雛形601aに設計書メタ情報(更新後)201bの項目を重畳表示させて処理を終了する。
レイアウト解析処理では、設計書雛形601aの各セルについて、文字列と背景色の有無から値を入力するセル(値セル)と項目名のセルを判定し、項目名開始行と開始列を取得する。本実施例では、セルの背景色が無く、かつ、文字列のないセルを値セルと判定する。なお、セルの背景色に限定されるものではなく、表示パターンが所定のパターンのセルを、値セルとすればよい。
そして、本実施例では、グループローカル名(グループ項目)のセルは値セルと隣接しないというルールと、項目名(項目ローカル名)のセルは、値セルと隣接するというルールに基づいて、設計書メタ情報生成制御部105は自立的に、グループ項目と項目名及び値セルを判定する。
すなわち、設計書メタ情報生成制御部105は、項目名を示すセルを起点に、右方向を探索して文字列を含むセルRitemを取得し、右方向を探索して空白かつ無背景色のセルRvalueを取得し、下方向を探索して文字列を含むセルDitemを取得し、下方向を探索して空白かつ無背景色のセルDvalueを取得し、Ritem[Y]<Rvalue[Y]かつDitem[X]<Dvalue[X]という条件が成立する場合に項目名がグループ項目であると判定し、前記条件が成立しない場合に項目名が設計項目であると判定する。そして、設計書メタ情報生成制御部105は、レイアウト解析処理で項目名(グループ項目)の文字列と参照位置(開始行及び開始列)を取得する。
また、項目名が設計書雛形601aの設計項目である場合、設計書メタ情報生成制御部105は、Ritem[Y]<Rvalue[Y]という条件が成立する場合に、項目名に対応付けられた値の開始行と開始列が項目セルから下方向を探索して取得したセルDitemであると判定し、前記条件が成立しない場合に、項目に対応付けられた値の開始行・開始列が項目セルから右方向を探索して取得したセルRitemであると判定する。
辞書検索処理では、設計書雛形601aのセルから取得した文字列をキーとして、設計項目辞書20を検索して項目英字名を取得する。設計項目辞書20に存在しない項目名であれば、当該セルに対応する辞書未登録フラグをONに設定する。
続く付加情報検索処理では、設計項目辞書20から取得した設計書雛形601aの項目IDで、設計書メタ情報(更新前)201aを検索し、付加情報を取得する。ここで、付加情報は、設計書メタ情報(更新前)201aから設計書メタ情報(更新後)201bに引き継ぐ、自動生成や画面表示あるいは整合性検証のための定義情報を含む。本実施例では、付加情報の一例として、グループ種別と必須フラグと画面種類と画面サイズを取得する例を示す。なお、項目IDが設計書メタ情報(更新前)201aに存在しない設計書雛形601aのセルについては辞書未登録フラグをONに設定する。
そして、設計書メタ情報生成制御部105は、レイアウト解析処理で取得した項目名(グループ項目)と参照位置から設計書メタ情報(更新後)201bを生成し、設計書メタ情報(更新前)201aから引き継いだ付加情報と設計項目辞書20から取得した項目英字名を設定する。
なお、上記図10では、設計書メタ情報(更新前)201aからグループ項目を引き継いで設計書メタ情報(更新後)201bにコピーする例を示したが、設計書雛形601aにグループ項目が記述されていればグループ項目を設計書メタ情報(更新後)201bにコピーしてもよく、設計書雛形601aにグループ項目が記述されていない場合には、設計書メタ情報(更新前)201aからグループ項目を設計書メタ情報(更新後)201bに引き継ぐようにしてもよい。
最後に、重畳表示部106は、設計書メタ情報(更新後)201bの項目名を設計書雛形601aに重ねて出力し、設計項目辞書20に登録されていない項目を所定の表示パターン(例えば、褐色;図6Cでは網掛けの背景)で出力する。また、重畳表示部106は、追加の作業が必要なメッセージを該当する項目名のコメント欄などに出力する。なお、メッセージは、スプレッドシートのコメントとして、前記項目名の位置で出力することができる。また、メッセージの内容は、予め設定された文字列を使用すればよい。
これにより、クライアント装置104の出力部104dに、重畳表示部106の出力を表示させることで、ユーザは設計書雛形601aで更新、追加あるいは削除された箇所を所定のパターンによって容易に検証することが可能となる。
なお、重畳表示部106は、設計書メタ情報(更新後)201bの項目名のうち、設計書メタ情報(更新前)201aに存在しない項目名を所定の表示パターンで表示してもよい。
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
本実施形態の設計情報入出力装置103の記憶部103cにおいて、設計情報501を格納するにあたり、XMLファイルとして格納する、データベースの一カラムに格納する、または、XMLデータベースに格納する、としてもよい。
本実施形態の設計情報入出力装置103の記憶部103cにおいて、設計情報501はXML形式としたが、XML(Extensible Markup Language)と同様に半構造データ形式であればJSON(JavaScript Object Notation(JavaScriptは登録商標))など、であってもよい。
また、スプレッドシート形式は表計算部(表計算ソフトウェア)108、115によって生成された情報であり、行と列の識別子を有するセルと、複数のセルを有するシートを含んで構成されればよい。
また、上記ではスプレッドシート形式の設計書601bに本発明を適用する例を示したが、設計書に限定されるものではなく、スプレッドシート形式の情報をXML形式に変換して編集、検索するものであればよい。この場合、本実施形態の設計書601bを入力情報と読み替え、設計書メタ情報201を入力情報メタ情報とし、設計情報定義体301を入力情報定義体とし、設計情報雛形401を変換情報雛形と読み替えればよい。
以上のように、本実施形態によれば、スプレッドシート形式の設計書を構造化された情報に変換してデータベースで一元管理する設計書の入出力システムであって、入力された設計書雛形に記述された項目名と前記項目に対応付けられた値の開始行・開始列を判定し、前記項目に対応する項目英字名を設計項目辞書から取得し、前記項目に従属する定義情報を設計書メタ情報(更新前)から取得し、新たな設計書メタ情報(更新後)を生成する。
また、設計書雛形上で設計書メタ情報(更新後)の開始行・開始列を示す位置に項目名と従属情報を出力する。これにより、スプレッドシート形式の設計書を構造化された情報に変換してデータベースで一元管理するシステムにおいて、設計書に記述される項目やレイアウトが変更になった場合に設計書メタ情報の修正作業を効率化することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。 また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば仮想マシンで設計する等によりクラウドシステムで実現してもよい。
また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。 各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。