以下、本発明の実施形態におけるソフトウェア開発プログラム及びソフトウェア開発方法について、図面を参照して説明する。
先ず、図1を用いて、ソフトウェア開発プログラムが動作するシステムの構成を説明する。図1は、実施形態におけるソフトウェア開発プログラムが動作するシステムのハードウェア構成の一例を示したブロック図である。
図1において、ソフトウェア開発プログラムが動作するシステム(以下、「動作システム」と省略する。)は、第1の機器1及び第2の機器2を含む。第1の機器1及び第2の機器2は、ネットワーク9を介して接続される。ネットワーク9は、有線又は無線を問わず、第1の機器1と第2の機器2が通信可能に接続されるものであればよい。ネットワーク9には、アクセスポイント、ルータ、モデム等の機器を含んでいてもよい。第1の機器1と第2の機器2の通信は、例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)を用いて行われる。
第1の機器1は、制御部11、記憶部12、操作入力部13、表示部14、媒体入出力部15、及び通信部16を有する。
制御部11は、第1の機器1において、記憶部12、操作入力部13、表示部14、媒体入出力部15、及び通信部16を制御する。制御部11は、例えば、CPU(Central Processing Unit)である。
記憶部12は、制御部11によって実行されるプログラム及びデータを読出し可能に記憶する。記憶部12は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、又はハードディスクドライブである。後述するソフトウェア開発プログラムは、記憶部12に記憶されて、制御部11によって実行される。
操作入力部13は、操作者の操作入力によって第1の機器1にデータの入力を行う入力デバイスである。操作入力部13は、例えば、マウス、キーボード、バーコードリーダ、カメラ等である。
表示部14は、制御部11から出力される表示データを表示画面に表示する表示デバイスである。表示部14は、例えば、液晶ディスプレイである。表示部14は、所定の解像度(画素数)、アスペクト比、最大表示色等の仕様が決められている。なお、図1では、操作入力部13と表示部14を別の構成として説明したが、例えば、タッチパネル等、操作入力と表示を行うものであってもよい。
媒体入出力部15は、記録媒体に記録されたデータの読出し、又は記録媒体へのデータの記録を行うデバイスである。媒体入出力部15は、例えば、光ディスクドライブ、シリアルバスインターフェイス、メモリカードリーダ/ライタ等である。なお、後述するソフトウェア開発プログラムは記録媒体に記録することができ、記録媒体に記録されたソフトウェア開発プログラムは、媒体入出力部15によって読み出され、制御部11によって実行することができる。
通信部16は、ネットワーク9を介して通信を行うための通信デバイスである。通信部16は、例えば、ネットワークインターフェイスコントローラや無線通信インターフェイスである。第1の機器1は、通信部16を介して、第2の機器2、又はサービスサーバ3と通信する。
第2の機器2は、第1の機器1と同様に、制御部21、記憶部22、操作入力部23、表示部24、媒体入出力部25、及び通信部26を有する。第2の機器2のこれらの構成は、第1の機器1の、制御部11、記憶部12、操作入力部13、表示部14、媒体入出力部15、及び通信部16の構成と同様であるので説明を省略する。
第2の機器2は、第1の機器と動作環境の異なる機器である。例えば、第1の機器1がデスクトップPCであったとすると、第2の機器2は、ノートPC、タブレットPC、スマートフォン、スマートウォッチ等である。動作環境とは、例えば、OSの仕様、表示部の仕様、操作入力部の仕様等である。OSが異なれば、OS上で動作するアプリにおいて使用できるコマンド等が異なる。また、表示部の仕様が異なれば、表示で表示できる表示画面の解像度等が異なる。操作入力部の仕様が異なれば、表示画面に対するスクロール、拡大縮小、スライダー操作等の操作方法が異なる。従って、異なる機器で動作させるアプリを開発する際には、それぞれの動作環境に応じた表示データの生成等が必要となる。
図1の動作システムにおいては、第1の機器1と第2の機器2が1台ずつの場合を図示したが、動作システムにおいて、動作環境が第1の機器と異なる複数の第2の機器を含むものであってもよい。例えば、操作システムは、第1の機器として動作環境AのデスクトップPC1台を含み、第2の機器として、動作環境BのタブレットPCが1台、動作環境CのタブレットPCが2台、動作環境Dのスマートフォンが3台、動作環境Eのスマートフォンが4台含むものであってもよい(動作環境のA〜Eの符号は異なる動作環境であることを示す符号であり、特定の動作環境を示すものではない)。
サービスサーバ3は、後述するソフトウェア開発プログラムを提供するサーバである。サービスサーバ3は、例えばインターネットに接続されたWebサービスサーバである。本実施形態では、第1の機器においてソフトウェア開発プログラムを動作させる場合を説明するが、第1の機器において動作させるソフトウェア開発プログラムの一部又は全部をサービスサーバ3で動作させてソフトウェアを開発するようにしてもよい。すなわち、本実施形態において説明するソフトウェア開発方法は、プログラムが動作する機器を限定するものではない。
次に、図2を用いて、第1の機器で動作するソフトウェア開発プログラムの構成を説明する。図2は、実施形態における第1の機器で動作するソフトウェア開発プログラムの構成を示したブロック図である。図2に示すソフトウェア開発プログラムは、図1で説明した制御部11によって実行される。
なお、図2及び図3で説明するソフトウェア開発プログラムの構成は、それぞれの機能を便宜的に1つの機能ブロックで表現したものであり、ソフトウェア開発プログラムのファイル構成やコンパイルの単位を限定するものではない。また、それぞれの機能を有する限り、複数の機能を1つの機能ブロックとして表現したり、1つの機能を複数の機能ブロックとして表現したりしてもよい。
図2において、第1の機器10で動作するソフトウェア開発プログラムは、プログラム部100、パーツ120、第1の機器用ライブラリ130、及びデータベース140を含む。プログラム部100は、パーツ選択部101、パーツ配置部102、属性情報選択部103、設定項目選択部104、説明文章生成部1041、属性情報登録部105、表示データ生成部106、描画データ生成部107、データベース登録部108、設計書生成部109、遷移図生成部110、通信設定部111、及び送信部112を含む。パーツ120は、ボタン121、ラベル122、表123、テキスト124、チェックボックス125、ラジオボタン126、スライダー127、コンボボックス128、及びカレンダー129を含む。
パーツ選択部101は、アプリの実行画面に表示させる予め用意されたパーツを、図1の表示部14に、第1の機器の操作者が選択可能に表示する。操作者は、表示されたパーツの中から1のパーツを選択する。アプリの実行画面に表示させるパーツとは、パーツ120に含まれる、ボタン121、ラベル122、表123、テキスト124、チェックボックス125、ラジオボタン126、スライダー127、コンボボックス128、及びカレンダー129を選択可能に表示した、例えばアイコンボタンである。操作者は、表示されたパーツのアイコンボタンをマウスでクリックする等により選択することによりアプリの実行画面に表示させるパーツを選択することができる。
パーツ配置部102は、パーツ選択部101によって選択可能に表示されたパーツが選択されたときに、選択されたパーツのアプリの実行画面における配置を設定可能にする。パーツ配置部102は、表示部14にパーツを配置可能な配置画面を表示する。操作者は、配置画面の所望の位置にパーツを配置する。操作者は配置画面を確認しながらパーツを配置する位置、パーツの大きさ等の形状、パーツの色等の配置情報を決定することができる。パーツ配置部102は、配置されたパーツの配置情報を図示しない設定ファイルに保存して登録する。
属性情報選択部103は、パーツ毎に割り当てられる、パーツの属性を示す属性情報を、表示部14に選択可能に表示する。属性情報とは、選択されたパーツの処理内容を設定する情報である。属性情報は、例えば、関数処理、パーツの表示状態を制御するコントロール情報の入力処理、実行画面の遷移の設定、ダイアログの表示処理、メッセージの表示、データベース操作、ネットワークを用いた通信処理、ファイル操作、デバイス操作、プッシュ通知の設定等の処理内容を設定する情報である。従来のGUIの設計においては、これら属性情報の設定は、コマンド等を熟知したプログラミングのスキルを持つ者が行う必要があった。属性情報選択部103は、操作者が以前使用した属性情報の中から属性情報を選択できるようにしてもよい。属性情報選択部103は、属性情報を、例えば、一覧形式、プルダウン形式等で選択可能に表示する。操作者は表示された属性情報を1又は複数選択することができる。例えば、一つのパーツに対して複数の動作や処理を割り当てる場合、操作者は表示された属性情報を複数選択することにより、パーツに対して複数の動作等を割り当てることができる。属性情報選択部103は、属性情報を選択可能に表示することにより、コマンド等を熟知していない操作者においてもGUIの設計を容易にすることを可能にする。なお、表示部14に表示された属性情報の設定の例は図11等を用いて後述する。
設定項目選択部104は、属性情報選択部で選択された属性情報に応じた属性情報の設定項目を表示して、設定項目の設定値を選択可能に表示する。属性情報は、上述の通り、例えば、関数処理、パーツの表示状態を制御するコントロール情報の入力処理、実行画面の遷移の設定、ダイアログの表示処理、メッセージの表示、データベース操作、ネットワークを用いた通信処理、ファイル操作、デバイス操作、プッシュ通知の設定等、様々な処理内容を設定する情報である。従って、それぞれの属性情報は、属性情報毎に設定する設定項目が異なる。設定項目選択部104は、一の属性情報が選択されたときに、選択された属性情報の設定に必要な設定項目を表示することにより、GUIの設計におけるパーツの処理設計を容易にすることができる。設定項目選択部104は、設定項目の設定値を、例えばプルダウン形式で選択可能に表示する。設定値の入力はキーボード等によって行われてもよい。なお、表示部14に表示された選択項目の設定の例についても図11等を用いて後述する。
説明文章生成部1041は、選択された属性情報と選択されて設定値が入力された設定項目とに基づき、属性情報の説明を自然言語で表した説明文章を生成する。属性情報の選択と設定項目の入力によって、パーツの処理内容(処理設計)が決定される。設定項目選択部104は、例えば、その処理内容における処理対象と処理内容を自然言語で表す。本実施形態における自然言語とは人が日常的に使用する言語であって、プログラムのスキルを有する者が理解できるプログラム言語と対比されるものである。例えば、プログラム言語においては、オペレータとオペランドによって動作を表すことができるが、自然言語の説明文章では、「カメラを起動して、撮影結果を取得する。」、「「Equipment」画面の「lblPict」の内容に[#1]の結果をセットする。」等の自然言語によって処理内容を説明することができる。説明文章生成部1041は、設定項目に設定される設定値が変更されるとその変更に応じた説明文章を生成する。
本実施形態では、日本語による説明文章を生成する場合を例示するが、言語を日本語以外の他の言語切り換えて説明文章を生成するようにしてもよい。説明文章生成部1041は、生成した説明文章を、表示部14に表示する。
属性情報登録部105は、属性項目が設定された属性情報を登録する。属性情報には生成された説明文章が対応付けられて登録される。属性情報登録部105は、属性情報を、例えば図示しない設定ファイルに保存して登録する。属性情報登録部105は、操作者の明示的な操作によって属性情報を登録する。
表示データ生成部106は、配置が設定されたパーツと登録された属性情報とを対応付けたアプリの実行画面の表示データを生成する。表示データ生成部106は、パーツを配置した配置画面の座標に基づき、配置されたパーツを座標データで表したベクタ画像(ベクタデータで表した画像)を生成する。ベクタデータは、例えば直線を始点の座標データと終点の座標データで表したり、曲線を始点の座標データと曲線の数式で表したりする。ベクタデータには、線の太さ、色、線に囲まれた面、線に囲まれた面の色等を含んでいてもよい。ベクタ画像は、画像を画素の集合で表したラスタ画像(ラスタデータで表された画像)に変換されて表示部14に表示されたり、図示しない印字部から印字されたりする。ベクタ画像からラスタ画像への変換をラスタライズという(レンダリングといってもよい。)。本実施形態では、表示データ生成部106で生成されたベクタ画像である表示データを描画データ生成部107でラスタライズしてラスタ画像である描画データを生成するものとする。なお、本実施形態においては、ラスタライズする画像は2次元であっても3次元であってもよい。また、ラスタライズする画像は静止画であっても動画であってもよい。
表示データ生成部106は、実行画面を操作したときの操作結果を表示データとすることができる。例えば、実行画面が遷移した場合、遷移した実行画面を表示する表示データを生成する。表示データ生成部106は、実行画面に変化が生じたときに変化の差分を表示データとして生成するようにしてもよい。
表示データ生成部106が対応付ける、パーツ配置部102によるパーツの配置の設定と、属性情報登録部105による属性情報の登録とは非同期に行うことができる。例えば、設定項目が選択された属性情報を予め登録しておき、配置された複数のパーツに予め登録された一の属性情報を対応付けるようにしてもよい。パーツの配置の設定と属性情報の登録とを非同期に行うようにすることにより、パーツと属性情報の対応付けが容易になる。表示データ生成部106が生成する表示データは、後述する第2の機器においてアプリの実行画面を表示するときに用いられる。すなわち、表示データ生成部106が生成する表示データは、第1の機器10において表示されるアプリの実行画面の生成と第2の機器20において表示されるアプリの実行画面の生成に共用される。
描画データ生成部107は、表示データ生成部106で生成された表示データに基づき、第1の機器用ライブラリ130を用いて、描画データを生成する。描画データは、表示部14に表示するアプリの実行画面を生成するためのラスタデータである。第1の機器用ライブラリ130は、表示部14の仕様を示すライブラリである。描画データ生成部107は、第1の機器用ライブラリ130をリンクすることによって、表示部14に表示するアプリの実行画面を生成することができる。第1の機器用ライブラリ130は、例えば、表示部14の解像度、最大表示色、言語の仕様、文字の表示仕様、静止画像の表示仕様、動画像の表示仕様等の表示仕様を含んでいてもよい。また、第1の機器用ライブラリ130は、表示仕様以外の動作環境を含んでいてもよい。
描画データ生成部107は、生成した描画データを、ソフトウェア開発プログラムが動作する図示しないOSに出力する。OSに対する描画データの出力は、例えば、OSが提供する描画用のAPI(Application Programming Interface)を呼び出すことにより行うことができる。描画データを取得したOSは、OSのデバイスドライバを介して表示部14に表示画面を表示する。
データベース登録部108は、データベース140に登録するデータを登録する。データベース登録部108は、例えば、CSV(Comma-Separated Values)形式のデータファイルや表計算ソフトウェアで作成されたファイルを取り込んでデータベース140に登録する。データベース140に登録されたデータは、例えば、設定項目選択部104によって直接利用できるようにする。設定項目選択部104は、データベース140に予め登録されたデータを直接読み出して、設定項目の設定値として選択可能に表示してもよい。また、設定項目選択部104は、設定項目で設定された設定値をデータベースに直接登録してもよい。データベースのデータを読み出したりデータベースにデータを書き込んだりするデータベース操作には、データベース操作用のコマンド等を熟知していることが要求される場合があるが、設定項目選択部104の設定項目でデータベースのデータの読み書きを設定できるので、データベース操作のコマンド等を熟知していない操作者であっても、データベース操作を伴うGUIの設計が可能となる。
設計書生成部109は、アプリの実行画面に関する画面設計書を自動的に生成する。アプリの実行画面に関する仕様書には、実行画面に配置されたパーツと、そのパーツの属性情報(説明文章を含む)が対応付けられる。また、設計書生成部109は、データベース登録部108で登録されるデータ項目と、属性情報による処理の内容とを対比させたDB設計書を自動的に生成する。設計書生成部109は、設計書のフォーマットを定めたテンプレートを複数有することができる。設計書生成部109は、操作者がフォーマットを指定できるようにして、指定されたフォーマットで設計書を生成してもよい。設計書生成部109は、生成した設計書を表示部14に表示する。設計書生成部109は、生成した設計書の、図示しないプリンタへの出力、図示しない他のコンピュータへの送信等の処理を実行してもよい。
遷移図生成部110は、アプリの実行画面の遷移を示す遷移図を生成する。遷移図生成部110は、パーツ配置部102によって登録された実行画面同士を、属性情報登録部105において登録された実行画面の遷移の設定に基づき紐付けて、実行画面の遷移を示す遷移図を生成する。実行画面同士の紐付けは、例えば表示画面の遷移方向を示す矢印による直線を実行画面間に示すことによって行うことができる。遷移図生成部110は、実行画面の遷移条件を遷移図に示してもよい。例えば、遷移先の実行画面が複数ある場合、遷移図生成部110は、それぞれの実行画面に遷移する条件を遷移図に示してもよい。遷移図生成部110は、生成した遷移図を表示部14に表示する。遷移図生成部110は、生成した遷移図の、図示しないプリンタへの出力、図示しない他のコンピュータへの送信等の処理を実行してもよい。
通信設定部111は、第2の機器との通信方法を設定可能にする。通信設定部111において設定される通信方法は、図1の通信部16を用いた通信方法である。通信設定部111は、例えばIPアドレスのポート番号を設定可能に表示して、設定されたポートに対して第2の機器からの接続を可能にする。なお、通信設定部111は、近距離無線通信における通信方法の設定、赤外線通信における通信方法の設定等を行うものであってもよい。
送信部112は、通信設定部111において設定された通信方法に基づき、表示データ生成部106で生成された表示データを第2の機器に送信する。送信部112が表示データを送信するタイミングは任意である。例えば、送信部112は表示データ生成部で表示データが生成される度に表示データを送信することにより、生成された生成データに基づく実行画面をリアルタイムで送信することができる。なお、送信部112による表示データの送信は、送信部112が通信リクエストを開始して表示データを送信するプッシュ型送信を行うものであっても、第2の機器からのリクエストに応じて表示データを送信するプル型送信を行うものであってもよい。
次に、図3を用いて、第2の機器で動作するソフトウェア開発プログラムの構成を説明する。図3は、実施形態における第2の機器で動作するソフトウェア開発プログラムの構成を示したブロック図である。図3に示すソフトウェア開発プログラムは、図1で説明した制御部21によって実行される。
図3において、第2の機器20で動作するソフトウェア開発プログラムは、通信設定部201、表示データ受信部202、描画データ生成部203、及び第2の機器用ライブラリ204を含む。
通信設定部201は、第1の機器10との通信方法を設定可能にする。通信設定部201において設定される通信方法は、図1の通信部26を用いた通信方法である。通信設定部201は、通信設定部111と同様に、例えばIPアドレスのポート番号を設定可能に表示して、設定されたポートに対して第1の機器10への接続を可能にする。なお、通信設定部201は通信設定部111に対応して、近距離無線通信における通信方法の設定、赤外線通信における通信方法の設定等を行うものであってもよい。
表示データ受信部202は、通信設定部201において設定された通信方法に基づき、第1の機器10で生成された表示データを受信する。表示データ受信部202は、例えば、第1の機器10の送信部112から送信する表示データ有無の情報を取得して、送信する表示データがあるときに表示データを受信するようにしてもよい。
描画データ生成部203は、表示データ受信部202から取得した表示データに基づき、第2の機器用ライブラリ204を用いて、描画データを生成する。描画データは、表示部24に表示するアプリの実行画面を生成するためのラスタデータである。第2の機器用ライブラリ204は、表示部24の仕様を示すライブラリである。描画データ生成部203は、第2の機器用ライブラリ204をリンクすることによって、表示部24に表示するアプリの実行画面を生成することができる。第2の機器用ライブラリ204は、例えば、表示部24の解像度、最大表示色、言語の仕様、文字の表示仕様、静止画像の表示仕様、動画像の表示仕様等の表示仕様を含んでいてもよい。また、第2の機器用ライブラリ204は、表示仕様以外の動作環境を含んでいてもよい。
描画データ生成部203は、生成した描画データを、ソフトウェア開発プログラムが動作する図示しないOSに出力する。OSに対する描画データの出力は、例えば、OSが提供する描画用のAPIを呼び出すことにより行うことができる。描画データを取得したOSは、OSのデバイスドライバを介して表示部24に表示画面を表示する。
第2の機器用ライブラリ204は、例えば、第2の機器20がタブレットPCである場合は、タブレットPCの動作環境に対応したライブラリが用意され、第2の機器20がスマートフォンである場合はスマートフォンの動作環境に対応したライブラリが用意される。従って、表示データを生成する第1の機器10の表示データ生成部106は、表示データの送信先を意識しないで異なる種類の第2の機器(マルチプラットフォーム)で共用できる表示データを生成することができる。描画データ生成部203は、取得した表示データに基づきアプリの実行画面を生成することができるので、第1の機器10で生成された表示データをリアルタイムで確認することが可能となる。
次に、図4を用いて、ソフトウェア開発プログラムの第1の機器における動作を説明する。図4は、本実施形態におけるソフトウェア開発プログラムの第1の機器における動作を示したフローチャートである。図4に示すフローチャートは、図1で説明した制御部11によって実行される。
図4において、制御部11は、画面作成アイコンが選択状態であるか否かを判断する(ステップS11)。画面作成アイコンは、アプリの実行画面を作成する画面作成処理に処理を切り換えるアイコンである。画面作成アイコンは、表示部14においてソフトウェア開発プログラムの表示画面に表示されて操作者の操作によって選択される処理切換用のアイコンの1つである。画面作成アイコンが選択されて選択状態になると、パーツ配置処理、及び属性情報選択処理の画面作成処理を実行することができる。なお、処理切換用のアイコンには、後述する、パーツの処理内容を選択するための属性情報選択処理と設定項目選択処理を行うための処理設計アイコン、データベース登録処理を行うためのデータベースアイコンがある。処理切換用のアイコンは、いずれかのアイコンが選択されて選択状態となると他のアイコンが選択状態から非選択状態になり、処理が切換わる。
画面作成アイコンが選択状態である場合(ステップS11:YES)、制御部11は、パーツ選択を可能に表示するパーツ選択処理を実行する(ステップS12)。パーツ選択処理は、ソフトウェア開発プログラムの表示画面に表示されるパーツを操作者が選択できるように表示する処理である。パーツには図2で説明したように、ボタン121、ラベル122、表123、テキスト124、チェックボックス125、ラジオボタン126、スライダー127、コンボボックス128、及びカレンダー129が含まれている。これらのパーツのアイコンはソフトウェア開発プログラムの表示画面に選択可能に表示される。
操作者がいずれかのパーツを選択すると、制御部11は、パーツ配置処理を実行する(ステップS13)。パーツ配置処理は、操作者に対して選択されたパーツのアプリの実行画面における配置を設定可能にする処理である。操作者は、パーツを配置可能な配置画面を確認しながら、パーツを配置する位置、パーツの大きさ等の形状、パーツの色等の配置情報を決定することができる。配置されたパーツの配置情報を図示しない設定ファイルに保存して登録する(ステップS14)。ステップS14の処理を実行した後、制御部11は、ステップS11の処理を再び実行する。
なお、ステップS12〜ステップS14の処理は画面作成の処理の手順を逐次処理として示したものであり、それぞれのステップの処理においてキャンセル等の操作があった場合、制御部11は、そのステップの処理を中断して、ステップS11の処理を再び実行する。
一方、ステップS11において、画面作成アイコンが選択状態でない場合(ステップS11:NO)、制御部11は、処理設計アイコンが選択状態であるか否かを判断する(ステップS21)。処理設計アイコンは、パーツの処理内容を設計する処理設計に処理を切り換えるアイコンである。
処理設計アイコンが選択状態である場合(ステップS21:YES)、制御部11は、属性情報選択処理を実行する(ステップS22)。属性情報選択処理は操作者に対して属性情報を選択可能に表示する処理である。操作者は、表示された属性情報の中から一つを選択する。属性情報は、パーツの処理内容を定める情報である。属性情報は、上述の通り、例えば、関数処理、パーツの表示状態を制御するコントロール情報の入力処理、実行画面の遷移の設定等の処理内容を設定する情報である。
属性情報が選択されると、制御部11は、設定項目選択処理を実行する(ステップS23)。設定項目選択処理は作業者に対して属性情報の設定項目を選択可能に表示する処理である。作業者は表示された設定項目の中から一つを選択して設定値を入力する。設定値の入力は一覧表示等により表示された設定値の選択等により行われる。設定値の入力は、キーボード等により入力されてもよい。属性情報に設定項目が設定されるとパーツの処理内容(処理設計)が決定される。
設定項目に設定値が入力されると、制御部11は、説明文章生成処理を実行する(ステップS24)。制御部11は、選択された属性情報と選択されて設定値が入力された設定項目とに基づき、属性情報の説明を自然言語で表した説明文章を生成し、表示部14のソフトウェア開発プログラムの表示画面に表示する。ステップS24の処理を実行した後、制御部11は、設定項目に設定値が入力された属性情報を登録して(ステップS25)、ステップS11の処理を再び実行する。
なお、処理設計アイコンが選択状態である間(ステップS21:YES)は、属性情報の選択が変更された場合(ステップS22)、又は設定項目の設定値が変更された場合(ステップS23)、説明文章の表示は、属性情報の変更又は設定項目の設定値変更に基づき変更される(ステップS24)。
また、ステップS22〜ステップS25の処理はパーツの処理内容を設定する設定処理の手順を逐次処理として示したものであり、それぞれのステップの処理においてキャンセル等の操作があった場合、制御部11は、そのステップの処理を中断して、ステップS11の処理を再び実行する。
一方、処理設計アイコンが選択状態でない場合(ステップS21:NO)、制御部11は、表示データ生成処理を実行するか否かを判断する(ステップS31)。表示データ生成処理を実行するか否かは、操作者が配置が設定されたパーツと登録された属性情報との対応付けを行ったか否かで判断される。配置が設定されたパーツと登録された属性情報との対応付けは、例えば、作業者が、配置画面に配置された一のパーツを選択して、選択したパーツの属性情報の設定することにより行われる。
表示データ生成処理を実行すると判断した場合(ステップS31:YES)、制御部11は、表示データ生成処理を実行する(ステップS32)。表示データ生成処理は、配置が設定されたパーツと登録された属性情報との対応付けに基づき、アプリの実行画面の表示データを生成する処理である。
ステップS32の処理を実行後、制御部11は、描画データ生成処理を実行する(ステップS33)。描画データ生成処理は、ステップS32の処理において生成された表示データに基づき、第1の機器用ライブラリ130を用いて、表示部14に表示するアプリの実行画面を生成するためのラスタデータである描画データを生成する処理である。なお、本実施形態においては、ステップS32において表示データが生成された場合、ステップS33の描画データ生成処理が自動的に実行されるが、描画データ生成処理は、例えば、操作者の明示的な操作によって実行されるようにしてもよい。
ステップS33の処理を実行後、制御部11は、表示データ送信処理を実行する(ステップS34)。表示データ送信処理は、予め設定された通信方法においてステップS32で生成した表示データを第2の機器20に送信する処理である。ステップS34の処理を実行後、又は表示データ生成処理を実行しないと判断した場合(ステップS31:NO)、制御部11はステップS11の処理を再び実行する。
なお、ステップS32の処理で生成されてステップS34の処理で送信される表示データは、パーツの処理内容を示す属性情報を含まず、ステップS12〜ステップS14において作成された実行画面のデータを含むむのであってもよい。図4は、作成されたアプリの実行画面を第2の機器20でリアルタイムに表示させるものであるため、表示データにパーツの処理内容を含めないことによって送信するデータ量を削減することができる。
また、ステップS32〜ステップS34の処理は表示データ生成処理の手順を逐次処理として示したものであり、それぞれのステップの処理においてキャンセル等の操作があった場合、制御部11は、そのステップの処理を中断して、ステップS11の処理を再び実行する。
また、図4においては、後述するデータベース登録処理については説明しないが、データベース登録処理は、画面作成処理又は属性情報設定処理とは非同期で行うことができるものとする。データベース登録処理において登録したデータは、属性情報の設定項目の設定に用いることができる。
次に、図5を用いて、ソフトウェア開発プログラムの第2の機器における動作を説明する。図5は、本実施形態におけるソフトウェア開発プログラムの第2の機器における動作を示したフローチャートである。図5に示すフローチャートは、図1で説明した制御部21によって実行される。
図5において、制御部21は、表示データを受信したか否かを判断する(ステップS41)。表示データを受信したか否かは、図4のステップS34の処理において第1の機器が送信した表示データを図3の表示データ受信部202が受信したか否かによって判断される。
表示データを受信したと判断した場合(ステップS41:YES)、制御部21は、描画データ生成処理を実行する(ステップS42)。ステップS42の描画データ生成処理は、受信された表示データに基づき、第2の機器用ライブラリ204を用いて、表示部24に表示するアプリの実行画面を生成するためのラスタデータである描画データを生成する処理である。描画データ生成処理を実行することにより、第1の機器で生成された実行画面(表示データ)をリアルタイムで表示する。
ステップS42の処理を実行後、制御部21は、通信を終了するか否かを判断する(ステップS43)。通信処理の終了は第2の機器の操作者による明示的な操作が有ったか否かによって判断することができる。
通信を終了しないと判断した場合(ステップS43:NO)、制御部21は、ステップS41の処理を再び実行する。一方、通信を終了すると判断した場合(ステップS43:YES)、制御部21は、図5で示す処理を終了する。
なお、ステップS41の処理で受信した表示データにパーツの処理内容を示す属性情報が含まれていない場合は、ステップS42の処理において生成される描画データにもパーツの処理内容が含まれず、表示部24に表示される実行画面はパーツの操作等のできない表示のみの画面となる。一方、ステップS41の処理で受信した表示データにパーツの処理内容を示す属性情報が含まれている場合は、表示部24に表示される実行画面はパーツの操作等を行えるようにしてもよい。例えば、第2の機器20は、第1の機器10と通信中においては、第1の機器10の表示部14に表示されている実行画面をそのまま表示部24に表示するリアルタイムモニタとして動作して、第1の機器10との通信が切断された場合には表示部24に表示された実行画面においてパーツの処理内容に応じた操作を可能としてもよい。
次に、図6を用いて、ソフトウェア開発プログラムの第1の機器における実装について説明する。図6は、本実施形態におけるソフトウェア開発プログラムの第1の機器における実装を示した図である。
図6において、第1の機器1は、第1のデバイス51、第1のOS52、及びアプリ53のレイヤを含む。本実施形態におけるレイヤとは、第1の機器1の機能を抽象化して階層化したモデルである。
第1のデバイス51は、第1の機器1のハードウェアのレイヤである。図1で説明した表示部14等は第1のデバイス51に含まれる。例えば、第1の機器1がPCである場合、ノートPCである場合、タブレットPCである場合、スマートフォンである場合、それぞれの機器のハードウェア構成が異なる。第1のデバイス51は、ハードウェア構成によって異なるレイヤを示している。すなわち、第1のデバイス51は、図7で後述する第2のデバイス61とはハードウェア構成が異なることを示している。なお、第1のデバイス51は、ハードウェアとして説明したが、それぞれのハードウェアを制御するコントローラであってもよい。
第1のOS52は、第1の機器1のOSを含むレイヤである。第1のOS52は、第1のOS52の上で動作するアプリ53から関数コール(例えば、システムコール)を受け付けて第1のデバイス51を利用可能にするAPIを提供する。第1のOS52のAPIは、第1のデバイス51の構成の違いを吸収して、アプリ53を動作させることができる。第1のOS52は、図7で後述する第2のOSとは異なるOSであることを示している。第1のOS52は、第1のデバイスを制御するためのデバイスドライバを含んでいてもよい。また、第1のOS52は、アプリ53に対して標準ライブラリの関数コールを可能にするAPIを提供してもよい。
アプリ53は、第1のOS52の上で動作するアプリのレイヤである。図6においては、以下に説明する、ネイティブアプリ、Webアプリ、VM(Virtual Machine:仮想マシン)アプリの3つのタイプのアプリが第1のOS52の上で動作する場合を説明する。
[ネイティブアプリ]
ネイティブアプリは、第1のOS用表示処理501、デバイスエンジン502、アプリケーションプラットフォーム503、及びアプリケーションロジック504を含む。本実施形態におけるソフトウェア開発プログラムは、ネイティブアプリとして実装される。
第1のOS用表示処理501は、デバイスエンジン502に対して、OS52が提供する表示処理に関するAPIの違いを吸収して利用可能とするAPIブリッジ(APIの変換機能)を提供する。例えば、実行画面に表示されたパーツに対する操作(例えば、ボタン押下、ラジオボタン選択等のタッチイベント)は、OS毎にAPIが異なる。第1のOS用表示処理501は、第1のOS52のAPIに適応したAPIブリッジを提供することで、デバイスエンジン502をOS非依存で動作させることができる。
デバイスエンジン502は、アプリケーションプラットフォーム503から指示された実行画面の描画とパーツの処理内容を解釈して、第1のOS用表示処理501に対して実行画面の描画及びパーツの処理内容に関する関数コールを行う。デバイスエンジン502は、アプリケーションプラットフォーム503から入力されたベクタ画像である表示データをラスタライズして、ラスタ画像である描画データを生成する。すなわち、図2で説明した描画データ生成部107は、デバイスエンジン502によって実現することができる。すなわち、デバイスエンジン502で実現される描画データ生成部107は、表示データに基づき、第1の機器用ライブラリ130を用いて、描画データを生成する。第1の機器用ライブラリ130は、デバイスエンジン502に含めてもることができる。デバイスエンジン502は、表示データをラスタライズする際に第1の機器用ライブラリ130に含まれる表示部14の解像度を参照し、表示部14の解像度に合わせて実行画面の横方向の長さ(解像度)と縦方向の長さ(解像度)を決定する。ラスタライズの差異の解像度の決定については図9を用いて後述する。
アプリケーションプラットフォーム503は、アプリケーションロジック504に含まれる表示データをデバイスエンジン502に処理させるためのライブラリを提供する。アプリケーションプラットフォーム503が提供するライブラリは、表示データの属性情報で設定された処理内容を実行するためのライブラリである。アプリケーションプラットフォーム503が提供するライブラリは、生成された表示データから共通的に利用される。属性情報で設定可能な処理内容の詳細は、図13又は図14において後述する。
なお、第1の機器1におけるアプリケーションプラットフォーム503には、図2で説明したパーツ選択部101、パーツ配置部102、属性情報選択部103、説明文章生成部1041、表示データ生成部106、設計書生成部109、遷移図生成部110、通信設定部111、送信部112、パーツ120、及びデータベース140の機能を含むものとする。すなわち、表示部14に表示されるGUI設計用の表示画面はアプリケーションプラットフォーム503によって生成されるものとする。
本実施形態では、第1のOS用表示処理501、デバイスエンジン502、アプリケーションプラットフォーム503、及びアプリケーションロジック504は、ネイティブアプリとして、例えばC言語で作成されて第1のOS52上で実行される。従って、生成した描画データの表示、処理内容の実行等の処理にあたっては、第1のOSの機能を関数コールによって直接利用できるため、処理速度を高速化することができる。
[Webアプリ]
Webアプリは、Webブラウザ511、及びHTML/Script512を含む。HTML/Script512は、HTML(HyperText Markup Language)又はScript(以下、「HTML等」という。)の記述を含む。Webブラウザ511は、HTML等の記述に従い、表示画面を生成する等の処理を実行することによりアプリとして機能する。HTML等は、例えばネットワークで接続されたサーバから提供するものであってもよい。Webアプリにおいては、HTML等の記述に基づきWebブラウザ511を介して第1のOSの機能を利用するため、表示されるアプリの実行画面はブラウザ毎に異なり、例えば、表示部14の表示画面から表示がはみ出たり、文字の配列が崩れる等、実行画面が正しく表示されない等のトラブルが発生する場合がある。また、Webブラウザ511の種類によって利用できる第1のOSの機能が異なる。従って、Webアプリの実行画面の表示や機能はブラウザ依存となる。また、表示画面の生成の速度や表示画面の切り換えの速度は、Webブラウザ511の表示性能に依存する。
[VMアプリ]
VMアプリは、仮想マシン531、及びアプリ522を含む。アプリ522は、仮想マシン531を介して第1のOSの機能を利用するため、仮想マシン531の種類によって利用できる第1のOSの機能が異なる。従って、VMアプリの実行画面の表示機能は仮想マシン依存となる。また、表示画面の生成の速度や表示画面の切り換えの速度は、仮想マシン531の表示性能に依存する。
ネイティブアプリは、上述の通り、WebアプリやVMアプリとは異なり、第1のOSの機能を直接利用するものであるため、本実施形態におけるソフトウェア開発プログラムで生成された描画データに基づく実行画面は、Webブラウザや仮想マシンの仕様に拘わらず所望の機能を実現することができる。なお、本実施形態では、ネイティブアプリをWebアプリまたはVMアプリと対比するために第1の機器1にWebブラウザ511及び仮想マシン521を実装してWebアプリとVMアプリを実行する場合を例示したが、第1の機器1においてWebアプリ又はVMアプリの実行は任意である。図7にいおける第2の機器においては、VMアプリを実行しない場合を例示している。
次に、図7を用いて、ソフトウェア開発プログラムの第2の機器における実装を説明する。図7は、本実施形態におけるソフトウェア開発プログラムの第2の機器における実装を示した図である。図7に示す第2の機器2のそれぞれの機能は、図6で説明した第1の機器1のそれぞれの機能に準ずる。以下の説明では、第2の機器2において第1の機器1と異なる部分を主に説明し、機能の同じ部分の説明は省略する。なお、図7において、第2の機器2は、第2のデバイス61、第2のOS62、及びアプリ63のレイヤを含む。第2の機器2は、第1の機器1にて実装されていたVMアプリは実装しないものとする。
第2のデバイス61は、第1のデバイスとは異なるデバイスであることを表しており、特定のデバイスを表すものではない。また、第2のOS62は、第1のOS52とは異なるOSであることを表しており、特定のOSを表すものではない。
第2のOS用表示処理601は、デバイスエンジン602に対して、OS62が提供する表示処理に関するAPIの違いを吸収して利用可能とするAPIブリッジを提供する。従って、デバイスエンジン602、アプリケーションプラットフォーム603、及びアプリケーションロジック604は、第1の機器1におけるデバイスエンジン502、アプリケーションプラットフォーム503、及びアプリケーションロジック504と同一の機能を実装することができる。すなわち、デバイスエンジン602、アプリケーションプラットフォーム603、及びアプリケーションロジック604はデバイス非依存かつOS非依存の実装が可能となる。なお、デバイスエンジン602は、第2の機器用ライブラリ204を利用して表示データをラスタライズする点において、第1の機器用ライブラリ130を利用して表示データをラスタライズするデバイスエンジン502と異なる。
なお、第2の機器2においては、図4で説明した第1の機器1で実行される画面作成処理、処理設計処理、及び表示データ生成処理については実行されない。従って、アプリケーションプラットフォーム603には、アプリケーションプラットフォーム503に含まれていた、パーツ選択部101、パーツ配置部102、属性情報選択部103、説明文章生成部1041、表示データ生成部106、設計書生成部109、遷移図生成部110、通信設定部111、送信部112、パーツ120、及びデータベース140の機能は含める必要がない。
次に、図8を用いて、ソフトウェア開発プログラムのGUI設計画面を説明する。図8は、本実施形態におけるソフトウェア開発プログラムのGUI設計画面を示した図である。
図8において、表示画面1000は、ファイルタブ1100、ホームタブ1101、画面設定タブ1102を持つ。ファイルタブ1100は、ファイル操作を行うためのタブである。ファイルタブ1100には、後述する実行画面の遷移図を生成するための処理、及び設計仕様書を生成するための処理を選択可能に表示する。ホームタブ1101は、以下に説明するGUI設計を行うメイン画面を表示するタブである。画面設定タブ1102は、画面の表示の詳細を設定するためのタブであり、説明を省略する。
ホームタブ1101は、画面作成アイコン1001、データベースアイコン1002及び処理設計アイコン1003を持つ。画面作成アイコン1001、データベースアイコン1002及び処理設計アイコン1003は、いずれかのアイコンを排他的に選択状態とする。図8は、画面作成アイコン1001が選択状態にされて、画面作成画面が表示されていることを示している。
画面作成画面には、パーツ選択アイコンが選択可能に表示される。画面作成画面には、パーツ選択アイコンとして、ボタン1201、ラベル1202、表1203、テキスト1204、チェック1205、ラジオ1206、スライダー1207、コンボ1208、及びカレンダー1209が表示されている。
ボタン1201は、アプリの実行画面に押下操作が可能なボタンパーツを配置するためのアイコンである。ボタンパーツは、押下したときの処理内容を属性情報として設定できる。
ラベル1202は、アプリの実行画面にラベルパーツを配置するためのアイコンである。ラベルパーツは実行画面に表示するテキストデータの表示内容を属性情報として設定できる。
表1203は、アプリの実行画面に表パーツを配置するためのアイコンである。表パーツは、表の入力項目等を属性情報として設定できる。
同様に、テキスト1204は、テキストパーツ(テキストボックス)を配置するためのアイコンであり、チェック1205は、チェックボックスパーツを配置するためのアイコンであり、ラジオ1206は、ラジオボタンパーツを配置するためのアイコンであり、スライダー1207は、スライダーパーツを配置するためのアイコンであり、コンボ1208は、コンボボックスパーツを配置するためのアイコンであり、さらに、カレンダー1209はカレンダーパーツを配置するためのアイコンである。操作者は、いずれかのパーツ選択アイコンを選択することにより、パーツを配置するためのコマンドを知らない場合であってもGUI設計が可能となる。
実行画面表示1301は、パーツが配置された実行画面を表示するための表示部である。図8には、表示データから生成された「製造業デモンストレーション」と題されたアプリの実行画面が表示されている。実行画面には、「ピッキング」、「通函チェック」、「ショップ配送」等のボタンパーツが配置されている。それぞれのボタンパーツにはボタンが押下されたときの処理内容が属性情報として設定されている。
小画面1302は、実行画面表示1301に表示される実行画面を縮小表示する。例えば、実行画面が複数ある場合、小画面1302は、複数の実行画面を縮小表示したアイコンを表示してもよい。
デバイス切断/デバイス待受1210は、第2の機器との通信を開始し又は切断するためのボタンである。デバイス待受を押下したときには、第2に機器から通信の接続を待ち受ける。すなわち、図2の通信設定部111で設定した通信方法によって第2の機器との通信を開始する。一方、デバイス切断を押下したときには、第2に機器との通信を切断する。
次に、図9を用いて、第1の機器で生成された表示データに基づき第2の機器に表示されるアプリの実行画面について説明する。図9は、本実施形態におけるソフトウェア開発プログラムによる第2の機器におけるアプリの実行画面を示した図である。図9(B)〜図9(D)は第2の機器2として例示する表示部の解像度が異なるスマートフォンにおける実行画面の表示例である。
図9(A)は、第2の機器20の表示データ受信部202で受信されてた表示データを示している。表示データは、横方向の長さをx、縦方向の長さをyとする解像度x:yのベクタデータである。デバイスエンジン602は、第2の機器2の表示部24の解像度に合わせて表示データを伸縮するラスタライズをして描画データを生成する。図9(B)〜図9(D)は、それぞれ表示部24の解像度が異なる、第2の機器2a、第2の機器2b、及び第2の機器2cにおいて描画データを伸縮するラスタライズをして実行画面を表示していることを示している。
図9(B)は、解像度x1:y1の第2の機器2aに合わせて、解像度x:yのベクタ画像を解像度x1:y1のラスタ画像にラスタライズした描画データを基に実行画面を表示していることを示している。図9(C)は、解像度x2:y2の第2の機器2bに合わせて、解像度x:yのベクタ画像を解像度x2:y2のラスタ画像にラスタライズした描画データを基に実行画面を表示していることを示している。図9(D)は、解像度x3:y3の第2の機器2cに合わせて、解像度x:yのベクタ画像を解像度x3:y3のラスタ画像にラスタライズした描画データを基に実行画面を表示していることを示している。すなわち、デバイスエンジン602は、解像度x:yの表示データに基づき、それぞれの表示部の解像度に応じて画像を伸縮(解像度を変換)したラスタライズを行うことにより、それぞれの機器の表示部に適した描画データを生成することが可能となる。
デバイスエンジン(デバイスエンジン601及びデバイスエンジン602)は、ラスタライズにおいて画像を伸縮して機器の表示部に適した解像度を適用するため、実行画面の形状と表示部の形状が一致する。従って、実行画面が表示部からはみ出たり、表示部に余白が生じたりすることがない。また、デバイスエンジンがOSの描画API(描画機能)を利用しないで描画データを生成するため、OSの負荷を軽減して実行画面の表示速度を向上させることができる。また、OSの描画APIを利用して解像度の異なる表示部の実行画面にパーツをそれぞれ描画する場合には、パーツ同士の干渉等が発生して実行画面の表示が崩れる場合がある。本実施形態では、描画データを伸縮して解像度を表示部の解像度に合わせるので、パーツ同士の干渉等の発生はない。
なお、本実施形態では、ラスタライズにおいて画像を伸縮して機器の表示部に適した解像度を適用するため、実行画面は機器の表示部によって縦横比が異なるものとなる。しかし、例えば、在庫管理、アンケート、スケジューラ、申請/承認等のワークフロー等の業務アプリにおいてはボタンやラベルを配置した実行画面が用いられるため、実行画面の縦横比は問題とならない。また、縦横比が問題となる実行画面においては、OSの描画APIを利用した実行画面をOSの種類に合わせて作成するようにしてもよい。
また、本実施形態では、デバイスエンジンが表示部の解像度に合わせてベクタ画像をラスタライズをして描画データの解像度を表示部に適合させる方法を説明したが、解像度を適合させる方法はこれに限定されない。例えば、ベクタ画像を表示部の解像度に適合するように変換してから、変換されたベクタ画像をラスタライズするようにしてもよい。また、所定の解像度でラスタライズした画像を改めて表示部の解像度に適合するように解像度を変換するようにしてもよい。いずれの場合においてもラスタライズと解像度の適合はネイティブアプリ側(本実施形態ではデバイスエンジン)で実行されるため、OSの負荷を軽減でき、実行画面の表示を高速化できる。また、本実施形態では表示データのラスタライズと解像度の適合をデバイスエンジンで実行する場合を説明したが、図示しないグラフィック用ハードウェアを実装してデバイスエンジンにおいてグラフィック用ハードウェアのAPIを利用するようにしてもよい。
図9(B)〜図9(D)に図示するスマートフォンの画面の左上部には、スマートフォンが第1の機器と通信して、アプリの実行画面の表示が同期していることを示す「同期」の文字が表示されている。すなわち、図9(B)〜図9(D)に示す実行画面は、図8で説明した実行画面表示1301に表示されるアプリの実行画面と同期していることを示す。第1の機器のソフトウェア開発プログラムで設計したGUIは、スマートフォンでリアルタイムにプレビューすることができる。なお、図9(B)〜図9(D)では、第2の機器として解像度の異なるスマートフォンを例示してアプリの実行画面を表示する場合を説明したが、第2の機器はタブレットPC、スマートウォッチ等、他の機器であってもよい。
次に、図10を用いて、画面作成アイコン1001が選択されたときに実行される画面作成の詳細を説明する。図10は、本実施形態におけるソフトウェア開発プログラムによる第1の機器における画面作成の詳細を示した図である。図10においては、図8で説明したアイコン等は同じ符号を付して説明を省略する。
図10において、実行画面表示1301には、表パーツa、ラベルパーツb、テキストパーツc、ボタンパーツd、及びテキストパーツeが配置されている。パーツの配置は、配置するパーツを選択して、選択したパーツを実行画面表示1301に配置する。表パーツaを配置するには、表1203のアイコンを選択する。ラベルパーツbを配置するには、ラベル1202のアイコンを選択する。テキストパーツc及びテキストパーツeを配置するには、テキスト1204のアイコンを選択する。
ボタンパーツdを配置するには、ボタン1201のアイコンを選択する。パーツの配置は、実行画面表示1301の1点をクリックして始点を指定し、ドラッグによって終点を指定することによって、パーツの位置及び形状(大きさ)を設定することができる。パーツの形状(大きさ)は、別途数値を指定することにより設定してもよい。図10に図示するグリッドを表示したときには、始点と終点をグリッド上に指定することができる。
それぞれのパーツには属性情報を設定することができる。ラベルパーツbは、「設備管理」のテキストが表示されるように属性情報が定義されている。テキストパーツcはテキストボックスを表示してテキストデータを入力可能にする属性情報が定義されている。ボタンパーツdは、カメラを起動して、撮影によって画像データを取得する属性情報が定義されている。表パーツaは、「設備名」と「写真」の表項目(フィールド)が属性情報として定義されている。表パーツaの「設備名」の表項目には、テキストパーツcのテキストボックスに入力されるテキストデータが入力されるように属性情報が定義されている。また、表パーツaの「写真」の表項目には、ボタンパーツdの操作によって取得された画像データが入力されるように属性情報が定義されている。
次に、図11及び図12を用いて、属性情報の設定方法について説明する。図11及び図12は、本実施形態におけるソフトウェア開発プログラムによる第1の機器における処理設計の詳細を示した図である。図11及び図12の表示画面は、図10の処理設計アイコン1003を選択したときに表示される。
図11において、処理設計の表示画面1400には、処理名1401、仕様1402、自動1403、検索条件1404、属性情報選択部1405、設計詳細画面1406、ショートカット追加1407、保存1408、及びキャンセル1409を持つ。
属性情報選択部1405は、属性情報を選択可能に表示する。図11には、属性情報として、「メッセージ」、「ネットワーク」、「ファイル」、「デバイス」、「プッシュ通知」、「独自」の処理内容に分類された属性情報が選択可能に表示されている。
図11は、「デバイス」処理の「カメラ起動」の属性情報が選択された状態を示している。カメラ起動の属性情報が選択されると、設計詳細画面1406には、「画像幅」及び「画像高さ」のカメラ起動の属性情報の設定項目が表示される。すなわち、設計詳細画面1406に表示される設定項目は、選択される属性情報に基づき自動的に選択される。属性情報毎に設定すべき設定項目が自動的に選択されるので、設定項目の入力ミスを防止することができる。
設計詳細画面1406に表示された「画像幅」及び「画像高さ」はカメラで撮影された画像の解像度を設定するための設定項目である。「画像幅」はコンボボックスf1を持つ。「画像高さ」はコンボボックスg1を持つ。コンボボックスf1で「数値」を選択すると、テキストボックスf2が表示されて数値が入力可能になる。また、コンボボックスg1で「数値」を選択すると、テキストボックスg2が表示されて数値が入力可能になる。コンボボックスf1又はコンボボックスg1は、予め設定された解像度を選択できるようにしてもよい。
処理名1401は、処理設計をする属性情報に付される番号である。本実施形態では、属性情報の設定はパーツの配置とは独立して行うことができる。従って、処理名は、パーツと属性情報を対応させるときの情報として用いられる。図11は、処理名が通し番号である「#1」であることを示している。処理名は通し番号を使用する代わりに、作業者が任意に設定してもよい。
仕様1402は、選択された属性情報(カメラ起動)と選択されて設定値が入力された設定項目とに基づき、属性情報の説明を自然言語で表した説明文章である。仕様1402は、自動1403が選択されているときには、属性情報の選択と設定項目の入力によって自動的に生成される。図11は、自動生成された説明文章として「カメラを起動して、撮影結果を取得する。」が表示されていることを示している。属性情報と設定項目が具体的にどのような処理内容であるかを自然言語で表示することにより、パーツの処理設計が容易になる。自動1403が選択されていないときには、操作者が任意の文章を入力することができる。なお、設定項目に不正な設定値が入力されたとき等においては、処理名に警告を表示してもよい。
検索条件1404は、設定項目が設定されて登録(保存)された属性情報を検索するための条件を設定できる。例えば、登録された属性情報の数が多い場合、類似した属性情報を選択することが困難になる。検索条件1404を予め設定しておくことにより、属性情報の検索が容易になる。
ショートカット追加1407は、設定項目が設定された属性情報をショートカットに登録するためのボタンである。属性情報をショートカットに登録することにより、類似した属性情報の処理設計が容易になる。
保存1408は、設定項目が設定された属性情報を保存して登録するためのボタンである。また、キャンセル1409は、属性情報の処理設計を中止するためのボタンである。
図12は、属性情報として「コントロール」処理の「内容セット」の属性情報が選択されたことを示している。「内容セット」の属性情報が選択されると、設計詳細画面1406には、「フォーム」、「コントロール」及び「値」の設定項目が自動的に表示される。
「内容セット」の属性情報は、所定の変数にデータをセットする処理内容である。フォーム「Equipment」は、図10で説明した実行画面を特定する変数である。コントロール「lblPict」は、図10の表aの「写真」の表項目を特定する変数である。結果の引き継ぎとは取得したデータをそのまま引き継ぐ処理である。値「♯1」は図11で説明した処理名である。
図12において、処理名1401は「♯2」、仕様は、「「Equipment」画面の「lblPict」の内容に[#1]の結果をセットする。」の説明文が生成されて表示されていることを示している。[#1]の結果は、図11で説明した、カメラで撮影された撮影結果を取得したものである。
なお、図12に示す属性情報選択部1405には、「コントロール」以外に、「フォーム」、「ダイアログ」、及び「メッセージ」の属性情報が選択可能に表示されている。
ここで「フォーム」は、実行画面を遷移させる「遷移」の属性情報を含む。それぞれの実行画面には、上記の通り「Equipment」等のフォーム名が設定される。「遷移」の属性情報においては、遷移先のフォーム名を設定項目に設定値にすることにより、実行画面の遷移を容易に設計することができる。なお、「遷移」で遷移が設定されたフォーム名は、後述する実行画面の画面遷移図の生成において参照される。
「ダイアログ」は、ダイアログを表示して所定の処理を実行可能にする属性情報である。また、「メッセージ」は所定のメッセージをポップアップ表示するための属性情報である。
次に、図13を用いて、登録された属性情報の一覧表示を説明する。図13は、本実施形態におけるソフトウェア開発プログラムによる第1の機器における処理設計の詳細を示した図である。
図13において、「ロジック名」には、設定項目が設定された属性情報の名称を入力することができる。図13においては、「Equipment_カメラ起動」の名称が入力されている。なお、ロジック名一覧lには、他のロジック名の属性情報が登録されていることを示している。
属性情報表示画面1501には、属性情報一覧kが表示される。属性情報一覧kは、「コメント」、「No.」、「処理名」、「コンポーネント」、及び「仕様」の表項目を持つ。「処理名」は、図11及び図12で説明した処理名である。「コンポーネント」は属性情報を特定する情報である。「仕様」は、仕様1402の内容である。なお、「コメント」のチェックボックスを選択することにより、それぞれの属性情報に対するコメントの入力が可能となる。
図13で示したロジック名は、図10で説明した「カメラ起動」のボタンパーツに対応付けられる。すなわち、パーツの配置とそのパーツの属性情報をそれぞれ登録して、その対応付けを設定することによりGUIの設計を行う。一度登録された属性情報は、複数のパーツで共用することができ、GUIの設計を効率化することができる。
次に、図14を用いて、画面遷移図の生成について説明する。図14は、本実施形態におけるソフトウェア開発プログラムによる画面遷移図の表示を示した図である。図14において、画面遷移図には、画面1〜画面4の遷移図が表示されている。
本実施形態では、図12で説明した「遷移」の属性情報において、実行画面の画面遷移を設定できる。操作者は、図10等のファイルタブ1100に含まれる画面遷移図生成のコマンドを選択する。画面遷移図生成のコマンドが選択されると、制御部11は、遷移の属性情報で紐付けられたフォーム名を検索して、検索されたフォーム名の実行画面を読み出して線で紐付けして画面遷移図を生成する。生成された画面遷移図は、表示部14に表示される。画面遷移図は、図示しないプリンタにおいて印字してもよい。画面遷移図を生成することにより、GUIの設計と同時に画面遷移図を作成できる。
なお、実行画面が複数あって、表示部14に表示しきれない場合、スクロール表示、拡大/縮小表示を行ってもよい。また、接続子等で実行画面の遷移先を明らかにして複数ページに印字するようにしてもよい。印字される画面遷移図は、GUI設計書の所定のフォーマットに変換して出力するようにしてもよい。
また、図14では、表示する実行画面の画面1〜画面4の大きさは同一である場合を示したが、画面遷移図で表示する実行画面の大きさはそれぞれ設定できるようにしてもよい。
また、画面遷移図には、図13で説明したそれぞれの実行画面に配置されたパーツの仕様が含まれていてもよい。
また、表示部14に表示された画面遷移図は、いずれかの実行画面を選択することにより、選択した実行画面の画面設計図の詳細を表示してもよい。
また、画面遷移図における実行画面は、表示する機器に応じて変更してもよい。例えば、PCの表示部に表示された実行画面、スマートフォンの表示部に表示された実行画面等、機器に応じて変更するようにしてもよい。
次に、図15を用いて、画面設計書の生成について説明する。図15は、本実施形態におけるソフトウェア開発プログラムによる画面設計書の表示を示した図である。図15において、画面設計書には、画面1とその設計詳細が表示されている。
本実施形態では、設計詳細として、図13で説明したロジック名と属性情報一覧kを表示することができる。画面1は、それぞれの実行画面である。画面1に配置されたパーツにはそれぞれ対応するロジック名を表示するようにしてもよい。実行画面に配置されたパーツと、そのパーツの属性情報を対比した画面設計書を生成することにより、GUIの設計と同時に画面設計書を作成することができる。
操作者は、図10等のファイルタブ1100に含まれる画面設計書生成のコマンドを選択する。画面設計書生成のコマンドが選択されると、制御部11は、実行画面とその実行画面に含まれるパーツの設計詳細を対応させた画面設計書を生成する。生成された画面設計書は、表示部14に表示される。画面設計書は、図示しないプリンタにおいて印字されてもよい。
なお、画面設計書における実行画面は、表示する機器に応じて変更してもよい。例えば、PCの表示部に表示された実行画面、スマートフォンの表示部に表示された実行画面等、機器に応じて変更するようにしてもよい。
次に、図16を用いて、DB(データベース)設計書の生成について説明する。図16は、本実施形態におけるソフトウェア開発プログラムによるDB設計書の表示を示した図である。図16において、DB設計書には、データベースと処理設計の詳細が表示されている。
本実施形態では、図10で説明した通り、カメラ撮影で取得した画像データやテキストボックスから入力されたテキストデータをデータベースに直接登録するデータベース操作をパーツの処理内容に設定することができる。図13で説明したデータベースに登録するデータの処理設計を一覧表示することにより、データベースを用いたGUI設計を容易にすることができる。
なお、図2又は図3に示したプログラムを、コンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、本実施形態の上述した種々の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。