요구사항의 정의에 있어서 이슈가 될 수 있는 것은 기능적 요구사항(Functional
Requirement)과 비기능적 요구사항(Non-functional Requirement)의 구분이다. 기능적 요구사항은 고객 요구 사항 중에 수행될 기능과 관련되어 있는 입력과 출력 및 그들 사이의 처리과정이나 목표로 하 는 제품의 구현을 위해 SW가 가져야하는 기능적 속성을 의미한다.
비기능적 요구사항이란 제품의 품질 기준 등을 만족시키기 위해 SW가 가져야 하는 성능(응답시간, 처리량 등), 사용의 용이성, 신뢰도, 보안성, 운용상의 제약, 안정성, 유지보수성 등과 같은 행위적 특성으로 시스템의 기능에 관련되지 않는 요구사항들을 의미한다.
요구사항의 정의는 요구사항 분석단계의 비즈니스 모델링을 통해 수집된 사용자의 기능적 요구사항 을 정형화하고 비기능 요구사항에 대해 체계적으로 분류하고 명세화 해야 한다. 또한 구축할 시스 템의 범위와 개발 우선순위를 정해야 한다.
요구사항 분석단계에서 가장 중요한 산출물은 요구사항 정의서다. 요구사항 정의서는 프로젝트의 생명주기 내내 사용됨으로 시스템의 목표에 대한 구체적인 내용이 기술되어야 한다. 또한 요구사항 정의서는 사용자와 프로젝트 팀의 중요한 의사소통도구로 사용됨으로 최대한 쉬운 용어로 기술되고 기술된 내용은 서로 합의 되어야 한다.