KR102422972B1 - Method for maintenance for program and computing device supporting the same - Google Patents

Method for maintenance for program and computing device supporting the same Download PDF

Info

Publication number
KR102422972B1
KR102422972B1 KR1020200153987A KR20200153987A KR102422972B1 KR 102422972 B1 KR102422972 B1 KR 102422972B1 KR 1020200153987 A KR1020200153987 A KR 1020200153987A KR 20200153987 A KR20200153987 A KR 20200153987A KR 102422972 B1 KR102422972 B1 KR 102422972B1
Authority
KR
South Korea
Prior art keywords
ast
information
snapshot
display
snapshots
Prior art date
Application number
KR1020200153987A
Other languages
Korean (ko)
Other versions
KR20220067366A (en
Inventor
김순태
김태영
Original Assignee
전북대학교산학협력단
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 전북대학교산학협력단 filed Critical 전북대학교산학협력단
Priority to KR1020200153987A priority Critical patent/KR102422972B1/en
Publication of KR20220067366A publication Critical patent/KR20220067366A/en
Application granted granted Critical
Publication of KR102422972B1 publication Critical patent/KR102422972B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source

Landscapes

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

Abstract

본 발명은 M개의 스냅샷들을 포함한 소스 코드 히스토리를 저장하는 메모리, 디스플레이, 상기 메모리 및 상기 디스플레이와 기능적으로 연결되는 프로세서를 포함하고, 상기 프로세서는 상기 메모리에 저장된 소스 코드 히스토리의 M개의 스냅샷들 중 n(n은 자연수)번째 스냅샷과 n-1번째 스냅샷에 대한 클래스 AST 페어링을 수행하고, 상기 페어링에 따른 AST 페어들 간의 비교를 수행하고, 상기 비교 결과를 기반으로 변경 사항을 식별하고, 상기 변경 사항을 작업 단위로 구분 및 시각화한 후, 상기 디스플레이에 출력하도록 설정된 것을 특징으로 하는 프로그램 유지 보수를 지원하는 컴퓨팅 장치와 이를 이용한 프로그램 유지 보수 방법을 개시한다.The present invention includes a memory for storing a source code history comprising M snapshots, a display, the memory and a processor operatively coupled to the display, wherein the processor includes the M snapshots of the source code history stored in the memory. Perform class AST pairing for the n (n is a natural number)-th snapshot and the n-1th snapshot, perform a comparison between AST pairs according to the pairing, and identify changes based on the comparison result, , Disclosed are a computing device supporting program maintenance, which is set to be output to the display after classifying and visualizing the change in units of work, and a program maintenance method using the same.

Description

프로그램 유지 보수 방법 및 이를 지원하는 컴퓨팅 장치{Method for maintenance for program and computing device supporting the same}Method for maintenance for program and computing device supporting the same}

본 발명은 프로그램 유지 보수에 관한 것으로, 소스 코드 히스토리에 저장된 스냅샷들을 이용한 프로그램 유지 보수 방법 및 이를 지원하는 컴퓨팅 장치에 관한 것이다.The present invention relates to program maintenance, and to a program maintenance method using snapshots stored in a source code history and a computing device supporting the same.

프로그램 유지보수는 소프트웨어 개발에서 가장 많은 비용을 차지하는 부분이다. 이에 따라 프로그램 유지 보수자들은 기존 시스템의 Version 관리 시스템(VCS)을 활용하여 개발자들이 어떻게 기능을 개발하고 Bug를 수정하였는지에 대해 과거의 개발이력을 직접 분석함으로써 유지보수를 수행할 수 있다. 하지만, 이러한 작업은 프로그램 유지 보수자들에게 많은 시간과 비용을 요구하며, 결과적으로 일정의 지연과 예산의 초과투자를 유발할 수 있다.Program maintenance is the most expensive part of software development. Accordingly, program maintainers can perform maintenance by directly analyzing the past development history on how developers developed functions and modified bugs by using the existing system's version management system (VCS). However, this work requires a lot of time and money for program maintainers, and as a result, it may cause schedule delays and overinvestment of the budget.

기존 선행 개발 프로그램들의 경우 소프트웨어 개발 통합 도구에서 개발자의 여러 개발 행위를 즉각적으로 기록하고, 이를 별도의 저장소에 저장하여 개발자에게 개발의 과정을 보여준다. 하지만, 이러한 방식들은 프로그램 개발 과정에 대한 정보를 문자열단위로 보여주는 특징 때문에, 프로그램 유지 보수자가, 각 문자열들을 하나씩 확인하고, 그 뜻을 이해해야 하기 때문에, 많은 시간과 피로감을 느낄 수 있으며, 문제점 찾기가 쉽지 않은 단점이 존재한다. 또 다른 방식으로, 여러 Version의 해당 System을 빌드하여 가져온 다음에 동적 분석에 따라 개발 과정을 보여주는 방식이 있다. 이러한 방식은 시스템이 어떻게 개발되었는지 보여주는 가장 직관적인 방식이지만, 만약 해당 시스템 build가 수행되지 못할 경우 그 과정을 파악할 수 없다는 문제점이 있다. In the case of existing advanced development programs, the software development integration tool immediately records the developer's various development activities, and stores them in a separate repository to show the developer the development process. However, since these methods show information about the program development process in string units, the program maintainer has to check each string one by one and understand the meaning, which can cause a lot of time and fatigue, and it is difficult to find problems. There are some disadvantages that are not easy. Another method is to build and import multiple versions of the system, and then show the development process according to dynamic analysis. This method is the most intuitive way to show how the system was developed, but there is a problem in that if the system build is not performed, the process cannot be understood.

한국공개특허 제10-2020-0080704호(2020.07.07.)Korean Patent Publication No. 10-2020-0080704 (2020.07.07.)

본 발명은 프로그램 유지보수에 관한 것으로, 별도의 저장소나 System Build를 요구하지 않고, Source Code History 내의 각 Snapshot에서 어떠한 작업들이 수행되었는지를 AST(Abstract Syntax Tree) 기반 Method Attribute 요소 중심으로, 개발 과정을 시각화하여 제공함으로써, 각 Version마다 어떠한 작업이 수행 되었는지를 쉽게 빠르게 확인할 수 있도록 하는 프로그램 유지 보수 방법 및 이를 지원하는 컴퓨팅 장치를 제공함에 있다.The present invention relates to program maintenance, and without requiring a separate repository or system build, the development process is performed based on the AST (Abstract Syntax Tree)-based Method Attribute element based on which tasks are performed in each Snapshot in the Source Code History. By providing visualization, it is to provide a program maintenance method and a computing device that supports it so that you can easily and quickly check what kind of work was performed for each version.

예컨대, 본 발명은 소스 코드 히스토리에 저장된 스냅샷들을 이용하여 작업 변경 사항들을 추출하고, 추출된 작업 변경 사항들을 출력하여 프로그램 이해를 쉽게 하면서 유지 보수를 보다 쉽게 할 수 있도록 하는 프로그램 유지 보수 방법 및 이를 지원하는 컴퓨팅 장치를 제공하는 것을 그 목적으로 한다.For example, the present invention provides a program maintenance method for extracting job changes using snapshots stored in the source code history, and outputting the extracted job changes to facilitate program understanding and maintenance. An object of the present invention is to provide a supporting computing device.

상기와 같은 목적을 달성하기 위한 본 발명의 컴퓨팅 장치는 M개의 스냅샷들을 포함한 소스 코드 히스토리를 저장하는 메모리, 디스플레이, 상기 메모리 및 상기 디스플레이와 기능적으로 연결되는 프로세서를 포함하고, 상기 프로세서는 상기 메모리에 저장된 소스 코드 히스토리의 M개의 스냅샷들 중 n(n은 자연수)번째 스냅샷과 n-1번째 스냅샷에 대한 클래스 AST 페어링을 수행하고, 상기 페어링에 따른 AST 페어들 간의 비교를 수행하고, 상기 비교 결과를 기반으로 변경 사항을 식별하고, 상기 변경 사항을 작업 단위로 구분 및 시각화한 후, 상기 디스플레이에 출력하도록 설정된 것을 특징으로 하는 프로그램 유지 보수를 지원하는 컴퓨팅 장치.A computing device of the present invention for achieving the above object includes a memory for storing source code history including M snapshots, a display, the memory and a processor operatively connected to the display, wherein the processor includes the memory Perform class AST pairing on the n (n is a natural number) snapshot and the n-1th snapshot among M snapshots of the source code history stored in , and compare between AST pairs according to the pairing, The computing device supporting program maintenance, characterized in that it is set to identify a change based on the comparison result, classify and visualize the change in units of work, and output the change to the display.

특히, 상기 프로세서는 상기 n-1 번째 스냅샷과 상기 n번째 스냅샷들 간의 비교를 수행하여 Java 파일 페어를 생성하고, 상기 Java 파일 페어로부터 클래스 페어의 AST 트리를 추출한 후, 각 클래스 AST 트리에 대한 페어링을 수행하도록 설정된 것을 특징으로 한다.In particular, the processor generates a Java file pair by performing a comparison between the n-1 th snapshot and the n th snapshots, extracts the AST tree of the class pair from the Java file pair, and stores the AST tree in each class AST tree. It is characterized in that it is set to perform pairing.

또한, 상기 프로세서는 상기 코드 변경 사항에 대한 확인을 통해 상기 AST 페어들의 변경 타입을 정보 수정, 정보 삭제, 정보 추가로 구분하도록 설정된 것을 특징으로 한다.In addition, the processor is characterized in that it is configured to classify the change types of the AST pairs into information modification, information deletion, and information addition by checking the code change.

상기 프로세서는 상기 정보 수정, 정보 삭제, 정보 추가 중 적어도 하나를 색 또는 텍스트로 구분하여 상기 디스플레이 출력하도록 설정된 것을 특징으로 한다.The processor is set to display and output at least one of the information correction, information deletion, and information addition by color or text.

여기서, 상기 프로세서는 상기 AST 페어의 변경 타입들에 대한 작업 단위 구분을 수행하는 과정에서 각 작업 단위들에 대한 수정, 삭제, 추가를 확인하고, 작업별로 수정, 삭제 또는 추가에 대해 구분 표시하도록 설정될 수 있다.Here, the processor confirms the modification, deletion, and addition of each work unit in the process of classifying the work unit for the change types of the AST pair, and sets the correction, deletion, or addition to be displayed separately for each work can be

본 발명의 실시 예에 따른 프로그램 유지 보수 방법은, 메모리에 저장된 소스 코드 히스토리의 M개의 스냅샷들 중 n(n은 자연수)번째 스냅샷과 n-1번째 스냅샷을 획득하는 단계, 상기 n번째 스냅샷과 n-1번째 스냅샷에 대한 클래스 AST 페어링을 수행하는 단계, 상기 페어링에 따른 AST 페어들 간의 비교를 수행하는 단계, 상기 비교 결과를 기반으로 변경 사항을 식별하는 단계, 상기 변경 사항을 작업 단위로 구분 및 시각화한 후, 상기 디스플레이에 출력하는 단계를 포함하는 것을 특징으로 한다.A program maintenance method according to an embodiment of the present invention includes acquiring an n (n is a natural number) th snapshot and an n-1 th snapshot among M snapshots of a source code history stored in a memory, the nth snapshot performing class AST pairing for the snapshot and the n-1th snapshot, performing a comparison between AST pairs according to the pairing, identifying a change based on the comparison result, the change After classifying and visualizing the work unit, it characterized in that it comprises the step of outputting to the display.

특히, 상기 AST 페어링을 수행하는 단계는 상기 n-1 번째 스냅샷과 상기 n번째 스냅샷들 간의 비교를 수행하여 Java 파일 페어를 생성하는 단계, 상기 Java 파일 페어로부터 클래스 페어의 AST 트리를 추출하는 단계, 각 클래스 AST 트리에 대한 페어링을 수행하는 단계를 포함하는 것을 특징으로 한다.In particular, performing the AST pairing includes generating a Java file pair by performing a comparison between the n-1 th snapshot and the n th snapshots, extracting the AST tree of the class pair from the Java file pair step, and performing pairing for each class AST tree.

그리고 상기 식별하는 단계는 상기 코드 변경 사항에 대한 확인을 통해 상기 AST 페어들의 변경 타입을 정보 수정, 정보 삭제, 정보 추가로 구분하는 단계를 포함하는 것을 특징으로 한다.And the step of identifying is characterized in that it comprises the step of classifying the change type of the AST pairs through information modification, information deletion, and information addition through the confirmation of the code change.

추가로, 상기 방법은 상기 정보 수정, 정보 삭제, 정보 추가 중 적어도 하나를 색 또는 텍스트로 구분하고 시각화한 후 상기 디스플레이 출력하는 단계를 더 포함하는 것을 특징으로 한다.Additionally, the method may further include the step of displaying and outputting at least one of the information correction, information deletion, and information addition by color or text, and then visualized.

또한, 상기 출력하는 단계는 상기 AST 페어의 변경 타입들에 대한 작업 단위 구분을 수행하는 과정에서 각 작업 단위들에 대한 수정, 삭제, 추가를 확인하고, 작업별로 수정, 삭제 또는 추가에 대해 구분 표시하는 단계를 포함하는 것을 특징으로 한다.In addition, the outputting step confirms correction, deletion, and addition of each work unit in the process of performing unit classification of the change types of the AST pair, and displays the correction, deletion or addition for each task It is characterized in that it comprises the step of

상술한 본 발명은, VCS(version control system) 시스템에서 관리된 각 Version의 시스템 Source Code를 분석하고 이를 여러 개의 작업 단위로 표현하여 자동적으로 보여줌으로써 프로그램 유지 보수자들의 작업 효율성을 높일 뿐만 아니라 소프트웨어 교육측면에서도 해당 시스템이 어떻게 개발되었는지 보여줌으로써 개발에 대한 학습을 지원할 수 있다.The present invention described above analyzes the system source code of each version managed in the VCS (version control system) system and automatically shows it by expressing it in several work units, thereby increasing the work efficiency of program maintainers as well as software education. It can also support learning about development by showing how the system was developed.

예컨대, 본 발명은 새로운 개발자가 팀에 합류하거나, 변경된 내용을 확인 및 사용하기 위해 새롭게 구축해야 하는 프로젝트의 개발 환경 및 실행 환경을 자동으로 제공할 수 있으며, 소프트웨어를 개발하기 위해 프로그래밍 언어의 이해가 필요한 모든 분야에 효과적인 교육 환경을 제공할 수 있다. For example, the present invention can automatically provide a development environment and execution environment for a project that a new developer must build anew to join a team or to check and use the changed content, and an understanding of a programming language to develop software We can provide an effective educational environment in all necessary fields.

도 1은 본 발명의 실시 예에 따른 컴퓨팅 장치 구성의 한 예를 나타낸 도면이다.
도 2는 본 발명의 실시 예에 따른 프로세서 구성의 한 예를 나타낸 도면이다.
도 3은 본 발명의 실시 예에 따른 프로그램 유지 보수 방법의 한 예를 나타낸 도면이다.
도 4a는 본 발명의 실시 예에 따른 프로그램 유지 보수와 관련한 시스템 운용 환경의 한 예를 나타낸 도면이다.
도 4b는 도 4a의 작업 단위 식별 정보를 확대한 도면이다.
1 is a diagram illustrating an example of a configuration of a computing device according to an embodiment of the present invention.
2 is a diagram illustrating an example of a processor configuration according to an embodiment of the present invention.
3 is a diagram illustrating an example of a program maintenance method according to an embodiment of the present invention.
4A is a diagram illustrating an example of a system operating environment related to program maintenance according to an embodiment of the present invention.
4B is an enlarged view of work unit identification information of FIG. 4A.

이하, 본 발명의 바람직한 실시예를 첨부한 도면에 의거하여 보다 상세하게 설명하면 다음과 같다. 물론 본 발명의 권리범위는 하기의 실시예에 한정되는 것은 아니며, 본 발명의 기술적 요지를 벗어나지 않는 범위 내에서 당해 기술분야의 통상적인 지식을 가진자에 의하여 다양하게 변형 실시될 수 있다.Hereinafter, a preferred embodiment of the present invention will be described in more detail based on the accompanying drawings. Of course, the scope of the present invention is not limited to the following examples, and various modifications may be made by those of ordinary skill in the art without departing from the technical gist of the present invention.

이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 바람직한 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있다. The terms or words used in the present specification and claims described below should not be construed as being limited to their ordinary or dictionary meanings, and the inventors have appropriate concepts of terms to describe their invention in the best way. It should be interpreted as meaning and concept consistent with the technical idea of the present invention based on the principle that it can be defined in Therefore, the embodiments described in this specification and the configurations shown in the drawings are only preferred embodiments of the present invention, and do not represent all the technical spirit of the present invention, so various equivalents that can be substituted for them at the time of the present application and variations.

이하에서 설명하는 본 발명의 컴퓨팅 장치 및 이의 운용 방법은 기존 시스템을 실행하고 변경하며 결과 값을 테스트 하는 과정을 통해, 소프트웨어의 각 부분의 소스 코드들의 연결과 전체적인 코드에 대해 깊은 이해를 가능하게 할 수 있다. 또한, 본 발명의 컴퓨팅 장치 및 이의 운용 방법은 소프트웨어의 개발 과정에서 수행된 테스트 통과 여부를 살펴볼 수 있는 기능을 제공함으로써, 개발자가 소프트웨어 개발 당시 발생한 문제해결을 위해 어떻게 소스 코드를 작성했는지 알 수 있어 재사용자가 중점적으로 분석해야 할 부분을 쉽게 식별할 수 있다. 이와 관련하여, 본 발명은 소프트웨어와 관련한 복수 버전의 소스 코드들과 해당 소스 코드들의 테스트 실행 환경 데이터(예: 개발 환경 정보, 테스트 환경 정보)를 매핑하여 저장 관리하고, 필요에 따라 테스트 컴퓨터 실행 환경을 복원하여 제공할 수 있다. 상기 테스트 환경 정보는 실행 결과가 더 포함될 수 있다. The computing device and its operating method of the present invention described below will enable a deep understanding of the overall code and the connection of source codes of each part of the software through the process of executing and changing the existing system and testing the result value. can In addition, the computing device and its operating method of the present invention provide a function to check whether the test performed in the software development process has passed, so that the developer can know how the source code was written to solve the problem that occurred at the time of software development. The reuser can easily identify the areas to focus on. In this regard, the present invention maps, stores and manages multiple versions of software-related source codes and test execution environment data (eg, development environment information, test environment information) of the source codes, and, if necessary, a test computer execution environment can be restored and provided. The test environment information may further include an execution result.

이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 보다 상세하게 설명하고자 한다.Hereinafter, embodiments of the present invention will be described in more detail with reference to the accompanying drawings.

도 1은 본 발명의 실시 예에 따른 컴퓨팅 장치 구성의 한 예를 나타낸 도면이다.1 is a diagram illustrating an example of a configuration of a computing device according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시 예에 따른 컴퓨팅 장치(100)는 통신 인터페이스(110), 메모리(130), 디스플레이(140) 및 프로세서(150)를 포함할 수 있다. 추가적으로, 상기 컴퓨팅 장치(100)는 사용자 입력을 수행할 수 있는, 입력 장치(170), 오디오 정보를 출력할 수 있는 출력 장치(180)를 더 포함할 수 있다. Referring to FIG. 1 , a computing device 100 according to an embodiment of the present invention may include a communication interface 110 , a memory 130 , a display 140 , and a processor 150 . Additionally, the computing device 100 may further include an input device 170 capable of performing a user input and an output device 180 capable of outputting audio information.

상기 통신 인터페이스(110)는 상기 컴퓨팅 장치(100)의 통신 기능을 지원할 수 있다. 상기 통신 인터페이스(110)는 유선 통신 채널 또는 무선 통신 채널 중 적어도 하나를 지원할 수 있는 적어도 하나의 통신 회로 및 무선 통신 채널을 지원하는 적어도 하나의 안테나를 포함할 수 있다. 예컨대, 상기 통신 인터페이스(110)는 프로세서(150) 제어에 대응하여, 다른 메모리 장치 또는 서버 장치와 통신 채널을 형성하고, 다른 메모리 장치 또는 서버 장치로부터 프로그램 개발에 이용된 버전별 스냅샷들을 수신할 수 있다. 수신된 상기 버전별 스냅샷들은 프로세서(150) 제어에 대응하여 메모리(130)에 저장될 수 있다. 상기 프로그램이 컴퓨팅 장치(100)에서 개발된 경우, 상기 버전별 스냅샷들을 수신하는 통신 인터페이스(110) 구성은 생략될 수도 있다. 추가로, 상기 통신 인터페이스(110)는 컴퓨팅 장치(100)와 독립적으로 구성된 입출력 장치와 통신 채널을 형성하고, 프로세서(150) 제어에 대응하여 작업 단위 식별 결과를 외부 입출력 장치(또는 외부 전자 장치)에 전송할 수 있다.The communication interface 110 may support a communication function of the computing device 100 . The communication interface 110 may include at least one communication circuit capable of supporting at least one of a wired communication channel and a wireless communication channel and at least one antenna supporting a wireless communication channel. For example, the communication interface 110 may form a communication channel with another memory device or server device in response to control of the processor 150, and receive snapshots for each version used for program development from the other memory device or server device. can The received snapshots for each version may be stored in the memory 130 in response to the control of the processor 150 . When the program is developed in the computing device 100, the configuration of the communication interface 110 for receiving the version-specific snapshots may be omitted. In addition, the communication interface 110 forms a communication channel with an input/output device configured independently of the computing device 100 , and displays a work unit identification result in response to the control of the processor 150 to an external input/output device (or an external electronic device) can be sent to

상기 메모리(130)는 상기 컴퓨팅 장치(100) 구동에 필요한 프로그램 및 데이터를 저장할 수 있다. 특히, 상기 메모리(130)는 본 발명의 실시 예에 따른 프로그램 버전별 스냅샷들에 대한 작업 단위 분류 결과 출력과 관련하여, 상기 프로그램 버전별 스냅샷들을 저장할 수 있다. 상기 프로그램 버전별 스냅샷들(예: M개 스냅샷(30))은 예컨대, 메모리(130)에 저장된 소스 코드 히스토리(131)에 포함될 수 있다. 상기 소스 코드 히스토리(131)는 앞서 설명한 바와 같이, 특정 프로그램 개발 과정에서 저장되거나, 다른 외부 서버 장치 등으로부터 수신될 수 있다. 상기 메모리(130)는 작업 단위 분류 결과를 임시 저장할 수 있으며, 프로그램 버전별 스냅샷들로부터 작업 단위 분류 결과를 추출하는 과정에서 처리되는 데이터를 임시 저장할 수 있다. The memory 130 may store programs and data necessary for driving the computing device 100 . In particular, the memory 130 may store the snapshots for each program version in relation to the output of the work unit classification result for the snapshots for each program version according to an embodiment of the present invention. The snapshots for each program version (eg, M snapshots 30 ) may be included in, for example, the source code history 131 stored in the memory 130 . As described above, the source code history 131 may be stored in a specific program development process or may be received from another external server device. The memory 130 may temporarily store the work unit classification result, and may temporarily store data processed in the process of extracting the work unit classification result from the snapshots for each program version.

상기 디스플레이(140)는 컴퓨팅 장치(100) 운용과 관련한 적어도 하나의 화면을 출력할 수 있다. 예컨대, 상기 컴퓨팅 장치(100)가 프로그램 개발에 이용되는 경우, 상기 디스플레이(140)는 개발 과정에 필요한 다양한 화면을 출력할 수 있다. 또는, 상기 디스플레이(140)는 프로그램 버전별 스냅샷들을 외부 서버 장치 또는 외부 메모리 장치로부터 상기 통신 인터페이스(110)를 통해 수신하는 경우, 상기 외부 서버 장치 또는 외부 메모리 장치와 컴퓨팅 장치(100)의 연결에 대응하는 화면, 상기 프로그램 버전별 스냅샷들을 포함한 소스 코드 히스토리(131)를 수신하는 화면, 상기 소스 코드 히스토리(131)를 메모리(130)에 저장하는 화면 등을 출력할 수 있다. 상기 디스플레이(140)는 사용자(또는 프로그램 유지 보수자) 요청에 대응하여 메모리(130)에 저장된 M개의 스냅샷(30)들 각각 출력할 수 있다. 또는, 디스플레이(140)는 M개의 스냅샷(30)들을 기반으로 생성된 클래스 X AST 페어들을 나타내는 화면, 코드 변경 사항에 대한 식별 결과, 정보의 수정, 삭제, 추가를 지시하는 화면, 작업 단위 식별 분류된 화면 등을 출력할 수 있다. 상기 디스플레이(140)는 상기 컴퓨팅 장치(100)와 일체화된 형태로 마련되거나 또는 별도의 유선 케이블 또는 무선 통신 채널을 통해 연결될 수 있다. 또한, 상기 디스플레이(140)는 복수개의 표시 장치를 포함할 수 있으며, 복수개의 표시 장치들은 본 발명의 작업 단위 식별 분류 과정 각각에 대한 화면들을 각각 출력할 수 있다. The display 140 may output at least one screen related to the operation of the computing device 100 . For example, when the computing device 100 is used for program development, the display 140 may output various screens necessary for the development process. Alternatively, when the display 140 receives snapshots for each program version from an external server device or an external memory device through the communication interface 110 , the display 140 connects the external server device or the external memory device to the computing device 100 . A screen corresponding to , a screen for receiving the source code history 131 including snapshots for each program version, a screen for storing the source code history 131 in the memory 130, and the like may be output. The display 140 may output each of the M snapshots 30 stored in the memory 130 in response to a user (or program maintainer) request. Alternatively, the display 140 may display a screen indicating class X AST pairs generated based on the M snapshots 30 , an identification result for code changes, a screen instructing correction, deletion, and addition of information, and identification of work units A classified screen can be output. The display 140 may be provided in an integrated form with the computing device 100 or may be connected through a separate wired cable or wireless communication channel. Also, the display 140 may include a plurality of display devices, and the plurality of display devices may respectively output screens for each of the work unit identification and classification processes of the present invention.

상기 입력 장치(170)는 상기 컴퓨팅 장치(100)에 대한 사용자 입력을 수행할 수 있는 적어도 하나의 입력 수단을 포함할 수 있다. 예컨대, 상기 입력 장치(170)는 컴퓨팅 장치(100)와 기능적으로 연결된 키보드, 키패드, 마우스, 음성 입력 장치, 터치스크린, 터치 패드, 스타일러스 팬 및 그에 상응하는 전자 패널 중 적어도 하나를 포함할 수 있다. 상기 디스플레이(140)가 입력 기능(예: 터치 기능)을 포함하는 경우, 상기 디스플레이(140)는 상기 입력 장치(170)의 한 구성이 될 수 있다. 상기 입력 장치(170)는 프로그램 버전별 스냅샷들에 대한 작업 단위 분류 식별 및 표시에 관한 다양한 입력 신호를 사용자 제어에 대응하여 생성할 수 있다. 예컨대, 상기 입력 장치(170)는 특정 프로그램에 대한 유지 보수를 요청하는 사용자 입력 신호, 상기 유지 보수에 대응하여 특정 단계(예: Class X의 AST 페어 단계, 페어링 결과에 대한 변경 사항 식별 단계, 식별 결과 표시 단계 등을 호출하는 사용자 입력 신호를 사용자 제어에 대응하여 생성할 수 있다. 상기 사용자 입력 신호는 프로세서(150)에 전달되어, 대응되는 기능 수행 또는 화면 출력과 관련한 트리거 신호로 작용할 수 있다. The input device 170 may include at least one input means capable of performing a user input to the computing device 100 . For example, the input device 170 may include at least one of a keyboard, a keypad, a mouse, a voice input device, a touch screen, a touch pad, a stylus fan, and a corresponding electronic panel functionally connected to the computing device 100 . . When the display 140 includes an input function (eg, a touch function), the display 140 may be a component of the input device 170 . The input device 170 may generate various input signals related to identification and display of work unit classification for snapshots for each program version in response to user control. For example, the input device 170 is a user input signal for requesting maintenance for a specific program, a specific step in response to the maintenance (eg, Class X AST pair step, change identification step for pairing result, identification A user input signal for invoking a result display step, etc. may be generated in response to user control, and the user input signal may be transmitted to the processor 150 and act as a trigger signal related to performing a corresponding function or outputting a screen.

상기 출력 장치(180)는 상기 컴퓨팅 장치(100)와 기능적으로 연결되는 적어도 하나의 출력 수단을 포함할 수 있다. 예컨대, 상기 출력 장치(180)는 지정된 텍스트 또는 이미지를 출력할 수 있는 상기 디스플레이(140)를 포함할 수 있다. 또한, 상기 출력 장치(180)는 본 발명의 실시 예에 따른 프로그램 버전 별 스냅샷을 기반으로 작업 단위 별 식별 분류 결과와 관련한 오디오 정보를 출력할 수 있는 오디오 장치(예: 스피커)를 포함할 수 있다. 또는, 상기 출력 장치(180)는 LED 램프 또는 진동 센서 등을 포함할 수도 있다. 상기 출력 장치(180)는 컴퓨팅 장치(100) 운용과 관련한 다양한 정보 출력을 위한 구성으로서, 유선 케이블 또는 무선으로 연결될 수 있는 독립된 장치를 포함할 수 있다. The output device 180 may include at least one output means functionally connected to the computing device 100 . For example, the output device 180 may include the display 140 capable of outputting a specified text or image. In addition, the output device 180 may include an audio device (eg, a speaker) capable of outputting audio information related to the identification classification result for each work unit based on the snapshot for each program version according to an embodiment of the present invention. have. Alternatively, the output device 180 may include an LED lamp or a vibration sensor. The output device 180 is a configuration for outputting various information related to the operation of the computing device 100 , and may include a wired cable or an independent device that can be connected wirelessly.

상기 프로세서(150)는 상기 컴퓨팅 장치(100) 운용과 관련한 프로그램의 활성화, 프로그램 운용에 필요한 데이터의 전달 및 처리를 수행할 수 있다. 본 발명의 프로세서(150)는 프로그램 유지 보수와 관련한 적어도 하나의 알고리즘 또는 작업 단위 식별 분류 결과 출력을 위해 마련된 소프트웨어 구동 등을 수행할 수 있다. 이와 관련하여, 상기 프로세서(150)는 도 2에 도시된 바와 같은 구성을 포함할 수 있다. The processor 150 may activate a program related to the operation of the computing device 100 , and transfer and process data required for the operation of the program. The processor 150 of the present invention may run at least one algorithm related to program maintenance or software provided for outputting a work unit identification classification result, and the like. In this regard, the processor 150 may include a configuration as shown in FIG. 2 .

도 2는 본 발명의 실시 예에 따른 프로세서 구성의 한 예를 나타낸 도면이다.2 is a diagram illustrating an example of a processor configuration according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 실시 예에 따른 프로세서(150) 구성은 AST 페어 생성부(151), 비교부(153), 작업 식별부(155)를 포함할 수 있다.Referring to FIG. 2 , the configuration of the processor 150 according to an embodiment of the present invention may include an AST pair generator 151 , a comparison unit 153 , and a job identification unit 155 .

상기 AST 페어 생성부(151)는 특정 프로그램에 관한 유지 보수와 관련하여, 작업 단위 식별 결과 출력을 요청하는 사용자 입력이 발생하면, 특정 프로그램 개발과 관련하여 메모리(130)에 저장된 소스 코드 히스토리(131)에서 M(M은 자연수 또는 N과 같거나 큰 자연수)개의 스냅샷(30)들을 수집할 수 있다. 상기 M개의 스냅샷(30)들은 상기 특정 프로그램 개발 과정에서 기록된 전체 스냅샷들 또는 전체 스냅샷들 중 사용자가 지정된 일정 실행 기능과 관련한 일부 스냅샷들을 포함할 수 있다. 앞서 언급한 바와 같이, 상기 M개의 스냅샷(30)들은 외부 서버 장치 또는 외부 메모리 장치로부터 수신될 수도 있다. 상기 AST 페어 생성부(151)는 상기 M개의 스냅샷(30)들에 대한 페어링을 수행할 수 있다. 이와 관련하여, 상기 AST 페어 생성부(151)는 M개의 스냅샷(30)들의 순서를 확인하고, 이전 순서의 제1 스냅샷과 현재 순서의 제2 스냅샷을 선택하고, 제1 스냅샷과 제2 스냅샷에 대한 비교를 위해 Java 파일 페어를 생성할 수 있다. 상기 AST 페어 생성부(151)는 생성된 Java 파일 페어들에 대한 AST Tree를 추출하고, 추출된 페어의 AST Tree에 대해 Class AST Tree 페어링을 수행할 수 있다. 상기 AST 페어 생성부(151)는 각 순서별로 생성된 Class AST Tree 페어들을 비교부(153)에 전달할 수 있다.The AST pair generator 151 generates a source code history 131 stored in the memory 130 in connection with the development of a specific program when a user input requesting output of a work unit identification result occurs in connection with maintenance of a specific program. ) to M (M is a natural number or a natural number equal to or greater than N) number of snapshots 30 may be collected. The M snapshots 30 may include all snapshots recorded in the process of developing the specific program or some snapshots related to a user-specified schedule execution function among all snapshots. As mentioned above, the M number of snapshots 30 may be received from an external server device or an external memory device. The AST pair generator 151 may perform pairing on the M snapshots 30 . In this regard, the AST pair generating unit 151 checks the order of the M snapshots 30, selects the first snapshot in the previous order and the second snapshot in the current order, and selects the first snapshot and the second snapshot in the current order. A Java file pair can be created for comparison against the second snapshot. The AST pair generator 151 may extract an AST tree for the generated Java file pairs, and perform class AST tree pairing on the AST tree of the extracted pair. The AST pair generating unit 151 may transmit the Class AST Tree pairs generated for each order to the comparing unit 153 .

상기 비교부(153)는 상기 AST 페어 생성부(151)로부터 Class X의 AST 페어들 예컨대, M개의 스냅샷(30)들에 대한 AST 페어들에 대한 코드 변경 사항을 식별할 수 있다. 즉, 페어 관계인 제1 스냅샷의 Class들과 제2 스냅샷의 Class들 상호 비교하여 변경된 사항 예컨대, 수정, 삭제, 추가를 식별할 수 있다. 상기 비교부(153)는 사용자 요청에 따라 AST 페어들 간의 수정, 삭제 및 추가 결과를 디스플레이(140)에 출력할 수도 있다. 이때, 비교부(153)는 수정, 삭제, 추가식별을 위하여, 해당 항목들에 대해 각기 서로 다른 색을 할당하면서, 색이 지시하는 정보를 텍스트로 제공할 수 있다. 상기 비교부(153)는 식별 결과를 작업 식별부(155)에 전달할 수 있다. 또는, 비교부(153)는 수정, 삭제, 추가를 지시하는 텍스트, 예컨대, M(modify), D(delete), A(add)를 관련 항목 또는 항목이 있었던 위치에 출력할 수 있다. The comparison unit 153 may identify a code change for Class X AST pairs, for example, AST pairs for M snapshots 30 from the AST pair generator 151 . That is, by comparing the classes of the first snapshot in a pair relationship with the classes of the second snapshot, it is possible to identify changes, for example, modification, deletion, and addition. The comparison unit 153 may output the results of correction, deletion, and addition between AST pairs on the display 140 according to a user's request. In this case, the comparator 153 may provide information indicated by the color as text while allocating different colors to the corresponding items for correction, deletion, and additional identification. The comparison unit 153 may transmit the identification result to the job identification unit 155 . Alternatively, the comparator 153 may output a text indicating correction, deletion, or addition, for example, M (modify), D (delete), or A (add) to a related item or a position where the item was.

상기 작업 식별부(155)는 비교부(153)로부터 수신한 비교 결과 예컨대, AST 페어들 간의 수정, 삭제, 추가 사항들에 대하여 작업 단위로 구분할 수 있다. 이와 관련하여, 작업 식별부(155)는 사전 정의된 알고리즘을 이용하여 AST 페어들 간의 수정(M), 삭제(D), 추가(A)에 대한 검색 빌드를 수행할 수 있다. 상기 작업 식별부(155)는 구분된 작업들에 대하여, 디스플레이(140)에 시각화하여 출력하되, 수정, 삭제, 추가된 작업들을 색 또는 텍스트를 이용하여 구분 및 시각화한 후 출력할 수 있다. 이 과정에서, 상기 작업 식별부(155)는 수정, 삭제, 추가 작업이 있는 경우, 해당 항목 검출에 대한 지정된 정보(예: 알람에 대응하는 오디오 정보 또는 텍스트나 이미지 정보 또는 화면 효과 등)를 출력할 수 있다. The job identification unit 155 may classify the comparison result received from the comparison unit 153, for example, correction, deletion, and addition between AST pairs in units of work. In this regard, the job identification unit 155 may perform a search build for modification (M), deletion (D), and addition (A) between AST pairs using a predefined algorithm. The task identification unit 155 may visualize and output the divided tasks on the display 140, but may output the corrected, deleted, or added tasks after classifying and visualizing them using color or text. In this process, when there is a correction, deletion, or addition operation, the task identification unit 155 outputs specified information (eg, audio information or text or image information corresponding to an alarm, screen effect, etc.) for detecting the corresponding item. can do.

도 3은 본 발명의 실시 예에 따른 프로그램 유지 보수 방법의 한 예를 나타낸 도면이다.3 is a diagram illustrating an example of a program maintenance method according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 실시 예에 따른 프로그램 유지 보수 방법과 관련하여, 301 단계에서, 컴퓨팅 장치(100)의 프로세서(150)는 N-1 번째 및 N 번째 스냅샷을 수집할 수 있다. 이와 관련하여, 상기 프로세서(150)는 메모리(130)에 저장된 M개의 스냅샷(30)으로부터 스냅샷들을 획득하거나, 외부 전자 장치(예: 외부 서버 장치 또는 외부 메모리 장치)로부터 M개의 스냅샷들을 획득할 수 있다. 외부 전자 장치로부터 M개의 스냅샷들을 획득하는 과정에서, 통신 인터페이스(110)를 통해 수신된 M개의 스냅샷들을 상기 메모리(130)에 임시 저장된 후, 프로세서(150)의 처리가 적용될 수 있다. Referring to FIG. 3 , in relation to the program maintenance method according to an embodiment of the present invention, in step 301 , the processor 150 of the computing device 100 may collect N-1 th and N th snapshots. . In this regard, the processor 150 obtains snapshots from the M snapshots 30 stored in the memory 130 , or obtains M snapshots from an external electronic device (eg, an external server device or an external memory device). can be obtained In the process of acquiring the M snapshots from the external electronic device, after temporarily storing the M snapshots received through the communication interface 110 in the memory 130 , the processing of the processor 150 may be applied.

303 단계에서, 상기 프로세서(150)는 Class X의 AST 페어를 생성할 수 있다. 이와 관련하여, 프로세서(150)는 이전 순서의 제1 스냅샷과 현재 순서의 제2 스냅샷 비교를 수행하면서, Java 파일의 페어를 생성하고, 클래스 페어의 AST 트리 추출 및 각 클래스 AST 트리들에 대한 페어링을 수행할 수 있다.In step 303, the processor 150 may generate a Class X AST pair. In this regard, the processor 150 generates a pair of Java files, extracts the AST tree of the class pair, and stores the class AST trees while performing the comparison of the first snapshot of the previous order and the second snapshot of the current order. pairing can be performed.

305 단계에서, 상기 프로세서(150)는 변경 사항을 식별할 수 있다. 페어링 이후 짝지어진 AST 페어(또는 Class X의 AST 페어)들을 상호 비교하여, 정보의 변경 사항 확인을 위한 식별 작업 예컨대 비교 작업을 수행할 수 있다. 307 단계에서, 상기 프로세서(150)는 식별 결과에서 변경 사항 예컨대, 수정, 삭제, 추가된 부분이 있는지 확인할 수 있다. 상기 프로세서(150)는 변경 사항들의 타입에 따라 특정 심볼(예: 수정-M, 삭제-D, 추가-A)을 할당하거나, 특정 색을 할당하거나, 또는 두 가지 분류 방법 모두를 적용할 수 있다. In step 305 , the processor 150 may identify a change. After pairing, the paired AST pairs (or AST pairs of Class X) may be compared with each other to perform an identification operation, such as a comparison operation, to confirm information change. In step 307 , the processor 150 may check whether there is a change, for example, correction, deletion, or addition in the identification result. The processor 150 may assign a specific symbol (eg, Modification-M, Delete-D, Addition-A), assign a specific color, or apply both classification methods according to the types of changes. .

변경 사항이 있는 경우, 상기 프로세서(150)는 309 단계에서 작업 단위 식별 및 출력을 수행할 수 있다. 이와 관련하여, 프로세서(150)는 사전에 마련된 알고리즘을 구동하여, Class의 각 작업들에 대한 수정, 삭제, 추가 부분을 식별할 수 있다. 식별된 정보들은 디스플레이(140)에 출력될 수 있다. 변경 사항이 없는 경우, 상기 프로세서(150)는 309 단계를 스킵할 수 있다.If there is a change, the processor 150 may identify and output the work unit in step 309 . In this regard, the processor 150 may drive a pre-prepared algorithm to identify correction, deletion, and addition parts for each task of the class. The identified information may be output to the display 140 . If there is no change, the processor 150 may skip step 309 .

다음으로, 상기 프로세서(150)는 상기 N번째 스냅샷이 마지막 스냅샷(last)인지 확인할 수 있다. 상기 N번째 스냅샷이 마지막 스냅샷인 경우, 상기 프로세서(150)는 프로그램 유지 보수와 관련한 루틴을 종료할 수 있다. 상기 N번째 스냅샷이 마지막 스냅샷이 아닌 경우, 상기 프로세서(150)는 313 단계에서 N 값을 1 증가(N에 N+1 값을 대입)시키고, 301 단계 이전으로 분기하여 이하 동작을 재수행할 수 있다. Next, the processor 150 may determine whether the N-th snapshot is the last snapshot. When the Nth snapshot is the last snapshot, the processor 150 may end a routine related to program maintenance. If the Nth snapshot is not the last snapshot, the processor 150 increments the value of N by 1 (substituting an N+1 value for N) in step 313, and branches before step 301 to re-perform the following operations. can

도 4a는 본 발명의 실시 예에 따른 프로그램 유지 보수와 관련한 시스템 운용 환경의 한 예를 나타낸 도면이며, 도 4b는 도 4a의 작업 단위 식별 정보를 확대한 도면이다.4A is a diagram illustrating an example of a system operating environment related to program maintenance according to an embodiment of the present invention, and FIG. 4B is an enlarged view of work unit identification information of FIG. 4A.

도 4a 및 도 4b를 참조하면, 본 발명의 프로그램 유지 보수와 관련하여, 컴퓨팅 장치(100)는 410 단계에서, Nth Snapshot 및 N-1th Snapshot을 획득할 수 있다. 이와 관련하여, 컴퓨팅 장치(100)의 메모리(130)는 특정 프로그램의 개발 과정에서 각 버전별 스냅샷들을 저장할 수 있다. 또는, 컴퓨팅 장치(100)는 통신 인터페이스(110)를 통하여 특정 프로그램의 개발 버전별 스냅샷들을 저장한 메모리 장치와 통신 채널을 형성하고, 상기 통신 채널을 통하여, 상기 메모리 장치로부터 상기 버전별 스냅샷들을 획득할 수 있다. 상기 메모리 장치는 상기 컴퓨팅 장치(100)와 유선 케이블 또는 무선 통신 채널을 통해 연결될 수 있다. Referring to FIGS. 4A and 4B , in relation to program maintenance according to the present invention, the computing device 100 may acquire Nth snapshots and N-1th snapshots in operation 410 . In this regard, the memory 130 of the computing device 100 may store snapshots for each version during the development of a specific program. Alternatively, the computing device 100 forms a communication channel with a memory device storing snapshots for each development version of a specific program through the communication interface 110 , and receives the version-specific snapshots from the memory device through the communication channel. can be obtained The memory device may be connected to the computing device 100 through a wired cable or a wireless communication channel.

상기 각 버전별 프로그램들이 Java 언어로 작성된 것을 가정하면, 컴퓨팅 장치(100)는 420 단계에서 Class X의 AST 페어를 생성 및 페어들 간의 비교를 수행하여 코드 변경 사항에 대한 식별을 수행할 수 있다. 이를 보다 상세히 설명하면, 상기 컴퓨팅 장치(100)는 421 단계에서, 획득된 Nth Snapshot 및 N-1th Snapshot에 대해, 비교되는 자바 파일 셋트 페어(Set of Diff Java File pair)를 생성하고, 상기 생성된 자바 파일 페어로부터 클래스 페어들의 AST 트리(Class Pair`s AST Tree)를 추출한 후, 각 클래스 AST 트리 페어링(Each Class AST Tree pairing)을 수행할 수 있다. 즉, 컴퓨팅 장치(100)는 421 단계에서, Class X의 AST 페어 생성을 위해, 자바 파일 페어, 페어들의 AST 트리 추출 및 트리들의 페어링 수행을 수행할 수 있다. 상기 컴퓨팅 장치(100)는 421 단계에서 생성된 클래스 AST 트리 페어링에 대한 결과들을 423 단계에서, 페어별로 분류 및 메모리(130)에 임시 저장할 수 있다. 상기 컴퓨팅 장치(100)는 425 단계에서, 각 클래스 X의 AST 페어들에 대한 코드 변경 사항을 식별을 위하여, 페어들 간의 비교 작업을 수행할 수 있다. Assuming that the programs for each version are written in the Java language, in step 420 , the computing device 100 may generate an AST pair of Class X and perform a comparison between the pairs to identify code changes. To explain this in more detail, in step 421 , the computing device 100 generates a set of Diff Java File pair to be compared with respect to the obtained Nth Snapshot and N-1th Snapshot, and the generated After extracting an AST tree of class pairs from a Java file pair, each class AST tree pairing may be performed. That is, in step 421 , the computing device 100 may extract an AST tree of a Java file pair and pairs and perform pairing of the trees to generate a Class X AST pair. In step 423 , the computing device 100 classifies the results of the class AST tree pairing generated in step 421 for each pair and temporarily stores it in the memory 130 . In step 425 , the computing device 100 may perform a comparison operation between the pairs in order to identify a code change for each AST pair of class X.

다음으로, 상기 컴퓨팅 장치(100)는 430 단계에서, 페어들 간의 비교 작업에 대한 결과 즉, 변경 사항이 있는 AST 페어들의 변경 타입을 결정할 수 있다. 예컨대, 상기 컴퓨팅 장치(100)는 페어들 간의 비교 결과로서, 상기 AST 페어들을 특정 정보가 수정된 페어, 특정 정보가 삭제된 페어, 특정 정보가 추가된 페어들로 분류할 수 있다. 상기 정보가 수정된 페어는 N-1 번째 스냅샷에 있는 특정 정보가 N번째 스냅샷에서 다른 정보로 대체된 경우를 포함할 수 있다. 상기 정보가 삭제된 페어는 N-1 번째 스냅샷에 있는 특정 정보가 N번째 스냅샷에서 제거된 경우를 포함할 수 있다. 상기 정보가 추가된 페어는 N-1 번째 스냅샷에 없는 특정 정보가 N번째 스냅샷에 포함된 경우를 포함할 수 있다. Next, in operation 430 , the computing device 100 may determine a result of the comparison operation between the pairs, that is, the change type of the AST pairs with the change. For example, as a result of comparison between pairs, the computing device 100 may classify the AST pairs into a pair in which specific information is modified, a pair in which specific information is deleted, and a pair in which specific information is added. The pair in which the information is modified may include a case in which specific information in the N-1 th snapshot is replaced with other information in the N th snapshot. The pair from which the information is deleted may include a case in which specific information in the N-1 th snapshot is removed from the N th snapshot. The pair to which the information is added may include a case in which specific information not in the N-1 th snapshot is included in the N th snapshot.

상기 컴퓨팅 장치(100)는 440 단계에서, 분류된 페어들에 대한 작업 단위 식별을 수행할 수 있다. 도 4b를 참조하면, 작업 단위 식별과 관련하여, 컴퓨팅 장치(100)는 알고리즘을 이용한 태스크들의 식별(Algorithm 1: Identifying Tasks)을 수행하되, 430 단계에서 분류한 AST 페어들에 대한 Task 식별을 수행할 수 있다. In operation 440 , the computing device 100 may identify work units for the classified pairs. Referring to FIG. 4B , in relation to work unit identification, the computing device 100 performs identification of tasks using an algorithm (Algorithm 1: Identifying Tasks), but performs task identification on the AST pairs classified in step 430 . can do.

작업 단위 식별을 완료한 후, 컴퓨팅 장치(100)는 450 단계에서, 각 작업별 분류 결과(예: 작업 1...작업n)를 디스플레이(140)에 출력할 수 있다. 상기 디스플레이(140)에 출력되는 작업별 분류 결과는 작업 단위 삭별 과정에서 검토된 수정, 삭제, 추가들에 대한 정보가 구분 및 시각화되어 표시될 수 있다. 예컨대, 디스플레이(140)에 출력되는 작업별 분류 결과는 색 또는 명암 등을 기반으로 수정, 삭제, 추가 사항들이 구별되어 표시될 수 있다. “삭제”의 경우, 삭제된 사항들에 대한 메모 정보로 표시될 수 도 있다.After completing the task unit identification, in step 450 , the computing device 100 may output a classification result for each task (eg, task 1 ... task n) on the display 140 . As for the task-specific classification result output on the display 140 , information on corrections, deletions, and additions reviewed in the task unit sorting process may be classified and displayed to be visualized. For example, the classification result for each task output on the display 140 may be displayed by being corrected, deleted, or added based on color or contrast. In the case of “delete”, it may be displayed as memo information about deleted items.

상술한 본 발명의 실시 예들은 AST(Abstract Syntax Tree)를 활용한 Method Attribute 요소 중심의 개발 과정 시각화 방식을 사용하여 직관성을 높이며 별도의 System Build 없이도 정적분석을 활용한 방식으로 개발의 과정을 보여줌으로써 각 Version마다 어떠한 작업이 수행 되었는지를 보여줄 수 있다.The above-described embodiments of the present invention increase intuition by using the method attribute element-centered development process visualization method using AST (Abstract Syntax Tree), and show the development process in a manner utilizing static analysis without a separate system build. It can show what kind of work was performed for each version.

한편, 본 명세서와 도면에 개시된 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게는 자명한 것이다.On the other hand, the embodiments disclosed in the present specification and drawings are merely presented as specific examples to aid understanding, and are not intended to limit the scope of the present invention. It is obvious to those of ordinary skill in the art to which the present invention pertains that other modifications based on the technical spirit of the present invention can be implemented in addition to the embodiments disclosed herein.

100: 컴퓨팅 장치
110: 통신 인터페이스
130: 메모리
140: 디스플레이
150: 프로세서
151: AST 페어 생성부
153: 비교부
155: 작업 식별부
100: computing device
110: communication interface
130: memory
140: display
150: processor
151: AST pair generator
153: comparison unit
155: job identification unit

Claims (10)

M개의 스냅샷들을 포함한 소스 코드 히스토리를 저장하는 메모리;
디스플레이;
상기 메모리 및 상기 디스플레이와 기능적으로 연결되는 프로세서;를 포함하고,
상기 프로세서는
상기 메모리에 저장된 소스 코드 히스토리의 M개의 스냅샷들 중 n(n은 자연수)번째 스냅샷과 n-1번째 스냅샷에 대한 클래스 AST 페어링을 수행하고, 상기 페어링에 따른 AST 페어들 간의 비교를 수행하고,
상기 비교 결과를 기반으로 변경 사항을 식별하고,
상기 변경 사항을 작업 단위로 구분 및 시각화한 후, 상기 디스플레이에 출력하도록 설정되고,
상기 프로세서는
상기 변경 사항에 대한 확인을 통해 상기 AST 페어들의 변경 타입을 정보 수정, 정보 삭제, 정보 추가로 구분하도록 설정되되, 사전에 정의된 알고리즘을 이용하여 상기 AST 페어들 간의 수정, 삭제, 추가에 대한 검색 빌드를 수행하도록 설정되고, 상기 정보 수정, 정보 삭제, 정보 추가 중 적어도 하나를 색 또는 텍스트로 구분하여 상기 디스플레이에 출력하도록 설정된 것을 특징으로 하는 프로그램 유지 보수를 지원하는 컴퓨팅 장치.
a memory for storing source code history including M snapshots;
display;
a processor operatively connected to the memory and the display; and
the processor
Class AST pairing is performed on the n-th snapshot and the n-1th snapshot among M snapshots of the source code history stored in the memory, and comparison between AST pairs according to the pairing is performed. do,
identify changes based on the results of said comparison;
After classifying and visualizing the change in units of work, it is set to output to the display,
the processor
It is set to classify the change type of the AST pairs into information modification, information deletion, and information addition through checking the change, and searching for modification, deletion, and addition between the AST pairs using a predefined algorithm A computing device supporting program maintenance, characterized in that it is set to perform a build and is set to output on the display at least one of correcting information, deleting information, and adding information by color or text.
제1항에 있어서,
상기 프로세서는
상기 n-1 번째 스냅샷과 상기 n번째 스냅샷들 간의 비교를 수행하여 Java 파일 페어를 생성하고, 상기 Java 파일 페어로부터 클래스 페어의 AST 트리를 추출한 후, 각 클래스 AST 트리에 대한 페어링을 수행하도록 설정된 것을 특징으로 하는 프로그램 유지 보수를 지원하는 컴퓨팅 장치.
According to claim 1,
the processor
Create a Java file pair by performing comparison between the n-1 th snapshot and the n th snapshots, extract the AST tree of the class pair from the Java file pair, and perform pairing for each class AST tree A computing device supporting program maintenance, characterized in that set.
삭제delete 삭제delete 제1항에 있어서,
상기 프로세서는
상기 AST 페어의 변경 타입들에 대한 작업 단위 구분을 수행하는 과정에서 각 작업 단위들에 대한 수정, 삭제, 추가를 확인하고, 작업별로 수정, 삭제 또는 추가에 대해 구분 표시하도록 설정된 것을 특징으로 하는 프로그램 유지 보수를 지원하는 컴퓨팅 장치.
According to claim 1,
the processor
A program characterized in that it is set to confirm correction, deletion, and addition of each work unit in the process of classifying work units for the change types of the AST pair, and to display the correction, deletion or addition separately for each task Computing devices that support maintenance.
프로그램 유지 보수 방법에 있어서,
메모리에 저장된 소스 코드 히스토리의 M개의 스냅샷들 중 n(n은 자연수)번째 스냅샷과 n-1번째 스냅샷을 획득하는 단계;
상기 n번째 스냅샷과 n-1번째 스냅샷에 대한 클래스 AST 페어링을 수행하는 단계;
상기 페어링에 따른 AST 페어들 간의 비교를 수행하는 단계;
상기 비교 결과를 기반으로 변경 사항을 식별하는 단계;
상기 변경 사항을 작업 단위로 구분 및 시각화한 후, 디스플레이에 출력하는 단계;를 포함하고,
상기 식별하는 단계는
상기 변경 사항에 대한 확인을 통해 상기 AST 페어들의 변경 타입을 정보 수정, 정보 삭제, 정보 추가로 구분하되, 사전에 정의된 알고리즘을 이용하여 상기 AST 페어들 간의 수정, 삭제, 추가에 대한 검색 빌드를 수행하는 단계;를 포함하고,
상기 정보 수정, 정보 삭제, 정보 추가 중 적어도 하나를 색 또는 텍스트로 구분하여 상기 디스플레이 출력하는 단계;를 더 포함하는 것을 특징으로 하는 프로그램 유지 보수 방법.
A program maintenance method comprising:
obtaining an n-th snapshot and an n-1 th snapshot among M snapshots of a source code history stored in a memory;
performing class AST pairing for the nth snapshot and the n−1th snapshot;
performing comparison between AST pairs according to the pairing;
identifying a change based on the comparison result;
After classifying and visualizing the changes in units of work, outputting them on a display;
The step of identifying
Through the confirmation of the change, the change type of the AST pairs is divided into information modification, information deletion, and information addition, but using a predefined algorithm, a search build for modification, deletion, and addition between the AST pairs is performed. Including;
and outputting the display by classifying at least one of the information correction, information deletion, and information addition by color or text.
제6항에 있어서,
상기 AST 페어링을 수행하는 단계는
상기 n-1 번째 스냅샷과 상기 n번째 스냅샷들 간의 비교를 수행하여 Java 파일 페어를 생성하는 단계;
상기 Java 파일 페어로부터 클래스 페어의 AST 트리를 추출하는 단계;
각 클래스 AST 트리에 대한 페어링을 수행하는 단계;를 포함하는 것을 특징으로 하는 프로그램 유지 보수 방법.
7. The method of claim 6,
The step of performing the AST pairing is
generating a Java file pair by performing comparison between the n-1 th snapshot and the n th snapshots;
extracting an AST tree of a class pair from the Java file pair;
A program maintenance method comprising a; performing pairing for each class AST tree.
삭제delete 삭제delete 제6항에 있어서,
상기 출력하는 단계는
상기 AST 페어의 변경 타입들에 대한 작업 단위 구분을 수행하는 과정에서 각 작업 단위들에 대한 수정, 삭제, 추가를 확인하고, 작업별로 수정, 삭제 또는 추가에 대해 구분 표시하는 단계;를 포함하는 것을 특징으로 하는 프로그램 유지 보수 방법.
7. The method of claim 6,
The output step is
In the process of classifying the work units for the change types of the AST pair, confirming correction, deletion, and addition of each work unit, and displaying the correction, deletion, or addition for each work separately; A program maintenance method characterized.
KR1020200153987A 2020-11-17 2020-11-17 Method for maintenance for program and computing device supporting the same KR102422972B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200153987A KR102422972B1 (en) 2020-11-17 2020-11-17 Method for maintenance for program and computing device supporting the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200153987A KR102422972B1 (en) 2020-11-17 2020-11-17 Method for maintenance for program and computing device supporting the same

Publications (2)

Publication Number Publication Date
KR20220067366A KR20220067366A (en) 2022-05-24
KR102422972B1 true KR102422972B1 (en) 2022-07-19

Family

ID=81805558

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200153987A KR102422972B1 (en) 2020-11-17 2020-11-17 Method for maintenance for program and computing device supporting the same

Country Status (1)

Country Link
KR (1) KR102422972B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019160284A (en) * 2018-03-08 2019-09-19 富士通株式会社 Representing software using abstract code graph

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000039608A (en) * 1998-12-15 2000-07-05 이계철 Method and apparatus for forming protocol using abstract syntax notation
KR20050065015A (en) * 2003-12-24 2005-06-29 (주) 뉴스텍시스템즈 System and method for checking program plagiarism
KR100777103B1 (en) * 2005-08-19 2007-11-19 한국전자통신연구원 Apparatus and method for generation of test driver
KR20200080704A (en) 2018-12-27 2020-07-07 주식회사넥싸이트 Debuging device displaying diagnosis code of computer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019160284A (en) * 2018-03-08 2019-09-19 富士通株式会社 Representing software using abstract code graph

Also Published As

Publication number Publication date
KR20220067366A (en) 2022-05-24

Similar Documents

Publication Publication Date Title
US10354225B2 (en) Method and system for process automation in computing
US9298453B2 (en) Source code analytics platform using program analysis and information retrieval
US8875104B2 (en) Efficiently developing software using test cases to check the conformity of the software to the requirements
US20160357519A1 (en) Natural Language Engine for Coding and Debugging
US9262132B1 (en) Incremental local source code analysis
US7765535B2 (en) Software development tool program
US9424116B2 (en) Program development in a distributed server environment
EP3314409B1 (en) Tracing dependencies between development artifacts in a software development project
US9348561B2 (en) Tabular format transaction editor
US10678864B2 (en) Analysis model preparing system, programming apparatus, and analysis model preparing method
JP2013152730A (en) Plasma processing system component analysis software and method and system for creating the same
KR102422972B1 (en) Method for maintenance for program and computing device supporting the same
JP6866270B2 (en) SQL statement extraction device, SQL statement extraction method and program
US10310958B2 (en) Recording medium recording analysis program, analysis method, and analysis apparatus
JP5758311B2 (en) Test code generation device, test code generation method, test code generation program
CN108885574B (en) System for monitoring and reporting performance and correctness issues at design, compilation, and runtime
JP6551082B2 (en) Test support apparatus, test support method, and test support program
CN114356783A (en) Method and device for automatically generating unit test code, storage medium and equipment
US9268675B2 (en) Computerized system and method for auditing software code
Muhamad et al. Visual GUI testing in continuous integration environment
JP4983027B2 (en) Check program and check method
Gerdes Developing applications to automatically grade introductory visual basic courses
JP2018116517A (en) Development support device, development support method, and program
JP2017054453A (en) Analysis program, analysis method, and analysis device
US20150220310A1 (en) Object field optimization

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant