자동차의 전자화가 빠르게 진전되면서 자동차 한 대 당 소프트웨어 개발 규모가 지난 20년 동안 비약적으로 커졌다. 그러나 소프트웨어의 대규모화와 복잡화는 개발비용 증대, 하드웨어 비용에 대한 소프트웨어 가격 상승폭 증가, 생산성 및 품질 저하를 초래하며 자동차 산업 전반에 걸쳐 심각한 영향을 미치고 있다. AUTOSAR는 이러한 문제를 해결하기 위하여 설립된 표준화 단체다. AUTOSAR는 차량용 소프트웨어 아키텍처와 개발방법론 등의 표준 명세를 정의했다.
AUTOSAR 표준 명세는 자동차 산업이 고민하고 있는 소프트웨어 개발에 따른 과제 해결의 실마리를 제공하지만, 필연적으로 각사가 현재 사용하고 있는 기본 소프트웨어보다도 오버헤드를 증가시킨다. 즉, AUTOSAR로 이행하게 되면 마이크로컨트롤러의 처리 속도를 비롯해 RAM 등의 메모리 용량이 기존보다 더 많이 필요해 부품 비용이 상승하게 된다. 바디 전자제어(Electronic Control Unit, ECU) 소프트웨어를 AUTOSAR 표준에 기반해서 개발할 경우의 장단점에 대해 스미토모전기공업의 오토네트웍스 기술연구소 소프트웨어 개발 센터에서 평가한 내용을 정리해서 소개한다. 본고에 제시된 측정결과는 특정 회사의 평가 내용이므로, 일반적이라고 말하기는 어렵다.
차량용 소프트웨어
최근 자동차는 환경 성능, 안전성, 쾌적성이 빠르게 향상되고 있다. 이것은 전자 제어에 의해 실현되고 있으며, 전자 제어는 바디 제어, 엔진 제어, 파워트레인 제어, 주행 제어, 정보 시스템 등 자동차의 전 영역에 걸쳐 확대되고 있다. 전자 제어의 핵심인 ECU 내부에는 마이크로컨트롤러(MCU)라고 하는 컴퓨터가 내장돼 있다. 자동차의 고기능화에 따라 한 대의 차량에 평균 40개에서 BMW 7시리즈 같은 고급차의 경우 70개 이상의 ECU가 탑재된다주 1).
이 ECU의 소프트웨어는 기본 소프트웨어(Basic Software, BSW)와 애플리케이션 소프트웨어(Application Software, 이하 애플리케이션)로 구성된다(그림 1). 각각의 계층은 소프트웨어 컴포넌트(Software Components, SWC)로 구성된다. 그리고 SWC는 코드와 데이터로 구성된다. 애플리케이션은 ECU 기능 그 자체로, 바디 ECU의 애플리케이션은 도어록, 헤드라이트, 와이퍼 등이 포함된다. 최근에는 오토 라이트, 오토 와이퍼, 보안 제어 등 애플리케이션의 다기능화가 진행되고 있다. 반면 기본 소프트웨어는 ECU 그 자체의 기능이라기보다는 마이크로컨트롤러의 관리 서비스, 실시간 운영체제, 통신 서비스 등 애플리케이션을 동작시키기 위한 토대에 해당하는 부분이다.
최근 자동차의 고기능화가 진행되면서 자동차의 총 원가에서 차지하는 전자 관련 부품 비율이, 하이브리드 카의 경우에 50%까지 높아졌고 ECU 개발에서 소프트웨어 개발 공정이 전체 일정의 80%를 차지하게 되었다. 그만큼 소프트웨어가 자동차 개발에 있어서 대단히 중요해졌으며, 자동차의 기능성과 성능은 점점 더 소프트웨어에 의해 결정되고 있다. ECU 소프트웨어 개발은 소위 “V-Cycle”을 통해 이루어진다(그림 2),
자동차의 고기능화를 실현하기 위하여 소프트웨어는 대규모화, 복잡화되고 있다. 예를 들어 메르세데스-벤츠 S-클래스의 라디오 및 내비게이션 시스템은 무려 2,000만 라인이 넘는 코드를 요구한다. Frost & Sullivan에 따르면, 가까운 미래에 자동차의 소프트웨어 코드는 2억 라인에서 3억 라인에 이를 전망이다. 이처럼 소프트웨어의 대규모화와 복잡화는 생산성 및 품질의 저하를 초래하여 업계 전체의 심각한 과제가 되고 있다.
자동차 소프트웨어 개발에 따른 과제
기본 소프트웨어의 개발: 기존의 기본 소프트웨어는 부품 메이커와 자동차 메이커가 독자적으로 개발했다. 그러나 자동차의 상품력은 기본 소프트웨어의 우열보다도 전적으로 애플리케이션의 우열로 결정되기 때문에, 차별화를 꾀하기 어려운 기본 소프트웨어의 독자 개발은 부담스러운 부분이었다. 그래서 기본 소프트웨어를 표준화해 업계 전체가 공유하는 방안이 검토되기 시작했다. 그러면 기본 소프트웨어 개발에 투입되던 인적자원을 애플리케이션 개발에 투입할 수 있게 된다. 과거에 유럽에서는 OSEK/ VDX에 의한 운영체제(OS)와 통신 서비스의 표준화가 진행되었지만, 보다 넓은 범위에서 표준화에 의한 개발의 효율화가 한층 더 필요하다는 의견이 제기되었다.
애플리케이션의 이식성 확보: 자동차의 시스템 개발에서는 대부분의 경우에 같은 차종이나 다른 차종의 시스템을 기초로 해서 ECU의 개수, 탑재 부분, ECU에 애플리케이션을 다시 분배하는 형태로 개발된다. 예를 들면 베이스 모델에서는 두 개의 ECU로 분할돼 있던 애플리케이션을 새로운 모델에서는 한 개의 ECU에 통합해서 개발하는 경우가 있다. 반대로 분할해서 개발할 수도 있다. ECU의 개수, 규모, 탑재 기능이 증가함에 따라 애플리케이션의 분배 변경 규모가 커지고 복잡해지고 있다. 이러한 분배 변경과 관련해서 기존의 소프트웨어 개발에서는 애플리케이션의 수정이 필요했다. 만약 애플리케이션을 수정하지 않고 ECU 간 애플리케이션 분배를 변경할 수 있다면 생산성을 크게 향상시킬 수 있다. 소프트웨어 공학에서는 소프트웨어가 다른 하드웨어, 소프트웨어 등의 환경으로 옮겨질 수 있는 능력을 이식성(portability)이라고 한다.
기업 간의 명세 전달: 기존의 자동차 메이커와 부품 메이커 간에는 명세서라고 하는 문서에 의해 명세가 전달되었다. 자연어 기반의 명세서는 애매한 부분이나 불완전한 부분이 존재할 수 있으며, 그것이 불량의 원인이 되고 재작업과 품질 저하를 초래한다
<저작권자 © AEM. 무단전재 및 재배포, AI학습 이용 금지>