자동차 소프트웨어 개발에서 SWE.1은 소프트웨어 요구사항 분석을 의미한다. 시스템 요구사항이 정리된 이후, 이를 실제 소프트웨어가 구현할 수 있는 수준으로 구체화하는 단계다. ECU 개발에서는 하나의 기능이 센서 입력, 통신 신호, 내부 로직, 출력 제어, 진단 처리 등 여러 요소로 나뉘어 동작한다. 이때 소프트웨어가 무엇을 해야 하는지 명확히 정의하지 않으면 설계와 구현, 테스트 단계에서 해석 차이가 발생할 수 있다. ASPICE SWE.1은 이러한 문제를 줄이기 위해 소프트웨어 요구사항을 체계적으로 분석하고 관리하는 프로세스다.
SWE.1의 핵심 목적은 시스템 요구사항을 소프트웨어 관점에서 분석하여 명확하고 검증 가능한 소프트웨어 요구사항으로 만드는 것이다. 시스템 요구사항은 차량 기능 전체를 기준으로 작성되기 때문에 하드웨어, 소프트웨어, 통신, 센서, 액추에이터가 함께 포함될 수 있다. 반면 소프트웨어 요구사항은 소프트웨어가 처리해야 할 입력, 판단 조건, 출력, 상태 전이, 오류 처리, 타이밍 조건 등을 구체적으로 다룬다. 따라서 SWE.1에서는 시스템 요구사항을 그대로 복사하는 것이 아니라 소프트웨어가 담당할 범위를 분명히 나누는 것이 중요하다.
실무에서 좋은 소프트웨어 요구사항은 명확해야 한다. “정상적으로 제어한다”, “빠르게 반응한다”와 같은 표현은 개발자와 검증자가 다르게 해석할 수 있다. 대신 “입력 신호가 활성화된 후 100ms 이내에 출력 신호를 설정한다”처럼 동작 조건과 기준이 분명해야 한다. 또한 요구사항은 테스트로 확인할 수 있어야 한다. 검증할 수 없는 요구사항은 개발 완료 여부를 판단하기 어렵기 때문에 ASPICE 관점에서 좋은 요구사항으로 보기 어렵다.
SWE.1에서 중요한 또 다른 요소는 추적성이다. 소프트웨어 요구사항은 상위 시스템 요구사항과 연결되어야 하고, 이후 소프트웨어 아키텍처 설계, 상세 설계, 코드, 테스트 케이스와도 연결되어야 한다. 이를 통해 특정 시스템 요구사항이 소프트웨어에 제대로 반영되었는지 확인할 수 있다. 요구사항 변경이 발생했을 때도 관련 설계와 테스트 항목을 빠르게 찾을 수 있어 변경 영향 분석에 도움이 된다.
소프트웨어 요구사항 분석 단계에서는 요구사항 간 충돌도 확인해야 한다. 예를 들어 하나의 요구사항은 빠른 응답을 요구하고, 다른 요구사항은 특정 조건에서 출력을 제한하도록 요구할 수 있다. 이런 경우 우선순위와 동작 조건을 명확히 하지 않으면 구현 단계에서 문제가 생긴다. 따라서 SWE.1에서는 요구사항의 완전성, 일관성, 실현 가능성, 검증 가능성을 함께 검토해야 한다.
또한 인터페이스 요구사항도 중요하다. 자동차 소프트웨어는 단독으로 동작하지 않고 다른 ECU, 센서, 액추에이터, 통신 네트워크와 연결된다. CAN, LIN, Ethernet 같은 통신 신호를 어떻게 수신하고 처리할지, 잘못된 신호나 통신 끊김이 발생했을 때 어떻게 대응할지도 요구사항에 포함될 수 있다. 진단 요구사항, 오류 처리, 안전 관련 요구사항 역시 소프트웨어 요구사항 분석 단계에서 빠지지 않도록 확인해야 한다.
결론적으로 ASPICE SWE.1은 소프트웨어 개발의 출발점이 되는 중요한 프로세스다. 요구사항이 명확하지 않으면 설계와 구현이 흔들리고, 테스트 단계에서 많은 문제가 발생할 수 있다. SWE.1을 제대로 수행하려면 시스템 요구사항을 소프트웨어 관점으로 분석하고, 명확하고 검증 가능한 문장으로 정리하며, 상위 요구사항과 후속 산출물 간 추적성을 확보해야 한다. 자동차 ECU 개발자라면 SWE.1을 단순한 문서 작성이 아니라 좋은 소프트웨어를 만들기 위한 실무 기준으로 이해하는 것이 필요하다.