차세대 소프트웨어 정의 차량의 개발과 출시
작성자: Jim Tung, MathWorks
알고리즘은 실시간 스케줄러에 의해 호출되는 대신, 서비스 지향 아키텍처의 일부로 배포되고 API 호출을 통해 호출될 수 있습니다. 이러한 전환에 따라 모델 기반 설계 툴은 신호 기반 인터페이스뿐만 아니라 서비스 지향 아키텍처도 지원하도록 업데이트되어 왔습니다.
차세대 차량은 소프트웨어를 통해 브랜드의 차별화된 기능과 고객 가치를 제공하는 최초의 차량이 될 것입니다. 이동성에 대한 고객의 빠르게 진화하는 기대에 부응하기 위해 이러한 SDV(소프트웨어 정의 차량)의 핵심에 연결성, 자율성, 전동화 등의 신기술이 등장하고 있습니다. 고객이 직접 접하는 부분 및 눈에 보이지 않는 부분이 있는 이러한 혁신을 가능하게 하는 소프트웨어에는 상당한 투자가 필요합니다. 또한 이는 보안 및 기타 필수 업데이트는 물론이고 애드온 앱 및 서비스를 제공하는 기업의 역량을 개발할 수 있는 흔치 않은 기회를 의미하기도 합니다.
물론 소프트웨어는 오랫동안 차량의 성능 및 안전성 개선에서 중요한 역할을 해왔습니다. 물리 시스템과 밀접하게 연동되고 ECU에 배포되는 이 임베디드 소프트웨어는 높은 신뢰성을 요구합니다. 또한, Automotive SPICE®와 같은 공정 모델과 ISO® 26262와 같은 기능 안전 표준을 준수해야 하는 경우도 많습니다. 다수의 자동차 OEM 및 공급업체는 시뮬레이션을 사용한 설계의 조기 검증 및 이후의 코드 생성과 검증을 통해 이 소프트웨어의 출시를 가속화하는 데 모델 기반 설계를 능숙하게 사용하고 있습니다. (그림 1)
SDV에서는 소프트웨어의 역할이 한층 더 중요해집니다. 조직은 차량의 양산 이후에도 지속적인 소프트웨어의 개선 및 업데이트를 계획해야 합니다. 이러한 지속적 개선을 추진하기 위해서는 커넥티드 차량에서 수집한 운영 데이터를 통합해야 합니다. 또한, 성공의 측정을 위해 사용되는 KPI(핵심 성과 지표)를 확장하여 개발 속도와 같은 기존 메트릭을 변경 실패율 및 평균 복구 시간 등 DevOps의 운영 관련 메트릭으로 보완해야 합니다.
이를 위해서는 사고방식의 전환이 필요합니다. 많은 자동차 회사들은 다음과 같은 질문을 합니다. 우리의 소프트웨어 개발 및 시스템 개발 팀과 공정이 어떻게 변해야 하며 이러한 변화에 대응하기 위해 모델 기반 설계는 어떻게 발전하고 있는가?
SDV에 대한 모델 기반 설계의 발전 방향
지금까지 엔지니어링 팀이 모델 기반 설계를 가장 많이 사용한 경우는 임베디드 시스템을 타겟팅하기 위함이었습니다. 많은 경우에 이는 리소스가 제한적인 ECU 또는 마이크로컨트롤러에 신호 흐름으로 표현되는 알고리즘의 경성 실시간 구현을 의미합니다. 이제는 ECU 외에도 클라우드뿐만 아니라 SDV의 중앙 또는 영역 컴퓨터도 타겟에 포함됩니다. 또한 실시간 스케줄러에 의해 알고리즘이 호출하는 대신, 서비스 지향 아키텍처의 일부로 배포되고 API 호출을 통해 호출될 수 있습니다. 이러한 전환에 따라 모델 기반 설계 툴은 신호 기반 인터페이스뿐만 아니라 서비스 지향 아키텍처도 지원하도록 업데이트되어 왔습니다.
엔지니어링 팀은 현재 설계, 구현 및 검증을 중심으로 모델 기반 설계를 사용하고 대화형 방식의 인간 중심 개발 워크플로에서 데스크탑용 툴로 작업하는 것에 익숙합니다. 향후에는 자동화가 핵심 초점이 될 것이며, CI(지속적 통합) 파이프라인, Kubernetes 기반 흐름 및 유사한 메커니즘을 통해 더 큰 역할을 하게 될 것입니다. 이미 많은 조직에서 모델 기반 설계와 CI를 통합하여 모델의 변경 사항이 커밋될 때 모델 검증, 코드 생성, 정적 코드 분석 및 기타 작업을 수행하고 있습니다.
이와 유사하게 PLM(제품 라이프사이클 관리) 시스템을 사용한 툴 및 자산 관리에 대한 상대적으로 좁은 시각도 확대되고 있습니다. 이제는 팀에서 소프트웨어 아티팩트를 저장하고 반복하며 신속하게 개선하기 위한 애자일 방법으로 Git™ 및 Artifactory 리포지토리를 사용하는 트렁크 앤 브랜치 접근법을 도입하는 빈도가 대폭 증가했습니다. 소프트웨어 개발팀은 더 민첩하고 세분화된 접근법을 사용합니다. 게다가 이런 팀들은 이제 소프트웨어 시스템을 더 이상 SOP(생산 시작)를 위해 컴포넌트 목록에만 제공하는 것에 그치지 않고, SOP 이후에도 이를 무선으로 SDV으로 스트리밍할 것입니다. 모델 기반 설계는 이러한 새로운 개발 패러다임에 대응하기 위해 진화하고 있습니다.
SDV의 문화적 격차 해소
물론 SDV를 비롯한 모든 혁신의 서사는 단순히 진화된 툴 및 공정에 관한 것만은 아닙니다. 이러한 툴과 공정을 사용하는 인력에 관한 것이기도 하고 이들을 나누는 조직 문화와 관한 것인 경우도 많습니다. 시스템 엔지니어링과 임베디드 소프트웨어의 배포에 모델 기반 설계를 사용해 온 팀은 여러 가지 면에서 코드 중심적인 팀, 즉 DevOps 방식을 사용할 가능성이 높은 팀과는 매우 다른 환경에서 업무를 수행합니다.
일부 조직에서는 이미 이러한 완전히 다른 두 그룹 간의 격차를 해소하기 시작했습니다 (그림 2). 이러한 조직에서는 시스템 엔지니어링 팀이 DevOps 관점을 채택하기 시작했습니다. 예를 들어, 시스템 모델 또는 시나리오 모델을 생성한 경우 해당 모델을 다운스트림 자동화에 통합하는 업무의 담당자에게 인계하는 공정이 마련되어 있습니다. 다른 한편으로, 이러한 조직의 코드 중심적인 팀은 시스템과 모델을 업무의 중요 요소로 간주하기 시작했습니다. 그들은 SDV에 필요한 소프트웨어와 시스템을 일관성 있는 전체로 배포하는 데 있어 시뮬레이션의 가치를 인식하고 있으며, 이를 그들의 공정에 통합하는 방법을 익히고 있습니다. 아울러 이러한 조직은 CI/CD(지속적 통합/지속적 배포) 플랫폼과 같은 공통 플랫폼을 통해 팀을 하나로 모으기 위한 노력을 기울이고 있습니다. 이렇게 공유된 기술 스택은 확장 및 유지 관리가 더 용이하며 흐름, 속도, 소프트웨어 견고성 및 시스템 엄격성에 대해 공유된 KPI의 추적을 간소화하도록 도와줍니다.
실제 활용 사례
오늘날 SDV의 소프트웨어 배포를 가속화하기 위해 팀들이 무엇을 할 수 있는지를 더 잘 이해하려면 다음 활용 사례를 살펴볼 수 있습니다. 한 엔지니어링 팀은 이미 양산 중인 전기차에 대한 업데이트를 배포하는 업무를 맡았다고 가정하겠습니다. 이 업데이트를 통해 차량이 시속 0마일에서 60마일(100km)까지 가속하는 데 걸리는 시간을 10% 단축하는 새로운 기능인 Sport + 모드가 추가되었습니다.
이 예에서는 팀이 이 목표를 달성하기 위해 채택한 다음의 세 가지 주요 워크플로를 중점적으로 살펴보겠습니다.
- 클라우드에서 시뮬레이션을 사용한 시스템 분석 수행
- CI를 사용한 테스트 및 코드 생성 자동화
- 가상 ECU 배포 및 테스트 수행
시스템 수준 연구. 첫 번째 단계로, 팀은 필요한 가속을 달성하기 위해 변경할 수 있는 주요 소프트웨어 파라미터를 파악하고 컴포넌트 및 시스템 수준에서 이러한 파라미터 변경의 효과를 정량화해야 합니다. 그리고 Virtual Vehicle Composer 앱을 사용하여 Simulink®에서 가상 차량을 대화형 방식으로 구성하고 구축합니다 (그림 3). 그런 다음 일련의 파라미터 스윕을 실행하여 최대 배터리 전류 및 제동 회생 제한과 같은 모델 파라미터를 변경하는 동시에 가속, MPGe, 기타 시스템 수준 및 컴포넌트 수준 메트릭을 모니터링합니다. 시뮬레이션 속도를 향상하기 위해 이 팀은 AWS®에서 MATLAB Parallel Server™를 사용하여 EC2 인스턴스에서 파라미터 스윕을 실행해 수백 개의 시뮬레이션을 수행하기 위해 필요한 시간을 몇 시간에서 몇 분으로 단축했습니다. 요구되는 가속 향상을 위해서는 파라미터 최적화 외에도 알고리즘 변경이 필요할 수도 있습니다. 이러한 변경 사항은 모델에서 신속하게 구현한 다음 MIL(model-in-the-loop) 및 SIL(software-in-the-loop) 테스트를 통해 검증할 수 있습니다.
CI를 사용한 자동화된 테스트 및 코드 생성 시스템 수준 연구가 완료되면 팀은 컴포넌트 모델을 수정하기 시작하여 파라미터 값을 업데이트하고 차량의 가속을 향상하기 위해 필요한 기타 변경을 수행합니다. 많은 경우에 여러 엔지니어가 서로 다른 기능과 컴포넌트를 동시에 작업하기 때문에 팀은 모델을 컴포넌트화하여 소스 컨트롤이 가능하도록 합니다. 이를 통해 엔지니어는 자산을 공유하고 팀원들과 작업을 동기화할 수 있습니다. 또한, 이를 통해 팀은 확장 가능한 Jenkins® 또는 GitLab® CI 파이프라인을 사용하여 변경 사항이 커밋될 때 테스트 및 코드 생성을 자동화할 수 있습니다. (그림 4) 테스트는 모델 수준과 애플리케이션 소프트웨어 수준에서 실행할 수 있으며(MISRA C™ 검사 및 기타 정적 분석 포함), 다양한 환경 및 컨테이너에서 실행되도록 구성할 수 있습니다.
가상 ECU 배포 및 테스트. 코드를 생성하고 테스트한 후에는 가상 ECU에서 애플리케이션 소프트웨어를 검증하는 것이 다음 단계입니다. 이 사례에서 생성된 코드는 AUTOSAR Classic 및 Adaptive 플랫폼에 애플리케이션 소프트웨어 컴포넌트로 배포됩니다. 타겟 하드웨어에서 테스트를 수행하기 전 컴포넌트를 미들웨어와 통합하고 무선 업데이트 방식으로 차량에 전송할 수 있는지를 확인하기 위해 이 팀은 AWS EC2 인스턴스에서 실행되는 가상 ECU를 사용합니다. (그림 5) 이 특정 애플리케이션에서는 Adaptive AUTOSAR의 경우 Elektrobit(EB) corbos 미들웨어에, AUTOSAR Classic의 경우 EB tresos 기본 소프트웨어에 컴포넌트를 통합합니다. 가상 ECU에서 테스트를 실행한 후, 팀은 Simulink를 통해 테스트 결과를 이전에 수행한 (MIL) 및 (SIL) 테스트 결과와 비교합니다. 통합 프로덕션 소프트웨어가 시험 주행에 적합하다는 것을 확인하면 팀은 소프트웨어를 배포할 준비가 된 것입니다.
앞으로 나아갈 길
MathWorks의 엔지니어들은 자동차 산업 및 전 세계 수천 곳의 고객사와 협력하여 팀이 조직 내에서 새로운 방식으로 모델 기반 설계를 사용할 수 있도록 지원해 왔습니다. 더 많은 기업이 SDV 여정의 초기 단계에 착수함에 따라 우리는 이 업무를 지속하고 있으며, 추가적인 자동화를 추진하고 프로덕션 차량에서 시스템 엔지니어링, 설계, 개발 활동으로 더 많은 운영 데이터를 가져오는 피드백 루프를 강화할 수 있도록 설계된 새로운 기능도 추가하고 있습니다. (그림 6)
우리는 고객이 차세대 차량에 대해 기대하는 향상된 성능, 신뢰성, 안전성 및 보안을 비용 효율적으로 제공할 수 있도록 조직 내 소프트웨어 개발 및 시스템 엔지니어링 방법을 조율하기 위한 지원도 지속하고 있습니다. 기존 자동차 회사의 경우, 이는 시스템 엔지니어링 팀의 전문 지식을 활용하는 방식으로 소프트웨어 개발팀의 역량을 추가하거나 향상하는 것을 의미하는 경우가 많습니다. 기술 스타트업과 신생 기업의 경우 이는 모델링, 시뮬레이션, 코드 생성 등 입증된 모델 기반 설계 방법을 DevOps 지향 워크플로에 통합하여 경쟁력을 확보할 수 있는 기회가 됩니다.
2023년 기고