JP6301783B2 - ソースコード自動生成装置、及びプログラム - Google Patents
ソースコード自動生成装置、及びプログラム Download PDFInfo
- Publication number
- JP6301783B2 JP6301783B2 JP2014173305A JP2014173305A JP6301783B2 JP 6301783 B2 JP6301783 B2 JP 6301783B2 JP 2014173305 A JP2014173305 A JP 2014173305A JP 2014173305 A JP2014173305 A JP 2014173305A JP 6301783 B2 JP6301783 B2 JP 6301783B2
- Authority
- JP
- Japan
- Prior art keywords
- source code
- design information
- logic
- generated
- unit
- 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
Links
Images
Description
ロジックソースコード、参照ソースコード、及び分離対象外ソースコードは、既存のコード生成装置によって、コンピュータ装置が実行可能な処理実行コードに変換される。
1つは、ソースコード全体を検索して、編集前のソースコードと編集後のソースコードの差分を抽出する機能である。もう1つは、変更後の設計情報から再生成されたソースコードに、抽出した差分を挿入する機能である。これらの機能の開発には、開発者の負荷を要する。
また、編集内容抽出のために、変更前の設計情報から生成したソースコードに対して、ユーザが編集箇所を特定する制御コードを付加することも考えられる。しかし、ユーザが意図せずに不要な識別コードを記述してしまう可能性や、必要な識別コードを付加し忘れる可能性がある。識別コードを自動的に付加する機能と、不要な識別コードを記述させない機能とを実現することも考えられるが、やはり開発者の負荷を要する。
ロジックソースコード生成部105は、ロジックソースコード確認部104においてロジックソースコードが存在しないことが確認された場合に、設計情報振分部102により振り分けられた設計情報からロジックソースコードを生成する。ロジックソースコード生成部105は、ロジックソースコード生成の際、ソースコードテンプレート記憶部103に記憶されているテンプレートを用いる。ロジックソースコード生成部105は、生成したロジックソースコードをソースコード記憶部300に格納する。
まず、設計情報取得部101は、ユーザ400の要求を受けて、設計情報記憶部200から設計情報を読み取る(ステップS1)。設計情報は、表計算ソフトで作成した設計情報のデータや、GUI(グラフィック・ユーザ・インタフェース)ツールで描画した処理フロー図から作成したデータ等が考えられるが、特にその形態は制限しない。
ユーザ400は、ソースコード自動生成装置100にソースコード生成の要求を入力する(ステップS1−1)。例えば、ユーザ400は、ソースコード自動生成装置100が備える図示しない入力装置により要求を入力してもよく、ユーザ400の保有するコンピュータ装置からソースコード自動生成装置100にソースコード生成の要求を送信してもよい。ソースコード自動生成装置100は、ユーザ400が入力した要求をトリガとして、以降の処理を実行する。なお、ソースコード自動生成装置100が、ソースコード生成の全体をハンドリングする機能部を有し、この機能部の制御によって以降の処理を行ってもよい。
ステップS2において、設計情報振分部102は、設計情報取得部101が取得した設計情報を受信し、ロジックソースコード生成部105、参照ソースコード生成部106、及び分離対象外ソースコード生成部107に出力する。
分離対象設計情報の「演算クラス名」は、設計情報の「ジョブクラス名」の最後の「.」より後方部分に“Operator”を付加して生成される。分離対象設計情報の「演算子パッケージ名」は、設計情報の「ジョブクラス名」の最後の「.」より前方部分に「.operator」を付加して生成される。
(2)設計情報の「演算名」が”Stop”以外の演算処理については、以下に示す(a)〜(d)の変換がなされて、分離対象設計情報の「演算処理のリスト」の演算処理として設定される。
(b)分離対象設計情報の演算処理の「入力のリスト」には、設計情報の対応する演算処理の全ての「入力」をリスト形式で記述する。例えば、設計情報の演算処理の「入力:{p1}」,「入力:{p2}」,「入力:{p3}」は、分離対象設計情報の演算処理では、「入力リスト:{{p1},{p2},{p3}}」の形式となる。さらに、設計情報の演算処理の「入力」にはそれぞれ、以下に示す変換がなされて分離対象設計情報の演算処理の「入力のリスト」の要素となる。すなわち、分離対象設計情報の「モデル名」には、設計情報の「入力」の「型名」の頭文字を大文字にし、さらに、「_」の次の文字を大文字にして「_」を削除した名前が設定される。また、分離対象設計情報の入力の「演算変数名」には、設計情報の「入力」の「演算変数名」が設定される。
分離対象外設計情報の「ジョブクラス名」には、設計情報の「ジョブクラス名」の最後の「.」よりの後方部分が設定され、分離対象外設計情報の「ジョブパッケージ名」には、設計情報の「ジョブクラス名」の最後の「.」より前方部分が設定される。分離対象外設計情報の「ジョブフロー名」には、設計情報の「ジョブフロー名」が設定される。
(a)分離対象外設計情報の「メソッド名」には、設計情報の「メソッド名」が設定される。
(b)分離対象外設計情報の「メソッドクラス名」には、設計情報の「メソッド名」の頭文字が大文字に変換されて設定される。
(c)分離対象外設計情報の「変数名」には、設計情報の「変数名」が設定される。
(d)分離対象外設計情報の演算処理の「入力のリスト」には、設計情報の対応する演算処理の全ての「入力」をリスト形式で記述する。さらに、設計情報の演算処理の「入力」にはそれぞれ、以下に示す変換がなされて分離対象設計情報の対応する演算処理の「入力のリスト」の要素となる。すなわち、分離対象外設計情報の入力の「変数名」には、設計情報の「入力」の「変数名」が設定される。また、分離対象外設計情報の入力の「モデル名」には、設計情報の「入力」の「型名」の頭文字を大文字にし、さらに、「_」の次の文字を大文字にして「_」を削除した名前が設定される。分離対象外設計情報の入力の「演算変数名」には、設計情報の「入力」の「演算変数名」が設定される。設計情報の「入力」に「演算変数名」の設定がない場合、分離対象外設計情報の入力の「演算変数名」も設定されない。
設計情報の演算処理の「演算名」と「出力」は、分離対象外設計情報への変換では利用しない。
図12に示すテンプレートには、分離対象設計情報の「演算子パッケージ名」からパッケージ名を生成すること、分離対象設計情報の「演算クラス名」からパブリック抽象クラスのクラス名を生成することが記述されている。
また、図12に示すテンプレートには、分離対象設計情報の「演算処理のリスト」内の各演算処理について、ロジックソースコードのロジックの実装箇所を生成することが記述されている。「演算名」が"Update"であれば、「メソッド名」と「入力のリスト」内の各入力パラメータとを用いて、「演算名」が"Convert"であれば、「メソッド名」と「出力のリスト」内の各出力パラメータとを用いて、各演算処理のロジックの実装箇所が生成される。
参照ソースコード生成部106は、ソースコードテンプレート記憶部103から参照ソースコード生成用のテンプレートを取得する(ステップS5−1)。参照ソースコード生成部106は、分離対象設計情報と参照ソースコード生成用のテンプレートをマージし、参照ソースコードを生成する(ステップS5−2)。参照ソースコード生成部106は、生成した参照ソースコードをソースコード記憶部300に保存する(ステップS5−3)。
また、図15に示すテンプレートには、分離対象設計情報の「演算処理のリスト」に含まれる各演算処理のアノテーションとメソッドを生成することが記述されている。アノテーション名は、分離対象設計情報の演算処理の「演算名」であり、コード生成装置がソースコードから処理実行コードを生成する際に使用される。また、図15に示すテンプレートには、分離対象設計情報の各演算処理の「メソッド名」と「入力のリスト」内の各入力パラメータから、ロジックソースコード内の演算処理を継承したメソッドを生成することが記述されている。
分離対象外ソースコード生成部107は、ソースコードテンプレート記憶部103から分離対象外ソースコード生成用のテンプレートを取得する(ステップS6−1)。分離対象外ソースコード生成部107は、分離対象外設計情報と分離対象外ソースコード生成用のテンプレートをマージし、分離対象外ソースコードを生成する(ステップS6−2)。分離対象外ソースコード生成部107は、生成した分離対象外ソースコードをソースコード記憶部300に保存する(ステップS6−3)。
また、図18に示すテンプレートには、分離対象外設計情報のジョブフローの「入力のリスト」に含まれる各入力パラメータから分離対象外ソースコードの入力パラメータのデータ型と変数名を生成することが記述されている。また、図18に示すテンプレートには、分離対象外設計情報のジョブフローの「出力のリスト」に含まれる各出力パラメータから、分離対象外ソースコードの出力パラメータのデータ型と変数名を生成することが記述されている。
さらに、図18に示すテンプレートには、分離対象外設計情報の「演算処理のリスト」に含まれる各演算処理の変数名と入力のリストに基づいて、各演算処理間の入力パラメータと出力パラメータとの関係を記述したソースコードを生成することが記述されている。
Claims (5)
- ジョブを構成する演算処理が記述された設計情報を取得する設計情報取得部と、
設計情報に記述された演算処理の実装部分の記述箇所を含むソースコードであるロジックソースコードが、前記設計情報取得部が取得した前記設計情報を修正する前の設計情報から生成されているか否かを判断するロジックソースコード確認部と、
前記ロジックソースコード確認部においてロジックソースコードが生成されていないと判断された場合に、前記設計情報取得部が取得した前記設計情報に基づいてロジックソースコードを生成するロジックソースコード生成部と、
前記ロジックソースコードに記述される演算処理の実装部分を利用して前記演算処理を実行するためのソースコードである参照ソースコードを、前記設計情報取得部が取得した前記設計情報に基づいて生成する参照ソースコード生成部と、
を備えるソースコード自動生成装置。 - 前記設計情報は、前記ジョブにおける前記演算処理の流れの記述をさらに含み、
前記設計情報に記述された前記演算処理の流れに従って前記ジョブを実行するためのソースコードである分離対象外ソースコードを、前記設計情報取得部が取得した前記設計情報に基づいて生成する分離対象外ソースコード生成部をさらに備える、
請求項1に記載のソースコード自動生成装置。 - 前記設計情報取得部が取得した前記設計情報から前記演算処理に関する記述を抽出した分離対象設計情報を生成する処理と、前記設計情報から前記ジョブにおける前記演算処理の流れに関する記述を抽出した分離対象外設計情報を生成する処理とを実行する設計情報振分部をさらに備え、
前記ロジックソースコード生成部は、前記ロジックソースコード確認部においてロジックソースコードが生成済みではないと判断された場合に、前記設計情報振分部が生成した前記分離対象設計情報に基づいて前記ロジックソースコードを生成し、
前記参照ソースコード生成部は、前記設計情報振分部が生成した前記分離対象設計情報に基づいて前記参照ソースコードを生成し、
前記分離対象外ソースコード生成部は、前記設計情報振分部が生成した前記分離対象外設計情報から前記分離対象外ソースコードを生成する、
請求項2に記載のソースコード自動生成装置。 - 前記ロジックソースコードと前記参照ソースコードとは、オブジェクト指向における継承関係を有し、
前記参照ソースコードは、前記ロジックソースコードを継承する請求項1から請求項3のいずれか1項に記載のソースコード自動生成装置。 - コンピュータに、
ジョブを構成する演算処理が記述された設計情報を取得する設計情報取得ステップと、
設計情報に記述された演算処理の実装部分の記述箇所を含むソースコードであるロジックソースコードが、前記設計情報取得ステップにおいて取得した前記設計情報を修正する前の設計情報から生成されているか否かを判断する確認ステップと、
前記確認ステップにおいてロジックソースコードが生成されていないと判断された場合に、前記設計情報取得ステップにおいて取得した前記設計情報に基づいてロジックソースコードを生成するロジックソースコード生成ステップと、
前記ロジックソースコードに記述される演算処理の実装部分を利用して前記演算処理を実行するためのソースコードである参照ソースコードを、前記設計情報取得ステップにおいて取得した前記設計情報に基づいて生成する参照ソースコード生成ステップと、
を実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014173305A JP6301783B2 (ja) | 2014-08-27 | 2014-08-27 | ソースコード自動生成装置、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014173305A JP6301783B2 (ja) | 2014-08-27 | 2014-08-27 | ソースコード自動生成装置、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016048477A JP2016048477A (ja) | 2016-04-07 |
JP6301783B2 true JP6301783B2 (ja) | 2018-03-28 |
Family
ID=55649343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014173305A Active JP6301783B2 (ja) | 2014-08-27 | 2014-08-27 | ソースコード自動生成装置、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6301783B2 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001344105A (ja) * | 2000-03-31 | 2001-12-14 | Hitachi Software Eng Co Ltd | Webアプリケーション開発方法、開発支援システム、および該方法に係るプログラムを記憶した記憶媒体 |
JP2003216428A (ja) * | 2002-01-28 | 2003-07-31 | Mitsubishi Electric Corp | オブジェクト指向プログラミング支援装置 |
JP2003271382A (ja) * | 2002-03-15 | 2003-09-26 | Mitsubishi Denki Information Technology Corp | ソフトウエア開発ツールを用いたアプリケーション開発システム |
JP2010152667A (ja) * | 2008-12-25 | 2010-07-08 | Exa Corp | ソースコード自動生成プログラム |
-
2014
- 2014-08-27 JP JP2014173305A patent/JP6301783B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016048477A (ja) | 2016-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2010212391B2 (en) | Integration environment generator | |
Rodriguez-Echeverria et al. | Towards a language server protocol infrastructure for graphical modeling | |
WO2018036342A1 (zh) | 基于csar的模型文件的可视化设计方法及装置 | |
JP2015215887A (ja) | 変更管理システム、変更管理方法および変更管理プログラム | |
CN111610978A (zh) | 一种小程序转换方法、装置、设备及存储介质 | |
CN108762743A (zh) | 一种数据表操作代码生成方法及装置 | |
JP6479184B2 (ja) | コンピュータ実行可能なモデルリバースエンジニアリング方法及び装置 | |
CN111581920A (zh) | 文档转换方法、装置、设备及计算机存储介质 | |
Grønmo et al. | Comparison of three model transformation languages | |
CN104750472A (zh) | 一种终端应用的资源包管理方法和装置 | |
Gulwani et al. | StriSynth: synthesis for live programming | |
Gómez et al. | An approach to the co-creation of models and metamodels in Enterprise Architecture Projects. | |
WO2020075532A1 (ja) | システム移行支援装置、システム移行支援方法及びプログラム | |
JP2014006877A (ja) | 入力文字列の集合から当該入力文字列の集合を文字列で表現する少なくとも1つのパターン表現に変換する方法、並びに、当該変換パターンを近似パターン表現式として取り出す方法、並びにそのコンピュータ及びコンピュータ・プログラム | |
KR102300005B1 (ko) | 소프트웨어 컴포넌트를 표현하는 각각의 그래픽 객체 간의 연결 조작을 이용한 소프트웨어 개발 어시스트 방법 및 그 시스템 | |
JP5041990B2 (ja) | ソフトウェア部品抽出支援装置 | |
US20100275183A1 (en) | Source code auditor with a customized rules builder | |
JP6301783B2 (ja) | ソースコード自動生成装置、及びプログラム | |
Sawprakhon et al. | Sequence diagram generation with model transformation technology | |
US10127034B1 (en) | System, method, and computer program for delayed evaluation of condition based trees | |
CN104484156A (zh) | 多语言公式的编辑方法、编辑系统和多语言公式编辑器 | |
JPWO2018174000A1 (ja) | 構成管理装置、構成管理方法および構成管理プログラム | |
Feldmann et al. | Improving task-driven software development approaches for creating service-based interactive applications by using annotated web services | |
JP2016051367A (ja) | データ解析装置、データ解析方法、および、プログラム。 | |
JP2012150740A (ja) | プログラム生成装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170328 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180117 |
|
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: 20180130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180301 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6301783 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |