제이슨 기델라 매스웍스 시뮬링크 플랫폼 프로덕트 마케팅 이사

[컴퓨터월드] 임베디드 SW 개발에 있어 모델 기반 설계(Model-Based Design, MBD)의 중요성이 높아지고 있다. 코드를 짜내려가며 원하는 SW를 구현하는 전통적인 개발 방식과 달리, MBD는 목표로 하는 SW의 설계를 모델링하면 별도의 도구가 자동으로 코드를 생성한다. 이러한 자동화에 따라 개발에 소요되는 시간을 획기적으로 절감할 수 있음은 물론, 세부적인 개발에 들어가기 전에 전체적인 SW의 구성을 점검할 수 있다.

제이슨 기델라(Jason Ghidella) 매스웍스 시뮬링크 플랫폼 프로덕트 마케팅 이사와의 인터뷰를 통해 MBD의 가치와 가능성에 대해 들어봤다.

▲ 제이슨 기델라 매스웍스 시뮬링크 플랫폼 프로덕트 마케팅 이사

제품 설계 통합 관리 및 코드 생성 자동화로 생산성 높여

고객의 다양한 요구사항에 맞춘 임베디드 SW를 만들기 위해서는 많은 개발 단계가 필요하다. 최종적으로 완성될 제품의 스펙을 결정하고 각각의 구성요소들을 정의하고 나면, 각 팀별로 개발 목표를 설정하고 이를 문서화해 전달한다. 실제 개발 과정은 각각의 구성 요소를 맡고 있는 팀별로 이루어지며, 꾸준한 소통이 이루어진다고 하더라도 결국은 서로 간에 칸막이가 놓여있는 것처럼 개별적으로 업무를 진행하게 된다.

하지만 이러한 전통적인 개발 과정에서는 많은 문제점들이 발생한다. 문서로 전달된 세부적인 개발 목표에 대해 설계자와 개별 팀 간의 해석이 엇갈릴 수 있고, 고객의 요구 사항이 변화할 경우 이를 각 팀들의 개별 목표에 반영하는 것도 쉽지 않다. 설계 단계에서의 테스트는 거의 불가능에 가까우며, 각 팀에서 개별적인 테스트를 진행할 수밖에 없다. 실제로 제품 전체에 대한 테스트를 진행할 수 있게 되는 것은 각 팀별로 일정 수준 이상의 목표를 달성해 이를 통합한 프로토타입이 만들어진 뒤에야 가능하다. 이러한 통합 테스트는 전체 개발 과정의 마지막 단계에서나 시행되므로, 취약점이 발견되거나 고객의 요청에 따라 제품 업데이트가 필요할 경우 많은 시간과 비용이 소요된다.

MBD는 이러한 전통적인 개발 과정이 야기하는 단점들을 개선한다. 각 팀별로 주어지는 목표에 따라 개별적인 개발 계획을 수립하는 것이 아니라, 전체 목표를 공유하고 필요한 기능을 명확히 정의함으로써 최초의 요구사항과 다른 제품이 만들어지는 것을 막는다. 고객의 요구사항이 변화하더라도 모두가 공유하는 최종 목표를 수정함으로써 각 팀들의 목표도 손쉽게 수정할 수 있다. 특히 실제 개발에 들어가기 전에 완성될 제품을 모델링하고 그래픽(GUI)으로 재현해 시뮬레이션함으로써, 개발 초기 단계에서부터 다양한 방법을 시도해보며 고객의 요구사항을 충실히 반영할 수 있다.

매스웍스는 1984년 설립된 테크니컬 컴퓨팅 SW 기업으로, 알고리즘 개발 및 데이터 분석을 위한 프로그래밍 환경을 제공하는 매트랩(MATLAB)과 임베디드 SW 시뮬레이션 및 MBD를 지원하는 시뮬링크(Simulink)를 공급하고 있다. 특히 국내에서는 MBD를 기반으로 LS오토모티브의 차량용 스위치 및 컴포넌트 제어 SW 개발, 한국항공우주산업(KAI)의 헬기 능동 진동 제어 시스템(ABCS) 등을 성공적으로 지원해 품질을 높이면서도 개발 기간을 획기적으로 단축한 바 있다.

제이슨 기델라 매스웍스 이사와의 인터뷰 내용을 문답식으로 정리했다.


Q. 전통적인 개발 과정에 비해 MBD가 갖는 강점은?
MBD의 가장 큰 특징은 개발 초기부터 세부적인 요구사항들을 SW의 전체 모델과 연결할 수 있다는 점이다. 모든 컴포넌트들은 시스템 다이내믹 내에서 통합될 수 있으며, 수학적으로 접목돼 있어 주요한 계산이나 측정 결과를 그래픽으로 재현할 수 있다. 또한 모델 차원에서 각 요구사항에 대한 세부적인 접근이 가능하기에, 개발하는 제품의 궁극적인 목적을 이해하면서도 적절한 기능들을 추가해나갈 수 있다.

또한 구체적인 수치와 수학적인 모델을 기반으로 하기 때문에 개발 초기 단계에서부터 완성품에 대한 시뮬레이션이 가능하다. 하나의 기능 혹은 HW 스펙을 변경할 경우 전체 시스템에 어떤 영향을 미칠지, 고객 요구사항을 만족시키기 위해 어떤 부분을 수정해야할 지를 사전에 파악하고 반영할 수 있다. 개발 과정 전체에 걸친 지속적인 테스트를 통해 빠르게 문제점들을 확인하고 그들이 더 많은 비용을 발생시키기 전에 시정할 수 있다.

직관적인 UI로 모델을 구현하고 이를 바탕으로 자동으로 코드를 생성해 생산성을 높인다. 이는 개발 단계에서 매우 중요하고 오랜 시간이 걸리는 부분을 자동화할 수 있다는 뜻이다. MBD를 활용하면 개발 시간을 평균 50% 단축할 수 있다. MBD가 처음 등장했을 때는 많은 고객들이 모델 기반의 시뮬레이션과 전체 모델에 대한 이해를 높일 수 있다는 점에 주목했지만, 이후에는 자동화된 코드 생성을 통해 실시간 테스트를 진행하고 이를 실제 제품에 적용할 수 있다는 것을 알게 되자 점점 더 큰 프로젝트에도 MBD를 활용하기 시작했다.

오늘날 매스웍스의 궁극적인 목표는 SW와 HW 등 컴포넌트 단계에서부터 전체적인 시스템까지 모든 워크플로우를 모델링할 수 있는 툴 체인을 만드는 것이다.


Q. 최근 MBD 도입이 활발이 일어나는 산업 분야는?
임베디드 SW를 개발하는 다양한 기업들이 MBD에 대해 많은 관심을 보이고 있다. 그 중에서도 가장 적극적으로 검토하고 있는 분야는 자율주행차와 관련된 것이다. 자율주행자동차는 운행 중에 인지해야 하는 사물이 정말 많고 이들에 대해 반드시 실수 없이 반응해야만 한다. 따라서 이를 구현하기 위해서는 인식(perception), 위치 측정(localization), 계획 수립(planning), 차량 제어(control) 등의 4가지 핵심 요소들을 갖춰야 한다.

▲시맨틱 분할(semantic segmentation) 등을 통해 주변 사물을 인식하고 ▲3D 기반의 매핑을 통해 주변 환경 대비 차량의 위지를 측정하며 ▲차량이 무엇을 할지 결정하고 이를 수행하기 위한 알고리즘을 수립하면서 ▲경로 계획을 기반으로 차량의 모든 구성요소들을 통합해 제어해야 한다.

4가지 핵심 요소들이 통합된 환경에서도 사고 없이 작동하기 위해서 임베디드 SW 설계 도구는 각각의 알고리즘을 시뮬레이션 환경에서 테스트할 수 있도록 지원해야 한다. MBD는 수학적인 모델 기반의 시뮬레이션을 전체 개발 과정 중에 지속적으로 활용할 수 있도록 함으로써 이를 뒷받침한다. 전체 시스템 설계에 대한 통합적인 가시성을 확보하고 세부적인 계획을 수립 및 변경함에 있어 MBD의 활약이 두드러진다.

앞서 BMW는 지난 2015년에 발표한 보고서를 통해 오늘날 자동차 업계가 SW개발과 관련한 수많은 문제에 봉착해 있다면서, 이를 MBD로 해결할 수 있다고 설명했다. 현재 BMW에서는 약 400명의 유저가 매스웍스의 ‘매트랩’과 ‘시뮬링크’를 활용하고 있으며, 차량 내 에너지 관리, 연소 및 전기 엔진 제어와 같은 핵심적인 부분부터 문이나 창문 제어와 같은 부분까지 모든 개발 프로세스를 가속화하고 있다. 이를 통해 특정 프로세스에 대한 적당한 추상화를 가져갈 수 있었으며, 각각의 분야 전문가들과 SW 전문가들 사이의 커뮤니케이션을 강화했다.

▲ 매스웍스의 MBD 개념도

Q. 국내에서 성공적으로 MBD를 도입한 사례가 있다면?
자동차용 스위치 및 부품 업체인 LS오토보티브는 ISO 26262 표준을 준수하는 기능 및 생산 시스템의 빠른 납품에 대한 OEM들의 요구에 대응하기 위해 MBD 도입을 결정했다. MBD를 처음 도입하다보니 현실적인 효용성에 대한 의문을 제기하기도 했으며, 이에 따라 차량의 백미러와 창문을 제어할 수 있는 도어 유닛에 우선적으로 MBD를 활용했다.

LS오토모티브의 개발자들은 초기 단계부터 MBD를 통해 최종적인 제품을 시뮬레이션하고 설계상의 결함을 찾아낼 수 있었다. 기존에는 실물 프로토타입이 완성돼야 가능했던 테스트가 개발 초기 단계부터 가능해짐으로써 시간과 비용을 아낄 수 있었다. 사양 및 기능 검증을 마치고 최적의 모델을 설계한 이후에는 ‘임베디드 코더(Embedded Coder)’를 사용해 모델로부터 약 6000줄에 달하는 C 코드를 자동으로 생성했으며, ‘프리스케일 코드워리어(Freescale CodeWarrior)’를 사용해 마이크로컨트롤러에 맞게 컴파일함으로써 짧은 시간에 사용자 오류(human error)가 없는 SW를 개발할 수 있었다.

특히 눈여겨봐야 하는 것은 MBD를 처음 도입할 때 개발 프로세스 전체를 빅뱅(Big Bang) 방식으로 변경하지 않았다는 점이다. 기업들은 새롭게 MBD를 도입하면서도 기존 제품들을 지속적으로 생산해야 하기 때문에, 새로운 개발 프로세스를 단 번에 적용하는 것은 어렵고 높은 리스크를 동반한다. 실제로 대부분의 기업들이 MBD를 작은 프로젝트에서 시작해 확대해나가고 있으며, LS오토모티브 역시 도어 유닛에서 나아가 파워시트 모듈, 바디 컨트롤 모듈 등으로 확대 적용해나가고 있다.

저작권자 © 컴퓨터월드 무단전재 및 재배포 금지