사용자 요구사항
ex) 판매자에게 주문 관리를 할 수 있어야 한다
시스템 요구사항
ex) 시스템은 판매자에게 주문 목록을 제공해야 한다
주문 목록은 주문번호, 주문일자, 고객정보, 주문 상태 등의 정보를 포함 해야 한다
판매자는 주문을 확인하고 배송 상태를 업데이트 할 수 있어야 한다
기능요구사항
시스템에 주어지는 특정 입력에 대한 시스템이 산출하는 출력을 통해 정의된다.
*때에 따라 해서는 안될 것 들을 명시하기도 한다
a. 기능적 사용자 요구사항
사용자에 의해 이해 될 수 있는 추상적 방법으로 설명
ex)사용자는 시스템에 로그인을 할 수 있어야 한다.
b. 기능적 시스템 요구사항 : 시스템 개발자를 위해 사용자 요구사항을 확장해서 작성한 것
ex) 시스템은 사용자가 아이디와 비밀번호를 입력하여 로그인하는 기능을 제공해야 한다.
시스템은 올바른 아이디와 비밀번호를 입력한 경우에는 사용자를 인증하고 유저 정보 페이지로 리다이렉션 해야 한다.
시스템은 잘못된 아이디나 비밀번호를 입력한 경우에는 사용자에게 오류 메시지를 표시해야 한다.
비기능 요구사항
시스템이 제공하는 서비스나 기능에 대한 제약 사항 (시간적 제약, 개발 프로세스에 대한 제약, 표준 제약)

a. 제품 요구사항 (Product Requirement)
b. 조직 요구사항 (Organizational Requirement)
c. 외부 요구사항 (External Requirement)
상호 운용성 (Interoperability) : 구현할 소프트웨어가 다른 소프트웨어와 어떻게 연동할지 정의
윤리적 (Ethical) : 소프트 웨어의 내용의 윤리적 범위을 정의
ex) 성인용 게임 19세 이상
법적 (Legislative)
사생활(privacy) ex) 공개범위 선택
안전성(safety) ex) 자료 저장방식, DBMS 어떤것? 자료의 암호화 여부
다양한 유형의 독자들이 서로 다른 방식으로 요구사항을 읽을 수 있음
→ 상세 수준을 여러 단계로 나누어서 요구사항을 작성할 필요가 있다
명확성 (Unambiguous) : 요구사항은 항상 동일한 의미로 해석되어야 한다.
⇒ 모호하지 않아야 한다.
정확성 (Correct) : 요구사항은 이해관계자들이 실제로 원하는 것이야한다.
완전성 (Complete) : 사용자가 기대하는 '모든' 기능/비기능적 요구사항이 기술되어야 한다.
⇒ 누락되어서는 안 된다.
일관성 (Consistent) : 서로 상충되는 요구사항이 있어서는 안 된다.
구현가능성(Feasible): 가용한 기술과 한정된 일정/비용으로 구현이 가능해야한다.
객관적으로 검증할 수 있도록 구체적이어야 한다.