비기능 요구사항
IT위키
더 많은 작업
- Non-Functional Requirement; NFR; 비기능적 요구사항
- 시스템이 무엇을 하느냐가 아니라 그 일을 얼마나 잘, 어떤 제약 아래에서 해야 하는지를 정한 요구사항
요구사항은 크게 기능 요구사항과 비기능 요구사항으로 나뉜다. 기능 요구사항이 "예약한 고객 목록을 출력한다" 처럼 시스템이 입력을 받아 내놓아야 할 동작을 말한다면, 비기능 요구사항은 "응답은 2초 안에", "메모리는 400MB 이내로", "개인정보는 암호화해 저장" 처럼 그 동작에 붙는 품질 기준과 제약을 말한다. 비기능 요구사항은 특정 기능 하나가 아니라 시스템 전체에 걸쳐 적용되는 경우가 많고, 놓치면 기능이 다 돌아가도 시스템을 쓸 수 없게 된다. 그래서 측정할 수 있는 수치로 적어야 검증할 수 있다.
| 구분 | 기능 요구사항 | 비기능 요구사항 |
|---|---|---|
| 묻는 것 | 시스템이 무엇을 하는가 | 그것을 얼마나 잘·어떤 조건에서 하는가 |
| 예 | 남은 조리 시간을 계산해 표시한다, 문서의 단어 수를 분석해 표로 보여 준다, 특정일 예약 고객 목록을 출력한다 | 프로그램은 400MB 이내의 메모리를 사용해야 한다, 동시 사용자 1,000명에서 응답 3초 이내, 연간 가동률 99.9% |
| 검증 | 기능 테스트(입력에 맞는 출력이 나오는가) | 성능·부하·보안·사용성 테스트(수치를 만족하는가) |
| 종류 | 내용 | 예 |
|---|---|---|
| 성능 | 응답 시간, 처리량, 자원 사용량 | 검색 결과 2초 이내, 메모리 400MB 이내 |
| 신뢰성·가용성 | 고장 없이 동작하는 정도, 가동률, 복구 시간 | 가동률 99.9%, 장애 시 30분 안에 복구 |
| 보안 | 접근 통제, 암호화, 감사 기록 | 비밀번호는 솔트를 붙여 해시로 저장 |
| 사용성 | 배우고 쓰기 쉬운 정도 | 신규 사용자가 교육 없이 10분 안에 주문 완료 |
| 유지보수성·이식성 | 고치기 쉬운 정도, 다른 환경으로 옮기는 정도 | 윈도우·리눅스 서버 모두에서 동작 |
| 제약 사항 | 사용해야 할 기술·표준·법규 | 특정 DBMS 사용, 웹 접근성 지침 준수 |
- ISO/IEC 25010 의 품질 특성(성능 효율성, 신뢰성, 보안성, 사용성, 유지보수성, 이식성 등)이 비기능 요구사항을 분류하는 기준으로 쓰인다 → 소프트웨어 품질
- 소프트웨어 요구사항 명세서는 보통 기능 요구사항과 비기능 요구사항을 따로 장을 나눠 적는다