[소프트웨어 공학] 기능적, 비기능적 요구(Functional, Non-Functional Requirement) - 4-1

2022. 10. 26. 21:37·Software Engineering

요구사항(Requirement)이란?

시스템이 무엇을 해야 할지에 대해서 서술한 것 그러므로 당연히 소비자의 니즈(needs)가 반영된다

이러한, 니즈와 제약에 대해서 찾아내고, 분석하고, 문서화 그리고 검토하는 것을 요구 공학이라고 부른다

요구 사항은 고급언어(*사람이 이해할 수 있는)로 적히고 , 시스템이 제공해야 하는 서비스와

(서비스, 개발, 운영) 시스템의 제약이라고 할 수 있다

 

1. 사용자 요구(User Requirement Definition):

시스템의 제약과 서비스를 표현하기 위해 자연어와 다이어그램으로 나타내어진다

 

2. 시스템 요구(System Requirements Specification):

소프트웨어 시스템의 기능, 서비스 그리고 운영상의 제약보다 상세하게 적힌다

무엇을 구현할지에 대해 상세하게 설명

 

예시

기능적 & 비기능적 요구사항

소프트웨어 시스템은 일반적으로 기능적 혹은 비기능적 요구사항으로 분류된다

 

기능적 요구사항 :

시스템이 제공해야 하는 서비스의 서술문

어떻게 서비스가 특정 환경에서 반응하고 대응하는지 

사용자 요구사항으로 표현될 때 기능 요구사항은 일반적으로 시스템 사용자가 이해할 수 있는 추상적 방식으로 설명된다

시스템 기능에서 인풋(input)과 아웃풋(output), 익셉션(exception) 같은 것이다

 

기능적 요구사항의 명세

1. 요구사항의 완전성 : 사용자의 의해 요구된 모든 서비스가 정의되어야 한다

 

2. 요구사항의 일관성 : 요구사항은 모순되는 정의가 있으면 안 된다

실제로는, 크고 복잡한 시스템에서, 완전성과 일관성을 이룬다는 것은 불가능하다

 

비기능적 요구사항 : 

:시스템으로부터 제공되는 서비스나 기능의 제약사항

:개별적인 시스템 특징 혹은 서비스보다는 전체 시스템에 적용되곤 한다

:시스템이 사용자에게 제공하는 특정 서비스와 직접적으로 관련되지 않은 요구사항

:신뢰성 , 응답 시간 그리고 메모리 사용량 같은 시스템 속성과 관련된 제약

:퍼포먼스, 보안 혹은 이용 가능성(availability) 같은 시스템 구현과 관련된 제약

 

비기능적 요구사항 특징

: 비기능적 요구사항이 만족되지 않으면 기능적 요구사항보다 심각해질 수 있다

: 비기능적 요구사항은 특정 컴포넌트보다 시스템의 전체 아키텍처에 영향을 받는다

 

 

Non-Functional Requirement

 

비기능적 요구사항의 분류

 

1. 제품 요구사항(Product Requirement) : 소프트웨어 실행시간 동작에 대한 제약 혹은 구체사항

ex) 성능 , 신뢰성, 보안, 사용성..

 

2. 조직 요구사항(Organization Requirement) : 고객과 개발자 조직 안의 정책과 절차로부터 오는 요구사항

ex) 운영 프로세스, 개발 프로세스, 개발환경, 프로세스 표준 , 운영환경...

 

3. 외부 요구사항(External Requirement) : 시스템과 개발 과정 외부 요소로부터 오는 광범위한 요구사항

ex) 규제, 법률, 윤리...

비기능적 요구사항의 척도(Testability)

: 비기능적 요구사항은 다른 기능적 혹은 비기능적 요구사항과 종종 충돌한다

: 요구사항 문서에서 기능적 그리고 비기능적 요구사항을 분류하는 것은 어렵다

 

 

 

 

저작자표시 비영리 변경금지 (새창열림)
'Software Engineering' 카테고리의 다른 글
  • [소프트웨어 공학] DesignConcept - 1
  • [소프트웨어 공학] 요구 공학(Requirement Engineering) - 4-2
  • [소프트웨어 공학] 시스템 모델링(System modeling) - 5
  • [소프트웨어 공학] 엔지니어가 되기 위한 첫걸음 - 0
Jelong
Jelong
커스텀 웹: https://jaehong-park.com Github: https://github.com/qkrwoghd04
  • Jelong
    24/7 Developer's Note
    Jelong
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Software Engineering
      • Ubuntu
      • Network
      • JavaScript
      • Web
      • Interaction Design
      • React Native
      • React
      • Algorithm
      • Java
      • Database design
      • IT Trend
      • TroubleShooting
      • AWS
      • Interview
      • LG CNS AM CAMP 1기
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자바스크립트
    AWS
    화이트 박스 테스트
    heap
    html
    알고리즘
    BST
    java
    JS
    expo
    generic
    React
    mininet
    prototyping
    블랙 박스 테스트
    css
    데이터 구조
    티스토리챌린지
    이진트리
    frontend
    GPT-4
    알고리즘 분석
    typescript
    오블완
    javascript
    소프트웨어 공학
    Queues
    ChatGPT
    자바
    미니넷
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Jelong
[소프트웨어 공학] 기능적, 비기능적 요구(Functional, Non-Functional Requirement) - 4-1
상단으로

티스토리툴바