MISRA C

MISRA-C는 MISRA(Motor Industry Software Reliability Association)에서 개발된 C 프로그래밍에 대한 개발 표준이다. "MISRA-C"의 목적은 ISO C 언어로 작성된 임베디드 시스템의 코드 안전성, 호환성, 신뢰성이다. C++언어에 대한 가이드라인으로는 MISRA C++가 존재한다.

"MISRA-C"는 자동차 산업으로부터 작성된 모델이지만, 자동차 산업 이외의 산업에 다양하게 쓰이고 있다. "MISRA-C"는 우주/항공, 의료장비, 국방, 철도 등 다양한 산업에서 Best Practice로서 광범위하게 적용되는 가이드라인이라고 할 수 있다.

"MISRA-C"의 초판, "Guidelines for the use of the C language in vehicle based software"은 1998년에 출간되었으며, 공식적으로 MISRA-C:1998 로 알려져 있다.

"MISRA-C"의 세컨드 에디션, "Guidelines for the use of the C language in critical systems"은 2004년에 출간되었고, MISRA-C:2004로 잘 알려져 있다. 이 MISRA-C:2004는 기존에 여러 가지 의미를 동시에 담은 룰이 정확하게 하나의 평가 지표들을 가질 수 있도록 분리되었고, 개발에 적합하지 않은 룰은 제거되었다.

ISO-C99를 반영하기 위한 "MISRA-C"의 다음 버전을 위한 작업이 현재 진행 중이다.

MISRA-C 가이드라인 문서는 ISO, BSI Group, RTCA와 같은 곳에서 유료로 제공된다.

룰 

MISRA-C:1998은 총 127개의 룰이 있으며, 93개의 필수 룰과 34개의 권고 룰로 구성되어 있다. 룰 번호는 1번부터 127번 형식으로 구성되어 있다.

MISRA-C:2004는 총 141개의 룰이 있으며, 121개의 필수 룰과 20개의 권고 룰로 구성되어 있다. 각각의 룰들은 "Environment"부터 "Run-time failure"까지 21개의 그룹으로 구성되어 있고 넘버링은 1.1부터 21.1까지 각각의 그룹별로 이루어져 있다.

도구 

MISRA-C를 만족하기 위한 수많은 소프트웨어 툴이 존재한다. 하지만 어떠한 도구도 MISRA-C를 100% 만족할 수는 없다.

그 이유는, MISRA-C의 룰에서는 반드시 사람이 해야만 하는 내용이 포함되어 있기 때문이다.

MISRA-C 만족을 위한 코드 분석 도구
 한컴MDS QAC, Code Inspection, MISRA-C
 SonarSource SonarQube
 Synopsys Coverity
 Suresoft Technologies, Inc. Code Inspector
 소프트4소프트, RESORT for C, MISRA-C
 MathWorks, Polyspace, MISRA-C
 PRQA QAC
 SPARROW QCE

참고자료

외부 링크 

 
 
 
 
 
 
 

C 프로그래밍 언어
컴퓨터 표준
C 프로그래밍 언어 계열