JP2020087033A - Program generating apparatus, and program generating method - Google Patents

Program generating apparatus, and program generating method Download PDF

Info

Publication number
JP2020087033A
JP2020087033A JP2018221532A JP2018221532A JP2020087033A JP 2020087033 A JP2020087033 A JP 2020087033A JP 2018221532 A JP2018221532 A JP 2018221532A JP 2018221532 A JP2018221532 A JP 2018221532A JP 2020087033 A JP2020087033 A JP 2020087033A
Authority
JP
Japan
Prior art keywords
screen
source code
scope
variable
condition
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.)
Granted
Application number
JP2018221532A
Other languages
Japanese (ja)
Other versions
JP7059165B2 (en
Inventor
玄太 是木
Genta Koreki
玄太 是木
前岡 淳
Atsushi Maeoka
淳 前岡
仁 芳ケ迫
Hitoshi Yoshigasako
仁 芳ケ迫
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.)
Hitachi Systems Ltd
Original Assignee
Hitachi Systems Ltd
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 Hitachi Systems Ltd filed Critical Hitachi Systems Ltd
Priority to JP2018221532A priority Critical patent/JP7059165B2/en
Publication of JP2020087033A publication Critical patent/JP2020087033A/en
Application granted granted Critical
Publication of JP7059165B2 publication Critical patent/JP7059165B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

To efficiently and properly set a scope of variables.SOLUTION: A program generating apparatus 10 according to the present invention stores an analysis target source code 151 including description relating to a screen and a scope determination condition 154 which is used upon determination of a scope of screen description variables that are variables for use in description relating to the screen and is a condition set in relation to structure or a behavior of a screen. The program generating apparatus 10 extracts the screen description variables from the analysis target source code 151, specifies a structure or a behavior of a screen described by the extracted screen description variables from information obtained based on the analysis target source code 151, determines a scope to be set to the screen description variables by comparing the specified structure or behavior with the scope determination condition, and generates an adjusted source code which is a source code described so as to set the screen description variables in the determined scope, based on the analysis target source code 151.SELECTED DRAWING: Figure 3

Description

本発明は、プログラム生成装置、及びプログラム生成方法に関する。 The present invention relates to a program generation device and a program generation method.

特許文献1には、プログラム設計変更における情報隠蔽作業を自動リファクタリング化することを目的として構成された情報隠蔽装置について記載されている。情報隠蔽装置は、入力されたプログラムにおける変数のうち、ユーザに指定された変数の生存範囲を算出し、ユーザに指定された変数の被覆メソッドを算出し、新規クラスの抽出が必要か否かを判定し、上記ユーザに指定された変数を、上記被覆メソッドまたはその上位にあるメソッドの局所変数とし、上記入力されたプログラムから新規クラスを抽出し、上記指定された変数をその新規クラスのメンバ変数とし、上記指定された変数にアクセスするメソッドを上記新規クラスに移動し、上記新規クラスのインスタンスを、上記被覆メソッドまたはその上位にあるメソッドの局所変数とする。 Patent Document 1 describes an information hiding device configured for the purpose of automatically refactoring the information hiding work in changing the program design. The information hiding device calculates the survival range of the variable specified by the user among the variables in the input program, calculates the covering method of the variable specified by the user, and determines whether a new class needs to be extracted. Judgment, the variable specified by the user is used as a local variable of the covering method or a method above it, a new class is extracted from the input program, and the specified variable is a member variable of the new class. Then, the method for accessing the specified variable is moved to the new class, and an instance of the new class is set as a local variable of the covering method or a method above it.

特開2006−201981号公報JP, 2006-201981, A

Webサービス等を提供するソフトウェアの開発に際しては、プログラムで用いられる変数に割り当てた記憶領域が解放されずに確保されたままとなり、主記憶装置等の記憶資源を枯渇させてサービスに影響を与える、いわゆるメモリリーク(Memory leak)の発生
を予防することが求められる。メモリリークの予防策としては、変数のスコープを最小の範囲に限定することが効果的である。
When developing software that provides a Web service or the like, the storage area allocated to the variable used in the program is not released and remains secured, which depletes the storage resources such as the main storage device and affects the service. It is required to prevent the occurrence of so-called memory leak. As a memory leak prevention measure, it is effective to limit the scope of variables to the minimum range.

しかし現状のソフトウェア開発工程では、複雑な判断が要求されるスコープの決定を変数毎に人手で行っており、作業負担やコストが課題となっている。尚、特許文献1では、メソッドやその上位メソッドの利用/被利用関係に基づき変数のスコープを判定している。そのため、利用/被利用関係がない場合は変数のスコープを判定することができない。 However, in the current software development process, the scope that requires complicated judgment is manually determined for each variable, and work load and cost are problems. In Patent Document 1, the scope of the variable is determined based on the usage/used relationship of the method and its upper method. Therefore, if there is no usage/used relationship, the scope of the variable cannot be determined.

本発明はこのような背景に鑑みてなされたものであり、変数のスコープを効率よく適切に設定することが可能な、プログラム生成装置、及びプログラム生成方法を提供することを目的とする。 The present invention has been made in view of such a background, and an object thereof is to provide a program generation device and a program generation method capable of efficiently and appropriately setting the scope of variables.

上記目的を達成するための本発明のうちの一つは、情報処理装置であって、画面に関する記述を含んだソースコードである解析対象ソースコード、及び、前記解析対象ソースコードにおいて画面に関する記述に用いられている変数である画面記述変数のスコープの決定に際して用いられ、前記画面の構造または挙動に関して設定された条件であるスコープ判定条件、を記憶し、前記解析対象ソースコードから前記画面記述変数を抽出し、抽出した前記画面記述変数によって記述される画面の構造または挙動を前記解析対象ソースコードに基づき取得される情報から特定し、特定した前記構造または挙動を前記スコープ判定条件と対照することにより前記画面記述変数に設定すべきスコープを決定し、前記解析対象ソースコードに基づき、前記画面記述変数が前記決定した前記スコープとなるように記述したソースコードである調整ソースコードを生成する、プログラム生成装置。 One of the present inventions for achieving the above-mentioned object is an information processing apparatus, which is an analysis target source code that is a source code including a description about a screen, and a description about a screen in the analysis target source code. Used in determining the scope of the screen description variable that is used, the scope determination condition, which is the condition set with respect to the structure or behavior of the screen, is stored, and the screen description variable is extracted from the analysis target source code. By extracting and identifying the structure or behavior of the screen described by the extracted screen description variable from the information acquired based on the analysis target source code, and comparing the identified structure or behavior with the scope determination condition. Program generation for determining a scope to be set in the screen description variable, and generating an adjustment source code that is a source code described so that the screen description variable becomes the determined scope based on the analysis source code apparatus.

その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。 In addition, the problems disclosed by the present application and the solutions therefor will be made clear by the section of the embodiments for carrying out the invention and the drawings.

本発明によれば、変数のスコープを効率よく適切に設定することができる。 According to the present invention, the scope of variables can be set efficiently and appropriately.

情報処理システムの概略的な構成を示す図である。It is a figure which shows the schematic structure of an information processing system. 情報処理システムを構成する情報処理装置の一例を示す図である。It is a figure which shows an example of the information processing apparatus which comprises an information processing system. プログラム生成装置が備える主な機能を示す図である。It is a figure which shows the main functions with which a program generation device is equipped. ソフトウェア管理装置が備える主な機能を示す図である。It is a figure which shows the main function with which a software management apparatus is equipped. ソースコードの画面定義部、画面記述変数のスコープ、及び情報保存強度の関係を説明する図である。It is a figure explaining the relationship of the screen definition part of a source code, the scope of a screen description variable, and information storage strength. 解析対象ソースコードの一例を示す図である。It is a figure which shows an example of an analysis target source code. 図6の解析対象ソースコードにおける画面(画面定義部)の構造を説明する図である。It is a figure explaining the structure of the screen (screen definition part) in the analysis object source code of FIG. (a)、(b)は、画面の遷移の挙動に関する記述を含むソースコードの例である。(A), (b) is an example of the source code including the description about the behavior of the screen transition. 画面記述変数表の一例である。It is an example of a screen description variable table. スコープ判定条件の一例である。It is an example of a scope determination condition. プログラム生成処理を説明するフローチャートである。It is a flow chart explaining program generation processing. 画面の遷移と画面記述変数の内容の保存状況を説明する図である。It is a figure explaining the transition of a screen and the preservation situation of the contents of a screen description variable.

以下、実施形態につき図面を参照しつつ説明する。 Hereinafter, embodiments will be described with reference to the drawings.

図1に一実施形態として示す情報処理システム1の概略的な構成を示している。同図に示すように、情報処理システム1は、プログラム生成装置10、及び一つ以上のソフトウェア管理装置20を含む。プログラム生成装置10とソフトウェア管理装置20は通信ネットワーク5を介して通信可能に接続されている。通信ネットワーク5は、有線または無線方式による通信手段であり、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット等である。 FIG. 1 shows a schematic configuration of an information processing system 1 shown as an embodiment. As shown in FIG. 1, the information processing system 1 includes a program generation device 10 and one or more software management devices 20. The program generation device 10 and the software management device 20 are communicably connected via a communication network 5. The communication network 5 is a wired or wireless communication means, and is, for example, a LAN (Local Area Network), a WAN (Wide Area Network), the Internet, or the like.

ソフトウェア管理装置20は、情報処理装置であって、例えば、ソフトウェアの開発や保守のために用いられるリポジトリサーバ、ネットワークストレージ、ソフトウェアの開発者や保守者等が操作する端末装置等である。ソフトウェア管理装置20は、ソフトウェアを構成するプログラムのソースコードを管理(記憶)するとともに、上記のプログラムの実行に際して生成されるログ情報(以下、「実行ログ」と称する。)を生成する。 The software management device 20 is an information processing device, and is, for example, a repository server used for software development or maintenance, a network storage, a terminal device operated by a software developer or a maintainer, or the like. The software management device 20 manages (stores) the source code of a program that constitutes the software, and also generates log information (hereinafter, referred to as “execution log”) generated when the above program is executed.

プログラム生成装置10は、情報処理装置であって、ソフトウェア管理装置20に管理されている上記のソースコードや実行ログに基づきソースコードを自動的に生成する機能を備える。 The program generation device 10 is an information processing device and has a function of automatically generating a source code based on the above-mentioned source code and execution log managed by the software management device 20.

尚、本実施形態では、このようにプログラム生成装置10や各ソフトウェア管理装置20が夫々独立したハードウェア(情報処理装置)により実現されるとして説明するが、プログラム生成装置10やソフトウェア管理装置20のハードウェア構成は必ずしも限定されない。例えば、プログラム生成装置10とソフトウェア管理装置20の2つ以上を共通のハードウェアにより実現してもよい。またソフトウェア管理装置20をプログラム生成装置10として機能させるようにしてもよい。また上記のハードウェアは、その構成の全部または一部がクラウドシステム(cloud system)のクラウドサーバ(cloud server)の
ような仮想的な資源により実現されるものであってもよい。
In this embodiment, the program generation device 10 and each software management device 20 are described as being realized by independent hardware (information processing device), but the program generation device 10 and the software management device 20 are The hardware configuration is not necessarily limited. For example, two or more of the program generation device 10 and the software management device 20 may be realized by common hardware. Further, the software management device 20 may be made to function as the program generation device 10. Further, the above hardware may be realized by virtual resources such as a cloud server of a cloud system in whole or in part.

図2は、上記のハードウェアの一例として示す情報処理装置100のブロック図である。同図に示すように、情報処理装置100は、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、及び通信装置16の各構成を備える。これらは図示しないバス等の通信手段を介して通信可能に接続されている。 FIG. 2 is a block diagram of the information processing apparatus 100 shown as an example of the above hardware. As shown in the figure, the information processing apparatus 100 includes respective configurations of a processor 11, a main storage device 12, an auxiliary storage device 13, an input device 14, an output device 15, and a communication device 16. These are communicably connected via a communication means such as a bus (not shown).

プロセッサ11は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等を用いて構成される。プロセッサ11が、主記憶装置12に格納されているプログラムを読み出して実行することにより、プログラム生成装置10やソフトウェア管理装置20の機能が実現される。 The processor 11 is configured using a CPU (Central Processing Unit), an MPU (Micro Processing Unit), and the like. The functions of the program generation device 10 and the software management device 20 are realized by the processor 11 reading and executing the program stored in the main storage device 12.

主記憶装置12は、プログラムやデータを記憶する装置であり、ROM(Read Only Memory)、RAM(Random Access Memory)、不揮発性半導体メモリ(NVRAM(Non Volatile RAM))等である。 The main storage device 12 is a device that stores programs and data, and is a ROM (Read Only Memory), a RAM (Random Access Memory), a non-volatile semiconductor memory (NVRAM (Non Volatile RAM)), or the like.

補助記憶装置13は、SSD(Solid State Drive)、SDメモリカード等の各種不揮
発性メモリ(NVRAM:Non-volatile memory)、ハードディスクドライブ、光学式記憶装置
(CD(Compact Disc)、DVD(Digital Versatile Disc)等)、クラウドサーバの記憶領域等である。補助記憶装置13に格納されているプログラムやデータは主記憶装置12に随時読み込まれる。
The auxiliary storage device 13 is an SSD (Solid State Drive), various non-volatile memories (NVRAM: Non-volatile memory) such as an SD memory card, a hard disk drive, an optical storage device (CD (Compact Disc), DVD (Digital Versatile Disc). ) Etc.), the storage area of the cloud server, etc. The programs and data stored in the auxiliary storage device 13 are read into the main storage device 12 as needed.

入力装置14は、外部から情報の入力を受け付けるインタフェースであり、例えば、キーボード、マウス、タッチパネル、音声入力装置(マイクロフォン等)である。 The input device 14 is an interface that receives input of information from the outside, and is, for example, a keyboard, a mouse, a touch panel, or a voice input device (microphone or the like).

出力装置15は、各種の情報を出力するインタフェースであり、画像表示装置(液晶モニタ、LCD(Liquid Crystal Display)、グラフィックカード)、印字装置、音声出力装置(スピーカ等)である。 The output device 15 is an interface that outputs various kinds of information, and is an image display device (liquid crystal monitor, LCD (Liquid Crystal Display), graphic card), printing device, audio output device (speaker, etc.).

通信装置16は、通信ネットワーク5を介した他の装置との間の通信を実現する有線方式または無線方式の通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、シリアル通信モジュール等である。尚、通信装置16を他の装置からの情報の入力を受け付ける入力装置14として機能させてもよい。また通信装置16を他の装置に情報を出力する出力装置15として機能させてもよい。 The communication device 16 is a wired or wireless communication interface that realizes communication with other devices via the communication network 5, and includes, for example, a NIC (Network Interface Card), a wireless communication module, and a USB (Universal Serial). Interface) module, serial communication module, etc. The communication device 16 may function as the input device 14 that receives the input of information from another device. In addition, the communication device 16 may function as the output device 15 that outputs information to another device.

情報処理装置100は、上記の構成に加え、例えば、デバイスドライバ、オペレーティングシステム、ファイルシステム、DBMS(DataBase Management System)等をさらに備えていてもよい。情報処理装置100は、各種の情報(データ)を、例えば、データベースのテーブルやファイルシステムによって管理されるファイルとして管理(記憶)する。 The information processing apparatus 100 may further include, for example, a device driver, an operating system, a file system, a DBMS (DataBase Management System), and the like in addition to the above configuration. The information processing apparatus 100 manages (stores) various information (data) as, for example, a table of a database or a file managed by a file system.

図3にプログラム生成装置10が備える主な機能を示している。プログラム生成装置10は、ソースコードを解析し、ソースコードに含まれている、画面に関して用いられている変数(画面の構造定義や遷移の制御に用いられている変数等。以下、「画面記述変数」と称する。)のスコープ(変数を参照可能な範囲(可視範囲))を決定する。尚、変数はソースコードにおいて関数として機能するものであってもよい。 FIG. 3 shows main functions of the program generation device 10. The program generation device 10 analyzes the source code and uses the variables included in the source code for the screen (variables used for the structural definition of the screen and the control of the transition. ).) (a range in which a variable can be referred to (visible range)) is determined. The variable may be one that functions as a function in the source code.

同図に示すように、プログラム生成装置10は、記憶部110、ソースコード取得部111、実行ログ取得部112、ソースコード解析部113、スコープ判定部114、ソー
スコード生成部115、及びソースコード送信部116の各機能を有する。これらの機能は、プログラム生成装置10のプロセッサ11が、プログラム生成装置10の主記憶装置12に記憶されているプログラムを読み出して実行することにより実現される。
As shown in the figure, the program generation device 10 includes a storage unit 110, a source code acquisition unit 111, an execution log acquisition unit 112, a source code analysis unit 113, a scope determination unit 114, a source code generation unit 115, and a source code transmission. It has each function of the unit 116. These functions are realized by the processor 11 of the program generation device 10 reading and executing the program stored in the main storage device 12 of the program generation device 10.

記憶部110は、ソースコード151、実行ログ152、画面記述変数表153、及びスコープ判定条件154を記憶する。 The storage unit 110 stores a source code 151, an execution log 152, a screen description variable table 153, and a scope determination condition 154.

ソースコード151は、ソースコード取得部111によってソフトウェア管理装置20から取得(受信)され、ソースコード解析部113による解析の対象となるソースコード(以下、「解析対象ソースコード」と称する。)を含む。尚、解析対象ソースコードは、ソフトウェア管理装置20において管理されている既存のソースコードや、ソフトウェア管理装置20において設計情報等に基づき自動生成されたもの等、とくに限定されない。 The source code 151 is acquired (received) from the software management device 20 by the source code acquisition unit 111 and includes a source code to be analyzed by the source code analysis unit 113 (hereinafter, referred to as “analysis target source code”). .. The source code to be analyzed is not particularly limited, such as an existing source code managed by the software management device 20 or one automatically generated by the software management device 20 based on design information or the like.

またソースコード151は、ソースコード生成部115が、解析対象ソースコードに基づき生成したソースコード(以下、「調整ソースコード」とも称する。)を含む。
ソースコード生成部115は、画面記述変数がスコープ判定部114により決定されたスコープになるように調整ソースコードを生成する。調整ソースコードは、ソースコード送信部116によりソフトウェア管理装置20に送信される、
Further, the source code 151 includes the source code (hereinafter, also referred to as “adjustment source code”) generated by the source code generation unit 115 based on the analysis target source code.
The source code generation unit 115 generates the adjusted source code so that the screen description variable becomes the scope determined by the scope determination unit 114. The adjusted source code is transmitted to the software management device 20 by the source code transmission unit 116,

尚、本実施形態では、ソースコード151は、例えば、AngularJS(登録商標)等のフレ
ームワークを利用して生成される、JavaScript(登録商標)により記述されたものを例示するが、ソースコード151の種類は、特定のフレームワークによるものや特定の言語で記述されるものに限定されない。例えば、ソースコード151は、TypeScript(登録商標)やHTML(登録商標)等によって記述されたものであってもよい。
In the present embodiment, the source code 151 is, for example, one described in JavaScript (registered trademark) generated by using a framework such as AngularJS (registered trademark). Kinds are not limited to those in a particular framework or written in a particular language. For example, the source code 151 may be described in TypeScript (registered trademark), HTML (registered trademark), or the like.

実行ログ152は、実行ログ取得部112によってソフトウェア管理装置20から取得(受信)された、ソースコードに基づくプログラムの実行ログである。 The execution log 152 is an execution log of a program based on the source code acquired (received) from the software management device 20 by the execution log acquisition unit 112.

画面記述変数表153は、ソースコード解析部113がソースコード151から抽出した画面記述変数に関する情報を含む。画面記述変数表153はスコープ判定部114により参照される。 The screen description variable table 153 includes information about the screen description variables extracted from the source code 151 by the source code analysis unit 113. The screen description variable table 153 is referred to by the scope determination unit 114.

スコープ判定条件154は、画面記述変数のスコープの決定に用いる情報(以下、「スコープ判定条件」と称する。)を含む。スコープ判定条件154は、スコープ判定部114が、画面記述変数によって記述される画面の挙動を、解析対象ソースコードを解析することにより特定する際に参照する条件である「ソースコード判定条件」と、画面記述変数によって記述される画面の挙動を、実行ログにより解析することにより特定する際に参照する条件である「実行ログ判定条件」と、を含む。 The scope determination condition 154 includes information used for determining the scope of the screen description variable (hereinafter, referred to as “scope determination condition”). The scope judgment condition 154 is a “source code judgment condition” which is a condition that the scope judgment unit 114 refers to when the behavior of the screen described by the screen description variable is specified by analyzing the analysis target source code. It includes a “execution log determination condition” that is a condition referred to when the behavior of the screen described by the screen description variable is specified by analyzing the behavior by the execution log.

プログラム生成装置10が有する上記機能のうち、ソースコード取得部111は、通信ネットワーク5を介してソフトウェア管理装置20からソースコードを取得(受信)する。取得したソースコードは記憶部110がソースコード151として記憶する。 Among the above functions of the program generation device 10, the source code acquisition unit 111 acquires (receives) the source code from the software management device 20 via the communication network 5. The storage unit 110 stores the acquired source code as the source code 151.

実行ログ取得部112は、通信ネットワーク5を介してソフトウェア管理装置20から実行ログを取得(受信)する。取得した実行ログは記憶部110が実行ログ152として記憶する。 The execution log acquisition unit 112 acquires (receives) an execution log from the software management device 20 via the communication network 5. The storage unit 110 stores the acquired execution log as the execution log 152.

ソースコード解析部113は、ソースコード151を解析してソースコード151から画面記述変数を抽出して画面記述変数表153を生成する。 The source code analysis unit 113 analyzes the source code 151, extracts screen description variables from the source code 151, and generates a screen description variable table 153.

スコープ判定部114は、スコープ判定条件154に基づき、画面記述変数表153における各画面記述変数のスコープを決定する。 The scope determination unit 114 determines the scope of each screen description variable in the screen description variable table 153 based on the scope determination condition 154.

ソースコード生成部115は、解析対象ソースコードに基づき、画面記述変数表153における各画面記述変数がスコープ判定部114が決定したスコープになるように記述した調整ソースコードを生成する。 The source code generation unit 115 generates the adjusted source code described so that each screen description variable in the screen description variable table 153 is in the scope determined by the scope determination unit 114, based on the analysis target source code.

ソースコード送信部116は、ソースコード生成部115が生成したソースコード151をソフトウェア管理装置20に送信する。 The source code transmission unit 116 transmits the source code 151 generated by the source code generation unit 115 to the software management device 20.

図4にソフトウェア管理装置20が備える主な機能を示している。同図に示すように、ソフトウェア管理装置20は、記憶部210、ソフトウェア管理部211、プログラム実行部212、ソースコード送信部213、及び実行ログ送信部214の各機能を有する。これらの機能は、ソフトウェア管理装置20のプロセッサ11が、ソフトウェア管理装置20の主記憶装置12に記憶されているプログラムを読み出して実行することにより実現される。 FIG. 4 shows main functions of the software management device 20. As shown in the figure, the software management device 20 has respective functions of a storage unit 210, a software management unit 211, a program execution unit 212, a source code transmission unit 213, and an execution log transmission unit 214. These functions are realized by the processor 11 of the software management device 20 reading and executing a program stored in the main storage device 12 of the software management device 20.

記憶部210は、ソースコード251及び実行ログ252を記憶する。ソースコード251は、ソフトウェア管理部211が管理するソースコードであり、例えば、開発対象や保守対象のソースコードである。実行ログ252は、プログラム実行部212がソースコード251に基づくプログラムを実行することにより生成される実行ログである。 The storage unit 210 stores a source code 251 and an execution log 252. The source code 251 is a source code managed by the software management unit 211, and is, for example, a development target or maintenance target source code. The execution log 252 is an execution log generated by the program execution unit 212 executing a program based on the source code 251.

ソフトウェア管理部211は、例えば、統合開発環境(IDE:Integrated Development Environment)等のソフトウェアの開発/編集環境を提供し、開発対象もしくは編集対象のプログラムのソースコード251を管理する。 The software management unit 211 provides a software development/editing environment such as an integrated development environment (IDE) and manages the source code 251 of the program to be developed or edited.

プログラム実行部212は、ソースコード251に基づくプログラムを実行してその実行ログ253を生成する。 The program execution unit 212 executes a program based on the source code 251 and generates an execution log 253 thereof.

図5は、ソースコードの画面定義部、画面記述変数のスコープ、及び、以下の説明で用いる用語である「情報保存強度」の関係を説明する図である。情報保存強度とは、ソースコード151に記述されている変数の内容の情報処理装置100の主記憶装置12への残りやすさ(記憶の維持されやすさ)を示す指標である。情報保存強度が高いほどメモリリーク(Memory leak)が生じる危険性(リスク)が高くなる。 FIG. 5 is a diagram for explaining the relationship between the screen definition part of the source code, the scope of the screen description variable, and the term "information storage strength" used in the following description. The information storage strength is an index indicating how easily the content of the variable described in the source code 151 remains in the main storage device 12 of the information processing apparatus 100 (ease of memory retention). The higher the information storage strength, the higher the risk of memory leak (Memory leak).

例示するソースコードの画面定義部は、画面の入れ子関係を構成する、ルート画面定義部、親画面定義部、及び子画面定義部を有する。この構造(ルート画面の配下に親画面が定義され、親画面の配下に子画面が定義される構造)において、例えば、親画面定義部で定義されている変数は、制御がルート画面に移る(画面が遷移する)とその内容が失われてしまう。また子画面定義部で定義されている変数は、制御が親画面やルート画面に移るとその内容が失われてしまう。 The screen definition unit of the illustrated source code has a root screen definition unit, a parent screen definition unit, and a child screen definition unit that form a nesting relationship of screens. In this structure (a structure in which a parent screen is defined under the root screen and a child screen is defined under the parent screen), for example, control of variables defined in the parent screen definition unit is transferred to the root screen ( The screen will transition) and its contents will be lost. Also, the variables defined in the child screen definition section lose their contents when the control moves to the parent screen or the root screen.

同図に示すように、情報保存強度が高い変数ほどグローバル性が強く、情報保存強度が低い変数ほどローカル性が強くなる。例示するソースコードの画面定義部の構造では、各画面定義部に定義された変数の情報保存強度は、ルート画面定義部で定義された変数>親画面定義部で定義された変数>子画面定義部で定義された変数の順となる。 As shown in the figure, a variable having a higher information storage strength has a stronger globality, and a variable having a lower information storage strength has a stronger locality. In the structure of the screen definition part of the illustrated source code, the information storage strength of the variables defined in each screen definition part is: variable defined in the root screen definition part>variable defined in the parent screen definition part>child screen definition It is in the order of the variables defined in the section.

図6に解析対象ソースコードの一例を示す。例示する解析対象ソースコードは、ルーティングの定義(例えばリクエストURLに応じた処理の受け渡し先(コントローラ、テンプレート)の定義)に関してJavaScript(登録商標)により記述されたソースコードである
。解析対象ソースコードは、「parent」画面の定義に関する記述、「parent.child1」画
面の定義に関する記述、及び「parent.child2」画面の定義に関する記述を含む。
FIG. 6 shows an example of the analysis source code. The illustrated source code for analysis is a source code written in JavaScript (registered trademark) with respect to the definition of routing (for example, the definition of the transfer destination (controller, template) according to the request URL). The analysis target source code includes a description about the definition of the “parent” screen, a description about the definition of the “parent.child1” screen, and a description about the definition of the “parent.child2” screen.

例示する解析対象ソースコードには、「parent」画面のソースコードが、「templates/parent.html」というファイルと、「ParentCtrl」というコントローラが定義されたJavaScript(登録商標)のファイルに含まれていることが記述されている。また例示する解析対
象ソースコードには、「parent.child1」画面のソースコードが、「templates/child1.html」というファイルと、「Child1Ctrl」というコントローラが定義されたJavaScript(登
録商標)のファイルに含まれていることが記述されている。また例示する解析対象ソース
コードには、「parent.child2」画面のソースコードが、「templates/child2.html」というファイルと、「Child2Ctrl」というコントローラが定義されたJavaScript(登録商標)のファイルに含まれていることが記述されている。
The source code of the "parent" screen is included in the file "templates/parent.html" and the JavaScript (registered trademark) file in which the controller "ParentCtrl" is defined in the source code to be analyzed. Is described. In the source code to be analyzed as an example, the source code of the "parent.child1" screen is included in the file "templates/child1.html" and the JavaScript (registered trademark) file in which the controller "Child1Ctrl" is defined. Is described. In addition, in the source code to be analyzed as an example, the source code of the "parent.child2" screen is included in the file "templates/child2.html" and the JavaScript (registered trademark) file in which the controller "Child2Ctrl" is defined. Is described.

図7は、図6の解析対象ソースコードに基づく画面の構造を説明する図である。尚、例示するソースコードは、parent画面、parent.child1画面、parent.child2画面、及びparent画面の親画面となる大元の画面である「ルート画面」を含む。 FIG. 7 is a diagram illustrating the structure of a screen based on the analysis target source code of FIG. The illustrated source code includes a parent screen, a parent.child1 screen, a parent.child2 screen, and a "root screen" which is a parent screen of the parent screen.

同図に示すように、parent画面のソースコードは、ルート画面の定義部であるルート画面定義部と、parent画面の定義部であるparent画面定義部とを有する。ルート画面定義部に定義された変数は、parent画面定義部に定義された変数に対してグローバルな関係となる。 As shown in the figure, the source code of the parent screen has a root screen definition part which is a definition part of the root screen and a parent screen definition part which is a definition part of the parent screen. The variables defined in the root screen definition section have a global relationship with the variables defined in the parent screen definition section.

また同図に示すように、parent.child1画面のソースコードは、ルート画面の定義部で
あるルート画面定義部と、parent画面の定義部であるparent画面定義部と、parent.child1画面の定義部であるparent.child1画面定義部と、を有する。ルート画面定義部に定義された変数は、parent画面定義部に定義された変数に対してグローバルな関係となり、parent画面定義部に定義された変数は、parent.child1画面定義部に定義された変数に対して
グローバルな関係となる。
Also, as shown in the figure, the source code of the parent.child1 screen is the root screen definition part that is the definition part of the root screen, the parent screen definition part that is the definition part of the parent screen, and the definition part of the parent.child1 screen. And a screen definition part of parent.child1. The variables defined in the root screen definition part have a global relationship with the variables defined in the parent screen definition part, and the variables defined in the parent screen definition part are the variables defined in the parent.child1 screen definition part. Have a global relationship with.

また同図に示すように、parent.child2画面のソースコードは、ルート画面の定義部で
あるルート画面定義部と、parent画面の定義部であるparent画面定義部と、parent.child2画面の定義部であるparent.child2画面定義部と、を有する。ルート画面定義部に定義された変数は、parent画面定義部に記述された変数に対してグローバルな関係となり、parent画面定義部に定義された変数は、parent.child2画面定義部に定義された変数に対して
グローバルな関係となる。
As shown in the figure, the source code of the parent.child2 screen is the root screen definition part that is the definition part of the root screen, the parent screen definition part that is the definition part of the parent screen, and the definition part of the parent.child2 screen. And a screen definition part of parent.child2. The variables defined in the root screen definition part have a global relationship with the variables described in the parent screen definition part, and the variables defined in the parent screen definition part are the variables defined in the parent.child2 screen definition part. Have a global relationship with.

図8(a)、(b)は、JavaScript(登録商標)で記述された、画面の遷移の挙動に関する記述を含むソースコードの例である。このうち(a)のソースコードは、parent.child1画面からparent.child2画面への遷移の挙動に関する記述を含む。また(b)のソースコードは、parent.child2画面からparent.child1画面への遷移の挙動に関する記述を含む。 FIG. 8A and FIG. 8B are examples of source code written in JavaScript (registered trademark) that includes a description regarding behavior of screen transition. Of these, the source code of (a) includes a description about the behavior of the transition from the parent.child1 screen to the parent.child2 screen. Further, the source code of (b) includes a description regarding the behavior of the transition from the parent.child2 screen to the parent.child1 screen.

図9に、画面記述変数表153の一例を示す。画面記述変数表153は、画面名1531で特定される各画面と、夫々に定義されている変数の変数名1532との対応を示す情報を含む。例示する画面記述変数表153の場合、ルート画面については画面記述変数は抽出されていない。一方、parent画面については「m0」という画面記述変数が抽出されている。またparent.child1画面については、「m1」と「m2」という画面記述変数が
、parent.child2画面については、「m3」と「m4」という画面記述変数が、夫々抽出
されている。
FIG. 9 shows an example of the screen description variable table 153. The screen description variable table 153 includes information indicating the correspondence between each screen specified by the screen name 1531 and the variable name 1532 of the variable defined in each screen. In the illustrated screen description variable table 153, no screen description variable is extracted for the root screen. On the other hand, a screen description variable "m0" is extracted for the parent screen. The screen description variables "m1" and "m2" are extracted for the parent.child1 screen, and the screen description variables "m3" and "m4" are extracted for the parent.child2 screen.

図10にスコープ判定条件154の一例を示す。スコープ判定条件154の内容は、例
えば、ソフトウェアの開発者や保守者等のユーザが設定する。
FIG. 10 shows an example of the scope determination condition 154. The content of the scope determination condition 154 is set by a user such as a software developer or a maintainer, for example.

例示するスコープ判定条件154には、スコープ判定部114がソースコード151に記述されている変数をグローバル変数とすべきか否かを判定するための条件がスコープ判定条件として設定されている。また同図に示すように、例示するスコープ判定条件154は、前述したソースコード判定条件であるソースコード判定条件1541と、前述した実行ログ判定条件である実行ログ判定条件1542とを含む。 In the illustrated scope determination condition 154, a condition for the scope determination unit 114 to determine whether or not the variable described in the source code 151 should be a global variable is set as the scope determination condition. Further, as shown in the figure, the illustrated scope determination condition 154 includes the source code determination condition 1541 which is the source code determination condition described above and the execution log determination condition 1542 which is the execution log determination condition described above.

尚、本実施形態では、このようにスコープ判定条件としてソースコード151に記述されている変数をグローバル変数とすべきか否かを判定するための条件を例示するが、これとは逆にスコープ判定条件をソースコード151に記述されている変数をローカル変数とすべきか否かを判定するための条件としてもよい。またスコープ判定条件に、ソースコード151に記述されている変数をグローバル変数とすべきか否かを判定するための条件と、ソースコード151に記述されている変数をローカル変数とすべきか否かを判定するための条件とを混在させてもよい。 In addition, in the present embodiment, a condition for determining whether or not the variable described in the source code 151 should be a global variable as the scope determination condition is exemplified, but the scope determination condition is opposite. May be used as a condition for determining whether or not the variable described in the source code 151 should be a local variable. Further, the scope determination condition includes a condition for determining whether or not the variable described in the source code 151 should be a global variable, and a determination as to whether or not the variable described in the source code 151 should be a local variable. The conditions for doing so may be mixed.

例示するスコープ判定条件154には、ソースコード判定条件1541として「画面記述変数が属する画面と双方向に遷移する画面はあるか」という条件(以下、条件(a)と称する。)と、「画面記述変数が属する画面定義部は遷移先画面で置き換わるか」という条件(以下、条件(b)と称する。)が設定されている。 In the illustrated scope determination condition 154, as the source code determination condition 1541, there is a condition "is there a screen that bidirectionally transits to the screen to which the screen description variable belongs" (hereinafter, referred to as condition (a)) and "screen. A condition (hereinafter, referred to as condition (b)) "is the screen definition part to which the description variable belongs replaced by the transition destination screen?"

また実行ログ判定条件1542として「画面記述変数が属する画面と双方向に遷移する画面との遷移の往復回数が閾値以上か」という条件(以下、条件(A)と称する。)と、「画面記述変数が属する画面と双方向に遷移する画面との遷移の往復で、同じ値を該変数に格納する回数が閾値以上か」という条件(以下、条件(B)と称する。)が設定されている。 In addition, as the execution log determination condition 1542, a condition "is the number of round trips between the screen to which the screen description variable belongs and the screen that transits in both directions equal to or greater than a threshold" (hereinafter, referred to as condition (A)), and "screen description". A condition (hereinafter, referred to as condition (B)) is set such that the number of times the same value is stored in the variable is equal to or more than a threshold value during the round trip of the transition between the screen to which the variable belongs and the screen that transits in both directions. ..

尚、同図に示すパターンID1543は、上記の4つの条件(a)、条件(b)、条件(A)、条件(D)を選択して組み合わせることにより得られるパターン毎に付与される識別子(以下、パターンIDと称する。)である。スコープ判定部114は、画面記述変数のスコープの決定に際し、スコープ判定条件154に設定されているいずれかのパターンを選択して用いる。同図における「○」の記号は、当該パターンが該当する条件を選択することを意味している。また実行ログ判定条件1542の「○(閾値=7)」等における「閾値=7」等の表記は、実行ログ判定条件1542に記述されている閾値に設定する具体的な値を示している。 The pattern ID 1543 shown in the figure is an identifier (for each pattern) obtained by selecting and combining the above four conditions (a), (b), (A), and (D). Hereinafter, it is referred to as a pattern ID.). The scope determination unit 114 selects and uses any pattern set in the scope determination condition 154 when determining the scope of the screen description variable. The symbol "○" in the figure means that the condition corresponding to the pattern is selected. Further, the notation such as “threshold value=7” in “○ (threshold value=7)” of the execution log determination condition 1542 indicates a specific value set to the threshold value described in the execution log determination condition 1542.

例えば、パターンIDが「1」のパターンを選択した場合、スコープ判定部114は、ソースコード判定条件である条件(a)及び条件(b)を用いた条件式に基づき画面記述変数のスコープを判定する。尚、上記条件式は、条件(a)と条件(b)とAND条件に基づくものとしてもよいし、条件(a)と条件(b)とのOR条件に基づくものとしてもよい。上記条件式が真となる場合、スコープ判定部114は、グローバル性が高くなるように画面記述変数のスコープを設定する。 For example, when the pattern with the pattern ID “1” is selected, the scope determination unit 114 determines the scope of the screen description variable based on the conditional expression using the condition (a) and the condition (b) that are the source code determination conditions. To do. The conditional expression may be based on the condition (a), the condition (b), and the AND condition, or may be based on the OR condition of the condition (a) and the condition (b). When the above conditional expression is true, the scope determination unit 114 sets the scope of the screen description variable so that globality is high.

一方、パターンIDが「2」のパターンを選択した場合、スコープ判定部114は、ソースコード判定条件である条件(a)及び条件(b)と、実行ログ判定条件である条件(A)及び条件(D)の4つの条件に基づく条件式によって画面記述変数のスコープを判定する。尚、上記条件式は、上記4つの条件の全てのAND条件としてもよいし、上記4つの条件の全てのOR条件としてもよい。また上記4つの条件をAND条件とOR条件とを混在させた条件式により真偽を判定するようにしてもよい。スコープ判定部114は、上記条件式が真となる場合、グローバル性が高くなるように画面記述変数のスコープを設定
する。
On the other hand, when the pattern having the pattern ID “2” is selected, the scope determination unit 114 causes the condition (a) and the condition (b) that are the source code determination conditions, and the condition (A) and the condition that are the execution log determination conditions. The scope of the screen description variable is determined by the conditional expression based on the four conditions of (D). The conditional expression may be all AND conditions of the above four conditions or all OR conditions of the above four conditions. Further, it is also possible to determine the authenticity by a conditional expression in which the above four conditions are mixed with AND condition and OR condition. The scope determination unit 114 sets the scope of the screen description variable so that the globality is enhanced when the conditional expression is true.

以上に示したスコープ判定条件154は一例に過ぎず、例えば、ソースコードの種類やソースコードによって実現されるアプリケーションの機能等に応じて様々な態様で設定することができる。 The scope determination condition 154 described above is merely an example, and can be set in various modes according to, for example, the type of source code and the function of the application realized by the source code.

図11は、プログラム生成装置10が、解析対象ソースコードから画面記述変数を抽出し、抽出した画面記述変数のスコープを決定し、決定したスコープに基づき調整ソースコードを生成する処理(以下、プログラム生成処理S1100と称する。)を説明するフローチャートである。以下、同図とともにプログラム生成処理S1100について説明する。 FIG. 11 shows a process in which the program generation device 10 extracts a screen description variable from an analysis target source code, determines the scope of the extracted screen description variable, and generates an adjustment source code based on the determined scope (hereinafter, program generation It is a flowchart explaining the process S1100.). The program generation process S1100 will be described below with reference to FIG.

まずソースコード取得部111が、ソフトウェア管理装置20からソースコードを取得する。取得したソースコードは記憶部110がソースコード151(解析対象ソースコード)として記憶する(S1111)。 First, the source code acquisition unit 111 acquires a source code from the software management device 20. The acquired source code is stored in the storage unit 110 as the source code 151 (source code for analysis) (S1111).

続いて、実行ログ取得部112が、ソフトウェア管理装置20から解析対象ソースコードの実行ログ152を取得する。取得した実行ログは記憶部110が実行ログ152として記憶する(S1112)。尚、後述するスコープの判定においてスコープ判定条件として実行ログ判定条件を用いない場合には当該処理は必ずしも必要ない。 Then, the execution log acquisition unit 112 acquires the execution log 152 of the analysis target source code from the software management device 20. The storage unit 110 stores the acquired execution log as the execution log 152 (S1112). If the execution log determination condition is not used as the scope determination condition in the scope determination described later, the process is not always necessary.

続いて、ソースコード解析部113が、解析対象ソースコードを解析することにより画面記述変数を抽出し、抽出した画面記述変数の情報を格納した画面記述変数表153を生成する(S1113)。 Subsequently, the source code analysis unit 113 extracts the screen description variables by analyzing the analysis target source code, and generates the screen description variable table 153 in which the information of the extracted screen description variables is stored (S1113).

続いて、スコープ判定部114が、画面記述変数表153に格納されている画面記述変数を一つ選択する(S1114)。尚、S1114〜S1151の処理は、画面記述変数表153に格納されている各画面記述変数について繰り返し実行される。 Then, the scope determination unit 114 selects one screen description variable stored in the screen description variable table 153 (S1114). The processing of S1114 to S1151 is repeatedly executed for each screen description variable stored in the screen description variable table 153.

続いて、スコープ判定部114が、スコープ判定条件154に基づき、選択中の画面記述変数をグローバルにすべき(情報保存強度を高めるべき)か否かを判定する(S1115)。判定の結果が真であれば(S1115:YES)、S1116の処理へ進む。判定の結果が偽であれば(S1115:NO)、S1121の処理へ進む。 Subsequently, the scope determination unit 114 determines whether or not the screen description variable being selected should be global (the information storage strength should be increased) based on the scope determination condition 154 (S1115). If the determination result is true (S1115: YES), the process proceeds to S1116. If the determination result is false (S1115: NO), the process proceeds to S1121.

例えば、スコープ判定部114がparent.child1画面の画面定義部に含まれている「m
1」という変数を選択した場合には次のようになる。尚、遷移の挙動は図8(a)、(b)のように記述され、スコープ判定条件154は図10のように設定され、スコープ判定部114はパターンID1543が「1」のパターンに基づき条件(a)と条件(b)のAND条件を条件式として真偽を判定するものとする。
For example, the scope determination unit 114 is included in the screen definition unit of the parent.child1 screen, "m
When the variable "1" is selected, it becomes as follows. The behavior of the transition is described as shown in FIGS. 8A and 8B, the scope determination condition 154 is set as shown in FIG. 10, and the scope determination unit 114 sets the condition based on the pattern having the pattern ID 1543 of “1”. It is assumed that the AND condition of (a) and the condition (b) is used as a conditional expression to determine the truth.

まず条件(a)「画面記述変数が属する画面と双方向に遷移する画面がある」に関し、変数「m1」が属する画面はparent.child1画面であり、その画面定義部はparent.child1画面定義部である。また図8(a)のソースコードによればparent.child1画面はparent.child2画面に遷移し、図8(b)のソースコードによればparent.child2画面はparent.child1画面へ遷移する。従って、スコープ判定部114は、変数「m1」は、「画面記述変数が属する画面と双方向に遷移する画面がある」と判定する。また条件(b)「画面記述変数が属する画面定義部は遷移先画面で置き換わるか」に関し、変数「m1」が属する画面はparent.child1画面であり、その画面定義部であるparent.child1画面定義部は、遷移先であるparent.child2画面に遷移した場合、図6に示すようにparent.child2画面定義部に置き換わる。従って、スコープ判定部114は、変数「m1」は、「画面記述変数が属
する画面の画面定義部は遷移先の画面で置き換わる」と判定する。以上より、条件式、即ち条件(a)と条件(b)のAND条件は真となり、スコープ判定部114は、画面記述変数「m1」はグローバル化すべきと判定し(S1115:YES)、処理はS1116に進む。
First, regarding the condition (a) “There is a screen that transits bidirectionally with the screen to which the screen description variable belongs”, the screen to which the variable “m1” belongs is the parent.child1 screen, and its screen definition part is the parent.child1 screen definition part. Is. Further, according to the source code of FIG. 8A, the parent.child1 screen changes to the parent.child2 screen, and according to the source code of FIG. 8B, the parent.child2 screen changes to the parent.child1 screen. Therefore, the scope determination unit 114 determines that the variable “m1” is “there is a screen that bidirectionally transits to the screen to which the screen description variable belongs”. Regarding the condition (b) "is the screen definition part to which the screen description variable belongs replaced by the transition destination screen?", the screen to which the variable "m1" belongs is the parent.child1 screen, and the screen definition part, parent.child1 screen definition When a transition is made to the parent.child2 screen which is the transition destination, the part is replaced with the parent.child2 screen definition part as shown in FIG. Therefore, the scope determination unit 114 determines that the variable “m1” is “the screen definition unit of the screen to which the screen description variable belongs is replaced by the screen of the transition destination”. From the above, the conditional expression, that is, the AND condition of the condition (a) and the condition (b) becomes true, and the scope determination unit 114 determines that the screen description variable “m1” should be globalized (S1115: YES), and the processing is It proceeds to S1116.

一方、スコープ判定条件154が図10のように設定され、スコープ判定部114が、スコープ判定条件154のパターンID1543が「2」のパターンに基づき画面記述変数のスコープを判定する場合は次のようになる。但し、スコープ判定部114は、図10のスコープ判定条件154における、条件(a)、条件(b)、条件(A)、及び条件(B)の全てをAND条件で結んだもの(=条件(a)、条件(b)、条件(A)、及び条件(B)のAND条件)を条件式として真偽を判定するものとする。 On the other hand, when the scope determination condition 154 is set as shown in FIG. 10 and the scope determination unit 114 determines the scope of the screen description variable based on the pattern ID 1543 of the scope determination condition 154 is “2”, the following is performed. Become. However, the scope determination unit 114 connects all of the condition (a), the condition (b), the condition (A), and the condition (B) in the scope determination condition 154 of FIG. 10 with an AND condition (=condition ( It is assumed that true/false is determined by using (a), condition (b), condition (A) and condition (B) AND condition) as a conditional expression.

まず条件(a)、条件(b)の真偽の判定については前述と同様である。また条件(A)「変数が属する画面と双方向に遷移する画面との遷移の往復回数が閾値以上か」に関し、実行ログ152から往復回数が7回以上であることがわかり、また条件(B)「変数が属する画面と双方向に遷移する画面との遷移の往復で、同じ値を該変数に格納する回数が閾値以上か」に関し、実行ログ152から同じ値を該変数に格納する回数が5回以上であることがわかった場合、条件式は真となり(S1115:YES)。この場合、スコープ判定部114は画面記述変数「m1」はグローバル化すべきと判定し、処理はS1116に進む。 First, whether the condition (a) or the condition (b) is true or false is the same as described above. Regarding the condition (A) “whether the number of round trips for transition between the screen to which the variable belongs and the screen for bidirectional transition is greater than or equal to a threshold”, the execution log 152 shows that the number of round trips is seven or more, and the condition (B ) Regarding “whether the number of times the same value is stored in the variable in the round trip transition between the screen to which the variable belongs and the screen that bidirectionally transitions is greater than or equal to a threshold value”, the number of times the same value is stored in the variable from the execution log 152 If it is found that the number of times is five or more, the conditional expression becomes true (S1115: YES). In this case, the scope determination unit 114 determines that the screen description variable “m1” should be globalized, and the process proceeds to S1116.

S1116では、スコープ判定部114は、S1114で取得した画面記述変数の情報保存強度が現在よりも高くなるように画面記述変数表153を設定する。具体的には、スコープ判定部114は、例えば、現在選択中の画面記述変数が現在定義されている画面の親画面であるparent画面定義部で定義されるように設定する。またこのとき、スコープ判定部114は、スコープを変更した画面記述変数の変数名が他の変数の変数名との間で重複(コンフリクト)するか否かを判定し、重複が生じる場合は一方の変数名を変更(画面記述変数表153の内容を変更)する(S1117)。 In S1116, the scope determination unit 114 sets the screen description variable table 153 so that the information storage strength of the screen description variable acquired in S1114 is higher than the current level. Specifically, the scope determination unit 114 sets, for example, the screen description variable that is currently selected to be defined by the parent screen definition unit that is the parent screen of the currently defined screen. At this time, the scope determination unit 114 determines whether or not the variable name of the screen description variable whose scope has been changed overlaps with the variable names of other variables. The variable name is changed (the contents of the screen description variable table 153 are changed) (S1117).

尚、以上の2つの例においてスコープ判定部114が画面記述変数「m1」をグローバル化すべきと判定して情報保存強度を現在よりも高く設定するのは、次の理由による。 In the above two examples, the scope determination unit 114 determines that the screen description variable “m1” should be globalized and sets the information storage strength higher than the current one for the following reason.

即ち図12に示すように、parent.child1画面のparent画面の画面定義部で変数「m0
」が定義され、parent.child1画面の画面定義部で変数「m1」及び変数「m2」が定義
されている場合、parent.child1画面からparent.child2画面に遷移した際、parent.child1画面定義部はparent.child2画面定義部に置き換わり、変数「m1」及び変数「m2」の内容はいずれも主記憶装置12から消えてしまう。
That is, as shown in FIG. 12, in the screen definition portion of the parent screen of the parent.child1 screen, the variable "m0
Is defined and the variable "m1" and variable "m2" are defined in the screen definition part of the parent.child1 screen, when the screen transitions from the parent.child1 screen to the parent.child2 screen, the parent.child1 screen definition part Is replaced by the parent.child2 screen definition part, and the contents of the variable “m1” and the variable “m2” are both erased from the main storage device 12.

一方、parent画面定義部は、parent.child2画面に遷移した後も存在するため、parent
画面定義部に定義されている変数「m0」のデータは主記憶装置12に残り続ける。
On the other hand, the parent screen definition part still exists after the transition to the parent.child2 screen, so parent screen definition
The data of the variable “m0” defined in the screen definition section remains in the main storage device 12.

そこで、スコープ判定部114は、parent.child1画面定義部の変数「m1」が現在よ
りも情報保存強度が高くなるように設定する。
Therefore, the scope determination unit 114 sets the variable “m1” of the parent.child1 screen definition unit so that the information storage strength is higher than that at present.

図11に戻り、S1121では、スコープ判定部114は、選択中の画面記述変数の情報保存強度を下げることができるか否かを判定する。この判定は、例えば、選択中の画面記述変数が現在定義されている画面の子画面内でのみ参照されるものであるか否かを判定することにより行う。判定が真であれば(S1121:YES)、S1122の処理に進む。判定が偽であれば(S1121:NO)、S1141の処理に進む。 Returning to FIG. 11, in S1121, the scope determination unit 114 determines whether or not the information storage strength of the selected screen description variable can be reduced. This determination is performed, for example, by determining whether or not the screen description variable being selected is referred to only in the child screen of the currently defined screen. If the determination is true (S1121: YES), the process proceeds to S1122. If the determination is false (S1121: NO), the process proceeds to S1141.

S1122では、スコープ判定部114は、S1114で取得した画面記述変数の情報保存強度を下げる。前述の例であれば、スコープ判定部114は、例えば、画面記述変数「m0」が、parent画面定義部からそれよりも情報保存強度の低いparent.child1画面定
義部で定義されるように画面記述変数表153を設定する。S1122の処理の後、処理はS1114に戻る。
In S1122, the scope determination unit 114 reduces the information storage strength of the screen description variable acquired in S1114. In the above example, the scope determination unit 114, for example, screen description so that the screen description variable “m0” is defined by the parent.child1 screen definition unit whose information storage strength is lower than that of the parent screen definition unit. The variable table 153 is set. After the processing of S1122, the processing returns to S1114.

続いて、プログラム生成装置10は、S1114において未選択の画面記述変数があるか否かを判定する(S1141)。未選択の画面記述変数がある場合(S1141:YES)、処理はS1114に戻る。未選択の画面記述変数がない場合(S1141:NO)、S1151の処理に進む。 Subsequently, the program generation device 10 determines whether or not there is a screen description variable that has not been selected in S1114 (S1141). If there is an unselected screen description variable (S1141: YES), the process returns to S1114. If there is no unselected screen description variable (S1141: NO), the process proceeds to S1151.

S1151では、ソースコード生成部115が、解析対象ソースコードに基づき、画面記述変数表153に従って画面記述変数のスコープを設定した調整ソースコードを生成する。尚、記憶部110は、生成された調整ソースコードをソースコード151として記憶する。以上でプログラム生成処理S1100は終了する。 In S1151, the source code generation unit 115 generates an adjustment source code in which the scope of the screen description variable is set according to the screen description variable table 153 based on the analysis target source code. The storage unit 110 stores the generated adjustment source code as the source code 151. With the above, the program generation processing S1100 ends.

尚、S1151で生成された調整ソースコードは、ソースコード送信部116によってソフトウェア管理装置20に送信され、例えば、ソフトウェアの開発や保守に用いるソースコードとして利用される。 The adjusted source code generated in S1151 is transmitted to the software management device 20 by the source code transmission unit 116 and used as, for example, a source code used for software development and maintenance.

以上に説明したように、本実施形態のプログラム生成装置10は、解析対象ソースコードから抽出した画面記述変数によって記述される画面の挙動を、解析対象ソースコードに基づき取得される情報(解析対象ソースコード、実行ログ)から特定し、特定した挙動をスコープ判定条件154と対照することにより、抽出した画面記述変数に設定すべきスコープを決定し、決定したスコープとなるように記述した調整ソースコードを生成する。そのため、画面記述変数のスコープを適切に設定した調整ソースコードを効率よく生成することができる。また解析対象ソースコードにメソッドやその上位メソッドの利用/被利用関係がない場合でも画面記述変数のスコープを効率よく適切に設定することができる。 As described above, the program generation device 10 of the present exemplary embodiment, the behavior of the screen described by the screen description variable extracted from the analysis target source code is acquired based on the analysis target source code. Code, execution log), and by comparing the specified behavior with the scope judgment condition 154, the scope to be set in the extracted screen description variable is determined, and the adjustment source code described so as to be the determined scope is obtained. To generate. Therefore, the adjustment source code in which the scope of the screen description variable is appropriately set can be efficiently generated. Further, the scope of the screen description variable can be set efficiently and appropriately even when the source code to be analyzed does not have the usage/used relationship of the method or its upper method.

またプログラム生成装置10は、ローカル化することが可能な画面記述変数については情報保存強度を下げる方向にスコープを設定して調整ソースコードを生成するので、メモリリークの発生を効果的に予防することができる。 Further, since the program generation device 10 sets a scope for a screen description variable that can be localized and sets the scope in a direction of decreasing the information storage strength, the program generation device 10 effectively prevents the occurrence of a memory leak. You can

また解析対象ソースコードの解析と実行ログの解析を併用することで、より高い精度で適切に画面記述変数のスコープを設定することができ、メモリリークの発生を予防するとともに記憶資源を効率よく利用することが可能な調整ソースコードを生成することができる。 In addition, by using the analysis of the source code to be analyzed and the analysis of the execution log together, the scope of the screen description variables can be set more accurately and appropriately, preventing the occurrence of memory leaks and efficiently using storage resources. It is possible to generate adjustable source code that can be.

以上、本発明について実施の形態に基づき具体的に説明したが、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、上記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また上記実施形態の構成の一部について、他の構成の追加・削除・置換をすることができる。 Although the present invention has been specifically described above based on the embodiments, the present invention is not limited to the above embodiments, and various modifications can be made without departing from the scope of the invention. For example, the above embodiments have been described in detail for the purpose of explaining the present invention in an easy-to-understand manner, and are not necessarily limited to those having all the configurations described. Further, with respect to a part of the configuration of the above embodiment, other configurations can be added/deleted/replaced.

また上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサが夫々の機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、またはI
Cカード、SDカード、DVD等の記録媒体に置くことができる。
Further, each of the above-described configurations, functional units, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit. Further, the above-described respective configurations, functions and the like may be realized by software by the processor interpreting and executing a program for realizing each function. Information such as programs, tables, and files for realizing each function is stored in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or I
It can be placed on a recording medium such as a C card, SD card, or DVD.

また各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際にはほとんど全ての構成が相互に接続されていると考えてもよい。 Further, in each of the drawings, the control lines and information lines are shown to be necessary for explanation, and not all the control lines and information lines for mounting are necessarily shown. For example, it may be considered that practically all the configurations are connected to each other.

また以上に説明した情報処理装置の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、各情報処理装置がハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。 Further, the arrangement modes of the various functional units, the various processing units, and the various databases of the information processing apparatus described above are merely examples. The arrangement form of the various functional units, the various processing units, and the various databases can be changed by each information processing device to an optimum arrangement form from the viewpoint of the performance of hardware and software, processing efficiency, communication efficiency, and the like.

1 情報処理システム
5 通信ネットワーク
10 プログラム生成装置
110 記憶部
111 ソースコード取得部
112 実行ログ取得部
113 ソースコード解析部
114 スコープ判定部
115 ソースコード生成部
116 ソースコード送信部
151 ソースコード(解析対象ソースコード、調整ソースコード)
152 実行ログ
153 画面記述変数表
154 スコープ判定条件
20 ソフトウェア管理装置
210 記憶部
211 ソフトウェア管理部
212 プログラム実行部
213 ソースコード送信部
214 実行ログ送信部
251 ソースコード
252 実行ログ
S1100 プログラム生成処理
1 Information Processing System 5 Communication Network 10 Program Generation Device 110 Storage Unit 111 Source Code Acquisition Unit 112 Execution Log Acquisition Unit 113 Source Code Analysis Unit 114 Scope Determination Unit 115 Source Code Generation Unit 116 Source Code Transmission Unit 151 Source Code (Source to be Analyzed) Code, adjustment source code)
152 execution log 153 screen description variable table 154 scope determination condition 20 software management device 210 storage unit 211 software management unit 212 program execution unit 213 source code transmission unit 214 execution log transmission unit 251 source code 252 execution log S1100 program generation process

Claims (15)

情報処理装置であって、
画面に関する記述を含んだソースコードである解析対象ソースコード、及び、
前記解析対象ソースコードにおいて画面に関する記述に用いられている変数である画面記述変数のスコープの決定に際して用いられ、前記画面の構造または挙動に関して設定された条件であるスコープ判定条件、
を記憶し、
前記解析対象ソースコードから前記画面記述変数を抽出し、
抽出した前記画面記述変数によって記述される画面の構造または挙動を前記解析対象ソースコードに基づき取得される情報から特定し、特定した前記構造または挙動を前記スコープ判定条件と対照することにより前記画面記述変数に設定すべきスコープを決定し、
前記解析対象ソースコードに基づき、前記画面記述変数が前記決定した前記スコープとなるように記述したソースコードである調整ソースコードを生成する、
プログラム生成装置。
An information processing device,
Source code that is the source code that includes the description about the screen, and
The scope determination condition, which is a condition set regarding the structure or behavior of the screen, which is used in determining the scope of the screen description variable that is a variable used for the description about the screen in the analysis target source code,
Remember
Extracting the screen description variable from the analysis source code,
The screen description by identifying the structure or behavior of the screen described by the extracted screen description variable from the information acquired based on the analysis target source code, and comparing the identified structure or behavior with the scope determination condition Decide the scope to be set in the variable,
Generating an adjusted source code that is a source code described so that the screen description variable is in the determined scope based on the analysis target source code;
Program generator.
請求項1に記載のプログラム生成装置であって、
前記画面記述変数によって記述される画面の構造または挙動を、前記解析対象ソースコードを解析することにより特定する、
プログラム生成装置。
The program generation device according to claim 1,
The structure or behavior of the screen described by the screen description variable is specified by analyzing the analysis target source code,
Program generator.
請求項1または2に記載のプログラム生成装置であって、
前記解析対象ソースコードに基づくプログラムを実行することにより生成される実行ログを記憶し、
前記抽出した画面記述変数によって記述される画面の挙動を、前記実行ログを解析することにより特定し、特定した前記挙動を前記スコープ判定条件と対照することにより、前記画面記述変数のスコープを決定する、
プログラム生成装置。
The program generation device according to claim 1 or 2, wherein
Stores an execution log generated by executing a program based on the analysis source code,
The behavior of the screen described by the extracted screen description variable is specified by analyzing the execution log, and the specified behavior is compared with the scope determination condition to determine the scope of the screen description variable. ,
Program generator.
請求項2に記載のプログラム生成装置であって、
前記スコープ判定条件が、前記画面記述変数が属する画面と双方向に遷移する画面はあるかという条件、及び画面記述変数が属する画面定義部は遷移先画面で置き換わるかという条件、のうちの少なくともいずれかに基づくものである、
プログラム生成装置。
The program generation device according to claim 2, wherein
At least one of the condition that the scope determination condition is a screen that bidirectionally transits with the screen to which the screen description variable belongs, and the condition that the screen definition part to which the screen description variable belongs is replaced with the transition destination screen Based on crab,
Program generator.
請求項3に記載のプログラム生成装置であって、
前記スコープ判定条件が、画面記述変数が属する画面と双方向に遷移する画面との遷移の往復回数が予め設定された閾値以上かという条件、及び画面記述変数が属する画面と双方向に遷移する画面との遷移の往復で、同じ値を該画面記述変数に格納する回数が予め設定された閾値以上かという条件、のうちの少なくともいずれかに基づくものである、
プログラム生成装置。
The program generation device according to claim 3,
The scope determination condition is a condition that the number of round trips between the screen to which the screen description variable belongs and the screen to which the screen bidirectionally transits is equal to or greater than a preset threshold value, and a screen that bidirectionally transits to the screen to which the screen description variable belongs Is based on at least one of the condition that the number of times the same value is stored in the screen description variable in the round trip of the transition between and is greater than or equal to a preset threshold value,
Program generator.
請求項1に記載のプログラム生成装置であって、
前記抽出した画面記述変数に設定すべきとして決定したスコープが現在よりもローカルなスコープである場合、当該画面記述変数のスコープが現在よりもローカルなスコープになるように前記解析対象ソースコードを変更することにより前記調整ソースコードを生成する、
プログラム生成装置。
The program generation device according to claim 1,
When the scope determined to be set in the extracted screen description variable is a scope more local than the present, the source code for analysis is changed so that the scope of the screen description variable is a scope more local than the present. Generate the adjusted source code by
Program generator.
請求項1に記載のプログラム生成装置であって、
前記抽出した画面記述変数に設定すべきとして決定したスコープが現在よりもグローバルなスコープである場合、当該画面記述変数のスコープが現在よりもグローバルなスコープになるように前記解析対象ソースコードを変更することにより前記調整ソースコードを生成する、
プログラム生成装置。
The program generation device according to claim 1,
When the scope that is determined to be set in the extracted screen description variable is a global scope than the current one, the analysis target source code is changed so that the scope of the screen description variable is a global scope than the current scope. Generate the adjusted source code by
Program generator.
請求項7に記載のプログラム生成装置であって、
前記画面記述変数の変数名が重複しないように前記調整ソースコードを生成する、
プログラム生成装置。
The program generation device according to claim 7,
The adjustment source code is generated so that the variable names of the screen description variables do not overlap,
Program generator.
請求項7または8に記載のプログラム生成装置であって、
前記解析対象ソースコードは、入れ子の関係を有する複数の画面の夫々に対応した画面定義部を有し、
前記抽出した画面記述変数に設定すべきとして決定したスコープに応じて前記画面記述変数を記述する前記画面定義部を選択して前記調整ソースコードを生成する、
プログラム生成装置。
The program generation device according to claim 7 or 8, wherein
The analysis target source code has a screen definition unit corresponding to each of a plurality of screens having a nesting relationship,
The adjustment source code is generated by selecting the screen definition unit that describes the screen description variable according to the scope determined to be set in the extracted screen description variable,
Program generator.
情報処理装置が、
画面に関する記述を含んだソースコードである解析対象ソースコード、及び、前記解析対象ソースコードにおいて画面に関する記述に用いられている変数である画面記述変数のスコープの決定に際して用いられ、前記画面の構造または挙動に関して設定された条件であるスコープ判定条件、を記憶するステップと、
前記解析対象ソースコードから前記画面記述変数を抽出するステップと、
抽出した前記画面記述変数によって記述される画面の構造または挙動を前記解析対象ソースコードに基づき取得される情報から特定し、特定した前記構造または挙動を前記スコープ判定条件と対照することにより前記画面記述変数に設定すべきスコープを決定するステップと、
前記解析対象ソースコードに基づき、前記画面記述変数が前記決定した前記スコープとなるように記述したソースコードである調整ソースコードを生成するステップと、
を実行する、プログラム生成方法。
The information processing device
The analysis target source code that is the source code including the description about the screen, and the structure of the screen used when determining the scope of the screen description variable that is the variable used for the description about the screen in the analysis target source code. Storing a scope judgment condition, which is a condition set regarding the behavior,
Extracting the screen description variable from the analysis source code,
The screen description by identifying the structure or behavior of the screen described by the extracted screen description variable from the information acquired based on the analysis target source code, and comparing the identified structure or behavior with the scope determination condition The step of determining the scope to be set in the variable,
Generating an adjusted source code that is a source code described so that the screen description variable is in the determined scope based on the analysis target source code;
A program generation method for executing.
請求項10に記載のプログラム生成方法であって、
前記情報処理装置が、前記画面記述変数によって記述される画面の構造または挙動を、前記解析対象ソースコードを解析することにより特定するステップ
を更に実行する、プログラム生成方法。
The program generation method according to claim 10, wherein
The program generation method, wherein the information processing device further executes a step of identifying the structure or behavior of the screen described by the screen description variable by analyzing the analysis target source code.
請求項10または11に記載のプログラム生成方法であって、
前記情報処理装置が、
前記解析対象ソースコードに基づくプログラムを実行することにより生成される実行ログを記憶するステップと、
前記抽出した画面記述変数によって記述される画面の挙動を、前記実行ログを解析することにより特定し、特定した前記挙動を前記スコープ判定条件と対照することにより、前記画面記述変数のスコープを決定するステップと、
を更に実行する、プログラム生成方法。
The program generation method according to claim 10 or 11, wherein
The information processing device is
Storing an execution log generated by executing a program based on the analysis target source code,
The behavior of the screen described by the extracted screen description variable is specified by analyzing the execution log, and the specified behavior is compared with the scope determination condition to determine the scope of the screen description variable. Steps,
And a program generation method.
請求項11に記載のプログラム生成方法であって、
前記スコープ判定条件が、前記画面記述変数が属する画面と双方向に遷移する画面はあるかという条件、及び画面記述変数が属する画面定義部は遷移先画面で置き換わるかという条件、のうちの少なくともいずれかに基づくものである、
プログラム生成方法。
The program generation method according to claim 11, wherein
At least one of the condition that the scope determination condition is a screen that bidirectionally transits with the screen to which the screen description variable belongs, and the condition that the screen definition part to which the screen description variable belongs is replaced with the transition destination screen Based on crab,
Program generation method.
請求項12に記載のプログラム生成方法であって、
前記スコープ判定条件が、画面記述変数が属する画面と双方向に遷移する画面との遷移の往復回数が予め設定された閾値以上かという条件、及び画面記述変数が属する画面と双方向に遷移する画面との遷移の往復で、同じ値を該画面記述変数に格納する回数が予め設定された閾値以上かという条件、のうちの少なくともいずれかに基づくものである、
プログラム生成方法。
The program generation method according to claim 12, wherein
The scope determination condition is a condition that the number of round trips between the screen to which the screen description variable belongs and the screen to which the screen bidirectionally transits is equal to or greater than a preset threshold value, and a screen that bidirectionally transits to the screen to which the screen description variable belongs Is based on at least one of the condition that the number of times the same value is stored in the screen description variable in the round trip of the transition between and is greater than or equal to a preset threshold value,
Program generation method.
請求項10に記載のプログラム生成方法であって、
前記情報処理装置が、
前記抽出した画面記述変数に設定すべきとして決定したスコープが現在よりもグローバルなスコープである場合、当該画面記述変数のスコープが現在よりもグローバルなスコープになるように前記解析対象ソースコードを変更することにより前記調整ソースコードを生成するステップと、
前記画面記述変数の変数名が重複しないように前記調整ソースコードを生成するステップと、
を更に実行する、プログラム生成方法。
The program generation method according to claim 10, wherein
The information processing device is
When the scope that is determined to be set in the extracted screen description variable is a global scope than the current one, the analysis target source code is changed so that the scope of the screen description variable is a global scope than the current scope. Generating the adjusted source code by
Generating the adjustment source code so that the variable names of the screen description variables do not overlap,
And a program generation method.
JP2018221532A 2018-11-27 2018-11-27 Program generator and program generation method Active JP7059165B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018221532A JP7059165B2 (en) 2018-11-27 2018-11-27 Program generator and program generation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018221532A JP7059165B2 (en) 2018-11-27 2018-11-27 Program generator and program generation method

Publications (2)

Publication Number Publication Date
JP2020087033A true JP2020087033A (en) 2020-06-04
JP7059165B2 JP7059165B2 (en) 2022-04-25

Family

ID=70908306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018221532A Active JP7059165B2 (en) 2018-11-27 2018-11-27 Program generator and program generation method

Country Status (1)

Country Link
JP (1) JP7059165B2 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241755A (en) * 1992-02-29 1993-09-21 Fujitsu Ltd Variable storage area control method
JPH11272475A (en) * 1998-03-20 1999-10-08 Nec Corp Automatic re-entrant method for non-re-entrant program and system therefor
JP2002049521A (en) * 2000-08-03 2002-02-15 Ntt Comware Corp Transmitting method for variable and computer-readable recording medium with recorded program thereof
JP2009048259A (en) * 2007-08-14 2009-03-05 Seiko Epson Corp Program conversion method and program for conversion
JP2017027331A (en) * 2015-07-22 2017-02-02 コニカミノルタ株式会社 Image forming apparatus and information display method
US20170161035A1 (en) * 2015-12-03 2017-06-08 International Business Machines Corporation Method of Adding Local Variables In Place of Global in JavaScript
JP2018106556A (en) * 2016-12-27 2018-07-05 株式会社日立製作所 Screen information generating apparatus, screen information generating method, and program

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241755A (en) * 1992-02-29 1993-09-21 Fujitsu Ltd Variable storage area control method
JPH11272475A (en) * 1998-03-20 1999-10-08 Nec Corp Automatic re-entrant method for non-re-entrant program and system therefor
JP2002049521A (en) * 2000-08-03 2002-02-15 Ntt Comware Corp Transmitting method for variable and computer-readable recording medium with recorded program thereof
JP2009048259A (en) * 2007-08-14 2009-03-05 Seiko Epson Corp Program conversion method and program for conversion
JP2017027331A (en) * 2015-07-22 2017-02-02 コニカミノルタ株式会社 Image forming apparatus and information display method
US20170161035A1 (en) * 2015-12-03 2017-06-08 International Business Machines Corporation Method of Adding Local Variables In Place of Global in JavaScript
JP2018106556A (en) * 2016-12-27 2018-07-05 株式会社日立製作所 Screen information generating apparatus, screen information generating method, and program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WAKAMSHA: "【AngularJS x TypeScript デザインパターン】 Controller と Routing 篇 - AngularJS + TypeScript #4", PSYENCE:MEDIA [ONLINE], JPN6022013068, 25 December 2015 (2015-12-25), ISSN: 0004742225 *

Also Published As

Publication number Publication date
JP7059165B2 (en) 2022-04-25

Similar Documents

Publication Publication Date Title
US20180262509A1 (en) Differentiated containerization and execution of web content based on trust level and other attributes
US9245144B2 (en) Secure data container for web applications
KR101143191B1 (en) Aligned behavior in templated lists
DK2972827T3 (en) COLLABORATIVE EDITING
JP6692289B2 (en) Screen information generating device, screen information generating method, and program
US20170262550A1 (en) Caching of a site model in a hierarchical modeling system for network sites
JP2007025928A (en) Device control system, device control processing method and device control program
JP7059165B2 (en) Program generator and program generation method
WO2020250164A1 (en) Dynamic synchronized image text localization
JP4144885B2 (en) How to reuse application objects
JP4870956B2 (en) Embedded program generation method, embedded program development system, and information table section
JP7025104B2 (en) Information processing equipment, methods and programs
JP2013235508A (en) Object-oriented program generation device, method therefor, and program
JP4944434B2 (en) Layout method and program
JP2013196547A (en) Information processor and information processing program
JP7260150B2 (en) WEBSITE DESIGN SUPPORT DEVICE, WEBSITE DESIGN SUPPORT METHOD, AND PROGRAM
KR20130076062A (en) Management system and method for distributed data quality
JP6142878B2 (en) Information system performance evaluation apparatus, method and program
US8495033B2 (en) Data processing
JP6497087B2 (en) Information processing apparatus and information processing program
JPWO2018225747A1 (en) Distributed system, data management device, data management method, and computer-readable recording medium
JP2020160854A (en) Code management system, and code management method
JP5948926B2 (en) Object-oriented program generator, program
JP5932262B2 (en) Information processing apparatus, information processing method, and program
JP2011150736A (en) Profiling program, profiling method and computer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210415

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220323

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: 20220405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220413

R150 Certificate of patent or registration of utility model

Ref document number: 7059165

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150