[SW설계] 요구사항 개발하기(EARS방식) - LKAS 기능

CS·2025년 6월 14일

SW설계

목록 보기
8/13

ADAS ECU - LKAS(Lane Keeping Assist System) 기능 요구사항 명세

LKAS(Lane Keeping Assist System)이란 ADAS기능 중 하나로,
운전자가 차선을 이탈할 경우에 자동으로 스티어링 휠을 조작하여
차선을 유지하도록 돕는 시스템

반자율주행의 핵심 기술중 하나로, 카메라를 사용하여 비전 처리를 수행한다.

[요구사항 1 - 시스템 활성화]
운전자가 차량을 시동하고 LKAS 스위치를 켜면, LKAS 시스템은 대기 상태로 전환되어야 한다.

[요구사항 2 - 차선 인식]
차량 속도가 60km/h 이상이고 차선이 인식되면, LKAS 시스템은 능동 감시 상태로 전환되어야 한다.

[요구사항 3 - 차선 이탈 감지]
차량이 차선을 벗어나려는 움직임이 감지되면, LKAS 시스템은 운전자 개입 없이 조향 보조를 수행해야 한다.

[요구사항 4 - 조향 보조 해제]
운전자가 스티어링 휠을 직접 제어하기 시작하면, LKAS 시스템은 즉시 조향 보조를 해제하고 감시 상태로 전환해야 한다.

[요구사항 5 - 시스템 자동 해제]
차선이 인식되지 않거나 속도가 60km/h 이하로 떨어지면, LKAS 시스템은 자동으로 대기 상태로 전환해야 한다.

[요구사항 6 - 시스템 종료]
운전자가 시동을 끄거나 시스템 오류가 발생하면, LKAS 시스템은 종료되어야 한다.


EARS 방식(Easy Approach to Requirements Syntax)은

SW나 Sys 개발에서 요구사항을 명확하고 일관되게 작성할 수 있도록 돕는 표준화된 템플릿 방식.
특히 비전문가도 이해하기 쉬운 형식으로 작성할 수 있도록 고안되어
자연어 기반의 요구사항을 체계적으로 정리하는 데에 유용

🔹 EARS 방식이란?

EARS는 아래와 같은 문장 구조를 가진 요구사항 템플릿 :
When [trigger], the [system] shall [response].

위의 예시를 보면, 이와 같이 작성되었다.

이 템플릿을 바탕으로, EARS는 다양한 요구사항 유형을 5가지 범주로 분류해 제공함.

🔸 EARS의 요구사항 유형

5가지 type Template
Ubiquitous (항상) :

The system shall [response].

ex) The system shall log all user actions.


Event-driven (사건 발생 시) :

When [trigger], the system shall [response].

ex) When the brake is pressed, the system shall activate the brake lights.


State-driven (상태 기반) :

While [state], the system shall [response].

ex) While the engine is running, the system shall monitor coolant temperature.


Optional (조건적) :

If [condition], the system shall [response].

ex) If the temperature exceeds 90°C, the system shall sound an alarm.


Complex (복합형) :

If [condition], when [trigger], the system shall [response].

ex) If the system is in diagnostic mode, when a fault is detected, the system shall log it.


✅ EARS 방식의 장점

  • 자연어 기반이라 이해하기 쉬움
  • 문장 구조가 정형화되어 있어 모호성을 줄임
  • 다양한 상황(조건, 상태, 이벤트)에 따라 요구사항을 분류하여 관리하기 쉬움
  • 개발자뿐 아니라 이해관계자(고객, 기획자 등)와의 커뮤니케이션이 원활

🧩 Software Requirements Specification (소프트웨어 요구사항 명세서) 작성시 사용

  • 기능 정리 초기 단계에서 비기술자와 협업할 때
  • 임베디드 시스템이나 자동차 SW 등 상태 기반 제어가 많은 분야에서 특히 유용
profile
학습

0개의 댓글