비기능적 요구사항 사용성 - bigineungjeog yogusahang sayongseong

요구사항 (Requirement) : 시스템이 갖춰야 할 요건

 요구사항 내용의 종류에 따라서 기능적 요구사항과 비기능적요구사항을 나눌 수 있다.  정산하기나 모임 관리처럼 시스템이 갖고 있는 기능기능적 요구사항이라하고 정산하는 속도, 시스템의 메모리 사용량처럼 기능은 아니나 측정해서 제한을 두고 시스템이 만족하도록 해야 하는 것비기능적 요구사항이라 한다.


 기능적 요구사항 (Functional Requirements)

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

- 시스템은 어떤 서비스를 제공하는가

- 어떤 입력이 주어졌을 때 어떻게 반응하는가

- 어떤 상황에서 어떻게 행동하는가 

- 시스템이 무엇을 해야 하는지 설명 (기능 or 시스템 서비스)

기능적 사용자 요구사항 : 사용자에 의해 이해 될 수 있는 추상적 방법으로 설명

기능석 시스템 요구사항 : 시스템 기능, 입력, 출력, 예외사항 등 

비기능적 요구사항 (Non-Functional Requirements)

소프트웨어 기능들에 대한 조건(시스템의 속성)과 제약사항에 관한 요구사항

- 기능적 요구사항보다 더 결정적인 부분이 될 수 있다 -> why? 이부분이 충족되지 않으면 시스템 이용가치 X

- 각각의 특징과 서비스보다는 전체적인 시스템에 적용

비기능적 요구사항 사용성 - bigineungjeog yogusahang sayongseong

제품 요구사항(Product Requirement) - 제품의 동적을 규정 

조직 요구사항(Organizational Requirement)- 고객과 개발자 조직의 정책과 절차 

외부 요구사항(External Requirement) - 시스템과 그 개발 프로세스의 외부 요소로부터 생긴 모든 요구사항 

  비기능적 요구사항 

제품 요구사항

(Product Requirement)

사용성(Usability)  :   사용자가 어떻게 쉽게 사용할 수 있는가
효율성(Efficiency) 성능(Performance)  :  특정 기능이 특정시간 내에 실행 
공간 (Space)  :  특정 기능 수행시 메모리를 최대 얼마까지 사용할 수 있는가 
신뢰성(Reliableility)  :  특정 기능 실행시 실패할 가능성이 몇 %보다 낮아야 하는가 
이식성 (Portability)  :  다양한 플랫폼 위에서 작동하는가 

조직 요구사항 

(Organizational Requirement)

배포(Delivery)  :  소프트 웨어를 어떻게 배포할 것인가 
구현(Implement)  :  소프트웨어 구현 ; 어떤 방법론? 어떤 프로그래밍 언어?
표준(Standard)  :  소프트웨어 개발 시 어떤 표준을 따를 것인가 

외부 요구사항

(External Requirement)

상호 운용성 (Interoperability)  :  구현할 소프트웨어가 다른 소프트웨어와 어떻게 연동할지 정의 
윤리적 (Ethical)  :  소프트 웨어의 내용의 윤리적 범위을 정의 ex) 성인용 게임 19세 이상  
법적 (Legislative)  사생활(privacy)   ex) 공개범위 선택
안전성(safety)     ex) 자료 저장방식, DBMS 어떤것? 자료의 암호화 여부 

이해하고 문제 풀어보기 ! 시나공 책 중 일부 

정처기 스터디 - 기능 비기능 문제 .docx

0.02MB


* 참고문헌 

https://gomoveyongs.tistory.com/17

[Chap 4] Requirements Engineering

1) 요구사항 수집에서의 문제점 - 고객들의 요구사항들은 대체로 애매한 아이디어들이다. - 개발자는 애매한 요구사항들을 가지고 계속 진행을 하게 된다. - 고객들의 요구사항들은 계속해서 변한다. 예) '온라인..

gomoveyongs.tistory.com

비기능적 요구사항 사용성 - bigineungjeog yogusahang sayongseong

https://m.blog.naver.com/netrance/110141647706

[소프트웨어공학] 비기능적 요구 사항 (non-functional requirement)

비기능적 요구 사항이 소프트웨어 공학을 처음 배우는 분들에게는 쉽게 이해할 수 있는 개념은 아닙니다. ...

blog.naver.com

비기능적 요구사항 사용성 - bigineungjeog yogusahang sayongseong

1. 이해관계자의 종류에 따른 요구 사항의 구별

    이해관계자의 stakeholder는 여러 종류

somethings of software needed or asked for from project managers' viewpoints in order to outline software(소프트웨어의 윤곽을 정하기 위해 프로젝트 관리자의 관점에서 소프트웨어가 필요로 하는 것들)

somethings of software needed or asked for from architects' viewpoints in order to design software(소프트웨어를 설계하기 위해 설계자의 관점에서 소프트웨어가 필요로 하는 것들)

somethings of software needed or asked for from developers' viewpoints in order to develop software(소프트웨어를 개발하기 위해 개발자의 관점에서 소프트웨어가 필요로 하는 것들)

2. 내용의 종류에 따른 요구 사항의 구별

    요구 사항은 내용은 크게 기능적 요구 사항과 비기능적 요구 사항으로 구별

functional things of software needed or asked to develop software
(소프트웨어를 개발하기 위해 소프트웨어가 필요로 하는 기능적인 것들)

nonfunctional things of software needed or asked to develop software
(소프트웨어를 개발하기 위해 소프트웨어가 필요로 하는 비기능적인 것들)

3. 소프트웨어 요구 사항의 종류

요구 사을 구별하는 기준

요구 사항의 종류

참여자의 관점

사용자 요구 사항

사용자의 관점에서 소프트웨어에 대해 원하는 사항들

시스템 요구 사항

관리자나 설계자의 관점에서 하드웨어와 소프트웨어가 갖춰야 하는 것들

소프트웨어 요구 사항

소프트웨어 개발자의 관점에서 소프트웨어가 갖춰야 하는 사항들

요구 사항 내용의 종류

기능적 요구 사항

소프트웨어를 구성하는 기능들이 무엇인지를 정의한 것

비기능적 요구 사항

소프트웨어의 기능들에 대한 조건과 제약 사항들이 무엇인지 정의한 것

요구 사항을 만드는 주체

비즈니스 요구 사항

개발을 의뢰하는 단체가 작성한 요구 사항

4. 비기능적 요구 사항

Ian Sommerville의 Software Engineering 서적에서는 하나의 다이어그램으로 비기능적 요구 사항들의 유형을 소개

1) 제품 요구 사항 (product requirement) - 제품의 품질에 대한 비기능적 요구 사항

     - 사용성 요구 사항 (usability requirement)

     사용자가 소프트웨어를 어떻게 쉽게 사용할 수 있을지가 기술되는 요구 사항. 예를 들어

     사용자 인터페이스는 어떤 방식을 채택할 것인가?


 GUI를 지원한다면, UI 요소들은 어떻게 배치할 것인가?

  사용 중 오류가 발생한다면, 이를 어떻게 보여줄 것인가?

  다국어를 지원할 것인가?

  도움말이나 매뉴얼은 어떻게 작성할 것인가?

  장애인은 소프트웨어를 어떻게 사용할 수 있는가?

- 효율성 요구 사항 (efficiency requirement)

소프트웨어는 빠를 수록, 메모리를 적게 사용할 수록 좋다. 

  - 성능 요구 사항 (performance requirement)

특정한 기능이 특정한 시간 내에 실행되어야 함을 의미

예를들어 OS의 부팅 시간은 1분 이내

지도를 보여주는데 걸리는 시간은 5초 이내여야

           - 공간 요구 사항 (space requirement)

특정한 기능을 수행할 때 메모리를 최대 얼마까지 사용할 수 있을지를 정함

   예를들어 특정한 실행 파일의 크기는 1MB보다 작아야 한다.

- 신뢰성 요구 사항 (reliability requirement)

특정한 기능을 실행할 때 실패할 가능성이 몇 %보다 낮아야 함을 기술

- 이식성 요구 사항 (portability requirement)

소프트웨어는 가능한 다양한 플랫폼들 위에서 작동하는 것이 더 좋다. 

이 요구사항은 소프트웨어가 다양한 플랫폼에서 작동하기 위해 필요한 것들을 담는다.

웹 어플리케이션의 경우 모든 브라우저에서 정상적으로 작동하는 것이 이상적

브라우저의 호환성을 높이는 것을 목적으로 이식성 요구 사항을 작성하는 것을 고려

플랫폼을 개발한다면, 그것이 업그레이드 된 후에도 그 위에 작동하는 어플리케이션들은 정

상적으로 작동되어야 한다.

또는 여러 소프트웨어들이 연동하는 시스템에서 이들의 업그레이드로 인해 연동에 나쁜 영

향을 미쳐서는 안 된다. 이러한 소프트웨어를 만들기 위해서도 이식성 요구 사항의 작성

을 고민해 볼 수 있다.

2) 조직 요구 사항 (organizational requirement)

  소프트웨어 개발과 관계되는 조직들에 대한 비기능적 요구 사항

- 배포 요구 사항 (delivery requirement)

소프트웨어를 어떻게 배포할 것인가에 대한 요구 사항

크게는 온라인과 오프라인으로 구별할 수 있다.

어떤 방식으로 소프트웨어를 배포할지가 결정되어야 한다.

예를 들어, 안랩의 V3의 경우 온라인과 오프라인으로 모두 판매를 하고 있고

온라인 게임들은 모두 인터넷을 통해 온라인으로 다운로드 받을 수 있다.

- 구현 요구 사항 (implement requirement)

이것은 소프트웨어 구현과 관계된 요구 사항

어떤 방법론을 사용할 것인지, 어떤 프로그래밍 언어를 사용할 것인지 등이 이것에 해당

- 표준 요구 사항 (standard requirement)

이것은 소프트웨어를 개발할 때 어떤 표준을 따를 것인지를 정하기 위한 요구 사항입니다.

3) 외부 요구 사항 (external requirement)

소프트웨어에 영향을 미치는 외부에 대한 비기능적 요구 사항

- 상호 운용성 요구 사항 (interoperability requirement)

구현할 소프트웨어가 다른 소프트웨어와 어떻게 연동할지를 정의하기 위한 요구 사항

- 윤리적 요구 사항 (ethical requirement)

소프트웨어의 내용의 윤리적인 범위를 정하기 위한 요구 사항. 

특정 계층의 사용자가 소프트웨어를 사용하는 것이 윤리적인 문제가 있다면, 그들이 그

것을 사용하는 것을 제한해야 한다. 사례는 성인용 게임은 만 19세 이상만 사용 가능하

고, 어떤 게임들은 만 15세 이상 사용 가능

- 법적 요구 사항 (legislative requirement)

소프트웨어가 법적으로 허용되는 범위 내에서만 작동함을 보장하기 위한 요구 사항.

법적 요구 사항의 종류

설명

사생활 요구 사항

(privacy requirement)

사용자의 사생활을 보호하기 위한 요구 사항. 실례로 SNS에서 사용자는 글이나 사진을 올릴 때 공개 범위(전체, 자신의 친구들, 비공개)를 선택할 수 있다.

안전성 요구 사항

(safety requirement)

프트웨어가 저장한 자료들은 재난이나 외부의 침입으로부터 안전해야 한다. 만약 자료가 손상되었다면, 그것을 복구할 수 있어야 한다. 안전성 요구 사항은 소프트웨어의 자료들을 보호하기 위한 정책을 결정하는 역할을 한다.

자료 저장 방식은 어떻게 할 것인가? (파일, 레지스트리, 데이터베이스) DBMS는 어떤 것을 선택할 것인가? 

자료의 백업 주기는 어떻게 정할 것인가? 

자료 저장은 중앙 집중 방식과 분산 방식 중 어떤 것으로 할 것인가?

자료를 암호화할 것인가?

출처 : https://m.blog.naver.com/netrance/110138731058

  https://m.blog.naver.com/netrance/110141647706

         Software Engineering 7th Edition (Ian Sommerville, Addison Wesley) 

  제안서의 요구사항 작성 가이드 (출처 - http://www.mopas.go.kr/)

  소프트웨어 요구사항 명세서 (출처 - http://www.bizpeer.co.kr/)