MISRA C

위키백과, 우리 모두의 백과사전.
(Misra c에서 넘어옴)

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

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

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

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

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

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

[편집]

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 만족을 위한 코드 분석 도구

참고자료[편집]

  1. http://www.programmingresearch.com/QAMISRA.html
  2. “보관된 사본”. 2017년 6월 7일에 원본 문서에서 보존된 문서. 2012년 2월 7일에 확인함. 
  3. http://demo.electronicdesign.com/dev-tools/misra-c2012-plenty-good-reasons-change[깨진 링크(과거 내용 찾기)]
  4. “보관된 사본”. 2011년 12월 30일에 원본 문서에서 보존된 문서. 2012년 2월 7일에 확인함. 

외부 링크[편집]