JP2017535887A - コンピュータ実行可能なモデルリバースエンジニアリング方法及び装置 - Google Patents

コンピュータ実行可能なモデルリバースエンジニアリング方法及び装置 Download PDF

Info

Publication number
JP2017535887A
JP2017535887A JP2017527634A JP2017527634A JP2017535887A JP 2017535887 A JP2017535887 A JP 2017535887A JP 2017527634 A JP2017527634 A JP 2017527634A JP 2017527634 A JP2017527634 A JP 2017527634A JP 2017535887 A JP2017535887 A JP 2017535887A
Authority
JP
Japan
Prior art keywords
model
source code
reverse engineering
converting
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017527634A
Other languages
English (en)
Other versions
JP6479184B2 (ja
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.)
LG CNS Co Ltd
Original Assignee
LG CNS Co 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 LG CNS Co Ltd filed Critical LG CNS Co Ltd
Priority claimed from PCT/KR2015/012587 external-priority patent/WO2016085213A1/ko
Publication of JP2017535887A publication Critical patent/JP2017535887A/ja
Application granted granted Critical
Publication of JP6479184B2 publication Critical patent/JP6479184B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/74Reverse engineering; Extracting design information from source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

コンピュータ実行可能なモデルリバースエンジニアリング方法は、ソースコードを受信するステップと、前記ソースコードを目標モデルに変換するための変換規則を受信するステップと、前記ソースコードと連関されたパーサを介して前記ソースコードをパースして特定データ構造を有するパースデータをメモリに格納するステップと、前記格納されたパースデータをメタモデルに変換するステップと、前記メタモデルを前記受信した変換規則によって目標モデルに変換するステップと、 前記目標モデルを受信し、ソースコード生成のための環境設定を行うステップと、前記目標モデルの要素を読み込んで、当該要素がソースコード生成対象要素であるか確認するステップと、前記生成対象であるモデル要素を、当該要素が有している妥当性検証規則によって検証を行うステップと、前記検証結果に応じてソースコードを生成するステップとを含む。【選択図】図1

Description

本発明は、コンピュータ実行可能なモデルリバースエンジニアリング方法及び装置に関し、より詳細には、プログラムのソースコードをモデルに変換する構造及び規則を定義し、所望の形態のモデルを自動に生成して、プログラムの構造を容易に分析し、再設計するコンピュータ実行可能なモデルリバースエンジニアリング方法及び装置に関する。
既存に使用されるプログラムを分析する方法は、人が直接ソースコードを読み込んで分析する方法と、影響度分析ツールを介してソースコードを視角化する方法とがある。前者は、分析する人の技術的な力量に左右される傾向が大きく、後者は、単純に機械的にプログラムの形状をそのまま視角化して所望の形態のデータに加工するために費用が発生する。上記の2つの方法は共に、生成された成果物が参考資料となるだけであり、再利用が不可能である。
モデルリバースエンジニアリングを介して表現する成果物は、大きく2つの種類に区分される。1つは、UML(Unified Modeling Language)に該当する汎用的に使用できるように考案されたモデリング言語であり、他の1つは、Change Minerに該当する影響分析ツールらが使用する専用表現方式である。図7aは、汎用的なモデリング言語UMLのコンポーネントを示し、図7bは、影響分析ツールであるChange Minerを示す。
前者の場合、様々なSW環境とプログラミング言語のためのモデルを生成できるように包括的な表記法を提供するが、その量が膨大であり、概略的なSWモデルを作ることはできるが、UMLで表記法を提示しないソースコード情報はなくなる。これにより、リバースエンジニアリングとして生成したモデルで再度実行可能なソースコードを生成することが不可能である。後者の場合、影響分析ツールらが提供するリバースエンジニアリング成果物は、ソースコードの様々な情報を表現できるという点では活用度が高い。しかし、リバースエンジニアリング成果物をモデルとして再使用して、これに基づいて設計したりする2次活用が不可能な単純Reportを提供するだけであるから、活用度が低下し、ソースコードの形状をそのまま見せるので、不要な情報を多く含んでいる。
したがって、リバースエンジニアリングを介して所望の形状のモデルを作り、これを設計に再使用することができ、ソースコードの全ての情報を活用でき、これを介して様々なプログラミング言語で実行可能なソースコードを生成できる装置を作る必要がある。これを介してSW開発の便宜性と品質を向上させることができる。
韓国登録特許第10−0463833号は、コンポーネント自動変換システム及び方法に関するものであって、オブジェクト指向型のコンピュータシステムでシステムのソースコードを自動的に分析し、分析した情報を利用してソースコードをコンポーネントに変換させるコンポーネント自動変換システム及び方法に関するものである。
韓国登録特許第10−0965706号は、コード再書き込みが可能なコンピュータ装置及びコード再書き込み方法に関するものであって、コードユニットの開発、配置、及び実行の間、様々な段階で実施され得るコード再書き込み器の拡張可能、構成可能セットを介してコードユニットの再書き込み及び変換を提供する。
本発明の一実施形態は、既存のソースコードを所望の形態のモデルに変換して、プログラムの分析、構造把握、及び再設計を容易にすることができるコンピュータ実行可能なモデルリバースエンジニアリング方法及び装置を提供しようとする。
本発明の一実施形態は、ソースコードにある全ての情報を、遺失される情報無しで、モデルに表現することにより、モデルのみでソースコードの全ての内容を確認できるコンピュータ実行可能なモデルリバースエンジニアリング方法及び装置を提供しようとする。
本発明の一実施形態は、ソースコードを抽象化された形態の表現式に変換することにより、ソースコードを作成したプログラム言語に拘らず、全ての情報を抽象化して表現できるコンピュータ実行可能なモデルリバースエンジニアリング方法及び装置を提供しようとする。
本発明の一実施形態は、1つのモデルを介して様々なプログラミング言語で同じ機能を果たすプログラムを生成できるコンピュータ実行可能なモデルリバースエンジニアリング方法及び装置を提供しようとする。
実施形態の中で、コンピュータ実行可能なモデルリバースエンジニアリング方法は、ソースコードを受信するステップと、前記ソースコードを目標モデルに変換するための変換規則を受信するステップと、前記ソースコードと連関されたパーサを介して前記ソースコードをパースして特定データ構造を有するパースデータをメモリに格納するステップと、前記格納されたパースデータをメタモデルに変換するステップと、前記メタモデルを前記受信した変換規則によって目標モデルに変換するステップとを含む。
一実施形態において、コンピュータ実行可能なモデルリバースエンジニアリング方法は、前記変換された目標モデルをUML(Unified Modeling Language)標準に合う形態に再度変換してファイルに記録するステップをさらに含むことができる。
一実施形態において、前記変換規則を受信するステップは、ソース変換規則、モデル変換規則、命名規則、及び関係設定規則で構成される変換規則を受信するステップを含むことができる。ここで、前記メタモデルを前記受信した変換規則によって目標モデルに変換するステップは、前記変換規則によってソースコードの特定要素または目標モデルの特定要素を指定して変換するステップを含むことができる。
一実施形態において、前記パースデータをメモリに格納するステップは、前記ソースコードのプログラミング言語の種類に応じて他のデータ構造を有するデータにパースするステップを含むことができる。
一実施形態において、前記格納されたパースデータをメタモデルに変換するステップは、前記ソースコードの種類及びプログラム言語に関係なく、ソースコードの全ての要素を特定データ構造で表すメタモデルに変換するステップを含むことができる。
一実施形態において、コンピュータ実行可能なモデルリバースエンジニアリング方法は、前記変換規則によって関心対象でないソースコードを変換対象から除くステップを含むことができる。
一実施形態において、コンピュータ実行可能なモデルリバースエンジニアリング方法は、UMLで表現され得ないソースコード情報に対する別の変換規則を受信するステップを含むことができる。他の一実施形態において、コンピュータ実行可能なモデルリバースエンジニアリング方法は、前記UMLが表現できないソースコード情報に対して、メッセージ(message)ライフライン、例外処理(exception)ライフライン、妥当性検証(validation)ライフライン、またはコード(code)ライフラインのうち、少なくとも1つにメッセージを生成するステップをさらに含むことができる。
一実施形態において、コンピュータ実行可能なモデルリバースエンジニアリング方法は、前記ソースコードの全ての情報が前記目標モデルに含まれているか検証するステップをさらに含むことができる。
一実施形態において、前記メタモデルを前記受信した変換規則によって目標モデルに変換するステップは、前記メタモデルを前記受信した変換規則によってソースモデルに変換するステップと、前記ソースモデルを前記目標モデルに変換するためのモデル−to−モデル変換規則を受信するステップと、前記モデル−to−モデル変換規則によって前記ソースモデルを前記目標モデルに変換するステップとを含むことができる。
一実施形態において、コンピュータ実行可能なモデルリバースエンジニアリング方法は、前記目標モデルを受信し、ソースコード生成のための環境設定を行うステップと、前記目標モデルの要素を読み込んで、当該要素がソースコード生成対象要素であるか確認するステップと、前記生成対象であるモデル要素を当該要素が有している妥当性検証規則によって検証を行うステップと、前記検証結果に応じてソースコードを生成するステップとをさらに含むことができる。
一実施形態において、前記ソースコード生成のための環境設定を行うステップは、
前記目標モデルの要素及び各要素別の変換規則を登録し、変換規則の実行条件を指定して環境設定を行うステップを含むことができる。
実施形態の中で、モデルリバースエンジニアリング装置は、モデルリバースエンジニアリング可能なプログラムが格納されたメモリ部及び前記プログラムを実行するプロセッサを備え、前記プロセッサは、入力されたソースコードを、パーサを介して特定データ構造を有するパースデータにパースし、パースされたデータをメタモデルに変換し、前記メタモデルを入力された変換規則によって目標モデルに変換し、前記変換された目標モデルを用いてソースコードを生成する。
一実施形態において、前記プロセッサは、ソースコードを受信し、前記ソースコードを目標モデルに変換するための変換規則を受信し、パースされた特定データを有するパースデータをメモリに格納することができる。他の一実施形態において、前記プロセッサは、前記ソースコードのプログラミング言語種類に応じて他の形態の資料構造を有するデータにパースすることができる。
一実施形態において、前記プロセッサは、前記ソースコードの種類及びプログラム言語に関係なく、ソースコードの全ての要素を特定データ構造で表すメタモデルに変換することができる。他の一実施形態において、前記プロセッサは、UMLが表現できないソースコード情報に対する別の変換規則を受信することができる。
一実施形態において、前記プロセッサは、ソースモデルを受信し、目標モデルに変換するためのモデル−to−モデル変換規則によって前記ソースモデルを目標モデルに変換することができる。他の一実施形態において、前記プロセッサは、ソースモデルの正規化された名前及び目標モデルの正規化された名前で構成されるモデル−to−モデル変換規則を受信することができる。
一実施形態において、前記プロセッサは、前記目標モデルを受信し、ソースコード生成のための環境設定を行い、前記目標モデルの要素を読み込んで、当該要素がソースコード生成対象要素であるか確認し、前記生成対象であるモデル要素を、当該要素が有している妥当性検証規則によって検証を行い、前記検証結果に応じてソースコードを生成できる。他の一実施形態において、前記プロセッサは、前記目標モデルの要素及び各要素別の変換規則を登録し、変換規則の実行条件を指定して環境設定を行うことができる。
実施形態の中で、モデルリバースエンジニアリング方法をコンピュータで実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体は、ソースコードを受信する機能、前記ソースコードを目標モデルに変換するための変換規則を受信する機能、前記ソースコードと連関されたパーサを介して前記ソースコードをパースして特定データ構造を有するパースデータをメモリに格納する機能、前記格納されたパースデータをメタモデルに変換する機能、及び前記メタモデルを前記受信した変換規則によって目標モデルに変換する機能を含む。
開示された技術は、次の効果を有することができる。ただし、特定実施形態が次の効果を全て含むべきであるか、次の効果のみを含むべきであるという意味ではないので、開示された技術の権利範囲は、これによって制限されることと理解されてはならないであろう。
本発明の一実施形態に係るコンピュータ実行可能なモデルリバースエンジニアリング方法及び装置は、既存のソースコードを所望の形態のモデルに変換して、プログラムの分析、構造把握、及び再設計を容易にすることができる。
本発明の一実施形態に係るコンピュータ実行可能なモデルリバースエンジニアリング方法及び装置は、ソースコードにある全ての情報をモデルに表現することにより、モデルのみでソースコードの全ての内容を確認することができる。
本発明の一実施形態に係るコンピュータ実行可能なモデルリバースエンジニアリング方法及び装置は、ソースコードを抽象化された形態の表現式に変換することにより、ソースコードを作成したプログラム言語に拘らず、全ての情報を抽象化して表現できる。
本発明の一実施形態に係るコンピュータ実行可能なモデルリバースエンジニアリング方法及び装置は、1つのモデルを介して様々なプログラミング言語で同じ機能を果たすプログラムを生成できる。
モデルリバースエンジニアリング装置の構成を説明するブロック図である。 図1にあるモデルリバースエンジニアリングプログラム実行器の構成を説明するブロック図である。 図2にあるソースコードモデル変換器の構成及び作動を説明する図である。 図3にある変換規則受信部により受信される変換規則を説明する図である。 図2にあるモデル−to−モデル変換器の構成及び作動を説明する図である。 図2にあるモデル−to−モデル変換器の構成及び作動を説明する図である。 図2にあるソースコードモデル変換器によるコード系列表現式リバースエンジニアリング方法を説明する図である。 図2にあるソースコードモデル変換器によるコード系列表現式リバースエンジニアリング方法を説明する図である。 図2にあるコード生成器の構造とコード生成方法を示す図である。 図2にあるコード生成器の構造とコード生成方法を示す図である。 汎用的なモデリング言語UMLの構成要素と影響分析ツールであるChange Minerを示す図である。 汎用的なモデリング言語UMLの構成要素と影響分析ツールであるChange Minerを示す図である。
本発明に関する説明は、構造的ないし機能的説明のための実施形態に過ぎないので、本発明の権利範囲は、本文に説明された実施形態によって制限されることと解釈されてはならない。すなわち、実施形態は、様々な変更が可能であり、種々の形態を有することができるので、本発明の権利範囲は、技術的思想を実現できる均等物を含むことと理解されなければならない。また、本発明において提示された目的または効果は、特定実施形態がこれを全て含むべきであるか、そのような効果のみを含むべきであるという意味ではないので、本発明の権利範囲は、これによって制限されることと理解されてはならないであろう。
一方、本出願において叙述される用語の意味は、次のように理解されるべきであろう。
「第1」、「第2」などの用語は、1つの構成要素を他の構成要素から区別するためのものであって、これらの用語により権利範囲が限定されてはならない。例えば、第1構成要素は第2構成要素として命名されることができ、同様に、第2構成要素も第1構成要素として命名されることができる。
ある構成要素が他の構成要素に「連結されて」いると言及されたときには、その他の構成要素に直接的に連結されることもできるが、中間に他の構成要素が存在することができるとも理解されるべきであろう。それに対し、ある構成要素が他の構成要素に「直接連結されて」いると言及されたときには、中間に他の構成要素が存在しないことと理解されるべきであろう。一方、構成要素間の関係を説明する他の表現、すなわち、「〜間に」と「直ぐ〜間に」、または「〜に隣接する」と「〜に直接隣接する」なども同様に解釈されなければならない。
単数の表現は、文脈上、明白に異なるように意味しない限り、複数の表現を含むことと理解されなければならず、「含む」または「有する」などの用語は、実施された特徴、数字、ステップ、動作、構成要素、部分品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、1つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部分品、またはこれらを組み合わせたものなどの存在または付加可能性を予め排除しないことと理解されなければならない。
各ステップにおいて、識別符号(例えば、a、b、cなど)は、説明の便のために使用されるものであって、識別符号は、各ステップの順序を説明するものでなく、各ステップは、文脈上、明白に特定順序を記載しない以上、明記された順序と異なるように起こることができる。すなわち、各ステップは、明記された順序と同様に起こることができ、実質的に同時に実行されることができ、逆の順序どおりに実行されることもできる。
本発明は、コンピュータ読み取り可能な記録媒体にコンピュータ読み取り可能なコードとして実現されることができ、コンピュータ読み取り可能な記録媒体は、コンピュータシステムによって読み込まれ得るデータが格納されるあらゆる種類の記録装置を含む。コンピュータ読み取り可能な記録媒体の例としては、ROM、RAM、CD−ROM、磁気テープ、フロッピーディスク、光データ格納装置などがあり、また、キャリアウェーブ(例えば、インターネットを介しての伝送)の形態で実現されることも含む。また、コンピュータ読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータ読み取り可能なコードが格納され、実行されることができる。
ここで使用される全ての用語は、異なるように定義されない限り、本発明の属する分野における通常の知識を有した者により一般的に理解されることと同じ意味を有する。一般的に使用される辞書に定義されている用語は、関連技術の文脈上有する意味と一致することと解釈されなければならず、本出願において明らかに定義しない限り、理想的であるか、過度に形式的な意味を有することと解釈されることができない。
図1は、モデルリバースエンジニアリング装置の構成を説明するブロック図である。
図1に示すように、本発明の一実施形態に係るモデルリバースエンジニアリング装置10は、プロセッサ110、不揮発性メモリ120、揮発性メモリ130、ネットワークインターフェース140、入力装置150、及び出力装置160を備える。
プロセッサ110は、プロセッサ210は、モデルリバースエンジニアリングプログラム実行器112及びメモリマネージャ114を備えることができる。モデルリバースエンジニアリングプログラム実行器112は、モデルリバースエンジニアリングプログラムを実行させて、ソースコードリバースエンジニアリングを介してのモデル生成及び変換プロシージャを実行する。メモリマネージャ214は、モデルリバースエンジニアリングプログラム実行器112によって読み込まれるか、または記録される不揮発性メモリ120及び揮発性メモリ130にあるメモリ領域を管理する。
不揮発性メモリ120は、SSD(Solide State Disk)またはHDD(Hard Disk Drive)で実現されることができ、モデルリバースエンジニアリングプログラム及びモデルリバースエンジニアリングプログラム実行に必要なデータを格納するのに使用される。揮発性メモリ130は、不揮発性メモリ120に格納されたモデルリバースエンジニアリングプログラムを一時格納するのに使用される。
ネットワークインターフェース140は、ネットワークを介してモデルリバースエンジニアリング装置10を外部サーバと連結するための環境を含み、例えば、LAN(Local Area Network)通信のためのアダプタを含むことができる。
入力装置150は、ユーザ入力を受信するための環境を含み、例えば、マウス、トラックボール、タッチパッド、グラフィックタブレット、スキャナー、タッチスクリーン、キーボード、またはポインティング装置などを含むことができる。出力装置160は、ユーザに特定情報(例えば、メタモデル、目標モデル、またはソースコードなど)を出力するための環境を含み、例えば、モニターまたはタッチスクリーンなどを含むことができる。一例において、入力装置150と出力装置160は遠隔接続を介して接続されることができる。
図2は、図1にあるモデルリバースエンジニアリングプログラム実行器の構成を説明するブロック図である。
図2に示すように、本発明の一実施形態に係るモデルリバースエンジニアリングプログラム実行器112は、ソースコードモデル変換器210、モデル−to−モデル変換器220及びコード生成器230を備える。モデルリバースエンジニアリングプログラム実行器112は、ソースコードリバースエンジニアリングを介してのモデル生成及び変換が可能な装置であって、ソースコードまたはソースモデルを受信し、ユーザの所望の形態のモデルを生成及び変換することができ、変換規則を作成して適用するにおいて柔軟で、かつ様々な検証規則を指定できる。また、モデルリバースエンジニアリングプログラム実行器112は、モデルにソースコードの全ての情報を格納し、これを介して新しいプログラミング言語への変換を可能とする。ソースコードモデル変換器210、モデル−to−モデル変換器220、及びコード生成器230は、以下、図3ないし図7において詳しく説明する。
図3は、図2にあるソースコードモデル変換器の構成及び作動を説明する図である。
図3に示すように、本発明の一実施形態に係るソースコードモデル変換器210は、変換規則受信部212、パーサ214、メタモデル変換部216、及びモデル変換部218を備える。ソースコードが入力されれば、変換規則受信部212は変換規則を受信し、パーサ214は、ソースコードをパースしてデータをメモリに格納し、メタモデル変換部216は、メモリに格納されたデータを呼び出してプログラム言語から独立的なメタモデルにソースコードの情報を格納することができる。モデル変換部218は、変換規則を受信し、メタモデルを目標モデルに変換してUML標準に合うモデルを算出することができる。ソースコードは、UMLモデルに変換する対象となるソースコードであり、Java(登録商標)、C、COBOLなど、種々のプログラミング言語で作られたソースのうちの1つになることができる。
変換規則受信部212は、受信したソースコードを目標モデルに変換するための変換規則を受信できる。変換規則受信部212は、ソースコードに命名規則が存在する場合、当該規則を把握し、変換目標モデルの構造に関する情報を含む変換規則を受信できる。変換規則受信部212は、入力されたソースコードに対する情報、変換される目標モデルに対する情報、命名規則に対する情報、及び関係設定に対する情報を含む変換規則を受信できる。変換規則については、以下、図4において詳しく説明する。
パーサ214は、ソースコードをパースして特定データ構造を有するパースデータをメモリに格納することができる。すなわち、ソースコードをパース(parsing)してツリー形態のデータ構造を有したデータをメモリに載せる作業をすることができる。パーサ214は、ソースコードがどんなプログラミング言語であるかによってその形態が変わり得る。パースは、コンピュータでコンパイラまたは翻訳機が原始符号を機械語に翻訳する過程の1つの段階であり、各文章の文法的な構成または構文を分析する過程である。すなわち、原始プログラムで現れたトークン(token)の列を受け入れて、これをその言語の文法に合うように構文分析ツリー(parse tree)に構成し出すことである。したがって、パーサ214は、ソースコードの種類に応じて形態が変わり得るし、ソースコードのプログラミング言語種類に応じて他のデータ構造を有するデータにパースすることができる。
メタモデル変換部216は、前記格納されたパースデータをメタモデルに変換できる。メタモデル変換部216は、種々の種類のソースコードが作ったデータを1つのメタモデルデータ構造に変換する作業をすることができる。メタモデル変換部216は、ソースコードがいかなるプログラミング言語となっていても、パーサ214のみ交替すれば、モデルリバースエンジニアリング装置10が同じ品質と形態のUMLモデルを生成できるようにすることができる。したがって、メタモデル変換部216は、ソースコードの種類及びプログラム言語に関係なく、ソースコードの全ての要素を特定データ構造として表すメタモデルに変換できる。
モデル変換部218は、メタモデル変換部216により変換されたメタモデルを変換規則受信部212により受信された変換規則によって目標モデルに変換できる。モデル変換部218は、変換された目標モデルをUML標準に合う形態に再度変換してファイルに記録することができる。モデル変換部218は、UMLモデルで表現されない単純表現式系列の構文に対しては、別の変換規則を受信してUMLモデルに変換することができる。モデル変換部218を介して変換されたモデルは、UMLモデル形式に格納され、これは、IBM Rational Software ArchitectのようなUML編集ソフトウェアを介して確認されることができる。モデル変換部218は、変換規則によって関心対象でないソースコードを変換対象から除くことができ、変換規則によってソースコードの特定要素または目標モデルの特定要素を指定して変換することができる。ソースコードの特定要素は、ソースコード構成要素のうち、目標モデルに変換される変換対象項目であり、ソースコードのパッケージ(Package)、クラス(Class)、アトリビュート(Attribute)、オペレーション(Operation)などに該当でき、目標モデルの特定要素は、変換された目標モデルの変換結果項目であり、パッケージ(Package)、インターフェース(Interface)、クラス(Class)、属性(Attribute)、オペレーション(Operation)、コラボレーション(Collaboration)、シーケンスダイヤグラム(Sequence Diagram)、クラスダイヤグラム(Class Diagram)、コードライフライン(Code Lifeline)、メッセージライフライン(Message Lifeline)、妥当性検証ライフライン(Validation Lifeline)、例外処理ライフライン(Exception Lifeline)などに該当できる。ここで、関心対象でないソースコードは、ソースコードの特定要素として指定されていない要素であり、ユーザから選択されることができる。例えば、ユーザが関心対象でないソースコードとして注釈や呼び出されない情報を選択すれば、これと関連した情報は捨てられることができる。また、モデル変換部218は、ソースコードの全ての情報が前記目標モデルに含まれているか検証できる。
図4は、図3にある変換規則受信部により受信される変換規則を説明する図である。
図4において変換規則は、入力されるソースコードに対する情報(ソース変換規則)111、変換される目標モデルに対する情報(モデル変換規則)112、変換されるモデル要素の命名規則に対する情報(命名規則)113、変換されるモデル要素間の関係設定情報(関係設定規則)114でなされることができる。
ソース変換規則410は、モデルに変換する対象となるソースを、正規式を利用して指定することができる。ソースは、正規化された名前(QualifiedName)、属性、関数、及びソース種類を表す正規式を含むことができる。正規化された名前(QualifiedName)は、リバースエンジニアリング対象ソースを指定する正規式である。パッケージまたはフォルダを含んだクラス名のうち、この項目に定義された正規式にマッチングされるソースコードのみモデルに変換される。モデル変換部218は、パッケージまたはクラス名に命名規則が存在する場合、この項目を利用してソースを分類し、モデルに変換することができ、関心対象でないソースコードは、リバースエンジニアリング対象から除かれることができる。属性は、クラスまたはファイル内に属した属性を表す正規式である。モデル変換部218は、この項目を利用して正規化された名前(QualfiedName)にマッチングされるクラスまたはファイルに属した属性のうち、全体または特定属性のみモデルに変換することができる。関数は、クラスまたはファイル内に属した関数を表す正規式である。モデル変換部218は、この項目を利用して正規化された名前(QualifiedName)にマッチングされるクラスまたはファイルに属した関数のうち、全体または特定関数のみモデルに変換することができる。ソース種類がjava(登録商標)でないcや他の言語である場合、ファイル名がファイルの拡張子として唯一に区分される場合、モデル変換部218は、この項目に拡張子に該当する値を入れて、特定種類のソースのみモデルに変換することができる。
モデル変換規則420は、目標モデルに対する構成情報を表すことができる。IDは、モデルに変換される要素を唯一に区分できる値であり、ユーザが任意に付与することができる。モデル要素は、モデルのある要素に変換するか指定する項目であり、パッケージ(Package)、インターフェース(Interface)、クラス(Class)、属性(Attribute)、オペレーション(Operation)、コラボレーション(Collaboration)、シーケンスダイヤグラム(Sequence Diagram)、クラスダイヤグラム(Class Diagram)、コードライフライン(Code Lifeline)、メッセージライフライン(Message Lifeline)、妥当性検証ライフライン(Validation Lifeline)、例外処理ライフライン(Exception Lifeline)などが指定され得る。ソース要素は、ソースのある要素をモデルに変換するか指定する項目であり、パッケージ(Package)、クラス(Class)、属性(Attribute)、オペレーション(Operation)などが指定され得る。ソース要素を指定しなければ、ソースには存在しないが、目標モデルには存在しなければならない要素が挿入され得る。ステレオタイプには、変換されたモデル要素に指定するステレオタイプが記入される。上位要素IDは、当該要素が属する上位要素IDを指定する。
命名規則430は、変換されるモデル要素を命名する命名規則に対する情報を表すことができる。ソース接頭辞は、モデルへの変換の際、除去しようとするソースの接頭辞である。モデル接頭辞は、モデルへの変換の際、モデル要素名に入れようとする接頭辞である。ソース接尾辞は、モデルへの変換の際、除去しようとするソースの接尾辞である。モデル接尾辞は、モデルへの変換の際、モデル要素名に入れようとする接尾辞である。命名規則は、モデル要素に該当するソース名をモデル名に変換するとき、適用しようとする命名規則である。無し(none)、韓国語(Korean)、カスタム(Custom)などの項目を指定でき、無し(None)は、ソース名をそのままモデル名として用い、韓国語(Korean)は、予め入力されたハングル名−英文名辞書を利用し、ソースの英文名をハングル名に変換してモデル名として使用し、カスタム(Custom)は、単純英文−ハングル変換でない場合、それに合うソースプログラムを製作して指定できるようにする。命名クラスは、命名規則でカスタム(Custom)に項目が指定された場合、モデル名を決めるときに使用するJava(登録商標)のクラス情報を表す。
関係設定変換規則440は、ソースコードには存在しないが、変換されたモデル要素間の関係の設定が必要な場合、その関係を設定できる。類型は、関連、一般化、実現、依存関係などの関係類型を表す。関係要素IDは、関係を設定するモデル要素IDを表す。
図5は、図2にあるモデル−to−モデル変換器の構成及び作動を説明する図である。
図5aにおいて、モデル−to−モデル変換器220は、モデル−to−モデル変換規則受信部222及びモデル−to−モデル変換部224を備える。
一実施形態において、ソースコードモデル変換器210は、受信したソースコードを受信された変換規則によってUML形式のソースモデルに変換できる。モデル−to−モデル変換器220は、モデル−to−モデル変換規則を受信し、受信したモデル−to−モデル変換規則によってソースモデルを最終目標モデルに変換できる。モデル−to−モデル変換規則は、図5bにおいて詳しく説明する。
より詳しくは、モデル−to−モデル変換器220は、モデル−to−モデル変換規則によってソースモデルのパッケージ及びクラスの位置を移動し、再構成できる。すなわち、モデル−to−モデル変換器220は、ソースモデルパッケージのクラスが多い場合、パッケージを分離することができ、クラスのオペレーションが多い場合、クラスを分離することができる。同様に、モデル−to−モデル変換器220は、ソースモデルパッケージのクラスが少ない場合、パッケージを統合でき、クラスのオペレーションが少ない場合、クラスを統合できる。言い換えれば、変換規則によってメタモデルから変換されたソースモデルのパッケージまたはクラスに対する統廃合が必要な場合、モデル−to−モデル変換器220は、モデル−to−モデル変換規則を利用してソースモデルを目標モデルに変換することができる。
変換規則受信部
図5bは、モデル−to−モデル変換規則を説明する図である。
図5bにおいて、モデル−to−モデル変換規則は、ソースモデル正規化された名前(QualifiedName)510及び目標モデル正規化された名前(QualifiedName)520で構成される。ソースモデル正規化された名前(QualifiedName)510は、目標モデルに変換するためのソースモデル要素の正規化された名前(QualifiedName)であり、この項目が指すソースモデル要素の全ての下位モデル要素は、目標モデル正規化された名前(QualifiedName)520が指すモデル要素に複写される。ソースモデル正規化された名前(QualfiedName)510は異なるが、目標モデル正規化された名前(QualfiedName)520が同じソースモデル要素は、目標モデルへの複写の際、1つの目標モデル要素に統合され、逆に、ソースモデル正規化された名前(QualfiedName)510の上位要素名は同じであるが、モデル要素正規化された名前(QualifiedName)520の上位要素名が異なる場合、ソースモデル要素は分離されて複写される。目標モデル正規化された名前(QualifiedName)520は、ソースモデル正規化された名前(QualifiedName)510が指す要素が複写される目標モデル要素の正規化された名前(QualifiedName)520を表す。
図6は、図2にあるソースコードモデル変換器によるコード系列表現式リバースエンジニアリング方法を説明する図である。
図6aにおいて、ソースコードモデル変換器210は、まず、表現式の変換のために正規表現式形態の変換規則を受信することができ、変換対象となるソースコードを選択し、パースして、パースされたデータをメモリに格納することができる。その後、ソースコードモデル変換器210は、メモリに格納されたデータを呼び出して、メタモデル変換部216を介してプログラム言語から独立的なモデルにソースコードの情報を格納することができる。モデル変換部218は、受信された変換規則を受信し、メタモデル変換部216により変換されたデータを変換規則によって変換できる。変換されたデータは、UML標準に合う形態に再度変換されてファイルに記録され得る。
メタモデルを変換規則によってUMLモデルに変換するとき、UMLモデルで表現されない単純表現式系列の構文は、別の変換規則を受信して変換されることができる。変換規則に対する詳細内容は、次のとおりである。
1)共通事項:関数の内部ロジックのうち、関数呼出または結合フラグメントに変換されない論理表現式は、コード(code)、妥当性検証(validation)、例外処理(exception)、メッセージ(message)など、使用目的に適したコード(code)系列ライフラインに同期メッセージを生成し、文書欄に論理コードで表現されることができる。
2)messageメッセージ:メッセージを発生させる構文は、メッセージ(message)ライフラインにメッセージを生成できる。メッセージ(message)ライフラインにメッセージを生成するか否かは、メッセージを発生させる特定関数を正規表現式で整理し、この正規表現式に符合する関数があるか否かで判断する。
3)exceptionメッセージ:エラーを発生させる構文は、例外処理(exception)ライフラインにメッセージを生成できる。例外処理(exception)ライフラインにメッセージを生成するか否かは、エラーを発生させる特定関数を正規表現式で整理し、この正規表現式に符合する関数があるか否かで判断する。
4)validationメッセージ:必須入力値チェックなど、入力媒介変数を検証しつつ、同時にエラーを発生させる構文は、妥当性検証(validation)ライフラインにメッセージを生成できる。妥当性検証(validation)ライフラインにメッセージを生成するか否かは、入力値検証に該当する関数及び構文パターンを正規表現式で整理し、この正規表現式に符合する関数があるか否かで判断する。
5)codeメッセージ:オペレーション呼出、結合フラグメント、message/exception/validationに変換されないその他のロジック及び注釈は、コード(code)ライフラインにメッセージを生成できる。オペレーションが呼び出しを同期メッセージで表現するか、結合フラグメントを生成する前までの内部ロジックは、全てコード(code)ライフラインに表示される。ソースコードのオペレーション呼出構文、結合フラグメントに該当する元の構文も当該モデリング要素が登場する直前のコード(code)ライフラインに表示される(モデル変換整合性を検証するために元のソースコードを全て表示)。
6)変数宣言及び初期化:変数名は、英文単語名−ハングル単語名の形態で入力された辞書情報を利用してハングル化され、論理表現式に合うように形態が変更される。タイプ(Type)名に対して基本タイプは、ソースタイプとモデルタイプとをマッピングしたマッピング表によりタイプ名を変換し、基本タイプでないタイプは、タイプ名をモデルに変換されたタイプ名に変換し、配列可否によって論理表現式で定義した配列表記法により変換する。変数初期化は、構文のままで変換することを意味する。
7)関数の変換:既に定義された正規表現式規則によって当該正規表現式で構文を変換する。例)strcpy/((変数名)、(変数名)/)→${1}=${2}の左側規則に符合する場合、右側の表現式で構文を変換する。したがって、strcpy(a、b)のような構文は、a=b構文に変換される。
図6bでは、シーケンスダイヤグラムにUML表現式で表せない単純コード系列の表現式を表現する方法を示す。ソースコードモデル変換器210は、シーケンスダイヤグラムでコード系列表現式を表すために、コード(code)、妥当性検証(validation)、例外処理(exception)、メッセージ(message)など、コード系列表現式のための任意のライフライン(lifeline)を生成し、当該ライフライン(lifeline)でメッセージを、そして、当該メッセージの文書内容に表現式を保存することができる。
図7は、図2にあるコード生成器の構造とコード生成方法を示す図である。
図7aにおいて、コード生成器(Code Generator)230は、コード生成器環境設定部(Code Generator Configuration)232、モデルスキャナー(Model Scanner)234、モデル妥当性検証部(Model Validation)236、及びコード作成部(Code Maker)238を備えることができる。コード生成器230は、モデルに基づいて様々なプログラミング言語のソースコードを生成するモジュールである。コード生成器230は、モデル要素(Element)と論理表現式の各々に対してマッピングされた変換規則に基づいてプログラムソースコードを生成できる。コード生成器230は、1つのモデルで様々な言語のソースコードを生成できる。
図7bにおいて、コード生成器環境設定部(Code Generator Configuration)232は、所望のソースコードを描写するための変換規則を作成するために環境設定を行うことができる(S710)。まず、変換規則プロジェクトを1つ生成してプロジェクトに対象となるモデル要素(Element)を登録し、各要素(Element)別に変換規則を生成して登録できる。変換規則を登録するときは、変換規則の変換行為を記述し、変換規則の実行条件を指定する。全ての要素(Element)を対象として変換規則の登録が完了すれば、作成しようとするソースコードの構造が定義されたものである。
ソフトウェアモデルを作成、完了した後や作成中に、作成したモデルに対するコードを生成したいならば、所望のモデルに対して変換規則プロジェクトを選択した後、ソースコード生成機能を行えばよい。全体モデルまたは一部モデルに関係なく、ソースコード生成が可能である。
ソースコード生成機能を行えば、コード生成器(Code Generator)230でモデルスキャナー(Model Scanner)234が実行される。モデルスキャナー(Model Scanner)234は、最上位要素(Element)からトップ−ダウン(Top−Down)方式で要素(Element)を読みながら、当該要素(Element)がソースコード生成対象要素(Element)であるか確認することができる。ソースコード生成対象要素(Element)である場合、モデルスキャナー(Model Scanner)234は、モデル妥当性検証部(Model Validation)236に当該要素(Element)を伝送する(S720)。
モデル妥当性検証部(Model Validation)236は、ソースコード生成対象である要素(Element)を伝送されて当該要素(Element)が有している妥当性検証規則(Validation Rule)によって検証を行うことができる(S730)。モデル妥当性検証部(Model Validation)236は、検証完了後、エラーがある場合、モデルスキャナー(Model Scanner)234に伝達し、モデルスキャナー(Model Scanner)234は、検証結果を保存することができる。
全てのモデル要素(Element)などの検証が終わり、エラーがあれば、モデルスキャナー(Model Scanner)234は、画面に全体検証結果を出力できる(S740)。検証結果、エラーがなければ、コード作成器(Code Maker)238が変換規則によってソースコードを生成できる。(S750)。
上記では、本出願の望ましい実施形態を参照して説明したが、当該技術分野の熟練された当業者は、下記の特許請求の範囲に記載された本発明の思想及び領域から逸脱しない範囲内で本出願を様々に修正及び変更させ得ることが理解できるであろう。
本発明は、コンピュータ実行可能なモデルリバースエンジニアリング方法及び装置に関し、より詳細には、プログラムのソースコードをモデルに変換する構造及び規則を定義し、所望の形態のモデルを自動に生成してプログラムの構造を容易に分析し、再設計するコンピュータ実行可能なモデルリバースエンジニアリング方法及び装置に関するものである。

Claims (23)

  1. ソースコードを受信するステップと、
    前記ソースコードを目標モデルに変換するための変換規則を受信するステップと、
    前記ソースコードと連関されたパーサを介して前記ソースコードをパースして特定データ構造を有するパースデータをメモリに格納するステップと、
    前記格納されたパースデータをメタモデルに変換するステップと、
    前記メタモデルを前記受信した変換規則によって目標モデルに変換するステップと、
    を含むコンピュータ実行可能なモデルリバースエンジニアリング方法。
  2. 前記変換された目標モデルをUML(Unified Modeling Language)標準に合う形態に再度変換してファイルに記録するステップをさらに含むことを特徴とする請求項1に記載のコンピュータ実行可能なモデルリバースエンジニアリング方法。
  3. 前記変換規則を受信するステップは、
    ソース変換規則、モデル変換規則、命名規則、及び関係設定規則で構成される変換規則を受信するステップを含むことを特徴とする請求項1に記載のコンピュータ実行可能なモデルリバースエンジニアリング方法。
  4. 前記メタモデルを前記受信した変換規則によって目標モデルに変換するステップは、
    前記変換規則によってソースコードの特定要素または目標モデルの特定要素を指定して変換するステップを含むことを特徴とする請求項3に記載のコンピュータ実行可能なモデルリバースエンジニアリング方法。
  5. 前記パースデータをメモリに格納するステップは、
    前記ソースコードのプログラミング言語種類に応じて他のデータ構造を有するデータにパースするステップを含むことを特徴とする請求項1に記載のコンピュータ実行可能なモデルリバースエンジニアリング方法。
  6. 前記格納されたパースデータをメタモデルに変換するステップは、前記ソースコードの種類及びプログラム言語に関係なく、ソースコードの全ての要素を特定データ構造で表すメタモデルに変換するステップを含むことを特徴とする請求項1に記載のコンピュータ実行可能なモデルリバースエンジニアリング方法。
  7. 前記変換規則によって関心対象でないソースコードを変換対象から除くステップを含むことを特徴とする請求項1に記載のコンピュータ実行可能なモデルリバースエンジニアリング方法。
  8. UMLで表現され得ないソースコード情報に対する別の変換規則を受信するステップを含むことを特徴とする請求項1に記載のコンピュータ実行可能なモデルリバースエンジニアリング方法。
  9. 前記UMLが表現できないソースコード情報に対してメッセージ(message)ライフライン、例外処理(exception)ライフライン、妥当性検証(validation)ライフライン、またはコード(code)ライフラインのうち、少なくとも1つにメッセージを生成するステップをさらに含むことを特徴とする請求項8に記載のコンピュータ実行可能なモデルリバースエンジニアリング方法。
  10. 前記UMLが表現できないソースコード情報に対してメッセージ(message)ライフライン、例外処理(exception)ライフライン、妥当性検証(validation)ライフライン、またはコード(code)ライフラインのうち、少なくとも1つにメッセージを生成するステップをさらに含むことを特徴とする請求項8に記載のコンピュータ実行可能なモデルリバースエンジニアリング方法。
  11. 前記メタモデルを前記受信した変換規則によって目標モデルに変換するステップは、
    前記メタモデルを前記受信した変換規則によってソースモデルに変換するステップと、
    前記ソースモデルを前記目標モデルに変換するためのモデル−to−モデル変換規則を受信するステップと、
    前記モデル−to−モデル変換規則によって前記ソースモデルを前記目標モデルに変換するステップと、
    を含むことを特徴とする請求項1に記載のコンピュータ実行可能なモデルリバースエンジニアリング方法。
  12. 前記目標モデルを受信し、ソースコード生成のための環境設定を行うステップと、
    前記目標モデルの要素を読み込んで、当該要素がソースコード生成対象要素であるか確認するステップと、
    前記生成対象であるモデル要素を当該要素が有している妥当性検証規則によって検証を行うステップと、
    前記検証結果に応じてソースコードを生成するステップと、
    をさらに含むことを特徴とする請求項1に記載のコンピュータ実行可能なモデルリバースエンジニアリング方法。
  13. 前記ソースコード生成のための環境設定を行うステップは、
    前記目標モデルの要素及び各要素別の変換規則を登録し、
    変換規則の実行条件を指定して環境設定を行うステップを含むことを特徴とする請求項12に記載のコンピュータ実行可能なモデルリバースエンジニアリング方法。
  14. モデルリバースエンジニアリング可能なプログラムが格納されたメモリ部と、
    前記プログラムを実行するプロセッサと、
    を備え、
    前記プロセッサは、
    入力されたソースコードをパーサを介して特定データ構造を有するパースデータにパースし、
    パースされたデータをメタモデルに変換し、
    前記メタモデルを入力された変換規則によって目標モデルに変換し、
    前記変換された目標モデルを用いてソースコードを生成するモデルリバースエンジニアリング装置。
  15. 前記プロセッサは、
    ソースコードを受信し、前記ソースコードを目標モデルに変換するための変換規則を受信し、
    パースされた特定データ構造を有するパースデータをメモリに格納する請求項14に記載のモデルリバースエンジニアリング装置。
  16. 前記プロセッサは、
    前記ソースコードのプログラミング言語種類に応じて他の形態のデータ構造を有するデータにパースすることを特徴とする請求項15に記載のモデルリバースエンジニアリング装置。
  17. 前記プロセッサは、
    前記ソースコードの種類及びプログラム言語に関係なく、ソースコードの全ての要素を特定データ構造で表すメタモデルに変換することを特徴とする請求項15に記載のモデルリバースエンジニアリング装置。
  18. 前記プロセッサは、
    UMLが表現できないソースコード情報に対する別の変換規則を受信することを特徴とする請求項15に記載のモデルリバースエンジニアリング装置。
  19. 前記プロセッサは、
    ソースモデルを受信し、目標モデルに変換するためのモデル−to−モデル変換規則によって前記ソースモデルを目標モデルに変換することを特徴とする請求項14に記載のモデルリバースエンジニアリング装置。
  20. 前記プロセッサは、
    ソースモデルの正規化された名前及び目標モデルの正規化された名前で構成されるモデル−to−モデル変換規則を受信することを特徴とする請求項19に記載のモデルリバースエンジニアリング装置。
  21. 前記プロセッサは、
    前記目標モデルを受信し、ソースコード生成のための環境設定を行い、
    前記目標モデルの要素を読み込んで、当該要素がソースコード生成対象要素であるか確認し、
    前記生成対象であるモデル要素を、当該要素が有している妥当性検証規則によって検証を行い、
    前記検証結果に応じてソースコードを生成することを特徴とする請求項14に記載のモデルリバースエンジニアリング装置。
  22. 前記プロセッサは、
    前記目標モデルの要素及び各要素別の変換規則を登録し、
    変換規則の実行条件を指定して環境設定を行うことを特徴とする請求項21に記載のモデルリバースエンジニアリング装置。
  23. ソースコードを受信する機能と、
    前記ソースコードを目標モデルに変換するための変換規則を受信する機能と、
    前記ソースコードと連関されたパーサを介して前記ソースコードをパースして特定データ構造を有するパースデータをメモリに格納する機能と、
    前記格納されたパースデータをメタモデルに変換する機能と、
    前記メタモデルを前記受信した変換規則によって目標モデルに変換する機能を含むことを特徴とするモデルリバースエンジニアリング方法をコンピュータで実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2017527634A 2014-11-27 2015-11-23 コンピュータ実行可能なモデルリバースエンジニアリング方法及び装置 Active JP6479184B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
KR20140167334 2014-11-27
KR10-2014-0167334 2014-11-27
KR10-2015-0163109 2015-11-20
KR1020150163109A KR101770292B1 (ko) 2014-11-27 2015-11-20 컴퓨터 수행 가능한 모델 역공학 방법 및 장치
PCT/KR2015/012587 WO2016085213A1 (ko) 2014-11-27 2015-11-23 컴퓨터 수행 가능한 모델 역공학 방법 및 장치

Publications (2)

Publication Number Publication Date
JP2017535887A true JP2017535887A (ja) 2017-11-30
JP6479184B2 JP6479184B2 (ja) 2019-03-06

Family

ID=56193028

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017527634A Active JP6479184B2 (ja) 2014-11-27 2015-11-23 コンピュータ実行可能なモデルリバースエンジニアリング方法及び装置

Country Status (4)

Country Link
JP (1) JP6479184B2 (ja)
KR (1) KR101770292B1 (ja)
CN (1) CN107148615A (ja)
SG (1) SG11201704087RA (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10929108B2 (en) 2017-02-01 2021-02-23 Siemens Industry Software Nv Methods and systems for verifying a software program
CN108399081B (zh) * 2018-02-09 2021-01-26 广州洋葱时尚集团有限公司 一种MyBatis逆向工程生成器
KR102132659B1 (ko) * 2018-06-21 2020-07-10 포항공과대학교 산학협력단 인공지능 기반 역공학을 이용한 공장 자동화용 제어기의 분석 방법
CN111309486B (zh) * 2018-08-10 2024-01-12 中科寒武纪科技股份有限公司 转换方法、装置、计算机设备和存储介质
CN109614091A (zh) * 2018-10-09 2019-04-12 中国平安人寿保险股份有限公司 代码自动生成方法、装置、电子设备及存储介质
CN110347394B (zh) * 2019-06-11 2023-03-10 无线生活(杭州)信息科技有限公司 软件代码解析方法及装置
CN112764763B (zh) * 2020-12-31 2024-01-26 亿企赢网络科技有限公司 一种代码转换方法、系统、设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005242479A (ja) * 2004-02-24 2005-09-08 Toshiba Corp データ変換装置及びデータ変換用プログラム
JP2006139472A (ja) * 2004-11-11 2006-06-01 Nec Corp モデル駆動開発装置
JP2009295021A (ja) * 2008-06-06 2009-12-17 Internatl Business Mach Corp <Ibm> シーケンス図作成装置、シーケンス図作成方法及びコンピュータプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038393A (en) * 1997-09-22 2000-03-14 Unisys Corp. Software development tool to accept object modeling data from a wide variety of other vendors and filter the format into a format that is able to be stored in OMG compliant UML representation
US20030083900A1 (en) * 2001-10-26 2003-05-01 Ismail Khriss Template-based method and system for reverse engineering
KR100463833B1 (ko) 2001-12-29 2004-12-29 한국전자통신연구원 컴포넌트 자동 변환 시스템 및 방법
US7409675B2 (en) 2004-02-27 2008-08-05 Microsoft Corporation Code rewriting
WO2006087728A1 (en) * 2005-02-15 2006-08-24 Codito Technologies System for creating parallel applications
JP2008225898A (ja) * 2007-03-13 2008-09-25 Toshiba Corp 変換装置、変換プログラム及び変換方法
JP2010140408A (ja) * 2008-12-15 2010-06-24 Nomura Research Institute Ltd ソースコード変換装置
US9027002B2 (en) * 2010-10-27 2015-05-05 Hitachi, Ltd. Method of converting source code and source code conversion program
JP4820924B1 (ja) * 2011-02-07 2011-11-24 株式会社エヌ・ティ・ティ・データ リバースエンジニアリング支援装置、リバースエンジニアリング支援方法及びそのプログラム
CN103092594B (zh) * 2011-11-07 2016-01-20 金蝶软件(中国)有限公司 模型转换方法及装置
JP5929297B2 (ja) * 2012-02-21 2016-06-01 富士電機株式会社 モデル図作成装置、モデル図作成方法、およびモデル図作成プログラム
US9311081B2 (en) * 2012-10-19 2016-04-12 International Business Machines Corporation Generating and employing operational abstractions of transforms
CN103164230B (zh) * 2013-04-15 2017-04-19 西安电子科技大学 一种基于新特征模型的需求建模及模型转换方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005242479A (ja) * 2004-02-24 2005-09-08 Toshiba Corp データ変換装置及びデータ変換用プログラム
JP2006139472A (ja) * 2004-11-11 2006-06-01 Nec Corp モデル駆動開発装置
JP2009295021A (ja) * 2008-06-06 2009-12-17 Internatl Business Mach Corp <Ibm> シーケンス図作成装置、シーケンス図作成方法及びコンピュータプログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
今関雄人,外2名: "ソフトウェアの動的モデルに着目したラウンドトリップエンジニアリングの支援", 情報処理学会論文誌 論文誌ジャーナル, vol. 第49巻,第7号, JPN6018017422, 15 July 2008 (2008-07-15), JP, pages 2328 - 2337, ISSN: 0003796200 *
市井誠,外2名: "メタモデルを用いたソースコードからのモデル自動抽出手法の提案", 情報処理学会研究報告 研究報告 ソフトウェア工学(SE), JPN6018017420, 15 December 2011 (2011-12-15), JP, pages 1 - 8, ISSN: 0003796198 *
高安厚思: "システム基盤との整合性を取るためSEの設計作業を支援する", ITアーキテクトのためのシステム設計実践ガイド, vol. 第2巻, JPN6018017421, 1 August 2010 (2010-08-01), JP, pages 156 - 160, ISSN: 0003796199 *

Also Published As

Publication number Publication date
SG11201704087RA (en) 2017-06-29
KR20160063990A (ko) 2016-06-07
JP6479184B2 (ja) 2019-03-06
CN107148615A (zh) 2017-09-08
KR101770292B1 (ko) 2017-08-22

Similar Documents

Publication Publication Date Title
JP6479184B2 (ja) コンピュータ実行可能なモデルリバースエンジニアリング方法及び装置
JP5197688B2 (ja) 統合環境生成器
EP3433732B1 (en) Converting visual diagrams into code
CN107273117B (zh) 一种编程友好型的敏捷代码自动生成系统
CN107291450B (zh) 一种编程友好型的敏捷代码自动生成方法
US10042637B1 (en) Computerized software development environment including customized presentation of source code
JP5350428B2 (ja) 自動プログラム生成装置、方法及びコンピュータプログラム
CN106547681B (zh) 数据自动加载并复用模拟服务测试的方法和装置
US8756407B2 (en) Configuration rule prototyping tool
US20040158820A1 (en) System for generating an application framework and components
CN101996131A (zh) 基于xml封装关键字的gui自动测试方法及自动测试平台
CN106951305B (zh) 一种基于模型转换由QVT-R语言生成midCore脚本的方法
WO2017033441A1 (ja) システム構築支援システム、方法および記憶媒体
JP2007122135A (ja) 開発支援装置、開発支援方法、および、開発支援プログラム
CN104572238A (zh) 一种高效的生成可执行软件包的方法及系统
CN109460231A (zh) 基于xml的上位机软件实现方法
US9652478B2 (en) Method and apparatus for generating an electronic document schema from a relational model
Schippers et al. Leveraging UML profiles to generate plugins from visual model transformations
Irwin et al. Object oriented metrics: Precision tools and configurable visualisations
CN111311461B (zh) 基于b-s的结构化动态病历表单的编辑器及生成方法
US10606569B2 (en) Declarative configuration elements
JP2008225898A (ja) 変換装置、変換プログラム及び変換方法
US20230072988A1 (en) System and a method for automatic generation of smart contracts across blockchain platforms
WO2014094534A1 (zh) 一种基于文件字典拼装的文件开发工具装置以及方法
WO2016085213A1 (ko) 컴퓨터 수행 가능한 모델 역공학 방법 및 장치

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170522

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180814

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190205

R150 Certificate of patent or registration of utility model

Ref document number: 6479184

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250