개요
SDV(소프트웨어 정의 차량)로의 전환을 통해 자동차 제조업체는 차량의 전체 수명에 걸쳐 새로운 기능을 추가할 수 있습니다. 빈번한 업데이트를 지원하기 위해 관련 팀들은 HPC(고성능 컴퓨터)를 사용한 중앙/영역 E/E 아키텍처, 서비스 지향 아키텍처가 적용된 임베디드 소프트웨어, 지속적 통합 및 지속적 배포를 사용한 자동화, 시뮬레이션을 사용한 가상 검증 등 새로운 접근법을 도입하고 있습니다.
SDV로의 전환은 간단하지 않습니다. 이 백서에서는 전 세계 자동차 회사들과의 협업을 통해 MathWorks가 얻은 인사이트와 모범 사례를 공유합니다. 또한 모델 기반 설계를 통해 소프트웨어 정의 차량의 개발을 활성화하는 다음과 같은 방법에 대해 다룹니다.
- 여러 플랫폼 전반에서 소프트웨어 재사용: 모델 기반 설계는 HPC, 영역 컨트롤러, ECU(전자 제어 장치) 전반에서 소프트웨어 재사용을 용이하게 합니다.
- 자동화를 통한 개발 시간 단축: 자동화된 지속적 검증, 일관성 검사 및 추적성 분석과 더불어 모델을 사용하면 개발 시간을 단축하는 동시에 안전 및 품질 요구사항을 충족할 수 있습니다.
- 시프트 레프트 통합 지원: 물리 시스템 모델과 가상화 소프트웨어 스택을 통합하면 시프트 레프트 소프트웨어 통합 테스트가 가능해져 결함 검출을 가속화하고 테스트 커버리지를 개선할 수 있습니다.
- 분야별 전문가 역량 강화: 모델 기반 설계를 통해 분야별 전문가는 최신 소프트웨어 개발 관행을 도입하고 고품질 소프트웨어를 만들 수 있습니다.
소프트웨어 기능과 고객 가치
소프트웨어를 통해 브랜드의 차별화된 기능과 고객 가치를 전달할 수 있습니다. 고객은 안전은 물론이며 차량이 단순한 운전을 넘어 디지털 상호작용과 경험을 위한 플랫폼이 되는 지속적인 디지털 라이프를 기대하고 있습니다. 이러한 기대는 전동화 및 자율성과 같은 차량 기술의 발전을 촉진합니다.
신뢰성 있는 신속한 소프트웨어 배포
자동차에 들어가는 소프트웨어를 신속하고 안정적으로 배포하기란 다음과 같은 여러 이유로 인해 쉽지 않습니다.
- 소프트웨어 복잡성 증가와 그에 따른 검증 과제
- 기능 안전에 대한 요구사항
- 차량 시스템 팀과 소프트웨어 팀 간의 사고방식의 괴리
이 백서에서는 SDV 개발을 위한 기술과 관련 팀의 협업 방식을 다룹니다.
소프트웨어 정의 차량의 요소 살펴보기
MathWorks는 전 세계 모든 지역의 자동차 기업과 협력하며 기능 패턴 및 기능 장애 패턴을 관찰하고 있습니다.
소프트웨어 정의 차량을 배포하려면 차량 개발 및 소프트웨어 개발에 대한 역량 외에도 차량 및 소프트웨어 개발 팀 간의 긴밀한 협업이 필요합니다. 그러나 이 팀들은 서로 다른 공정을 따르며 예전부터 서로 다른 툴을 사용해 왔기 때문에 따로 작업하는 경우가 많습니다.
차량은 안정성, 기능 안전, 여러 물리 컴포넌트의 통합이 매우 중요한 멀티도메인 시스템입니다.
소프트웨어 정의 제품을 구축하기 위한 역량에는 신속한 개발, 빈번한 릴리스 및 고수준의 소프트웨어 개발 방식 자동화 등을 최신 애자일 소프트웨어 개발 관행과 결합하는 것 역시 포함됩니다. 소프트웨어 정의 제품은 클라우드를 통해 차량으로부터 데이터가 수집되기 때문에 데이터 주도 기능도 필요로 합니다.
이러한 역량을 한데 모으는 과정에는 많은 위험과 복잡성을 수반하는데, 팀, 툴, 공정, 사고방식, 편향 등이 충돌하기 때문입니다.
SDV 개발 공정의 토대가 되는 부분은 바로 차량입니다. 20년 전의 자동차 시스템 개발 엔지니어는 서로 다른 그룹들이 따로 작업하는 폐쇄적인 방식을 채택했습니다. 이들은 문서를 상호교환의 수단으로 사용했습니다. 하지만 이러한 방식은 모델 기반 설계가 도입되면서 변했습니다.
모델 기반 설계 적용
모델 기반 설계는 문서가 아닌 모델을 중심으로 개발 활동을 전개합니다. 모델은 검증, 확인 및 테스트 활동을 주도하는 실행 가능한 요구사항의 집합 역할을 합니다. 이 접근법을 사용하면 요구사항, 아키텍처 및 알고리즘의 문제를 조기에 발견하고 수정할 수 있습니다. 그런 다음 알고리즘 모델로부터 C 또는 C++ 코드와 같은 임베디드 코드를 자동으로 생성하여 마이크로컨트롤러에서 실행할 수 있습니다.
개발 팀은 모델 기반 설계를 통해 V-사이클의 경직성에 대한 우려를 해결할 수도 있습니다. V-사이클을 엄격하게 준수하면 일련의 순차적인 단계가 발생하는데, 이로 인해 시스템 분해가 이루어지기 전에 확고한 시스템 요구사항이 필요하며 통합 테스트를 수행하기 전에 모든 컴포넌트가 갖춰져야 하므로 민첩성과 효율성이 크게 떨어집니다.
Simulink®를 사용한 모델 기반 설계에서는 배터리 및 스티어링과 같은 물리 컴포넌트의 모델과 전체 차량 아키텍처를 포함한 전체 시스템을 모델링하고 시뮬레이션하는 동시에 차량에서 실행되는 다양한 소프트웨어 알고리즘을 표현할 수 있습니다. 이러한 시스템 모델을 통해 새로운 소프트웨어 기능의 가상 개발을 시작하고 처음부터 가상 통합 테스트를 수행하여 다른 소프트웨어 기능과 연동하는 새로운 기능을 테스트할 수 있습니다. 이 모든 작업을 가상 차량에서 실행할 수 있습니다.
또한 Simulink를 사용하면 V로 표현되는 것보다 단계를 더 간소화할 수 있으며 최신 소프트웨어 개발 관행에 부합하는 방식으로 단계 실행을 자동화할 수 있습니다.
마지막으로, 소프트웨어 정의 차량으로 인해 차량 E/E 아키텍처와 관련 개발 공정도 변화하고 있습니다. 모델 기반 설계를 구현하는 워크플로도 그에 따라 진화하고 있습니다.
시뮬레이션 및 가상화를 통한 시프트 레프트 지원
워크플로 변화 중 일부는 조기 소프트웨어 통합(시프트 레프트 통합)을 가능하게 하는 칩, 기본 소프트웨어, 미들웨어의 가상화입니다. 예를 들어, Simulink는 Synopsys의 기술을 사용하여 Infineon® AURIX™ 프로세서의 가상 표현을 통합함으로써 통합 및 테스트를 조기에 수행(시프트 레프트)할 수 있습니다. 시뮬레이션 환경에서 빠르게 반복한 후에 Infineon 라이브러리를 사용해 프로세서에 최적화된 코드를 자동으로 생성할 수 있습니다. Simulink는 Qualcomm과 같은 다른 회사의 가상화 기술과도 연동됩니다.
서비스 지향 아키텍처 지원
SOA는 개별적으로 업데이트가 가능한 모듈식 소프트웨어 개발에 중요한 부분을 차지합니다. 이제 모델 기반 설계와 Simulink를 통해 HPC 및 영역 컨트롤러를 포함하는 최신 E/E 아키텍처의 신호 기반 애플리케이션 및 서비스 지향 애플리케이션을 모두 만들 수 있습니다. AUTOSAR Adaptive 애플리케이션을 비롯한 SOA를 모델링하고 시뮬레이션하며 C++ 코드를 생성한 후 모듈식 서비스로 배포할 수 있습니다.
중국의 전기차 제조업체인 Zeekr는 SOA 소프트웨어 개발에 모델 기반 설계를 성공적으로 사용했으며, 이를 통해 개발 팀은 소프트웨어를 빠르게 반복하고 출시할 수 있었습니다.
자세히 알아보기
오픈 소스 및 타사 플랫폼과의 통합
프로덕션 개발 환경은 다양한 툴과 플랫폼을 통합해야 합니다. Simulink는 오픈 소스 툴 및 코드를 포함한 여러 다른 툴과 연동되므로 모델 기반 설계는 이러한 통합을 원활하게 지원합니다.
복잡한 시나리오의 시뮬레이션
시뮬레이션을 위한 도로 주행 및 오프로드 시나리오를 만들어 시스템 요구사항을 미세 조정하고 현실적인 시나리오에 대해 테스트할 수 있습니다.
시뮬레이션 및 테스트를 위한 도로 또는 공사 시나리오를 만들 수 있습니다.
속도 및 품질 향상
이제 소프트웨어 쪽을 살펴보겠습니다. 최신 소프트웨어 개발 관행에서는 민첩성을 강조합니다.
모델 기반 설계를 구현하는 워크플로는 차량 시스템 및 소프트웨어 개발 팀에게 공통된 툴과 목표를 제시하여 전체 공정이 민첩해지도록 진화해 왔습니다. 전체 시스템, 컴포넌트, 가상 프로세서 및 시나리오의 가상화를 통해 현실적인 테스트 환경이 제공됩니다.
엔지니어링 툴이 IT 인프라에 통합될 필요성은 점점 더 커지고 있습니다. 엔지니어링과 IT 간의 긴밀한 협업이란 자동차 업계에서 흔한 일이 아니었습니다. MathWorks는 조직들과 협력하여 이러한 그룹을 하나로 모으고 소프트웨어 팀과 플랫폼 팀이 사용하는 DevOps 툴을 사용해 모델 기반 및 시스템 공학 접근법을 자동화할 수 있도록 지원합니다. 목표는 공정 수행 방식과 파이프라인 진행 방식을 일치시키고 대시보드 및 성능 벤치마크를 통해 투명성을 확보하는 것입니다.
여러분의 소프트웨어가 자동으로 생성되든, 수작업으로 만들어지든, 또는 두 가지 방식을 혼합하여 만들어지든, 차량 시스템, 컴포넌트, 프로세서, 소프트웨어 스택 및 시나리오의 가상화는 현실적인 테스트 환경을 제공하며, 이 환경은 CI(지속적 통합) 파이프라인을 사용해 연결하고 자동화할 수 있습니다.
한 예로 Geely의 엔지니어들은 CICT(지속적 통합 및 지속적 테스트)가 빠른 소프트웨어 개발에서 고품질 소프트웨어의 빠른 개발로 전환하는 데 핵심적인 요소라고 생각합니다. 이들은 Simulink, Simulink Test™ 및 Polyspace®와 같은 엔지니어링 툴과 CICT 플랫폼 간의 통합을 가치의 흐름을 가속화하고 더 낮은 비용으로 지속적이면서 빠르고 안정적이며 제어 가능한 고품질의 소프트웨어 배포를 보장할 수 있는 방법으로 보고 있습니다. 그 결과, 최초 소프트웨어 통합 테스트에서 90%의 성공률을 기록했습니다.
Continental은 GitHub®, Jenkins® 및 Artifactory와의 통합을 비롯한 모델 기반 접근법을 소프트웨어 팩토리에 통합하여 이를 오랫동안 수행해 왔습니다. 그 결과 CI/CD 시스템의 속도가 두 배로 빨라지고 유지관리 작업이 절반으로 줄었습니다.
이 두 가지 예시는 시스템과 최신 소프트웨어 관행을 통합하는 것이 얼마나 중요한지 잘 보여줍니다.
시스템에 AI를 통합하는 설계
데이터 주도 기능의 핵심 유형은 AI입니다. 여기에는 흔히 임베디드 AI라고 하는 임베디드 시스템에 대한 AI 알고리즘이 포함됩니다. MATLAB® 및 Simulink는 AI 탑재 소프트웨어 기능을 시스템에 통합하고 추론 모델에 대한 코드를 생성하는 방법을 보여주는 참조 예제 라이브러리를 제공합니다. 이러한 예제를 통해 복잡한 임베디드 시스템의 성능과 기능을 개선하는 AI 알고리즘의 설계, 시뮬레이션, 테스트, 검증 및 배포를 시작할 수 있습니다. 임베디드 AI의 한 가지 예로 가상 센서를 들 수 있습니다.
AI는 PyTorch®와 같은 오픈 소스 프레임워크에서 생성될 수 있습니다. MATLAB은 공동 실행, 모델 컨버터 및 MATLAB Deep Learning Model Hub를 통해 이러한 환경뿐만 아니라 Python® 및 TensorFlow™와도 상호운용할 수 있습니다. Simulink 블록은 이러한 추론 모델을 가져올 수 있으므로 시나리오를 통해 시스템 맥락에서 AI가 어떻게 작동할지 시뮬레이션하고 확인할 수 있습니다.
클라우드로 확장
클라우드는 차량에 대한 기능과 업데이트를 프로토타이핑하고 개발하며 배포할 수 있도록 시뮬레이션 및 소프트웨어 개발을 확장할 수 있는 플랫폼을 제공합니다. Simulink와 클라우드의 통합을 통해 AWS®(Amazon Web Services) 및 Microsoft® Azure®와 같은 클라우드 플랫폼으로 시뮬레이션 및 개발 워크플로를 확장할 수 있습니다.
결론
소프트웨어 정의 차량으로 가는 과정은 소프트웨어와 시스템 사고방식, 툴 및 공정의 통합을 수반합니다. MathWorks는 AI, 클라우드 기술 및 최신 소프트웨어 관행을 지원하는 툴을 통해 여러분들에게 도움을 드리고 있습니다.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)