Douglas' Space
Non-functional requirements 본문
Non-functional requirements
똘키아빠 2023. 1. 29. 16:041. 들어가면서
요구사항은 크게 기능적 요구사항(functional requirements)과 비기능 요구사항(Non-functional requirements)으로 크게 나눌 수 있다고 하였습니다. 지금까지는 주로 기능적 요구사항과 관련된 요구사항을 모델링하는 방법에 대해 설명을 드렸고, 이 글은 비기능적 요구사항에 대해 설명하고자 합니다.
기능적 요구사항과 비기능적 요구사항을 구분하기 어려운 경우가 많으나, 그 이름을 조금 생각해 보면 쉽게 구분이 될 수 있습니다. 모델링 관점에서 기능적 요구사항은 어떤 입력을 받아 처리를 하고 출력하는 입출력 관계로 모델링이 가능한 것이 기능적 요구사항입니다.
입출력관계와 같은 모델링이 어렵다면 보통은 비기능적 요구사항입니다. 비기능적 요구사항을 조금 더 이해하기 쉽게 다시 품질요구사항과 제약사항으로 나눌 수 있습니다. 다시 말해 비기능적 요구사항은 설계시 고려하는 요구사항으로서 설계 고려사항 또는 제약사항이라고 할 수 있습니다. 예를 들어 "XX보고서를 3초 내에 출력할 수 있어야 한다"라는 요구사항은 "XX보고서 출력"이라는 기능적 요구사항과 "3초내"라는 성능효율성이라는 품질 요구사항으로 나누어 볼 수 있습니다.
2. Quality Attribute Scenario
기능적 요구사항은 유스케이스와 유스케이스 시나리오로 모델링하여 요구사항을 명확하게 정의할 수 있습니다. 그러나 품질특성으로 표현되는 비기능적 요구사항을 명확하게 정의하는 것이 쉽지는 않습니다. 명확하게 정의하는 것이 쉽지 않다는 의미는 품질요구사항은 테스트가 용이하지 않다는 의미와 같다고 할 수 있습니다. 품질요구사항을 명확하게 하기위해 사용하는 것이 Quality Attribute Scenario(QAS)입니다.
Quality Attribute Scenario는 카네기멜론 대학의 SEI(Software Engineering Institute)에서 제시한 방법으로 품질요구사항을 정형화된 형태로 정의하여 품질요구사항의 테스트용이성을 높일 수 있습니다.
QAS는 6가지의 요소로(자극을 생성하는 객체, 결과물에 영향을 주는 조건으로서의 자극, 자극을 받는 시스템 또는 다른 구성요소, 자극이 발생하는 조건을 나타내는 환경, 자극을 받아 이후에 수행되는 어떤 반응, 반응을 평가할 측정방법) 품질요구사항을 정형화한 모델로 기술합니다.
3. QAS의 모델링
QAS의 모델은 6가지의 요소를 동일하게 형상화하여 모델링할 수 있습니다. 6가지의 요소중 자극과 반응을 화살표형태로 표현한 것처럼 association관계로 표현을 하고 나머지 4개는 객체로 표현할 수 있습니다. 예를들어 사용용이성이라는 모호한 요구사항을 아래와 같이 모델링할 수 있다.
사용편리성이 시스템의 GUI(Graphical User Interface)에서 결정된다고 볼 수 있기 때문에, 이의 구현을 위한 GUI prototype을 통해 사용편리성이라는 품질요구사항을 측정할 수 있습니다. 따라서 GUI설계서의 결과를 사용자 그룹과 기술검토회의에서 검토를 하여 합의를 거친다면 사용편리성을 만족한다고 정의할 수 있습니다.
또 하나의 예로서 아래의 QAS 모델은 시스템의 신뢰성이라는 품질요구사항을 정의하고 있습니다. 아래는 시스템의 결함이 발생하여 시스템이 작동하지 않은 경우 전체 가동시간대비 작동불능 시간을 측정하여 가용도를 검증하는 것을 모델링한 예를 표현하고 있습니다.
'Development Diary > System Requirements Analysis Model' 카테고리의 다른 글
Ai 기반 시스템의 분석 (0) | 2023.05.29 |
---|---|
System/Software Quality Model (2) | 2023.04.15 |
Interface Model (0) | 2022.07.02 |
Use-Case Pattern (0) | 2022.07.02 |
Functional Model (0) | 2022.06.04 |