품질 속성 시나리오 (Quality Attribute Scenarios)
Architecture & Design Pattern 전체 링크
참고
- 아키텍처 전술 (Architectural Tactics)
품질 속성 (Quality Attritbues)
- 소프트웨어 시스템이 충족해야 하는 비기능적 특성을 의미
- NFR의 구체적인 형태로 시스템의 품질을 측정하고 평가한다.
- Availability, Interoperability, Modifiability, Performance, Security, Testability, Usability 등
품질 속성 시나리오 (QAS, Quality Attribute Scenarios)
- 시스템의 품질 속성을 구체적으로 정의하고 평가하기 위한 방법
1) 자극원 (Source) : 자극을 일으키는 주체
2) 자극 (Stimulus) : 시스템에 영향을 미치는 이벤트나 상황
3) 환경 (Environment) : 자극이 발생하는 상황이나 조건
4) 대상 (Artifact) : 자극에 의해 영향을 받는 시스템의 부분
5) 반응 (Response) : 시스템이 자극에 어떻게 반응해야 하는지에 대한 내용
6) 측정 (Response Measure) : 반응의 성공 여부를 평가하기 위한 기준
Availability (가용성)
- 시스템이 정상적으로 작동하고 사용 가능한 상태를 유지하는 정도
- 시스템이 얼마나 오랫동안, 그리고 얼마나 자주 다운타임 없이 운영될 수 있는지를 나타낸다.
ex) 온라인 뱅킹 시스템이 99.99%의 시간 동안 이용 가능해야 한다.
Stimulus : 주요 서버에 하드웨어 장애 발생
Source : 서버 하드웨어
Environment : 운영 시간 중
Artifact : 데이터베이스 서버
Response : 시스템은 자동으로 백업 서버로 전환하여 정상적으로 운영을 계속해야 함
Response Measure : 백업 서버로 전환하는 데 걸리는 시간은 1분 이내여야 함
Interoperability (상호운용성)
- 시스템이 다른 시스템과 원활하게 상호작용하고 데이터나 서비스를 교환할 수 있는 능력
- 다양한 시스템, 플랫폼, 애플리케이션이 함께 작동할 수 있도록 하는 속성
ex) 건강 관리 시스템은 다른 병원 정보 시스템과 데이터를 교환할 수 있어야 한다.
Stimulus : 외부 시스템이 API를 통해 데이터 요청
Source : 외부 시스템
Environment : 실시간 운영 중
Artifact : API 인터페이스
Response : 시스템은 요청을 처리하고 데이터를 JSON 형식으로 반환해야 함
Response Measure : 99%의 요청이 2초 이내에 성공적으로 처리되어야 함
Modifiability (변경 용이성)
- 시스템을 수정하고 개선할 수 있는 용이성
- 시스템의 기능을 추가하거나 변경할 때의 용이성과 효율성을 나타낸다.
ex) 소프트웨어 업데이트를 통해 새로운 기능을 쉽게 추가할 수 있어야 한다.
Stimulus : 새로운 기능 추가 요청
Source : 제품 관리자
Environment : 정규 개발 기간 동안
Artifact : 코드베이스
Response : 개발자는 새로운 기능을 3일 이내에 추가하고 테스트해야 함
Response Measure : 새로운 기능이 기존 기능에 영향을 미치지 않고, 변경된 부분의 테스트 커버리지가 100%여야 함
Performance (성능)
- 시스템의 응답 시간, 처리량, 자원 사용 효율성
- 시스템이 주어진 시간 내에 얼마나 효율적으로 작업을 수행할 수 있는지를 측정
ex) 웹 애플리케이션이 2초 이내에 사용자 요청에 응답해야 한다.
Stimulus : 1000명의 사용자가 동시에 시스템에 로그인 시도
Source : 최종 사용자
Environment : 피크 시간 동안
Artifact : 로그인 서비스
Response : 시스템은 모든 로그인 요청을 3초 이내에 처리해야 함
Response Measure : 로그인 요청의 95%가 3초 이내에 처리되어야 함
Security (보안)
- 시스템이 불법적인 접근이나 공격으로부터 보호되는 정도
- 데이터 무결성, 기밀성, 가용성을 유지하고, 인증, 권한 부여, 데이터 암호화 등을 포함
ex) 사용자가 로그인할 때 이중 인증을 사용해야 한다.
Stimulus : 비정상적인 로그인 시도 감지
Source : 외부 공격자
Environment : 실시간 운영 중
Artifact : 인증 시스템
Response : 시스템은 해당 IP를 즉시 차단하고 관리자에게 경고를 전송해야 함
Response Measure : 비정상적인 시도가 감지된 후 5초 이내에 차단 조치가 이루어져야 함
Testability (테스트 용이성)
- 시스템이 테스트를 통해 결함을 쉽게 발견하고 수정할 수 있는 능력
- 시스템의 특정 부분을 테스트하기 위한 준비와 효과적인 테스트 방법의 적용 가능성을 나타낸다.
ex) 모듈 단위 테스트가 용이하도록 각 기능이 독립적으로 구현되어야 한다.
Stimulus : 새로운 코드 변경사항 커밋
Source : 개발자
Environment : 개발 및 테스트 환경
Artifact : 코드베이스
Response : 시스템은 자동화된 테스트 스위트를 실행하여 변경사항을 검증해야 함
Response Measure : 모든 자동화된 테스트가 10분 이내에 완료되어야 하며, 테스트 커버리지는 90% 이상이어야 함
Usability (사용성)
- 시스템이 사용자가 쉽게 배우고, 이해하고, 사용할 수 있는 정도
- 사용성은 사용자 인터페이스의 직관성과 편의성을 포함하며, 사용자 만족도와 생산성에 직접적인 영향을 미친다.
ex) 모바일 앱의 인터페이스가 직관적이고 사용자가 쉽게 탐색할 수 있어야 한다.
Stimulus : 새로운 사용자가 시스템을 처음 사용
Source : 신규 사용자
Environment : 일반 작업 환경에서
Artifact : 사용자 인터페이스
Response : 사용자는 5분 이내에 주요 기능을 이해하고 사용할 수 있어야 함.
Response Measure : 사용자 피드백을 통해 90% 이상의 사용자가 5분 이내에 주요 기능을 이해하고 사용한다고 응답