Validation
이 장에서 다루는 것
이 장은 PAIO의 실시간 검증 기능을 다룹니다. 검증 패널을 여닫는 방법, 검증이 언제 어떤 프로젝트를 대상으로 실행되는지, 위반 목록을 읽는 방법, 행을 클릭해 문제 지점으로 이동하는 방법을 설명합니다. 검사 규칙은 AUTOSAR 표준 제약을 기준으로 하며, 표준 번호가 없는 일부 검사는 PAIO가 자체적으로 추가한 것입니다. 검사는 네트워크 구성과 통신 정의, 소프트웨어 구조와 인터페이스, 데이터 타입, Adaptive Platform 설정과 서비스 배포, ECU 설정 전반에 걸쳐 있고, 심각도는 규칙마다 정해져 있어 대부분 error, 나머지는 warning 입니다.
- 대상 독자: 모델을 편집하고 익스포트 전에 오류를 정리하려는 사용자
- 선행 조건: 워크스페이스가 열려 있고 프로젝트가 하나 이상 있어야 합니다. 검증은 프로젝트의 설계 데이터를 대상으로 합니다. 프로젝트 구조는 04. 워크스페이스와 프로젝트에서 확인할 수 있습니다.
검증에는 별도의 실행 버튼이 없습니다. 모델을 편집하거나 프로젝트를 선택하면 자동으로 다시 실행됩니다. 대상은 항상 활성 프로젝트 범위를 따릅니다.
14.1 검증 패널 열기와 닫기
상태바(화면 맨 아래) 왼쪽의 V 버튼을 클릭하면 에디터 영역 아래에 검증 패널이 열립니다. 같은 버튼을 다시 클릭하거나 패널 헤더의 Close Panel 버튼으로 닫습니다. 패널 위 경계를 드래그해 높이를 조절할 수 있고, 헤더의 Minimize 와 Maximize 버튼으로도 크기를 바꿀 수 있습니다.
V 버튼이 유일한 진입점입니다. 메뉴, 명령 팔레트, 단축키에는 검증 패널 항목이 없습니다. 또 앱을 다시 실행하면 패널은 항상 닫힌 상태로 시작합니다.
상태바 배지 읽는 법
V 버튼에 붙는 배지로 패널을 열지 않고도 상태를 알 수 있습니다.
| 표시 | 의미 |
|---|---|
| 배지 없음 | 위반 없음 |
| 숫자 | 위반 건수. 99를 넘으면 99+ 로 표시됩니다 |
! | 검증이 실행되지 못했습니다. "문제 없음"이 아닙니다. 목록에 RuleFailure 행이 보이면 모델 오류가 아니라 제품 결함이므로 보고해 주십시오 |
14.2 어떤 프로젝트를 검증하나
PAIO는 한 창에서 여러 프로젝트를 열 수 있고, 검증은 그중 활성 프로젝트 하나만 대상으로 합니다. 대상은 마지막에 한 조작으로 정해집니다.
- 프로젝트 탐색기에서 프로젝트를 클릭하면 그 프로젝트가 대상이 됩니다. 에디터를 열지 않아도 됩니다.
- 에디터 탭으로 포커스를 옮기면 그 탭이 속한 프로젝트로 대상이 바뀝니다.
대상을 정할 수 없을 때는 목록에 Select a project in the Explorer to run validation. 이 표시됩니다.
이때는 탐색기에서 프로젝트를 한 번 클릭하면 됩니다.
14.3 언제 실행되고 무엇을 읽나
검증에는 실행 버튼이 없습니다. 모델을 편집하거나 프로젝트를 선택하면 자동으로 다시 실행되며, 타이핑 중에도 손을 멈추면 곧 결과가 갱신됩니다. ARXML을 임포트한 뒤에도 자동으로 다시 실행됩니다.
대상은 현재 프로젝트의 설계 데이터 전체입니다. 네트워크 구성, 통신 정의, 소프트웨어 구조, 인터페이스와 서비스 배포, 데이터 타입, 시스템 매핑, Machine 설정, ECU 설정이 모두 포함됩니다. 아직 만들지 않은 부분은 비어 있는 것으로 보고 오류로 처리하지 않습니다.
저장하지 않은 편집도 반영됩니다. 다만 화면에 따라서는 입력 중인 값이 확정된 뒤에야 결과가 바뀌는 경우가 있습니다.
14.4 목록 보는 법
목록은 네 개의 열로 이루어진 표입니다. 열 머리 경계를 드래그해 폭을 조절할 수 있습니다.
| 열 | 내용 |
|---|---|
| Element Type | 위반이 발생한 요소의 종류 (예: PortPrototype, ISignal) |
| Name | 요소 이름 |
| Description | 위반 내용. 영문 문장으로 표시됩니다 |
| Constr | AUTOSAR 제약 번호 (예: constr_3018) |
Constr 열이 비어 있는 행은 정상입니다. AUTOSAR 표준 제약에 대응하는 번호가 없는 검사는 이 칸을 비워 둡니다. 규칙 이름 자체는 목록에 나오지 않습니다.
행 왼쪽 끝에는 심각도를 나타내는 색 막대가 붙습니다. error는 빨강, warning은 주황입니다.
그룹 행
한 부모 아래 형제 요소끼리 SHORT-NAME이 겹치면 겹친 개수만큼 위반이 생기지만, 목록에는 접힌 그룹 행 1개로 나타납니다.
- 그룹 행 첫 칸에는
▶삼각형이 있고, Name 칸 옆에 회색 배지로 건수가 표시됩니다. 툴팁은Expand to mark each element individually입니다. - 그룹 행을 클릭하면 펼쳐지고 삼각형이 90도 회전합니다. 다시 클릭하면 접힙니다.
- 펼쳐진 자식 행은 들여쓰기되고 이름 뒤에
#1,#2처럼 모델 안의 순서 번호가 붙습니다. 자식 행의 Element Type 칸은 비어 있습니다. - 펼침 상태는 재검증 후에도 유지됩니다.
그룹 행을 만드는 것은 형제 SHORT-NAME 중복 하나뿐입니다. 나머지 규칙은 위반 1건이 항상 행 1개입니다. 최상위 문서 두 개(예: SWC 파일 두 개)가 같은 이름을 쓰는 경우도 행 1개로만 보고됩니다.

IVC 에디터에서 커넥터 두 개가 같은 이름을 쓰는 경우입니다. 목록에는 그룹 행 Connector_0 과 건수 배지가 보이고, 펼쳐진 자식 행에 #1, #2 가 붙습니다. 행을 클릭하면 해당 커넥터의 NAME 필드에 빨간 위반 표시가 남습니다.
목록이 비었을 때
목록이 비어 있을 때는 상황에 따라 다음 메시지 중 하나가 표시됩니다.
| 메시지 | 의미 |
|---|---|
No validation issues. | 위반 없음 |
Select a project in the Explorer to run validation. | 대상 프로젝트를 정하지 못했습니다 |
Validation could not run. See the developer console for details. | 검증 실행이 실패했습니다 |
마지막 메시지는 "문제가 없다"는 뜻이 아닙니다. 이때 상태바 배지는
!로 바뀝니다.
14.5 위반 위치로 이동
행을 클릭하면 그 요소를 소유한 에디터 탭이 열리거나 활성화되고, 해당 요소가 선택·강조됩니다.
이동 가능한 행에 마우스를 올리면 Go to the element to fix 툴팁이 표시됩니다.
- 행을 클릭합니다. → 소유 에디터가 열립니다.
- 에디터가 요소를 찾으면 그 요소에 빨간 위반 표시가 남습니다(파란 "방금 변경됨" 깜빡임과 구분됩니다). 대상이 입력 필드면 커서까지 그 필드에 들어가므로 곧바로 값을 고칠 수 있습니다.
- 다이얼로그 안에서 편집하는 요소(Machine Configuration, SWC Internal Behavior, AA Internal Behavior 등)는 해당 다이얼로그까지 열립니다.

다이얼로그 안의 필드가 대상인 경우입니다. AA Internal Behavior 다이얼로그가 EXECUTION 탭의 LOG CONFIG 위치까지 펼쳐진 채 열리고, 허용되지 않은 값을 가진 LOG MODE 가 빨갛게 표시됩니다. 다이얼로그가 검증 패널을 덮으므로 원인이 된 행은 아래쪽에 일부만 보입니다.

같은 방식으로 Machine Configuration 다이얼로그도 FUNCTION GROUP 탭이 선택된 채 열립니다. 선언되지 않은 상태를 가리키는 INITIAL MODE 가 빨갛게 표시되고, 필드 아래에 Referenced item not found 가 함께 나옵니다.
- 에디터가 아직 로딩 중이면 0.15초 간격으로 최대 3초 동안 다시 시도합니다. 그 안에 요소를 찾지 못하면 탭만 열린 상태로 남습니다.
- 값을 고치면 검증이 다시 실행되고, 그 행이 목록에서 사라지면서 빨간 표시도 함께 지워집니다.

참조 대상이 삭제된 경우입니다. 행을 클릭하면 VFB 에디터가 해당 컴포지션으로 들어가 포트를 선택하고, 오른쪽 속성 패널의 PORT INTERFACE 필드가 빨갛게 표시됩니다. 필드 아래에는 Referenced item not found 안내가 함께 나옵니다.

다이어그램 에디터가 아닌 곳에서도 같은 방식으로 동작합니다. SOME/IP 배포 세 개가 같은 Service ID 를 쓰면 각각 행이 생기고, 클릭하면 Interface 에디터의 SOA DEPLOYMENT 카드에서 SERVICE ID 필드만 빨갛게 표시됩니다. 카드 전체가 아니라 문제가 된 값 하나만 표시됩니다.
위반 설명 문장은 필드 아래에 표시되지 않습니다. 제약 설명이 길어 화면을 해치기 때문에, 필드에는 빨간 표시만 남고 전체 문장은 검증 패널 행에 그대로 남아 있습니다.
새 행을 클릭하면 이전 표시가 먼저 지워집니다. 즉 항상 한 번에 한 요소만 빨갛게 표시됩니다.
이동할 수 있는 에디터
위반 요소가 속한 영역에 따라 열리는 에디터는 다음과 같습니다.
| 위반 요소가 속한 영역 | 열리는 에디터 |
|---|---|
| DataType / Unit | DataType 에디터 |
| 포트 인터페이스, 서비스 배포·인스턴스, ErrorDomain | Interface 에디터 |
| SWC, 컴포지션, Machine, Executable/Process | VFB 에디터 |
| 노드, 커넥터, 클러스터, NM/TP/Global Time | IVC 에디터 |
| 시그널, PDU, 프레임, MULTIPLEXED-I-PDU | Signal 에디터 |
| SWC↔ECU 매핑, 루트 컴포지션 | System 페이지 |
클릭해도 이동하지 않는 행
일부 행은 클릭해도 에디터로 이동하지 않습니다. 해당 행과 이유는 다음과 같습니다.
| 행 | 이유 |
|---|---|
EcucModuleConfigurationValues, EcucContainerValue, EcucParameterValue, EcucAbstractReferenceValue | ECUC 에디터는 이름이 아니라 트리 경로로 대상을 지정하므로 아직 이동을 지원하지 않습니다 |
RuleFailure | 모델 요소가 아니라 검증 엔진 자체의 오류 행입니다 |
| 그룹 헤더 행 | 대표할 요소를 하나로 정할 수 없어 펼치기/접기만 합니다. 자식 행을 클릭합니다 |
이 행들에는 이동 툴팁이 붙지 않습니다.
검증 통과가 곧 ARXML 스키마 유효성을 뜻하지는 않습니다. 두 검사는 서로 다른 층입니다. 검증 패널은 설계 데이터가 AUTOSAR 제약을 지키는지 확인할 뿐이고, 내보낸 ARXML이 XSD에 맞는지는 13. 임포트 · 익스포트에서 다루는 별개의 문제입니다.