기타

[소프트웨어공학] 기능적, 비기능적 요구사항

히어로맛쿠키 2022. 10. 25. 12:50

요구사항

: 시스템이 '무엇을 해야 하는가'를 나타낸다. 고객의 문제를 해결하기 위한 것들이며, 단순 명료하게 표현해야 한다.

 

 

요구사항의 유형

- 기능적 요구사항

  시스템이 무엇을 해야 하는가를 기술 | ex) ATM 시스템은 입금, 출금을 해야 함

  시스템에 주어지는 특정 입력에 대한 시스템이 산출하는 출력을 통해 정의된다. 

 

- 비기능적 요구사항

  개발과정에 대한 제약조건

  성능, 효율, 반응시간, SW품질 특성에 대한 수준

  비기능적 요구사항이 충족되지 않으면 시스템의 이용가치가 없다.

 

 

 

기능적, 비기능적 요구사항에 어떤 것이 포함되는지 아래 정리하겠다.


기능적 요구사항

- 입력

- 출력

- 저장

  (DB에 저장 등)

- 컴퓨팅

  (시스템에서 이루어지는 계산들을 의미)

- 타이밍과 동기화

  (하드웨어 장치를 제어, 실시간 작업 수행 시스템에서 중요)

 

 

비기능적 요구사항

개발시 지켜야할 제약조건이다.

모든 요구사항은 측정/검증 가능해야한다는 것을 유의해야 한다.

  세가지 주요 유형

1. 소프트웨어 품질 특성 측면

  반응시간 / 처리량 / 자원 사용량 / 신뢰성 / 가용성 / 고장에서의 회복 / 유지보수성과 확장의 허용 / 재사용성의 허용

2. 시스템 환경 & 기술적 측면

  플랫폼 : 동작할 HW, OS

  사용 기술 : 프로그래밍 언어, 프레임워크 등

3. 프로젝트 계획 & 개발방법 측면

  사용하는 개발 프로세스 (방법론)

  비용, 납기일 등

 


기능적 요구사항과 비기능적 요구사항 예시

 

- 기능적 요구사항

사용자는 초기 데이터베이스의 모든 정보를 검색하거나, 일부를 선택할 수 있어야 한다.

모든 주문(order)은 고유번호인 ORDER_ID를 가져야 하며, 이것을 사용자가 영구 저장소에 복사할 수 있어야 한다.

담당 의사는 자신이 담당한 환자의 진로 내용을 입력 또는 수정한다.

환자 정보 관리자는 환자의 정보를 등록, 삭제할 수 있다.

환자는 자신이 진료한 내역을 조회할 수 있다.

예약 시 고객의 정보를 입력하는 방법을 결정해야 한다.

영수증과 예약 확인서에 어떤 정보를 표시할 지 결정해야 한다.

예약 대행 여행사와 고객이 호텔 정보 데이터베이스에 접근할 때 어떤 정보를 얻을 수 있는지를 결정해야 한다.

 

- 비기능적 요구사항

시스템 장애로 인한 정지시간이 한달에 1시간을 넘지 않아야 한다.

해외 분점 호텔의 고객 정보까지 관리하기 위해 시스템을 확장할 수 있도록 설계해야 한다.

동시에 100명 이상이 주문을 요청해도 처리할 수 있어야 한다.

 

 

참고) 기능과 비기능 모두 아닌 것도 잘 파악할 수 있도록 하자

 

 


반응형