모호한 기대를 확인할 수 있는 요구로 바꾼다
'빠르고 정확하며 안전한 로봇'은 방향이지만 그 문장만으로 시험 통과를 판정하기 어렵다. 누가/어느 단계에서 어떤 입력·조건에 대해 무엇을 관측해야 하는지, 한계/시간·실패/미상을 어떻게 다룰지 정한다. 요구마다 R1 같은 고유 ID와 출처/이유·범위/버전을 붙인다. 시험 결과를 본 뒤 한계를 유리하게 바꾸면 같은 요구의 검증이 아니므로 변경 이유/영향과 새 시험을 남긴다.
요구를 확인하는 verification과 의도한 사용 목적/환경에 맞는지 확인하는 validation도 구분한다. 숫자 임계값을 정확히 구현해도 그 값/환경이 실제 배달/집기에 충분한지 별도 근거가 필요하다. NASA 공식 제품 실현 설명은 이 두 책임과 결과/이상·수정 근거의 보존을 다룬다. 이번 교육용 표가 NASA 절차/인증을 충족한다고 선언하지 않고 요구와 증거를 연결하는 원리를 적용한다.
입력/출력의 이름보다 의미와 상태를 적는다
가상 S1 인터페이스의 목표는 base frame의 유한한 3D 점(m 단위)이다. frame/단위·관측 ID/취득 stamp와 clock·task/장면/모델 버전, 목표/요청 ID와 권한/유효 범위를 기록한다. 성분 세 개가 있다고 물체/TCP/목표의 의미가 같은 것은 아니다. 회전 자세/관절/그리퍼나 경로가 필요한 실제 과업은 추가 계약이 있어야 한다.
출력에는 후보/수락·진행/최종 성공/실패/미상과 그 근거 ID/시각·거부 이유를 둔다. 요청을 수락한 사건을 물체가 목적 위치에서 유지된 사건으로 바꾸지 않는다. timeout/중단·중복/재시작/버전 교체의 정책과 기본 상태도 적는다. 전체 실행 경로와 물리 상태에 대한 미확인이 있으면 숫자 출력이 가능해도 이를 숨기지 않는다.
다음 네 요구는 이번 종이 과제의 규칙이며 실제 장비 허용치/안전 기준이 아니다. R1은 S1의 frame=base/단위 m·유한 3성분 계약과 다르면 admission을 거부한다. R2는 같은 clock에서 관측 나이 age=검사−취득이 0~80 ms 포함 범위일 때만 새 동작을 받아들인다. R3는 최종 배치 위치 오차가 10 mm 이하이고 1 s 유지 관측이 있을 때만 배치 성공으로 센다. R4는 최종 결과 근거가 없으면 완료를 단정하지 않고 미상으로 기록한다.
요구와 사례/원본을 양쪽으로 추적한다
NASA 공식 verification matrix는 고유 요구 ID/출처와 검증 접근을 연결한다. 여기의 추적 행렬은 요구→시험 ID/방법·입력/예상/주어진 결과→원본/판정·결함을 연결하는 표다. 결과에서 어떤 요구를 확인했는지도 거꾸로 찾을 수 있어야 한다. 요구가 있지만 시험이 없거나 시험이 있지만 무엇을 확인했는지 없는 행을 찾는다.
검사 시각은 같은 clock의 2.100 s다. 아래는 가상 구현이 남겼다고 주어진 합성 동작 기록이다. 실제 프로그램/로봇을 실행한 결과가 아니며 학습자는 요구와 비교해 기록의 결함을 찾는다. T1~T4의 점은 모두 (0.3,0,0.2) m·유한 S1이고 표에 적힌 frame만 다르다.
| 사례/요구 | 입력/기록 | 가상 구현의 관찰 결과 |
|---|---|---|
| T1 / R1·R2 | base, 관측 2.060 s | admission 수락 |
| T2 / R1 | camera, 관측 2.060 s | admission 수락 |
| T3 / R2 | base, 관측 2.020 s | admission 수락 |
| T4 / R2 | base, 관측 2.010 s | admission 거부 |
| T5 / R3 | 목표 (0.3,0,0.2), 결과 (0.312,0,0.2) m·유지 1 s 확인 | 배치 성공으로 보고 |
| T6 / R4 | 요청 수락만 있고 최종 결과 없음 | 완료로 보고 |
T1의 age는 40 ms로 유효하고 T3은 80 ms 경계 포함이라 유효하다. T4는 90 ms라 10 ms 초과이며 거부가 맞다. T2는 시간이 같아도 camera/base 계약이 달라 거부해야 한다. 유효한 TF로 변환하는 별도 기능/계약이 없는 이번 S1에 이름만 바꿔 통과시키지 않는다.
T5 위치 오차는 sqrt((0.312−0.3)²)=0.012 m=12 mm다. 1 s 유지가 있어도 위치 한계를 2 mm 넘어서 성공이 아니다. T6은 수락만으로 완료를 선언해 R4를 위반한다. 따라서 사례 판정은 T1/T3/T4 통과, T2/T5/T6 실패다. 통과 3/6=50%는 이 합성 요구 시험의 일치율이며 로봇 작업 성공률이 아니다.
사례가 있다는 사실과 요구 전체의 검증은 다르다
네 요구 ID에 모두 사례가 연결되어도 정상/오류·경계/변형과 실제 경로가 충분히 확인된 것은 아니다. R1에는 단위/NaN·누락/shape 오류를, R2에는 음수 age/다른 clock·재시작/늦은 응답을 추가할 수 있다. R3의 10 mm 경계·유지 중 이탈/관측 끊김과 R4의 실패/취소/중복 결과도 별도 사례다. 추가할 사례를 이미 실행/통과한 것으로 표기하지 않는다.
주어진 표에서 R2는 반례가 없지만 모든 상황에서 올바르다는 증명은 아니다. R1/R3/R4의 반례가 있어 전체 과제를 합격 처리할 수 없다. 실패를 고치면 해당 최소 재현 사례와 정상/경계·연결 경로를 다시 확인한다. 결과 합계가 높아졌다는 이유로 중요한 거부/미상 처리 결함을 덮지 않는다.
실패 기록은 ID/요구·원본·현재/예상 결과, 재현 조건/버전, 가설/대안·영향, 수정 내용/재검증/남은 미상으로 구성한다. T2의 frame 검사 누락은 가설이며 실제 코드 원인을 보지 않았다면 단정하지 않는다. T5는 단위/거리 계산/판정 또는 잘못된 결과 연결도 대안이다. 관측된 결함과 추측한 원인을 다른 열로 남긴다.
재현 패키지는 남이 순서를 따라갈 수 있어야 한다
패키지 설계에는 README의 목적/단계·비실행 범위, 요구/인터페이스·manifest, 원본 입력/로그와 schema/단위, 계산 방법/기대 결과, 사례/추적 행렬, 실패/수정/재검증·최종 리포트를 넣는다. 파일 수를 늘리는 것이 목적은 아니다. 요약 표의 숫자가 어느 원본 ID/행과 어떤 식에서 나왔는지 찾아가고 같은 입력에서 계산할 수 있어야 한다.
실행/계산에 필요한 OS/아키텍처·도구/의존성/모델·전처리/통계/보정·driver와 데이터/분할·해시/버전을 기록한다. 선택 코드가 없어도 이 활동은 표/식으로 재현할 수 있다. 모델/장비가 없으면 계산·로그 해석 경로와 실제 실행에 필요한 추가 전제/미시험을 명시한다. 입력/데이터의 사용 조건·출처도 확인하며 외부 공유/장비 실행은 별도 작업이다.
예상 결과와 실제 관측·합성 기록을 표시하고 기존 실패를 지우지 않는다. 새 버전의 재검증은 이전 원본을 보존한 채 새 ID로 연결한다. 기존 6.8 포트폴리오 패키징과 6.6 평가 설계를 연결해 검토자가 요구/범위·분모·미상과 남은 작업을 판단하도록 하자. 이 단위는 패키지의 설계/문서 과제이며 실제 배포/출판 산출물을 만들지 않는다.
선택 과제·공통 산출물/기본 평가 안내 열기: 세 과제 중 하나를 선택하고 M32.05/.06에 연결한다. 장비 없는 기본 기준과 선택 실물 확장 기준을 구분한다.