説明

情報処理装置および情報処理方法およびプログラム

【課題】ソースコードと設計書との間の乖離を無くす情報処理装置を実現する。
【解決手段】画面設計書自動生成装置500は、中間形式情報113を用いて表示データのソースコード110aを生成するソースコード生成部103と、ソースコード生成部103と共通の中間形式情報113を用いて画面設計書112を生成する設計書生成部102とを備える。画面設計書自動生成装置500は、共通の情報からソースコード110aと画面設計書112とを生成する為、ソースコード110aと画面設計書112との間の乖離を無くす。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、表示データのソースコードに対応した表示データの設計書を生成する情報処理装置および情報処理方法およびプログラムに関する。
【背景技術】
【0002】
例えばソフトウェアの表示データの設計情報から、表示データのソースコードを自動生成する方法が提案されている。(例えば、特許文献1)。ここで、例えば表示データの設計者は、表示データの設計書に基づいて、表示データの設計情報を入力する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−99545号公報
【特許文献2】特開2001−154959号公報
【特許文献3】特開平7−129382号公報
【特許文献4】特開平7−175643号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
前記のような表示データのソースコードの自動生成は、設計情報からソースコードを生成する一方向の処理となっている。
従って、自動生成されたソースコードを、例えば設計者が修正すると、その修正されたソースコードの内容は、設計者が入力した設計情報、すなわち表示データの設計書の内容と乖離が発生するという課題がある。
【0005】
この発明は前記のような課題を解決することを主な目的とするもので、例えば、ソースコードと設計書との間の乖離を無くす情報処理装置を実現することを主な目的とする。
【課題を解決するための手段】
【0006】
この発明に係る情報処理装置は、
表示データの仕様が示される仕様情報を生成する仕様情報生成部と、
前記表示データのソースコードを生成するソースコード生成部と
を備え、
前記仕様情報生成部と前記ソースコード生成部は、
共通の情報を用いて仕様情報とソースコードとを生成することを特徴とする。
【発明の効果】
【0007】
この発明に係る情報処理装置は、例えば、表示データに関係する共通の情報からソースコードと設計書(仕様情報)とが生成される為、ソースコードと設計書との乖離を無くすことが可能である。
【図面の簡単な説明】
【0008】
【図1】実施の形態1を示す図で、画面設計書自動生成装置の構成の例を示す図。
【図2】実施の形態1を示す図で、中間形式情報が生成されるまでの処理の例を示すフローチャート。
【図3】実施の形態1を示す図で、設計情報入力GUIエディタの例を示す図。
【図4】実施の形態1を示す図で、中間形式情報(解析木)の例を示す図。
【図5】実施の形態1を示す図で、中間形式情報(XML)の例を示す図。
【図6】実施の形態1を示す図で、中間形式情報から画面一覧を生成する処理の例を示すフローチャート。
【図7】実施の形態1を示す図で、画面一覧の例を示す図。
【図8】実施の形態1を示す図で、中間形式情報から画面遷移図を生成する処理の例を示すフローチャート。
【図9】実施の形態1を示す図で、画面遷移図の例を示す図。
【図10】実施の形態1を示す図で、中間形式情報から画面レイアウトを生成する処理の例を示すフローチャート。
【図11】実施の形態1を示す図で、画面レイアウトの例を示す図。
【図12】実施の形態1を示す図で、中間形式情報から画面入出力項目を生成する処理の例を示すフローチャート。
【図13】実施の形態1を示す図で、画面入出力項目の例を示す図。
【図14】実施の形態1を示す図で、中間形式情報からソースコードを生成する処理の例を示すフローチャート。
【図15】実施の形態1を示す図で、ソースコードの例を示す図。
【図16】実施の形態2を示す図で、画面設計書自動生成装置の構成の例を示す図。
【図17】実施の形態2を示す図で、ソースコード変更部分の抽出処理の例を示すフローチャート。
【図18】実施の形態2を示す図で、ソースコードの変更部分が抽出された例を示す図。
【図19】実施の形態2を示す図で、ソースコードの追加部分が抽出された例を示す図。
【図20】実施の形態2を示す図で、ソースコードの削除部分が抽出された例を示す図。
【図21】実施の形態2を示す図で、ソースコード変更箇所を設計書に反映させる処理の例を示すフローチャート。
【図22】実施の形態2を示す図で、修正後の中間形式情報を示す図。
【図23】実施の形態3を示す図で、画面設計書自動生成装置の構成の例を示す図。
【図24】実施の形態1〜3を示す図で、本実施の形態に示した画面設計書自動生成装置500のハードウェア資源の例を示す図。
【発明を実施するための形態】
【0009】
実施の形態1.
(画面設計書自動生成装置の構成)
図1は、画面設計書自動生成装置の構成の例を示す図である。
画面設計書自動生成装置500は、例えばソフトウェアの表示データの設計書を生成する。なお、画面設計書自動生成装置500は、情報処理装置に対応する。また、表示データとは、例えばソフトウェアの表示画面である。以降、表示データを表示画面とも称する。
なお、ソフトウェアの種類は限定されるものでは無いが、本実施の形態においては、ソフトウェアは例えばインターネットのホームページのような画面表示を行うソフトウェアを想定する。そして、表示データの設計書を以降「画面設計書」と称する。なお、この画面設計書については後述で説明する。
【0010】
入力部100は、表示画面の設計情報を入力する。この表示画面の設計情報は、表示画面の画面設計書(後述で説明)とソースコードとの基となるベース情報である。すなわち、このベース情報には、ソースコードの生成に用いられるソースコード生成用情報と、画面設計書の生成に用いられる仕様生成用情報とが含まれる。
中間形式変換部101は、入力部100が入力した設計情報をコンピュータで処理可能な中間形式情報113(後述で説明)に変換する。ここで、中間形式情報113に含まれる情報は、入力部100により入力されたベース情報である。言い換えれば、中間形式情報113は、ベース情報が後述で説明の所定の中間形式のフォーマットで記述されたものである。よって、中間形式情報113は、ベース情報に対応する。
【0011】
リポジトリ107は、中間形式変換部101が変換した中間形式情報113を記憶する。ここで、リポジトリ107は、ベース情報記憶部に対応する。
【0012】
設計書生成部102は、中間形式情報113を用いて、表示データの仕様が示される画面設計書112(後述で説明)を生成する。なお、前記の通り、中間形式情報113は仕様生成用情報を含んでいる。すなわち、設計書生成部102は、中間形式情報113に含まれる仕様生成用情報を用いて画面設計書112を生成する。ここで、画面設計書112は仕様情報に対応し、設計書生成部102は仕様情報生成部に対応する。
ソースコード生成部103は、中間形式情報113に含まれるソースコード生成用情報を用いて、表示データのソースコード110aを生成する。
すなわち、設計書生成部102とソースコード生成部103は、共通の情報(中間形式情報113)を用いて画面設計書112とソースコード110とを生成する。
【0013】
ソースコード記憶部121は、ソースコード生成部103で生成されたソースコード110aを記憶する。
【0014】
(画面設計書自動生成装置500の動作説明)
画面設計書自動生成装置500の動作について、設計情報入力から中間形式情報生成までの処理と、中間形式情報から画面設計書生成までの処理と、中間形式情報からソースコード生成までの処理との3つに分けて説明する。
【0015】
(設計情報入力から中間形式情報生成までの処理)
図2、図3、図4、図5を用いて、設計情報入力から中間形式情報生成までの処理を説明する。
図2は、中間形式情報が生成されるまでの処理の例を示すフローチャートである。
図3は、設計情報入力GUIエディタの例を示す図である。
図4は、中間形式情報(解析木)の例を示す図である。
図5は、中間形式情報(XML)の例を示す図である。
【0016】
図2のS501において、入力部100は、表示画面毎に、「画面ID(Identification)」、「画面名」、「ファイル名」、「説明」、「画面のサイズ」などの設計情報を入力する。
ここで、入力部100は、図3に示す設計情報入力GUI(Graphical User Interface)エディタのようなユーザインタフェースを備える。この設計情報入力GUIエディタは、例えば画面設計書自動生成装置500の表示装置に表示される。
【0017】
ここで、設計情報入力GUIエディタの説明を行う。
設計情報入力GUIエディタは、例えば開発者が表示画面を開発する上での必要な設計情報を入力するためのエディタである。設計者は、設計情報入力GUIエディタを用いて、画面部品をキャンパス上に配置し、個々の画面部品にプロパティとして予め定義されている項目に対して値をセットすることで画面を生成する。
プロパティとしては、画面の外観(色、サイズ、字体など)に関するプロパティと表示画面のユーザのアクション(テキストを入力、ボタンをクリック、リンクをクリックなど)に関するプロパティからなる。
設計者は、画面部品、色などをパレットから選択して指定する。
そして、設計者が、対象の画面部品を選択し、マウスで右ボタンをクリックすると、設計情報入力GUIエディタは、設定可能なプロパティを表示する。
画面部品とは、例えば、図3にB001として示した「ユーザID」の入力用のテキストボックスなどである。そして、図3にB002として示した箇所がB001のプロパティ表示である。
【0018】
そして、図2のS502において、中間形式変換部101は、入力部100が入力した設計情報を表示画面毎に区別し、表示画面毎のベース情報として取得する。
【0019】
次に、中間形式変換部101は、表示画面毎に、図2のS503〜S510の間のループ処理を行う。すなわち、中間形式変換部101は、設計情報入力GUIエディタのキャンパス上に配置された全ての画面部品についてS503〜S510の処理を行う。
【0020】
まず、中間形式変換部101は、図2のS504において、キャンパス上の画面部品の位置情報を取得し、位置情報から処理順番を決定する。
そして、中間形式変換部101は、図2のS505〜S508において、入力部100が入力した各画面部品(テキストボックス、リストボックス、フォーム等)のプロパティ情報(画面の概観、表示画面のユーザのアクション等)を取得する。
そして、中間形式変換部101は、取得した各画面部品のプロパティ情報から中間形式情報113を生成する。そして、リポジトリ107は中間形式変換部101が生成した中間形式情報113を記憶する。
【0021】
本実施の形態においては、入力部(設計情報入力GUIエディタ)で入力された情報を中間形式変換部101が中間形式情報113のフォーマットに変換しているが、中間形式情報113に含まれる情報は入力部で入力された情報となる。例えば、画面部品の位置情報や画面部品の属性も入力部で入力された情報である。
したがって、入力部は、予め中間形式情報113のフォーマットとなっている情報を入力することも可能である。そして、リポジトリ107は、入力部が入力した予め中間形式情報113のフォーマットとなっている情報を記憶することが可能である。この場合、中間形式変換部101における処理は不要となる。
【0022】
中間形式情報113の具体例を説明する。
例えば、図4に示す解析木の場合の中間形式情報113は、「ROOT」ノードを最上位として、その下にアプリケーションを構成する各画面のノードが画面ID別に配置される。画面IDノードが1つの表示画面に対応し、その下に画面部品に対応した各要素がプロパティと共に配置される。
例えば、図4のT1001に示す「画面ID;S0101」から派生しているツリー構造が「画面ID;S0101」の表示画面に対応している。
そして、例えば、「body」(図4のT1002)から派生している部分が「body」という要素であり、「body」の要素の中には、例えば「table」(図4のT1003)という要素が含まれている。
そして、「table」という要素は、図4のT1004に示す属性が定義されている。
【0023】
また、例えば、図5に示すXML(Extensible Markup Language)の場合の中間形式情報113は、「root」要素を最上位として、その下に「screen」要素が配置される。「screen」要素は、1つの表示画面に対応し、その下に画面部品に対応した各要素が配置される。すなわち、XMLでは、対となるタグに囲まれた部分が1つの要素となる。例えば、「<td><input type=“text”(中略)</td>」(図5のT0024)も「<td>タグ」で囲まれた1つの要素である。
すなわち、要素とは、開始タグ(例えば<td>)と終了タグ(例えば</td>)と、開始タグと終了タグとの間にある記述とを含めた部分であり、表示画面を構成する画面部品に対応して、画面部品の定義が記述されたものである。
なお、この「要素」を以降の説明では「要素ブロック」とも称する。
そして、開発者が設定した各プロパティは、属性として設定される。例えば「tabele width=“500”」(図5のT0022)や、「type=“text”」(図5のT0024)などが属性を示す情報である。
そして、例えば、図5のT001に示す部分が「id=“S0001”」の表示画面の画面情報に対応し、T002に示す部分が「id=“S0101”」の表示画面の画面情報に対応し、T003に示す部分が「id=“S0201”」の表示画面の画面情報に対応する。
なお、中間形式情報113は、前記の解析木やXMLなどで実現可能であるが、これらに限定されるものではない。
【0024】
(中間形式情報から画面設計書生成までの処理)
次に、中間形式情報113から画面設計書112を生成する処理を説明する。
画面設計書は、例えば、「画面一覧」、「画面遷移図」、「画面レイアウト一覧」、「画面項目定義一覧」の4種類から成る。
すなわち、中間形式情報113には複数種の画面設計書112の生成に用いられる複数の情報(仕様生成用情報)が含まれる。そして、設計書生成部102は、複数種の画面設計書112毎に、それぞれの画面設計書112の生成に用いられる情報(仕様生成用情報)を用いて、それぞれの画面設計書112を生成する。
【0025】
画面一覧は、画面の一覧と各画面の概要が記述される。画面遷移図は、利用者のアクションに応じて、画面がどの順番で遷移するかを示す。画面レイアウト一覧は、ソフトウェア実行時の画面の外観を表示する。画面項目定義一覧は、画面を構成する部品(テキストボックス、チェックボックス、ボタンなど)の詳細情報を示す。
【0026】
(画面一覧の生成処理)
まず、ソフトウェアの画面一覧について説明する。
図6は、中間形式情報から画面一覧を生成する処理の例を示すフローチャートである。
図7は、画面一覧の例を示す図である。
【0027】
まず、設計書生成部102は、画面一覧1121を生成する対象の中間形式情報113を読み込む(図6のS1701)。ここで、設計書生成部102は、図5に示す中間形式情報113を読み込むと想定する。
次に、設計書生成部102は、画面一覧1121を書き出す出力ファイルをオープンする(図6のS1702)。出力ファイルはテキストファイルでも表計算ソフトのファイル(CSV(Comma Separated Values)形式のファイル)などでもよい。図7の画面一覧の出力ファイルは、表計算ソフトのファイルの例を示している。
【0028】
次に、設計書生成部102は、図6に示すS1703〜S1710の間のループ処理を全ての画面情報について行う。
設計書生成部102は、中間形式情報113から画面IDを取得する(図6のS1704)。そして、設計書生成部102は、取得した画面IDをS1702でオープンした出力ファイルに出力する(図6のS1705)。
例えば、設計書生成部102は、図5の中間形式情報113のT001の部分が示す画面の情報の内「id=“S0001”」から、画面ID「S0001」を取得し、図7のD001に示す行に画面ID「S0001」を出力する。
すなわち、例えば画面ID「S0001」などの情報が、画面設計書112の生成に用いられる仕様生成用情報である。
【0029】
更に、設計書生成部102は、中間形式情報113から取得した画面IDに対応する画面名を取得する(図6のS1706)。そして、設計書生成部102は、取得した画面名をS1702でオープンした出力ファイルに出力する(図6のS1707)。
例えば、設計書生成部102は、図5の中間形式情報113のT001の部分が示す画面情報の内「name=“トップ画面”」から、画面名「トップ画面」を取得し、図7のD001に示す行に画面名「トップ画面」を出力する。
【0030】
更に、設計書生成部102は、中間形式情報113から取得した画面IDに対応する説明を取得する(図6のS1708)。そして、そして、設計書生成部102は、取得した説明をS1702でオープンした出力ファイルに出力する(図6のS1709)。
例えば、設計書生成部102は、図5の中間形式情報113のT001の部分が示す画面情報の内「note=“ソフトウェアのトップ画面”」から、説明「ソフトウェアのトップ画面」を取得し、図7のD001に示す行に説明「ソフトウェアのトップ画面」を出力する。
【0031】
設計書生成部102は、一つの画面情報に対して、S1704〜S1709の処理を行った後、出力ファイル内で、画面情報毎に情報を区別出来るように、出力ファイルに改行を出力する。
そして、設計書生成部102は、次の画面情報(例えば、図5に示すT002の部分)に対して、S1703〜S1710の処理を繰り返す。
【0032】
設計書生成部102は、全ての画面情報に対して処理を完了したら、出力ファイルをクローズする。そして、設計書生成部102は、図7に示すような画面一覧1121を生成する。
【0033】
(画面遷移図の生成処理)
次に、ソフトウェアの画面遷移図について説明する。
図8は、中間形式情報から画面遷移図を生成する処理の例を示すフローチャートである。
図9は、画面遷移図の例を示す図である。
【0034】
まず、設計書生成部102は、画面遷移図1122を生成する対象の中間形式情報113を読み込む(図8のS1801)。ここで、設計書生成部102は、図5に示す中間形式情報113を読み込むと想定する。
次に、設計書生成部102は、画面遷移図1122を書き出す出力ファイルをオープンする(図8のS1802)。出力ファイルはテキストファイルでも表計算ソフトのファイル(CSV形式のファイル)でも画像ファイルなどでもよい。図9の画面遷移図1122の出力ファイルは、画像ファイルの例を示している。
【0035】
次に、設計書生成部102は、図8に示すS1803〜S1809の間のループ処理を全ての画面情報について行う。
設計書生成部102は、中間形式情報113から画面IDを取得する(図8のS1804)。例えば、設計書生成部102は、図5の中間形式情報113のT001の部分が示す画面の情報の内「id=“S0001”」から、画面ID「S0001」を取得する。
【0036】
更に、設計書生成部102は、中間形式情報113から取得した画面IDに対応する画面名を取得する(図8のS1805)。例えば、設計書生成部102は、図5の中間形式情報113のT001の部分が示す画面の情報の内「name=“トップ画面”」から、画面名「トップ画面」を取得する。
【0037】
そして、設計書生成部102は、取得した画面IDの全ての要素に対して図8に示すS1806〜S1808の処理を行う。例えば、設計書生成部102は、図5の中間形式情報113のT001の部分が示す画面の情報から、ユーザのアクションに関する全ての属性を検索し、検索した属性が示すアクションと遷移先の画面IDのペアを取り出す。
ここで、図5における図示は省略するが、例えば設計書生成部102は、図5の中間形式情報113のT001の部分が示す画面の情報から、ユーザのアクション「Enterを入力」と遷移先の画面ID「S0101」とのペアを取り出す。更に他のユーザのアクションが図5の中間形式情報113のT001の部分に含まれているならば、設計書生成部102は、アクションと遷移先の画面IDのペアを取り出すが、ここでは前記の1組しか無いものとする。
【0038】
そして、設計書生成部102は、次の画面情報(例えば、図5に示すT002の部分)に対して、S1804〜S1808の処理を繰り返す。
全ての画面情報に対してS1803〜S1809の処理が終了すれば、設計書生成部102は、画面遷移図1122の作成に必要な情報を全て抽出したことになる。
【0039】
次に、設計書生成部102は、図8に示すS1810〜S1814の間のループ処理を全ての画面情報について行う。
まず設計書生成部102は、全ての画面情報の中からスタートページ属性を検索し、スタートページ属性が含まれる画面情報が対応する表示画面を開始ページとして決定する。ここで、T001に示される部分にスタートページ属性が含まれているものとする。
【0040】
そして、設計書生成部102は、スタートページ属性が含まれる画面情報の画面名をS1802でオープンした出力ファイルに出力する(図8のS1811)。例えば、設計書生成部102は、図9に示す画面名「トップ画面」を出力する。
【0041】
更に、設計書生成部102は、スタートページ属性が含まれる画面情報の画面IDをS1802でオープンした出力ファイルに出力する(図8のS1812)。例えば、設計書生成部102は、図9に示す画面ID「S0001」を出力する。
【0042】
そして、設計書生成部102は、スタートページ属性が含まれる画面情報(図5のT001)から抽出されたユーザのアクション「Enterを入力」と遷移先の画面ID「S0101」とのペアを図9のG001に関連付ける。すなわち、設計書生成部102は、図9のG001の画面において、アクション「Enterを入力」(図9のG002)が行われると画面ID「S0101」の画面(図9のG003)に遷移することを示す情報を作成する。
【0043】
以降、設計書生成部102は、全ての画面情報に対して、図8に示すS1810〜S1814の処理を行い、全ての画面情報に対して処理を完了したら、出力ファイルをクローズする(図8のS1815)。そして、設計書生成部102は、図9に示すような画面遷移図1122を生成する。
【0044】
(画面レイアウトの生成処理)
次に、ソフトウェアの画面レイアウトについて説明する。
図10は、中間形式情報から画面レイアウトを生成する処理の例を示すフローチャートである。
図11は、画面レイアウトの例を示す図である。
【0045】
まず、設計書生成部102は、画面レイアウト1123を生成する対象の中間形式情報113を読み込む(図10のS1901)。ここで、設計書生成部102は、図5に示す中間形式情報113を読み込むと想定する。
【0046】
次に、設計書生成部102は、図10に示すS1902〜S1915の間のループ処理を「root」に帰属する全ての画面情報について行う。
ここでは、図5に示すT002の画面情報を例に説明し、他の画面情報についての説明は省略する。
【0047】
まず、設計書生成部102は、中間形式情報113の画面情報が示す画面IDに関連付けられているファイル名を抽出する(図10のS1903)。そして、設計書生成部102は、抽出したファイル名のファイルを出力ファイルとしてオープンする(図10のS1904)。ここで、図5に示すT002の例では、ファイル名は「Login」となる。そして、設計書生成部102は、画面レイアウト1123のファイルであることが区別可能な識別子(例えば拡張子)をファイル名に付加する。
【0048】
そして、設計書生成部102は、出力ファイルに中間形式情報113の画面情報が示す画面名、画面ID、説明などの共通情報を出力する(図10のS1905)。
【0049】
そして、設計書生成部102は、選択された画面ID(ここでは、中間形式情報113のT002の画面ID「S0101」)の全ての要素に対してS1906〜S1912の処理を行う。
【0050】
まず、設計書生成部102は、画面情報に含まれる要素の内、レンダリングを行う要素であるか否かを判定する(図10のS1909)。ここで、レンダリングとは、例えば中間形式情報113で記述された情報に基づき、画像化(可視化、グラフィック化)することである。
設計書生成部102は、レンダリング対応の要素でない場合(図10のS1909の「NO」)、特に何も処理をしない。一方、設計書生成部102は、レンダリング対応の要素である場合(図10のS1909の「YES」)、S1908〜S1911の処理を行う。
すなわち、設計書生成部102は、図5のT002の画面情報の内、レンダリング対象の要素(例えば図5のT0021の「form」)の中から例えば図5のT0022「table width=“500” border=“1”」をレンダリング対象の属性と判定し(図10のS1909の「YES」、レンダリングを行う(図10のS1910)。
【0051】
そして、設計書生成部102は、レンダリング結果を出力ファイルに出力する(図10のS1913)。レンダリング結果の例を図11に示す。
【0052】
設計書生成部102は、レンダリング結果を出力ファイルに出力した後、出力ファイルをクローズする(図10のS1914)。
そして、設計書生成部102は、全ての画面情報に関してS1902〜S1915の処理を行い、図11に示すような画面レイアウト1123を生成する。
【0053】
(画面入出力項目の生成処理)
次に、ソフトウェアの画面入出力項目について説明する。
図12は、中間形式情報から画面入出力項目を生成する処理の例を示すフローチャートである。
図13は、画面入出力項目の例を示す図である。
【0054】
まず、設計書生成部102は、画面入出力項目1124を生成する対象の中間形式情報113を読み込む(図12のS2001)。ここで、設計書生成部102は、図5に示す中間形式情報113を読み込むと想定する。
【0055】
次に、設計書生成部102は、図12に示すS2002〜S2016の間のループ処理を「root」に帰属する全ての画面情報について行う。
ここでは、図5に示すT002の画面情報を例に説明し、他の画面情報についての説明は省略する。
【0056】
まず、設計書生成部102は、中間形式情報113の画面情報が示す画面IDに関連付けられているファイル名を抽出する(図12のS2003)。そして、設計書生成部102は、抽出したファイル名のファイルを出力ファイルとしてオープンする(図12のS2004)。ここで、図5に示すT002の例では、ファイル名は「Login」となる。そして、設計書生成部102は、画面入出力項目1124のファイルであることが区別可能な識別子(例えば拡張子)をファイル名に付加する。
【0057】
そして、設計書生成部102は、出力ファイルに中間形式情報113の画面情報が示す画面名、画面ID、説明などの共通情報を出力する(図12のS2005)。
【0058】
更に、設計書生成部102は、出力ファイルに中間形式情報113の画面情報が示すテーブルヘッダ情報(部品の種別、表示桁数など)を出力する(図12のS2006)。ここでテーブルヘッダ情報は、例えば図5のT0023に示す「type(部品の種別)」、「size(表示桁数)」などである。
ここで、図5における図示は省略するが、テーブルヘッダ情報の具体例として、図13には「部品名」、「入力桁数」、「必須」を示す。
また、設計書生成部102は、例えば、図5の中間形式情報113の「type」を、予め設定された変換規則に基づき、例えば、図13の「部品の種別」というように変換して出力することも可能である。他の部分において、画面設計書112内で、中間形式情報113の表記と異なる表記がなされている部分も同様である。
【0059】
そして、設計書生成部102は、選択された画面ID(ここでは、中間形式情報113のT002の画面ID「S0101」)の全ての要素に対してS2007〜S2014の処理を行う。
【0060】
まず、設計書生成部102は、画面情報に含まれる要素の内、入出力項目に関する要素であるか否かを判定する(図12のS2008)。
設計書生成部102は、入出力項目に関する要素でない場合(図12のS2008の「NO」)、特に何も処理をしない。一方、設計書生成部102は、入出力項目に関する要素である場合(図12のS2008の「YES」)、S2009〜S2013の処理を行う。
【0061】
図12のS2008において「YES」と判定された場合、設計書生成部102は、要素に対応する部品名を出力ファイルに出力する(図12のS2009)。例えば設計書生成部102は、図5のT0023に示す要素に対応する部品名「ユーザID」を出力する。
【0062】
そして、設計書生成部102は、要素に含まれる全ての属性に対して、S2010〜S2013の処理を行う。
すなわち、設計書生成部102は、図5のT002の画面情報の内、入出力項目に関する要素(例えば図5のT0023)の中から、入出力項目に関する属性、例えば図5のT0023「type=“text”」、「size=“25”」を抽出し、出力ファイルに出力する(図12のS2012)。
出力結果の例を図13に示す。図13においては、「入力桁数」、「必須」も図示されているが、中間形式情報113から画面入出力項目1124に変換される処理は同様である為、説明を省略する。
【0063】
設計書生成部102は、出力ファイルに出力した後、出力ファイルをクローズする(図12のS2015)。
そして、設計書生成部102は、全ての画面情報に関してS2002〜S2016の処理を行い、図13に示すような画面入出力項目1124を生成する。
【0064】
(中間形式情報からソースコード生成までの処理)
以上、中間形式情報から画面設計書を精製する処理を説明した。
次に、中間形式情報からソースコードを生成する処理を説明する。
図14は、中間形式情報からソースコードを生成する処理の例を示すフローチャートである。
図15は、ソースコードの例を示す図である。
図15のソースコード110は、HTML(Hyper Text Markup Language)による記述の例を示しているが、これに限定されるものではない。
【0065】
まず、ソースコード生成部103は、ソースコード110を生成する対象の中間形式情報113を読み込む(図14のS1601)。ここで、ソースコード生成部103は、図5に示す中間形式情報113を読み込むと想定する。
【0066】
次に、ソースコード生成部103は、図14に示すS1602〜S1617の間のループ処理を「root」に帰属する全ての画面情報について行う。
ここでは、図5に示すT002の画面情報を例に説明し、他の画面情報についての説明は省略する。
【0067】
まず、ソースコード生成部103は、中間形式情報113の画面情報が示す画面IDに関連付けられているファイル名を抽出する(図14のS1603)。そして、設計書生成部102は、抽出したファイル名のファイルを出力ファイルとしてオープンする(図14のS1604)。ここで、図5に示すT002の例では、ファイル名は「Login」となる。そして、ソースコード生成部103は、ソースコード110のファイルであることが区別可能な識別子(例えば拡張子)をファイル名に付加する。
【0068】
そして、ソースコード生成部103は、出力ファイルに中間形式情報113の画面情報が示す「DOCTYPE」などの共通情報を出力する(図14のS1605)。
【0069】
そして、ソースコード生成部103は、選択された画面ID(ここでは、中間形式情報113のT002の画面ID「S0101」)の全ての要素に対してS1606〜S1617の処理を行う。
ここで、HTMLで記述された場合の要素は、XMLで記述された場合と同様にタグで囲まれた部分となる。
【0070】
まず、ソースコード生成部103は、要素名(例えば中間形式情報113のT002の「html」)を開始タグとして出力ファイルに出力する(図14のS1607)。出力例は図15に示す「<html>」である。
【0071】
次に、ソースコード生成部103は、要素が属性を保持しているか否かを判定する。例えば、図5のT002は、「html」タグの直後に「head」タグが記述されており、属性を保持していないので、ソースコード生成部103は、図14のS1608において、「NO」と判定する。
【0072】
そして、ソースコード生成部103は、子要素の有無を判定する(図14のS1613)。ここで、図5のT002は、「html」タグの直後に子要素の「head」タグが記述されているので、ソースコード生成部103は、図14のS1613において「NO」と判定する。
そして、図14のS1607において、ソースコード生成部103は、開始タグ「<head>」として出力ファイルに出力する。
【0073】
もし、子要素が無い場合は、ソースコード生成部103は、図14のS1613において「YES」と判定し、図14のS1614において、要素名を終了タグとして出力ファイルに出力する(例えば「</html>」)。
【0074】
そして、子要素「head」は、図5に示すように「meta http−equiv=(以下省略)」という属性を保持しているので、ソースコード生成部103は、図14のS1608において、「YES」と判定する。
【0075】
図14のS1608において、「YES」と判定された場合、ソースコード生成部103は、図14のS1609〜S1612の処理を行う。
すなわち、ソースコード生成部103は、図5のT002の画面情報の内、「head」の要素に関する全ての属性に対し、ソースコードに関連する属性か否かを判定する(図14のS1610)。そして、ソースコードに関連する属性の場合(図14のS1610の「YES」)、属性名と値とを出力ファイルに出力する(図14のS1611)。
すなわち、ソースコードに関連する属性を備えた要素が、ソースコードの生成に用いられるソースコード生成用情報である。
【0076】
例えば、ソースコード生成部103は、図5に示す「meta http−equiv=(以下省略)」をソースコードに関連する属性と判定し、出力ファイルに出力する。
ここで、ソースコード生成部103は、ソースコードに関連する属性に関しては、「属性名=“値”」の形式で出力する(例えば「meta http−equiv=“Content−Type”」)。
なお、ソースコード生成部103は、例えば、図5のT0021に示す「<td>ユーザID:</td>」とタグに囲まれた「ユーザID:」もソースコードに関連する属性であると判断し、「ユーザID:」を出力する。
【0077】
そして、ソースコード生成部103は、選択された画面情報(ここでは図5のT002)に対する処理が終了したら、ソースコード生成部103は、出力ファイルをクローズする(図14のS1616)。
そして、ソースコード生成部103は、全ての画面情報に関してS1602〜S1617の処理を行い、図15に示すようなソースコード110を生成する。
【0078】
(実施の形態1の効果)
実施の形態1に示す画面設計書自動生成装置500は、表示画面の設計者が例えば設計情報入力GUIエディタのようなツールで入力した表示画面の設計情報から、表示画面のソースコード110と画面設計書112とを自動生成する。よって、表示画面の設計効率(開発効率)が向上する。
また、実施の形態1に示す画面設計書自動生成装置500は、設計者が入力した表示画面の設計情報を中間形式情報113として記憶する。
そして、画面設計書自動生成装置500は、同じ中間形式情報113のファイルから画面設計書112とソースコード110とを生成するので、画面設計書112とソースコード110との内容に乖離が生じることが無い。
また、例えば、設計者がプログラムの内容を変更したい場合も、設計者は例えば画面設計書自動生成装置500の入力装置を用いて、中間形式情報113を変更することが可能である。そして、画面設計書自動生成装置500は、変更された中間形式情報113から画面設計書112とソースコード110とを生成可能である。よって、設計者は、画面設計書112とソースコード110とを別々に変更する必要が無い。
【0079】
まとめると、実施の形態1においては、開発者が表示画面(プログラム画面)に関する情報を入力する入力部100(エディタ)と、入力された情報を中間形式情報113に変換する中間形式変換部101と、中間形式情報113から表示画面(プログラム画面)のソースコードを自動生成するソースコード生成部103と、中間形式情報113から表示画面の設計書を自動生成する設計書生成部102とを備えた画面設計書自動生成装置500について説明した。
【0080】
実施の形態2.
(画面設計書自動生成装置の構成)
図16は、画面設計書自動生成装置の構成の例を示す図である。
実施の形態2の画面設計書自動生成装置500は、実施の形態1の画面設計書自動生成装置500の構成に加えて、ソースコード編集部120と変更情報生成部122とを備える。
実施の形態2においては、実施の形態1と異なる部分のみ説明する。
【0081】
ソースコード編集部120は、実施の形態1で説明したソースコード生成部103で生成されたソースコード110aを編集する。
ソースコード記憶部121は、ソースコード生成部103で生成されたソースコード110aや、ソースコード編集部120で編集されたソースコード110bなどを記憶する。
【0082】
変更情報生成部122は、差分抽出部109と中間形式反映部108とから構成される。
差分抽出部109は、ソースコード生成部103で生成されたソースコード110aとソースコード編集部120で編集されたソースコード110bとの差分を抽出する。ここで、差分抽出部109は、要素ブロック特定部に対応する。
中間形式反映部108は、差分抽出部109で抽出された差分に対応する部分の中間形式情報113を変更する。ここで、中間形式反映部108は、要素ブロック変更部とベース情報変更部に対応する。
【0083】
なお、詳細は後述するが、実施の形態2における画面設計書自動生成装置500は、ソースコードが変更される度に、反復して画面設計書を生成する。よって、画面設計書自動生成装置500は、反復型画面設計書自動生成装置(反復型画面自動生成装置)とも言える。
【0084】
(画面設計書自動生成装置500の動作説明)
画面設計書自動生成装置500の動作について、ソースコード変更部分の抽出処理と、ソースコード変更箇所を設計書に反映させる処理との2つに分けて説明する。
【0085】
(ソースコード変更部分の抽出処理)
図17は、ソースコード変更部分の抽出処理の例を示すフローチャートである。
図18は、ソースコードの変更部分が抽出された例を示す図である。
図19は、ソースコードの追加部分が抽出された例を示す図である。
図20は、ソースコードの削除部分が抽出された例を示す図である。
【0086】
例えば、表示画面の設計者が、図16に示すソースコード記憶部121に記憶されたソースコード110aを変更したい場合を想定する。
その場合、表示画面の設計者は、例えば画面設計書自動生成装置500の入力装置を用いて、ソースコード110aの変更内容を入力する。
そして、ソースコード編集部120は、設計者の入力した変更内容に基づき、ソースコード110aを変更し、ソースコード110bを生成する。ここで、ソースコード110aは、変更前のソースコード110aであり、ソースコード110bは、変更後のソースコード110bであると言える。ソースコード110aは、オリジナルのソースコード110aであるとも言える。
そして、ソースコード記憶部121は、変更後のソースコード110bを記憶する。
【0087】
そして、図16に示す差分抽出部109は、図17に示す処理により、ソースコード生成部103により生成されたオリジナルのソースコード110aにおいて変更が生じた場合に、変更前のソースコードと変更後のソースコード110bとの間の差異を抽出する。
【0088】
まず、差分抽出部109は、変更後のソースコード110bを読み込む(図17のS601)。
更に、差分抽出部109は、変更前のソースコード110aを読み込む(図17のS604)。
そして、差分抽出部109は、変更後のソースコード110bと変更前のソースコード110aとの差分を行単位で抽出する(図17のS605)。ここで差分とは、変更後のソースコード110bと変更前のソースコード110aとの変更部分のことである。
【0089】
ただし、変更後のソースコード110bは、ソースコード編集部120により編集されている為、不要な改行や空白文字などが存在する。よって、差分抽出部109は、変更後のソースコード110bと変更前のソースコード110aとを行単位で比較することが出来ない場合がある。
よって、差分抽出部109は、変更後のソースコード110bを正規化(図17のS602)した上で、変更後のソースコード110bと変更前のソースコード110aとを行単位で比較する。ここで、正規化とは、例えば、前記の不要な改行や空白文字などを削除して、変更後のソースコード110bと変更前のソースコード110aとを行単位で比較可能にすることである。もし、変更後のソースコード110bに行が追加もしくは削除された場合であっても差分抽出部109は、正規化を行い、変更後のソースコード110bと変更前のソースコード110aとを行単位で比較することが可能である。
【0090】
差分抽出部109が変更後のソースコード110bと変更前のソースコード110aとを比較して、行単位で差分を抽出した例を説明する。
図18は、変更前のソースコード110aの12行目の「<td><input (中略) size=“25” />・・・</td>」が、変更後のソースコード110bの17行目では「<td><input (中略) size=“30” />・・・</td>」に変更されていることを示す例である。
図19は、変更前のソースコード110aの24行目に、変更後のソースコード110bの24行目〜26行目には、図示の3行が追加されていることを示す例である。なお、図19においては、ソースコードの記述例は省略し「<td>タグ」のみを図示している。
図20は、変更前のソースコード110aの3行目の「<td> ・・・・・ </td>」が、変更後のソースコード110bでは削除されていることを示す図である。なお、図20においては、ソースコードの記述例は省略し「<td>タグ」のみを図示している。
【0091】
(ソースコード変更箇所を設計書に反映させる処理)
次に、差分抽出部109が抽出した変更後のソースコード110bと変更前のソースコード110aとの差分を反映させた画面設計書112の生成処理を説明する。
図21は、ソースコード変更箇所を設計書に反映させる処理の例を示すフローチャートである。
図22は、修正後の中間形式情報113を示す図である。
【0092】
まず、図16に示す中間形式反映部108は、リポジトリ107に記憶された中間形式情報113を読み込む(図21のS1001)。
更に、中間形式反映部108は、差分抽出部109が抽出した変更後のソースコード110bと変更前のソースコード110aとの差分の情報を読み込む(図21のS1002)。
そして、中間形式反映部108は、差分抽出部109が抽出した全ての差分情報に対して、図21に示すS1003〜S1017のループ処理を行う。
【0093】
ここで、差分抽出部109は、図18に示す差分情報を抽出したと想定して説明を進める。
【0094】
中間形式反映部108は、差分抽出部109が抽出した差分情報の種別の判定を行う(図21のS1004)。
例えば、差分抽出部109が図18に示すような修正情報を抽出した場合は、中間形式反映部108は、図21のS1009の処理を行う。そして、差分抽出部109が図19に示すような追加情報を抽出した場合は、中間形式反映部108は、図21のS1005の処理を行う。そして、差分抽出部109が図20に示すような削除情報を抽出した場合は、中間形式反映部108は、図21のS1013の処理を行う。
【0095】
ここでは、差分抽出部109は、図18に示す差分情報を抽出したと想定しているので、中間形式反映部108は、図21のS1009の処理を行う。
図21のS1009において、中間形式反映部108は、中間形式情報113における変更箇所を特定する。
【0096】
ここで、中間形式情報113は、複数の要素(要素ブロック)から構成されている。ここで、要素(要素ブロック)とは、前記で説明の通り、中間形式情報113のタグで囲まれた部分(例えば「<td><input type=“text”(中略)</td>」(図5のT0024)である。
そして、ソースコード生成部103は、中間形式情報113に含まれる複数の要素(要素ブロック)の内、ソースコード110の生成に用いられるソースコード生成用情報を構成するソースコード要素ブロックを抽出している。例えばソースコード生成部103は、「<td><input type=“text”(中略)</td>」(図5のT0024)をソースコード要素ブロックとして抽出している。
そして、ソースコード生成部103は、抽出したソースコード要素ブロックを用いて、ソースコードを生成している。例えばソースコード生成部103は、「<td><input type=“text”(中略)</td>」(図5のT0024)を用いて、図15のソースコード110の「<td><input type=“text”(中略)</td>」(図15のT1501)を生成している。
【0097】
そこで、中間形式反映部108は、差分抽出部109が抽出した差分(差異)に対応するソースコード要素ブロックを特定する。ここで、例えばソースコード110の行番号の情報と、ソースコード110が生成される元となった中間形式情報113におけるソースコード要素ブロックとは対応付けられている。
よって、中間形式反映部108は、差分抽出部109が抽出した図18に示す差分情報の行番号「12行目」から「<td><input type=“text”(中略)</td>」(図5のT0024)を特定する。
なお、図21のS1005およびS1013における処理も同様である。
【0098】
次に、中間形式反映部108は、特定されたソースコード要素ブロックを、変更前のソースコード110aと変更後のソースコード110bとの差異(差分)に基づいて変更する(図21のS1010〜S1012の処理)。
【0099】
中間形式反映部108は、差分抽出部109が抽出した差分情報の対象が要素であるか否かを判定する(図21のS1010)。なお、図21のS1006とS1014との処理も同様である。
図18に示す例は、要素の修正では無く(図21のS1010の「NO」)、属性の修正である為、中間形式反映部108は、ソースコード要素ブロック(図5のT0024)の「size=“25”」を「size=“30”」に修正する(図21のS1011)。
【0100】
一方、要素の修正である場合(図21のS1010の「YES」)、中間形式反映部108は、ソースコード要素ブロックそのものを修正する(図21のS1012)。図示は省略するが、中間形式反映部108は、例えば、図5のT0024の「<td><input type=“text”(中略)</td>」を「<td><textarea(中略)></textarea></td>」などに修正する。
【0101】
もし、差分抽出部109が抽出した差分情報が図19に示すような追加情報の場合は、中間形式反映部108は対象のソースコード要素ブロックに追加情報に示される属性もしくは要素を追加する(図21のS1007もしくはS1008)。そして、もし、差分抽出部109が抽出した差分情報が図20に示すような削除情報の場合は、中間形式反映部108は対象のソースコード要素ブロックにおいて、削除情報に示される属性もしくは要素を削除する。
【0102】
上記のように、中間形式反映部108は、S1003〜S1017の処理によって変更されたソースコード要素ブロックを用いて中間形式情報113を変更する。
図18の差分情報に基づき変更された中間形式情報113の例を図22に示す。中間形式情報113は、図5のT0024において「size=“25”」であったが、図22に示されるT2201においては「size=“30”」に修正されている。
【0103】
そして、設計書生成部102は、中間形式反映部108より変更された中間形式情報113を用いて画面設計書112を生成する(図21のS1018)。
【0104】
(実施の形態2の効果)
従来の設計情報や設計書に基づき、画面設計書を生成する装置は、設計情報や設計書から画面のソースコードへの一方向の自動生成となっている。(例えば、前記の特許文献1や特許文献2。)
従って、設計情報から自動生成されたソースコードを例えば設計者が手動で修正した場合、設計情報に反映できないという課題があった。例えば、ソースコードが手動で修正された後、その情報が設計書に反映されていない場合、再度設計情報からソースコードが自動生成されると、ソースコードの手動で修正した部分が、自動生成されたソースコードの内容に上書きされる課題が生じる。
このように、設計情報からソースコードを自動生成する場合には、常に、設計情報とソースコードとは、対応していなければならない。
【0105】
一方、スパイラル型のオブジェクト指向ソフトウェア開発を対象にした方法も前記の特許文献3には示されている。
この方法は、オブジェクト指向言語の特徴であるクラス、属性、メソッドをフレーム要素、コメント文をガイダンス要素、設計情報(UML(Unified Modeling Language)ダイヤグラム)の図形の位置、大きさ、線図の意味などを設計固有要素としてこれら三つを設計情報と定義している。そして、この方法は、フレーム要素、ガイダンス要素、メソッドや宣言をリーフ要素としてこれら三つを実装情報と定義している。更に、この方法は、オブジェクト指向言語固有の予約語や前処理文などをグルー要素としてこれを書式情報として定義している。
設計情報と実装情報では、差異(設計固有要素とリーフ要素)が存在するため、それぞれをデータベースに格納して、設計情報と実装情報をリンクしておくことで、片方に修正が入っても、もう一方を生成し、乖離をなくすことができる。
但し、オブジェクト指向開発の設計情報(UMLダイヤグラム)であるクラス図、アクティビティ図、シーケンス図は、スパイラル開発において順次詳細化していくが、ローカル変数やソースコードの一行単位での設計情報は記述しないため、完全な設計情報の生成を行うことができない。
なお、この方法は、オブジェクト指向プログラミング言語や一般のプログラミング言語に対して提案されたもので、表示画面については言及されていない。
【0106】
また、設計者の操作履歴を元に二つの設計支援ツールを連携させて設計書とソースコードとを生成する方法が、前記の特許文献4には示されている。
この方法は、ソースプログラム編集ツールとソフトウェア設計書(フローチャート)編集ツールを使用した設計者の操作履歴(「編集操作の種類」、「編集位置情報」、「フローチャートシンボルの種類」、「ソースプログラム構文の種類」)から、双方のツールを連携させてそれぞれの編集終了時に変更を反映する方式を提案している。
但し、二つのツールを連携させて動作させるためソースコードの修正とソフトウェア設計書の修正を並行して行えないという課題がある。
また、この方法で説明のプログラムのソースコードとソフトウェア設計書(フローチャート)の場合は、1対1に対応付けることが可能である。一方、本実施の形態で説明の表示画面のソースコードは、複数の設計書(画面一覧、画面遷移、画面項目定義)と関係するため、ソースコードの修正と設計書の修正を並行して行えないという課題がより顕著となる。
なお、この方法も、オブジェクト指向プログラミング言語や一般のプログラミング言語に対して提案されたもので、表示画面については言及されていない。
【0107】
上記の通り、4つの特許文献をあげて、従来の例を説明した。
一方、本実施の形態の画面設計書自動生成装置500は、例えば設計者が変更(修正)したソースコード110bと変更前のソースコード110aとの差分を差分抽出部109が抽出する。そして、中間形式反映部108が差分の内容を中間形式情報113に反映させる。その為、本実施の形態の画面設計書自動生成装置500は、ソースコード110の変更に対応した画面設計書112が自動生成可能である。
すなわち、本実施の形態の画面設計書自動生成装置500は、設計者がソースコード110を修正する度に、修正したソースコード110から画面設計書112を反復的に自動生成し、ソースコード110と画面設計書112の乖離を無くす。そして、表示画面の開発効率(生産性)を向上させる。
【0108】
まとめると、実施の形態2においては、開発者が修正した表示画面(プログラム画面)に関するソースコードとオリジナルの表示画面(プログラム画面)に関するソースコードとの差分を抽出する差分抽出部109と、差分を中間形式情報113に反映する中間形式反映部108とを備えた画面設計書自動生成装置500について説明した。
【0109】
実施の形態3.
(画面設計書自動生成装置の構成および動作)
図23は、画面設計書自動生成装置の構成の例を示す図である。
実施の形態3の画面設計書自動生成装置500は、実施の形態2の画面設計書自動生成装置500の構成に加えて、版管理部106を備える。
実施の形態3においては、実施の形態1および実施の形態2と異なる部分のみ説明する。
【0110】
リポジトリ107は、入力部100に入力された設計情報(ベース情報)が例えばXML形式で記述された中間形式情報113を最初の中間形式情報113として記憶する。更に、リポジトリ107は、中間形式反映部108により中間形式情報113が変更される度に、変更された中間形式情報113を変更された順番に対応付けて記憶する。
ここで、中間形式情報113が変更された順番は、中間形式情報113の版数に対応する。
そして、版管理部106は、例えば設計者が画面設計書自動生成装置500の入力装置を用いて入力した所定の順番(版数)に対応する中間形式情報113をリポジトリ107から抽出する。ここで、版管理部106は、ベース情報抽出部に対応する。
【0111】
そして、設計書生成部102は、版管理部106により抽出された中間形式情報113を用いて画面設計書112を生成する。
更に、ソースコード生成部103は、版管理部106により抽出された中間形式情報113を用いてソースコード110を生成する。
【0112】
(実施の形態3の効果)
本実施の形態の画面設計書自動生成装置500は、中間形式情報113を版管理することで、設計者の希望する版の中間形式情報113を抽出することが可能となる。そして、本実施の形態の画面設計書自動生成装置500は、設計者の希望する版の中間形式情報113に対応した画面設計書112とソースコード110とを自動生成することが可能である。
【0113】
まとめると、実施の形態3においては、開発者が入力した表示画面(プログラム画面)に関する情報の中間形式情報113を版管理する版管理部106を備えた画面設計書自動生成装置500について説明した。
【0114】
最後に、実施の形態1〜3に示した画面設計書自動生成装置500のハードウェア構成例について説明する。
図24は、本実施の形態に示した画面設計書自動生成装置500のハードウェア資源の一例を示す図である。
なお、図24の構成は、あくまでも画面設計書自動生成装置500のハードウェア構成の一例を示すものであり、画面設計書自動生成装置500のハードウェア構成は図24に記載の構成に限らず、他の構成であってもよい。
【0115】
図24において、画面設計書自動生成装置500は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)と接続していてもよい。また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
本実施の形態で説明したリポジトリ107、ソースコード記憶部121は、磁気ディスク装置920等により実現される。
通信ボード915、キーボード902、マウス903、FDD904などは、入力装置の一例である。
本実施の形態で説明した画面設計書自動生成装置500の入力装置は、例えばキーボード902やマウス903により実現される。
また、通信ボード915、表示装置901などは、出力装置の一例である。
本実施の形態で説明した画面設計書自動生成装置500の表示装置は、例えば表示装置901により実現される。
【0116】
通信ボード915は、ネットワークに接続されている。
例えば、ネットワークは、LAN、インターネットの他、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などでも構わない。
【0117】
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
【0118】
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
【0119】
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
画面設計書自動生成装置500の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
【0120】
上記プログラム群923には、本実施の形態の説明において「〜部」(「〜記憶部」以外、以下同様)として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
【0121】
ファイル群924には、本実施の形態の説明において、「〜の判断」、「〜の計算」、「〜の比較」、「〜の照合」、「〜の参照」、「〜の検索」、「〜の抽出」、「〜の検査」、「〜の生成」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の入力」、「〜の受信」、「〜の判定」、「〜の定義」、「〜の算出」、「〜の更新」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶されている。
「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示・制御・判定・識別・検知・判別・選択・算出・導出・更新・生成・取得・通知・指示・判断・区別などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示・制御・判定・識別・検知・判別・選択・算出・導出・更新・生成・取得・通知・指示・判断・区別などのCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、本実施の形態で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【0122】
また、本実施の形態の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、本実施の形態で説明したフローチャートに示すステップ、手順、処理により、本発明に係る情報処理方法を実現することができる。
また、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、本実施の形態の「〜部」としてコンピュータを機能させるものである。あるいは、本実施の形態の「〜部」の手順や方法をコンピュータに実行させるものである。
【0123】
このように、本実施の形態に示す画面設計書自動生成装置500は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【0124】
100 入力部、101 中間形式変換部、102 設計書生成部、103 ソースコード生成部、106 版管理部、107 リポジトリ、108 中間形式反映部、109 差分抽出部、110 ソースコード、112 画面設計書、113 中間形式情報、120 ソースコード編集部、121 ソースコード記憶部、122 変更情報生成部、500 画面設計書自動生成装置、901 表示装置、902 キーボード、903 マウス、904 FDD、905 コンパクトディスク装置、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 オペレーティングシステム、922 ウィンドウシステム、923 プログラム群、924 ファイル群、1121 画面一覧、1122 画面遷移図、1123 画面レイアウト、1124 画面入出力項目。

【特許請求の範囲】
【請求項1】
表示データの仕様が示される仕様情報を生成する仕様情報生成部と、
前記表示データのソースコードを生成するソースコード生成部と
を備え、
前記仕様情報生成部と前記ソースコード生成部は、
共通の情報を用いて仕様情報とソースコードとを生成することを特徴とする情報処理装置。
【請求項2】
前記情報処理装置は、更に、
前記ソースコードの生成に用いられるソースコード生成用情報が含まれる情報をベース情報として入力する入力部を備え、
前記仕様情報生成部は、
前記入力部により入力されたベース情報を用いて、前記仕様情報を生成し、
前記ソースコード生成部は、
前記ベース情報に含まれる前記ソースコード生成用情報を用いて、前記ソースコードを生成することを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記入力部は、
複数の要素ブロックから構成される情報をベース情報として入力し、
前記ソースコード生成部は、
前記入力部により入力されたベース情報の複数の要素ブロックの内、ソースコード生成用情報を構成するソースコード要素ブロックを抽出し、抽出したソースコード要素ブロックを用いて、ソースコードを生成し、
前記情報処理装置は、更に、
前記ソースコード生成部により生成されたソースコードにおいて変更が生じた場合に、変更前のソースコードと変更後のソースコードとの間の差異を抽出し、抽出した差異に対応するソースコード要素ブロックを特定する要素ブロック特定部と、
前記要素ブロック特定部により特定されたソースコード要素ブロックを、前記変更前のソースコードと前記変更後のソースコードとの差異に基づいて変更する要素ブロック変更部と、
前記要素ブロック変更部により変更されたソースコード要素ブロックを用いてベース情報を変更するベース情報変更部と
を備え、
前記仕様情報生成部は、
前記ベース情報変更部により変更されたベース情報を用いて仕様情報を生成することを特徴とする請求項2記載の情報処理装置。
【請求項4】
前記情報処理装置は、更に、
前記入力部により入力されたベース情報を最初のベース情報として記憶し、更に、前記ベース情報変更部によりベース情報が変更される度に、変更されたベース情報を変更された順番に対応付けて記憶するベース情報記憶部と、
所定の順番に対応するベース情報を前記ベース情報記憶部から抽出するベース情報抽出部と
を備え、
前記仕様情報生成部は、
前記ベース情報抽出部により抽出されたベース情報を用いて仕様情報を生成し、
前記ソースコード生成部は、
前記ベース情報抽出部により抽出されたベース情報に含まれるソースコード生成用情報を用いてソースコードを生成することを特徴とする請求項3記載の情報処理装置。
【請求項5】
前記入力部は、
複数種の仕様情報の生成に用いられる複数の仕様生成用情報が含まれるベース情報を入力し、
前記仕様情報生成部は、
前記複数種の仕様情報毎に、それぞれの仕様情報の生成に用いられる仕様生成用情報を用いて、それぞれの仕様情報を生成することを特徴とする請求項2〜4いずれか記載の情報処理装置。
【請求項6】
コンピュータが、表示データの仕様が示される仕様情報を生成する仕様情報生成ステップと、
前記コンピュータが、前記表示データのソースコードを生成するソースコード生成ステップと
を備え、
前記仕様情報生成ステップと前記ソースコード生成ステップにおいて、
前記コンピュータが、共通の情報を用いて仕様情報とソースコードとを生成することを特徴とする情報処理方法。
【請求項7】
表示データの仕様が示される仕様情報を生成する仕様情報生成ステップと、
前記表示データのソースコードを生成するソースコード生成ステップと
をコンピュータに実行させ、
前記仕様情報生成ステップと前記ソースコード生成ステップにおいて、
前記コンピュータに、共通の情報を用いて仕様情報とソースコードとを生成させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2013−50868(P2013−50868A)
【公開日】平成25年3月14日(2013.3.14)
【国際特許分類】
【出願番号】特願2011−188843(P2011−188843)
【出願日】平成23年8月31日(2011.8.31)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】