In the field of weapon systems software, the coding rules for weapon systems software developed in the Java language are included in the "Weapon Systems Software Development and Management Manual", which stipulates the process and output standards for the systematic development and management of software acquired through the defense capability improvement project. The latest trends of software development are reflected in weapon system software by adding a reliability test standard. In general, the purpose of coding rules is to provide consistent code so that people looking at the code can focus on the content, making it easier to understand, copy, change, and maintain the code. In this paper, we compare Oracle's Java language coding rule verification standards for Weapon Systems Software Development and Management Manual with the lasted coding rules from Google. We also analyzed whether it is appropriate to apply MOIS's software development security guide to the manual. As a result, we suggest an improvement direction for the coding rules of weapon system software developed in Java language.
1991년 SUN Microsystems에서는 메모리 사용량이 적고 다양한 플랫폼을 갖는 가전 제품에 적용하기 위해 Java언어를 개발하였다. 이후 스마트폰 플랫폼인 안드로이드에서 Java API를 활용하며 누구나 쉽게 접할 수 있는 대중적인 언어로 발돋움 하였다. 이에 무기체계 소프트웨어 분야에서는 방위력개선사업으로 획득되는 소프트웨어의 체계적인 개발 및 관리를 위한 프로세스와 산출물 작성표준 등을 규정하는 「무기체계 소프트웨어 개발 및 관리 매뉴얼」에 Java언어로 개발된 무기체계 소프트웨어의 코딩 규칙 검증과 취약점 점검 등을 수행할 수 있는 신뢰성 시험 기준을 추가하여 무기체계 소프트웨어에 최신 소프트웨어의 흐름을 반영하였다. 일반적으로 코딩 규칙은 코드를 확인하는 다른 사람들이 내용에 집중할 수 있도록 일관성 있는 코드를 제공하여 빠른 이해를 돕고 코드의 복사, 변경, 유지 관리할 수 있도록 하는 것을 목적으로 한다. 본 논문에서는 무기체계 소프트웨어 개발 및 매뉴얼의 Java언어 코딩 규칙 검증 기준인 오라클의 코딩 규칙과 최신의 구글의 코딩 규칙을 비교하고 행정안전부 소프트웨어 개발보안 가이드 적용에 대한 적절성을 분석하여 Java언어로 개발된 무기체계 소프트웨어 코딩 규칙의 발전 방향을 제안한다. 그 결과 적용 언어별 점검 난이도가 상이하고 일부 코딩 규칙이 취약점 분석과 유사한 사항이 있음을 식별하고, 개발 언어별 코딩 규칙 시험 난이도가 동일한 수준으로 개선이 필요함을 보인다.