JP5820324B2 - 設計支援システム、設計支援方法およびプログラム - Google Patents

設計支援システム、設計支援方法およびプログラム Download PDF

Info

Publication number
JP5820324B2
JP5820324B2 JP2012080979A JP2012080979A JP5820324B2 JP 5820324 B2 JP5820324 B2 JP 5820324B2 JP 2012080979 A JP2012080979 A JP 2012080979A JP 2012080979 A JP2012080979 A JP 2012080979A JP 5820324 B2 JP5820324 B2 JP 5820324B2
Authority
JP
Japan
Prior art keywords
design information
nth
design
user
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012080979A
Other languages
English (en)
Other versions
JP2013210865A (ja
Inventor
晋作 南田
晋作 南田
順之 中園
順之 中園
正樹 冨澤
正樹 冨澤
浩子 中村
浩子 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Data Corp
Original Assignee
NTT Data Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Data Corp filed Critical NTT Data Corp
Priority to JP2012080979A priority Critical patent/JP5820324B2/ja
Publication of JP2013210865A publication Critical patent/JP2013210865A/ja
Application granted granted Critical
Publication of JP5820324B2 publication Critical patent/JP5820324B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、設計支援システム、設計支援方法およびプログラムに関する。
ソフトウェア(システム)開発の一般的な開発プロセスの一つとして、ウォーターフォールモデルがある。これは、開発プロセスを、例えば、機能設計、詳細設計、プログラム設計などと工程毎に分割し、工程毎にアウトプット(設計書など)を作成し、当該アウトプットを次の下位工程のインプットとするものである。すなわち、上位工程から下位工程にかけて設計情報をより詳細化し、上位工程が完了しない限り原則として下位工程に進まないことを担保することで、手戻り作業(設計ミスなどが原因で上位工程から再度設計をやり直す作業)を抑止することが出来るというメリットがある。
より詳細には、機能設計工程において、例えば、顧客情報登録機能の機能レベル(登録画面にて登録ボタンを押下すると、入力された顧客情報の整合性チェックを行い、問題なければ顧客データベースの各テーブルに登録する、などのレベル)の設計を行い、1つの機能設計書が作成される。
次に、詳細設計工程において、当該機能設計書を用いて、顧客情報登録機能の処理レベル(整合性チェック処理、排他処理、登録処理、などのレベル)の設計を行い、詳細設計書が作成される。この際、詳細設計書は、処理単位で作成されることがあり、上記例の、整合性チェック処理、排他処理、登録処理であれば、3つの詳細設計書が作成されることになる。
さらに、プログラム設計工程において、当該各詳細設計書を用いて、顧客情報登録機能のプログラムレベル(整合性チェックの中の入力された情報の型チェックプログラムおよび矛盾チェックプログラム、ならびに登録処理の中のテーブル毎の更新プログラム、などのレベル)の設計を行い、プログラム設計書が作成される。この際、プログラム設計書は、プログラム単位で作成されることがあり、上記例の、型チェックプログラム、矛盾チェックプログラム、テーブル毎の更新プログラムであれば、2つのチェックプログラムに関する2つのプログラム設計書に加え、更新するテーブル数分のプログラム設計書が作成されることになる。
このように、ウォーターフォールモデルの開発プロセスでは、上位工程と下位工程の設計情報の関係が1対多となり、一機能を設計するだけでも、多数の設計書が作成されることになる。そのため、システムの規模が大きくなればなるほど、機能、処理、およびプログラムの数は増え、作成される設計書の数も膨大なものとなる。
特開2003−140893号公報
しかしながら、ウォーターフォールモデルの開発プロセスでは、次のような問題が生じている。
まず、上位工程での設計書を参照しながら下位工程の設計書を作成する必要があるため、転記ミスなどが発生し、設計書間の不整合が生じる場合がある。また一機能に対して多数の設計書が作成されるため、設計書間における記載の重複が発生している。このような設計情報の不整合は、例えばプログラム設計情報など、ほぼソースコードに近い設計情報からソースコードを自動生成する場合に、ソースコードが正常に生成できなかったり、生成できても正しく動作しなかったりすることにつながる。換言すると、ソースコード自動生成技術における従来技術では、ほぼソースコードに近い設計情報からソースコードを自動生成する技術はあっても(例えば、特許文献1に記載の技術)、上流工程の設計情報ある、例えば機能設計情報から一連の設計情報を編集・管理しソースコードを自動生成するという一貫した技術はないと言える。
次に、ウォーターフォールモデルの設計が、上位工程が完了しない限り原則として下位工程に進まないため、直前工程の設計情報の品質が保証されているというメリットから、設計者は上位工程での設計書の品質が保証されていると考えるのは当然であり、上位工程よりさらに上位工程の設計書を確認することはほとんど無い。また、当該メリットのために、設計者において直前の工程の設計情報のみを確認して設計すればよいという考えが生じていることも否定できない。さらに、従来の設計書は個別に分かれているため、膨大な設計書の中から所望の設計書を検索して確認することに対する怠慢も否定できない。このように、下位工程に進めば進むほど、直前の工程より上位の工程に対する意識は薄くなり、時として本来の目的がわからないまま恣意的な設計を行ってしまう場合がある。これが原因で、下位工程になってから設計ミスが発覚し、手戻り作業が発生してしまう場合がある。
そして、設計書が個別に作成されるため、バグ発生時の原因特定および設計書の修正箇所の特定において、一連の設計書の中から所望の設計書を探し出し、かつ所望の箇所を特定する必要があり、これは非常に時間を要する作業である。特にシステム開発において発生するバグの件数は、何百、何千となる場合もあり、その都度、この特定作業を繰り返すことになる。また、設計書の修正が必要な場合も、個別の設計書全てに対して行う必要がある。加えて、設計レビュー時において、上位工程の設計書を参照することはよくあり、その都度、参照箇所の特定作業を行うことになる。
このように、品質および生産性などの点で問題が生じている。さらに、工程毎に設計者や担当会社が異なるという開発実態はよくあり、また開発するシステムの規模が大きくなるにつれ設計者の人数も多くなる。このような開発実態により、上記問題はより顕著になっている。
このような問題の一解決方法として、一般的なドキュメントツールなどで、一連の設計情報(例えば、ある機能の機能設計書、詳細設計書、およびプログラム設計書)を1つの設計書として作成することが考えられるが、記載の整合性や可読性などに問題を来たすというデメリットの方が大きく、実際には行われていない。
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、詳細度に応じて設計情報を階層的に関連付け、一画面で編集可能な設計支援システムおよび方法を提供することにある。より詳細には、設計情報を工程毎の個別の情報として考えるのではなく、一連の設計情報を一つの情報として捉えることで、上位工程に対して下位工程の設計情報を階層的に関連付け、一画面での編集を行うことができるシステムおよび方法を提供する。また、必要に応じて設計情報の詳細度を階層的に切り換えることで、一連の設計情報でありながら、従来通り工程毎の設計情報を参照することもできる。
本発明は、このような目的を達成するために、1つまたは複数の第1の設計情報を表示し、ユーザに前記第1の設計情報の編集を行わせる第1の編集手段と、1つまたは複数の第2の設計情報を表示し、前記ユーザに前記第2の設計情報の編集を行わせる第2の編集手段であって、前記第2の設計情報は、前記第1の設計情報を詳細化した設計情報であり、かつ前記第1の設計情報のいずれか1つと関連付けて階層的に表示される、第2の編集手段と、1つまたは複数の第Nの設計情報が存在する場合、前記第Nの設計情報を表示し、前記ユーザに前記第Nの設計情報の編集を行わせる第Nの編集手段であって、前記Nは3以上の整数であり、前記第Nの設計情報は、第N−1の設計情報を詳細化した設計情報であり、かつ前記第N−1の設計情報のいずれか1つと関連付けて階層表示される、第Nの編集手段と、前記第1乃至第Nの設計情報の表示/非表示の切り替えを行う切替手段と、前記ユーザにより編集された第1乃至第Nの設計情報の記憶を行う第1の記憶手段とを備えたことを特徴とする。また、グラフィカルユーザインタフェースを介して、前記ユーザに前記第2乃至第Nの設計情報の追加を行わせる追加手段であって、前記追加は、指定された設計情報に対して、下位の階層に追加することと、指定された設計情報に対して、同位の階層かつ上部に追加することと、指定された設計情報に対して、同位の階層かつ下部に追加することとを含む、追加手段と、前記グラフィカルユーザインタフェースを介して、前記ユーザに、前記追加された第2乃至第Nの設計情報の削除を行わせる削除手段と、前記グラフィカルユーザインタフェースを介して、前記ユーザに、前記追加された第2乃至第Nの設計情報の階層レベルの変更を行わせる変更手段と、前記第1の記憶手段による設計情報の記憶は階層構造で行われ、前記第1の記憶手段に記憶された設計情報に基づき、ソースコードの生成を行う生成手段と、前記生成手段により生成されたソースコードの記憶を行う第2の記憶手段と、前記第1乃至第Nの設計情報の整合性チェックを行うチェック手段であって、前記整合性チェックは、設計情報として定義した変数が使用されていないことのチェックと、設計情報として定義した変数、引数、定数の重複チェックと、設計情報として定義した戻り値のチェックと、前記ソースコードに対して任意のコンパイラを用いて行われるソースコードチェックとのうちの少なくとも1つを含む、チェック手段とをさらに備えたことを特徴とする。その他に、テンプレートリストを表示し、前記ユーザに前記第1乃至第Nの設計情報のテンプレートの選択を行わせる選択手段と、前記選択手段により選択されたテンプレートの表示を行う表示手段、ならびに前記第1の記憶手段による設計情報の記憶は階層構造で行われ、前記第1の記憶手段に記憶された設計情報に基づき、設計書の生成を行う生成手段であって、前記設計書の生成は、前記第2乃至第Nの設計情報毎に生成することを含む、生成手段と、前記生成手段により生成された設計書の記憶を行う第2の記憶手段とをさらに備えたことを特徴とする。
以上説明したように、本発明によれば、一連の設計情報を一つの設計情報として捉え、上位工程に対して下位工程の設計情報を階層的に関連付け、一画面での編集が可能となる。例えば、下位工程の設計情報を記述する際に、上位工程の設計情報に対し追記する形で記述することができる。これにより、従来の個別の設計書間で生じていた転記ミスや、重複記載を効果的に排除することができ、仮に設計変更が生じた場合でも、個別の設計書全てに対し修正を行う必要はなく、一画面における設計情報の修正で足りる。また、ソースコードの自動生成という点から見ると、一連の設計情報を一貫して一つの設計情報として編集・管理できるため、より精度の高いソースコードを生成することができる。また、設計バグの発生時においても、一画面における設計情報の修正で足りる。一連の設計情報が一つの設計情報に集約されているため、上位工程、または下位工程の設計情報を容易に参照することができる。これにより、設計書の確認漏れにより生じる設計ミス(延いては手戻り作業)を抑止することができ、設計書における参照箇所の特定作業に要していた時間を大幅に削減することができる。
本発明の一実施形態に係る設計支援システムの構成を示す図である。 本発明の一実施形態に係る階層的な設計情報(第1階層)を示す図である。 本発明の一実施形態に係る階層的な設計情報(第1、2階層)を示す図である。 本発明の一実施形態に係る階層的な設計情報(第1〜3階層)を示す図である。 本発明の一実施形態に係る設計支援システムの編集画面を示す図である。 本発明の一実施形態に係る設計支援システムの「↑」ボタンの動作を示す図である。 本発明の一実施形態に係る設計支援システムの「↓」ボタンの動作を示す図である。 本発明の一実施形態に係る設計支援システムの「└>」ボタンの動作を示す図である。 本発明の一実施形態に係る設計支援システムの「+」および「−」ボタンの動作を示す図である。 設計情報記憶手段に記憶される設計情報のデータ構造例を示す図である。 テンプレート情報記憶手段に記憶されるテンプレート情報のデータ構造例を示す図である。 本発明の一実施形態に係るソースコード自動生成の処理フローを示す図である。
以下、図面を参照しながら本発明の実施形態について詳細に説明する。
図1は、本発明の一実施形態に係る設計支援システムの構成を示す図である。利用者端末101a〜101nは、一般的なクライアントコンピュータデバイスであり、ネットワーク102に接続され、設計支援システム103を利用することができる。また、当該利用者端末を利用する者は、例えばシステム開発に携わる者、すなわちシステムの設計者、プログラマ、およびレビュアなど様々であり、利用者端末101nの“n”は任意の数を表す。
ネットワーク102は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、およびインターネットなどである。
設計支援システムは、1つまたは複数のサーバコンピュータで構成され、図1に示す実施形態では、処理装置とシステムメモリを有する、4つの一般的なサーバコンピュータ、すなわちWebサーバ104、アプリケーションサーバ105、バッチサーバ106、およびデータベース(DB)サーバ107からなる。
Webサーバ104は、利用者端末101a〜101nからの要求に応じて、ネットワーク102を介して、設計情報表示手段により、設計情報編集画面のHTML文書を送信する。利用者端末101a〜101nは、受信したHTML文書をブラウザを介して表示し、各利用者は設計情報の編集を行う。設計情報の編集により、変更された設計情報は、利用者端末101a〜101nからの更新要求として、ネットワーク102を介してWebサーバ104に送信される。更新要求は、Webサーバ104から、業務ロジックを扱うAPサーバ105に転送され、設計情報編集手段および整合性チェック手段により整合性チェックなどを行った上で、問題がなければDBサーバ107の設計情報記憶手段に記憶される。
また、APサーバ105は、Webサーバ104経由の利用者端末101a〜101nからの要求に応じて、設計情報切替手段による設計情報の階層表示の切り替え、設計情報追加手段による設計情報の追加、および設計情報削除手段による設計情報の削除を行った上で、作成されたHTML文書を利用者端末101a〜101nに返す。なお、当該切り替え、追加、および削除は、利用者端末101a〜101n上で(例えば、Javascriptにより)行うこともできる。また、非同期通信により、画面を再描画することなく行うこともできる。
さらに、設計情報の追加を行う際に、設計情報を入力するための複数のテンプレートをリスト表示し、当該リストからテンプレートを選択、追加することもできる。これは、APサーバ105のテンプレート情報表示手段により、選択されたテンプレートを、DBサーバ107のテンプレート情報記憶手段から取得し、利用者端末101a〜101nに送信することによって行われる。
また、バッチサーバ105は、要求に応じて、DBサーバ107の設計情報記憶手段に記憶された設計情報から、ソースコード生成手段によりソースコードを生成したり、設計書生成手段により設計書を生成したりする。バッチサーバ105はこの際、整合性チェック手段を用いて設計情報の整合性チェックを行った上で、ソースコードや設計書を生成することができる。生成されたソースコード、および設計書は、DBサーバ107のソースコード記憶手段、および設計書記憶手段にそれぞれ記憶される。
なお、上述した通り本構成はあくまでも一実施形態であり、設計支援システム103内のサーバコンピュータの数や、各サーバコンピュータの役割は任意に変更可能である。
図2は、本発明の一実施形態に係る階層的な設計情報(第1階層)を示す図である。図2は、2つの処理コンポーネント201、202を含み、これらを第1階層の設計情報とする。第1階層の設計情報の具体例は、機能設計情報や外部仕様である。
図3は、本発明の一実施形態に係る階層的な設計情報(第1、2階層)を示す図である。図3において、破線で囲まれたコンポーネントは、図2において示した第1階層の設計情報に相当する。これに対し、実線で囲まれたコンポーネント、すなわち処理コンポーネント301〜306は、第2階層の設計情報であり、対応する第1階層の設計情報にぶら下がる形で示される。第2階層の設計情報は、第1階層の設計情報より詳細度の高い設計情報、すなわち第1階層の下位工程の設計情報であり、具体的には、詳細設計情報や内部仕様である。また、第2階層の設計情報に係る各処理コンポーネントは、第1階層の設計情報より下位の階層にあることを示すため、インデントレベルを下げて示される。また、処理コンポーネント304および306に示すように、IF文などのように実際のソースコードなどにおいてもインデントレベルを下げることが通例である場合は同一階層であってもインデントレベルを下げることができる。なお、コンポーネントの枠線の実線および破線は、説明のための便宜的な表示であることを理解されたい。
実際の開発プロセスを想定すると、機能設計工程の完了時点では、図2に示されるように第1階層の設計情報が記述された状態である。次工程であり下位工程である詳細設計工程の設計者は、機能設計情報である第1階層の設計情報を参照しながら、詳細設計情報、すなわち第2階層の設計情報を、第1階層の設計情報に追記する形で記述することができる。
図4は、本発明の一実施形態に係る階層的な設計情報(第1〜3階層)を示す図である。コンポーネントの枠線の実線および破線の説明は上述した通りであり、処理コンポーネント401〜405が第3階層の設計情報である。第3階層の設計情報は、対応する第2階層の設計情報にぶら下がる形で示される。第3階層の設計情報は、第2階層の設計情報より詳細度の高い設計情報、すなわち第2階層の下位工程の設計情報であり、具体的には、プログラム設計情報や内部仕様定義である。また、第3階層の設計情報は、さらにインデントレベルを下げて表示される。
上述した詳細設計工程の設計者同様、プログラム設計工程の設計者は、詳細設計情報である第2階層の設計情報を参照しながら、プログラム設計情報、すなわち第3階層の設計情報を、第1階層および第2階層の設計情報にさらに追記する形で記述することができる。
図2〜4を用いて、本発明の一実施形態に係る階層的な設計情報(第1〜3階層)を示したが、各階層に記述する設計情報の詳細度を任意に変更し、第4階層以降の設計情報を同様に追記することができることは、当業者であれば理解できよう。
図5は、本発明の一実施形態に係る設計支援システムの編集画面を示す図である。設計支援システム500は、3つの左フレーム501、メインフレーム502、および右フレーム503からなる。
左フレーム501は、各設計情報をツリー構造で示し、例えば設計者は、所望の設計情報をマウスクリックなどで選択することにより、後述するメインフレーム502に所望の設計情報を表示することができる。また、左フレーム501より、設計情報の新規追加、削除を行うことができる。
メインフレーム502は、図2〜4を用いて上述した、本発明の一実施形態に係る階層的な設計情報の表示および編集部である。図5におけるメインフレーム502は、第3階層までの設計情報が既に記述されている状態である。設計情報を新規に追加した直後の初期状態では、例えば、処理コンポーネント506〜508のみが空欄で表示される。また、処理コンポーネントは理論上は無限に追加でき、メインフレーム502に表示しきれない場合は、スクロールバー(図示せず)を表示させ、利用者がマウスなどを介して操作することにより、所望の位置の表示を行うことができる。
メインフレーム502の上部には、表示階層の選択リスト504および保存ボタン505を表示する。表示階層の選択リスト504は、どの階層、またはどの階層までを表示するかを選択することができる。例えば、第1の設計情報である機能設計情報のみを参照したい場合などに使用する。
保存ボタン505は、押下することにより、メインフレーム502にて編集した設計情報の更新処理を実行することができる。この際、メインフレーム502にて編集した設計情報に対して、整合性チェックを行うことができる。ここで行う整合性チェックの具体例は、設計情報として定義した変数が処理の中で一度も使用されていないことのチェック、定義した変数、引数、定数の間で同一の名称によって定義されていることの重複チェック、および定義した戻り値が定義通りのデータ型で戻されていること(受け側においては受けていること)のチェックなどが挙げられる。当該整合性チェックは、サーバコンピュータ(例えばAPサーバ105)で行うことができる。
メインフレーム502における各処理コンポーネントのラベル部分の右部に表示される「E」、「↑」、「↓」、「└>」、「×」、「+」、および「−」は、例えばボタンであり、押下することで、後述するように、該当する処理コンポーネントに対し各々特定の処理を実行することができる。なお、各ボタンは表示不要の場合は個別に表示させないこともできる。表示不要な場合とは、例えば、押下後に実行する処理が、該当する処理コンポーネントの性質上、実行する必要がない場合、または実行してはいけない場合などがある。以下に各ボタンの動作説明を示す。なお、「E」および「×」ボタン以外は、図6〜9を参照して説明するが、各図における動作説明は、図5におけるメインフレーム502の状態に対するものであることを理解されたい。
「E」ボタンの“E”は、編集を意味する“Edit”の頭文字であり、押下することにより、該当する処理コンポーネント内の編集可能な項目を表示欄からテキストボックスなどの入力欄に切り換えることができる。既に入力欄である場合は、表示欄に戻すことができる。これにより、誤編集を防止することができる。
「↑」ボタンは、図6に示すように、押下することにより、該当する処理コンポーネントの上部に、同一詳細度の処理コンポーネントを追加することができる。ここで同一詳細度とは、設計情報における詳細度が同一であるということを意味し、すなわち同一設計工程に係る設計情報であることを意味する。また、図6は、「↑」ボタン602を押下し、処理コンポーネント601が追加されたことを示す。処理コンポーネント601は追加した直後であるため、通し番号を示す「1」以外は空欄である。また、処理コンポーネント601の追加に伴い、処理コンポーネント601より下部にある処理コンポーネントの通し番号が、1づつ加算されていることが理解できよう。なお、図6において、「↑」ボタン602が太字で示されているのは、説明のための便宜的な表示であることを理解されたい(以下、図7〜9についても同様である)。
「↓」ボタンは、図7に示すように、押下することにより、該当する処理コンポーネントの下部に、同一詳細度の処理コンポーネントを追加することができる。図7は、「↓」ボタン701を押下し、処理コンポーネント702が追加されたことを示す。処理コンポーネント702は追加した直後であるため、通し番号を示す「2」以外は空欄である。また、処理コンポーネント702の追加に伴い、処理コンポーネント702より下部にある処理コンポーネントの通し番号が、1づつ加算されていることが理解できよう。
「└>」ボタンは、図8に示すように、押下することにより、該当する処理コンポーネントの下部に、より詳細度の高い処理コンポーネントを追加することができる。すなわち、ここでいう「該当する処理コンポーネント」が上位工程の設計情報に関するものであり、追加される処理コンポーネントは、当該上位工程に対する下位工程の設計情報であることを意味する。また、図8は、「└>」ボタン801を押下し、処理コンポーネント803が追加されたことを示す。図8では、「└>」ボタン801を押下する前に、既に処理コンポーネント802が存在していたため、その下部に処理コンポーネント803が追加されている。当業者であれば容易に理解されようが、処理コンポーネント802も「└>」ボタン801を押下することにより追加されたものである。
「×」ボタンは、押下することにより、該当する処理コンポーネントを削除することができる。なお、削除する際、該当する処理コンポーネントの下位の処理コンポーネントも含めて削除するか否かは単なる設計変更情報であるが、下位の処理コンポーネントを残すケースは設計情報という性質を鑑みると稀であろう。
「+」および「−」ボタンは、図9に示すように、押下することにより、該当する処理コンポーネントの下位の処理コンポーネントの表示/非表示を切り替えることができる。図9は、図5における処理コンポーネント508の「−」ボタンを押下した直後のものであり、処理コンポーネント508の下位の処理コンポーネントが非表示状態になっている。また、「−」ボタンは、「+」ボタン901に表示が変わっている。「+」ボタン901を押下することにより、非表示状態となった下位の処理コンポーネントが再度表示される。なお、「+」および「−」ボタンを押下する毎にボタンの表示を変更することや、ボタンの項目名(すなわち“+”および“−”)は、一実施形態であることを理解されたい。これは他のボタンについても同様である。
図5に戻り、右フレーム503について説明する。右フレーム503は、テンプレートリストを表示し、利用者はここから入力支援のためのテンプレートを選択することができる。図5のテンプレートリストは、一実施形態であり、テンプレートリストの選択肢509〜512を含む。テンプレートリストの選択肢は、大きなカテゴリ(例えば509、510、および512)と、小さなカテゴリ(例えば511)とに分けられ、例えば、小さなカテゴリ511は、大きなカテゴリ510(「オンライン」)に属するカテゴリである。
利用者は、まず大きなカテゴリをマウスクリックなどで選択し、新たに表示される、選択した大きなカテゴリに属する小さなカテゴリから所望のテンプレートを選択する。図5では、大きなカテゴリ510(「オンライン」)を選択し、新たに表示された小さなカテゴリ511の中から「DTO(Data Transfer Object)定義」用のテンプレートを選択している状態である。この状態で、上述した「↑」、「↓」、および「└>」ボタンを押下することによって、該当するテンプレート(例えば入力値が全て空欄の処理コンポーネント513)が、メインフレーム502の所定の位置に表示される。この際、自動で設定可能な入力値は初期値として表示することもできる。具体的には、例えば、処理コンポーネント513の要求DTOIDの入力値(C20000001ReqtU001)を自動採番し、初期値として表示する。
なお、テンプレートリストの選択肢は、カテゴリ化せずに全て表示することもできるし、さらに細かくカテゴリ化することもできる。また、エラーメッセージを表示するなどして、設計情報の内容や階層の位置によって選択できるテンプレートを制御することもできる。例えば、下位の階層を追加する必要がない、または追加してはいけない場合、「└>」ボタン押下時にエラーメッセージを表示し、処理コンポーネントを追加しないように制御することができる。もっとも、この場合、「└>」ボタンを非表示とする制御の方がユーザフレンドリーの観点からも適しているかもしれない。処理コンポーネント513などに「└>」ボタンが表示されていないのはそのためである。
上述した通り、保存ボタン505押下により、メインフレーム502にて編集した設計情報の更新処理を実行することができ、更新処理が正常に行われた場合、例えば、DBサーバ107の設計情報記憶手段に設計情報が記憶される。この際、階層構造を維持したまま記憶することができる。
図10は、設計情報記憶手段に記憶される設計情報のデータ構造例を示す図である。「機能ID」は、設計情報単位(図5のメインフレーム502に示される単位)でユニークなIDであり、「設計情報ID」と併せて、本データ構造のユニークキーとなる。
「設計情報ID」は、処理コンポーネント単位(図5の処理コンポーネント508および513などの単位)でユニークなIDであるが、本実施形態では、値「00」のみ、ヘッダ情報として処理コンポーネント506および507の2つを纏めて1つのデータとして表す。値「01」は第1階層目の1番目の設計情報であることを示し、図5における処理コンポーネント508を表す。値「01-01」は、第1階層の1番目の設計情報を親に持つ、第2階層の1番目の設計情報であることを示し、図5における処理コンポーネント513を表す。
設計情報(処理コンポーネント)の親子関係は、「上位設計情報ID」に親の「設計情報ID」を持つことによって保持される。そのため、第1階層の設計情報の場合、本項目には何も設定されない(またはハイフンや、スペース、空文字などを設定する。図10ではハイフンを設定)。
「内容」は、設計情報の編集データであり、本実施形態では、CSV形式でデータを持つことにより、複数の項目に対応することができる。
種別は、対象の設計情報がテンプレートを用いて入力されたものであるか否かを示し、本実施形態では、テンプレートを用いていない場合、文字列「text」を設定する。テンプレートを用いた場合は、「temp001」などの文字列が設定され、これはテンプレートの種類を示すIDと一致する。
図11は、テンプレート情報記憶手段に記憶されるテンプレート情報のデータ構造例を示す図である。図11に示すテンプレート情報は、図5の処理コンポーネント513に用いられているテンプレートを表し、例えばXML文書で作成することができる。「テンプレート名」にはテンプレートの名称、「項目」には図5のメインフレーム502に表示する際の項目名が格納されている。「入力画面用表示コード」は、本実施形態では、表示する際に使用するHTML文書そのものである。また、「ソースコード出力用雛型」は、ソースコードを自動生成する際に用いる雛型である。当該雛型の変数部分に、設計支援システム103にて編集された設計情報の各項目をパラメータとして設定することにより、ソースコードを生成する。
一実施形態において、ソースコードおよび設計書は、設計情報記憶手段に設計情報が記憶された後、当該設計情報に基づき、予め決められた雛型で作成される。図12は、本発明の一実施形態に係るソースコード自動生成の処理フローを示す図である。
ステップ1201において処理を開始し、図10に示す設計情報から、ソースコードを生成する機能のレコード(「機能ID」で絞込む)に対し、「種別」が「text」以外(すなわち、テンプレートを用いたことを示す「tmp***」)のレコードを1件取得する(ステップ1202)。次に、図11に示すテンプレート情報から、取得したレコードに対応するソースコード出力用雛型を取得する(ステップ1203)。当該ソースコード出力用雛型のパラメータとして、取得したレコードの値を設定する(ステップ1204)。これをパラメータの数だけ繰り返す(ステップ1204〜1205)。パラメータの設定が全て完了し、さらに「種別」が「text」以外のレコードが存在する場合、そのレコード数分、生成処理を繰り返す(ステップ1202〜1206)。「種別」が「text」以外のレコード全てに対し、ソースコードを生成すると、ステップ1207にて生成処理は終了する。
なお、図1では、ソースコード生成手段、および設計書生成手段を有するのはバッチサーバ106と示しているが、これはあくまでも一実施形態であり、別のサーバコンピュータで生成することもできる。例えば、設計情報記憶手段に設計情報が記憶される際であればAPサーバ105、記憶した後であればバッチサーバ106とシステム構成に応じて作業を分散することができる。生成されたソースコード、および設計書は、例えばDBサーバ107に記憶される。
また、生成されたソースコードに対して、任意のコンパイラ(例えば、Java(登録商標)ソースに対するコンパイルであればJavaコンパイラ)を使用してコンパイルし、コンパイルエラーが発生するかどうかにより、設計情報の整合性チェックを行うことができる。
このような構成により、詳細度に応じて設計情報を階層表示し、一画面での編集を行うことにより、一連の設計情報を一つの設計情報として捉えることができ、ソフトウェア開発における品質および生産性の向上が可能となる。
101a 設計者端末
101b プログラマ端末
101c レビュア端末
101n 設計者端末
102 ネットワーク
103 設計支援システム
104 Webサーバ
105 APサーバ
106 バッチサーバ
107 DBサーバ
201 処理コンポーネント(第1階層)
202 処理コンポーネント(第1階層)
301 処理コンポーネント(第2階層)
302 処理コンポーネント(第2階層)
303 処理コンポーネント(第2階層)
304 処理コンポーネント(第2階層)
305 処理コンポーネント(第2階層)
306 処理コンポーネント(第2階層)
401 処理コンポーネント(第3階層)
402 処理コンポーネント(第3階層)
403 処理コンポーネント(第3階層)
404 処理コンポーネント(第3階層)
405 処理コンポーネント(第3階層)
500 設計支援システム
501 左フレーム
502 メインフレーム
503 右フレーム
504 表示階層の選択リスト
505 保存ボタン
506 処理コンポーネント
507 処理コンポーネント
508 処理コンポーネント
509 テンプレートリスト選択肢(カテゴリ大)
510 テンプレートリスト選択肢(カテゴリ大)
511 テンプレートリスト選択肢(カテゴリ小)
512 テンプレートリスト選択肢(カテゴリ大)
513 処理コンポーネント
600 メインフレーム
601 処理コンポーネント
602 ↑ボタン
700 メインフレーム
701 ↓ボタン
702 処理コンポーネント
800 メインフレーム
801 └>ボタン
802 処理コンポーネント
803 処理コンポーネント
900 メインフレーム
901 +ボタン

Claims (7)

  1. 設計の詳細度に応じて設計情報を階層表示し、一画面で編集を行わせるコンピュータ装置であって、前記コンピュータ装置は、
    1つまたは複数の第1の設計情報を表示し、ユーザに前記第1の設計情報の編集を行わせる第1の編集手段と、
    1つまたは複数の第2の設計情報を表示し、前記ユーザに前記第2の設計情報の編集を行わせる第2の編集手段であって、前記第2の設計情報は、前記第1の設計情報を詳細化した設計情報であり、かつ前記第1の設計情報のいずれか1つと関連付けて階層的に表示される、第2の編集手段と、
    1つまたは複数の第Nの設計情報が存在する場合、前記第Nの設計情報を表示し、前記ユーザに前記第Nの設計情報の編集を行わせる第Nの編集手段であって、前記Nは3以上の整数であり、前記第Nの設計情報は、第N−1の設計情報を詳細化した設計情報であり、かつ前記第N−1の設計情報のいずれか1つと関連付けて階層表示される、第Nの編集手段と、
    前記第1乃至第Nの設計情報の表示/非表示の切り替えを行う切替手段と、
    前記ユーザにより編集された第1乃至第Nの設計情報の記憶を行う第1の記憶手段と
    グラフィカルユーザインタフェースを介して、前記ユーザに前記第2乃至第Nの設計情報の追加を行わせる追加手段であって、前記追加は、
    指定された設計情報に対して、下位の階層に追加することと、
    指定された設計情報に対して、同位の階層かつ上部に追加することと、
    指定された設計情報に対して、同位の階層かつ下部に追加することと
    を含む、追加手段と、
    前記グラフィカルユーザインタフェースを介して、前記ユーザに、前記追加された第2乃至第Nの設計情報の削除を行わせる削除手段と、
    前記グラフィカルユーザインタフェースを介して、前記ユーザに、前記追加された第2乃至第Nの設計情報の階層レベルの変更を行わせる変更手段と
    を備えたことを特徴とするコンピュータ装置。
  2. テンプレートリストを表示し、前記ユーザに前記第1乃至第Nの設計情報のテンプレートの選択を行わせる選択手段と、
    前記選択手段により選択されたテンプレートの表示を行う表示手段と
    をさらに備えたことを特徴とする請求項に記載のコンピュータ装置。
  3. 前記第1の記憶手段による設計情報の記憶は階層構造で行われ、
    前記第1の記憶手段に記憶された設計情報に基づき、ソースコードの生成を行う生成手段と、
    前記生成手段により生成されたソースコードの記憶を行う第2の記憶手段と
    をさらに備えたことを特徴とする請求項に記載のコンピュータ装置。
  4. 前記第1乃至第Nの設計情報の整合性チェックを行うチェック手段であって、前記整合性チェックは、
    設計情報として定義した変数が使用されていないことのチェックと、
    設計情報として定義した変数、引数、定数の重複チェックと、
    設計情報として定義した戻り値のチェックと、
    前記ソースコードに対して任意のコンパイラを用いて行われるソースコードチェックと
    のうちの少なくとも1つを含む、チェック手段と
    をさらに備えたことを特徴とする請求項に記載のコンピュータ装置。
  5. 前記第1の記憶手段による設計情報の記憶は階層構造で行われ、
    前記第1の記憶手段に記憶された設計情報に基づき、設計書の生成を行う生成手段であって、前記設計書の生成は、前記第2乃至第Nの設計情報毎に生成することを含む、生成手段と、
    前記生成手段により生成された設計書の記憶を行う第2の記憶手段と
    をさらに備えたことを特徴とする請求項に記載のコンピュータ装置。
  6. 設計の詳細度に応じて設計情報を階層表示し、一画面で編集を行わせるコンピュータ実行方法であって、前記コンピュータ実行方法は、
    1つまたは複数の第1の設計情報を表示し、ユーザに前記第1の設計情報の編集を行わせるステップと、
    1つまたは複数の第2の設計情報を表示し、前記ユーザに前記第2の設計情報の編集を行わせるステップであって、前記第2の設計情報は、前記第1の設計情報を詳細化した設計情報であり、かつ前記第1の設計情報のいずれか1つと関連付けて階層的に表示される、前記第2の設計情報の編集を行わせるステップと、
    1つまたは複数の第Nの設計情報が存在する場合、前記第Nの設計情報を表示し、前記ユーザに前記第Nの設計情報の編集を行わせるステップであって、前記Nは3以上の整数であり、前記第Nの設計情報は、第N−1の設計情報を詳細化した設計情報であり、かつ前記第N−1の設計情報のいずれか1つと関連付けて階層表示される、前記第Nの設計情報の編集を行わせるステップと、
    前記第1乃至第Nの設計情報の表示/非表示を切り替えるステップと、
    前記ユーザにより編集された第1乃至第Nの設計情報を記憶するステップと
    グラフィカルユーザインタフェースを介して、前記ユーザに前記第2乃至第Nの設計情報の追加を行わせるステップであって、前記追加は、
    指定された設計情報に対して、下位の階層に追加することと、
    指定された設計情報に対して、同位の階層かつ上部に追加することと、
    指定された設計情報に対して、同位の階層かつ下部に追加することと
    を含む、ステップと、
    前記グラフィカルユーザインタフェースを介して、前記ユーザに、前記追加された第2乃至第Nの設計情報の削除を行わせるステップと、
    前記グラフィカルユーザインタフェースを介して、前記ユーザに、前記追加された第2乃至第Nの設計情報の階層レベルの変更を行わせるステップと
    を備えたことを特徴とするコンピュータ実行方法。
  7. 設計の詳細度に応じて設計情報を階層表示し、一画面で編集を行わせるコンピュータ実行方法をコンピュータに実行させるコンピュータ実行可能命令からなるコンピュータプログラムであって、前記コンピュータ実行方法は、
    1つまたは複数の第1の設計情報を表示し、ユーザに前記第1の設計情報の編集を行わせるステップと、
    1つまたは複数の第2の設計情報を表示し、前記ユーザに前記第2の設計情報の編集を行わせるステップであって、前記第2の設計情報は、前記第1の設計情報を詳細化した設計情報であり、かつ前記第1の設計情報のいずれか1つと関連付けて階層的に表示される、前記第2の設計情報の編集を行わせるステップと、
    1つまたは複数の第Nの設計情報が存在する場合、前記第Nの設計情報を表示し、前記ユーザに前記第Nの設計情報の編集を行わせるステップであって、前記Nは3以上の整数であり、前記第Nの設計情報は、第N−1の設計情報を詳細化した設計情報であり、かつ前記第N−1の設計情報のいずれか1つと関連付けて階層表示される、前記第Nの設計情報の編集を行わせるステップと、
    前記第1乃至第Nの設計情報の表示/非表示を切り替えるステップと、
    前記ユーザにより編集された第1乃至第Nの設計情報を記憶するステップと
    グラフィカルユーザインタフェースを介して、前記ユーザに前記第2乃至第Nの設計情報の追加を行わせるステップであって、前記追加は、
    指定された設計情報に対して、下位の階層に追加することと、
    指定された設計情報に対して、同位の階層かつ上部に追加することと、
    指定された設計情報に対して、同位の階層かつ下部に追加することと
    を含む、ステップと、
    前記グラフィカルユーザインタフェースを介して、前記ユーザに、前記追加された第2乃至第Nの設計情報の削除を行わせるステップと、
    前記グラフィカルユーザインタフェースを介して、前記ユーザに、前記追加された第2乃至第Nの設計情報の階層レベルの変更を行わせるステップと
    を備えたことを特徴とするコンピュータプログラム。
JP2012080979A 2012-03-30 2012-03-30 設計支援システム、設計支援方法およびプログラム Active JP5820324B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012080979A JP5820324B2 (ja) 2012-03-30 2012-03-30 設計支援システム、設計支援方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012080979A JP5820324B2 (ja) 2012-03-30 2012-03-30 設計支援システム、設計支援方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2013210865A JP2013210865A (ja) 2013-10-10
JP5820324B2 true JP5820324B2 (ja) 2015-11-24

Family

ID=49528630

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012080979A Active JP5820324B2 (ja) 2012-03-30 2012-03-30 設計支援システム、設計支援方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5820324B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101597780B1 (ko) * 2014-05-22 2016-02-25 황수진 소프트웨어 코드의 시각적 구현 방법 및 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244229A (ja) * 2009-04-03 2010-10-28 Nec Corp 情報管理装置
JP2011086118A (ja) * 2009-10-15 2011-04-28 Yokogawa Electric Corp プログラム入力装置

Also Published As

Publication number Publication date
JP2013210865A (ja) 2013-10-10

Similar Documents

Publication Publication Date Title
US11893366B2 (en) Spreadsheet-based software application development
US8856737B2 (en) Techniques for displaying customizations for composite applications
KR101688554B1 (ko) 데이터 객체의 관리 및 자동 링킹
US20080115104A1 (en) Software development system and method for intelligent document output based on user-defined rules
US8468492B1 (en) System and method for creation and modification of software applications
US7925977B2 (en) Architecture solution map builder
US20140245199A1 (en) Method and system for customizing a gui of a mes screen
US20100088618A1 (en) Developing user interface element settings
US8106903B2 (en) System and method for visually representing a project using graphic elements
US20090282349A1 (en) System and method for dynamic configuration of components of web interfaces
EP3193261A1 (en) Method and system for editing virtual documents
KR102237877B1 (ko) 실시간 협업지원 지능형 소프트웨어 자동 개발 시스템 및 그 방법
JP2008511935A (ja) データ統合システムのためのユーザ・インターフェース
CN104216701B (zh) 用于在制造执行系统内创建图形用户界面的系统和方法
KR101572509B1 (ko) 웹 기반의 어플리케이션 구축을 위한 사용자 인터페이스 프레임워크 운용 방법
US20070067341A1 (en) Automated user interface functional requirements tool
WO2015196785A1 (zh) 一种构造软件模型的可视软件建模编辑器
US20080028003A1 (en) Structured object model merge tool with static integrity constraint observance
US11537989B2 (en) Dynamically controlling case model structure using case fragments
CN111273900A (zh) 基于gitlab实时代码共享的在线拖拽编码生成方法
JP5820324B2 (ja) 設計支援システム、設計支援方法およびプログラム
US11809844B2 (en) Creating an app method and system
Văduva et al. Designing a Low-Code CRUD framework
JP6665637B2 (ja) プログラム作成支援システム
JP5336906B2 (ja) 設計工程管理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140828

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150813

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150908

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151002

R150 Certificate of patent or registration of utility model

Ref document number: 5820324

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350