JP2008090707A - ソフトウェアメタデータ解析装置およびその方法 - Google Patents
ソフトウェアメタデータ解析装置およびその方法 Download PDFInfo
- Publication number
- JP2008090707A JP2008090707A JP2006272676A JP2006272676A JP2008090707A JP 2008090707 A JP2008090707 A JP 2008090707A JP 2006272676 A JP2006272676 A JP 2006272676A JP 2006272676 A JP2006272676 A JP 2006272676A JP 2008090707 A JP2008090707 A JP 2008090707A
- Authority
- JP
- Japan
- Prior art keywords
- metadata
- program
- software
- variable
- code
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】 ソフトウェアシステムに存在する依存性をなくし、開発効率を高める。
【解決手段】 ソフトウェアを構成するプログラムは、「OSなどの動作環境に依存」、「プログラム言語に依存」、「OSやライブラリーのバージョンに依存」、「使用するライブラリーに依存」といった幾つもの依存性を持っている。その問題点を解決するために、ソフトウェアシステムのメタデータを解析し、そのメタデータに人間の意図を追加する事により依存性をなくす。これにより、開発効率が格段によくなる。
【選択図】 図3
【解決手段】 ソフトウェアを構成するプログラムは、「OSなどの動作環境に依存」、「プログラム言語に依存」、「OSやライブラリーのバージョンに依存」、「使用するライブラリーに依存」といった幾つもの依存性を持っている。その問題点を解決するために、ソフトウェアシステムのメタデータを解析し、そのメタデータに人間の意図を追加する事により依存性をなくす。これにより、開発効率が格段によくなる。
【選択図】 図3
Description
この発明は、ソフトウェア開発における数多くの問題点を解決し、開発の効率化を図る技術に関するものである。
従来の技術は、プログラム言語翻訳、オブジェクト指向、アスペクト指向、プログラムのライブラリー化、などの手法を用いて、ソフトウェア開発の効率を上げていた。
しかしながら、ソフトウェアを構成するプログラムは、「OSなどの動作環境に依存」、「プログラム言語に依存」、「OSやライブラリーのバージョンに依存」、「使用するライブラリーに依存」といった幾つもの依存性を持っている。
従って現状ではソフトウェア開発は多くの問題点に悩まされている。
一つ目に、一度作成したソフトウェアを他の動作環境に移植する際には、移植先動作環境に合わせて、プログラムを書き直す手間がかかる事が挙げられる。これには多くの時間と費用が発生する。本来一度開発ソフトウェアは、基本的な考え方が同じなので、改めて時間と費用を投入するべきではない。だが、現状ではプログラムはAPIなどが動作環境に依存するので、自動化する方法がない。それにより、人気のある動作環境のみに多くのソフトウェアが開発されるのが現状である。これは、生産者と消費者にとって好ましいことではない。
二つ目に、ソフトウェアは使用プログラム言語に依存するので、開発要員が制限される点が挙げられる。これにより、開発後のソフトウェアを管理する際に大きな問題となる。何故ならば、プログラム言語が古くなってくると、開発資料も減り開発できる人材が少なくなっていくからである。ドックイヤーと呼ばれる技術革新が早いソフトウェア業界では、この問題がより顕著となる。また、新しく機能が良いプログラム言語が発表されても、既存ソフトウェアのこの制約のおかげで、新しい言語に乗り換えられないというリスクが発生する。
三つ目に、ソフトウェアの運用保守が困難だという事が挙げられる。まず、生産者側の視点から考えると、先にも述べたように、開発要員の保持という問題もあるが、他にもセキュリティの問題が発生する。セキュリティは、ソフトウェアにおいて常に存在する危険だが、セキュリティを改善するには、OSなどの動作環境を変更する必要がある。しかしながら、先にも述べたように、プログラムは動作環境に依存するため、動作しなくなる恐れがあるため、それは不可能である。次に消費者側の視点から考えると、多額の資金を投入したシステムが、生産者側の都合により、たかだか10年やそこらでサポートを打ち切られる危険性がある事である。これはセキュリティ上の問題もあり非常に深刻な問題である。
四つ目に互換性の問題が挙げられる。ライブラリーなどのソフトウェア部品を提供する者は、たとえ、それが性能アップのためであっても既存の仕組みを変更すると、コンピューターシステムが誤作動を起こす。従って、間違えも修正出来ずに、互換性の問題からパフォーマンスとセキュリティを犠牲にしている場合が往々にして起こる。これはシステム誤作動の原因にもなるので非常に深刻な問題である。
五つ目に可読性の問題が挙げられる。プログラムは可読性を犠牲にすることにより、パフォーマンスをアップさせられることが多い。しかし、可読性を犠牲にすると、プログラムを作成した本人や、高い技術を持つ者でないと理解できないことが多い。従って、高い能力を持つ者が、そうでない者の事に合わして高品質なプログラムを書けない。これにより、ソフトウェアの品質がプログラマーの最大公約数的な効果しか確保できないことになる。
これらの問題の原因は、プログラム言語は自然言語とは違い柔軟性がなく、ソフトウェアやシステムのアイデアそのものではなく、機械的な手続きを表しているのに過ぎない事である。
そこで本発明は、プログラムやデータから実現しようとしたメタデータを抽出し、そのメタデータに足りないメタデータを人間が付け加えることにより、この問題を原因から解決する。
この発明にはいくつもの効果がある。なお効果は基本的に、既存の問題点と対応する形で提示する。
一つ目は、一度開発してしまえば、ソフトウェアのメタデータに基づきプログラムを自動生成できるので、異なる動作環境への移植が自動的に行える事である。これにより、よりスピーディで広範囲にソフトウェア販売を行える。また、どの動作環境をもつ消費者にもソフトウェアを提供できるので、ソフトウェが一つの動作環境に集中している現状を改善できる。
二つ目は、ソフトウェアのメタデータを扱うことにより、ソフトウェア開発に使用するプログラム言語を統一する必要がなくなる事である。これにより、常に最良のプログラム言語を用いてソフトウェアを作成することが出来る。その結果、品質とセキュリティは向上し、開発要員の最大の力を引き出せる。
三つ目は、容易にバージョンアップ出来ることである。問題三で述べたように、OSの構造上の違いから、現状では簡単にソフトウェアの対象OSを変えることは出来ないが、この発明を用いると、メタデータを加工し、新しいOS用のプログラムを自動生成できるので、より早く新しい環境にソフトウェアをバージョンアップできる。また逆に、古いOSを持っている消費者にたいしても、メタデータを用いてそのバージョン用のプログラムを自動生成できるので提供できる。
四つ目に、互換性の問題を解決できる事である。この発明を用いれば、ソフトウェアのメタデータを使用して、既存の消費者に対しバージョンアップツールを提供することにより、既存ソフトが動かなくなる事を防げるので、安心してライブラリー等を改良することが出来る。
五つ目に、可読性の問題を解決できることである。何故ならば本発明を使用すると、もとのプログラムを別のプログラム言語のプログラム変換することも出来る上に、母国語で表示することさえも可能だからである。従って、可読性を気にせずに、最大のパフォーマンスを得られるプログラムを記述することが出来るのである。
まずは本発明で使用する用語の説明を行う。
この発明において、「ソフトウェア」とは、スタンドアローンの単体のソフトウェアだけではなく、複数のソフトウェアで構成されるシステムも指している。
本発明の「プログラム」とは、コンピューターによって直接可能なものだけなく、ハードディスクなどにインストールすることによって実行可能となるものを含む概念である。また、圧縮されたり、暗号化されたりしたものも含む概念である。
本発明の「ソフトウェアのメタデータ」とは、変数、関数、クラス、条件式、データ型などの言語の文法や、表そうとしている情報、使用しているデータストアのメタデータ(列名、テーブル名、タグ名など)、ソフトウェアの機能などの開発メタデータ、OS等の稼働環境・・・などのソフトウェアと開発に関する全ての情報を含む概念である。
1 本発明の基本実施形態
(1)装置の全体構成と動作概要
図1にこの発明の一実施形態によるソフトウェア自動生成装置の全体構成を示す。入力部10は、解析対象となるソフトウェアの指定を指定するためのものである。
(1)装置の全体構成と動作概要
図1にこの発明の一実施形態によるソフトウェア自動生成装置の全体構成を示す。入力部10は、解析対象となるソフトウェアの指定を指定するためのものである。
ソフトウェアメタデータ解析装置が起動されると、対象となるソフトウェアを対話的に決定する為にGUI画面が表示部16に表示される。
入力部10を使用して、「対象となるソフトウェア」をGUI画面で選択する。すると、制御部12はメタデータ解析を行い、表示部16で表示する。
プログラムとデータストアを解析して得られない、メタデータを入力部10で追加入力する。入力が完了されたら、制御部12はメタデータをデータストアに格納する。
(2)ハードウェア構成
図1の制御部12を、CPU20を用いて実現した場合のハードウェア構成を図2に示す。図2において、CPU20には、メモリ22、表示部であるディスプレイ16、入力部であるキーボード10、もうひとつの入力部であるマウス24、記憶部であるハードディスク14、CD-ROMドライブ26が接続されている。ハードディスク14には、ソフトウェアメタデータ解析プログラム30、オペレーティングシステム(OS)32が記憶されている。ソフトウェア自動生成プログラム30は、CD-ROMドライブ26を介して、CD-28からインストールされたものである。なお、マウスは他のポインティング装置で代用できる。
図1の制御部12を、CPU20を用いて実現した場合のハードウェア構成を図2に示す。図2において、CPU20には、メモリ22、表示部であるディスプレイ16、入力部であるキーボード10、もうひとつの入力部であるマウス24、記憶部であるハードディスク14、CD-ROMドライブ26が接続されている。ハードディスク14には、ソフトウェアメタデータ解析プログラム30、オペレーティングシステム(OS)32が記憶されている。ソフトウェア自動生成プログラム30は、CD-ROMドライブ26を介して、CD-28からインストールされたものである。なお、マウスは他のポインティング装置で代用できる。
(3)注意事項
実施例を図示するに当たっての注意事項を記述する。まず、一連の処理図は、エラー処理、および、例外処理は省略する。その理由は、記述すると発明本質以外の部分が多くなるからである。またこれらの処理は、使用するプログラム言語に依存するので発明の説明として適切ではない。他にもセキュリティなどの、プログラム言語や特定のOSに依存する部分は、同じ理由により記述しない。
実施例を図示するに当たっての注意事項を記述する。まず、一連の処理図は、エラー処理、および、例外処理は省略する。その理由は、記述すると発明本質以外の部分が多くなるからである。またこれらの処理は、使用するプログラム言語に依存するので発明の説明として適切ではない。他にもセキュリティなどの、プログラム言語や特定のOSに依存する部分は、同じ理由により記述しない。
(4)請求項1の処理形態
図3に請求項1の処理形態である、ソフトウェアメタデータ解析処理の全体をフローチャートにて示す。ソフトウェアメタデータ解析処理プログラム30は、オペレーティングシステム32と協働して、図の処理を行う。ただし、その一部または全部の処理を、解析処理プログラム30単独で行うようにしても良い。
図3に請求項1の処理形態である、ソフトウェアメタデータ解析処理の全体をフローチャートにて示す。ソフトウェアメタデータ解析処理プログラム30は、オペレーティングシステム32と協働して、図の処理を行う。ただし、その一部または全部の処理を、解析処理プログラム30単独で行うようにしても良い。
CD-ROMドライブ26を入れる、マウス24を使って指示するなどのイベントにより、ソフトウェアメタデータ解析プログラム30が開始する(ステップS1)
表示部であるディスプレイ16を見ながら、入力部キーボード10と、入力部マウス24を使用し、使用言語と動作環境を設定する(ステップS2)
※ プログラムにより検出できる動作環境で開発しているのなら併用してもよい。
※ プログラムにより検出できる動作環境で開発しているのなら併用してもよい。
ソフトウェが必要とするプログラムファイルを全て検出する(ステップS3)
※ このステップも、プログラムファイル読み出しプログラムと併用しても良い。
※ このステップも、プログラムファイル読み出しプログラムと併用しても良い。
変数MaxFilesをステップS3で検出したファイルの数に初期化する(ステップS4)
解析済みファイル数を示す変数Countを0に初期化する(ステップS5)
変数MaxFilesが変数Countよりも大きいかを判定する。そして、その結果がTrueならばステップS11へ、FalseならばステップS7へ処理を進める(ステップS6)
未処理のファイルの中から、解析対象となるファイルを選択する(ステップS7)
プログラムのメタデータを解析するメタデータ解析処理を行う(ステップS8)
ステップS8の処理結果であるメタデータをデータストアに登録する(ステップS9)
変数Countをインクリメントする(ステップS10)
ソフトウェアが使用する、データベースなどの他の要素のメタデータをデータストアに登録する(ステップS11)
新規に格納したメタデータの意味を識別のために編集する。または、既存のメタデータの意味を変更する(ステップS12)
機能、ソフトウェアの名前、目的、・・・などの人間が意図するソフトウェアのメタデータをデータストアに格納する(ステップS13)
ソフトウェアメタデータ解析プログラム30を終了する(ステップS14)
(5)メタデータ解析処理
図4にメタデータ解析処理の全体をフローチャートにて示す。なお、ここで言うところのメタデータは、プログラムのメタデータ(関数、変数、型、オブジェクトなど)を示している。
図4にメタデータ解析処理の全体をフローチャートにて示す。なお、ここで言うところのメタデータは、プログラムのメタデータ(関数、変数、型、オブジェクトなど)を示している。
呼び出し元から解析対象ファイルの情報を渡され、メタデータ解析プログラムを開始する(ステップS1)
対象となるプログラムファイルに、使用されているプログラム言語を特定する(ステップS2)
対象となるプログラムファイルを開く(ステップS3)
ファイルの終端か判定をする。そして、その結果がTrueならばステップS8へ、FalseならばS5へ処理を進める(ステップS4)
ファイルの次行を読み込み変数に保存する(ステップS5)
トークン分析処理を行う(ステップS6)
式分析処理を行う(ステップS7)
コード分析処理を行う(ステップS8)
ファイルを閉じる(ステップS9)
メタデータ解析処理プログラムを終了し、呼び出し元に処理を戻す。なお、解析結果は変数や戻り値などの手段で呼び出し元へ返す(ステップS10)
(6)トークン分析処理
図5にトークン分析処理の全体をフローチャートにて示す。
呼び出し元から分析対象となるプログラムを渡され、トークン分析プログラムを開始する(ステップS1)
引数などで渡されたプログラムをトークンに分解する(ステップS2)
変数MaxCountをステップS2で得られたトークンの数に初期化する(ステップS3)
処理数をカウントする為の変数である変数Countを0に初期化する(ステップS4)
変数MaxCountが変数Countよりも大きいか判定する。そして、その結果がTrueならばステップ6へ、FalseならばステップS9へ処理を進める(ステップS5)
ステップS2で得られたトークンの中で、まだ処理をしていないトークンを選び出し、解析対象となるトークンを決定する(ステップS6)
トークン登録処理を行う(ステップS7)
変数Count変数をインクリメントする(ステップS8)
トークン分析処理プログラムを終了し、呼び出し元に処理を戻す。なお、分析結果は変数や戻り値などの手段で呼び出し元へ返す(ステップS9)
(7)トークン登録処理
図6にトークン登録処理の全体をフローチャートにて示す。
呼び出し元からトークン情報を渡され、トークン登録処理プログラムを開始する(ステップS1)
トークンの分類(変数、データ型、オブジェクトなど)を判別する(ステップS2)
トークンが既にデータストアへ登録されているか判定する。そして、その結果がTrueならばS10へ、FalseならばS4へ処理を進める(ステップS3)
トークンのメタデータを編集する(ステップS4)
トークンのメタデータをデータストアに登録する(ステップS5)
トークンのメタデータを変数などに記憶保存しておく(ステップS6)
トークンを扱うのに前提となる式や、後で実行する式があるか判定する。そしてその結果がTrueならばステップS8へ、FalseならばステップS12へ処理を進める(ステップS7)
必要となる式の登録処理を行う(ステップS8)
式との関連情報をデータストアに登録する。そして、ステップS7へ処理を進める(ステップS9)
あらかじめ登録されているトークンのメタデータを、データストアから呼び出す(ステップS10)
あらかじめ登録されている式との関連情報を、メタデータから呼び出す(ステップS11)
トークン登録処理を終了し、呼び出し元へ戻る。なお、トークンのメタデータは戻り値などの方法で呼び出し元へ渡す(ステップS12)
(8)式分析処理
図7に式分析処理の全体をフローチャートにて示す。
呼び出し元から分析対象となるプログラムを渡され、式分析処理プログラムを開始する(ステップS1)
渡されたプログラムから式を抽出する(ステップS2)
変数MaxCountを抽出された式の数に初期化する(ステップS3)
処理回数を記録するための変数Countを0に初期化する(ステップS4)
変数MaxCountが変数Countよりも大きいか判定する。そして、その結果がTrueならばステップS6へ、FalseならばステップS10へ処理を進める(ステップS5)
ステップS2で得られた式の中で、まだ処理をしていない式を選び出し、処理対象となる式を設定する(ステップS6)
式登録処理を行う(ステップS7)
変数Countをインクリメントする(ステップS8)
引数関連付け処理を行う(ステップS9)
式分析プログラムを終了し、呼び出し元へ戻る。なお、分析結果は変数や戻り値などの手段で呼び出し元へ返す(ステップS10)
(9)式登録処理
図8に式登録処理の全体をフローチャートにて示す。
呼び出し元から登録対象となる式の情報を渡され、式登録処理プログラムを開始する(ステップS1)
式の分類(関数呼び出し、条件判定文、繰り返し文など)を判別する(ステップS2)
式が既にデータストアへ登録されているか判定する。そして、その結果がTrueならばS10へ、FalseならばS4へ処理を進める(ステップS3)
式のメタデータを編集する(ステップS4)
式のメタデータをデータストアに登録する(ステップS5)
式のメタデータを変数などに保存しておく(ステップS6)
式を扱うのに前提となる式や後で実行する式があるか判定する。そしてその結果がTrueならばステップS8へ、FalseならばステップS12へ処理を進める(ステップS7)
必要となる式の登録処理を行う(ステップS8)
式との関連情報をデータストアに登録する(ステップS9)
あらかじめ登録されている式のメタデータを呼び出す(ステップS10)
あらかじめ登録されている他式との関連情報を呼び出す(ステップS11)
式登録処理を終了し、呼び出し元へ戻る。なお、式のメタデータや他式に関するメタデータは、戻り値などの手段で呼び出し元へ渡す(ステップS12)
(10)引数関連付け処理
図9に引数関連付け処理の全体をフローチャートにて示す。なお、この図でいう引数とは、判定条件なども含む概念である。
図9に引数関連付け処理の全体をフローチャートにて示す。なお、この図でいう引数とは、判定条件なども含む概念である。
呼び出し元から式のメタデータを渡され、引数関連付け処理を開始する(ステップS1)
呼び出し元から与えられた式のメタデータから引数を抽出する(ステップS2)
変数MaxCountを、ステップS2で抽出された引数の数で初期化する(ステップS3)
変数Countを0に初期化する(ステップS4)
変数MaxCountが変数Countよりも大きいか判定する。そして、その結果がTrueならばステップS6へ、FalseならばステップS10へ処理を進める(ステップS5)
ステップS2で得られた式の中で、まだ処理をしていない引数を選び出し、処理対象となる引数を決定する(ステップS6)
式と引数の関連情報をデータストアに登録する。もし追加メタデータを付加したい場合は事前に編集しておく(ステップS7)
式と引数の関連情報をデータストアに登録する。もし追加メタデータを付加したい場合は事前に編集しておく(ステップS8)
変数Countをインクリメントする(ステップS9)
引数関連付け処理を終了し、呼び出し元へ処理を戻す(ステップS10)
(11)コード分析処理
図10にコード分析処理の全体をフローチャートにて示す。
図10にコード分析処理の全体をフローチャートにて示す。
呼び出し元から分析対象となるプログラム・式・トークンの情報を渡され、コード分析処理プログラムを開始する(ステップS1)
渡された情報に含まれるコードを抽出するために、コード抽出処理を行う(ステップS2)
変数Targetをコード抽出処理の処理結果に初期化する(ステップS3)
新しく得られた処理結果にコードが含まれているか判定する。そして結果がTrueならばステップS5へ、FalseならばステップS9へ処理を進める(ステップS4)
前回の処理結果を保持するための変数BeTargetに、変数Targetの内容を格納する(ステップS5)
コードを含むコードを分析するために、コード抱合処理を行う(ステップS6)
変数Targetに、コード抱合処理の処理結果を格納する(ステップS7)
ステップS8は、プログラム言語により処理は異なり、プログラム言語の性質により、次の二つの処理が考えられる。
一つ目は、コード抱合処理から返される変数Flagの結果を判定する方法である。
二つ目は、変数BeTargetと変数Targetの内容が等しいか判定するか、もしくは両方判定する方法である。
どちらの方法にしても、その結果がTrueならばステップS9へ、FalseならばステップS5へと処理を進める(ステップS8)
関連したコードを登録したい場合を考慮して、ユーザーに処理を継続するか尋ねる。そして、その結果がTrueならばステップS10へ、FalseならばステップS11へと処理を進める(ステップ9)
コード登録処理を行う(ステップ10)
コード分析処理を終了し、呼び出し元に戻る。なお分析結果は、戻り値などの手段を用いて呼び出し元に渡す(ステップS11)
(12)コード抽出処理
図11にコード抽出処理の全体をフローチャートにて示す。
図11にコード抽出処理の全体をフローチャートにて示す。
呼び出し元から分析対象となるプログラム・式・トークンの情報を渡され、コード抽出プログラムを開始する(ステップS1)
終了地点を示す変数Endを渡された式の数+トークンの数に初期化する。(ステップS2)
開始地点を示す変数Startを0に初期化する(ステップS3)
変数Endが変数Startよりも大きいか判定する。そして、その結果がTrueならばステップS14へ、FalseならばステップS5へ処理を進める(ステップS4)
変数Startから変数Endが指し示す範囲のコードが、デートストアに登録済みか判定をする。そして、その結果がTrueならばステップS6へ、FalseならばステップS15へ処理を進める(ステップS5)
変数Startから変数Endが指し示す範囲で絞った、コードのメタデータをデータストアから呼出す(ステップS6)
変数Start2を、ステップS6で呼び出したコードの開始位置で初期化する(ステップS7)
変数End2を、ステップ6で呼び出したコードの終了位置で初期化する(ステップS8)
変数StartとStart2同じか判定する。そして、その結果がTrueならばステップS13へ、FalseならばステップS10へ処理を進める(ステップS9)
変数Start3に変数Startの内容を代入する(ステップS10)
変数End3に変数Start2行の内容を代入する(ステップS11)
変数Start3から変数End3の範囲のコードを抜き出し、コード分析処理に渡して実行する(ステップS12)
変数Startに変数End2を格納する(ステップS13)
コード抽出処理を終了し、呼び出し元に戻る。なお、処理結果は変数や戻り値などの方法で呼び出し元に渡す(ステップS14)
変数Startに、Start−1行分のプログラムの値を代入する。そしてステップS4へ処理を進める(ステップS15)
(13)コード抱合処理
図12にコード抱合処理の全体をフローチャートにて示す。
図12にコード抱合処理の全体をフローチャートにて示す。
なお、コード抱合とはコードを含むコードの事を指している。
呼び出し元から分析対象となるプログラム・コード・式・トークンの情報を渡され、コード抱合処理プログラムを開始する(ステップS1)
抱合処理の実行有無を示す変数FlagをFalseに初期化する(ステップS2)
渡されたコードを含むコードがあるか、データストアに問い合わせる。そしてその結果がTrueの場合はステップS4へ、FalseならばステップS10へ処理を進める(ステップS3)
渡された式を含むコードがあるか、データストアに問い合わせる。そしてその結果がTrueの場合はステップS4へ、FalseならばステップS10へ処理を進める(ステップS4)
渡されたトークンを含むコードがあるか、データストアに問い合わせる。そしてその結果がTrueの場合はステップS6へ、FalseならばステップS10へ処理を進める(ステップS5)
上記三つの判定ではRDBMSを想定し、SQL一括で判定できる事を想定しているが、そうでない場合は、渡された全てのコード・式・トークンについて各々問い合わせる。
変数FlagをTrueに設定する(ステップS6)
コードとの関連情報を呼び出す(ステップS7)
式との関連情報を呼び出す(ステップS8)
トークンとの関連情報を呼び出す(ステップS9)
なお、上記三つのステップは、付加情報がない場合は省略できる。
コード抱合処理を終了し、呼び出し元へ戻るのと同時に、全ての関連情報(トークンとの関連、式との関連、コードとの関連などの情報)と変数Flagを呼び出し元に渡して戻る(ステップS10)
(14)コード登録処理
図13にコード登録処理の全体をフローチャートにて示す。
図13にコード登録処理の全体をフローチャートにて示す。
呼び出し元から分析対象となるプログラム・コード・式・トークンの情報を渡され、コード登録処理プログラムを開始する(ステップS1)
コードの分類を人間とプログラムの両方で判別する(ステップS2)
ただしこの処理は、プログラムだけで事が足りるのなら、必ずしも人間が判定する事はない。
登録対象となるコードが既に、データストアに登録されているのか判定する。そしてその結果がTrueならばステップS13へ、FalseならばステップS4へ処理を進める(ステップS3)
プログラムを構成する構成要素(トークン・式・コード)の実行順序が正しくなるように整列する(ステップS4)
コードのメタデータを編集する(ステップS5)
全てのトークンとコードの関係情報をデータストアに登録する(ステップS6)
コードに式が必要とされているか判定する。そして結果がTrueならばステップS8へ、FalseならばステップS9へ処理を進める(ステップS7)
全ての式とコードの関係情報をデータストアに登録する(ステップS8)
コードにコードが必要とされているか判定する。そして結果がTrueならばステップS10へ、FalseならばステップS11へ処理を進める(ステップS9)
全てのコードとコードの関係情報をデータストアに登録する(ステップS10)
なお、上記のトークン・式・コードの関係情報を登録する処理は、フローチャート図ではRDBMSを想定し、SQL一括で判定できる事を想定しているが、そうでない場合は、個別に判定と登録を繰り返す必要がある。
今までの処理で判別した全てのコード情報を変数などに保存する(ステップS11)
コード登録処理を終了し、呼び出し元へ戻るのと同時に、全ての関連情報(トークンとの関連、式との関連、コードとの関連などの情報)とコードそのもののメタデータを呼び出し元に渡して戻る(ステップS12)
コードとトークンの関係情報をデータストアから全て呼び出す(ステップS13)
コードと式の関係情報をデータストアから全て呼び出す(ステップS14)
コードとコードの関係情報をデータストアから全て呼び出す(ステップS15)
コードそのもののメタデータをデータストアから呼び出す(ステップS16)
2 請求項3を適用した場合の形態
請求項3の基本形態を図14のフローチャートで説明する。
請求項3の基本形態を図14のフローチャートで説明する。
サーバー起動時に、クライアントからの解析要求などを受信するために、サービスプログラム(デーモンプログラム)を起動する。
プログラム起動後はクライアントからの要求を待つ。
クライアントからの要求を受信したら処理開始する(ステップS1)
要求内容を解析する(ステップS2)
処理対象がサーバーにあるか判定する。その結果がTrueならばステップS5へ、FalseならばステップS4に処理を進める(ステップS3)
処理対象の位置を探索する(ステップS4)
要求された処理を行う(ステップS5)
処理結果をクライアントに返信する(ステップS6)
他のクラアントからの要求を待つ(ステップS7)
3 請求項4を適用した場合の形態
請求項4の基本的形態を実現するために必要な動作環境変換処理を、図15のフローチャートで説明する。
請求項4の基本的形態を実現するために必要な動作環境変換処理を、図15のフローチャートで説明する。
CD-ROMドライブ26を入れる、マウス24を指定するなどのイベントにより、動作環境変換処理プログラムを開始する(ステップS1)
変換元使用言語と動作環境と、変換先使用言語と動作環境を設定する(ステップS2)
プログラムにより検出できる動作環境で開発しているのなら併用してもよい。
プログラムにより検出できる動作環境で開発しているのなら併用してもよい。
変換先動作環境がデータストアに登録されているか判定する。その結果がTrueならばステップS15へ、FalseならばステップS4に進む(ステップS3)
ステップS2で入力された、変換先動作環境をデータストアに格納する(ステップS4)
ソフトウェアを実装するのに必要なプログラムファイルを全て検出する(ステップS5)
変数MaxCountをステップS5で導出したファイルの数で初期化する(ステップS6)
変数Countを0で初期化する(ステップS7)
変数MaxCountがCountよりも大きいか判定する。そして、その結果がTrueならばステップS9へ、FalseならばステップS16へ処理を進める(ステップS8)
変換していないファイルの中から、変換対象となるファイルを決定する(ステップS9)
ファイルを開く(ステップS10)
プログラム変換処理を行う(ステップS11)
変換対象となったファイルを閉じる(ステップS12)
変数Countをインクリメントする(ステップS13)
内容がプログラム変換処理の結果である新ファイルを作成する(ステップS14)
データストアから、指定された変換先動作環境と一致するプログラムのメタデータを取り出す(ステップS15)
動作環境変換処理を終了する(ステップS16)
(1)プログラム変換処理
プログラム変換処理を図16のフローチャートで説明する。
プログラム変換処理を図16のフローチャートで説明する。
呼び出し元から変換対象となるプログラム、プログラム言語、プログラムのメタデータを指定して、プログラム変換処理プログラムを開始する(ステップS1)
変換するべきプログラムがあるか判定する。そして、その結果がTrueならばステップS3へ、FalseならばステップS8へ処理を進める(ステップS2)
プログラムのメタデータを用いて、変換対象プログラムにコードの必要性があるか判定する。そして、その結果がTrueならばステップS9へ、FalseならばステップS4へ処理を進める(ステップS3)
プログラムのメタデータを用いて、変換対象プログラムに式が必要か判定する。そして、その結果がTrueならばステップS10へ、FalseならばステップS5へ処理を進める(ステップS4)
トークン変換処理を行う(ステップS5)
変換プログラムを変数やオブジェクトに保存する(ステップS6)
次に変換するプログラムメタデータを読み込む(ステップS7)
処理を終了し、呼び出し元に変換結果を渡して戻る(ステップS8)
コード変換処理を行う(ステップS9)
式変換処理を行う(ステップS10)
(2)トークン変換処理
トークン変換処理を図17のフローチャートで説明する。
トークン変換処理を図17のフローチャートで説明する。
呼び出し元から変換対象となるトークンのメタデータを指定して、トークン変換処理プログラムを開始する(ステップS1)
変換先トークンを、データストアに登録されているデータを使用して導出する。この変換先を決定する方法としては、変換表を用いる方法と、付与した意味情報により判別する方法がある(ステップS2)
変換先トークンを指定しトークン登録処理を行う(ステップS3)
変数MaxCountを、トークン登録処理の導出結果である、関連式の数で初期化する(ステップS4)
変数Countを0に初期化する(ステップS5)
変数MaxCountが変数Countよりも大きいか判定する。そして、その結果がTrueならばステップS10へ、FalseならばステップS8へ処理を進める(ステップS6)
関連式の中から未処理の式から対象となる式を決定し、変数などに設定する(ステップS7)
式分析処理を行う(ステップS8)
変数Countをインクリメントする(ステップS9)
トークン処理を終了し、呼び出し元へ戻るのと同時に、関連する式のメタデータとトークンのメタデータを呼び出し元に渡して戻る(ステップS10)
(3)式変換処理
式変換処理を図18のフローチャートで説明する。
式変換処理を図18のフローチャートで説明する。
呼び出し元から変換対象となる式のメタデータを指定して、式変換処理プログラムを開始する(ステップS1)
変換先となる式を、データストアに登録されている情報に基づき導出する(ステップS2)
前のステップで導出された式を指定し、式分析処理を行う(ステップS3)
配列に順ずる変数Arrayを、式分析処理で導出された関連式の情報で初期化する(ステップS4)
変数MaxCountを、式分析処理で導出された引数の数で初期化する(ステップS5)
変数Countを0で初期化する(ステップS6)
変数MaxCountが変数Countよりも大きいか判定する。そして、その結果がTrueならばステップS13へ、FalseならばステップS8へ処理を進める(ステップS7)
変数Arrayから重複内容を取り除く(ステップS8)
変数Arrayが空か判定を行う。そして、その結果がTrueならばステップS12へ、FalseならばステップS10へ処理を進める(ステップS9)
変数Arrayから式のメタデータを取り出す(ステップS10)
前の処理で取り出した式のメタデータを指定し、式変換処理を行う(ステップS11)
式変換処理を終了し、呼び出し元へ処理を戻す。なお、変換結果は引数などを用いて渡す(ステップS12)
導出された引数の中から未処理な引数を対象に決定する(ステップS13)
対象となる引数を指定し、引数変換処理を行う(ステップS14)
変数Arrayに引数変換処理で導き出された関連式を追加する(ステップS15)
変数Countをインクリメントし、ステップS7へ処理を進める(ステップS16)
(4)引数変換処理
式変換処理を図19のフローチャートで説明する。
式変換処理を図19のフローチャートで説明する。
呼び出し元から変換対象となる引数のメタデータを指定して、引数変換処理プログラムを開始する(ステップS1)
引数からトークンを抽出する(ステップS2)
変数MaxCountを抽出されたトークンの数で初期化する(ステップS3)
変数Countを0に初期化する(ステップS4)
配列に準じる機能を持つ変数Arrayを初期化する(ステップS5)
変数MaxCountが変数Countよりも大きいか判定する。そして、その結果がTrueならばステップS7へ、FalseならばステップS11へ処理を進める(ステップS6)
処理対象となるトークンを、抽出結果の未処理トークンの中から決定する(ステップS7)
処理対象として設定したトークンのメタデータを指定し、トークン変換処理を行う(ステップS8)
変数Arrayにトークン変換処理で導出された、関連する式のメタデータを追加する(ステップS9)
変数Countをインクリメントする(ステップS10)
変数Arrayの重複内容を消す(ステップS11)
引数変換処理を終了し、呼び出し元へ処理を戻す。なお、変数Array、および、変換結果は引数や戻り値などの手段で呼び出し元へ渡す(ステップS12)
(5)コード変換処理
コード変換処理を図20のフローチャートで説明する。
コード変換処理を図20のフローチャートで説明する。
呼び出し元から変換対象となるプログラム、プログラム言語、プログラムのメタデータを指定して、コード変換プログラムを開始する(ステップS1)
変換先コードをデータストアに登録されている情報を元に導出する(ステップS2)
変換先コードが登録されているか判定する。そして、その結果がTrueならばステップS11へ、FalseならばステップS4へ処理を進める(ステップS3)
この処理での変換先コードの決定方法は、言語に依存するので明示していないが、指針を記述しておく。
オーソドックスな変換方法は、データストアに変換テーブルを設けることである。このテーブルは、変換プログラム方法を登録しておき、必要な情報引数としてプログラムに渡して、その結果を得ると良い。
変数MaxCountに最大式数を格納する。なお、最大引数は、前提となる式を考慮したものとする(ステップS4)
処理回数をカウントするための変数Countを0に初期化する(ステップS5)
変数MaxCountが変数Countをよりも大きいか判定する。そして、その結果がTrueならばステップS13へ、FalseならばステップS7へ処理を進める(ステップS6)
式の実行順序を正しく編集する(ステップS7)
コードのメタデータを編集する(ステップS8)
コードのメタデータをデータストアに登録する(ステップS9)
コード変換処理を終了し、変換結果を呼び出し元に渡し、呼び出し元に戻る。なお、変換結果は、引数などの手段を用いて呼び出し元へ渡す(ステップS10)
コードのメタデータを呼び出し、変数に格納しておく(ステップS11)
コード変換処理を終了し、変換結果を呼び出し元に渡し、呼び出し元に戻る。なお、変換結果は、引数などの手段を用いて呼び出し元へ渡す(ステップS12)
式変換処理を行う(ステップS13)
次に変換対象となる式を設定する(ステップS14)
変数Countをインクリメントする。そしてステップS6へ処理を進める(ステップ15)
4 請求項5を適用した場合の形態
請求項5を実現するための処理である、プログラム言語翻訳処理をフローチャート図21で説明する。
請求項5を実現するための処理である、プログラム言語翻訳処理をフローチャート図21で説明する。
CD-ROMドライブ26を入れる、マウス24を指定するなどのイベントにより、プログラム言語翻訳処理プログラムが開始する(ステップS1)
変換対象となるプログラムのプログラム言語を判別する。以後、この処理で判別したプログラム言語を変換元言語と呼ぶ(ステップS2)
変換を希望するプログラム言語判別する。以後この処理で指定した言語を変換先言語と呼ぶ(ステップS3)
変換先言語が登録されているか判定する。そして、その結果がTrueならばステップS13へ、FalseならばステップS5へ処理を進める(ステップS4)
言語情報をデータストアに登録する。ただし、名前意外に指定したいメタデータがある場合は編集してから登録する(ステップS5)
変数Fileに変換対象となるファイルの情報を格納する(ステップS6)
変数Fileを指定して、メタデータ解析処理を行う(ステップS7)
変数Fileに変換先となるファイルを設定する(ステップS8)
変数Fileで指定しているファイルを開く(ステップS9)
変数Fileを指定して、プログラム変換処理を行う(ステップS10)
プログラム変換処理の結果得られたプログラムを、変数Fileが指し示すファイルへ出力する(ステップS11)
ファイルを閉じる(ステップS12)
プログラム言語変換処理を終了する(ステップS13)
プログラム言語のメタデータをデータストアから呼び出す(ステップS14)
5 請求項6を適用した場合の形態
請求項6を実現するためには、バージョンアップ処理と、バージョンのメタデータを編集/付加する方法が必要である。
請求項6を実現するためには、バージョンアップ処理と、バージョンのメタデータを編集/付加する方法が必要である。
(1)バージョンアップ処理
バージョンアップ処理をフローチャート図22で説明する。なおこの図は単一言語で作成したソフトウェアの例である。複数言語で作成している場合は、S6〜S8をS2の後にし、繰り返り処理を行うようにようにすればよい。
バージョンアップ処理をフローチャート図22で説明する。なおこの図は単一言語で作成したソフトウェアの例である。複数言語で作成している場合は、S6〜S8をS2の後にし、繰り返り処理を行うようにようにすればよい。
CD-ROMドライブ26を入れる、マウス24を指定するなどのイベントにより、バージョンアップ処理プログラムが開始する(ステップS1)
対象ソフトウェアが必要とする全てのファイルを検出する(ステップS2)
使用されている言語を特定する(ステップS3)
使用されている言語のバージョンを特定する(ステップS4)
変換したいバージョンを指定する(ステップS5)
バージョン編集処理を行う(ステップS6)
変数MaxCountを、ソフトウェアを作成するのに必要なファイル数で初期化する(ステップS7)
変数Countを0に初期化する(ステップS8)
変数MaxCountが変数Countよりも大きいか判定する。そして、その結果がTrueならばステップS10へ、FalseならばステップS16へ処理を進める(ステップS9)
対象となるファイルを未処理ファイルの中から決定する(ステップS10)
対象ファイルを開く(ステップS11)
対象ファイルを指定して、プログラム変換処理を行う(ステップS12)
対象ファイルを閉じる(ステップS13)
変数Countをインクリメントする(ステップS14)
新規ファイルを作成し、変換プログラムを出力する(ステップS15)
バージョンアップ処理プログラムを終了する(ステップS16)
(2)バージョン編集処理
バージョン編集処理を図23のフローチャートで説明する。
バージョン編集処理を図23のフローチャートで説明する。
呼び出し元から変換対象となるプログラムファイルを指定して、バージョン編集処理プログラムを開始する(ステップS1)
呼び出し元から渡された処理対象ファイルを指定し、メタデータ解析処理を行う(ステップS2)
トークンのメタデータの重複を排除する(ステップS3)
式のメタデータの重複を排除する(ステップS4)
変数MaxCountを、トークンの数+式の数に初期化する(ステップS5)
変数Countを0に初期化する(ステップS6)
変数MaxCountが変数Countよりも大きいか判定する。そして、その結果がTrueならばステップS8へ、FalseならばステップS14へ処理を進める(ステップS7)
未処理のトークン、もしくは、未処理の式の中から、処理対象を決定する(ステップ8)
処理対象が編集済みでなおかつ登録済みか判定する。そして、その結果TrueならばステップS7へ、FalseならばステップS10へ処理を進める(ステップS9)
処理対象となるトークン、もしくは式が、言語に初めて導入されたバージョンを特定する(ステップS10)
もしバージョンのほかにも付加したいメタデータがあるのなら編集する(ステップS11)
メタデータをデータストアに登録、または、更新する(ステップS12)
変数Countをインクリメントする(ステップS13)
コード変換処理を終了し呼び出し元に戻る(ステップS14)
6 請求項7を適用した場合の形態
請求項7を実現するには、プログラムなどと言った機械的な要素を、現実に解決しようとした問題とマッピングする必要がある。すなわち、ソフトウェアを用いて解決しようとした問題とその方法を保持しなくてはならない。
請求項7を実現するには、プログラムなどと言った機械的な要素を、現実に解決しようとした問題とマッピングする必要がある。すなわち、ソフトウェアを用いて解決しようとした問題とその方法を保持しなくてはならない。
その方法として、まず考えられるのはソフトウェアの機能である。機能は複数の散在するコード片で実現されるものであり、現在のソフトウェア開発では、有効に利用されているとは言いがたく、何度もコーディングされなおされている。
その原因として、機能を実装するプログラム言語が違う事や、同じ機能でも細部が違う事が挙げられる。
そこで本発明では、機能という抽象的概念と、プログラムという具象的概念をマッピングする事により、より効率的に開発出来るようにした。
(1)機能定義処理
機能定義処理を図24のフローチャートで説明する。
機能定義処理を図24のフローチャートで説明する。
CD-ROMドライブ26を入れる、マウス24を指定するなどのイベントにより、機能定義処理プログラムが開始する(ステップS1)
登録されているコードの一覧と、そのコードの詳細情報を表示部16へ表示する(ステップS2)
機能を構成するコードの選択を継続するか判定する。そして、その結果がTrueならばステップS8へ、FalseならばステップS4へ処理を進める(ステップS3)
機能のメタデータを編集する(ステップS4)
機能のメタデータをデータストアに登録する(ステップS5)
機能と機能詳細情報との関連情報をデータストアに登録する(ステップS6)
機能定義処理を終了し、呼び出し元に戻る(ステップS7)
任意のコードと式の組み合わせを選ぶ(ステップS8)
開始イベント、あるコードの後などの記述するべき場所を指定する(ステップS9)
記述場所以外の機能詳細情報を編集する(ステップS10)
機能詳細情報以外のメタデータをデータストアに登録し、ステップS3へ処理を進める(ステップS11)
7 請求項8を適用した場合の形態
請求項8を実現するには、プログラムなどと言った機械的な要素を、自然言語と結び付けなくてはならない。
請求項8を実現するには、プログラムなどと言った機械的な要素を、自然言語と結び付けなくてはならない。
そこで本発明では、意味定義処理でプログラムの意味を自然言語を設定し、そのメタデータを用いて、プログラムと自然言語のマッピングを行う。
具体的に必要な処理は、意味を定義するための意味定義処理と、自然言語を実際のプログラムへ変換する処理、もしくは、逆の処理である。
(1)意味定義処理
意味定義処理を図25のフローチャートで説明する。
意味定義処理を図25のフローチャートで説明する。
意味定義処理は他のプログラムと連動してこそ意味があるので、他のプログラムから呼ばれ、意味定義処理プログラムを開始する(ステップS1)
意味が未定義の要素(コード、式、トークンなど)と、あらかじめ登録しておいた意味情報を全て表示部16に表示する(ステップS2)
処理を継続するか判定する。そして、その結果がTrueならばステップS4へ、FalseならばステップS10へ処理を進める(ステップS3)
意味の登録、もしくは、意味の選択を行う。意味の登録については、特筆するべきものがないので図示はしない(ステップS4)
表示部16で確認しながら、意味を定義したい要素を選択する(ステップS5)
自然言語(日本語、英語など)を登録、もしくは選択する。自然言語の登録についても、特筆するべきものがないので図示はしない(ステップS6)
文法の登録、もしくは選択を行う。自然言語の登録についても、特筆するべきものがないので図示はしない(ステップS7)
意味と要素の関係をデータストアに登録する(ステップS8)
要素詳細意味情報(意味、要素、自然言語、文法などの情報の事)をデータストアに登録する(ステップS9)
意味定義処理を終了する(ステップS10)
(2)自然言語変換処理
自然言語変換処理を図27のフローチャートで説明する。なお、この逆の処理については、図26を逆に処理していくだけなので図示しない。
自然言語変換処理を図27のフローチャートで説明する。なお、この逆の処理については、図26を逆に処理していくだけなので図示しない。
意味、文法、自然言語、要素詳細意味情報、実際に出力するプログラムの言語、稼働環境、などのデータと、変換対象となる文章を指定し、自然言語変換処理プログラムを開始する(ステップS1)
指定された自然言語に基づき、渡された文章を単語に分解する(ステップS2)
変数MaxCountを単語の数に初期化する(ステップS3)
処理回数を記録するための変数Countを0に初期化する(ステップS4)
変数MaxCountが変数Countよりも大きいか判定する。そして、その結果がTrueならばステップS6へ、FalseならばステップS11へ処理を進める(ステップS5)
未処理単語の中から処理対象となる単語を決定する(ステップS6)
渡された要素詳細意味情報を用いて、単語の意味を判別する(ステップS7)
単語の分類(動詞、名詞など)を判別する(ステップS8)
今まで判別した情報と、他の情報である、動作環境とプログラム言語情報を用いて実装(実際のプログラム)を特定する(ステップS9)
変数Countをインクリメントする(ステップS10)
自然言語処理プログラムを終了し、呼び出し元へ戻る。なお、実装は戻り値や引数などの手段を用いて渡す(ステップS11)
Claims (9)
- 対象となるソフトウェア、および、コンピューターシステムの解析を行い、メタデータを抽出する装置であって、解析対象となるソフトウェアを指定する為の入力部、ソフトウェアの解析結果を表示する為の表示部と、解析命令を受けてソフトウェアの解析を行う制御部を備えたソフトウェアメタデータ解析装置。
- 対象となるソフトウェア、および、コンピューターシステムの解析を行い、メタデータを抽出する方法。
- ネットワークを介して端末装置と通信可能であり、端末装置から送られてくるソフトウェアシステムの情報、もしくは、解析依頼メッセージを受信/解析するソフトウェア解析し、そのメタデータをもってソフトウェアを管理するサーバー装置であって、送信されてきたソフトウェアのメタデータを解析し、解析結果を管理するソフトウェア解析部と管理部を備えたサーバー装置。
- 請求項2によって導出されたメタデータを用いて、他の動作環境用のプログラムを自動生成する方法。
- 請求項2によって導出されたメタデータを用いて、ソフトウェアに用いたプログラム言語とは別のプログラム言語へ、言語変換を行い翻訳する方法。
- 請求項2によって導出されたメタデータを用いて、バージョンアップしたプログラムを自動生成する方法。
- 請求項2によって導出されたメタデータを用いて、機能などの開発者の意図を付け加えて、プログラムの抽象化・再利用性・思想と実装の分離性を高める方法。
- 請求項2によって導出されたメタデータを用いて、プログラムを自然言語へ変換する方法。
- 請求項2によって導出されたメタデータをXMLファイルで扱うもの。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006272676A JP2008090707A (ja) | 2006-10-04 | 2006-10-04 | ソフトウェアメタデータ解析装置およびその方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006272676A JP2008090707A (ja) | 2006-10-04 | 2006-10-04 | ソフトウェアメタデータ解析装置およびその方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008090707A true JP2008090707A (ja) | 2008-04-17 |
Family
ID=39374763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006272676A Pending JP2008090707A (ja) | 2006-10-04 | 2006-10-04 | ソフトウェアメタデータ解析装置およびその方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008090707A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10726012B2 (en) | 2016-05-17 | 2020-07-28 | Fujitsu Limited | Metadata registration method and device |
CN111831464A (zh) * | 2019-04-22 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 数据操作的控制方法及装置 |
CN115328458A (zh) * | 2022-10-12 | 2022-11-11 | 共道网络科技有限公司 | 一种业务应用开发方法及装置 |
-
2006
- 2006-10-04 JP JP2006272676A patent/JP2008090707A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10726012B2 (en) | 2016-05-17 | 2020-07-28 | Fujitsu Limited | Metadata registration method and device |
CN111831464A (zh) * | 2019-04-22 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 数据操作的控制方法及装置 |
CN115328458A (zh) * | 2022-10-12 | 2022-11-11 | 共道网络科技有限公司 | 一种业务应用开发方法及装置 |
CN115328458B (zh) * | 2022-10-12 | 2023-02-03 | 共道网络科技有限公司 | 一种业务应用开发方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7865870B2 (en) | Automatic content completion of valid values for method argument variables | |
US7526753B2 (en) | System and method for creating, managing and using code segments | |
Cunningham | GATE, a general architecture for text engineering | |
US8176412B2 (en) | Generating formatted documents | |
Petasis et al. | Ellogon: A new text engineering platform | |
US7877680B2 (en) | Auto-generation and auto-versioning of a multi-sourced dynamic document | |
KR100692172B1 (ko) | 종합 문자열 분석기 및 그 분석 방법 | |
US20040268237A1 (en) | Leveraging markup language data for semantically labeling text strings and data and for providing actions based on semantically labeled text strings and data | |
JP2009534743A (ja) | 非構造化リソースの構文解析方法 | |
US8219380B1 (en) | Methods and systems utilizing behavioral data models with derived properties | |
WO2009097384A1 (en) | Methods and apparatus for implementing multilingual software applications | |
US20160011868A1 (en) | Software documentation generation with automated sample inclusion | |
US7305629B2 (en) | Consolidation of computer documentation | |
Cunningham et al. | Developing language processing components with GATE | |
US20070169017A1 (en) | Method and apparatus for translating an application programming interface (API) call | |
EP1739551A1 (fr) | Procédé de traitement de données compatible avec un formalisme de modélisation d'objets | |
US20120066237A1 (en) | Delta language translation | |
US8701086B2 (en) | Simplifying analysis of software code used in software systems | |
US7966562B1 (en) | System and method for providing domain-sensitive help | |
JP2008090707A (ja) | ソフトウェアメタデータ解析装置およびその方法 | |
Lerman et al. | Programming entity framework: DbContext | |
Wilcock | The evolution of text annotation frameworks | |
JPH11338686A (ja) | プログラム開発支援装置及びプログラム開発支援方法並びにプログラム開発支援プログラムを記録した記録媒体 | |
Kalnins et al. | Tool support for MOLA | |
JP2011134270A (ja) | 単体試験支援装置、方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080507 |