복잡한 자동차 프로젝트, 소프트웨어는 기술이 아닌 또 하나의 공학이다

글│미르코 베커(Mirko Backer), EMEA 지역 마케팅 이사, Siemens PLM Software
2017년 07월호 지면기사



자동차 제조사들이 스스로 모빌리티 또는 소비자 경험을 제공하는 회사로 여기고 있다. 이는 동시에 전문적인 소프트웨어 회사로 준비돼야 함을 의미한다. 이를 위해서는 제품 수명주기 전반을 아우르는 통합된 제품 설계 및 개발 시스템이 필요하다.

 

문제해결을 위해 밤을 지새우며 고군분투하는 ‘hero coder’ 이야기나, 종종 개인 개발자에게 유명세나 행운을 안겨주는 획기적인 스마트폰 앱의 성공이나 일반적으로 소프트웨어 개발은 시행착오를 통한 개발자 개인의 고독한 레이스로 간주된다. 그러나 주요 안전 시스템과 같은 대규모의 개발팀이 작업하는 복잡한 프로그래밍 프로젝트의 경우는 조금 다른 이야기다.
 

소프트웨어 공학 분야는 기술보다는 과학에 가깝다. 고품질의 소프트웨어를 목표로 하는 프로세스 중심의 개발원칙은 신뢰도를 중요시하는 NASA와 같은 기관에서 개발됐다. 이러한 원칙은 방위, 항공우주, 임베디드 및 산업용 제어 시스템, 의료, 에너지 및 자동차 등의 복잡함과 비용, 그리고 리스크 간의 균형을 필요로 하는 산업들의 핵심 원칙이다.
 

위와 같은 산업에서 리스크는 여전히 산재돼 있으며, 비용절감에 대한 압박은 계속 높아지고, 복잡성은 증가하고 있다. 자동차 설계는 소프트웨어 공학의 다양한 부문들이 서로 협력할 뿐만 아니라 기계 및 시스템 공학과도 결합해야 하는 영역이다. 임베디드 소프트웨어로 강화된 수많은 기계적(mechanical) 시스템과 마찬가지로, 현재의 자동차 설계는 더 이상 순수하게 주행만을 목적으로 하는 운송수단을 목적으로 하지 않기 때문이다. 자동차 회사들은 모빌리티 또는 가전회사로 변모하고 있다.

이들 회사들은 안전과 성능에 대한 책임감 중 그 어느 것도 포기하지 않은 채 새로운 제품 출시를 위해 새롭고 파괴적인 기술을 활용하고 있다.
이는 곧 제품 개발 주기의 관리를 돕는 툴이 통합된 시스템으로써, 다양한 영역과 분야들을 어울러 원활한 정보 흐름을 지원하고, 모든 개발단계에서 효율성과 책임소재를 명확히 제공할 수 있어야함을 의미한다. 

 

자동차, 혹은 복잡한 커넥티드 시스템


최근 자동차 시장의 새로운 미래 먹거리로 관심을 받고 있는 보조(assisted), 커넥티드 및 자율주행 자동차와 같은 가장 발전된 사례는 물론, 순수 전기자동차, 하이브리드 전기자동차 분야에서는 이미 새로운 수준의 설계 과제들이 추가되고 있다. 파워트레인을 예로 들어보자. 파워트레인은 정확성이 생명인 자동차의 실시간 시스템 중 하나이다. 차량은 단 하나의 신호도 놓치거나 입력(input)에 대한 정확한 대응에 실패해서는 안 된다.
 

파워트레인은 더 이상 독립적인 시스템이 아니다. 하이브리드 파워트레인의 배터리 충전을 위해 제동장치로부터 에너지를 가져오는 경우, 차량은 더 많은 센서를 통합시켜야 하고 자동차 전체의 에너지 최적화와 배터리 소모에 대해 고려해야 한다. 이는 자동차의 주행 범위에 영향을 주기 때문이다. 또한 파워트레인은 운전자를 위해 정보, 제어, 내비게이션을 결합하는 인포테인먼트 시스템과도 통합돼야 한다. 이는 새로운 커넥티드 카 기능과 전통적인 개인용 엔터테인먼트 옵션 및 자동차와의 휴먼 인터페이스가 결합하는 지점이다. 이때 복잡성이 가중되어 운전자 부담으로 연결, 사고를 유발해서는 안 되기 때문에, 이러한 인터페이스와 사용자 경험 설계는 매우 중요하다.
 

각 시스템의 핵심 기능 저하나 보안문제를 유발하지 않으면서, 이와 같은 모든 차원들을 통합하는 것은 소프트웨어 공학의 중요한 과제이다.
 

자동차는 하나의 기계장치로서 시작되었지만, 이제는 바퀴 달린 수백만의 코드 라인을 가진 매우 복잡한 소프트웨어 집합체가 되었다. 자동차나 트럭만큼 많은 소프트웨어를 필요로 하는 시스템은 거의 없으며, 심지어 자동차에는 전투기보다 많은 코드가 내장돼 있다. 오늘날 새로운 자동차에 대한 50만 개의 서로 다른 필요 요건들 중 90% 이상은 전혀 기계적인 요소가 아니다. 오히려 전자적이고 소프트웨어와 관련된 것들이다.

 

  

  

또한 단 하나의 차량을 만들기 위해 그 코드를 작성하는 것은 아니다. 자동차 설계가 서로 다른 모델들 간에 공유되는 공통 플랫폼으로 전환되었을지라도, 수십 또는 수백 개의 개인 차량 플랫폼의 베리언트(variant)가 존재하기 때문이다. 즉 자동차를 더 이상 각각의 프로토타입을 만들고 설계한 후 최종 통합 단계에서 합치는 기계적 시스템의 집합으로 접근해서는 안 된다. 이제는 물리적 시스템의 모델링, 생성(creation), 테스트, 검증을 소프트웨어를 통해 시뮬레이션하고, 동시에 이를 서로 연결하고 제어할 수 있는 소프트웨어를 병행해서 사용해야 한다.

소프트웨어 개발은 전체 프로세스 중 한 단계로, 전반적인 구조와 시스템 설계를 계획하고, 시스템의 구성요소를 정의하는 것으로부터 출발한다. 소프트웨어와 하드웨어 개발은 이질적이거나(heterogonous) 단편적이기보다는 개발과정 전반에 걸쳐 전체적인 시스템을 구성하는 소프트웨어 모델과 기계적(mechanical) 및 전자적(electrical) 구성요소 간의 강력한 통합을 이루며 병렬적으로 개발되어야 한다. 이를 통해 소프트웨어와 하드웨어를 동시에 검증할 수 있다. 이러한 모델 기반의 개발환경에서는 그 동안 파워트레인, 안전 시스템, 인포테인먼트와 같은 영역에서 개별적으로 진행된 시스템 엔지니어링이 모든 영역에 걸쳐 함께 적용된다.

오늘날 개발되는 새로운 차량은 PLM(제품수명주기관리) 툴로 관리했던 기계적이고 전자적인 시스템과 ALM(애플리케이션 수명주기관리) 툴이 지원하는 전자적인 소프트웨어 시스템을 결합하고 있다. 안전이나 혁신 중 어느 것도 포기하지 않고 고객이 원하는 시점에 새로운 차량을 효과적으로 제작하기 위해서는 위의 두 영역을 통합해 함께 제공하며, 최적의 작업방식을 지원하는 도구가 필요하다.
 

대규모의 소프트웨어 엔지니어 팀이 여러 시스템들의 로직과 코드 작업을 수행하고 있기 때문에, 개발 척도로서 모든 시스템들에 대한 책임 소재를 명확히 할 필요가 있고, 변경사항 중 어느 것도 위험한 부작용을 초래하지 않았다는 것을 확증하기 위해 회귀 테스트(regression testing)가 필요하다. 효율성을 위해서 위와 같은 조치들은 지속적으로 통합되고 자동화됨으로써 코드의 전반적인 안정성이 제조 중인 차량 플랫폼의 모든 변형에 걸쳐, 어떤 변경사항으로 인해 저하되지 않았음을 입증해야 한다.
또한 언제든지 누가 설계를 승인했는지, 어떤구성요소들이 함께 테스트되었는지, 혹은 발견된 결점들에 대해 어떻게 우선순위를 매겨야 하는지 등에 대해 되짚어 물어야 할 경우가 발생할 수 있기 때문에 차량의 기계적, 전자적, 그리고 소프트웨어 컨트롤 시스템 등의 모든 영역을 볼 수 있는 툴이 필요하다.
 

산업의 발전 속도를 따라잡기 위해 자동차 개발은 많은 수의 시뮬레이션을 거쳐야 한다. 시뮬레이션은 자동차 플랫폼, 차량 플랫폼 및 베리언트의 다양한 범위에서 호환성과 재사용을 가능하게 하는 방법을 통해서, 소프트웨어 상의 모든 변화를 검증하기 위해 물리적 시스템에 대한 테스트로부터 얻은 데이터를 파일화하고 반복 재생한다. 자율주행 차량과 보조 시스템에 대한 데이터 수집과 테스트는 운전문화와 운전 및 안전 규칙이 다를 수 있는 모든 자동차 운행 지역에 걸쳐 실시되어야 한다.
 

대부분의 자동차 리콜은 차량의 하드웨어보다 소프트웨어와 관련 있다. 따라서 더 나은 소프트웨어 공학을 통해 품질을 높이는 것은 자동차 제조사의 재정 부담을 경감해주고 리콜에 의해 평판이 손상되는 것을 막아주는데 필수적이다.

이러한 모든 모델들의 테스트, 확인 및 검증은 PLM 시스템과 통합된 소프트웨어 개발 툴을 사용해 통합된 방법으로 이루어져야 하며, 이들 시스템 간에도 통합되어야 한다. 이를 통해 일련의 개별 단계가 아니라 지속적인 프로세스로서 요구사항, 설계 설명서 및 다른 모델들 간의 정보 흐름의 시각화를 지원할 수 있다. 이는 개념의 타당성을 증명하는 것부터 전체 시스템을 구현하고 최적화하는 것, 뿐만 아니라 선적 이후의 더 많은 과정에까지 계속적으로 확장 적용되어야 한다. 제조사들은 점점 더 빠른 속도로 이러한 발전을 이뤄내야만 한다.
 

속도와 안정성


자동차의 제품 개발 사이클은 현재 잠시 줄어들고 있다. 앞으로 기존과는 다른 특성과 작동 방식을 지닌 처리해야할 컴포넌트가 새롭게 계속해서 생겨날 것이다. 제조사들은 새로운 차량 모델을 선보여야 하고 새로운 기능을 더 빨리 추가하는 것도 중요하다. 기술의 속도는 자동차 회사가 쉽게 따라잡기 어려울 만큼 빠르게 변화하곤 한다. 왜냐하면 이는 새로운 컴포넌트와 기술을 채택하는 것 자체가 아닌, 그것들을 통합하고 검증하는데 드는 시간과 비용에 달린 문제이기 때문이다.
 

운전자들은 자신의 자동차를 오랜 기간 사용하기 원한다. 동시에 전자기기처럼 매년 이뤄지는 업데이트와 빈번하게 출시되는 신규 앱과 같이 빠른 개선 속도에 익숙해져왔다. 차량 자체에 새로운 기능 추가나 새로운 액세서리 지원과 같이, 운전자들은 자신이 구매한 자동차에도 전자기기와 같은 속도의 개선을 기대한다. 또한 차량 관련 규제 변화도 잦기 때문에 차량 제조사들은 제품 출시 후 지속적인 차량 개선을 진행해야 한다.
 

개발을 과학이나 공학 분야로 여기는 것은 증가하는 복잡성, 비용절감에 대한 압박 및 속도를 모두 해결할 수 있는 유일한 방법이다. 여기에는 엄격하고 체계적인 프로세스를 따르는 소프트웨어 공학 방식이 요구된다. 하지만 만약 요구사항들을 수집(개발시간에서 큰 비중을 차지하기 시작하는 업무)한 후 이 요구사항들에 맞춰 코드를 작성, 테스트 및 검증하고 개발과정 내의 반복성을 개선하는 것을 통해 다른 방식으로 원활하게 전환할 수 있다면, 생산성과 효율성, 신뢰도를 향상시킬 수 있을 것이다.
 

자동차 산업은 안전, 인체 공학, 성능, 환경문제와 테스트 방법을 다루는 ISO 규격의 증가와 AUTOSAR(AUTOmotive Open Systems Architecture)와 같은 파트너십을 통해 표준화를 향해 다가가고 있다. 이러한 표준들을 준수하려면 인증된 소프트웨어 개발 프로세스를 도입할 필요가 있다.
 

소프트웨어가 개발 프로세스 내에서 더욱 중요해짐에 따라, 올바른 툴과 기술을 사용함으로써 효율성과 정확성을 높일 수 있고 비용도 줄일 수 있다. 이러한 툴과 기술들은 소프트웨어 엔지니어가 보다 쉽게 이해할 수 있는 방법으로 요구사항, 설계 명세서 및 코드를 제시하는데 도움을 줄 수 있다. 또한 소프트웨어 구성요소를 재사용할 수 있게 해주어 소프트웨어 개발 로드를 상품화하는데 핵심 역할을 한다.
 

이론적으로 차량과 차량 플랫폼 사이, 심지어 차량 내의 엔지니어링 영역 전체에 걸친 소프트웨어 구성요소를 재사용하는 것은 비용과 개발시간을 줄여주며 품질을 향상시킨다. 하지만 구성 요소들을 다양한 시나리오에서 재사용할 수 있도록 만드는 것은 앞으로의 더 많은 개발, 처리해야할 더 많은 종속성, 그리고 더 많은 테스트와 검증을 필요로 하기 때문에 실제로는 더욱 복잡하다. 하지만 소프트웨어 재사용은 자동차 산업이 취해야 할 새로운 접근방식의 또 하나의 핵심이다.
 

디지털화하고 설계하고 기존 질서를 파괴하라, 그렇지 않으면 도태된다


오늘날 거리의 자동차 중 대부분은 파워트레인으로부터 발전되었지만, 지금은 외부 세계로부터 영향을 받고 있다. 즉 자동차 설계방식은 점점 더 까다로워질 새로운 세계에 맞춰 변화해야 한다. 더 이상 임시변통 또는 일회용 코딩이 설자리는 없다. 대신 엔드 투 엔드(end-to-end) 시스템 설계에 대한 통합적 접근이 필요하며, 여기에서 소프트웨어 개발은 통달해야 할 또 다른 엔지니어링 분야이다. 또한 하드웨어 제품에 소프트웨어를 포함시키는 데에서 비롯되는 복잡함을 해결할 수 있는 도구가 필요하다.
 

오늘날 자동차 회사들은 스스로 모빌리티 또는 소비자 경험을 제공하는 회사로 여기고 있다. 이는 자동차 제조사들이 동시에 전문적인 소프트웨어 회사로 준비되어야 한다는 것을 의미한다. 이를 위해서는 제품 수명주기 전반을 아우르는 통합된 제품 설계 및 개발 시스템이 필요하다. 여기서 제품 수명주기 전반이란 기계적 측면과 디지털 측면 모두에서 아이디어부터 설계, 제조, 유지보수, 그리고 지속적인 업데이트와 개선을 아우르는 사이클을 의미한다. 이 사이클에서는 앞으로는 효율성과 생산성을 추구하는 방향으로, 뒤로는 책임감과 추적 가능성을 추구하는 방향으로 정보가 흐른다.
 

오늘날 새로운 비즈니스 가치 제공은 경쟁우위를 유지할 수 있는 유일한 방법이 되고 있다. 기술과 비즈니스 모델의 파괴적인 변화는 그 속도가 빨라지고 있으며, 이러한 새로운 시스템들과 작업방식을 지원하는 툴을 요구한다. 단 하나의 혁신에 의해 시장 전체가 사라질 수 있는 시대 상황 속에서 살아남기 위한 유일한 방법은, 사업과 기술의 민첩성을 발전시키는 것뿐이다.
 

점점 더 많은 제품들이 순수한 하드웨어 혹은 소프트웨어가 아닌 둘의 결합체가 되어가고 있다. 또한 제품들이 더 작아지고, 더 스마트해지고, 임베디드 소프트웨어와 마이크로프로세서에 더 의존하고, 더 상호 연결됨에 따라 제품의 복잡성이 크게 증가하고 있다. 동시에 고객들은 온라인으로 주문한 개인맞춤형 제품을 즉시 수령할 수 있을 것으로 기대한다. 만약 여러분이 이 기대를 충족시키지 못한다면 여러분의 경쟁자가 해낼 것이다.

<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>

PDF 원문보기

본 기사의 전문은 PDF문서로 제공합니다. (로그인필요)
다운로드한 PDF문서를 웹사이트, 카페, 블로그등을 통해 재배포하는 것을 금합니다. (비상업적 용도 포함)

  • 100자평 쓰기
  • 로그인


TOP