일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Excel
- 오피스
- pandas
- pythongui
- pyqt5
- 엑셀
- 안드로이드
- html
- matlab
- 깃
- 비주얼베이직
- 파워포인트
- python3
- 아웃룩
- Outlook
- 파이썬
- windows
- office
- Windows11
- 파이썬3
- git
- python
- 파이썬GUI
- VBA
- 문자열
- 윈도우10
- 윈도우11
- Android
- win32com
- Windows10
Appia의 IT세상
MISRA AC 구성 및 몇가지 사항들 본문
앞서 포스팅에서 모델 기반 개발에 관련해서 포스팅을 했습니다. 실제, 모델 기반 개발(Model Based Development / Model Based Design)은 유럽 및 선진 전장 개발 회사에서는 10년 넘게 유행을 해오던 개발 방식입니다. 물론 이러한 개발 방식에 가이드라인등에 방식 또한 많이 개발 되었습니다. 그 중 대표적인 것이 MISRA C입니다. 물론 MISRA C의 경우 코드 기반의 개발 방식에 적합합니다. 사람이 손으로 코딩을 하면서 행할 수 있는 많은 문제점들에 대해서 대비하고자, 상당히 엄격한 기준을 가지고 제약을 걸고 있습니다. Model Based Design의 경우 모델링에 따라서 코드에 패턴 및 생성되는 방식이 달라집니다. 따라서 Model based design에 몇가지 가이드 라인을 적용한 것이 MISRA AC라고 보시면 됩니다. 여기서 AC는 Auto Code라고 모시면 됩니다. 그럼 큰 구조를 보시면 다음과 같습니다.
위의 구조는 다음과 같은 의미를 지칭합니다.
MISRA AC GMG : 일반적인 모델링에 대한 가이드라인입니다.
MISRA AC TL : TargetLink 를 이용 시 모델링 및 설정 및 옵션등에 대한 가이드라인입니다.
MISRA AC SL/SF : Simulink /Stateflow를 사용시 모델링 및 설정 옵션에 대한 가이드라입니다.
MISRA AC AGC : Auto Code Generation의 결과물에 대한 가이드라인입니다.
하지만, 여기에서 다음과 같은 이야기를 할 수 있습니다. 만약 MISRA AC 를 다 준수한다면, MISRA C를 확인하지 않아도 될까요?
먼저 답을 드리면, " 아닙니다. "
물론 관점의 차이는 명확히 존재합니다. 모델링이 잘 되었을 경우 당연히 좋은 코드가 나오겠지만, 이 코드는 모델링을 바탕으로 코드를 생성하는 툴의 매커니즘에 따라서 엄청 달라집니다. 물론, 최근에는 회사들이 기술력이 발전하고 있으므로 때론 사람보다 도 효율적이고, 안전한 코드를 생성하기도 합니다. 하지만, 이 부분들이 안전을 보장해주는 것은 아닙니다.
흔히 최신 MISRA C 2012 버전에 별첨에는 Auto code generation을 이용 시, 몇몇 항목에 대해서 Category를 변경해주는 부분들을 보여줍니다. 하지만, 이 부분에서도 명확하게 이야기 하는 것은 Category의 변경을 의미하는 것이지, 준수하지 않아도 된다고 하지 않습니다.
그리고 예전에 관련 MISRA AC 관련된 문의를 했던 경험상 다음과 같은 의견을 청취할 수 있었습니다. "MISRA AC를 준수하면 당연히 MISRA C를 준수할 가능성이 높아집니다. 하지만, MISRA C를 100%만족할 수는 없습니다."
따라서, MISRA AC를 설령 준수한다고 하더라도 당연히 나온 코드를 결과로 MISRA C 를 다시한번 확인해야 합니다. MISRA C 2004 버전에서도 간단하게 관련 Comment가 있습니다. Auto Code Generation의 경우에도 MISRA C를 다시 확인해야 한다고 명시하고 있습니다.
물론, MISRA C 100%를 준수하기는 매우 어려울 수 있습니다. 따라서, 개발 영역에서 사전에 반드시 준수해야하는 항목들에 대해서는 명확히 할 필요성은 있습니다. 그렇지 않을 경우 MBD 기반으로 개발하기에 매우 힘겨울 수 있습니다.
혹 궁금하시거나 문의 사항 있으시면 언제든지 회신 부탁드립니다.
'Development > ETC' 카테고리의 다른 글
정규 표현식[Regular expression,Regexp] 000 - 정규 표현식 기본 / 테스트할 수 있는 사이트 (0) | 2021.01.01 |
---|---|
SDLC(Software Development Life Cycle),소프트웨어공학 - 폭포수 모델(Waterfall Model)/ 개발 방법론 (1) | 2020.08.05 |
SDLC(Software Development Life Cycle),소프트웨어공학 - 소프트웨어개발 라이프사이클(Software Development Life Cycle)란? (0) | 2020.08.02 |
MIL - SIL - PIL Simulation(시뮬레이션) (0) | 2020.01.19 |
MBD (Model Based Design)의 정의 (0) | 2020.01.18 |