본문 바로가기
카테고리 없음

비기능적 요구사항 - 요구사항 분석

by 귀주대 2024. 2. 10.

 

요구사항 분석은 소프트웨어 개발 프로세스에서 가장 중요한 단계 중 하나로, 사용자 및 시스템의 요구사항을 수집하고 분석하는 과정을 포함합니다. 요구사항은 크게 기능적 요구사항과 비기능적 요구사항으로 나뉘며, 비기능적 요구사항은 소프트웨어의 성능, 신뢰성, 보안 등과 관련된 특성을 기술합니다. 이에 대한 자세한 설명은 아래와 같습니다.

 

비기능적 요구사항(Non-functional Requirements)의 정의:

 

비기능적 요구사항은 소프트웨어의 기능 외적인 특성에 대한 요구사항으로, 시스템의 성능, 품질, 보안, 사용성, 확장성 등과 관련된 특성을 기술합니다. 이러한 요구사항은 시스템이 어떻게 동작해야 하는지보다는 시스템이 어떠한 특성을 가져야 하는지에 대한 특성을 설명합니다.

 

주요 비기능적 요구사항의 종류:

 

1. 성능 요구사항 (Performance Requirements):

응답 시간(Response Time): 사용자의 요청에 대한 응답이 얼마나 빨리 이루어져야 하는지를 명시합니다.
처리량(Throughput): 시스템이 얼마나 많은 데이터나 트랜잭션을 처리할 수 있는지를 나타냅니다.
가용성(Availability): 시스템이 얼마나 오랜 기간 동안 사용 가능한지를 정의합니다.

 

2. 신뢰성 요구사항 (Reliability Requirements):

장애 복구(Fault Tolerance): 시스템이 장애 상황에서 어떻게 복구할지에 대한 정책을 정의합니다.
내결함성(Self-Healing): 시스템이 일부 오류를 자동으로 감지하고 복구할 수 있는 능력을 나타냅니다.
신뢰성(Reliability): 시스템이 얼마나 오랜 기간 동안 오류 없이 작동할 수 있는지를 나타냅니다.

 

3. 보안 요구사항 (Security Requirements):

접근 제어(Access Control): 시스템의 자원에 접근할 수 있는 권한을 통제하는 방식을 정의합니다.
데이터 보호(Data Protection): 시스템이 다양한 종류의 데이터를 어떻게 보호할지에 대한 정책을 나타냅니다.
인증(Authentication) 및 권한 부여(Authorization): 사용자를 인증하고 특정 자원에 대한 권한을 부여하는 방식을 정의합니다.

 

4. 사용성 요구사항 (Usability Requirements):

사용 편의성(Usability): 사용자가 시스템을 얼마나 쉽게 사용할 수 있는지를 나타냅니다.
접근성(Accessibility): 장애를 가진 사용자도 시스템을 효과적으로 이용할 수 있는 방식을 정의합니다.

 

5. 유지보수성 요구사항 (Maintainability Requirements):

코드의 명확성(Clarity of Code): 시스템의 코드가 얼마나 명확하고 이해하기 쉬운지를 나타냅니다.
변경 용이성(Ease of Modification): 시스템이 얼마나 쉽게 변경 및 확장될 수 있는지를 정의합니다.

 

6. 효율성 요구사항 (Efficiency Requirements):

자원 사용 효율성(Resource Efficiency): 시스템이 얼마나 효율적으로 자원을 사용하는지를 나타냅니다.
알고리즘 효율성(Algorithmic Efficiency): 시스템이 얼마나 효율적인 알고리즘을 사용하는지를 정의합니다.

 

 

 

비기능적 요구사항의 중요성:


비기능적 요구사항은 사용자 경험과 시스템의 성능에 직접적인 영향을 미치기 때문에 매우 중요합니다. 이러한 요구사항을 명확히 정의하고 충족시키지 않으면 시스템의 안정성, 신뢰성, 보안 등이 저하될 수 있습니다. 따라서 프로젝트 초기에 비기능적 요구사항을 명확하게 수립하고 이를 기반으로 설계 및 개발을 진행하는 것이 중요합니다.

댓글