승코딩당당당

[A-SPICE] V-Model과 요구사항 공학 본문

개발/임베디드

[A-SPICE] V-Model과 요구사항 공학

승코딩당당당 2026. 1. 29. 23:27

 

V-Model과 요구사항 공학

자동차 소프트웨어 개발에서 V-Model은 개발 단계와 테스트 단계를 1:1로 대응시켜 관리하는 대표적인 개발·검증 모델이다.
이 모델의 핵심은 요구사항 공학이 모든 단계의 기준이 된다는 점이다.

 


 

V-Model의 기본 개념

V-Model은 왼쪽에서 정의·설계,
오른쪽에서 검증·확인이 이루어지는 구조를 가진다.

  • 왼쪽: 요구사항 정의 → 설계 → 구현
  • 오른쪽: 단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트

각 테스트 단계는 대응되는 요구사항 또는 설계 산출물을 기준으로 수행된다.
즉, 테스트는 구현 이후에 갑자기 시작되는 활동이 아니라, 요구사항 단계부터 함께 고려되는 활동이다.

https://m.blog.naver.com/mdstec_auto/221175910910

 


 

요구사항의 정의

요구사항이란 현실 세계의 문제를 해결하기 위해 고객에 의해 요구되거나,
표준을 만족하기 위해 제품이 가져야 하는 서비스 또는 제약사항을 의미한다.

요구사항은 개발의 출발점이자, 설계·구현·테스트 전 단계의 기준과 판단 근거가 된다.

 

요구사항의 분류

요구사항은 성격에 따라 다음과 같이 분류할 수 있다.

 

1. 고객 요구사항

  • 고객이 제품에 대해 기대하는 요구사항(Needs)이다.
  • 예를 들어, “스스로 이동하며 청소해야 한다”와 같은 요구가 이에 해당한다.

2. 제품 요구사항

  • 고객 요구사항을 만족시키기 위해 제품이 수행해야 하는 개발 관점의 구체적인 요구사항이다.
  • 예를 들어, 주변 감지, 속도 계산, 경로 계획 등이 있다.

3. 기능적 요구사항

  • 제품이 목표를 달성하기 위해 사용자에게 제공해야 하는 행위적(기능적) 속성이다.
  • 예를 들어, “주변을 감지해야 한다”와 같은 요구이다.

4. 비기능적 요구사항

  • 성능, 안전성, 사용성 등 품질 기준을 만족하기 위해 필요한 요구사항이다.
  • 예를 들어, “100ms 이내에 주변을 감지해야 한다”와 같은 요구가 있다.

 


 

소프트웨어 요구사항 공학이란?

요구사항 공학이란 소프트웨어를 개발하기 위한 요구사항을

  • 추출
  • 분석
  • 명세
  • 검증

하고, 개발 과정 중 발생하는 요구사항 변경과 추적을 관리하는 공학적 접근 방법이다.

요구사항 공학은 단순히 문서를 작성하는 활동이 아니라, 개발 전반의 품질과 직결되는 핵심 활동이다.

 


 

요구사항 명세 방법

요구사항 명세 방법은 정형화 정도(Formality)에 따라 구분된다.

 

1. Information Notation

자연어 기반 명세 방법이다.
EARS(Easy Approach to Requirements Syntax)와 같은 기법이 대표적이다.

자연어를 사용하지만, 조건–행동–결과 구조를 통해 요구사항의 모호함을 줄인다.

 

2. Semiformal Notation

UML과 같은 모델링 언어를 사용한다.
소프트웨어의 기능적, 구조적, 동적 관점을 표준화된 표기법으로 표현한다.

자연어 명세에 비해 의사소통 오류를 줄일 수 있다.

 

3. Formal Notation

수학적 기호와 논리식을 사용하는 정형 명세 방법이다.
사람뿐 아니라 시스템도 동일하게 해석할 수 있는 가장 엄격한 명세 방식이다.

 


 

요구사항 검증의 중요성

요구사항은 작성되었다고 해서 끝이 아니다.
요구사항이 명확하고, 일관되며, 검증 가능한지 반드시 확인해야 한다.

요구사항 검증은 다음을 확인하는 활동이다.

  • 이해관계자의 기대사항이 올바르게 반영되었는가
  • 하나의 의미로 해석 가능한가
  • 구현 및 테스트가 가능한 수준인가
  • 상·하위 산출물과 추적 가능한가

V-Model에서는 요구사항이 테스트의 기준이 되기 때문에,
요구사항의 품질은 곧 테스트 품질로 이어진다.

 


 

📝 정리

V-Model에서 요구사항 공학은 개발을 시작하기 위한 형식적인 단계가 아니라, 개발과 테스트를 연결하는 핵심 축이다.

요구사항이 명확할수록 설계는 단순해지고, 테스트는 명확해지며, 재작업은 줄어든다.

자동차 소프트웨어 개발에서 요구사항 공학이 강조되는 이유가 여기에 있다.