JP4963070B2 - Software component template management system - Google Patents
Software component template management system Download PDFInfo
- 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
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.
ところで、ソフトウェア部品のテンプレートを用意するための方法としては、実行可能なソフトウェアを作成してテストを行った後、部品化が可能な箇所のソースコードについて、ソースコード中の可変項目を編集してテンプレート化するのが一般的である。
しかし、ソースコードを編集してテンプレート化する作業は人手で行うと手間がかかる。ソフトウェアを開発するプロジェクトでは、ソースコードは作成しても、それを編集してテンプレート化する作業まではコスト低減等のため実施しないことが多く、これがテンプレートの蓄積を阻害する要因となることもある。
また、ソフトウェア部品同士を組み合わせて利用する際、一方が他方で定義された項目を参照したり継承したりといった依存関係があると、一方をカスタマイズした際には、他方もそれに合わせたカスタマイズを行って整合性を維持しなければならないという問題がある。自動生成されたソースコード同士を組み合わせる際にも前記の整合性の問題が発生し得るが、自動生成の元であるテンプレートを作成する段階で、依存関係のあるソフトウェア部品同士のテンプレートの整合性を保持しておけば、自動生成後のソースコード間では整合性の問題の発生を防ぐことができる。
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
The
The
The
The
図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
The
The
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
Both the
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
The
A
The
The
The issue date /
図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
The user of the
The
When the dependent component information is not input in
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
一方、ステップ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
The variable item ID issuing means 108 receives the analysis result of
Next, the template generation means 107 receives the dependent component source code and the temporary variable item ID list issued in
次に、可変項目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
Further, the variable item
If part of the existing variable item ID is changed due to the conflict resolution of the existing variable item ID in
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
Then, the
Finally, the
図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
Therefore, a process for unifying the variable item ID with the oldest issue date is performed by the conflict resolution process in
図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 (
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 (
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 (
図8は、本システムに登録されたソフトウェア部品をクライアント102が取得する手順を示すフローチャートである。
クライアント端末102がソフトウェア部品を取得すべくサーバ101の部品取得手段105にアクセスすると、部品取得手段105は、部品管理表111および部品依存関係管理表112からデータを取得して部品一覧画面を作成し、クライアント端末102上に表示する(ステップ801)。
ユーザは、クライアント端末102に表示された部品一覧画面にて、取得したい部品を全て選択する(ステップ802)。
FIG. 8 is a flowchart showing a procedure for the
When the
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
The user inputs a customization value corresponding to each variable item on the customization information input screen (step 804).
The
Finally, the
図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
The component registration screen includes an input column for registered
The registered
The
As for the registered component source
ファイルが複数個ある場合は、それらを圧縮して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
When the user presses the
図10は、クライアント端末102上に表示される部品一覧画面の一例である。
部品ID1001、部品名称1002、部品機能説明1003は、部品管理表111から取得したデータを表示する。
依存部品1004は、当該部品が依存している他部品の部品IDを部品依存関係管理表112から取得して表示する。
取得チェック欄1005には、ユーザが、取得したい部品にチェックをつけるためのチェックボックスを表示する。なお、ユーザがチェックをつけた部品が他の部品に依存している場合は、依存部品のチェックボックスにも自動でチェックが入り、依存部品を強制的に同時取得させる仕組みとする。
ユーザがカスタマイズ情報入力ボタン1006を押すと、カスタマイズ情報入力画面へ遷移する。
FIG. 10 is an example of a component list screen displayed on the
A
The
In the
When the user presses the customization
図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
In the input field of the
The input field of the
The user can input a customized value for each item by editing the value in the text box.
When the user presses a component
図12は、テンプレート生成手段107におけるテンプレート生成例、およびソースコード生成手段109におけるソースコード生成例である。
登録部品ソースコード1201は、部品を登録しようとするユーザが、部品登録画面を通じて送信するソースコードの例である。
テンプレート1202は、テンプレート生成手段107によってソースコード1201が編集され、可変項目が可変項目ID401によって置き換えられて生成されたテンプレートの例である。
生成ソースコード1203は、ソースコード生成手段109によって、テンプレート1202をもとに生成されるソースコードの例であり、テンプレート1202中の可変項目IDが、ユーザによって入力されたカスタマイズ情報で置き換えられたものである。
FIG. 12 shows a template generation example in the
The registered
The
The generated
なお、ソフトウェア部品のソースコードおよびテンプレートは一般に複数個のファイルによって構成されるが、本実施例では、複数個のファイルは圧縮して一個のファイルにまとめた上で管理するものとする。圧縮されているファイルを処理する際はその都度解凍して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.
101 サーバ
102 クライアント端末
103 リポジトリ
104 部品登録手段
105 部品取得手段
106 ソースコード解析手段
107 テンプレート生成手段
108 可変項目ID発行手段
109 ソースコード生成手段
110 テンプレート
DESCRIPTION OF
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 .
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.
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)
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)
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 |
-
2007
- 2007-03-02 JP JP2007052294A patent/JP4963070B2/en not_active Expired - Fee Related
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 |