반응형

 

Non-Functional과 Functional의 차이점

소프트웨어 요구 사항 명세(Software Requirement Specification, SRS) 작성에 있어서 Non-Functional 요구 사항과 Functional 요구 사항의 차이는 아래와 같다.


- Functional 요구 사항은 시스템이 수행해야 할 구체적인 기능이나 동작을 명시합니다. 이는 사용자의 요구를 바탕으로 하며, 시스템이 사용자에게 제공해야 할 서비스의 세부 사항을 포함합니다. 예를 들어, 사용자가 데이터를 입력, 조회, 수정, 삭제할 수 있는 기능, 특정 계산을 수행하는 기능 등이 여기에 해당합니다.

- Non-Functional 요구 사항은 시스템이 기능을 수행하는 방법에 대한 요구 사항을 정의합니다. 이는 시스템의 신뢰성, 확장성, 유지보수성, 보안성, 성능 등과 같은 품질 요소들을 포함하며, 시스템이 얼마나 잘 동작해야 하는지에 대한 기준을 제공합니다. 예를 들어, 처리 시간, 응답 시간, 데이터 처리량, 동시 사용자 수, 데이터 보안 기준 등이 여기에 해당합니다.

간단히 말해서, Functional 요구 사항은 "무엇을" 해야 하는지에 대해 설명하고, Non-Functional 요구 사항은 "어떻게" 해야 하는지, 즉 시스템이 기능을 수행하는 품질과 기준에 대해 설명합니다.

 

 

Functional 요구 사항 예시

  1. 사용자 관리: 사용자는 계정을 생성, 수정, 삭제할 수 있어야 합니다.
  2. 로그인 기능: 사용자는 시스템에 로그인하여 인증을 받아야 합니다.
  3. 데이터 보고: 사용자는 특정 기간 동안의 판매 데이터를 조회할 수 있어야 합니다.
  4. 결제 처리: 시스템은 사용자로부터 신용카드나 PayPal을 통한 결제를 처리할 수 있어야 합니다.
  5. 검색 기능: 사용자는 키워드를 사용하여 상품이나 정보를 검색할 수 있어야 합니다.

Non-Functional 요구 사항 예시

  1. 성능: 시스템은 최대 1000명의 동시 사용자를 지원하며, 모든 페이지는 3초 이내에 로드되어야 합니다.
  2. 보안: 시스템은 SQL 인젝션, 크로스 사이트 스크립팅(XSS) 공격을 방지하는 보안 조치를 구현해야 합니다.
  3. 가용성: 시스템은 연간 99.9% 이상의 시간 동안 온라인 상태를 유지해야 합니다.
  4. 확장성: 시스템은 사용자 수가 증가함에 따라 쉽게 확장할 수 있어야 합니다.
  5. 유지보수성: 코드는 모듈식이며, 문서화가 잘 되어 있어야 하며, 새로운 개발자가 쉽게 이해하고 유지보수할 수 있어야 합니다

 

자판기 시스템을 위한 Functional 요구 사항 예시

  1. 상품 선택: 사용자는 제품 번호를 입력하여 상품을 선택할 수 있어야 합니다.
  2. 결제 방식 선택: 사용자는 현금, 카드, 또는 모바일 결제 중 하나를 선택할 수 있어야 합니다.
  3. 금액 투입: 사용자는 현금을 투입할 수 있으며, 시스템은 투입된 금액을 인식해야 합니다.
  4. 거스름돈 반환: 시스템은 상품 구매 후 남은 금액을 사용자에게 거슬러 줄 수 있어야 합니다.
  5. 상품 배출: 사용자가 상품을 선택하고 결제를 완료하면, 시스템은 선택된 상품을 배출해야 합니다.
  6. 재고 관리: 시스템은 각 상품의 재고 수량을 추적하고, 상품이 소진되면 사용자에게 알려야 합니다.

자판기 시스템을 위한 Non-Functional 요구 사항 예시

  1. 성능: 자판기 시스템은 사용자의 입력을 받고 2초 이내에 반응해야 합니다.
  2. 보안: 결제 정보는 암호화되어 처리되어야 하며, 외부로부터의 무단 접근을 방지하기 위한 보안 조치가 필요합니다.
  3. 가용성: 자판기 시스템은 연중무휴 24시간 운영되어야 하며, 최소 99% 이상의 가용성을 유지해야 합니다.
  4. 유지보수성: 시스템은 쉽게 업그레이드 및 유지보수가 가능해야 하며, 문제 발생 시 신속하게 대응할 수 있어야 합니다.
  5. 사용자 인터페이스: 사용자 인터페이스는 직관적이고 사용하기 쉬워야 하며, 모든 사용자가 쉽게 이해할 수 있어야 합니다.
반응형