HL Klemove - Polyspace Bug Finder를 사용한 첨단 운전자 보조 시스템의 코드 품질 개선 사례
과제
첨단 운전자 보조 시스템 소프트웨어의 품질 개선 및 시큐어 코딩에 대한OEM의 요구사항 충족
솔루션
Polyspace Bug Finder 및 Polyspace Access를 사용하여 개발 과정 전체에 걸친 정적 코드 분석 수행, 결함 식별 및 코딩 표준 준수
결과
- 소스 코드 검증 시간 단축
- 개발 초기에 결함 식별
- OEM의 코딩 요구사항 및 표준 충족
ADAS(첨단 운전자 보조 시스템)와 AD(자율주행) 시스템이 점점 정교해지면서 그 원동력이 되는 소프트웨어도 점점 복잡해지고 있습니다. 그와 동시에 자동차 OEM 회사들은 소프트웨어 품질 요구사항을 높이면서 공급사들에게 짧은 스케줄 안에 ADAS/AD 소프트웨어를 공급하도록 요구하고 있습니다. 그 결과 공급사들은 이러한 요구를 충족하는 데 어려움을 겪고 있습니다. 수작업에 의존하는 공급사들은 개발 라이프사이클의 후반에 또는 더 심한 경우에는 시스템이 이미 양산에 들어간 후에야 결함을 발견하는 경우도 있어, 많은 리콜 비용을 치르고 있습니다.
HL Klemove의 엔지니어링 팀은 Polyspace® 정적 코드 분석 제품을 사용하여 첨단 ADAS/AD 소프트웨어의 개발 초기에 런타임 오류, 보안 취약점, 코딩 표준 위반을 식별하고 있습니다. 그들은 Polyspace Bug Finder™와 Polyspace Access™를 자동화된 지속적 통합/지속적 배포(CI/CD) 워크플로에 통합하여 코드 검증 시간을 줄이고 소프트웨어 품질을 개선하며 팀 내에서뿐만 아니라 팀들 간의 협력을 촉진하고 있습니다.
HL Klemove의 이민채 팀장은 “ADAS/AD 소프트웨어 프로젝트의 숫자와 복잡성이 증대되는 가운데, 우리는 Polyspace Bug Finder를 통해 개발 단계 초기에 문제를 발견할 수 있게 되었고 그 결과 더 높은 품질의 소프트웨어를 제공할 수 있었습니다. 또한 이를 통해 우리 팀들은 이제 OEM 고객들이 요구하고 있는 시큐어 코딩 표준도 준수할 수 있게 되었으며, Polyspace Access덕분에 정적 분석 결과에 웹으로 액세스하여 협업도 개선되었습니다”라고 말합니다.
과제
과거에 HL Klemove의 팀들은 수작업 코드 리뷰와 독립된 툴들에 의존하여 ADAS/AD 소프트웨어의 소스 코드 분석을 수행했습니다. 그러나 그러한 시각적인 검사 방식과 여러 도구들의 구성과 유지 보수는 복잡하고 많은 시간을 소모하게 하였습니다. 뿐만 아니라 그러한 툴을 CI/CD 워크플로에 통합하기도 어려웠습니다. 개발자들은 각자의 워크스테이션에서 그러한 툴들을 사용해야 했고 거기서 리소스를 소모하면서 다른 개발 작업을 수행하기가 어려워지기도 했습니다.
그 결과 팀들은 정적 코드 분석을 개발 후기 단계로 미뤄야 했고 그때에는 누적된 모든 문제를 식별하고 해결할 시간이 거의 없었습니다. HL Klemove는 이러한 난제를 해결하고 새로운 UNECE WP.29 규정 충족에 필요한 CERT® C 코딩 표준을 준수해 달라는 새로운 고객 요구사항을 충족할 새로운 툴이 필요했습니다.
솔루션
HL Klemove는 Polyspace 제품군을 사용하여 개발 과정 전체에 걸쳐 결함 및 코딩 규칙 위반을 식별하여 ADAS/AD 소프트웨어의 품질을 개선했습니다.
HL Klemove의 엔지니어들은 MathWorks 응용 엔지니어와 협력하여, CI/CD를 위한 Atlassian Bamboo® 및 Git 리포지토리 관리를 위한 Bitbucket® 등 그들의 CI 툴체인에 Polyspace 툴을 통합했습니다. 그들은 Bamboo 작업을 생성하여 Polyspace Bug Finder Server™가 정적 코드 분석을자동화하도록 트리거하고 분석 결과를 Polyspace Access에 퍼블리시하여 웹 기반으로 함께 검토할 수 있게 했습니다. 또한 프로젝트 관리를 간소화하기 위해, 그들은 Polyspace Access를 Atlassian JIRA에 통합했습니다. Polyspace가 발견한 결과와 JIRA 티켓이 Polyspace Access를 통해 손쉽게 연동되었습니다.
통상적인 개발 프로젝트에서 엔지니어들은 코드 변경사항을 Bitbucket에 푸시합니다. 이어서 정기적으로 또는 수동으로 트리거되는 Bamboo 작업을 통해, 업데이트된 코드를 Polyspace Bug Finder Server가 분석합니다. 정적 코드 분석이 완료되면 사용자는 Polyspace Access 웹페이지에 있는 분석 결과에 대한 링크가 담긴 이메일 알림을 받게 됩니다. Polyspace Access 웹 브라우저 인터페이스를 통해 관리자와 엔지니어들은 그들이 작업한 코드, 다른 팀들이 만든 코드 또는 Embedded Coder®를 사용하여 Simulink® 모델로부터 자동으로 생성된 코드의 정적 분석 결과를 검토하면서 협업합니다.
Polyspace Bug Finder Server로 발견할 수 있는 문제는 런타임 오류, 동시성 문제, MISRA™ 및 CERT C 코딩 표준 위반 등이 있습니다. 소프트웨어 엔지니어들은 기능 브랜치에서 나온 Polyspace Bug Finder Server 결과에 집중하고 DevOps 엔지니어들은 릴리스 브랜치에서 나온 결과에 집중합니다.
개발 과정의 피드백 루프를 단축하기 위해 몇몇 팀들은 최근에 Polyspace as You Code IDE 플러그인을 사용하여 코딩 중에 코드 품질을 검사하기 시작했습니다. 그들은 Bitbucket에 코드 변경사항을 제출하기 전에 MISRA 또는 CERT C 위반을 수정할 수 있습니다.
HL Klemove는 수십 가지의 프로젝트와 수백 가지의 양산 차량 모델에 걸쳐 있는 모든 ADAS/AD 개발 프로그램에 Polyspace 제품군을 사용하고 있습니다.
결과
- 소스 코드 검증 시간 단축. 이 팀장은 “우리는 Polyspace Bug Finder를 사용하여 소스 코드 검증 시간을 최대 80퍼센트까지 단축했습니다. 그리고 자동화된 리포트 생성을 통해 OEM 고객들을 위한 종합 리포트 제작에 필요한 시간을 1시간에서 10분 미만으로 단축했습니다”라고 말합니다.
- 개발 초기에 결함 식별. 이 팀장은 “Polyspace 덕분에 개발 초기 단계에 문제를 발견하고 진단하고 해결할 수 있게 되었습니다. 우리에겐 아주 중요한 일이죠. 왜냐하면, 단 하나의 결함이라도 그것이 발견되지 않고 넘어가면 안전 문제로 리콜이 발생하여 수백만 달러가 들 수 있으니까요”라고 말합니다
- OEM의 코딩 요구사항 및 표준 충족. 이 팀장은 “최근 대다수의 OEM이 MISRA, CERT C 등의 코딩 가이드라인을 준수하도록 요구하고 있습니다. Polyspace 덕분에 우리 팀은 그러한 요구사항을 충족하고 코드 검증 결과가 포함된 리포트를 생성할 수 있게 되었죠. 우리는 소프트웨어 품질에 관련된 최신 요구사항을 충족할 수 있는 능력에 대해 고객사로부터 좋은 피드백을 받고 있습니다”라고 말합니다.