Appia의 IT세상

MBD (Model Based Design)의 정의 본문

Development/ETC

MBD (Model Based Design)의 정의

Appia 2020. 1. 18. 20:20
반응형

이번 포스팅에서는 Model Based Design라는 용어에 대해서 이야기 하고자 합니다. MBD는 개발의 시작에서부터, 즉 요구사항부터 로직 개발의 완성까지 모든 부분에서 Model을 이용하는 것입니다

 

한예를 들어보겠습니다

제가 책상을 주문하고자 합니다. 이 때, 이 요구 사항을 받은 제작자는 잘 만들수 있을까요? 아마도 힘들 수 있을 것이라고 생각합니다. 사용자가 어떤 형태의 책상 다리가 몇개인지, 상판의 구조는 원형인지 아니면 사각형인지에 대한 정확한 요구가 없기 때문입니다

만약 그림(여기서 말하는 모델)로 구현해서 요구사항을 준다면 어떨까요? 제작자는 분명 만들기 쉬울 것입니다. 소비자가 요구하는 형태의 그림을 보고 생각하면 되기 때문입니다

 

이와 같이 그림, 즉 모델을 통해서 요구사항을 주고, 그 모델을 바탕으로 제어 되는 부분들에 대해 모델링을 한다면, 요구 되는 사항들을 그대로 반영할 수 있을 것입니다

 

그래서 최근에는 많은 개발 영역에서 특정 툴의 사용한 모델링으로 기능사양을 제공합니다. 그리고 그 기능 사양을 보고, 모델링을 다시 하는 형태로 구성이 됩니다. 그리고 그렇게 모델링을 바탕으로 툴을 통해서 자동으로 소스 코드를 생성하는 형태로 개발이 이루어집니다. 이렇게 된다면 구현에 있어서 명확해 질 것입니다

주로 Model Based Design 에 사용되는 툴들은 다음과 같습니다. Model Based Design 을 실행하기 위해서 다음과 같은 툴들을 많이 사용합니다

 

  • Simulink/Stateflow (Mathworks)
    • 코드 생성 : Embedded Coder (Mathworks)
    • 코드 생성 : TargetLink  (dSPACE)
  • ASCET (ETAS) 

(이 외에도 많은 툴들이 있지만, 제가 아는 한에서만 작성하겠습니다.)

 

그럼 이런 Model Based Design을 사용하면 어떤 장점이 있을까요? 제가 생각하기에 가장 큰 장점은 바로 시뮬레이션 기법을 사용한다는 것입니다. , 시뮬레이션 기법을 통해서 그 모델링의 연산의 정상 구현 여부에 대해서 확인하는 것입니다

 

많은 개발에 있어서, 검증을 하기 위해서는 실타켓에 다운로드 해서 검증은 하는데, 이럴 경우 MIL - SIL - PIL 등의 시뮬레이션등을 통해서 타켓에 없이도 그 로직에 대한 유효성을 검증할 수 있습니다. (MIL - SIL - PIL 은 다른 포스팅에서 구체적으로 포스팅 예정 )

 

, 그럼 나중에 실 타켓에 대해 문제가 발생할 경우 검증을 해야할 범위가 확연히 줄어들 것입니다. 물론, 이런 부분을 사용하기 위해서는 Firmware단과 Applicaation단이 명확하게 구별이 되어야 합니다. (물론 현실 부분에서는 제약이 있는 부분이 있습니다. ) 

 

이런 부분들은 전통적인 제어 측면에서는 매우 효율적입니다. 하지만, 시대가 발전하면서, 최근에 인포테이먼트 및 텔레매틱스등에서는 전통적인 코드 기반의 개발 방식이 더 효율적이라고 생각합니다

 

물론 이번 포스팅은 예전 경험을 바탕으로 한 저의 개인적인 의견입니다. 혹시, 궁금하시거나 문의 사항있으시면 댓글 및 방명록에 글 부탁드립니다.

반응형
Comments