기능 요구 사항은 시스템이 수행해야 하는 작업을 설명합니다: 비즈니스 운영, 프로세스, 사용자 시나리오 — 즉, 기능.
비기능 요구 사항은 시스템이 어떻게 작동해야 하는지를 정의합니다: 제한 사항, 품질 제약, 성능, 보안, 사용자 편의성 등. 이러한 요구 사항은 종종 기술 선택, 확장성과 솔루션의 안정성에 영향을 미칩니다.
왜 구분하는 것이 중요한가:
주요 특징:
“인터페이스의 편리함”은 기능 요구 사항에 포함되나요?
아니요, 비기능적 매개변수입니다 (usability). 기능 요구 사항은 "저장" 버튼과 같은 존재에 관한 것이고, 비기능 요구 사항은 반응 속도 및 사용의 용이성에 관한 것입니다.
고객이 명시적으로 언급하지 않으면 비기능 요구 사항을 무시해도 되나요?
아니요. 분석가는 비명시적 비기능 요구 사항조차 논의하고 формализовать 해야 하며, 그렇지 않으면 출시 지연, 사용자 불만 및 추가 비용의 위험이 증가합니다.
“시스템은 분당 1000개의 요청을 처리할 수 있어야 합니다.” 이는 기능 요구 사항인가요?
아니요, 이는 비기능 요구 사항입니다 — 성능 특성입니다.
부정적인 사례: 시스템이 선언된 비즈니스 기능을 완전히 구현했지만 큰 부하에서 "느려지기" 시작했으며, 성능이 전혀 고려되지 않았습니다. 장점:
긍정적인 사례: 분석가는 아키텍트 및 고객과 함께 요구 사항에 최대 부하, 응답 기준을 문서화하고 부하 테스트를 실시했습니다. 장점: