ISO 26262와 ASPICE를 함께 이해해야 하는 이유
자동차 소프트웨어 개발을 하다 보면 ISO 26262와 ASPICE라는 용어를 자주 접하게 된다. 두 기준은 모두 자동차 개발 품질과 관련이 있지만 목적과 적용 관점은 다르다. ISO 26262는 자동차 기능안전을 다루는 국제 표준이고, ASPICE는 자동차 소프트웨어 및 시스템 개발 프로세스를 평가하고 개선하기 위한 모델이다. 쉽게 말해 ISO 26262가 “안전한 기능을 만들기 위한 기준”이라면, ASPICE는 “개발 과정을 체계적으로 수행했는지 확인하는 기준”이라고 볼 수 있다.
ISO 26262는 차량 기능의 오동작으로 인해 사람에게 위험이 발생하지 않도록 관리하는 데 초점을 둔다. 예를 들어 제동, 조향, 배터리 관리, ADAS, 전동화 제어 기능처럼 문제가 발생했을 때 사고로 이어질 수 있는 기능은 안전 관점에서 분석이 필요하다. ISO 26262에서는 위험 분석을 통해 안전 목표를 정하고, ASIL 등급을 판단하며, 시스템과 하드웨어, 소프트웨어에 필요한 안전 요구사항을 도출한다. 즉 기능이 고장 나더라도 위험을 줄일 수 있도록 설계하는 것이 핵심이다.
반면 ASPICE는 개발 프로세스의 성숙도와 수행 품질을 본다. 요구사항이 명확하게 작성되었는지, 시스템 설계와 소프트웨어 설계가 요구사항을 반영하고 있는지, 구현 결과가 테스트로 검증되었는지, 변경사항과 형상이 체계적으로 관리되고 있는지를 확인한다. ASPICE는 특정 기능이 안전한지 자체를 판단하기보다는, 그 기능을 개발하는 과정이 일관성 있고 추적 가능하게 수행되었는지를 평가한다.
두 기준의 가장 큰 차이는 관점이다. ISO 26262는 안전 리스크를 중심으로 생각한다. 어떤 고장이 발생할 수 있는지, 그 고장이 운전자와 탑승자에게 어떤 위험을 줄 수 있는지, 위험을 줄이기 위해 어떤 안전 요구사항이 필요한지를 분석한다. 반면 ASPICE는 개발 활동의 흐름을 중심으로 본다. 고객 요구사항이 시스템 요구사항으로 정리되고, 소프트웨어 요구사항과 설계, 코드, 테스트로 이어지는 과정이 잘 관리되는지가 중요하다.
산출물에서도 차이가 있다. ISO 26262에서는 위험 분석 결과, 안전 목표, 기능안전 요구사항, 기술안전 요구사항, 안전 계획, 안전 검증 결과 등이 중요하다. ASPICE에서는 요구사항 명세서, 아키텍처 설계서, 상세 설계서, 테스트 케이스, 테스트 결과, 리뷰 기록, 추적성 매트릭스, 변경관리 이력 등이 중요하다. 물론 실제 프로젝트에서는 두 기준의 산출물이 서로 연결되는 경우가 많다.
예를 들어 ISO 26262 활동을 통해 특정 안전 요구사항이 도출되었다면, 그 요구사항은 ASPICE 개발 프로세스 안에서 시스템 요구사항과 소프트웨어 요구사항으로 반영되어야 한다. 이후 설계, 구현, 테스트와 연결되어야 하며, 변경이 발생하면 영향 분석도 필요하다. 이처럼 ISO 26262와 ASPICE는 서로 다른 기준이지만 실무에서는 함께 관리되어야 한다.
결론적으로 ISO 26262와 ASPICE는 자동차 개발에서 경쟁하는 개념이 아니라 보완 관계다. ISO 26262는 안전을 확보하기 위한 요구사항과 분석 기준을 제공하고, ASPICE는 그 요구사항이 개발 전 과정에서 체계적으로 반영되고 검증되도록 돕는다. 자동차 개발자라면 두 기준을 단순히 암기하기보다 요구사항, 설계, 구현, 검증, 추적성이라는 흐름 속에서 이해하는 것이 중요하다.