WO2016085213A1 - 컴퓨터 수행 가능한 모델 역공학 방법 및 장치 - Google Patents
컴퓨터 수행 가능한 모델 역공학 방법 및 장치 Download PDFInfo
- Publication number
- WO2016085213A1 WO2016085213A1 PCT/KR2015/012587 KR2015012587W WO2016085213A1 WO 2016085213 A1 WO2016085213 A1 WO 2016085213A1 KR 2015012587 W KR2015012587 W KR 2015012587W WO 2016085213 A1 WO2016085213 A1 WO 2016085213A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- model
- source code
- conversion rule
- converting
- reverse engineering
- Prior art date
Links
Images
Definitions
- the present invention relates to a computer-implementable model reverse engineering method and apparatus, and more particularly, to define a structure and rules for converting the source code of a program into a model to automatically generate a desired type of model to easily create a program structure.
- the existing methods of analyzing the program include a method of directly reading the source code, and a method of visualizing the source code through an impact analysis tool.
- the former tends to depend on the technical competence of the analyst, while the latter incurs costs for simply mechanically visualizing the program and processing it into the desired data.
- the generated output is only a reference and cannot be reused.
- the outputs expressed through model reverse engineering can be classified into two types.
- One is a modeling language designed to be used universally, corresponding to UML (Unified Modeling Language), and the other is a dedicated expression used by impact analysis tools corresponding to ChangeMiner.
- FIG. 7A shows the components of the universal modeling language UML
- FIG. 7B shows Change Miner, an impact analysis tool.
- Korean Patent No. 10-0463833 relates to a system and a method for automatically converting a component.
- a component automatic for automatically converting a source code of a system and converting the source code into a component using the analyzed information Transformation system and method is a component automatic for automatically converting a source code of a system and converting the source code into a component using the analyzed information Transformation system and method.
- Korean Patent No. 10-0965706 relates to a computer device capable of code rewriting and a method of code rewriting, wherein the code rewriting can be executed at various stages during development, deployment, and execution of a code unit. Provides rewrite and transformation of code units through possible sets.
- An embodiment of the present invention is to provide a computer-implemented model reverse engineering method and apparatus that can easily convert the existing source code into a model of the desired form to facilitate analysis, structure identification and redesign of the program.
- An embodiment of the present invention is to provide a computer-implemented model reverse engineering method and apparatus that can identify all the contents of the source code only by the model by expressing all the information in the source code in the model without missing information.
- An embodiment of the present invention is to provide a computer-implemented model reverse engineering method and apparatus capable of abstracting and expressing all information regardless of a programming language in which source code is written by converting the source code into an abstract expression.
- An embodiment of the present invention is to provide a computer-implemented model reverse engineering method and apparatus capable of generating a program that performs the same function in various programming languages through one model.
- a computer-implementable model reverse engineering method may include receiving source code, receiving a conversion rule for converting the source code into a target model, parsing the source code through a parser associated with the source code. Storing parsing data having a specific data structure in a memory, converting the stored parsing data into a metamodel, and converting the metamodel into a target model according to the received conversion rule.
- the computer-implemented model reverse engineering method may further include converting the converted target model into a form conforming to the Unified Modeling Language (UML) standard and recording the file in a file.
- UML Unified Modeling Language
- receiving the conversion rule may include receiving a conversion rule consisting of a source conversion rule, a model conversion rule, a naming rule, and a relationship setting rule.
- converting the metamodel into a target model according to the received conversion rule may include converting by specifying a specific element of the source code or a specific element of the target model according to the conversion rule.
- storing the parsing data in a memory may include parsing the data into data having a different data structure according to a programming language type of the source code.
- converting the stored parsing data into a metamodel may include converting all elements of the source code into a metamodel representing a specific data structure regardless of the type of the source code and the programming language. have.
- the computer-implemented model reverse engineering method may include excluding source code not of interest according to the conversion rule from the conversion target.
- the computer-implemented model reverse engineering method may include receiving a separate conversion rule for source code information that cannot be expressed in UML.
- a computer-implemented model reverse engineering method includes a message lifeline, an exception lifeline, a validation lifeline, or a code for source code information that the UML cannot express. code) may further comprise generating a message in at least one of the lifelines.
- the computer-implemented model reverse engineering method may further include verifying that all information of the source code is included in the target model.
- the converting of the metamodel into a target model according to the received conversion rule may include converting the metamodel into a source model according to the received conversion rule, and converting the source model into the target model.
- the method may include receiving a model-to-model conversion rule to convert the source model into the target model according to the model-to-model conversion rule.
- the computer-implemented model reverse engineering method may include receiving the target model and performing configuration for generating source code, and reading elements of the target model to determine whether the corresponding elements are source code generation target elements.
- the method may further include performing verification of the model elements to be generated according to validity verification rules of the corresponding elements, and generating source code according to the verification result.
- the step of performing a configuration for generating the source code is
- Registering the elements of the target model and the conversion rule for each element may specify the execution conditions of the conversion rule to perform the environment setting.
- the model reverse engineering apparatus includes a memory unit for storing a model reverse engineering program and a processor for executing the program, wherein the processor parses the input source code into parsing data having a specific data structure through a parser.
- the parsed data is converted into a metamodel, the metamodel is converted into a target model according to the input conversion rule, and source code is generated using the converted target model.
- the processor may receive a source code, a conversion rule for converting the source code into a target model, and store parsing data having a parsed specific data structure in a memory.
- the processor may parse data having a different data structure according to a type of programming language of the source code.
- the processor may convert a metamodel representing all elements of the source code into a specific data structure regardless of the type of the source code and the programming language. In another embodiment, the processor may receive a separate conversion rule for source code information that the UML cannot express.
- the processor may convert the source model into a target model according to a model-to-model conversion rule for receiving a source model and converting the source model into a target model.
- the processor may receive a model-to-model conversion rule composed of the fully qualified name of the source model and the fully qualified name of the target model.
- the processor receives the target model and configures the environment for generating the source code, reads the elements of the target model to determine whether the corresponding elements are the source code generation elements, and generates the model elements that are the generation targets. Verification may be performed according to validity verification rules of the corresponding elements, and source code may be generated according to the verification result.
- the processor may register the elements of the target model and the conversion rule for each element, and specify an execution condition of the conversion rule to perform environment setting.
- a computer-readable recording medium recording a program for executing a model reverse engineering method on a computer may include a function of receiving a source code, a function of receiving a conversion rule for converting the source code into a target model, and the source. Parsing the source code through a parser associated with a code to store parsing data having a specific data structure in a memory, converting the stored parsing data into a metamodel, and converting the metamodel according to the received conversion rule. Includes the ability to convert to a model.
- the disclosed technique can have the following effects. However, since a specific embodiment does not mean to include all of the following effects or only the following effects, it should not be understood that the scope of the disclosed technology is limited by this.
- the computer-implementable model reverse engineering method and apparatus can convert an existing source code into a model of a desired form to facilitate analysis, structure identification, and redesign of a program.
- the computer-implementable reverse engineering method and apparatus for a computer-implemented model can identify all contents of the source code using only the model by expressing all the information in the source code in the model.
- the computer-implementable model reverse engineering method and apparatus may abstract and express all information regardless of a programming language in which the source code is generated by converting the source code into an abstract expression.
- the computer-implementable model reverse engineering method and apparatus may generate a program that performs the same function in various programming languages through one model.
- FIG. 1 is a block diagram illustrating a configuration of a model reverse engineering device.
- FIG. 2 is a block diagram illustrating the configuration of the model reverse engineering program executor shown in FIG. 1.
- FIG. 3 is a view for explaining the configuration and operation of the source code model converter in FIG.
- FIG. 4 is a view for explaining a conversion rule received by the conversion rule receiver of FIG. 3.
- FIG. 5 is a view for explaining the configuration and operation of the model-to-model converter in FIG.
- FIG. 6 is a diagram illustrating a method of reverse engineering a code sequence expression by the source code model converter of FIG. 2.
- FIG. 7 is a diagram illustrating a structure of a code generator and a code generation method of FIG. 2.
- FIG. 8 is a diagram illustrating Change Miner, a component of the general modeling language UML, and an impact analysis tool.
- first and second are intended to distinguish one component from another component, and the scope of rights should not be limited by these terms.
- first component may be named a second component, and similarly, the second component may also be named a first component.
- an identification code (e.g., a, b, c, etc.) is used for convenience of description, and the identification code does not describe the order of the steps, and each step clearly indicates a specific order in context. Unless stated otherwise, they may occur out of the order noted. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.
- the present invention can be embodied as computer readable code on a computer readable recording medium
- the computer readable recording medium includes all kinds of recording devices in which data can be read by a computer system.
- Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, and the like, and are also implemented in the form of a carrier wave (for example, transmission over the Internet). It also includes.
- the computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
- FIG. 1 is a block diagram illustrating a configuration of a model reverse engineering device.
- the model reverse engineering apparatus 10 may include a processor 110, a nonvolatile memory 120, a volatile memory 130, a network interface 140, and an input device 150. ) And an output device 160.
- the processor 110 may include a model reverse engineering program executor 112 and a memory manager 114.
- the model reverse engineering program executor 112 executes a model reverse engineering program to execute a model generation and conversion procedure through source code reverse engineering.
- Memory manager 214 manages memory regions in nonvolatile memory 120 and volatile memory 130 that are read or written by model reverse engineering program executor 112.
- the nonvolatile memory 120 may be implemented as a solid state disk (SSD) or a hard disk drive (HDD) and used to store data necessary for executing a model reverse engineering program and a model reverse engineering program.
- Volatile memory 130 is used to temporarily store model reverse engineering programs stored in non-volatile memory 120.
- the network interface 140 includes an environment for connecting the model reverse engineering apparatus 10 to an external server through a network, and may include an adapter for local area network (LAN) communication, for example.
- LAN local area network
- the input device 150 includes an environment for receiving user input, and may include, for example, a mouse, a trackball, a touch pad, a graphic tablet, a scanner, a touch screen, a keyboard, or a pointing device.
- the output device 160 includes an environment for outputting specific information (eg, metamodel, target model, source code, etc.) to the user, and may include, for example, a monitor or a touch screen. In one example, input device 150 and output device 160 may be connected via a remote connection.
- FIG. 2 is a block diagram illustrating the configuration of the model reverse engineering program executor shown in FIG. 1.
- the model reverse engineering program executor 112 includes a source code model converter 210, a model-to-model converter 220, and a code generator 230.
- the model reverse engineering program executor 112 is a device capable of generating and converting a model through source code reverse engineering.
- the model reverse engineering program executor 112 can generate and convert a model of a desired type by receiving a source code or a source model, and a conversion rule. You can specify a variety of validation rules in a flexible way of writing and applying.
- the model reverse engineering program executor 112 stores all the information of the source code in the model, thereby enabling conversion to a new programming language.
- the source code model converter 210, the model-to-model converter 220, and the code generator 230 are described in detail below with reference to FIGS. 3 to 7.
- FIG. 3 is a view for explaining the configuration and operation of the source code model converter in FIG.
- the source code model converter 210 includes a conversion rule receiver 212, a parser 214, a metamodel converter 216, and a model converter 218. do.
- the conversion rule receiver 212 receives the conversion rule
- the parser 214 parses the source code and stores the data in the memory
- the metamodel converter 216 retrieves the data stored in the memory.
- Source code information can be stored in a metamodel independent of the programming language.
- the model converter 218 may receive a conversion rule, convert the metamodel into a target model, and calculate a model conforming to the UML standard.
- Source code is the source code to be converted into UML model, and can be one of sources made in various programming languages such as Java, C, and COBOL.
- the conversion rule receiver 212 may receive a conversion rule for converting the input source code into a target model.
- the conversion rule receiving unit 212 may identify a corresponding rule when a naming rule exists in the source code, and may receive a conversion rule including information on the structure of the conversion target model.
- the conversion rule receiving unit 212 may receive a conversion rule including information on input source code, information on a target model to be converted, information on a naming rule, and information on a relationship setting. The conversion rule will be described in detail later with reference to FIG. 4.
- the parser 214 may parse source code and store parsing data having a specific data structure in a memory. In other words, parsing the source code to load data with a tree-like data structure into memory.
- the parser 214 may vary in form depending on which programming language the source code is. Parsing is a process in which a compiler or translator translates source code into machine language on a computer, and analyzes the grammatical structure or syntax of each sentence. In other words, it takes a sequence of tokens from a native program and organizes them into parse trees according to the grammar of the language. Accordingly, the parser 214 may vary in form depending on the type of source code, and may be parsed into data having a different data structure according to the type of programming language of the source code.
- the metamodel converter 216 may convert the stored parsing data into a metamodel.
- the metamodel converting unit 216 may convert the data generated by various types of source codes into a single metamodel data structure.
- the metamodel converting unit 216 may enable the model reverse engineering apparatus 10 to generate a UML model of the same quality and shape only by replacing the parser 214 regardless of a programming language. Accordingly, the metamodel converting unit 216 may convert a metamodel representing all elements of the source code into a specific data structure regardless of the type of the source code and the programming language.
- the model converter 218 may convert the metamodel converted by the metamodel converter 216 into a target model according to the conversion rule received by the conversion rule receiver 212.
- the model converter 218 may convert the converted target model back into a form conforming to the UML standard and record the converted target model in a file.
- the model converter 218 may receive a separate conversion rule for a syntax of a simple expression sequence not expressed as a UML model and convert the UML model.
- the model converted by the model converter 218 is stored in a UML model format, which can be confirmed by UML editing software such as IBM Rational Software Architect.
- the model converter 218 may exclude source codes that are not of interest according to the conversion rule from the conversion target, and specify and convert specific elements of the source code or specific elements of the target model according to the conversion rule.
- a specific element of the source code is a conversion target item to be converted into a target model among the source code elements and may correspond to a package, a class, an attribute, an operation, and the like of the source code.
- Specific elements of the target model are the conversion result items of the converted target model.
- the source code not of interest is an element not designated as a specific element of the source code, and may be selected by the user. For example, if a user selects information that is not called or commented out as source code of interest, the information associated with it may be discarded.
- the model converter 218 may verify whether all information of the source code is included in the target model.
- FIG. 4 is a view for explaining a conversion rule received by the conversion rule receiver of FIG. 3.
- the conversion rule includes information on input source code (source conversion rule) 111, information on target model to be converted (model conversion rule) 112, and information on naming rules of model elements to be converted (name name). Rule) 113 and relationship setting information (relation setting rule) 114 between the model elements to be converted.
- the source conversion rule 410 may designate a source to be converted into a model using a regular expression.
- the source may include a QualifiedName, an attribute, a function, and a regular expression representing the source type.
- QualifiedName is a regular expression that specifies the source of reverse engineering. Of the class names including packages or folders, only the source code that matches the regular expression defined in this item is converted to the model. If there is a naming convention in the package or class name, the model converting unit 218 may classify the source and convert the source into a model using this item, and exclude source code that is not of interest from the reverse engineering target. Attributes are regular expressions that represent attributes within a class or file.
- the model converting unit 218 may convert all or specific attributes among the attributes belonging to the class or file matching the qualified name to the model using this item.
- a function is a regular expression that represents a function within a class or file.
- the model converting unit 218 may convert all or specific functions among the functions belonging to the class or the file matching the qualified name to the model using this item. If the source type is c or another language other than java, and the file name is uniquely distinguished by the file extension, the model converting unit 218 puts a value corresponding to the extension in this item and converts only a specific type of source into the model. can do.
- the model conversion rule 420 may represent the configuration information for the target model.
- the ID is a uniquely distinguishable value of elements to be converted into a model, and can be arbitrarily assigned by the user.
- Model element is an item that specifies which element of the model to convert.
- Package, Interface, Class, Attribute, Operation, Collaboration, Sequence Diagram A class diagram, a code lifeline, a message lifeline, a validation lifeline, and an exception lifeline may be specified.
- a source element is an item that specifies which element of the source is converted into a model, and a package, a class, an attribute, an operation, and the like can be designated. If no source element is specified, elements that do not exist in the source but must exist in the target model may be inserted.
- Stereotype is a stereotype to be assigned to the converted model element.
- the parent element ID designates the parent element ID to which the element belongs.
- the naming convention 430 may indicate information about a naming convention for naming the model element to be converted.
- the source prefix is the prefix of the source you want to remove when converting to the model.
- the model prefix is the prefix that you want to put in the model element name when converting to the model.
- the source suffix is the suffix of the source you want to remove when converting to a model.
- the model suffix is the suffix that you want to put in the model element name when converting to the model.
- the naming convention is the naming convention to apply when converting the source name corresponding to the model element to the model name. You can specify items such as none, Korean, custom, etc.None writes the source name as the model name, and Korean uses the Korean-English dictionary input in advance. It converts the English name of the source into Korean name and uses it as the model name. Custom does not allow simple English-Hangul conversion.
- the naming class represents the Java class information to be used to specify the model name when the item is specified as custom in
- the relationship setting conversion rule 440 does not exist in the source code, but may set the relationship when the relationship between the converted model elements is required.
- Types represent relationship types, such as associations, generalizations, implementations, and dependencies.
- the relationship element ID indicates a model element ID for establishing a relationship.
- FIG. 5 is a view for explaining the configuration and operation of the model-to-model converter in FIG.
- the model-to-model converter 220 includes a model-to-model conversion rule receiver 222 and a model-to-model converter 224.
- the source code model converter 210 may convert the input source code into a UML format source model according to the received conversion rule.
- the model-to-model converter 220 may receive the model-to-model conversion rule and convert the source model into the final target model according to the received model-to-model conversion rule.
- the model-to-model conversion rule is described in detail in FIG. 5B.
- the model-to-model converter 220 may move and reconfigure locations of packages and classes of the source model according to the model-to-model conversion rule. That is, the model-to-model converter 220 may separate the package when there are many classes of the source model package, and may separate the class when there are many operations of the class. Similarly, the model-to-model converter 220 may integrate the package when there are few classes in the source model package, and may integrate the class when there are few operations of the class. In other words, when integration of the package or class of the source model converted from the metamodel is required according to the conversion rule, the model-to-model converter 220 uses the model-to-model conversion rule as the target model. I can convert it.
- 5B is a diagram for explaining a model-to-model conversion rule.
- the model-to-model conversion rule includes a source model qualified name 510 and a target model qualified name 520.
- the source model qualified name (QualifiedName) 510 is the qualified name of the source model element to convert to the target model.All sub-model elements of the source model element pointed to by this item are the target model qualified name.
- 520 is copied to the element to which the model points. Source model elements with different source model qualified names (510) but with the same target model qualified name (520) are merged into one target model element when copied to the target model, and vice versa. If the upper element name of the (QualfiedName) 510 is the same but the upper element name of the Qualified Name (QualifiedName) 520 is different, the source model element is separated and copied.
- the target model qualified name 520 indicates the qualified name 520 of the target model element to which the element indicated by the source model qualified name 510 is copied.
- FIG. 6 is a diagram illustrating a method of reverse engineering a code sequence expression by the source code model converter of FIG. 2.
- the source code model converter 210 may first receive a conversion rule in the form of a regular expression for converting an expression, and may select and parse a source code to be converted and store parsed data in a memory. Then, the source code model converter 210 may load data stored in the memory and store the source code information in a model independent from the program language through the metamodel converter 216. The model converter 218 may receive the received conversion rule and convert the data converted by the metamodel converter 216 according to the conversion rule. The converted data can be converted back into a format that conforms to the UML standard and written to a file.
- the syntax of the simple expression family not expressed in the UML model may be converted by receiving a separate conversion rule. Details of the conversion rules are as follows.
- a synchronization message can be generated in a family lifeline and represented as a logical code in a document field.
- message message A statement that generates a message may generate a message in a message lifeline. Whether or not to generate a message in the message lifeline is determined by arranging the specific function that generates the message into a regular expression and whether there is a function that matches the regular expression.
- exception message A statement that raises an error may generate a message in the exception lifeline. Whether or not you want to generate a message in the exception lifeline can be determined by sorting the specific function that causes the error into a regular expression, and whether there is a function that matches the regular expression.
- validation message A statement that generates errors while validating input parameters, such as checking required input values, can generate a message in the validation lifeline. Validation Whether or not to generate a message in the lifeline, the function and syntax pattern corresponding to the input validation are summarized into a regular expression, and it is determined whether there is a function that matches the regular expression.
- code messages operation calls, join fragments, and other logic and comments that do not translate into message / exception / validation can generate messages in the code lifeline. All internal logic until the operation expresses the call as a synchronous message or generates a combined fragment is displayed in the code lifeline.
- the operation call syntax of the source code, and the original syntax corresponding to the combined fragment, are also displayed in the code lifeline immediately before the modeling element appears (all the original source code is shown to verify model transformation consistency).
- variable name is Koreanized using the dictionary information entered in the form of English word name-Korean word name and changed to match the logical expression.
- the base type converts the type name according to the mapping table that maps the source type to the model type, and the type that is not the base type converts the type name to the type name converted to the model and depending on the array status. Convert according to the array notation defined by the logical expression. Initializing a variable means converting it literally.
- the source code model converter 210 uses arbitrary lifelines for code series expressions, such as code, validation, exceptions, and messages, to represent code sequence expressions in sequence diagrams. You can create a lifeline, draw a message to that lifeline, and store an expression in the document content of that message.
- FIG. 7 is a diagram illustrating a structure of a code generator and a code generation method of FIG. 2.
- the code generator 230 includes a code generator configuration 232, a model scanner 234, a model validation 236, and a code.
- a code maker 238 may be included.
- the code generator 230 is a module that generates source code of various programming languages based on a model.
- the code generator 230 may generate a program source code based on a conversion rule mapped to each of the model element and the logical expression.
- the code generator 230 may generate source codes of various languages with one model.
- the code generator configuration unit 232 may perform environment setting to create a conversion rule for describing a desired source code (S710). First, you can create one conversion rule project, register model elements that are targets of the project, and create and register conversion rules for each element. When registering a conversion rule, describe the conversion behavior of the conversion rule and specify the conditions for executing the conversion rule. When the conversion rule is registered for all elements, the structure of the source code to be created is defined.
- Source code can be generated regardless of the whole model or some models.
- a model scanner 234 is executed in the code generator 230.
- the model scanner 234 reads the elements from the top element to the top-down method and checks whether the corresponding element is an element to be generated. have. In the case of the source code generation target element, the model scanner 234 transmits the corresponding element to the model validation unit 236 (S720).
- the model validation unit 236 may receive an element that is a source code generation target and perform verification according to a validation rule that the corresponding element has (S730).
- the model validity verification unit 236 may transmit a verification result to the model scanner 234 when there is an error after the verification is completed, and the model scanner 234 may store the verification result.
- the model scanner 234 may output the entire verification result on the screen (S740). If there is no error as a result of the verification, the code maker 238 may generate the source code according to the conversion rule (S750).
- the present invention relates to a computer-implementable model reverse engineering method and apparatus, and more particularly, to define a structure and rules for converting the source code of a program into a model to automatically generate a desired type of model to easily create a program structure.
Landscapes
- Stored Programmes (AREA)
Abstract
Description
Claims (23)
- 소스코드를 입력 받는 단계;상기 소스코드를 목표모델로 변환하기 위한 변환규칙을 입력 받는 단계;상기 소스코드와 연관된 파서를 통해 상기 소스코드를 파싱하여 특정 자료구조를 갖는 파싱 데이터를 메모리에 저장하는 단계;상기 저장된 파싱 데이터를 메타모델로 변환하는 단계; 및상기 메타모델을 상기 입력 받은 변환규칙에 따라 목표모델로 변환하는 단계를 포함하는 컴퓨터 수행 가능한 모델 역공학 방법.
- 제1항에 있어서,상기 변환된 목표모델을 UML(Unified Modeling Language) 표준에 맞는 형태로 다시 변환하여 파일에 기록하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 모델 역공학 방법.
- 제1항에 있어서, 상기 변환규칙을 입력받는 단계는소스변환규칙, 모델변환규칙, 명명규칙 및 관계설정규칙으로 구성되는 변환규칙을 입력받는 단계를 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 모델 역공학 방법.
- 제3항에 있어서, 상기 메타모델을 상기 입력 받은 변환규칙에 따라 목표모델로 변환하는 단계는상기 변환규칙에 따라 소스코드의 특정 요소 또는 목표모델의 특정 요소를 지정하여 변환하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 모델 역공학 방법.
- 제1항에 있어서, 상기 파싱 데이터를 메모리에 저장하는 단계는상기 소스코드의 프로그래밍 언어 종류에 따라 다른 자료구조를 갖는 데이터로 파싱하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 모델 역공학 방법.
- 제1항에 있어서, 상기 저장된 파싱 데이터를 메타모델로 변환하는 단계는상기 소스코드의 종류 및 프로그램언어에 관계없이 소스코드의 모든 요소들을 특정 자료구조로 나타내 주는 메타모델로 변환하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 모델 역공학 방법.
- 제1항에 있어서,상기 변환규칙에 따라 관심 대상이 아닌 소스코드를 변환 대상에서 제외하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 모델 역공학 방법.
- 제1항에 있어서, UML로 표현될 수 없는 소스코드 정보에 대한 별도의 변환규칙을 입력 받는 단계를 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 모델 역공학 방법.
- 제8항에 있어서, 상기 UML이 표현할 수 없는 소스코드 정보에 대하여 메시지(message) 라이프라인, 예외처리(exception) 라이프 라인, 타당성검증(validation) 라이프라인 또는 코드(code) 라이프라인 중 적어도 하나에 메시지를 생성하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 모델 역공학 방법.
- 제8항에 있어서, 상기 UML이 표현할 수 없는 소스코드 정보에 대하여 메시지(message) 라이프라인, 예외처리(exception) 라이프 라인, 타당성검증(validation) 라이프라인 또는 코드(code) 라이프라인 중 적어도 하나에 메시지를 생성하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 모델 역공학 방법.
- 제1항에 있어서, 상기 메타모델을 상기 입력 받은 변환규칙에 따라 목표모델로 변환하는 단계는상기 메타모델을 상기 입력 받은 변환규칙에 따라 소스모델로 변환하는 단계;상기 소스모델을 목표모델로 변환하기 위한 모델-to-모델 변환규칙을 입력 받는 단계; 및상기 모델-to-모델 변환규칙에 따라 상기 소스모델을 상기 목표모델로 변환하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 모델 역공학 방법.
- 제1항에 있어서,상기 목표모델을 입력 받고 소스코드 생성을 위한 환경설정을 수행하는 단계;상기 목표모델의 요소들을 읽어 해당 요소들이 소스코드 생성 대상 요소들인지 확인하는 단계;상기 생성 대상인 모델 요소들을 해당 요소들이 갖고 있는 타당성 검증 규칙에 따라 검증을 수행하는 단계; 및상기 검증 결과에 따라 소스코드를 생성하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 모델 역공학 방법.
- 제12항에 있어서, 상기 소스코드 생성을 위한 환경설정을 수행하는 단계는상기 목표모델의 요소들 및 각 요소들 별 변환규칙을 등록하고, 변환규칙의 실행조건을 지정하여 환경설정을 수행하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 모델 역공학 방법.
- 모델 역공학 가능한 프로그램이 저장된 메모리부; 및상기 프로그램을 실행하는 프로세서를 포함하되상기 프로세서는입력된 소스코드를 파서를 통해 특정 자료구조를 갖는 파싱 데이터로 파싱하고,파싱된 데이터를 메타모델로 변환하고,상기 메타모델을 입력된 변환규칙에 따라 목표모델로 변환하며,,상기 변환된 목표모델을 이용하여 소스코드를 생성하는 모델 역공학 장치.
- 제14항에 있어서, 상기 프로세서는소스코드를 입력 받고 상기 소스코드를 목표모델로 변환하기 위한 변환규칙을 입력받고,파싱된 특정 자료구조를 갖는 파싱 데이터를 메모리에 저장하는 모델 역공학 장치.
- 제15항에 있어서, 상기 프로세서는상기 소스코드의 프로그래밍 언어 종류에 따라 다른 형태의 자료구조를 갖는 데이터로 파싱하는 것을 특징으로 하는 모델 역공학 장치.
- 제15항에 있어서, 상기 프로세서는상기 소스코드의 종류 및 프로그램언어에 관계없이 소스코드의 모든 요소들을 특정 자료구조로 나타내 주는 메타모델로 변환하는 것을 특징으로 하는 모델 역공학 장치.
- 제15항에 있어서, 상기 프로세서는UML이 표현할 수 없는 소스코드 정보에 대한 별도의 변환규칙을 입력 받는 것을 특징으로 하는 모델 역공학 장치.
- 제14항에 있어서, 상기 프로세서는소스모델을 입력 받아 목표모델로 변환하기 위한 모델-to-모델 변환규칙에 따라 상기 소스모델을 목표모델로 변환하는 것을 특징으로 하는 모델 역공학 장치.
- 제19항에 있어서, 상기 프로세서는소스모델의 정규화된 이름 및 목표모델의 정규화된 이름으로 구성되는 모델-to-모델변환규칙을 입력받는 것을 특징으로 하는 모델 역공학 장치.
- 제14항에 있어서, 상기 프로세서는상기 목표모델을 입력 받고 소스코드 생성을 위한 환경설정을 수행하고,상기 목표모델의 요소들을 읽어 해당 요소들이 소스코드 생성 대상 요소들인지 확인하며,상기 생성 대상인 모델 요소들을 해당 요소들이 갖고 있는 타당성 검증 규칙에 따라 검증을 수행하고,상기 검증 결과에 따라 소스코드를 생성하는 것을 특징으로 하는 모델 역공학 장치.
- 제21항에 있어서, 상기 프로세서는상기 목표모델의 요소들 및 각 요소들 별 변환규칙을 등록하고, 변환규칙의 실행조건을 지정하여 환경설정을 수행하는 것을 특징으로 하는 모델 역공학 장치.
- 소스코드를 입력 받는 기능;상기 소스코드를 목표모델로 변환하기 위한 변환규칙을 입력 받는 기능;상기 소스코드와 연관된 파서를 통해 상기 소스코드를 파싱하여 특정 자료구조를 갖는 파싱 데이터를 메모리에 저장하는 기능;상기 저장된 파싱 데이터를 메타모델로 변환하는 기능; 및상기 메타모델을 상기 입력받은 변환규칙에 따라 목표모델로 변환하는 기능을 포함하는 것을 특징으로 하는 모델 역공학 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG11201704087RA SG11201704087RA (en) | 2014-11-27 | 2015-11-23 | Computer-executable model reverse engineering method and apparatus |
CN201580059251.XA CN107148615A (zh) | 2014-11-27 | 2015-11-23 | 计算机可执行的模型逆向工程方法及装置 |
JP2017527634A JP6479184B2 (ja) | 2014-11-27 | 2015-11-23 | コンピュータ実行可能なモデルリバースエンジニアリング方法及び装置 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20140167334 | 2014-11-27 | ||
KR10-2014-0167334 | 2014-11-27 | ||
KR1020150163109A KR101770292B1 (ko) | 2014-11-27 | 2015-11-20 | 컴퓨터 수행 가능한 모델 역공학 방법 및 장치 |
KR10-2015-0163109 | 2015-11-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016085213A1 true WO2016085213A1 (ko) | 2016-06-02 |
Family
ID=56074678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2015/012587 WO2016085213A1 (ko) | 2014-11-27 | 2015-11-23 | 컴퓨터 수행 가능한 모델 역공학 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2016085213A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614091A (zh) * | 2018-10-09 | 2019-04-12 | 中国平安人寿保险股份有限公司 | 代码自动生成方法、装置、电子设备及存储介质 |
CN113515278A (zh) * | 2021-06-16 | 2021-10-19 | 深圳奥哲网络科技有限公司 | 低代码模型处理方法、系统、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030083900A1 (en) * | 2001-10-26 | 2003-05-01 | Ismail Khriss | Template-based method and system for reverse engineering |
JP2008225898A (ja) * | 2007-03-13 | 2008-09-25 | Toshiba Corp | 変換装置、変換プログラム及び変換方法 |
JP2012164148A (ja) * | 2011-02-07 | 2012-08-30 | Ntt Data Corp | リバースエンジニアリング支援装置、リバースエンジニアリング支援方法及びそのプログラム |
JP2013171458A (ja) * | 2012-02-21 | 2013-09-02 | Fuji Electric Co Ltd | モデル図作成装置、モデル図作成方法、モデル図作成プログラムおよびモデル図作成用の状態イベント表のデータ構造 |
-
2015
- 2015-11-23 WO PCT/KR2015/012587 patent/WO2016085213A1/ko active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030083900A1 (en) * | 2001-10-26 | 2003-05-01 | Ismail Khriss | Template-based method and system for reverse engineering |
JP2008225898A (ja) * | 2007-03-13 | 2008-09-25 | Toshiba Corp | 変換装置、変換プログラム及び変換方法 |
JP2012164148A (ja) * | 2011-02-07 | 2012-08-30 | Ntt Data Corp | リバースエンジニアリング支援装置、リバースエンジニアリング支援方法及びそのプログラム |
JP2013171458A (ja) * | 2012-02-21 | 2013-09-02 | Fuji Electric Co Ltd | モデル図作成装置、モデル図作成方法、モデル図作成プログラムおよびモデル図作成用の状態イベント表のデータ構造 |
Non-Patent Citations (1)
Title |
---|
NA, DONS JIN: "Reverse Engineering of Embedded Software based on Model-Driven Development", THESIS (MA) GRADUATE SCHOOL OF HANYANG UNIVERSITY, February 2008 (2008-02-01), pages 1 - 15 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614091A (zh) * | 2018-10-09 | 2019-04-12 | 中国平安人寿保险股份有限公司 | 代码自动生成方法、装置、电子设备及存储介质 |
CN113515278A (zh) * | 2021-06-16 | 2021-10-19 | 深圳奥哲网络科技有限公司 | 低代码模型处理方法、系统、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111736840B (zh) | 小程序应用的编译方法、运行方法、存储介质及电子设备 | |
US20200167143A1 (en) | Systems and methods for automated retrofitting of customized code objects | |
JP6479184B2 (ja) | コンピュータ実行可能なモデルリバースエンジニアリング方法及び装置 | |
US9122540B2 (en) | Transformation of computer programs and eliminating errors | |
US20040158820A1 (en) | System for generating an application framework and components | |
CN103605556A (zh) | 虚拟试验对象一体化构建系统及方法 | |
CN115952758A (zh) | 芯片验证方法、装置、电子设备及存储介质 | |
CN112395843A (zh) | 一种基于php代码的业务处理方法、装置及设备和介质 | |
WO2020215680A1 (zh) | 自动生成pojo类的方法、装置及存储介质、计算机设备 | |
JP2010140408A (ja) | ソースコード変換装置 | |
CN118245050B (zh) | 前端框架组件自动转换方法、系统、电子设备及存储介质 | |
CN113778897A (zh) | 接口的自动测试方法、装置、设备及存储介质 | |
WO2016085213A1 (ko) | 컴퓨터 수행 가능한 모델 역공학 방법 및 장치 | |
CN110737431A (zh) | 软件开发方法、开发平台、终端设备及存储介质 | |
JP2010140407A (ja) | ソースコード検査装置 | |
Irwin et al. | Object oriented metrics: Precision tools and configurable visualisations | |
WO2009116748A2 (ko) | 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및 장치 | |
US10540157B2 (en) | Systems to remove object relational mappings from a software project | |
CN106033338A (zh) | 基于fog数据的源代码导入及解析的方法和装置 | |
CN114115982A (zh) | 代码发布方法、装置、设备及存储介质 | |
CN114047923A (zh) | 错误代码定位方法、装置、存储介质以及电子设备 | |
CN113760291A (zh) | 日志输出的方法和装置 | |
JPH1173328A (ja) | コーディング規約チェックシステム | |
CN114489653A (zh) | 基于编译器的数据处理方法、装置以及可读存储介质 | |
WO2022169007A1 (ko) | 개방형 자동차 표준 소프트웨어 아키텍처 설정 도구의 사용자 인터페이스 관리 시스템 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15864031 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2017527634 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15864031 Country of ref document: EP Kind code of ref document: A1 |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 24.01.2018) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15864031 Country of ref document: EP Kind code of ref document: A1 |