코딩 규칙 검사 및 소스 품질 관리도구
Helix QAC
Helix QAC는 코딩 규칙 검증 및 소스코드 품질 메트릭 관리를 통해 SW의 신뢰성을 확보하기 위한 미국 Perforce社의 정적 분석 도구입니다.

ISO 26262, IEC 61508, EN 50128, IEC 62304, IEC 60880, 방위사업청 무기체계 소프트웨어 개발 및 관리 매뉴얼 등 다양한 산업군 별 국제 기능 안전 표준에서 요구하는 코딩 규칙(MISRA C/C++, AUTOSAR C++, CERT C/C++ 등) 및 소스코드 품질 메트릭의 준수 여부를 검사하고 통합 관리/공유함으로써 소스코드의 신뢰성에 관한 국제적인 요구사항에 발빠르게 대응할 수 있습니다.

Helix QAC의 제조사인 Perforce(구.PRQA)는 국제적인 코딩 규칙인 MISRA C/C++ 코딩 규칙의 최초 제정부터 Release/Update를 담당하는 Working Group 내 핵심 멤버이며, 최신 코딩 규칙인 AUTOSAR C++ 코딩 규칙 제정에 유일하게 참여한 정적 분석 도구 Vendor입니다.
이에 따라 Helix QAC는 코딩 규칙과 관련된 Global Trend에 가장 빠르고 정확하게 대응할 수 있는 정적 분석 도구입니다.

주요 특징

코딩 규칙 위반사항 분석

자동차:MISRA C/C++ 모든버전 지원, AUTOSAR C++ 코딩 규칙 지원

현대자동차 보안 코딩 가이드 분석 및 리포트 자동 생성 지원

국방/항공:방위사업청 신뢰성 시험 지침 대응 코딩 규칙(MISRA C/C++, JSF++)

보안:CERT C/C++, CWE 658/659

기타:HIC++ (HIGH INTEGRITY C++)

사용자 정의 코딩 규칙 생성 가능

소스코드 품질 메트릭 검증

C언어 -71개, C++언어 -80개 메트릭 항목 지원

자동차:HIS 메트릭 지원

국방/항공:방위사업청 신뢰성 시험 지침 대응 메트릭 지원

산업별 기능안전 표준지원 Certification

자동차:ISO 26262:2011 ASIL D지원

전기/전자:IEC 61508:2010 SIL 4지원

철도:EN 50128:2011 SW-SIL 4지원

의료:IEC 62304:2006 SW safety Class C 지원

원자력:IEC 60880:2006

웹 기반의 통합 관리 솔루션 제공

분석결과 공유:QA담당자, 개발자, 관리자 간 웹기반 공유 / 신속한 협업 가능

분석결과 버전 관리:버전 별 소스코드 비교 가능, 위반사항 / 및 메트릭 결과 추이 확인

위반사항 예외 처리:예외 처리 소명양식 자동생성 가능 / 보고서 작성 업무 감소

사용자 정의 리포트:사용자가 원하는 형태로 리포트 구성 가능

FAQ

QMISRA 코딩 규칙 위반사항에 대한 검출 정확도가 어떻게 되나요?
A

Helix QAC의 제조사인 Perforce Software(구.PRQA)는 MISRA 코딩 규칙 제정에 참여했던 핵심 멤버입니다.Perforce Software는 MISRA 코딩 규칙 별로 그 의미와 내용을 정확하게 파악하고 있으며, 이에 따라  Helix QAC는 MISRA 코딩 규칙 위반사항을 가장 정확하게 검출하는 정적 분석 도구입니다.

QAUTOSAR 플랫폼에 효과적으로 대응할 수 있는 코딩 규칙이 있나요?
A

AUTOSAR 플랫폼 기반의 소프트웨어 개발 시 소스코드의 안전성 및 보안성을 확보하기 위해 만들어진 표준으로 AUTOSAR C++14 코딩 규칙이 있습니다. AUTOSAR에서는 해당 코딩 규칙을 개발하기 위하여 전 세계의 정적분석도구 개발사 중 유일하게 Perforce Software(Helix QAC 제조사, 구.PRQA)를 초청하였으며, Perforce는 현재까지도 AUTOSAR 파트너 중 유일한 정적 분석 도구 개발사입니다.Perforce Software는 Helix QAC에서 AUTOSAR C++14 코딩 규칙을 검증할 수 있도록 별도의 모듈을 개발하였습니다. 이에 따라 Helix QAC는 현재 AUTOSAR C++14 코딩 규칙 검증을 지원하는 전세계 유일한 정적 분석 도구입니다.

QSW 품질 메트릭이란 무엇인가요?
A

SW 품질 메트릭이란 소프트웨어의 크기 및 복잡도를 측정하는 지표입니다. 대표적인 메트릭으로 순환 복잡도, 함수의 호출 횟수, 소스코드 라인 수 등을 예로 들 수 있으며, 품질 관리자는 이러한 측정값을 통해 소프트웨어의 크기나 복잡도가 어느정도 되는지를 파악할 수 있게 됩니다.실제로 국방 시장의 경우에는 방위사업청 SW 신뢰성 시험에서 6개의 메트릭을 지정하여 측정하도록 가이드하고 있으며, 자동차 시장의 경우에도 OEM에서 특정 메트릭 항목들을 측정하도록 요구합니다. 또한 이렇게 지정된 메트릭 항목들은 모두 제한값을 가지고 있어 해당 제한값을 넘어가지 않도록 관리하는 작업이 필요합니다.Helix QAC에서는 측정이 필요한 메트릭 항목만 선택하여 리포트로 출력하실 수 있으며, 아래와 같이 특정 제한값을 초과하는 경우에는 별도로 표시하는 기능을 통해 한눈에 확인하고 관리하실 수 있습니다.

Q시간이 지남에 따라 품질이 개선되는 것을 어떻게 확인할 수 있나요?
A

Helix QAC와 함께 제공되는 QA Verify는 Helix QAC의 분석결과를 웹에서 통합관리 할 수 있는 솔루션입니다. QA Verify에서는 분석결과를 분석 차수 별로 관리하실 수 있어 코딩규칙 위반사항과 메트릭 결과에 대한 트렌드를 확인하실 수 있습니다. 즉, 품질 관리자는 아래와 같은 화면을 통해 품질이 개선되고 있는지를 확인할 수 있게 됩니다.

Q예외처리하는 항목에 대해서 하나하나 소명하려니 양이 너무 많습니다. 좋은 방법이 없을까요?
A

Helix QAC는 사전에 예외처리 항목(Deviation Tag)를 저장하여 간편하게 예외처리를 하실 수 있습니다. 이렇게 저장해 놓은 예외처리 항목은 프로젝트에 구애 받지 않고 재사용하실 수도 있습니다. 또한 저장해 놓은 예외처리 항목을 기반으로 예외처리 리포트를 자동으로 생성해주고 별도의 소명 문서(.docx, .hwp, .excel 등)로 출력할 수 있는 플러그인도 제공하고 있어 관련된 업무를 최소화하실 수 있습니다.

Q저희 회사는 빌드 자동화 시스템(Continuous Integration)이 구축되어 있는데, 코딩 규칙 분석도 자동화할 수 있나요?
A

Helix QAC는 Command Line Interface를 제공하여 명령어로도 모든 기능을 수행하실 수 있습니다. 따라서 코딩 규칙 분석 및 리포트 출력 등의 명령어를 스크립트로 작성하여 빌드 자동화 시스템(Continuous Integration)과 연동함으로써 코딩 규칙 분석을 자동화실 수 있습니다. Helix QAC는 모든 빌드 자동화 시스템과 연동 가능하며, 만약 Jenkins를 사용하실 경우에는 별도로 제공되는 플러그인을 통해 더욱 쉽게 분석 자동화 환경을 구축하실 수 있습니다.

적용 사례

자동차

구분내용
회사명100개국 이상에 Diesel engine 부품을 공급하는 회사 (Delphi)
상황현대의 Diesel 엔진에는 기능 향상 및 작동시간 증가가 요구되고 있고, Eg Diesel 엔진의 설계기술은 점점 고도화되고 있음.
Delphi는 성능과 신뢰성을 높이기 위하여 Diesel엔진에 더 많은 task를 추가함과 동시에 기존 모델을 Reengineering해야 했음.
해결방안 및 효과MISRA(Motor Industry Software Reliability Association)표준을 일찍부터 제품에 적용하고 있던 Delphi Diesel은 제품의 성능의 획기적인 향상을 위해 MISRA 표준을 강화함

이에 PRQA사에서 제공하는 Window 기반의 QAC와 MISRA Rule을 적용하여 연구소의 SW품질을 Test함으로써 SW의 품질을 향상시키는데 성공함.

국방/항공

구분내용
회사명미국의 대형 항공 회사(‘L사’)
상황C++ Code 기반이면서 Safety, Hard real time, performance (time and space)의 제약 사항을 만족하는 C++용 Coding Rule을 표준화(JOINT STRIKE FIGHTER AIR VEHICLE C++ CODING STANDARDS)하여 JSF (일명 F-35) 개발에 적용함
JSF-AV-Rules에는 총 231개의 Rule이 있으며, MISRA-C의 Coding Rule을 벤치마킹하여 구성됨
해결방안 및 효과MISRA-C 모듈과 동일하게 JSF Compliance Module을 제공하여 QAC++에서 사용할 수 있음


블로그


제 품문 의
top