I. Introduction
연동 분석 시스템은 함정의 전투지휘를 수행하는 함정전투체계와 함정에 탑재된 다양한 장비체계 사이의 메시지들을 수집하여 전투 관리체계와 장비체계 간의 오동작을 감시하고, 장비체계 간 통신의 유효성을 점검하며 전투교전 성능을 분석하는 역할을 한다.
연동 분석 시스템에 탑재되는 소프트웨어 중 하나인 정보저장 소프트웨어는 DSS(Data Sharing Service), TCP, UDP와 같은 다양한 통신 방식을 사용하여 함정전투체계의 전술 도메인에서 송, 수신되는 모든 메시지를 분석 컴퓨터로 전송하고, 별도의 파일로 저장하는 기능을 수행하며, 전투 관리체계와 분석 컴퓨터 간의 중간 매개체 역할을 한다.
정보저장 소프트웨어는 연동 분석을 위해 전투 관리체계에서 사용하는 대부분의 메시지를 수신하여 처리하기 때문에 소스 코드의 양이 상대적으로 많고, 연동 장비 및 메시지에 대한 의존성이 높아 새로운 함형의 전투 관리체계를 개발할 때마다 소스 코드의 수정이 빈번하게 발생한다. 그로 인해 수정된 소프트웨어의 신뢰성 검증을 위한 신뢰성 시험을 수행할 때 많은 시간이 소요되게 되고, 이는 곧 개발 기간의 증가와 개발 비용의 상승으로 이어진다.[1]
본 논문에서는 정보저장 소프트웨어의 수정 요소를 최소화하고, 재사용성을 증가시키기 위하여 정보저장 소프트웨어 구조의 표준화에 관한 연구를 수행하였다. 휘처 모델을 통해 정보저장 소프트웨어의 구성 요소를 기능별로 나누어 수정 요소를 식별 및 분리하고, 디자인 패턴 중 어댑터 패턴과 팩토리 메소드 패턴을 적용하여 정보저장 소프트웨어의 구조를 개선하였다.
본 논문의 구성은 다음과 같다. 2장에서는 관련 연구로 함정전투체계와 연동 분석 시스템, DSS, 그리고 FORM(Feature-Oriented Domain Analysis)에 대해 설명한다. 3장에서는 디자인 패턴을 적용한 정보저장 소프트웨어의 표준화 구조를 제안한다. 4장에서는 코드 변경성과 호환성, 그리고 신뢰성 시험의 소요 시간 측면에서 제안한 정보저장 소프트웨어의 이점을 평가하고, 마지막 5장에서는 본 논문의 결론으로 마무리한다.
II. Preliminaries
1. Naval Combat System
함정전투체계는 동시다발적인 전투 상황에서 함정에 탑재된 모든 센서로부터 수집된 전술 상황과 전술데이터링크를 통해 수신한 전술 정보를 바탕으로 처리 및 분석하여 전술 상황을 구성하고 전시한다. 그리하여 운용자의 전투의사결정을 쉽게 하며, 효율적인 무장 통제로 함정의 전투임무 수행을 극대화하는 역할을 한다.[2]
함정전투체계는 Fig. 1에서처럼 센서체계와 무장체계 등 다양한 체계들로 구성되어 있는데 체계별로 데이터를 처리하고 통합되어 운용된다.[3] 함정의 특성과 역할에 따라 적합한 연동 장비들이 탑재되기 때문에 함정에 탑재되는 연동 장비와 구조는 함정마다 다르게 된다.
Fig. 1. Naval Combat System
함정전투체계 소프트웨어는 공통된 기능에 대한 개별구현으로 인해 유연성 및 확장성이 낮고, 소프트웨어 간 높은 상호의존성으로 인해 기능 변경에 따른 코드 수정 요소가 크기 때문에 개발의 효율성을 위한 소프트웨어 구조개선에 관한 연구가 활발하게 이루어지고 있다.[4-5]
2. Software Development with DSS
DSS는 DDS(Data Distribution Service) 미들웨어 기반의 통신 서비스로 Fig.2와 같이 Publish-Subscribe 모델을 기반으로 동작한다. DSS의 Publish-Subscribe 모델은 많은 수의 노드 사이에서 동시다발적인 통신이 발생하고 Time-Critical 한 데이터 흐름이 많은 시스템에 적합한 모델이다.[6-8] DSS는 응용 간 물리적 위치의 제약 없이 데이터 공유 기능을 제공하여 데이터 중심 설계가 가능하고, 데이터 공유를 기반으로 하여 규격에 상관없이 응용 간 필요한 메시지 공유가 가능하다는 장점이 있다.
Fig. 2. Publish-Subscribe Model of DSS
함정전투체계의 소프트웨어는 DSS 통신을 기반으로 개발되어 이를 사용하기 위한 공통 클래스들을 기본적으로 포함하고 있다. 함형마다 탑재된 연동 장비와 운용 개념이 다르기 때문에 DSS 통신으로 송, 수신하는 메시지에 대한 변경 사항이 개발 사업마다 빈번하게 발생하게 되고, DSS 메시지와 함께 관련 클래스에 대한 수정이 필요하게 된다.
3. Naval Combat Interface Analysis System
함정전투체계는 안정적인 운용을 위해 전투 관리체계 자체의 성능뿐만 아니라 연동 장비와의 연동 성능도 함께 검증되어야 한다. 연동 분석 시스템은 이를 위해 필요한 시스템으로 함정전투체계의 연동 성능을 확인하고, 연동간 발생하는 연동 장비의 문제점을 식별하여 원인을 분석하는 역할을 한다.
연동 분석 시스템은 정보저장장치와 분석 컴퓨터로 구성된다. 정보저장장치는 함정전투체계 데이터버스 망으로부터 전투 관리체계와 부 체계 및 연동 장비와의 연동 신호를 수신하여 이를 분석에 필요한 형태로 변환한 후, 연동 분석 장비인 분석 컴퓨터로 전송한다. 분석 컴퓨터에서는 정보저장장치로부터 수신하거나 저장된 연동 정보를 이용해 체계 연동에 대한 분석 작업이 이루어진다.
연동 분석 대상은 연동 장비와의 연동 메시지와 전투 관리체계 전술 도메인에서의 모든 DSS 메시지이다. 연동단과 연동 장비 간의 연동은 연동 장비마다 TCP, UDP, Serial 등 다양한 통신 방식을 사용하는데 연동 분석을 위해서 각 연동단에서 송, 수신한 연동 메시지는 DSS 메시지로 변환되어 DSS 통신 방식으로 송신되고, 정보저장장치를 통해 분석 컴퓨터까지 전달되게 된다. 그로 인해 연동 분석 시스템은 연동 및 DSS 메시지의 변화로 인해 분석해야 할 정보 또한 바뀌게 되어 각 개발 사업마다 많은 수정 요소가 발생한다.
정보저장 소프트웨어는 정보저장장치에 탑재되어 분석 컴퓨터에서 데이터를 분석할 수 있도록 지원하는 소프트웨어로 Fig. 3에서처럼 DSS, TCP, UDP와 같은 다양한 통신 방식을 사용하여 전투 관리체계의 전술 도메인에서 송, 수신되는 모든 메시지를 수신하고 가공하여 분석 컴퓨터로 전송하는 역할을 한다.[9]
Fig. 3. IISS(Integrated Interface Storage System) of Interface Analysis System
4. FORM(Feature-Oriented Reuse Method)
휘처(Feature)는 시스템에서 식별할 수 있는 추상화의 단위로 휘처 모델은 소프트웨어 아키텍처 재사용성 증가를 위해 발명된 공통성과 가변성을 휘처로 분석하는 모델링 기법이다.[10]
FORM은 휘처 모델 중 요구공학을 위한 분석법인 FODA(Feature-Oriented Domain Analysis)를 설계와 구현까지 확장한 개발 방법으로 FORM 기법을 사용하여 공통 요소와 가변 요소를 도출하게 되면, 기존 클래스에서 가변 요소를 분리할 수 있는 설계가 가능하게 되어 소프트웨어의 재사용성을 향상시킬 수 있다.[11-12]
5. NSCP(Naval Shield Component Platform)
절차적 프로그래밍 패러다임으로 설계된 함정전투체계 소프트웨어의 초기 구조는 무기체계 소프트웨어 간 형상이 달라 체계통합 구현에 제한적이고, 공통 기능에 대한 개별 구현으로 재사용/재활용성이 낮아 유연성과 확장성 또한 낮다. 그리하여 진보된 프로그래밍 패러다임인 객체 지향 프로그래밍과 그 설계 원칙인 SOLID를 준수하는 함정전투체계 표준 연동 아키텍처로써 NSCP에 대한 연구가 진행 중이다. NSCP는 Fig. 4에서처럼 크게 4개의 컴포넌트로 구성되어 인터페이스 클래스를 통해 연결된 구조이다.[5]
Fig. 4. Architecture of Naval Shield Component Platform
III. The Proposed Scheme
1. Functional Classification of IISS Software
정보저장 소프트웨어의 구성 요소를 Fig. 5와 같이 휘처모델을 기반으로 기능별로 분류하여 공통 요소와 가변 요소를 도출하였다.
Fig. 5. Feature Model of IISS Software
정보저장 소프트웨어는 크게 통신과 처리부로 분류할 수 있다. 통신부는 DSS와 TCP, UDP를 사용하는데 TCP 및 UDP를 사용하여 분석 컴퓨터 및 함기준 센서와 통신하는 부분은 공통 요소로 식별하였고, 연동 메시지와 전투관리체계 메시지를 처리하기 위한 DSS 통신 부분은 가변 요소로 식별하였다. 분석 컴퓨터 및 함기준 센서와의 인터페이스는 모든 사업에서 동일한 인터페이스로 통신을 수행하고, 연동 메시지와 전투 관리체계 메시지는 사업별로 상이하기 때문이다. 처리부는 각 통신 방식으로 송, 수신한 메시지를 처리하는 부분과 파일을 처리하는 부분으로 나누었는데 사업별로 변경되지 않는 부분이기 때문에 모두 공통 요소로 식별하였다.
2. Architecture Design of IISS Software
Fig. 6과 Table 1은 현재 정보저장 소프트웨어의 클래스 다이어그램과 클래스에 대한 설명을 나타낸다.
Fig. 6. Class Diagram of Existing IISS Software
Table 1. Class Description of Existing IISS Software
정보저장 소프트웨어의 기능별 주요 클래스에 대한 설명은 다음과 같다.
CDataManager, CDSSAdaptor, CEventHandler 클래스는 DSS 메시지별로 초기화하고, DSS 메시지 수신을 위한 Listener를 할당하며, 수신 함수를 선언 및 정의하는 DSS 공통 클래스이다.
CSigconvTopicInterface 클래스는 DSS 메시지를 수신하고, CSigconvIPCsds1Interface 클래스는 수신한 DSS 메시지를 처리한다. CSigconvIPRecInterface 클래스는 여러 통신 방식으로 수신한 메시지들을 대상으로 필터링을 수행하고, CSigconvIPDataRecorder 클래스는 필터링된 메시지를 파일로 저장한다.
현재 정보저장 소프트웨어 구조에서는 사업별로 DSS 메시지의 수정 사항이 발생하면 관련 처리를 수행하는 CSigconvTopicInterface 클래스와 CSigconvIPCsds1Interface 클래스에서 많은 수정 사항이 발생한다.
기존 정보저장 소프트웨어의 클래스 구조에서 디자인 패턴 중 어댑터 패턴과 팩토리 메소드 패턴을 적용하여 구조를 개선하였다. DSS 통신 클래스는 DSS 공통 클래스와의 호환과 사업별로 수정 최소화를 위해 어댑터 패턴을 적용하였다, TCP/UDP 통신 클래스는 함기준 센서와 분석컴퓨터 간의 통신을 수행하여 사업별로 변경되지 않는 부분이지만, 추후 확장성을 고려하여 팩토리 메소드 패턴을 적용하였다.
제안한 정보저장 소프트웨어의 구조는 Fig. 7, Table 2와 같다.
Fig. 7. Class Diagram of Proposed IISS Software
Table 2. Class Description of Proposed IISS Software
제안한 정보저장 소프트웨어의 기능별 주요 클래스에 대한 설명은 다음과 같다.
CIISSDSSAdaptor 클래스는 어댑터 패턴을 적용하여 DSS 공통 클래스를 정보저장 소프트웨어에 호환시키는 용도로 사용하여 DSS 메시지 변화에 따른 의존을 줄여 재사용성을 향상시켰다.
CIISSComInterface 클래스는 DSS 이외의 TCP, UDP 통신을 처리하는 클래스로 팩토리 메소드 패턴을 적용하여 추후 통신 인터페이스가 추가되더라도 서브 클래스를 통해 간편하게 추가할 수 있게 하여 확장성을 높였다.
CIISSOSDInterface와 CIISSAnacomInterface 클래스는 각각 함기준 센서와 분석 컴퓨터와의 통신 처리를 담당하는 클래스로 CIISSComInterface의 서브 클래스이다.
CIISSICUInterface 클래스는 연동단에서는 연동 분석을 위해 연동 메시지를 DSS 메시지로 변환하여 송신하는데 해당 처리 부분을 공용화하기 위해 연동단의 공통 처리를 위한 추가 클래스이다. 해당 클래스는 기존 구조의 연동단과 연동단 표준화가 적용된 연동단 소프트웨어와의 호환성을 고려하여 설계하였다.
기존 연동단 소프트웨어에서는 함수 호출 방식으로 사용 가능하고, 연동단 표준화인 NSCP가 적용된 연동단 소프트웨어에서는 SubFunctionManager 클래스에서 IISSICUInterface 클래스를 상속하여 정보저장 관련 처리기능을 수행하는 클래스로 사용할 수 있다.
IV. Software Evaluation
제안한 정보저장 소프트웨어는 공통 요소와 가변 요소를 분리하여 추후 변경 사항이 발생할 때 소스 코드의 변경 요소를 최소화할 수 있게 하였고, 소스 코드 수정 편의성을 향상시켰다. 이를 증명하고, 기능 동작을 시험하기 위해 실제 개발 사업에서 발생하는 경우에 대해 기존 정보저장 소프트웨어와 제안한 정보저장 소프트웨어에 대한 비교를 수행하고, 실제 환경과 유사한 환경에서 기능 시험을 수행하였다.
1. Code Changeability
사업별로 송, 수신하는 DSS 메시지와 연동단의 개수 및 종류가 변경되는 일반적인 경우일 때, 기존과 제안한 정보저장 소프트웨어의 클래스 비교는 Table 3과 같다.
Table 3. Compare of IISS Software
사업별로 DSS 메시지와 연동단의 개수 및 종류가 변경되는 일반적인 경우에서 기존 정보저장 소프트웨어는 DSS 메시지를 수신하고 처리하는 클래스인 CSigconvTopicInterface 클래스와 CSigconvIPCsds1Interface 클래스의 수정이 필요하다. 제안한 정보저장 소프트웨어에서는 CIISSDSSAdaptor 클래스만 수정하면 된다. 중복으로 존재하던 DSS 메시지 처리부분을 하나의 클래스에서 처리하여 DSS 메시지 변경시 수정부분은 기존 대비 대략 절반으로 줄어들게 된다. 수정해야 할 클래스와 소스 코드가 줄어드는 이점 외에도 어댑터 패턴을 적용함으로써 DSS 메시지 처리 부분을 별도의 라이브러리로 쉽게 분리할 수 있게 되어 분리한 실행 파일을 100% 재사용하는 것이 가능하다는 이점도 존재한다.
2. Compatibility
연동단 소프트웨어와의 호환성과 연동 분석을 위한 기능 시험을 수행하기 위해 Fig. 8과 같이 테스트 환경을 구성하였다. 전시처리장치 PC와 정보처리장치 HPC, 정보저장장치 HPC, 연동단 PC를 랜 스위치를 통해 연결하여 구성하였고, 시뮬레이터 PC는 연동단 PC에 이더넷으로 직접 연결하여 구성하였다.
Fig. 8. Test Environment
전시처리장치 PC(MFC)에는 운용자 화면을 위한 다기능 콘솔 소프트웨어를 실행하고, 정보처리장치 HPC(IPN)에서는 운용자 입력에 의한 각종 전투 관리체계 기능 처리를 위한 정보처리 소프트웨어를 실행하였다. 연동단 PC(ICU)에는 연동처리 소프트웨어를 실행하였고, 시뮬레이터 PC에는 실제 연동 장비를 모사하는 시뮬레이터 소프트웨어를 실행하였다. 마지막으로 정보저장장치 HPC(IISS)에는 정보저장 소프트웨어를 실행하였다. 시험 환경의 세부 사양 정보는 Table 4와 같다.
Table 4. Performance of Test Environment
다음과 같이 총 4가지 경우를 설정하여 제안한 정보저장 소프트웨어가 정상적으로 연동 분석을 위한 기능이 동작하고 연동단 소프트웨어와 호환될 수 있는지를 시험하였고, CPU와 메모리 점유율을 비교한 성능 평가를 수행하였다.
⦁ Case-1 : 기존 정보저장 소프트웨어 + 기존 연동단 소프트웨어
⦁ Case-2 : 기존 정보저장 소프트웨어 + NSCP가 적용된 연동단 소프트웨어
⦁ Case-3 : 제안한 정보저장 소프트웨어 + 기존 연동단 소프트웨어
⦁ Case-4 : 제안한 정보저장 소프트웨어 + NSCP가 적용된 연동단 소프트웨어
먼저 Case-1, 2에서 기존 정보저장 소프트웨어의 기능시험을 수행했을 때 정보저장장치의 CPU와 메모리 점유율을 측정하였다. 그리고 Case-3, 4에서 기능 시험을 수행하여 제안한 정보저장 소프트웨어에서 모든 기능이 정상적으로 동작하는지를 확인한 이후, 이 때 정보저장장치의 CPU와 메모리 점유율을 측정하여 소프트웨어의 성능비교를 수행하였다.
기존 정보저장 소프트웨어가 동작하는 Case-1, 2에서 정보저장장치의 CPU와 메모리 점유율 모두 평균적으로 5% 이하로 유지되었다. 제안한 정보저장 소프트웨어가 동작하는 Case-3, 4에서 연동 분석을 위한 정보저장 소프트웨어의 모든 기능이 정상 동작함을 확인할 수 있었고, 제안한 정보저장 소프트웨어가 동작하는 상황에서 정보저장 장치의 CPU와 메모리 점유율이 모두 평균적으로 5% 이하로 유지되는 것을 확인할 수 있었다.
결과적으로 제안한 정보저장 소프트웨어는 구조 개선으로 인해 재사용성과 수정 편의성을 향상시키면서 기존 대비 동등 이상의 성능으로 여러 방식의 연동단 소프트웨어와 호환되어 정상적으로 기능이 동작함을 확인할 수 있었다.
V. Conclusions
함정전투체계에서 정보저장 소프트웨어는 연동 분석을 위해 전투 관리체계와 분석 컴퓨터 간의 중간 매개체 역할을 하는 소프트웨어로 사업별로 송, 수신 메시지와 연동장비의 변경 사항에 의해 소프트웨어의 수정이 불가피하게 이루어졌다. 그로 인해 설계와 구현, 기능 시험, 신뢰성 시험 등 소프트웨어 개발 프로세스를 수행하며 추가적인 공수가 소요되었고, 이는 개발 비용의 증가로 이어졌다.
본 논문에서는 정보저장 소프트웨어의 수정 요소를 최소화하고 변경 편의성을 향상하기 위해 정보저장 소프트웨어를 표준 아키텍처로 개선하는 연구를 수행하였다. 휘처 모델을 통해 정보저장 소프트웨어의 구성 요소를 기능별로 나누어 수정 요소를 식별 및 분리하였고, 디자인 패턴 중에서 어댑터 패턴과 팩토리 메소드 패턴을 적용하여 정보저장 소프트웨어의 구조를 효과적으로 개선하였다. 그로 인해 송, 수신 메시지와 연동 장비의 변경에 대한 의존성을 감소시키면서 정보저장 소프트웨어의 수정을 최소화할 수 있게 되었다. 그리고 재사용성 향상과 소프트웨어의 오류 발생 확률 감소의 효과와 더불어 개발 기간과 비용의 절감 효과도 가져다줄 것으로 기대된다.
참고문헌
- H. K. Kim, "A study for the reduction of the SW reliability test time and human errors using the SW reliability test automation," Journal of The Korea Society of Computer and Information, Vol. 20, No. 10, pp. 45-51, Oct. 2015. DOI: 10.9708/JKSCI.2015.20.10.045
- J. W. Lee, "Development of Message Define & Management System based on Distributed Processing Environment for Naval Combat Systems," KIISE Transactions on Computing Practices, Vol. 23, No. 12, pp. 670-676, Dec. 2017. DOI : 10.5626/KTCP.2017.23.12.670
- J. Y. Im and D. S. Kim, "Performance Evaluation of Virtualization Solution for Next Generation Naval Combat Systems," Journal of The Institute of Electronics and Information Engineers, Vol. 56, No. 2, pp. 161-169, Feb. 2019. DOI: 10.5573/ieie.2019.56.2.41
- J. G. Lee, "A Study on the Standard Architecture of Weapon Control Software on Naval Combat System," Journal of the Korea Society of Computer and Information, Vol. 26, No. 11, pp. 101-110, Nov. 2021. DOI: 10.9708/JKSCI.2021.26.11.101
- C. S. Back, and J. H. Ahn, "A Study of the Standard Interface Architecture of Naval Combat Management System," Journal of the Korea Society of Computer and Information, Vol. 26, No.1, pp. 147-154, Jan. 2021. DOI: 10.9708/JKSCI.2021.26.01.147
- DDS, https://www.omg.org/omg-dds-portal/
- OMG, Data Distribution Service for Real-Time Systems Specification, Mar. 2004.
- OMG, The Real-time Publish-Subscribe Protocol(RTPS) DDS Interoperability Wire Protocol Specification, Sep. 2014.
- J. Y. Park, M. S. Yang, and D. H. Lee, "A Study on IISS Software Architecture of Combat Management System for improving modifiability," Journal of the Korea Society of Computer and Information, Vol. 25, No. 2, pp. 133-140, Feb. 2020. DOI: 10.9708/JKSCI.2020.25.02.133
- T. Thuem, D. Batory, and C. Kaestner. "Reasoning about Edits to Feature Models", 2009 IEEE 31st International Conference on Software Engineering, pp. 254-264. Vancouver, BC, Canada, May 2009. DOI: 10.1109/ICSE.2009.5070526.
- K. C. Kang, S. J. Kim, J. J. Lee, K. J. Kim, E. S. Shin, and M. H. Huh, "FORM: A Feature-Oriented Reuse Method with Domain-Specific Reference Architectures," Annals of Software Engineering, pp. 143-168, Jan. 1998. DOI: 10.1023/A:1018980625587
- K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson, "Feature-Oriented Domain Analysis(FODA) Feasibility Study," Technical Report CMU/SEI-90-TR-21, Pittsburgh, PA., Software Engineering Institute, Carnegie Mellon University, 1990.