KR101970717B1 - Management method for java methods based on bytecode, development system and method for java software using the same - Google Patents
Management method for java methods based on bytecode, development system and method for java software using the same Download PDFInfo
- Publication number
- KR101970717B1 KR101970717B1 KR1020170061814A KR20170061814A KR101970717B1 KR 101970717 B1 KR101970717 B1 KR 101970717B1 KR 1020170061814 A KR1020170061814 A KR 1020170061814A KR 20170061814 A KR20170061814 A KR 20170061814A KR 101970717 B1 KR101970717 B1 KR 101970717B1
- Authority
- KR
- South Korea
- Prior art keywords
- information
- line
- version
- class file
- class
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/368—Test management for test version control, e.g. updating test cases to a new software version
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명의 자바 소프트웨어 개발 관리 시스템을 개시한다. 보다 상세하게는, 본 발명은 자바환경의 테스트 품질관리 툴에서 라인 커버리지 정보를 제공하기 위한 바이트 코드 기반 자바 메서드 버전 관리 방법, 이를 이용한 자바 소프트웨어 개발 시스템 및 방법에 관한 것이다.
본 발명의 실시예에 따르면, 자바기반의 소프트웨어 개발 시스템에서, 실행라인 커버리지 관리를 위한 메서드 별 버전정보를 클래스 파일 정보만을 이용한 메서드의 버전정보 추출에 따라 라인 커버리지 정보를 버전 별로 관리함으로써, 배포된 클래스 파일이 원복 되더라도 해당 버전의 커버리지 정보도 함께 복구가 가능하게 된다.A Java software development management system of the present invention is disclosed. More particularly, the present invention relates to a byte code-based Java method version management method for providing line coverage information in a test quality management tool in a Java environment, and a Java software development system and method using the same.
According to the embodiment of the present invention, in the Java-based software development system, by managing version-specific version information for execution line coverage management by version information according to version information extraction of methods using only class file information, Even if the class file is destroyed, the coverage information of the corresponding version can also be restored.
Description
본 발명의 자바 소프트웨어 개발 관리 시스템에 관한 것으로, 자바환경의 테스트 품질관리 툴에서 라인 커버리지 정보를 제공하기 위한 바이트 코드 기반 자바 메서드 버전 관리 방법, 이를 이용한 자바 소프트웨어 개발 시스템 및 방법에 관한 것이다.The present invention relates to a Java software development management system, and more particularly, to a bytecode-based Java method version management method for providing line coverage information in a test quality management tool in a Java environment, and a Java software development system and method using the same.
일반적으로, 상용화된 소프트웨어의 테스트 품질관리 툴에서 제공하는 실행라인 커버리지(run line coverage) 정보 또는 코드 커버리지(code coverage) 정보는 소스코드의 라인 또는 코드가 실제 런타임 테스트 환경(runtime test environment)에서 얼마나 실행되었는지에 대한 비율 정보로 테스트에 대한 품질을 정량적으로 표현하여 제공할 수 있는 중요 정보 중에 하나이다.Generally, run line coverage information or code coverage information provided by a test quality management tool of commercialized software is used to determine how much the line or code of the source code is actually in the runtime test environment It is one of the important information that can quantitatively express the quality of the test with the ratio information of whether it is executed or not.
그러나, 라인 커버리지 정보를 사용자에게 제공하기 위해서는 런타임 테스트 환경에서 실제 실행된 라인에 대한 기록처리가 필요하며, 런타임 테스트 환경에 적용되는 소스코드에 대한 라인 정보가 필수적이다. However, in order to provide the line coverage information to the user, it is necessary to record the actually executed line in the run-time test environment, and line information about the source code applied to the run-time test environment is essential.
자바 기반의 소프트웨어 환경에서는 실행 바이너리(binary)가 바이트코드(bytecode)로 구성된 클래스 파일(class file)로 관리되는데 컴파일 옵션(compile option)에 따라 라인 정보를 추가할 수 있으므로 별도의 소스코드 없이도 클래스 파일만으로 소스코드에 대한 라인 정보를 추출할 수 있다. 따라서 자바 기반의 소프트웨어는 배포되어 실행되는 클래스 파일만으로도 라인 커버리지 정보를 제공할 수 있는 처리가 가능하다. In a Java-based software environment, an executable binary is managed as a class file composed of bytecodes. Since line information can be added according to a compile option, a class file The line information of the source code can be extracted. Therefore, Java-based software can be processed to provide line coverage information only by the class file that is distributed and executed.
프로그래밍 언어 중, 자바는 1.5 버전에서부터 BCI(byte code instrumentation)기능을 제공하고 있으며, 이는 클래스 로딩 시점에 클래스 파일에 대한 정보를 사전에 변경 처리할 수 있는 기능을 가리킨다. BCI 기능을 이용하면 클래스 파일이 실행되기 전에 바이트코드 수정이 가능하므로 메서드 별 바이트 코드에 실행라인을 기록할 수 있는 API 호출 바이트코드를 직접 주입할 수 있다. 또한 메서드의 라인 정보도 함께 추출이 가능하게 된다.Among the programming languages, Java provides the BCI (byte code instrumentation) function from version 1.5, indicating the ability to change information about the class file in advance at class loading time. With the BCI feature, you can modify the bytecode before the class file is executed, so you can inject the API call bytecode directly to write the execution line to the method specific bytecode. Also, line information of the method can be extracted together.
하지만 이러한 시스템 구성을 통해 실행라인 커버리지를 산출하기 위해서는 다음과 같은 문제가 발생하게 된다.However, in order to calculate the execution line coverage through such a system configuration, the following problems arise.
첫 번째는 클래스 파일의 수정 재배포에 따른 커버리지 정보의 초기화를 위한 메서드 버전 관리문제로서, 메서드 버전을 소스파일을 기준으로 산출하면 실제 실행 로직(logic)과 관련 없는 변경에 대해서는 반응하지 않아야 한다는 문제를 가지고 있으므로 매우 복잡한 파싱(parsing) 처리가 필요하다. 만약 이러한 변경을 무시하지 않는다면 불필요한 커버리지 정보의 초기화가 빈번하게 발생하게 되며, 이는 테스트 품질관리 시스템의 신뢰성을 감소시키는 원인이 된다.The first is a method versioning problem for initializing the coverage information according to the modification and redistribution of the class file. If the version of the method is calculated based on the source file, it should not respond to changes not related to the actual execution logic It requires a very complicated parsing process. If this change is not ignored, unnecessary initialization of coverage information frequently occurs, which causes the reliability of the test quality management system to be reduced.
두 번째는 현재 실행 중인 프로세스가 로딩하여 실행 중인 클래스 파일이 파일 시스템에 존재하는 클래스 파일과 동일한 버전인지 판별하는 문제로서, 클래스 변경이 감지되고 관련 라인의 커버리지 정보가 초기화 되었다 하더라도 현재 실행 중인 프로세스가 이전 버전의 클래스 파일로 실행 및 기록되고 있다면 잘못된 실행라인 정보로 커버리지 정보가 산출될 수 있다. 이에 따라, 실행라인 정보는 항상 현재 실행중인 클래스 파일로 구해진 메서드 버전ID가 함께 기록되어야 한다는 제약이 있다.The second problem is that the currently executing process loads and executes the class file that is the same version as the class file existing in the file system. Even if the class change is detected and the coverage information of the related line is initialized, If run and recorded as a class file of the previous version, coverage information can be calculated with incorrect execution line information. Thereby, there is a restriction that the execution version information always has to be recorded together with the method version ID obtained from the currently executing class file.
본 발명은 전술한 문제점을 해결하기 위해 안출된 것으로, 본 발명은 실행라인 커버리지 관리를 위해, 필수적으로 요구되는 메서드 별 버전정보 관리를 클래스 파일 정보만을 이용하여 메서드의 버전정보를 추출함으로써, 커버리지 정보를 버전 별로 관리할 수 있도록 하는 바이트 코드 기반 자바 메서드 버전 관리 방법, 이를 이용한 자바 소프트웨어 개발 시스템 및 방법을 제공하는 데 과제가 있다.SUMMARY OF THE INVENTION The present invention has been conceived to solve the above-mentioned problems, and it is an object of the present invention to provide a method and apparatus for managing version information of each method, which is essential for execution line coverage management, by extracting version information of a method using only class file information, A version control method of a Java method based on byte code, and a Java software development system and method using the same.
전술한 과제를 해결하기 위해, 본 발명의 실시예에 따른 바이트 코드 기반 자바 메서드 버전 관리 방법을 이용한 자바 소프트웨어 개발 시스템은, 사용자에게 개발환경을 제공하는 통합개발환경(IDE)이 탑재되고, 메서드 정보를 포함하는 클래스 파일을 제공하는 개발자 단말; 상기 클래스 파일의 변경 이력에 대한 관리를 수행하는 형상관리 시스템; 업무 프로세스를 통해 변환된 클래스 파일 및 메서드 정보에 대한 메서드 별 실행라인 정보와, 클래스 분석기를 통해 상기 클래스 파일로부터 추출된 현재 메서드 버전 별 라인 정보를 이전 버전과 비교하여 변경시 정보를 갱신하는 런타임 시스템; 메서드 별 실행라인 정보, 메서드 버전 별 라인 정보 및 라인 커버리지 정보를 저장하는 DBMS; 및 통계처리 프로세스를 통해 상기 메서드 별 실행라인 정보 및 메서드 버전 별 라인 정보를 로딩하여 메서드 버전 별로 라인 커버리지 정보를 산출하고, 상기 DBMS에 저장된 정보를 갱신하는 테스트 품질관리 시스템을 포함할 수 있다.In order to solve the above problems, a Java software development system using a byte code-based Java method version management method according to an embodiment of the present invention includes an integrated development environment (IDE) for providing a development environment to a user, A developer terminal for providing a class file containing the class file; A configuration management system for managing a change history of the class file; A runtime system for updating information upon change by comparing execution line information for each class file and method information converted through a business process and line information for each current method version extracted from the class file through a class analyzer, ; A DBMS for storing execution line information for each method, line information for each method version, and line coverage information; And a test quality management system for calculating line coverage information for each method version by loading the method-specific execution line information and method version-specific line information through a statistical processing process, and updating information stored in the DBMS.
또한, 전술한 과제를 해결하기 위한 다른 양태의 실시예로서, 소프트웨어 개발 시스템을 통한 바이트코드 기반의 메서드 버전 관리 방법은, 클래스 파일을 이관하는 단계; (b) 승인 및 요청된 클래스 파일을 재 배포하는 단계; (c) 업무 프로세스를 통해 클래스 파일 및 메서드 정보를 변환하여 메서드 별 실행라인 정보를 생성하며, 클래스 분석기를 통해 상기 클래스 파일로부터 메서드 버전 별 라인 정보를 추출 및 수집하는 단계; (d) 통계처리 프로세스를 통해 상기 메서드 별 실행라인 정보 및 메서드 버전 별 라인 정보를 로딩하여 메서드 버전 별로 라인 커버리지 정보를 산출하는 단계; 및 (e) 상기 메서드 별 실행라인 정보, 메서드 버전 별 라인 정보 및 라인 커버리지 정보를 저장하는 단계를 포함할 수 있다.According to another aspect of the present invention, there is provided a method for managing version of a method based on a byte code through a software development system, the method comprising: transferring a class file; (b) redistributing the approved and requested class files; (c) converting the class file and method information through a business process to generate execution line information for each method, extracting and collecting line information for each method version from the class file through a class analyzer; (d) calculating line coverage information for each method version by loading the method-specific execution line information and method version-specific line information through a statistical processing process; And (e) storing execution line information for each method, line information for each method version, and line coverage information.
본 발명의 실시예에 따르면, 자바기반의 소프트웨어 개발 시스템에서, 실행라인 커버리지 관리를 위한 메서드 별 버전정보를 클래스 파일 정보만을 이용한 메서드의 버전정보 추출에 따라 라인 커버리지 정보를 버전 별로 관리할 수 있어 배포된 클래스 파일이 원복 되더라도 해당 버전의 커버리지 정보도 함께 복구가 가능함에 따라, 개발자로 하여금 불필요한 중복 테스트를 시행하는 것을 방지할 수 있는 효과가 있다.According to the embodiment of the present invention, in the Java-based software development system, the line coverage information can be managed for each version according to method version information extraction using only class file information, Even if the class file is destroyed, the coverage information of the version can be recovered together with the effect of preventing unnecessary duplication tests from being performed by the developer.
도 1은 본 발명의 실시예에 따른 자바 소프트웨어 개발 시스템의 전체 구조를 개략적으로 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 자바 소프트웨어 개발 시스템의 전체 구조 및 프로세스를 나타낸 도면이다.
도 3a는 본 발명의 실시예에 따른 자바 소프트웨어 시스템의 대상이 되는 클래스 파일의 구조를 나타낸 도면이다.
도 3b는 본 발명의 실시예에 따른 바이트 코드 기반 자바 메서드 버전 관리 방법을 구현하는 ID산출 프로세스의 구조를 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 자바 소프트웨어 개발 방법을 나타낸 도면이다.
도 5는 본 발명의 실시예에 따른 자바 소프트웨어 개발 시스템의 각 시스템간 수행하는 절차를 시퀀스 도로 나타낸 도면이다.1 is a diagram schematically showing the overall structure of a Java software development system according to an embodiment of the present invention.
2 is a diagram illustrating an entire structure and a process of a Java software development system according to an embodiment of the present invention.
3A is a diagram illustrating a structure of a class file that is a target of a Java software system according to an embodiment of the present invention.
FIG. 3B is a diagram illustrating a structure of an ID calculation process for implementing a byte code-based Java method version management method according to an embodiment of the present invention.
4 is a diagram illustrating a Java software development method according to an embodiment of the present invention.
FIG. 5 is a sequence diagram illustrating a procedure performed between systems of a Java software development system according to an embodiment of the present invention.
설명에 앞서, 명세서 전체에서 어떤 부분이 어떤 구성요소를 "구비" 또는 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...단말(terminal)" 및 "...시스템(system)" 등의 용어는 하나 또는 둘 이상의 기능이 조합된 동작을 처리하는 단위를 의미하며, 이는 하드웨어, 소프트웨어 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.Prior to the description, when an element is referred to as being "comprising" or "including" an element throughout the specification, it is to be understood that the element may be further comprised of other elements . Also, terms such as " terminal " and " system " in the specification mean a unit for processing an operation in which one or more functions are combined, , A combination of hardware and software.
또한, 본 명세서에서 "실시예"라는 용어는 예시, 사례 또는 도해의 역할을 하는 것을 의미하나, 발명의 대상은 그러한 예에 의해 제한되지 않는다. 또한, "포함하는", "구비하는", "갖는" 및 다른 유사한 용어가 사용되고 있으나, 청구범위에서 사용되는 경우 임의의 추가적인 또는 다른 구성요소를 배제하지 않는 개방적인 전환어(Transition word)로서 "포함하는(Comprising)"이라는 용어와 유사한 방식으로 포괄적으로 사용된다.Furthermore, the term " embodiment " is used herein to mean serving as an example, instance, or illustration, but the subject matter of the invention is not limited by such example. It is also to be understood that the terms " including, " " having, " and other similar terms are used, but that they do not exclude any additional or different components when used in the claims, Quot; is < / RTI > used in a manner similar to the term " Comprising ".
본 명세서에 설명된 다양한 기법은 하드웨어 또는 소프트웨어와 함께 구현될 수 있거나, 적합한 경우에 이들 모두의 조합과 함께 구현될 수 있다. 본 명세서에 사용된 바와 같은 "시스템" 등의 용어는 마찬가지로 컴퓨터 관련 엔티티(Entity), 즉 하드웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어 또는 실행 시의 소프트웨어와 등가로 취급할 수 있다. 또한, 본 발명에서는 단말기를 포함하는 시스템에서 실행되는 프로그램 및 하드웨어 모두가 모듈단위로 구성될 수 있고, 하나의 물리적 메모리에 기록되거나, 둘 이상의 메모리 및 기록매체 사이에 분산되어 기록될 수 있다.The various techniques described herein may be implemented with hardware or software, or may be implemented with a combination of both, where appropriate. As used herein, terms such as " system " and the like can likewise be handled as computer-related entities, i.e., hardware, a combination of hardware and software, software or software at runtime. Further, in the present invention, both programs and hardware executed in a system including a terminal can be configured in units of modules, and can be recorded in one physical memory, or distributed among two or more memories and recording media.
이하, 도면을 참조하여 본 발명의 실시예에 따른 바이트 코드 기반 자바 메서드 버전 관리 방법, 이를 이용한 자바 소프트웨어 개발 시스템 및 방법을 설명한다. Hereinafter, a byte code-based Java method version management method and a Java software development system and method using the same will be described with reference to the drawings.
도 1은 본 발명의 실시예에 따른 자바 소프트웨어 개발 시스템의 전체 구조를 개략적으로 나타낸 도면이다.1 is a diagram schematically showing the overall structure of a Java software development system according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 자바 소프트웨어 개발 시스템(10)은 개발자 단말(100), 형상관리 시스템(200), 런타임 시스템(300), 데이터 베이스 관리 시스템(DBMS; 400) 및 테스트 품질관리 시스템(500)을 포함할 수 있다.1, the Java
개발자 단말(100)은 통합개발환경(IDE; integrated development environment, 110) 툴이 설치되는 컴퓨팅 장치를 가리며, 개발자, 즉 사용자는 이를 이용하여 소정의 소스파일을 개발 및 컴파일을 수행하게 된다. The
형상관리 시스템(200)은 개발자 단말(100)에서 개발된 소스코드 및 개발과 관련된 각종문서에 대하여 상태와 변경 및 이력 등에 대하여 총체적인 관리기능을 제공하는 역할을 한다.The
런타임 시스템(300)은 형상관리 시스템에서 관리되는 소스파일 및 컴파일을 업무 프로세서를 통해 실행하는 역할을 한다.The
특히, 본 발명의 실시예에 따른 런타임 시스템(300)은 메서드 별 버전ID를 부여하고 BCI를 통해 바이트코드에 실행라인을 기록하는 API를 주입하는 역할을 한다.In particular, the
DBMS(400)은 런타임 시스템(300)에서 처리되는 업무 프로세스에 따른 메서드 별 실행라인 정보, 메서드 버전 별 라인 정보 및 라인 커버리지 정보를 저장하는 역할을 한다. The DBMS 400 stores execution line information for each method, line information for each method version, and line coverage information according to a business process processed in the
테스트 품질관리 시스템(500)은 통계처리 프로세스를 통해 DBMS(400)에 저장된 메서드 별 실행라인 정보를 이용하여 메서드의 버전 별 실행 라인 커버리지 정보를 산출하고, 그 중 가장 최신 버전의 라인 커버리지 정보를 사용자에게 제공한다. 여기서, 라인 커버리지 정보는 메서드의 버전 별로 관리됨에 따라, 형상관리 시스템(200)에 의해 클래스 파일이 원복 되더라도 해당 버전의 커버리지 정보 또한 함께 복구가 가능함에 따라 개발자로 하여금 불필요한 중복 테스트를 방지할 수 있도록 한다. The test
이하, 도면을 참조하여 본 발명의 실시예에 따른 자바 소프트웨어 개발 시스템에서 메서드 별 실행 바이트코드 구조를 상세히 설명한다.Hereinafter, a method-by-method execution byte code structure in a Java software development system according to an embodiment of the present invention will be described in detail with reference to the drawings.
도 2는 본 발명의 실시예에 따른 자바 소프트웨어 개발 시스템의 전체 구조 및 프로세스를 나타낸 도면이다.2 is a diagram illustrating an entire structure and a process of a Java software development system according to an embodiment of the present invention.
도 2를 참조하면, 본 발명의 실시예에 따른 자바 소프트웨어 개발 시스템(10)은 바이트 코드 기반 자바 메서드 버전 관리 방법을 이용한 자바 소프트웨어 개발 시스템으로서, 사용자에게 개발환경을 제공하는 통합개발환경(IDE; integrated development environment, 110)이 탑재되고, 메서드 정보(131)를 포함하는 클래스 파일(130)을 제공하는 개발자 단말(100), 클래스 파일(130)의 변경 이력에 대한 관리를 수행하는 형상관리 시스템(200), 업무 프로세스(310)를 통해 변환된 클래스 파일(311) 및 메서드 정보(312)에 대한 메서드 별 실행라인 정보(410)와, 클래스 분석기(340)를 통해 클래스 파일(130)로부터 추출된 현재 메서드 버전 별 라인 정보(420)를 이전 버전과 비교하여 변경시 정보를 갱신하는 런타임 시스템(300), 메서드 별 실행라인 정보(410), 메서드 버전 별 라인 정보(420) 및 라인 커버리지 정보(430)를 저장하는 DBMS(400) 및, 통계처리 프로세스(510)를 통해 메서드 별 실행라인 정보(410) 및 메서드 버전 별 라인 정보(420)를 로딩하여 메서드 버전 별로 라인 커버리지 정보(430)를 산출하고, DBMS(400)에 저장된 정보를 갱신하는 테스트 품질관리 시스템(500)을 포함할 수 있다. Referring to FIG. 2, a Java
상세하게는, 개발자 단말(100)은 일반적으로 IDE(110)등이 설치된 클라이언트 또는 클라우드 환경으로 제공되는 개인 개발 환경을 제공하는 컴퓨팅 장치이다. 예를 들면, IDE(110)는 SI 프로젝트에서 통상적으로 이용되는 오픈소스 기반의 프레임워크(framework)에서 제공하는 이클립스TM(eclipse)와 같은 IDE툴이 이용될 수 있다. 이러한 IDE(110)은 개발자가 작성한 소스파일(120)을 백그라운드 형태로 자동 빌드하여 클래스 파일(130)을 생성하게 된다. In detail, the
형상관리 시스템(200)은 IDE(110)와 개발 및 테스트를 실행하는 런타임 시스템(300)간에 배포되는 자원을 관리해주는 역할을 하는 시스템이다. 배포 대상 자원에 대한 이력관리, 요청 및 승인 처리에 대한 프로세스 관리 기능 등을 제공하며, 본 발명에서는 배포되는 클래스 파일(130)을 관리하게 된다. .The
런타임 시스템(300)은 WAS(web application server) 또는 자바 어플리케이션(JAVA application)형태의 서비스를 제공하기 위한 업무 프로세스(310)를 구동하는 것으로, 프로젝트의 개발대상이 되는 시스템이다. 이러한 런타임 시스템(300)은 개발, 테스트 및 운영 환경 등으로 구분되며, 자바 소프트웨어 개발 시스템(10)에서 운영 배포 이전에 테스트를 위한 시스템이 될 수 있다.The
본 발명의 실시예에 따른 런타임 시스템(300)에는 클래스 파일(130)의 바이트 코드(Byte Code)에 대하여 직접 수정을 가하여 소스파일의 수정 없이 원하는 기능을 부여하는 BCI(byte code instrumentation) 기법이 적용될 수 있다. 이에 따라, 업무 프로세스(310)는 BCI 처리를 통해 형상관리 시스템(200)에 의해 관리되는 클래스 파일(130)을 로딩하고, 그 원본 클래스 파일에 대하여 실행라인을 기록할 수 있는 변환된 클래스 파일(311) 및 변환된 메서드 정보(312)로 변환한다.The
여기서, 변환된 메서드 정보(312)의 바이트 코드는 주입된 API에 의해 DBMS(400)에 메서드 별 실행라인 정보(410)로 저장되게 된다.Here, the bytecode of the
한편, 전술한 BCI 처리과정을 통해서도 메서드 별 실행라인 정보를 수집할 수 있으나, 그 과정에 너무 많은 처리가 포함되면 업무 프로세스의 구동성능에 큰 영향을 줄 수 있으며, 별도로 분리된 프로세스인 클래식 분석기를 통해 메서드 별 실행라인 정보를 수집하도록 설정되는 것이 바람직하다.Meanwhile, although the execution line information of each method can be collected through the BCI process described above, if too much processing is included in the process, the operation performance of the business process may be greatly influenced, and a classical analyzer It is preferable to set it so as to collect the execution line information by the method.
즉, 클래스 분석기(340)는 별도의 프로세스 형태로 존재하거나, 혹은 업무 프로세스(310)에 포함되어 처리될 수 있다.That is, the
클래스 분석기(340)는 런타임 시스템(300)에 배포된 클래스의 메서드 정보에서 메서드 별 실행라인 정보를 수집하게 된다.The
DBMS(400)는 데이터 관리 미들웨어(middle ware)로서, 메서드 별 실행라인 정보(410), 메서드 버전 별 라인 정보(420), 라인 커버리지 정보(430) 등이 저장되는 저장소이다.The
테스트 품질관리 시스템(500)은 통계처리 프로세스를 통해 DBMS(400)에 저장된 메서드 별 실행라인 정보를 이용하여 메서드의 버전 별 실행 라인 커버리지 정보를 산출하는 역할을 한다. The test
이러한 테스트 품질관리 시스템(500)은 자원 상황에 따라 런타임 시스템(300) 에 함께 설치될 수 있고 별도의 시스템으로 분리 독립되어 설치 될 수 있다. WAS 형태로 사용자에게 수집 및 분석된 각종 정보를 제공하며, 본 발명의 실시예에서는 메서드 별 실행라인 정보(410)와 메서드 버전 별 라인 정보(420)를 이용하여 라인 커버리지 정보(430)를 처리해 내는 프로세스 기능을 포함한다.The test
또한, 테스트 품질관리 시스템(500)은 DBMS(400)에 저장된 라인 커버리지 정보 중, 가장 최신 버전의 라인 커버리지 정보를 사용자에게 제공할 수 있다.In addition, the test
도 3a는 본 발명의 실시 예에 따른 자바 소프트웨어 시스템의 대상이 되는 클래스 파일의 구조를 나타낸 도면이고, 도 3b는 본 발명의 실시예에 따른 바이트 코드 기반 자바 메서드 버전 관리 방법을 구현하는 ID산출 프로세스의 구조를 나타낸 도면이다. FIG. 3A is a diagram illustrating a structure of a class file that is a target of a Java software system according to an embodiment of the present invention. FIG. 3B is an ID calculation process Fig.
먼저, 도 3a를 참조하면, 본 발명의 실시예에 따른 자바 소프트웨어 개발 시스템에서 클래스 파일(130)은 그 내부에 메서드 정보(131)를 포함하고 있다. 그리고, 메서드 정보(131)의 속성(attribute) 중 하나인, 코드 속성(code attribute; 134)에는 메서드 별 실행 바이트 코드{0 ~ N-1(N은 자연수)}가 있다.Referring to FIG. 3A, in a Java software development system according to an embodiment of the present invention, a
본 발명의 실시예에 따른 자바 소프트웨어 개발 시스템에서는 전술한 실행 바이트 코드에 대하여 소정의 해쉬 함수(harsh function)를 이용하여 해쉬ID를 산출하여 메서드의 버전ID로 사용하는 것을 특징으로 한다. 이는 소스파일에서 버전정보를 구하는 방법과 대비하여 볼 때, 상당히 간단하면서도 파싱(parsing) 처리와 같은 복잡한 처리과정 없이 효율적으로 산출 가능하다는 특징이 있다.In the Java software development system according to the embodiment of the present invention, a hash ID is calculated by using a predetermined hash function on the execution bytecode, and is used as the version ID of the method. This feature is quite simple in comparison with the method of obtaining version information from a source file, but it can be efficiently produced without complicated processing such as parsing.
단, 전술한 방식으로는 최대 65,536 바이트(byte)의 데이터까지 읽을 수 있다는 한계가 있고, 코드 변화에 매우 민감하게 반응할 수 있으며, 이러한 한계를 극복하기 위해, 본 발명의 실시예에 따른 자바 소프트웨어 개발 시스템에서는 클래스 파일(130) 의 메서드 정보(131)내 코드 속성(134)값 뿐만 아니라, 바이트 코드의 인덱스 기준인 소스 라인번호 테이블 정보를 더 이용할 수 있다.However, in the above-described method, there is a limitation that data up to 65,536 bytes (byte) can be read, and it is very susceptible to code changes. In order to overcome this limitation, The development system can further use not only the value of the
도 3a 및 도 3b를 참조하면, 메서드 정보(131)는 라인번호 테이블 정보 속성(Line Number Table Attribute; 135)를 속성(Attribute)으로 보관하고 있다. 소스 라인번호 테이블(135)의 모든 라인번호를 첫 번째 라인 번호를 메서드의 시작라인 번호로 저장하고 그 시작라인 번호를 기준으로 상대 값을 구한다. 일 예로서, "10, 12, 16, 18"의 경우, 메서드 시작라인 번호는 "10"임에 따라, 라인번호 테이블의 값들은 "10"을 뺀 값인 "0, 2, 6, 8"가 되며, 이렇게 산출한 오프셋(offset) 값을 통해 해쉬ID를 산출하여 메서드의 버전ID로 사용함으로써 코드변경에 민감하지 않은 메서드 버전정보를 이용할 수 있다.3A and 3B, the
이를 위한 ID 산출 프로세스(350)로서, 메서드 정보(131)의 라인 넘버 테이블 속성(Line Number Table Attribute)를 참조하여 첫 번째 라인 번호를 메서드의 시작라인 번호로 저장하고, 그 시작라인 번호를 기준으로 상대 값인 라인 번호 테이블 값을 구하는 오프셋 산출기(357) 및, 라인 번호 테이블 값에 대응하여 변환된 메서드 정보(312)에 삽입되는 해쉬ID를 산출하는 해쉬 생성기(358)를 포함할 수 있다. 이에 따라, 메서드 정보의 버전ID는 해쉬ID로 지정되게 된다. As the
전술한 ID 산출 프로세스(350)는 런라임 시스템의 업무 프로세스 또는 클래스 분석기에 포함될 수 있다.The
이하, 도면을 참조하여 본 발명의 실시예에 따른 자바 소프트웨어 개발 방법을 설명한다.Hereinafter, a Java software development method according to an embodiment of the present invention will be described with reference to the drawings.
도 4는 본 발명의 실시예에 따른 자바 소프트 개발 방법을 나타낸 도면이다.4 is a diagram illustrating a Java software development method according to an embodiment of the present invention.
도 4를 참조하면, 본 발명의 실시예에 따른 자바 소프트웨어 개발 방법은, 전술한 소프트웨어 개발 시스템(도 2의 10)을 통한 바이트코드 기반의 메서드 버전 관리 방법에 있어서, 클래스 파일을 이관하는 단계(S100), 승인 및 요청된 클래스 파일을 재 배포하는 단계(S110), 업무 프로세스를 통해 클래스 파일 및 메서드 정보를 변환하여 메서드 별 실행라인 정보를 생성하고, 클래스 분석기를 통해 클래스 파일로부터 메서드 버전 별 라인 정보를 추출 및 수집하는 단계(S120), 통계처리 프로세스를 통해 메서드 별 실행라인 정보 및, 메서드 버전 별 라인 정보를 로딩하여 메서드 버전 별로 라인 커버리지 정보를 산출하는 단계(S130) 및, 메서드 별 실행라인 정보, 메서드 버전 별 라인 정보 및 라인 커버리지 정보를 저장하는 단계(S140)를 포함할 수 있다.Referring to FIG. 4, a Java software development method according to an embodiment of the present invention is a method of managing a method version based on byte code through the above-described software development system (10 in FIG. 2) S100), redistributing the approved and requested class file (S110), converting the class file and method information through the business process to generate execution line information for each method, Extracting and collecting information (S120), calculating line coverage information for each method version by loading execution line information for each method and line information for each method version through a statistical processing process (S130) Information, method-specific line information, and line coverage information (S140).
클래스 파일을 이관하는 단계(S100)는 개발자 단말의 IDE가 백그라운드에서 자동 빌드된 클래스 파일을 형상관리 시스템에 이관 즉, 배포하는 단계이다.The step of transferring the class file (S100) is a step of transferring the class file in which the IDE of the developer terminal automatically builds in the background to the configuration management system.
승인 및 요청된 클래스 파일을 재 배포하는 단계(S110)는 형상관리 시스템이 승인 및 요청에 따라 이관된 클래스 파일을 다시 런타임 시스템에 배포하는 단계이다.The step of reissuing the approved and requested class file (S110) is a step of distributing the class file transferred back to the runtime system by the CM system upon approval and request.
업무 프로세스를 통해 클래스 파일 및 메서드 정보를 변환하여 메서드 별 실행라인 정보를 생성하고, 클래스 분석기를 통해 클래스 파일로부터 메서드 버전 별 라인 정보를 추출 및 수집하는 단계(S120)는 런타임 시스템이 배포된 클래스 파일 및 이에 포함되는 메서드 정보를 실행라인을 기록할 수 있는 형태로 변환하여 메서드 별 실행라인 정보를 생성하며, 동시에 메서드 버전 별 라인 정보를 추출 및 수집하는 단계이다.The step (S120) of converting the class file and method information through the business process to generate execution line information for each method and extracting and collecting line information for each method version from the class file through the class analyzer (S120) And converting the method information included therein into a form capable of recording an execution line, generating execution line information for each method, and simultaneously extracting and collecting line information for each method version.
통계처리 프로세스를 통해 메서드 별 실행라인 정보 및, 메서드 버전 별 라인 정보를 로딩하여 메서드 버전 별로 라인 커버리지 정보를 산출하는 단계(S130)는 테스트 품질관리 시스템이 DBMS에 기저장된 메서드 별 실행라인 정보 및, 메서드 버전 별 라인 정보를 로딩하여 메서드 버전 별로 라인 커버리지 정보를 산출하는 단계이다. The step S130 of calculating line coverage information for each method version by loading the execution line information for each method and the line information for each method version through the statistical processing process can be performed by the test quality management system, It is a step of calculating line coverage information by method version by loading line information by method version.
메서드 별 실행라인 정보, 메서드 버전 별 라인 정보 및 라인 커버리지 정보를 저장하는 단계(S140)는 런타임 시스템 및 테스트 품질관리 시스템에 의해 획득된 메서드 별 실행라인 정보, 메서드 버전 별 라인 정보 및 라인 커버리지 정보를 저장 DBMS에 저장하는 단계이다. 여기서, 메서드 별 실행라인 정보, 메서드 버전 별 라인 정보는 상기 S130 단계 이후 진행될 수 있다.Step S140 of storing the execution line information for each method, line information for each method version, and line coverage information includes executing line information for each method, line information for each method version, and line coverage information obtained by the runtime system and the test quality management system And storing it in a storage DBMS. Here, the execution line information for each method and the line information for each method version may be performed after step S130.
이하, 도면을 참조하여 본 발명의 실시예에 따른 자바 소프트웨어 개발 시스템을 구성하는 각 시스템간 수행하는 절차를 나타낸 시퀀스 도를 통해 본 발명의 바이트코드 기반의 메서드 버전 관리 방법을 상세히 설명한다.Hereinafter, a method of version-based method management based on the bytecode according to the present invention will be described in detail with reference to the accompanying drawings, illustrating a procedure performed between systems constituting a Java software development system according to an embodiment of the present invention.
도 5는 본 발명의 실시예에 따른 자바 소프트웨어 개발 시스템의 각 시스템간 수행하는 절차를 시퀀스 도로 나타낸 도면이다.FIG. 5 is a sequence diagram illustrating a procedure performed between systems of a Java software development system according to an embodiment of the present invention.
도 5를 참조하면, 개발자에 의해 개발자 단말(100)의 IDE에서 작성된 소스파일은 백그라운드(background) 형태로 자동 빌드(build)되어 클래스 파일로 생성될 수 있으며, IDE의 배포요청에 따라 생성된 클래스 파일은 형상관리 시스템(200)에 이관된다(S200).Referring to FIG. 5, a source file created in the IDE of the
형상관리 시스템(200)은 요청 및 승인 처리 프로세스를 통해 승인된 클래스 파일(130)을 런타임 시스템(300)으로 배포하게 된다(S120).The
런타임 시스템(300)은 업무 프로세스를 통해 BCI 처리절차를 수행하여 원본 클래스 파일 및 메서드 정보의 실행라인을 기록할 수 있는 변환된 클래스 파일(311) 및 변환된 메서드 정보(312)로 변환한다(S230). 이때, 변환된 메서드 정보(312)의 바이트코드는 API 호출에 의해 DBMS(400)에 메서드 별 실행라인 정보로 저장되게 된다(S231).The
또한, 런타임 시스템(300)은 배포된 클래스 파일에 대하여 테스트 품질관리 툴의 클래스 분석기를 통해 분석을 수행하게 되며, DBMS(400)에 저장된 이전 메서드 버전정보를 로딩(loading)하여(S232), 현재 메서드 버전정보와 비교를 수행한다(S233). 만약, 메서드 버전이 변경되었다면(S234), 런타임 시스템(300)은 현재 라인 커버리지 정보를 초기화하고, 라인 분석 정보 및 메서드 버전정보를 DBMS(400)에 저장하게 된다(S235).The
그리고, 테스트 품질관리 시스템(500)은 통계처리 프로세스에 의해 라인 분석정보, 메서드 별 실행라인 정보 및 메서드 버전 별 라인 정보를 DBMS(400)로부터 로딩 한다(S240).Then, the test
다음으로, 테스트 품질관리 시스템(500)은 라인 커버리지 정보(430)를 메서드 버전 별로 산출하게 된다(S241). 이때, 라인 커버리지 정보의 변경여부를 판단하고(S242), 변경된 경우 라인 커버리지 정보를 DBMS에 갱신 저장하게 된다(S250). Next, the test
이후, DBMS(400)에 저장된 라인 커버리지 정보는 테스트 품질관리 시스템(500)의 UI를 통해 가장 최신 버전의 정보가 사용자에게 제공되게 된다.Thereafter, the latest version information is provided to the user through the UI of the test
상기한 설명에 많은 사항이 구체적으로 기재되어 있으나 이것은 발명의 범위를 한정하는 것이라기보다 바람직한 실시예의 예시로서 해석되어야 한다. 따라서, 발명은 설명된 실시예에 의하여 정할 것이 아니고 특허청구범위와 특허청구범위에 균등한 것에 의하여 정하여져야 한다.While a great many are described in the foregoing description, it should be construed as an example of preferred embodiments rather than limiting the scope of the invention. Accordingly, the invention is not to be determined by the embodiments described, but should be determined by equivalents to the claims and the appended claims.
100 : 개발자 단말 110 : IDE
200 : 형상관리 시스템 300 : 런타임 시스템
400 : DBMS 500 : 테스트 품질관리 시스템100: Developer terminal 110: IDE
200: CM system 300: Runtime system
400: DBMS 500: Test Quality Management System
Claims (11)
사용자에게 개발환경을 제공하는 통합개발환경(IDE)이 탑재되고, 메서드 정보를 포함하는 클래스 파일을 제공하는 개발자 단말;
상기 클래스 파일의 변경 이력에 대한 관리를 수행하는 형상관리 시스템;
업무 프로세스를 통해 변환된 클래스 파일 및 메서드 정보에 대한 메서드 별 실행라인 정보와, 클래스 분석기를 통해 상기 클래스 파일로부터 추출된 현재 메서드 버전 별 라인 정보를 이전 버전과 비교하여 변경시 정보를 갱신하는 런타임 시스템;
메서드 별 실행라인 정보, 메서드 버전 별 라인 정보 및 라인 커버리지 정보를 저장하는 DBMS; 및
통계처리 프로세스를 통해 상기 메서드 별 실행라인 정보 및 메서드 버전 별 라인 정보를 로딩하여 메서드 버전 별로 라인 커버리지 정보를 산출하고, 상기 DBMS에 저장된 정보를 갱신하는 테스트 품질관리 시스템을 포함하고,
상기 런타임 시스템은 상기 형상관리 시스템으로부터 배포되는 클래스 파일을 구현하여 WAS 또는 자바 어플리케이션을 실행하고,
상기 업무 프로세스는 BCI 처리를 통해 원본 클래스 및 메서드 정보를 실행라인을 기록할 수 있는 변환된 클래스 파일 및 메서드 정보로 변환하고,
상기 변환된 클래스 파일 및 메서드 정보는 API에 의해 상기 DBMS에 상기 메서드 별 실행라인 정보로 저장되고,
상기 업무 프로세스 및 클래스 분석기는,
상기 메서드 정보 내 바이트 코드의 인덱스 기준인 라인 넘버 테이블 속성(Line Number Table Attribute)를 참조하여 첫 번째 라인 번호를 메서드의 시작라인 번호로 저장하고, 상기 시작라인 번호를 기준으로 상대 값인 라인 번호 테이블 값을 구하는 오프셋 산출기; 및
상기 라인 번호 테이블 값에 대응하여 해쉬ID를 산출하는 해쉬 생성기를 포함하고,
상기 메서드 정보의 버전ID는 상기 해쉬ID로 지정되는 자바 소프트웨어 개발 시스템. A Java software development system using byte code based Java method version management method,
A developer terminal equipped with an integrated development environment (IDE) for providing a development environment to a user and providing a class file including method information;
A configuration management system for managing a change history of the class file;
A runtime system for updating information upon change by comparing execution line information for each class file and method information converted through a business process and line information for each current method version extracted from the class file through a class analyzer, ;
A DBMS for storing execution line information for each method, line information for each method version, and line coverage information; And
And a test quality management system for calculating line coverage information for each method version by loading the method-specific execution line information and method version-specific line information through a statistical processing process, and updating the information stored in the DBMS,
Wherein the runtime system implements a class file distributed from the configuration management system to execute a WAS or Java application,
The business process converts the original class and method information into converted class file and method information that can record the execution line through BCI processing,
The converted class file and method information are stored in the DBMS as execution line information for each method by an API,
The business process and class analyzer,
A first line number is stored as a start line number of a method by referring to a line number table attribute that is an index reference of an bytecode in the method information, and a line number table value An offset calculator for obtaining an offset value; And
And a hash generator for calculating a hash ID corresponding to the line number table value,
And the version ID of the method information is specified by the hash ID.
상기 개발자 단말은,
상기 사용자에 의해 작성된 소스파일을 컴파일러가 백그라운드에서 자동 빌드하여 상기 클래스 파일을 생성하는 자바 소프트웨어 개발 시스템.The method according to claim 1,
The developer terminal,
Wherein the compiler generates a class file by automatically building a source file created by the user in the background.
상기 형상관리 시스템은,
요청 및 승인 프로세스를 통해 승인된 클래스 파일을 런타임 시스템으로 재배포하는 자바 소프트웨어 개발 시스템.The method according to claim 1,
The configuration management system includes:
A Java software development system that redistributes approved class files to the runtime system through a request and approval process.
(a) 클래스 파일을 이관하는 단계;
(b) 승인 및 요청된 클래스 파일을 재 배포하는 단계;
(c) 업무 프로세스를 통해 클래스 파일 및 메서드 정보를 변환하여 메서드 별 실행라인 정보를 생성하며, 클래스 분석기를 통해 상기 클래스 파일로부터 메서드 버전 별 라인 정보를 추출 및 수집하는 단계;
(d) 통계처리 프로세스를 통해 상기 메서드 별 실행라인 정보 및 메서드 버전 별 라인 정보를 로딩하여 메서드 버전 별로 라인 커버리지 정보를 산출하는 단계; 및
(e) 상기 메서드 별 실행라인 정보, 메서드 버전 별 라인 정보 및 라인 커버리지 정보를 저장하는 단계
를 포함하고,
상기 (c) 단계는,
배포되는 클래스 파일을 구현하여 WAS 또는 자바 어플리케이션을 실행하는 단계; 및
BCI 처리를 통해 원본 클래스 및 메서드 정보를 실행라인을 기록할 수 있는 변환된 클래스 파일 및 메서드 정보로 변환하는 단계를 포함하고,
상기 변환된 클래스 파일 및 메서드 정보는 API에 의해 상기 메서드 별 실행라인 정보로 저장되고,
상기 (c) 단계는,
상기 메서드 정보의 바이트 코드의 인덱스 기준인 라인 넘버 테이블 속성(Line Number Table Attribute)를 참조하여 첫 번째 라인 번호를 메서드의 시작라인 번호로 저장하는 단계;
상기 시작라인 번호를 기준으로 상대 값인 라인 번호 테이블 값을 구하는 단계; 및
상기 라인 번호 테이블 값에 대응하여 해쉬ID를 산출하는 단계를 포함하고,
상기 메서드 정보의 버전ID는 상기 해쉬ID로 지정되는 자바 소프트웨어 개발 방법.A method of Java software development based on byte code through a software development system according to claim 1,
(a) transferring a class file;
(b) redistributing the approved and requested class files;
(c) converting the class file and method information through a business process to generate execution line information for each method, extracting and collecting line information for each method version from the class file through a class analyzer;
(d) calculating line coverage information for each method version by loading the method-specific execution line information and method version-specific line information through a statistical processing process; And
(e) storing the execution line information for each method, line information for each method version, and line coverage information
Lt; / RTI >
The step (c)
Executing a WAS or Java application by implementing a distributed class file; And
Converting the original class and method information into converted class file and method information capable of writing an execution line through BCI processing,
The converted class file and method information are stored as execution line information for each method by an API,
The step (c)
Storing a first line number as a method start line number by referring to a line number table attribute that is an index reference of a byte code of the method information;
Obtaining a line number table value which is a relative value based on the start line number; And
And calculating a hash ID corresponding to the line number table value,
And the version ID of the method information is specified by the hash ID.
상기 (a) 단계 이전에,
컴파일러가 상기 사용자에 의해 작성된 소스파일을 백그라운드에서 자동 빌드하여 상기 클래스 파일을 생성하는 단계
를 포함하는 자바 소프트웨어 개발 방법.The method according to claim 6,
Before the step (a)
The compiler generates a class file by automatically building a source file created by the user in the background
/ RTI >
상기 (c) 단계는,
상기 클래스 분석기를 통해 상기 클래스 파일로부터 추출된 현재 메서드 버전 별 라인 정보를 이전 버전과 비교하여 변경시 저장된 메서드 버전 별 라인 정보를 갱신하는 단계
를 더 포함하는 자바 소프트웨어 개발 방법.The method according to claim 6,
The step (c)
Comparing the line information of the current method version extracted from the class file with the previous version through the class analyzer and updating the line information of each method version stored at the time of the change
The method comprising the steps of:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170061814A KR101970717B1 (en) | 2017-05-18 | 2017-05-18 | Management method for java methods based on bytecode, development system and method for java software using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170061814A KR101970717B1 (en) | 2017-05-18 | 2017-05-18 | Management method for java methods based on bytecode, development system and method for java software using the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180126852A KR20180126852A (en) | 2018-11-28 |
KR101970717B1 true KR101970717B1 (en) | 2019-04-22 |
Family
ID=64561770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170061814A KR101970717B1 (en) | 2017-05-18 | 2017-05-18 | Management method for java methods based on bytecode, development system and method for java software using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101970717B1 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100678912B1 (en) | 2005-10-18 | 2007-02-05 | 삼성전자주식회사 | Method for interpreting method bytecode and system by the same |
KR100967525B1 (en) | 2008-06-09 | 2010-07-07 | 박기복 | Method and system for generating load only to the targeted system, not to the connected ones when doing performance, load, functional tests on the targeted system. |
KR101667262B1 (en) * | 2014-08-18 | 2016-10-19 | 슈어소프트테크주식회사 | Method for measuring code coverage and computer readable recording medium having program the same |
-
2017
- 2017-05-18 KR KR1020170061814A patent/KR101970717B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20180126852A (en) | 2018-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10019256B2 (en) | Systems and methods for incremental software development | |
CN108027722B (en) | Dynamically updating applications in compilation and deployment | |
Sen et al. | Jalangi: A selective record-replay and dynamic analysis framework for JavaScript | |
US8914780B2 (en) | Incremental generation of managed assemblies | |
Noonan et al. | Polymorphic type inference for machine code | |
US8381176B1 (en) | Software build orchestration framework | |
US20160239402A1 (en) | Software commit risk level | |
US20120296878A1 (en) | File set consistency verification system, file set consistency verification method, and file set consistency verification program | |
US8214393B2 (en) | Integrating database deployment with code deployment | |
US10942718B2 (en) | Systems and/or methods for type inference from machine code | |
US20100262956A1 (en) | Software development support apparatus, function extension method and storage medium for storing function extension program | |
Kirbas et al. | The relationship between evolutionary coupling and defects in large industrial software | |
US20090260000A1 (en) | Method, apparatus, and manufacture for software difference comparison | |
US11880674B2 (en) | Adaptive hot reload for class changes | |
CN106445505A (en) | Code processing method and device | |
Pârțachi et al. | Flexeme: Untangling commits using lexical flows | |
EP2100225B1 (en) | Method, system and computer program for identifying interpreted programs through class loading sequences | |
US8086455B2 (en) | Model development authoring, generation and execution based on data and processor dependencies | |
US20210124575A1 (en) | Providing build avoidance without requiring local source code | |
KR101924747B1 (en) | Flexible metadata composition | |
Dawes et al. | Vypr2: A framework for runtime verification of python web services | |
Peiris et al. | Automatically detecting" excessive dynamic memory allocations" software performance anti-pattern | |
KR101970717B1 (en) | Management method for java methods based on bytecode, development system and method for java software using the same | |
JP4144885B2 (en) | How to reuse application objects | |
US7389515B1 (en) | Application deflation system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |