KR20200072657A - System for building software of combat system - Google Patents

System for building software of combat system Download PDF

Info

Publication number
KR20200072657A
KR20200072657A KR1020180160471A KR20180160471A KR20200072657A KR 20200072657 A KR20200072657 A KR 20200072657A KR 1020180160471 A KR1020180160471 A KR 1020180160471A KR 20180160471 A KR20180160471 A KR 20180160471A KR 20200072657 A KR20200072657 A KR 20200072657A
Authority
KR
South Korea
Prior art keywords
build
component
time
system software
unit
Prior art date
Application number
KR1020180160471A
Other languages
Korean (ko)
Other versions
KR102157843B1 (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 KR1020180160471A priority Critical patent/KR102157843B1/en
Publication of KR20200072657A publication Critical patent/KR20200072657A/en
Application granted granted Critical
Publication of KR102157843B1 publication Critical patent/KR102157843B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms

Landscapes

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

Abstract

The present invention relates to a combat system software build system. More specifically, the present invention relates to the combat system software build wherein a build time is estimated for each component, and a build work is executed by arranging a work order based on the estimated build time. The combat system software build system includes an estimation unit, an arrangement unit, and an execution unit.

Description

전투체계 소프트웨어 빌드 시스템{SYSTEM FOR BUILDING SOFTWARE OF COMBAT SYSTEM}Battle system software build system {SYSTEM FOR BUILDING SOFTWARE OF COMBAT SYSTEM}

본 발명은 소프트웨어 빌드 시스템에 관한 것으로, 좀 더 구체적으로는 함정 등의 전투체계 소프트웨어의 빌드 시스템에 관한 것이며, 보다 상세하게는 전투체계 소프트웨어를 빌드하기 위해 각 컴포넌트의 빌드 소요 시간을 예측하고 빌드 순서를 최적화하여 빌드 작업에 소요되는 시간을 단축할 수 있도록 하기 위한 소프트웨어 빌드 시스템에 관한 것이다.The present invention relates to a software build system, and more specifically, to a build system of combat system software such as a trap, and more specifically, to predict the build time of each component to build the combat system software and build order It relates to a software build system for optimizing to shorten the time required for a build operation.

소프트웨어 개발자가 특정 프로그램 언어의 문법에 맞춰 작성하여 소프트웨어 원본 소스를 완성하면, 이후 상기 원본 소스를 실제 구동 환경에서 동작되는 실행 소스로 변경할 필요가 있다. 이와 같이, 상기 원본 소스를 상기 실행 소스로 변경되는 것을 소프트웨어 빌드(software build)라고 한다.When a software developer writes in accordance with the syntax of a specific programming language and completes the original software source, it is necessary to change the original source to an execution source that is operated in an actual driving environment. In this way, changing the original source to the execution source is called a software build.

소프트웨어 개발은 개발하고자 하는 소프트웨어가 단순한 기능을 가질 경우, 한 두 사람의 개발자에 의해 이루어질 수 있다. 그러나, 개발하고자 하는 소프트웨어가 방대하고 다양한 기능을 가질 경우에는, 복수의 개발자들이 각 기능별 또는 각 분야별로 나눠서 소스를 작성할 수밖에 없다. 따라서, 이러한 복수의 개발자들에 의한 소프트웨어의 개발은 각 개발자가 개발한 소스들을 합성한 이후, 소프트웨어 빌드가 이루어질 수 있다.Software development can be done by one or two developers if the software to be developed has simple functions. However, when the software to be developed has a large variety of functions, a plurality of developers are forced to write the source by dividing each function or each field. Accordingly, software development by a plurality of developers may be performed after synthesizing the sources developed by each developer and then building the software.

또한, 이미 개발한 소프트웨어는 기존 소스의 일부 내용이 변경될 수도 있다. 이와 같이, 기존 소스의 일부 내용이 변경될 경우, 변경된 내용을 포함하는 전체 소스로 다시 소프트웨어 빌드를 수행하여야 한다.In addition, some contents of the existing source may be changed in already developed software. As described above, when some contents of the existing source are changed, the software build must be performed again with the entire source including the changed contents.

기존의 빌드 시스템은 소프트웨어 빌드의 범용적 사용을 위해 개발되었기 때문에 빌드 수행에 필요한 상세한 사전 정보를 모두 사용자가 텍스트 기반으로 입력해야 하기에 작업이 비효율적으로 수행되었다.Since the existing build system was developed for the general use of software build, the operation was performed inefficiently because the user had to input all the detailed dictionary information necessary to perform the build based on text.

또한, 순차적으로 각 소프트웨어 컴포넌트를 빌드하기 때문에 전투체계 소프트웨어와 같이 규모가 큰 소프트웨어의 빌드에는 상당 시간 소요되기에 업무 효율성이 떨어진다는 문제점이 있다.In addition, since each software component is sequentially built, it takes a considerable amount of time to build a large software such as combat system software, so there is a problem in that work efficiency is reduced.

따라서, 전투 체계 소프트웨어와 같이 규모가 큰 소프트웨어를 빌드하는 경우에도 빌드 소요 시간을 예측하여 빌드 순서를 최적화할 수 있도록 하는 기술이 개발될 필요가 있다.Therefore, even when building large-scale software such as combat system software, there is a need to develop a technology to predict the build time and optimize the build order.

따라서, 본 발명은 상기한 바와 같은 문제점을 해결하기 위하여 제안된 것으로, 전투 체계 소프트웨어와 같이 규모가 큰 소프트웨어를 빌드하는 경우에도 각 컴포넌트의 빌드 소요 시간을 예측하여 빌드 순서를 최적화할 수 있도록 하는 소프트웨어 빌드 시스템을 제공함에 있다.Therefore, the present invention has been proposed to solve the above-described problems, and even when building large-scale software such as combat system software, software to optimize the build order by predicting the build time of each component. Providing a build system.

또한, 본 발명은 빌드 소요 시간을 예측하여 빌드 시간이 가장 오래 소요되는 컴포넌트부터 빌드 순서를 배치함으로써 프로세스의 유휴시간을 줄여 전체적인 빌드 소요 시간을 단축시킬 수 있도록 하는 소프트웨어 빌드 시스템을 제공함에 있다.In addition, the present invention is to provide a software build system that can reduce the overall build time by reducing the idle time of the process by arranging the build order from the component that takes the longest build time by predicting the build time.

본 발명의 목적은 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.The objects of the present invention are not limited to those mentioned above, and other objects not mentioned will be clearly understood by those skilled in the art from the following description.

본 발명에 따른 전투체계 소프트웨어 빌드 시스템은, 각 컴포넌트에 대한 빌드 소요 시간을 예측하는 예측부; 상기 예측된 빌드 소요 시간을 기반으로 작업 순서를 배치하는 배치부; 및 상기 배치된 작업 순서를 기반으로 빌드 작업을 수행하는 수행부를 포함한다.The combat system software build system according to the present invention includes a prediction unit for predicting a build time for each component; A placement unit for arranging a work order based on the estimated build time; And an execution unit performing a build operation based on the arranged operation order.

또한, 본 발명에 따른 전투체계 소프트웨어 빌드 시스템은, 각 컴포넌트에 대한 빌드 소요 시간을 예측하는 예측부; 상기 예측된 빌드 소요 시간을 기반으로 작업 순서를 배치하는 배치부; 및 상기 배치된 작업 순서를 기반으로 빌드 작업을 수행하는 수행부를 포함한다.In addition, the battle system software build system according to the present invention, the prediction unit for predicting the build time for each component; A placement unit for arranging a work order based on the estimated build time; And an execution unit performing a build operation based on the arranged operation order.

또한, 본 발명에 따른 전투체계 소프트웨어 빌드 시스템은, 각 컴포넌트에 대해 반복적으로 진행된 빌드 작업에 소요된 시간의 평균값을 상기 각 컴포넌트에 대한 빌드 소요 시간을 예측하는 예측부; 상기 예측된 각 컴포넌트에 대한 빌드 소요 시간을 기반으로 작업 순서를 배치하는 배치부; 및 상기 배치된 작업 순서에 따라 각 컴포넌트에 대한 빌드 작업을 수행하는 수행부를 포함한다.In addition, the battle system software build system according to the present invention includes: a prediction unit for predicting a build time for each component by an average value of time required for repetitive build operations for each component; A placement unit for arranging a work order based on a build time for each of the predicted components; And an execution unit performing a build operation for each component according to the arranged operation order.

또한, 본 발명에 따른 전투체계 소프트웨어 빌드 시스템은, 각 컴포넌트에 대해 반복적으로 진행된 빌드 작업에 소요된 시간의 평균값을 상기 각 컴포넌트에 대한 빌드 소요 시간을 예측하는 예측부; 상기 예측된 각 컴포넌트에 대한 빌드 소요 시간을 기반으로 작업 순서를 배치하는 배치부; 및 상기 배치된 작업 순서에 따라 각 컴포넌트에 대한 빌드 작업을 수행하는 수행부를 포함하며, 상기 예측부는 상기 각 컴포넌트에 대해 반복적으로 진행된 빌드 작업에 소요된 시간을 수집하는 수집부; 및 상기 예측된 빌드 소요 시간을 기반으로 잔여 빌드 시간을 산출하는 산출부는 포함하고, 상기 배치부는 상기 예측된 각 컴포넌트에 대한 빌드 소요 시간을 내림차순으로 정렬하는 정렬부를 포함한다.In addition, the battle system software build system according to the present invention includes: a prediction unit for predicting a build time for each component by an average value of time required for repetitive build operations for each component; A placement unit for arranging a work order based on a build time for each of the predicted components; And a performing unit performing a build operation for each component according to the arranged work order, wherein the prediction unit collects a time spent in a build operation repeatedly performed for each component; And a calculator configured to calculate a remaining build time based on the predicted build time, and the placement unit includes an alignment unit to sort the build time for each predicted component in descending order.

본 발명에 의하면, 전투 체계 소프트웨어와 같이 규모가 큰 소프트웨어를 빌드하는 경우에도 각 컴포넌트의 빌드 소요 시간을 예측하여 빌드 순서를 최적화할 수 있다.According to the present invention, even when building large software such as combat system software, it is possible to optimize the build order by predicting the build time of each component.

또한, 본 발명에 의하면, 빌드 소요 시간을 예측하여 빌드 시간이 가장 오래 소요되는 컴포넌트부터 빌드 순서를 배치함으로써 프로세스의 유휴시간을 줄여 전체적인 빌드 소요 시간을 단축시킬 수 있다.In addition, according to the present invention, it is possible to shorten the overall build time by reducing the idle time of the process by arranging the build order from the component that takes the longest build time by predicting the build time.

본 발명의 효과는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.The effects of the present invention are not limited to those mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.

도 1은 본 발명의 실시예에 따른 전투체계 소프트웨어 빌드 시스템을 나타내기 위한 블록도이다.
도 2는 본 발명의 실시예에 따른 전투체계 소프트웨어 빌드 방법을 나타내기 위한 순서도이다.
도 3은 본 발명의 실시예에 따른 컴포넌트 배치의 일 예를 나타내기 위한 도면이다.
도 4a는 종래의 텍스트 기반 상용 CI 도구의 일 예를 나타내는 도면이다.
도 4b는 본 발명의 실시예에 따른 전투체계 전용 CI의 일 예를 나타내는 도면이다.
1 is a block diagram illustrating a combat system software build system according to an embodiment of the present invention.
2 is a flowchart illustrating a method of building a battle system software according to an embodiment of the present invention.
3 is a view for showing an example of component arrangement according to an embodiment of the present invention.
4A is a diagram illustrating an example of a conventional text-based commercial CI tool.
4B is a diagram illustrating an example of a CI dedicated to a combat system according to an embodiment of the present invention.

본 발명의 목적 및 효과, 그리고 그것들을 달성하기 위한 기술적 구성들은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기증을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. The objectives and effects of the present invention, and technical configurations for achieving them, will be clarified with reference to embodiments described below in detail together with the accompanying drawings. In describing the present invention, when it is determined that a detailed description of known functions or configurations may unnecessarily obscure the subject matter of the present invention, the detailed description will be omitted. In addition, terms to be described later are terms defined in consideration of donations in the present invention, which may vary according to a user's or operator's intention or practice.

그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms. Only the present examples are provided to make the disclosure of the present invention complete, and to fully inform the person of ordinary skill in the art to which the present invention pertains, the scope of the invention being defined by the scope of the claims. It just works. Therefore, the definition should be made based on the contents throughout this specification.

한편, 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 부재를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 구비할 수 있다는 것을 의미한다.On the other hand, in the entire specification, when a part is "connected" with another part, it is not only "directly connected" but also "indirectly connected" with another member in between. Includes. Also, when a part “includes” a certain component, this means that other components may be further provided instead of excluding other components, unless otherwise stated.

본 발명은 소프트웨어를 빌드하기 위해 각 컴포넌트의 빌드 소요 시간을 예측하고, 예측된 빌드 소요 시간 중 가장 오래 소요되는 컴포넌트부터 빌드하도록 빌드 순서를 배치함으로써 빌드 순서를 최적화하기 위한 것이다.The present invention is to optimize the build order by predicting the build time of each component in order to build the software and arranging the build order to build the component that takes the longest of the predicted build time.

함장 전투체계 소프트웨어를 일 예로 설명하면, 함장 전투체계는 전장 환경에서 함정의 다양한 센서로부터 정보를 수집하여 각 상황에 맞는 최적의 의사 판단 및 무장 사용에 이르기까지 자동화되는 시스템을 갖는데, 이러한 특성에 따라 다양한 센서 정보 습득, 무장 통제, 상황 판단에 필요한 알고리즘들을 소프트웨어로 구현하기 위해 다양한 컴포넌트로 구성되기 때문에 수백여 개의 기능적으로 구분되는 소프트웨어 컴포넌트가 존재한다.The commander's battle system software, as an example, has a system that automatically collects information from the various sensors of the ship in the battlefield environment and optimizes it to the best decision and armed use for each situation. Hundreds of functionally divided software components exist because they are composed of various components in order to implement algorithms necessary for acquiring various sensor information, controlling armament, and determining situations with software.

각 컴포넌트의 개발 과정은 각 시험 단계별 여러 차례 소스코드가 수정되며, 그 수정된 소스코드는 빌드 작업을 통해 시험환경 탑재, 회귀 시험 등을 통해 진행된다.In the development process of each component, the source code is modified several times for each test step, and the modified source code is progressed through a test environment, a regression test, etc. through a build operation.

이러한 개발 프로세스 중 수정된 소스코드를 다시 빌드하여 컴포넌트를 생성하는 과정에서 상당한 시간이 소요되기 때문에, 빌드 과정을 효율화하여 빌드 소요 시간을 단축시키면 소스코드 수정, 빌드, 시험 순으로 진행되는 개발 과정의 주기가 단축될 수 있다. 아울러, 그 단축된 시간만큼 추가적인 시험을 통해 소프트웨어 완성도 향상에 도움이 될 수 있다. Since it takes a considerable amount of time to rebuild the modified source code during the development process to create components, if you shorten the build time by streamlining the build process, the development process in the order of source code modification, build, and test The cycle can be shortened. In addition, it can help improve software completeness through additional tests for a shorter time.

이러한 빌드 자동화 소프트웨어 도구를 CI(Continuous Integration) 도구라 지칭하며, TRAC, JENKINS, JIRA 등 다양한 오픈소스, 상용 제품이 존재한다.These build automation software tools are called CI (Continuous Integration) tools, and there are various open source, commercial products such as TRAC, JENKINS, and JIRA.

그러나, 이 함정 전투 체계 소프트웨어와 같이 규모가 큰 소프트웨어는 그 특수성에 의해 기존의 CI 도구를 적용하기에는 어려움이 있다.However, large-scale software such as this trap combat system software has difficulty in applying existing CI tools due to its specificity.

따라서, 본 발명에 따른 CI 도구를 적용하여 규모가 큰 소프트웨어를 빌드한다면, 빌드 작업에 소요되는 시간을 단축시킬 수 있을 것이다.Therefore, if a large software is built by applying the CI tool according to the present invention, the time required for the build operation may be reduced.

이하에서는 본 발명의 실시예에 따른 전투체계 소프트웨어 빌드 방법 및 시스템에 대해 첨부된 도면을 참고하여 구체적으로 설명하기로 한다.Hereinafter, a method and system for building a battle system software according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 전투체계 소프트웨어 빌드 시스템을 나타내기 위한 블록도이다.1 is a block diagram illustrating a combat system software build system according to an embodiment of the present invention.

도 1을 참조하면, 전투체계 소프트웨어 빌드 시스템(100)은 예측부(110), 배치부(130) 및 수행부(150)를 포함한다.Referring to FIG. 1, the combat system software build system 100 includes a prediction unit 110, a deployment unit 130, and a performance unit 150.

예측부(110)는 컴포넌트의 빌드에 소요되는 시간, 즉, 빌드 소요 시간을 예측한다. The prediction unit 110 predicts a time required to build the component, that is, a build time.

이 예측부(110)는 수집부(111) 및 산출부(113)를 포함하는데, 수집부(111)는 개발 과정에서 컴포넌트의 빌드가 반복적으로 진행될 때마다 그 빌드에 소요된 빌드 소요 시간을 측정하여 수집한다. 이때, 수집된 빌드 소요 시간의 평균값을 해당 컴포넌트의 다음 빌드 소요 시간으로 예측한다. 즉, 개발 과정에서 컴포넌트에 대해 반복적으로 진행되는 빌드에 소요된 빌드 소요 시간을 각각 수집하고, 그 평균값을 산출하여 해당 컴포넌트의 다음 빌드 소요 시간에 대한 예측값으로 결정한다.The prediction unit 110 includes a collection unit 111 and a calculation unit 113. The collection unit 111 measures the build time required for the build whenever the component is repeatedly built during the development process. To collect. At this time, the average value of the collected build time is predicted as the next build time of the component. That is, in the development process, it collects each build time spent on repeatedly building for components, calculates the average value, and determines the predicted value for the next build time of the component.

단, 빌드를 진행하는 시점에 하드웨어 자원의 사용량에 따라 빌드에 소요되는 시간에 차이가 발생할 수 있기 때문에, 보정상수를 적절히 결정하여 실제 빌드에 소요되는 시간과 예측값의 차이를 줄여준다.However, since a difference may occur in the time required for the build depending on the usage of hardware resources at the time of the build, the correction constant is appropriately determined to reduce the difference between the actual build time and the predicted value.

이때, 보정상수는 경험적 결과치를 토대로 하기 <수학식 1>과 같이 나타낼 수 있다.At this time, the correction constant can be expressed as Equation 1 below based on empirical results.

<수학식 1><Equation 1>

보정상수 = (1 + CPU 사용률) × 0.7Correction constant = (1 + CPU utilization) × 0.7

이로써, 빌드에 소요되는 시간, 즉 빌드 소요 시간은 하기 <수학식 2>와 같이 나타낼 수 있다.Thus, the time required for the build, that is, the build time can be expressed as <Equation 2> below.

<수학식 2><Equation 2>

빌드 소요 시간 = (빌드 종료 시각 - 빌드 시작 시각) × 보정상수Build time = (build end time-build start time) × correction constant

한편, 산출부(113)는 예측된 해당 컴포넌트의 다음 빌드 소요 시간에서 현재 빌드에 소요된 시간을 차감하여 해당 컴포넌트의 잔여 빌드 시간을 산출한다.Meanwhile, the calculation unit 113 calculates the remaining build time of the corresponding component by subtracting the time spent in the current build from the predicted next build time of the corresponding component.

즉, 잔여 빌드 시간은 하기 <수학식 3>과 같이 나타낼 수 있다.That is, the remaining build time can be expressed as <Equation 3> below.

<수학식 3><Equation 3>

잔여 빌드 시간 = 평균 빌드 소요 시간 - (현재시각 - 빌드 시작 시각)Remaining build time = Average build time-(Current time-Build start time)

여기서, 해당 컴포넌트의 빌드 도구는 웹기반 도구로써, 사용자가 사용하는 웹브라우저를 통해 빌드에 소요된 시간, 잔여 빌드 시간 등을 표시할 수 있다.Here, the build tool of the component is a web-based tool, and can display the time spent for build, the remaining build time, etc. through the web browser used by the user.

배치부(130)는 예측부(110)에 의해 예측된 각각의 컴포넌트에 대한 빌드 소요 시간을 기반으로 빌드 순서를 배치한다.The placement unit 130 arranges a build order based on a build time required for each component predicted by the prediction unit 110.

여기서, 배치부(130)는 정렬부(131)를 포함하며, 정렬부(131)가 예측부(110)에 의해 예측된 각각의 컴포넌트에 대한 빌드 소요 시간을 내림차순으로 정렬하면, 배치부(130)는 그 정렬 순서를 기반으로 빌드 작업 순서를 배치하는 것이다. 즉, 빌드에 소요되는 시간이 길수록 우선적으로 배치하여 프로세스의 유휴시간을 감소시켜 전체적인 빌드 소요 시간을 단축시킬 수 있도록 한다.Here, the placement unit 130 includes an alignment unit 131, and if the alignment unit 131 sorts the build time required for each component predicted by the prediction unit 110 in descending order, the placement unit 130 ) Places the build work order based on that sort order. That is, the longer the build time is, the more preferentially it is placed to reduce the idle time of the process so that the overall build time can be shortened.

수행부(150)는 배치부(130)에 의해 배치된 빌드 작업 순서를 기반으로 각 컴포넌트의 빌드를 수행한다.The execution unit 150 builds each component based on the build work order arranged by the placement unit 130.

도 2는 본 발명의 실시예에 따른 전투체계 소프트웨어 빌드 방법을 나타내기 위한 순서도이다.2 is a flowchart illustrating a method of building a battle system software according to an embodiment of the present invention.

먼저, 반복적으로 진행되는 컴포넌트의 빌드 소요 시간을 수집하고, 그 수집된 빌드 소요 시간의 평균값을 해당 컴포넌트의 다음 빌드 소요 시간으로 예측한다. First, it collects the time required to build a component repeatedly, and predicts the average value of the collected time required to build the next component.

예측부(110)는 이러한 방식으로 각 컴포넌트의 빌드 소요 시간을 예측하고(S201), 배치부(130)는 예측된 각 컴포넌트의 빌드 소요 시간을 내림차순 정렬한다(S203).The prediction unit 110 predicts the build time of each component in this manner (S201), and the arrangement unit 130 sorts the predicted build time of each component in descending order (S203).

또한, 배치부(130)는 그 정렬 순서를 기반으로 빌드 작업 순서를 배치하고(S205), 수행부(150)는 배치된 빌드 작업 순서를 기반으로 각 컴포넌트의 빌드를 수행한다(S207).In addition, the placement unit 130 arranges the build work order based on the sort order (S205), and the execution unit 150 builds each component based on the deployed build work order (S207).

도 3은 본 발명의 실시예에 따른 컴포넌트 배치의 일 예를 나타내기 위한 도면으로, 각기 다른 빌드 소요 시간을 갖는 컴포넌트(C1 내지 C6)들을 빌드하는 과정에서 각 컴포넌트를 배치한 순서에 따라 전체 빌드 작업에 소요되는 시간에 차이가 발생할 수 있음을 나타낸 것이다.3 is a view for showing an example of component arrangement according to an embodiment of the present invention, in the process of building components (C1 to C6) having different build times, the entire build according to the order in which each component is placed This indicates that a difference may occur in the time required for the operation.

도 3을 참조하면, 제1 빌드 작업 프로세스(310) 및 제2 빌드 작업 프로세스(330)는 각 컴포넌트를 빌드 작업을 수행하기 위한 작업 순서를 상이하게 배치하였으며, 빌드 작업이 수행 완료되는 시간 또한 t 및 t'로 서로 상이하다.Referring to FIG. 3, the first build work process 310 and the second build work process 330 arrange the work order for each component to perform a build work differently, and the time when the build work is completed is also t And t'.

구체적으로, 제1 빌드 작업 프로세스(310)는 두 개의 프로세스 P1 및 P2에 작업을 할당하여 빌드 작업을 수행하였으며, 가장 마지막으로 빌드 작업이 수행 완료되는 C5 컴포넌트의 빌드 종료 시점인 t만큼 전체 빌드 작업에 시간이 소요된다.Specifically, the first build work process 310 performed a build operation by allocating tasks to two processes P1 and P2, and finally, as much as t, which is the end of build of the C5 component where the build operation is completed, is completed. It takes time.

한편, 제2 빌드 작업 프로세스(330)는 동일한 두 개의 프로세스 P1'및 P2'에 작업을 할당하여 빌드 작업을 수행하였으며, 빌드 작업에 시간이 가장 많이 소요되는 C5 컴포넌트를 먼저 배치함에 따라 C2 컴포넌트의 빌드 종료 시점인 t'만큼 전체 빌드 작업에 시간이 소요된다.On the other hand, the second build work process 330 allocates work to the same two processes P1' and P2' to perform the build work, and as the C5 component that takes the most time to build is placed first, the C2 component It takes time for the entire build operation as much as t'at the end of the build.

제1 빌드 작업 프로세스(310)에 비해 제2 빌드 작업 프로세스(330)가 상대적으로 더 빠르게 빌드 작업을 수행 완료하였으며, 이는 제1 빌드 작업 프로세스(310)이 비효율적으로 빌드 작업의 순서를 배치하였기 때문이다. 즉, 제1 빌드 작업 프로세스(310)의 유휴시간이 제2 빌드 작업 프로세스(330)의 유휴시간 보다 상당히 크기 때문이다.Compared to the first build work process 310, the second build work process 330 completed the build operation relatively quickly, because the first build work process 310 inefficiently arranged the order of the build work. to be. That is, the idle time of the first build work process 310 is significantly larger than the idle time of the second build work process 330.

도 4a는 종래의 텍스트 기반 상용 CI 도구의 일 예를 나타내는 도면이고, 도 4b는 본 발명의 실시예에 따른 전투체계 전용 CI 도구의 일 예를 나타내는 도면이다.4A is a diagram illustrating an example of a conventional text-based commercial CI tool, and FIG. 4B is a diagram illustrating an example of a CI tool dedicated to a combat system according to an embodiment of the present invention.

종래의 전투체계 소프트웨어 빌드 시스템은 사용자가 소프트웨어 컴포넌트 빌드를 위한 사전 정의된 정보를 도 4a에 도시된 텍스트 기반 사용 CI 도구를 통해 텍스트로 모두 입력하여 서버에 등록한 후, 전투체계 소프트웨어 빌드가 필요한 조건(코드 갱신, 사용자 요청 등)에 따라 자동으로 빌드 작업을 수행하고, 그 결과를 제공한다. 이 빌드를 위한 사전 정의된 정보는 소프트웨어의 저장소 위치, 소프트웨어가 빌드되어야 할 플랫폼 정보, 빌드 수행을 위한 명령어 등으로 다양하며, 사용자가 빌드하고자 하는 컴포넌트별로 직접 정의하도록 구성된다.In the conventional battle system software build system, after the user inputs all predefined information for the software component build in text through the text-based use CI tool shown in FIG. 4A and registers it with the server, the battle system software build condition is required ( Code update, user request, etc.) are performed automatically and the result is provided. The pre-defined information for this build varies with the storage location of the software, platform information on which the software should be built, and commands for performing the build, and is configured to directly define for each component the user wants to build.

이와 같이, 종래의 전투체계 소프트웨어 빌드 시스템은 빌드 환경의 물리적 성능 제한사항에 따라 빌드하고자 하는 소프트웨어의 규모에 비례하여 빌드 작업에 소요되는 시간이 증가하게 되는 것이다.As such, the conventional battle system software build system increases the time required for the build operation in proportion to the size of software to be built according to the physical performance limitations of the build environment.

한편, 본 발명에 따른 전투체계 소프트웨어 빌드 시스템은 빌드 작업 절차 정의를 간소화함에 따라 사용자가 소프트웨어 컴포넌트 빌드를 위한 사전 정의된 정보를 텍스트로 모두 입력할 필요없이 도 4b에 도시된 바와 같이 4개의 기본 정보를 입력함에 의해 빌드 작업을 수행할 수 있도록 한다.On the other hand, as the battle system software build system according to the present invention simplifies the definition of the build operation procedure, the user does not need to input all the predefined information for the software component build as text, as shown in FIG. You can perform the build operation by entering.

도 4b를 참조하면, 본 발명의 실시예에 따른 전투체계 전용 CI 도구는 기본 정보로써, 이름(Name), 경로(Path), 플랫폼(Platform) 및 프로젝트 파일(Project File)만을 입력함에 의해 빌드 작업을 수행할 수 있다.Referring to Figure 4b, the combat system-specific CI tool according to an embodiment of the present invention is a basic information, name (Name), path (Path), platform (Platform) and project file (Project File) by entering only the build work You can do

그러나, 이는 일 실시예일 뿐, 빌드 작업 절차를 정의하기 위해 입력해야 하는 기본 정보는 필요에 따라 설정 변경이 가능하다.However, this is only an embodiment, and basic information that needs to be input to define a build operation procedure can be changed as necessary.

따라서, 본 발명은 각 컴포넌트의 빌드 작업에 소요되는 시간, 즉 빌드 소요 시간을 예측하고, 그 예측된 각각의 빌드 소요 시간을 기반으로 빌드 작업에 소요되는 시간이 긴 컴포넌트의 작업 순서를 우선적으로 배치하여 프로세스의 유휴시간을 줄이도록 함으로써 전체 빌드 작업에 소요되는 시간을 단축시킬 수 있도록 한다.Therefore, the present invention predicts the time required for the build operation of each component, that is, the build time, and preferentially arranges the work order of the component having a long time required for the build operation based on the predicted build time. By reducing the idle time of the process, it is possible to shorten the time required for the entire build operation.

본 명세서와 도면에는 본 발명의 바람직한 실시예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.In the present specification and drawings, preferred embodiments of the present invention have been disclosed, and although specific terms are used, they are merely used in a general sense to easily describe the technical contents of the present invention and to understand the present invention. It is not intended to limit the scope. It is apparent to those skilled 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.

Claims (12)

전투체계 소프트웨어 빌드 시스템에 있어서,
각 컴포넌트에 대한 빌드 소요 시간을 예측하는 예측부;
상기 예측된 빌드 소요 시간을 기반으로 작업 순서를 배치하는 배치부; 및
상기 배치된 작업 순서를 기반으로 빌드 작업을 수행하는 수행부를 포함하는 것을 특징으로 하는 전투체계 소프트웨어 빌드 시스템.
In the battle system software build system,
A prediction unit that predicts a build time required for each component;
A placement unit for arranging a work order based on the estimated build time; And
Combat system software build system, characterized in that it comprises a performing unit for performing a build operation based on the arranged work order.
제1항에 있어서,
상기 각 컴포넌트에 대한 빌드 소요 시간은,
개발 시, 상기 각 컴포넌트에 대해 반복적으로 진행된 빌드 작업에 소요된 시간의 평균값을 기반으로 산출된 것임을 특징으로 하는 전투체계 소프트웨어 빌드 방법.
According to claim 1,
Build time for each component is
When developing, the battle system software build method, characterized in that it is calculated based on the average value of the time spent repeatedly building for each component.
제1항에 있어서,
상기 작업 순서는,
상기 예측된 각 컴포넌트에 대한 빌드 소요 시간을 내림차순으로 정렬한 것임을 특징으로 하는 전투체계 소프트웨어 빌드 시스템.
According to claim 1,
The above work order,
Combat system software build system, characterized in that the build time for each predicted component is sorted in descending order.
전투체계 소프트웨어 빌드 시스템에 있어서,
각 컴포넌트에 대한 빌드 소요 시간을 예측하는 예측부;
상기 예측된 빌드 소요 시간을 기반으로 작업 순서를 배치하는 배치부; 및
상기 배치된 작업 순서를 기반으로 빌드 작업을 수행하는 수행부를 포함하는 것을 특징으로 하는 전투체계 소프트웨어 빌드 시스템.
In the battle system software build system,
A prediction unit that predicts a build time required for each component;
A placement unit for arranging a work order based on the estimated build time; And
Combat system software build system, characterized in that it comprises a performing unit for performing a build operation based on the arranged work order.
제4항에 있어서,
상기 각 컴포넌트에 대한 빌드 소요 시간은,
개발 시, 상기 각 컴포넌트에 대해 반복적으로 진행된 빌드 작업에 소요된 시간의 평균값을 기반으로 산출된 것임을 특징으로 하는 전투체계 소프트웨어 빌드 방법.
According to claim 4,
Build time for each component is
When developing, the battle system software build method, characterized in that it is calculated based on the average value of the time spent repeatedly building for each component.
제4항에 있어서,
상기 작업 순서는,
상기 예측된 각 컴포넌트에 대한 빌드 소요 시간을 내림차순으로 정렬한 것임을 특징으로 하는 전투체계 소프트웨어 빌드 시스템.
According to claim 4,
The above work order,
Combat system software build system, characterized in that the build time for each predicted component is sorted in descending order.
전투체계 소프트웨어 빌드 시스템에 있어서,
각 컴포넌트에 대해 반복적으로 진행된 빌드 작업에 소요된 시간의 평균값을 상기 각 컴포넌트에 대한 빌드 소요 시간을 예측하는 예측부;
상기 예측된 각 컴포넌트에 대한 빌드 소요 시간을 기반으로 작업 순서를 배치하는 배치부; 및
상기 배치된 작업 순서에 따라 각 컴포넌트에 대한 빌드 작업을 수행하는 수행부를 포함하는 것을 특징으로 하는 전투체계 소프트웨어 빌드 시스템.
In the battle system software build system,
A prediction unit for predicting a build time for each component by an average value of time required for repetitive build operations for each component;
A placement unit for arranging a work order based on a build time for each of the predicted components; And
And a performing unit performing a build operation for each component according to the arranged work order.
제7항에 있어서,
상기 각 컴포넌트에 대한 빌드 소요 시간을 예측은,
하드웨어 자원의 사용량에 따라 결정되는 보정상수를 고려하여 예측되는 것임을 특징으로 하는 전투체계 소프트웨어 빌드 시스템.
The method of claim 7,
Predicting the build time for each component,
Combat system software build system, characterized in that it is predicted by considering the correction constant determined according to the usage of hardware resources.
제7항에 있어서,
상기 작업 순서는,
상기 예측된 각 컴포넌트에 대한 빌드 소요 시간을 내림차순으로 정렬한 것임을 특징으로 하는 전투체계 소프트웨어 빌드 시스템.
The method of claim 7,
The above work order,
Combat system software build system, characterized in that the build time for each predicted component is sorted in descending order.
전투체계 소프트웨어 빌드 시스템에 있어서,
각 컴포넌트에 대해 반복적으로 진행된 빌드 작업에 소요된 시간의 평균값을 상기 각 컴포넌트에 대한 빌드 소요 시간을 예측하는 예측부;
상기 예측된 각 컴포넌트에 대한 빌드 소요 시간을 기반으로 작업 순서를 배치하는 배치부; 및
상기 배치된 작업 순서에 따라 각 컴포넌트에 대한 빌드 작업을 수행하는 수행부를 포함하며,
상기 예측부는 상기 각 컴포넌트에 대해 반복적으로 진행된 빌드 작업에 소요된 시간을 수집하는 수집부; 및 상기 예측된 빌드 소요 시간을 기반으로 잔여 빌드 시간을 산출하는 산출부는 포함하고,
상기 배치부는 상기 예측된 각 컴포넌트에 대한 빌드 소요 시간을 내림차순으로 정렬하는 정렬부를 포함하는 것을 특징으로 하는 전투체계 소프트웨어 빌드 시스템.
In the battle system software build system,
A prediction unit for predicting a build time for each component by an average value of time required for repetitive build operations for each component;
A placement unit for arranging a work order based on a build time for each of the predicted components; And
It includes an execution unit for performing a build operation for each component in accordance with the arranged work order,
The prediction unit is a collection unit for collecting the time required for the build operation repeatedly performed for each component; And a calculator configured to calculate the remaining build time based on the estimated build time required,
The placement unit includes a sorting unit for sorting the build time required for each of the predicted components in descending order.
제10항에 있어서,
상기 각 컴포넌트에 대한 빌드 소요 시간을 예측은,
하드웨어 자원의 사용량에 따라 결정되는 보정상수를 고려하여 예측되는 것임을 특징으로 하는 전투체계 소프트웨어 빌드 시스템.
The method of claim 10,
Predicting the build time for each component,
Combat system software build system, characterized in that it is predicted by considering the correction constant determined according to the usage of hardware resources.
제10항에 있어서,
상기 배치부는,
유휴시간이 최소가 되도록 작업순서를 배치하는 것을 특징으로 하는 전투체계 소프트웨어 빌드 시스템.
The method of claim 10,
The placement unit,
Combat system software build system, characterized in that the work order is arranged to minimize the idle time.
KR1020180160471A 2018-12-13 2018-12-13 System for building software of combat system KR102157843B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180160471A KR102157843B1 (en) 2018-12-13 2018-12-13 System for building software of combat system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180160471A KR102157843B1 (en) 2018-12-13 2018-12-13 System for building software of combat system

Publications (2)

Publication Number Publication Date
KR20200072657A true KR20200072657A (en) 2020-06-23
KR102157843B1 KR102157843B1 (en) 2020-09-21

Family

ID=71137900

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180160471A KR102157843B1 (en) 2018-12-13 2018-12-13 System for building software of combat system

Country Status (1)

Country Link
KR (1) KR102157843B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337713A (en) * 2002-05-21 2003-11-28 Hitachi Ltd Method for controlling processor
JP2004005399A (en) * 2002-04-05 2004-01-08 Sharp Corp Method and device for testing software
KR20100136774A (en) * 2009-06-19 2010-12-29 강원대학교산학협력단 Web-based hierarchical test system and method for robot software component test

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005399A (en) * 2002-04-05 2004-01-08 Sharp Corp Method and device for testing software
JP2003337713A (en) * 2002-05-21 2003-11-28 Hitachi Ltd Method for controlling processor
KR20100136774A (en) * 2009-06-19 2010-12-29 강원대학교산학협력단 Web-based hierarchical test system and method for robot software component test

Also Published As

Publication number Publication date
KR102157843B1 (en) 2020-09-21

Similar Documents

Publication Publication Date Title
EP3285170B1 (en) Application profiling job management system, program, and method
Konstantinidis et al. A quantitative roofline model for GPU kernel performance estimation using micro-benchmarks and hardware metric profiling
US8726255B2 (en) Recompiling with generic to specific replacement
EP3126971B1 (en) Program execution on heterogeneous platform
Dastgeer et al. Auto-tuning SkePU: a multi-backend skeleton programming framework for multi-GPU systems
CN102165428B (en) Software application performance enhancement
US20120324454A1 (en) Control Flow Graph Driven Operating System
CA2433996A1 (en) Software tool for heuristic search methods
Ogilvie et al. Fast automatic heuristic construction using active learning
JP6428476B2 (en) Parallelizing compilation method and parallelizing compiler
CN102736896B (en) Run-ahead approximated computations
KR102013582B1 (en) Apparatus and method for detecting error and determining corresponding position in source code of mixed mode application program source code thereof
EP2743867A1 (en) Efficient execution of human machine interface applications in a heterogeneous multiprocessor environment
Ding et al. Generalizable and interpretable learning for configuration extrapolation
CN110968320A (en) Joint compiling method and compiling system for heterogeneous hardware architecture
KR102157843B1 (en) System for building software of combat system
KR102162030B1 (en) Method for building software of combat system
WO2013165460A1 (en) Control flow graph driven operating system
KR102533019B1 (en) AI computing processor acceleration performance evaluation interface system and method therefor
Liu et al. Cost-benefit evaluation on parallel execution for improving test efficiency over cloud
KR102022972B1 (en) Runtime management apparatus for heterogeneous multi-processing system and method thereof
Wu et al. Integrating ytopt and libEnsemble to Autotune OpenMC
KR20220113873A (en) System for developing software modules
JP6776914B2 (en) Parallelization method, parallelization tool
KR101269024B1 (en) Apparatus and method of coordinating an operation action of robot software component

Legal Events

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