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

System for building software of combat system Download PDF

Info

Publication number
KR102157843B1
KR102157843B1 KR1020180160471A KR20180160471A KR102157843B1 KR 102157843 B1 KR102157843 B1 KR 102157843B1 KR 1020180160471 A KR1020180160471 A KR 1020180160471A KR 20180160471 A KR20180160471 A KR 20180160471A KR 102157843 B1 KR102157843 B1 KR 102157843B1
Authority
KR
South Korea
Prior art keywords
build
component
time
unit
delete delete
Prior art date
Application number
KR1020180160471A
Other languages
Korean (ko)
Other versions
KR20200072657A (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, and more particularly, predicts a build time for each component, and performs a build operation by arranging a task sequence based on the predicted build time.

Description

전투체계 소프트웨어 빌드 시스템{SYSTEM FOR BUILDING SOFTWARE OF COMBAT SYSTEM}Combat 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 ship, 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 and reducing the time required for the build work.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. However, the present invention is not limited to the embodiments disclosed below, and may be implemented in various different forms. These embodiments are provided only to make the disclosure of the present invention complete, and to fully inform the scope of the invention to those skilled in the art to which the present invention pertains, and the present invention is defined by the scope of the claims. It just becomes. 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 said to be "connected" with another part, it is not only "directly connected", but also "indirectly connected" with another member interposed therebetween. Include. In addition, when a part "includes" a certain component, it means that other components may be further provided, rather than excluding other components unless specifically stated to the contrary.

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

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

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

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

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

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

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

이하에서는 본 발명의 실시예에 따른 전투체계 소프트웨어 빌드 방법 및 시스템에 대해 첨부된 도면을 참고하여 구체적으로 설명하기로 한다.Hereinafter, a method and system for building a combat 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 showing 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 an execution unit 150.

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

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

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

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

<수학식 1><Equation 1>

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

이로써, 빌드에 소요되는 시간, 즉 빌드 소요 시간은 하기 <수학식 2>와 같이 나타낼 수 있다.Accordingly, the time required for the build, that is, the time required for the build can be expressed as shown in 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 required for the current build from the predicted next build time of the corresponding component.

즉, 잔여 빌드 시간은 하기 <수학식 3>과 같이 나타낼 수 있다.That is, the remaining build time can be expressed as in 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 may display the time spent for building, the remaining build time, and the like through a web browser used by the user.

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

여기서, 배치부(130)는 정렬부(131)를 포함하며, 정렬부(131)가 예측부(110)에 의해 예측된 각각의 컴포넌트에 대한 빌드 소요 시간을 내림차순으로 정렬하면, 배치부(130)는 그 정렬 순서를 기반으로 빌드 작업 순서를 배치하는 것이다. 즉, 빌드에 소요되는 시간이 길수록 우선적으로 배치하여 프로세스의 유휴시간을 감소시켜 전체적인 빌드 소요 시간을 단축시킬 수 있도록 한다.Here, the arrangement unit 130 includes an arrangement unit 131, and when the arrangement unit 131 arranges the build time for each component predicted by the prediction unit 110 in descending order, the arrangement unit 130 ) Is to place the build task order based on that sort order. In other words, the longer the build time is, the more priority 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 deployment unit 130.

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

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

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

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

도 3은 본 발명의 실시예에 따른 컴포넌트 배치의 일 예를 나타내기 위한 도면으로, 각기 다른 빌드 소요 시간을 갖는 컴포넌트(C1 내지 C6)들을 빌드하는 과정에서 각 컴포넌트를 배치한 순서에 따라 전체 빌드 작업에 소요되는 시간에 차이가 발생할 수 있음을 나타낸 것이다.FIG. 3 is a diagram for illustrating 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 arranged It shows that there may be a difference in the time it takes to work.

도 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 performing the build work for each component differently, and the time when the build work is completed is also t And t'are different from each other.

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

한편, 제2 빌드 작업 프로세스(330)는 동일한 두 개의 프로세스 P1'및 P2'에 작업을 할당하여 빌드 작업을 수행하였으며, 빌드 작업에 시간이 가장 많이 소요되는 C5 컴포넌트를 먼저 배치함에 따라 C2 컴포넌트의 빌드 종료 시점인 t'만큼 전체 빌드 작업에 시간이 소요된다.Meanwhile, the second build work process 330 performs the build work by assigning work to the same two processes P1' and P2', and as the C5 component, which takes the most time for the build work, is placed first, the C2 component The entire build operation takes time as much as t', which is 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 work relatively faster, and this is because the first build work process 310 inefficiently arranges the order of the build work. to be. That is, this is because the idle time of the first build work process 310 is considerably 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 combat system software build system, after the user inputs all predefined information for software component build as text through the text-based CI tool shown in FIG. 4A and registers it in the server, the conditions for building the combat system software ( It automatically performs build work according to code update, user request, etc., and provides the result. Pre-defined information for this build is varied, including 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 described above, in the conventional combat system software build system, the time required for the build operation increases in proportion to the size of the 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 of the predefined information for the software component build as text, as shown in FIG. 4B. You can perform build work by entering.

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

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

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

본 명세서와 도면에는 본 발명의 바람직한 실시예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.In the present specification and drawings, a preferred embodiment of the present invention has been disclosed, and although specific terms are used, these are merely used in a general meaning to easily explain the technical content of the present invention and to aid understanding of the present invention. It is not intended to limit the scope. It is obvious to those of ordinary skill in the art that other modifications based on the technical idea of the present invention can be implemented in addition to the embodiments disclosed herein.

Claims (12)

전투체계 소프트웨어 빌드 시스템에 있어서,
빌드하고자 하는 컴포넌트별로 이름(Name), 경로(Path), 플랫폼(Platform), 프로젝트 파일(Project File) 중에서 적어도 하나를 포함하는 기본 정보를 입력받아 빌드 작업 절차를 정의한 후, 각 컴포넌트의 빌드 작업을 수행하되,
각 컴포넌트에 대한 빌드 소요 시간을 예측하는 예측부;
상기 예측부에서 예측된 각 컴포넌트에 대한 빌드 소요 시간을 기반으로 작업 순서를 배치하되, 각 컴포넌트에 대한 빌드 소요 시간을 내림차순으로 정렬한 후, 그 정렬 순서를 기반으로 빌드 작업 순서를 배치하는 배치부; 및
상기 배치부에 의해 배치된 빌드 작업 순서를 기반으로 각 컴포넌트의 빌드 작업을 수행하는 수행부;를 포함하며,
상기 예측부는,
개발 과정에서 각 컴포넌트에 대해 반복적으로 진행되는 빌드에 소요된 빌드 소요 시간을 각각 수집하고, 수집된 빌드 소요 시간의 평균값을 산출하여 각 컴포넌트의 다음 빌드 소요 시간으로 예측하는 수집부; 및
상기 수집부에서 예측된 각 컴포넌트의 다음 빌드 소요 시간에서 현재 빌드에 소요된 시간을 차감하여 각 컴포넌트의 잔여 빌드 시간을 산출하는 산출부;를 포함하는 것을 특징으로 하는 전투체계 소프트웨어 빌드 시스템.
In the combat system software build system,
After defining the build operation procedure by receiving basic information including at least one of the name, path, platform, and project file for each component to be built, the build operation of each component is performed. But
A prediction unit that predicts a build time required for each component;
A placement unit that arranges the work order based on the build time for each component predicted by the prediction unit, but arranges the build time for each component in descending order, and then arranges the build work order based on the sort order ; And
Includes; an execution unit that performs a build operation of each component based on the build operation order arranged by the placement unit,
The prediction unit,
A collection unit for collecting build time required for repetitive builds for each component in the development process, calculating an average value of the collected build time, and predicting the next build time for each component; And
And a calculation unit for calculating a remaining build time for each component by subtracting the time required for the current build from the next build time for each component predicted by the collection unit.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 제1항에 있어서,
상기 예측부는,
상기 각 컴포넌트에 대한 빌드 소요 시간을 예측할 때,
하드웨어 자원의 사용량에 따라 결정되는 아래의 수학식 1의보정상수를 고려하여 아래의 수학식 2와 같이 각 컴포넌트에 대한 빌드 소요 시간을 예측하는, 전투체계 소프트웨어 빌드 시스템.
[수학식 1]
보정상수 = (1 + CPU 사용률) × 0.7
[수학식 2]
빌드 소요 시간 = (빌드 종료 시각 - 빌드 시작 시각) × 보정상수
The method of claim 1,
The prediction unit,
When estimating the build time for each of the above components,
Combat system software build system for predicting the build time for each component as shown in Equation 2 below in consideration of the correction constant of Equation 1 below, which is determined according to the usage of hardware resources.
[Equation 1]
Correction constant = (1 + CPU utilization) × 0.7
[Equation 2]
Build time = (build end time-build start time) × correction constant
삭제delete 삭제delete 삭제delete 삭제delete
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 KR20200072657A (en) 2020-06-23
KR102157843B1 true 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 (2)

* 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

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101618872B1 (en) * 2009-06-19 2016-05-10 강원대학교산학협력단 Web-based hierarchical test system and method for robot software component test

Patent Citations (2)

* 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

Also Published As

Publication number Publication date
KR20200072657A (en) 2020-06-23

Similar Documents

Publication Publication Date Title
EP3285170B1 (en) Application profiling job management system, program, and method
EP3816806B1 (en) Utilizing neural network and artificial intelligence models to select and execute test cases in a software development platform
Wägemann et al. Worst-case energy consumption analysis for energy-constrained embedded systems
CA2433996A1 (en) Software tool for heuristic search methods
CN111400119A (en) Multi-project and multi-platform self-adaptive chip design FPGA prototype verification method and system
EP2927763A1 (en) System and method for an optimized operation of real-time embedded solutions in industrial automation
Ogilvie et al. Fast automatic heuristic construction using active learning
EP3311265B1 (en) A computing platform and method thereof for searching, executing, and evaluating computational algorithms
JP6428476B2 (en) Parallelizing compilation method and parallelizing compiler
Ding et al. Generalizable and interpretable learning for configuration extrapolation
CN104407968B (en) A kind of method that the code command longest run time is calculated by static analysis
US20080127118A1 (en) Method and system for dynamic patching of software
de Andrade et al. Software deployment on heterogeneous platforms: A systematic mapping study
CN108139929B (en) Task scheduling apparatus and method for scheduling a plurality of tasks
KR102157843B1 (en) System for building software of combat system
KR102162030B1 (en) Method for building software of combat system
CN102521135B (en) The method of testing of linear system and device
JP2000066919A (en) Constraint effectiveness check
KR20200132460A (en) Method and system for program analysis
KR102533019B1 (en) AI computing processor acceleration performance evaluation interface system and method therefor
JPWO2019142266A1 (en) Test case generation device, test case generation method, and test case generation program
WO2016001982A1 (en) Test data generation assistance device and test data generation assistance method
JP6776914B2 (en) Parallelization method, parallelization tool
JPH0773044A (en) Method and device for optimization compilation
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