JP4963070B2 - Software component template management system - Google Patents

Software component template management system Download PDF

Info

Publication number
JP4963070B2
JP4963070B2 JP2007052294A JP2007052294A JP4963070B2 JP 4963070 B2 JP4963070 B2 JP 4963070B2 JP 2007052294 A JP2007052294 A JP 2007052294A JP 2007052294 A JP2007052294 A JP 2007052294A JP 4963070 B2 JP4963070 B2 JP 4963070B2
Authority
JP
Japan
Prior art keywords
component
template
variable item
source code
variable
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.)
Expired - Fee Related
Application number
JP2007052294A
Other languages
Japanese (ja)
Other versions
JP2008217292A (en
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.)
Hitachi Solutions Ltd
Original Assignee
Hitachi Solutions 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 Solutions Ltd filed Critical Hitachi Solutions Ltd
Priority to JP2007052294A priority Critical patent/JP4963070B2/en
Publication of JP2008217292A publication Critical patent/JP2008217292A/en
Application granted granted Critical
Publication of JP4963070B2 publication Critical patent/JP4963070B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、テスト済みのソフトウェア部品をテンプレートの形態で保持するソフトウェア部品テンプレート管理システムに関するものである。   The present invention relates to a software component template management system that holds tested software components in the form of templates.

ソフトウェアの開発を行う上で、再利用可能な機能を予め部品化して使い回すことにより、同じ機能を何度も作る工数を削減できる。これは開発効率の向上に有効である。
ソフトウェア部品のソースコードを再利用するプロジェクトの多くでは、プロジェクトごとの規約に合うようにソフトウェア部品のソースコードのカスタマイズを行った上で再利用する。例えば、ソースコード中で宣言するパッケージ、クラス、関数、属性などの各項目の名称については、プロジェクトごとに定められた命名規約に従って変更が入る項目である。しかし、これらの変更を開発者自身が手作業で行うのは手間がかかる上、ミスが混入しやすく非効率である。
When developing software, by reusing reusable functions in advance as parts, it is possible to reduce the man-hours for creating the same functions over and over again. This is effective for improving development efficiency.
In many projects that reuse the software component source code, the software component source code is customized to meet the rules of each project and then reused. For example, the names of items such as packages, classes, functions, and attributes declared in the source code are items that change according to a naming convention defined for each project. However, it is troublesome for developers to make these changes manually, and mistakes are likely to be mixed, which is inefficient.

そこで、後から別の値を埋め込めるように、予めソースコード中の可変項目を特殊なシンボル等で置換したテンプレートを作成しておく方法がある。そして、このテンプレートに、開発者が別途指定したカスタマイズ情報を自動的に埋め込んで目的のソースコードを自動生成する技術が知られている。
ソフトウェア部品のソースコードを、テンプレートとカスタマイズ情報をもとに生成する手段に関連する公知技術文献としては、下記の特許文献がある。
Therefore, there is a method of creating a template in which variable items in the source code are replaced with special symbols in advance so that other values can be embedded later. A technique for automatically generating target source code by automatically embedding customization information separately designated by a developer in this template is known.
As publicly known technical documents relating to means for generating software component source code based on templates and customization information, there are the following patent documents.

特開2001−256049号公報JP 2001-256049 A

ところで、ソフトウェア部品のテンプレートを用意するための方法としては、実行可能なソフトウェアを作成してテストを行った後、部品化が可能な箇所のソースコードについて、ソースコード中の可変項目を編集してテンプレート化するのが一般的である。
しかし、ソースコードを編集してテンプレート化する作業は人手で行うと手間がかかる。ソフトウェアを開発するプロジェクトでは、ソースコードは作成しても、それを編集してテンプレート化する作業まではコスト低減等のため実施しないことが多く、これがテンプレートの蓄積を阻害する要因となることもある。
また、ソフトウェア部品同士を組み合わせて利用する際、一方が他方で定義された項目を参照したり継承したりといった依存関係があると、一方をカスタマイズした際には、他方もそれに合わせたカスタマイズを行って整合性を維持しなければならないという問題がある。自動生成されたソースコード同士を組み合わせる際にも前記の整合性の問題が発生し得るが、自動生成の元であるテンプレートを作成する段階で、依存関係のあるソフトウェア部品同士のテンプレートの整合性を保持しておけば、自動生成後のソースコード間では整合性の問題の発生を防ぐことができる。
By the way, as a method of preparing a template for software parts, after creating executable software and testing it, edit the variable items in the source code for the source code where it can be converted into parts. It is common to make a template.
However, it takes time and effort to manually edit the source code and create a template. In software development projects, even if source code is created, it is often not done to edit and create a template for cost reduction, which may hinder the accumulation of templates. .
Also, when using software components in combination, if there is a dependency such that one side references or inherits an item defined on the other side, when one side is customized, the other side also performs customization accordingly. Therefore, there is a problem that consistency must be maintained. The above-mentioned consistency problem may occur when combining automatically generated source codes. However, at the stage of creating a template that is the source of automatic generation, the consistency of the template of software components with dependencies is determined. If it is retained, it is possible to prevent the occurrence of the problem of consistency between the source codes after the automatic generation.

本発明の目的は、ソフトウェア部品のソースコードを自動的にテンプレート化して保存し、かつ、保存されているテンプレートをもとに、ユーザから要求されたソフトウェア部品のソースコードを自動生成してユーザに提供し、かつ、自動生成されたソースコード間の整合性を維持することができるソフトウェア部品テンプレート管理システムを提供することにある。   It is an object of the present invention to automatically generate a software component source code as a template and store it, and automatically generate a software component source code requested by the user based on the stored template. It is an object of the present invention to provide a software component template management system that can provide and maintain consistency between automatically generated source codes.

上記目的を達成するために、本発明のソフトウェア部品テンプレート管理システムは、テストが完了したソフトウェア部品をテンプレートの形態で記憶手段内に保持するサーバと、ユーザが前記サーバに対してソフトウェア部品の登録、取得を指示するクライアント端末とから成るソフトウェア部品テンプレート管理システムであって、
前記サーバが、
前記クライアント端末より送信されたソフトウェア部品のソースコードの構文木を生成した後、当該構文木中に出現する可変項目を抽出し、当該可変項目を一意に識別するための可変項目IDに置き換えたテンプレートを生成し、前記記憶手段内に登録する部品登録手段と、前記記憶手段内に登録済みのテンプレートからソフトウェア部品のソースコードを生成してクライアント端末に送信する部品取得手段とを備えることを特徴とする。
また、前記部品登録手段は、登録対象のソフトウェア部品のテンプレートについて依存関係がある既存のテンプレートとの比較により可変項目IDを既存テンプレートの可変項目IDに整合するように補正する手段を備えることを特徴とする。
また、前記部品取得手段は、クライアント端末より送信されたカスタマイズ情報を、登録済みのテンプレートの可変項目に埋め込むことによってソースコードを生成するソースコード生成手段を備えることを特徴とする。
In order to achieve the above object, a software component template management system of the present invention includes a server for storing a software component that has been tested in the form of a template in a storage means, and a user registering the software component to the server, A software component template management system comprising a client terminal that instructs acquisition,
The server is
After generating a syntax tree of the source code of the software component transmitted from the client terminal, a variable item that appears in the syntax tree is extracted and replaced with a variable item ID for uniquely identifying the variable item And registering in the storage means, and component acquisition means for generating the source code of the software part from the template registered in the storage means and transmitting it to the client terminal. To do.
The component registration means includes means for correcting the variable item ID so as to match the variable item ID of the existing template by comparison with an existing template having a dependency relationship with the template of the software component to be registered. And
The component acquisition means includes source code generation means for generating a source code by embedding customization information transmitted from a client terminal in a variable item of a registered template.

本発明のソフトウェア部品テンプレート管理システムによれば、次のような効果がある。
(1)ソフトウェア部品のソースコード中の可変項目を自動的に抽出してテンプレート化するため、可変項目の抽出の漏れがなくなるとともに、ソフトウェア部品提供者の負担を軽減できる。
(2)本システムから取得したソフトウェア部品のソースコードは、ソフトウェア部品間の整合性を維持するため、開発者による修正を経なくてもそのまま正常にコンパイル・実行を行える。
The software component template management system of the present invention has the following effects.
(1) Since variable items in the source code of software parts are automatically extracted and templated, there is no omission of extraction of variable items and the burden on the software part provider can be reduced.
(2) Since the source code of the software component acquired from this system maintains the consistency between the software components, it can be normally compiled and executed without modification by the developer.

以下、本発明を適用したソフトウェア部品テンプレート管理システムの一実施の形態について説明する。
図1は、本発明の実施の形態の一例を示すシステム構成図である。
本実施形態のソフトウェア部品テンプレート管理システムは、ソフトウェア部品のテンプレートを保持するサーバ101と、ユーザが要求を出す複数のクライアント端末102とからなり、サーバ101とクライアント端末102の間はネットワークで接続されている。
サーバ101は、リポジトリ103、部品登録手段104、部品取得手段105を備えている。
部品登録手段104は、ソフトウェア部品をテンプレート化して登録するための手段として、ソースコード解析手段106、テンプレート生成手段107、可変項目ID発行手段108とを備えている。
前記部品取得手段105は、ユーザから要求されたソフトウェア部品を提供するための手段として、ソースコード生成手段109を備えている。
また前記リポジトリ103は、登録済みのソフトウェア部品のテンプレート110と、登録済みのソフトウェア部品を管理する部品管理表111、ソフトウェア部品間の依存関係を管理する部品依存関係管理表112、テンプレート110内に出現する可変項目を管理する可変項目管理表113を格納している。
Hereinafter, an embodiment of a software component template management system to which the present invention is applied will be described.
FIG. 1 is a system configuration diagram showing an example of an embodiment of the present invention.
The software component template management system according to the present embodiment includes a server 101 that stores software component templates and a plurality of client terminals 102 that a user issues a request. The server 101 and the client terminals 102 are connected via a network. Yes.
The server 101 includes a repository 103, a component registration unit 104, and a component acquisition unit 105.
The component registration unit 104 includes a source code analysis unit 106, a template generation unit 107, and a variable item ID issuing unit 108 as units for registering software components as templates.
The component acquisition unit 105 includes a source code generation unit 109 as a unit for providing a software component requested by a user.
The repository 103 appears in a template 110 of registered software components, a component management table 111 that manages registered software components, a component dependency management table 112 that manages dependencies between software components, and a template 110. A variable item management table 113 for managing variable items to be stored is stored.

図2は、部品管理表111の一例を示す図である。
部品ID201は、各部品を一意に特定するために割り振られるキーである。
部品名称202は、部品の登録時にユーザが入力する部品の名称である。
部品機能説明203は、部品の登録時にユーザが入力する、部品の機能についての説明文である。
例えば、部品ID=P000001の部品には、部品名称として「文字列コンバータ」が登録され、その部品機能説明として「変換ルールに従い・・・・・必要があります」といた機能説明文が登録される。
部品管理表111は、本システムに部品が1件登録されるたびに、当該部品に関する1行が追加される。
FIG. 2 is a diagram illustrating an example of the component management table 111.
The component ID 201 is a key that is assigned to uniquely identify each component.
The part name 202 is the name of the part that the user inputs when registering the part.
The component function description 203 is an explanatory text about the function of the component that is input by the user when the component is registered.
For example, for the component with the component ID = P000001, “character string converter” is registered as the component name, and the function description sentence “It is necessary to comply with the conversion rules” is registered as the component function description. .
Each time one component is registered in the system, one row related to the component is added to the component management table 111.

図3は、部品依存関係管理表112の一例を示す図である。
この部品依存関係管理表112には、部品ID301と依存部品ID302が登録される。
部品ID301と依存部品ID302は、いずれも部品管理表111上に記録されている部品ID201を指し、部品ID301で示される部品が、依存部品ID302で示される部品に依存していることを表す。即ち、依存部品IDは、親となる部品のIDである。例えば、部品ID=P0004のように、親となる部品が複数存在する場合には、これらの親部品のIDが全て依存部品IDとして登録される。
この部品依存関係管理表112は、本システムにユーザが部品を登録する際に依存部品情報の指定を行った場合にのみ、行が追加される。
FIG. 3 is a diagram illustrating an example of the component dependency relationship management table 112.
In the component dependency management table 112, a component ID 301 and a dependent component ID 302 are registered.
Both the component ID 301 and the dependent component ID 302 indicate the component ID 201 recorded on the component management table 111, and indicate that the component indicated by the component ID 301 is dependent on the component indicated by the dependent component ID 302. That is, the dependent component ID is the ID of the parent component. For example, when there are a plurality of parent components such as component ID = P0004, all IDs of these parent components are registered as dependent component IDs.
In the component dependency relationship management table 112, a row is added only when the dependent component information is specified when the user registers a component in the system.

図4は、可変項目管理表113の一例を示す図である。
この可変項目管理表113には、可変項目ID401、デフォルト値402、項目種別403、上位項目404、発行日時405が登録される。
可変項目ID401は、テンプレート110中の可変項目を一意に特定するためのキーであり、テンプレート中に埋め込んだ際に他の語句との識別を容易にするため、常に先頭と末尾に「$」を付加するものとする。
デフォルト値402は、当該可変項目に埋め込まれるカスタマイズ情報のデフォルト値である。ユーザが本システムにソフトウェア部品を登録する際に送信したソースコードにおいて、可変項目に元々割り当てられていた値がソースコード解析手段106によって取得され、これがデフォルト値402として登録されるものとする。
項目種別403は、当該可変項目の種別を示す。
上位項目404は、ソースコード解析手段106によるソースコード解析の結果、当該可変項目が他の可変項目に属していると判明した場合に、その上位可変項目の可変項目IDを示す。
発行日時405は、当該可変項目の発行日時を示す。
FIG. 4 is a diagram illustrating an example of the variable item management table 113.
In this variable item management table 113, a variable item ID 401, a default value 402, an item type 403, an upper item 404, and an issue date 405 are registered.
The variable item ID 401 is a key for uniquely identifying a variable item in the template 110, and “$” is always added at the beginning and end in order to facilitate identification from other words when embedded in the template. It shall be added.
A default value 402 is a default value of customization information embedded in the variable item. In the source code transmitted when the user registers the software component in the system, the value originally assigned to the variable item is acquired by the source code analysis unit 106 and registered as the default value 402.
The item type 403 indicates the type of the variable item.
The upper item 404 indicates the variable item ID of the upper variable item when the variable item is found to belong to another variable item as a result of the source code analysis by the source code analysis unit 106.
The issue date / time 405 indicates the issue date / time of the variable item.

図5は、本システムにおけるソフトウェア部品の登録手順を示すフローチャートである。
まず、クライアント端末102がサーバ101の部品登録手段104にアクセスすると、部品登録手段104は、部品登録画面をクライアント端末102に表示する(ステップ501)。
クライアント端末102のユーザは、表示された部品登録画面にて、登録部品情報および依存部品情報を入力し、部品登録手段104に送信する(ステップ502)。
部品登録手段104は、ステップ502で入力された情報の中に依存部品情報が含まれるか否かによって以後の処理を分岐する。
ステップ502で依存部品情報が入力されず登録部品情報のみが入力された場合、ソースコード解析手段106が、受信した登録部品のソースコードの解析を実行し、登録部品の構文木を生成する(ステップ503)。
なお、この構文木を生成する技術は、コンパイラ等において従来から使用されている周知技術であるので、その詳細な説明は省略する。
可変項目ID発行手段108は、ステップ503の構文木の解析結果を受け取り、解析結果中のパッケージ名、クラス名、メソッド名、フィールド名、変数名を可変項目とし、各可変項目を一意に識別できる可変項目IDを発行する(ステップ504)。そしてステップ511に進む。
FIG. 5 is a flowchart showing a software component registration procedure in this system.
First, when the client terminal 102 accesses the component registration unit 104 of the server 101, the component registration unit 104 displays a component registration screen on the client terminal 102 (step 501).
The user of the client terminal 102 inputs the registered component information and the dependent component information on the displayed component registration screen, and transmits them to the component registration unit 104 (step 502).
The component registration unit 104 branches subsequent processing depending on whether or not the dependent component information is included in the information input in step 502.
When the dependent component information is not input in step 502 and only the registered component information is input, the source code analyzing means 106 analyzes the received source code of the registered component and generates a registered component syntax tree (step). 503).
Note that the technique for generating the syntax tree is a well-known technique conventionally used in compilers and the like, and thus detailed description thereof is omitted.
The variable item ID issuing means 108 receives the parsing result of the syntax tree in step 503, sets the package name, class name, method name, field name, and variable name in the parsing result as variable items, and can uniquely identify each variable item. A variable item ID is issued (step 504). Then, the process proceeds to Step 511.

一方、ステップ502にて、登録部品情報と依存部品情報の両方が入力されていた場合、ソースコード解析手段106は、登録部品のソースコードおよび依存部品のソースコードを一括で解析する(ステップ505)。
可変項目ID発行手段108は、ステップ505の解析結果を受け取り、解析結果中のパッケージ名、クラス名、メソッド名、フィールド名、変数名を可変項目とし、各可変項目を一意に識別できる仮の可変項目IDを発行する(ステップ506)。
次に、テンプレート生成手段107は、依存部品ソースコードとステップ506で発行された仮可変項目ID一覧を受け取り、登録対象部品のソースコード中の各可変項目を仮可変項目IDで置換した仮テンプレートを生成する(ステップ507)。
On the other hand, when both the registered component information and the dependent component information are input in step 502, the source code analyzing unit 106 analyzes the source code of the registered component and the source code of the dependent component in a lump (step 505). .
The variable item ID issuing means 108 receives the analysis result of step 505, sets the package name, class name, method name, field name, and variable name in the analysis result as variable items, and is a temporary variable that can uniquely identify each variable item. An item ID is issued (step 506).
Next, the template generation means 107 receives the dependent component source code and the temporary variable item ID list issued in step 506, and replaces each variable item in the source code of the registration target component with the temporary variable item ID. Generate (step 507).

次に、可変項目ID発行手段108は、依存部品のテンプレートをリポジトリ103から取得して、ステップ507で生成された登録対象部品のテンプレートとの比較を行い、テンプレート内部に記述された可変項目ID同士を照合して対応表を作成する(ステップ508)。
さらに可変項目ID発行手段108は、ステップ508で作成した可変項目ID対応表における既存可変項目IDの競合を解消し、仮可変項目IDと既存可変項目IDが1対1の関係になるようにする(ステップ509)。
ステップ509における既存可変項目IDの競合解消に伴い、既存可変項目IDの一部が変更となった場合、部品登録手段104は、リポジトリ103に格納されている既存テンプレートおよび可変項目管理表113の更新を行い、既存可変項目IDの変更を反映する。(ステップ510)
そしてステップ511に進む。
Next, the variable item ID issuing means 108 acquires the dependent component template from the repository 103, compares it with the template of the registration target component generated in step 507, and compares the variable item IDs described in the template with each other. And a correspondence table is created (step 508).
Further, the variable item ID issuing unit 108 resolves the conflict of the existing variable item ID in the variable item ID correspondence table created in step 508 so that the temporary variable item ID and the existing variable item ID have a one-to-one relationship. (Step 509).
If part of the existing variable item ID is changed due to the conflict resolution of the existing variable item ID in step 509, the component registration unit 104 updates the existing template and variable item management table 113 stored in the repository 103. To reflect the change of the existing variable item ID. (Step 510)
Then, the process proceeds to Step 511.

テンプレート生成手段107は、ステップ504またはステップ509で作成された可変項目ID一覧を用い、ステップ502でユーザが入力した登録対象部品のソースコード中の各可変項目を可変項目IDで置換してテンプレートを生成する(ステップ511)。
そして部品登録手段104は、ステップ511で生成したテンプレートをリポジトリ103に格納する(ステップ512)。さらに部品登録手段104は、ステップ502でユーザが入力した部品名称、部品機能説明を部品管理表111に登録し、ステップ502でユーザが入力した依存部品情報をもとに部品依存関係管理表112にデータを登録し、ステップ503またはステップ505におけるソースコード解析結果と、ステップ504またはステップ509で作成された可変項目ID一覧をもとに可変項目管理表113にデータを登録する(ステップ513)。
最後に、部品登録手段104は、登録完了通知をクライアント端末102に返却する(ステップ514)。
The template generation unit 107 uses the variable item ID list created in step 504 or 509 and replaces each variable item in the source code of the registration target part input by the user in step 502 with the variable item ID. Generate (step 511).
Then, the component registration unit 104 stores the template generated in step 511 in the repository 103 (step 512). Further, the part registration unit 104 registers the part name and part function description input by the user in step 502 in the part management table 111, and in the part dependency management table 112 based on the dependent part information input by the user in step 502. Data is registered, and data is registered in the variable item management table 113 based on the source code analysis result in step 503 or step 505 and the variable item ID list created in step 504 or step 509 (step 513).
Finally, the component registration unit 104 returns a registration completion notification to the client terminal 102 (step 514).

図6は、ステップ508で作成される可変項目ID対応表の例を示す図であり、仮可変項目ID=$V001200002$のという1つの可変項目に対し、2つの親部品で2つの可変項目ID=$V000500002$と$V000800001$が発行されている場合を示している。
そこで、ステップ509の競合解消処理により、発行日時が最も古い可変項目IDに統一する処理を行う。これにより、親部分と子部品の可変項目IDは1対1の関係に整合される。
FIG. 6 is a diagram showing an example of the variable item ID correspondence table created in step 508. For one variable item of temporary variable item ID = $ V001200002 $, two variable item IDs with two parent parts are shown. = $ V00000000002 $ and $ V000800001 $ are issued.
Therefore, a process for unifying the variable item ID with the oldest issue date is performed by the conflict resolution process in step 509. Thereby, the variable item IDs of the parent part and the child part are matched in a one-to-one relationship.

図7は、可変項目IDの競合解消処理を示すフローチャートである。
まず、図6の可変項目ID対応表において既存部品の可変項目IDが2つ以上指定されている箇所について、可変項目管理表113を参照して発行日時を取得し、発行日時が最も古い可変項目IDを特定する(ステップ701,702)。
次に、更新対象の可変項目IDの全てについて、発行日時が最も古い可変項目IDに置き換え、可変項目管理表113を更新する(ステップ703〜705)。
次に、発行日時が最も古い可変項目IDを除く全ての可変項目IDを削除し、可変項目ID対応表を更新する(ステップ706〜708)。
FIG. 7 is a flowchart showing the conflict resolution processing of the variable item ID.
First, in the variable item ID correspondence table of FIG. 6, the issue date and time is acquired with reference to the variable item management table 113 for the location where two or more variable item IDs of existing parts are specified, and the variable item with the oldest issue date and time is obtained. The ID is specified (steps 701 and 702).
Next, all the variable item IDs to be updated are replaced with the variable item IDs with the oldest issue date and time, and the variable item management table 113 is updated (steps 703 to 705).
Next, all variable item IDs except the variable item ID with the oldest issue date and time are deleted, and the variable item ID correspondence table is updated (steps 706 to 708).

図8は、本システムに登録されたソフトウェア部品をクライアント102が取得する手順を示すフローチャートである。
クライアント端末102がソフトウェア部品を取得すべくサーバ101の部品取得手段105にアクセスすると、部品取得手段105は、部品管理表111および部品依存関係管理表112からデータを取得して部品一覧画面を作成し、クライアント端末102上に表示する(ステップ801)。
ユーザは、クライアント端末102に表示された部品一覧画面にて、取得したい部品を全て選択する(ステップ802)。
FIG. 8 is a flowchart showing a procedure for the client 102 to acquire the software component registered in this system.
When the client terminal 102 accesses the component acquisition unit 105 of the server 101 to acquire software components, the component acquisition unit 105 acquires data from the component management table 111 and the component dependency management table 112 and creates a component list screen. Is displayed on the client terminal 102 (step 801).
The user selects all the parts to be acquired on the parts list screen displayed on the client terminal 102 (step 802).

次に、部品取得手段105は、ステップ802で選択された全ての部品のテンプレート110を全文検索して、テンプレート内に出現する可変項目の一覧を作成し、その可変項目に該当するデータを可変項目管理表113から取得して、カスタマイズ情報入力画面を作成し、クライアント端末102上に表示する(ステップ803)。
ユーザは、カスタマイズ情報入力画面にて、各可変項目に対応するカスタマイズ値を入力する(ステップ804)。
部品取得手段105は、ステップ802で選択された全ての部品について、リポジトリ103から該当するテンプレート110を取得し、ステップ804で入力されたカスタマイズ値をテンプレート110内の可変項目に埋め込むことによってソースコードを生成する(ステップ805)。
最後に部品取得手段105は、ステップ805で生成したソースコードをクライアント端末102に送信する(ステップ806)。
Next, the component acquisition unit 105 searches the full text of the templates 110 of all the components selected in step 802, creates a list of variable items that appear in the template, and sets the data corresponding to the variable items as variable items. Obtained from the management table 113, a customization information input screen is created and displayed on the client terminal 102 (step 803).
The user inputs a customization value corresponding to each variable item on the customization information input screen (step 804).
The component acquisition unit 105 acquires the corresponding template 110 from the repository 103 for all the components selected in step 802, and embeds the customized value input in step 804 in the variable item in the template 110 to generate the source code. Generate (step 805).
Finally, the component acquisition unit 105 transmits the source code generated in step 805 to the client terminal 102 (step 806).

図9は、クライアント端末102上に表示される部品登録画面の一例である。
部品登録画面は、登録部品情報901の入力欄、依存部品情報902の入力欄、部品登録実行ボタン903によって構成される。
登録部品情報901は、登録部品の部品名称904、部品機能説明905、登録部品のソースコードファイルパス906から成り、いずれも入力必須とする。
依存部品情報902は、登録しようとしているソフトウェア部品が本システムに既に登録済みのいくつかのソフトウェア部品に依存している場合のみ入力必須とし、依存部品の部品ID907、依存部品のソースコードファイルパス908から成る。
登録部品ソースコードファイルパス906と依存部品ソースコードファイルパス908については、予め当該部品のソースコードファイルをクライアント端末102のローカルディスク等に格納しておき、そのファイルのパスを指定するものとする。
FIG. 9 is an example of a component registration screen displayed on the client terminal 102.
The component registration screen includes an input column for registered component information 901, an input column for dependent component information 902, and a component registration execution button 903.
The registered component information 901 includes a registered component name 904, a component function description 905, and a registered component source code file path 906, all of which are mandatory.
The dependent component information 902 is required to be input only when the software component to be registered depends on some software components already registered in the system, and the dependent component component ID 907 and the dependent component source code file path 908 are input. Consists of.
As for the registered component source code file path 906 and the dependent component source code file path 908, the source code file of the component is stored in advance in the local disk of the client terminal 102, and the path of the file is designated.

ファイルが複数個ある場合は、それらを圧縮して1ファイルにアーカイブしたファイルのパスを指定するものとする。また、登録部品ソースコードファイルパス906と依存部品ソースコードファイルパス908で指定するソースコードファイルは、開発環境で互いを結合した上でコンパイルおよびテストが正常に実行できるのを確認済みであるものとする。また、依存部品ソースコードファイルパス908は、本システムに既に登録されている部品のソースコード、すなわち、部品取得手段105を通じて取得されるソースコードファイルしか指定できないものとする。
ユーザが登録実行ボタン903を押すと、ユーザが入力した登録部品情報901、依存部品情報902、登録部品ソースコードファイルパス906で指定したファイル本体、および依存部品ソースコードファイルパス908で指定したファイル本体が、部品登録手段104に送信される。
When there are a plurality of files, the path of the file that has been compressed and archived into one file is designated. In addition, it is confirmed that the source code files specified by the registered component source code file path 906 and the dependent component source code file path 908 have been successfully compiled and tested after being combined with each other in the development environment. To do. The dependent component source code file path 908 can specify only the source code of a component already registered in the system, that is, the source code file acquired through the component acquiring unit 105.
When the user presses the registration execution button 903, the registered component information 901, the dependent component information 902, the file body specified by the registered component source code file path 906, and the file body specified by the dependent component source code file path 908 are input by the user. Is transmitted to the component registration means 104.

図10は、クライアント端末102上に表示される部品一覧画面の一例である。
部品ID1001、部品名称1002、部品機能説明1003は、部品管理表111から取得したデータを表示する。
依存部品1004は、当該部品が依存している他部品の部品IDを部品依存関係管理表112から取得して表示する。
取得チェック欄1005には、ユーザが、取得したい部品にチェックをつけるためのチェックボックスを表示する。なお、ユーザがチェックをつけた部品が他の部品に依存している場合は、依存部品のチェックボックスにも自動でチェックが入り、依存部品を強制的に同時取得させる仕組みとする。
ユーザがカスタマイズ情報入力ボタン1006を押すと、カスタマイズ情報入力画面へ遷移する。
FIG. 10 is an example of a component list screen displayed on the client terminal 102.
A component ID 1001, a component name 1002, and a component function description 1003 display data acquired from the component management table 111.
The dependent component 1004 acquires the component ID of another component on which the component is dependent from the component dependency relationship management table 112 and displays it.
In the acquisition check column 1005, a check box for the user to check a part to be acquired is displayed. In addition, when the component checked by the user depends on another component, the check box of the dependent component is automatically checked, and the dependent component is forcibly acquired at the same time.
When the user presses the customization information input button 1006, the screen transits to the customization information input screen.

図11は、クライアント端末102上に表示されるカスタマイズ情報入力画面の一例である。
カスタマイズ情報1101の入力欄では、部品一覧画面にてチェックした部品のテンプレート内に出現する全ての可変項目について、ユーザがカスタマイズ値を指定することが出来る。
カスタマイズ情報1101の入力欄は、可変項目管理表113からデータを取得して、上位項目404のデータをもとに各項目を階層的に表示するとともに、テキストボックス内に各項目のデフォルト値402を表示し、テキストボックスの上に項目種別403を表示する。
ユーザは、テキストボックス内の値を編集することによって、各項目のカスタマイズ値を入力できる。
ユーザが部品登録実行ボタン1102を押すと、カスタマイズ情報1101が部品取得手段105に送信される。
FIG. 11 is an example of a customization information input screen displayed on the client terminal 102.
In the input field of the customization information 1101, the user can specify a customization value for all variable items that appear in the part template checked on the part list screen.
The input field of the customization information 1101 acquires data from the variable item management table 113, displays each item hierarchically based on the data of the upper item 404, and sets the default value 402 of each item in the text box. The item type 403 is displayed on the text box.
The user can input a customized value for each item by editing the value in the text box.
When the user presses a component registration execution button 1102, customization information 1101 is transmitted to the component acquisition unit 105.

図12は、テンプレート生成手段107におけるテンプレート生成例、およびソースコード生成手段109におけるソースコード生成例である。
登録部品ソースコード1201は、部品を登録しようとするユーザが、部品登録画面を通じて送信するソースコードの例である。
テンプレート1202は、テンプレート生成手段107によってソースコード1201が編集され、可変項目が可変項目ID401によって置き換えられて生成されたテンプレートの例である。
生成ソースコード1203は、ソースコード生成手段109によって、テンプレート1202をもとに生成されるソースコードの例であり、テンプレート1202中の可変項目IDが、ユーザによって入力されたカスタマイズ情報で置き換えられたものである。
FIG. 12 shows a template generation example in the template generation unit 107 and a source code generation example in the source code generation unit 109.
The registered component source code 1201 is an example of source code transmitted by a user who wants to register a component through the component registration screen.
The template 1202 is an example of a template generated by editing the source code 1201 by the template generation unit 107 and replacing the variable item with the variable item ID 401.
The generated source code 1203 is an example of source code generated based on the template 1202 by the source code generating unit 109, and the variable item ID in the template 1202 is replaced with customization information input by the user. It is.

なお、ソフトウェア部品のソースコードおよびテンプレートは一般に複数個のファイルによって構成されるが、本実施例では、複数個のファイルは圧縮して一個のファイルにまとめた上で管理するものとする。圧縮されているファイルを処理する際はその都度解凍して1ファイルずつ処理し、処理後は再度圧縮して返却するものとする。   The source code and template of the software component are generally composed of a plurality of files. However, in this embodiment, the plurality of files are compressed and managed as a single file. When a compressed file is processed, it is decompressed and processed one file at a time, and after processing, it is compressed again and returned.

本発明の一実施の形態例を示すシステム構成図である。1 is a system configuration diagram showing an embodiment of the present invention. リポジトリに格納される部品管理表の一例を示す図である。It is a figure which shows an example of the components management table stored in a repository. リポジトリに格納される部品依存関係管理表の一例を示す図である。It is a figure which shows an example of the component dependence management table stored in a repository. リポジトリに格納される可変項目管理表の一例を示す図である。It is a figure which shows an example of the variable item management table stored in a repository. 部品の登録手順を示すフローチャートである。It is a flowchart which shows the registration procedure of components. 可変項目IDの競合関係を解消する処理の説明図である。It is explanatory drawing of the process which eliminates the competition of variable item ID. 可変項目IDの競合関係を解消する処理のフローチャートである。It is a flowchart of the process which cancels | releases the competitive relationship of variable item ID. 部品の取得手順のフローチャートである。It is a flowchart of the acquisition procedure of components. クライアント端末に表示される部品登録画面の一例である。It is an example of the components registration screen displayed on a client terminal. クライアント端末に表示される部品一覧画面の一例である。It is an example of the components list screen displayed on a client terminal. クライアント端末に表示されるカスタマイズ情報入力画面の一例である。It is an example of the customization information input screen displayed on a client terminal. テンプレート生成例およびソースコード生成例を示す図である。It is a figure which shows the example of template generation, and a source code generation example.

符号の説明Explanation of symbols

101 サーバ
102 クライアント端末
103 リポジトリ
104 部品登録手段
105 部品取得手段
106 ソースコード解析手段
107 テンプレート生成手段
108 可変項目ID発行手段
109 ソースコード生成手段
110 テンプレート
DESCRIPTION OF SYMBOLS 101 Server 102 Client terminal 103 Repository 104 Parts registration means 105 Parts acquisition means 106 Source code analysis means 107 Template generation means 108 Variable item ID issuing means 109 Source code generation means 110 Template

Claims (2)

テストが完了したソフトウェア部品をテンプレートの形態で記憶手段内に保持するサーバと、ユーザが前記サーバに対してソフトウェア部品の登録、取得を指示するクライアント端末とから成るソフトウェア部品テンプレート管理システムであって、
前記サーバが、
前記クライアント端末より送信されたソフトウェア部品のソースコードの構文木を生成した後、当該構文木中に出現する可変項目を抽出し、当該可変項目を一意に識別するための可変項目IDに置き換えたテンプレートを生成し、前記記憶手段内に登録する部品登録手段と、
前記記憶手段内に登録済みのテンプレートからソフトウェア部品のソースコードを生成してクライアント端末に送信する部品取得手段とを備え
さらに前記部品登録手段が、登録対象のソフトウェア部品のテンプレートの各可変項目に対して同じ可変項目を表す複数の既存のテンプレートの可変項目IDが発行されているか否かを、登録対象のソフトウェア部品のテンプレートと依存関係がある既存のテンプレートとの比較により調べ、発行されていた場合、前記複数の既存のテンプレートの可変項目IDのうち発行日時が最も古い可変項目IDに統一し、発行日時が最も古い可変項目IDを除く他の可変項目IDは全て削除し、登録対象のソフトウェア部品のテンプレートにおける可変項目IDと既存のテンプレートの可変項目IDとが1対1に整合するように補正する可変項目ID競合解消処理手段とを備えることを特徴とするソフトウェア部品テンプレート管理システム。
A software component template management system comprising a server that stores a software component that has been tested in a storage means in the form of a template, and a client terminal that instructs the server to register and acquire the software component.
The server is
After generating a syntax tree of the source code of the software component transmitted from the client terminal, a variable item that appears in the syntax tree is extracted and replaced with a variable item ID for uniquely identifying the variable item Component registration means for generating and registering in the storage means;
Component acquisition means for generating a source code of a software component from a template registered in the storage means and transmitting it to a client terminal ;
Further, the component registration means determines whether or not a plurality of existing template variable item IDs representing the same variable item are issued for each variable item of the registration target software component template. If a template is examined and compared with an existing template that has a dependency, it is unified with the variable item ID with the oldest issue date among the variable item IDs of the plurality of existing templates, and the issue date is the oldest All other variable item IDs except the variable item ID are deleted, and the variable item ID conflict is corrected so that the variable item ID in the template of the software component to be registered matches the variable item ID of the existing template in a one-to-one correspondence. A software component template management system comprising a resolution processing means .
前記部品取得手段は、クライアント端末より送信されたカスタマイズ情報を、登録済みのテンプレートの可変項目に埋め込むことによってソースコードを生成するソースコード生成手段を備えることを特徴とする請求項1に記載のソフトウェア部品テンプレート管理システム。
2. The software according to claim 1, wherein the component acquisition unit includes a source code generation unit configured to generate a source code by embedding customization information transmitted from a client terminal in a variable item of a registered template. Component template management system.
JP2007052294A 2007-03-02 2007-03-02 Software component template management system Expired - Fee Related JP4963070B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007052294A JP4963070B2 (en) 2007-03-02 2007-03-02 Software component template management system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007052294A JP4963070B2 (en) 2007-03-02 2007-03-02 Software component template management system

Publications (2)

Publication Number Publication Date
JP2008217292A JP2008217292A (en) 2008-09-18
JP4963070B2 true JP4963070B2 (en) 2012-06-27

Family

ID=39837277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007052294A Expired - Fee Related JP4963070B2 (en) 2007-03-02 2007-03-02 Software component template management system

Country Status (1)

Country Link
JP (1) JP4963070B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5294975B2 (en) * 2009-05-14 2013-09-18 キヤノン株式会社 Information processing apparatus, information processing apparatus control method, and program
WO2010134123A1 (en) * 2009-05-18 2010-11-25 株式会社Nst Test support device and test support method
JP6066031B2 (en) * 2011-11-30 2017-01-25 日本電気株式会社 Information processing apparatus, information processing method, and information processing program
JP7231518B2 (en) * 2019-08-30 2023-03-01 株式会社日立製作所 Packaging support system and packaging support method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03144730A (en) * 1989-10-30 1991-06-20 Shimadzu Corp Device for supporting reuse of program parts
JPH0981377A (en) * 1995-09-12 1997-03-28 Fuji Electric Co Ltd Automatic generation device for specifications of reusing program
JPH09134282A (en) * 1995-11-08 1997-05-20 Hitachi Ltd Program generation method
JPH09160765A (en) * 1995-12-08 1997-06-20 Hitachi Ltd Production of software parts
JP4154164B2 (en) * 2002-03-25 2008-09-24 株式会社デュオシステムズ Knowledge reuse system
JP2005234959A (en) * 2004-02-20 2005-09-02 Nec Corp Device, program and method for preparing template
JP2006268292A (en) * 2005-03-23 2006-10-05 Nec Corp Template compiling device and template compiling program

Also Published As

Publication number Publication date
JP2008217292A (en) 2008-09-18

Similar Documents

Publication Publication Date Title
CN110968325B (en) Applet conversion method and device
AU2010212391B2 (en) Integration environment generator
US7032210B2 (en) Method and system for generating program source code of a computer application from an information model
US10509854B2 (en) Annotation processing of computer files
US9608893B2 (en) Methods and systems for parsing data objects
US20040261059A1 (en) System and method for creating, managing and using code segments
US8578336B1 (en) Systems and methods for providing a test automation framework having a unified user interface
CN111158674B (en) Component management method, system, device and storage medium
JP5350428B2 (en) Automatic program generation apparatus, method and computer program
WO2020015191A1 (en) Business rule releasing and managing method, electronic device and readable storage medium
JP2017535887A (en) Computer-executable model reverse engineering method and apparatus
JP4963070B2 (en) Software component template management system
Haase et al. Introduction to openArchitectureWare 4.1. 2
JP2008225898A (en) Conversion device, conversion program, and conversion method
US7721279B1 (en) Packaging information integration applications
Rahman et al. A DSL for importing models in a requirements management system
Kunert Semi-automatic generation of metamodels and models from grammars and programs
CN115794214A (en) Application module metadata management method, device, storage medium and device
CN113590179B (en) Plug-in detection method and device, electronic equipment and storage medium
JP2009301084A (en) Information processor and information processing method
Le Zou et al. On synchronizing with web service evolution
JP2008090707A (en) Software metadata analysis device and method
CN117785274B (en) Method for disassembling version based on gitlab and micro-service architecture
CN116028138B (en) Application publishing method and device
Danjou Serious Python: black-belt advice on deployment, scalability, testing, and more

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090716

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120130

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120321

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees