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

같이 보기

참고자료

  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일에 확인함. 

외부 링크

  • MISRA C 위키데이터에서 편집하기 - 공식 웹사이트
  • “Introduction to MISRA C”. embedded.com. 2012년 5월 17일에 원본 문서에서 보존된 문서. 2011년 12월 29일에 확인함. 
  • “MISRA C: Safer Is Better”. electronicdesign.com. 2012년 5월 17일에 원본 문서에서 보존된 문서. 2011년 12월 29일에 확인함. 
  • “MISRA C — Some key rules to make embedded systems safer”. iar.com. 2011년 7월 20일에 원본 문서에서 보존된 문서. 2012년 2월 7일에 확인함. 
  • Software reliability expert Les Hatton. “MISRA C papers”. leshatton.org. 
  • “Commentary on the first edition of the MISRA C guidelines”. knosof.co.uk. 
  • “Automating Compliance to MISRA C/C++ Standards”. johndayautomotivelectronics.com. 2012년 5월 17일에 원본 문서에서 보존된 문서. 2009년 10월 12일에 확인함. 
  • v
  • t
  • e
C 프로그래밍 언어
  • ANSI C
    • C89 및 C90
  • C99
  • C11
  • C18
  • 임베디드 C
  • MISRA C
C 특징C 표준 라이브러리 함수C 표준 라이브러리컴파일러IDEs
파생 언어
  • 분류 분류