품질속성 시나리오(QAS, Quality Attribute Scenarios)

품질속성 시나리오(Quality Attribute Scenario)는 소프트웨어의 비기능적 요구사항(성능, 보안, 가용성 등)을 막연한 설명이 아니라, 구체적이고 측정 가능한 형태로 표현한 문장입니다.

예를 들어 "시스템은 빨라야 한다"는 모호하지만, "정상 운영 상태에서 사용자가 검색 버튼을 누르면 2초 이내에 결과가 화면에 출력되어야 한다"는 구체적입니다. 이렇게 작성하는 것이 바로 품질속성 시나리오입니다.

1. 시나리오의 6가지 구성 요소

SEI(소프트웨어 공학 연구소)에서는 시나리오를 작성할 때 다음 6가지 요소를 포함할 것을 권장합니다.

구성 요소 설명 예시
자극원 (Source) 자극을 발생시키는 주체 외부 사용자, 관리자, 해커, 다른 시스템
자극 (Stimulus) 시스템에 도착하는 이벤트 데이터 입력, 시스템 장애, 비정상적 접근
대상 (Artifact) 자극을 받는 시스템의 구성 요소 전체 시스템, 특정 모듈, 데이터베이스
환경 (Environment) 자극이 발생하는 상황 정상 운영 중, 과부하 상태, 복구 모드
응답 (Response) 자극에 대한 시스템의 반응 로그 기록, 경고 메시지 전송, 데이터 백업
응답 측정 (Measure) 응답을 수치로 측정한 기준 2초 이내 응답, 99.9% 가동률, 0% 데이터 손실

2. 품질속성별 시나리오 예시

  • 가용성(Availability) : "정상 운영 중(환경) 데이터베이스 서버(대상)에 장애(자극)가 발생하면, 시스템(자극원)은 1분 이내에 백업 서버로 전환(응답)하여 무중단 서비스를 제공(응답 측정)해야 한다."
  • 성능(Performance) : "피크 타임 시(환경) 사용자(자극원)가 결제 요청(자극)을 하면, 시스템(대상)은 해당 요청을 처리(응답)하여 3초 이내에 완료 메시지(응답 측정)를 보여줘야 한다."
  • 보안성(Security) : "네트워크 연결 상태에서(환경) 권한이 없는 사용자(자극원)가 데이터 수정을 시도(자극)하면, 시스템(대상)은 이를 차단하고 감사 로그를 생성(응답)하며, 침입 시도 후 1초 이내에 관리자에게 통보(응답 측정)해야 한다."

3. 왜 사용하나요?

  • 의사소통의 명확화 : 개발자, 기획자, 고객이 '품질'에 대해 서로 같은 기준을 갖게 됩니다.
  • 아키텍처 검증 : 설계된 아키텍처가 실제로 요구되는 품질을 만족할 수 있는지 테스트하는 기준이 됩니다.
  • 우선순위 결정 : 모든 품질을 완벽히 맞출 수는 없으므로, 시나리오별로 중요도를 매겨 핵심 품질에 집중할 수 있습니다.

4. 시험 대비 핵심 포인트

기출문제를 분석해 보면, 주로 '응답'과 '응답 측정'을 구분할 수 있는지, 그리고 6가지 구성 요소의 정의를 정확히 알고 있는지를 묻습니다.

  • 자극원 vs 자극 : 누가(Who/What) 했느냐와 무엇(Event)을 했느냐의 구분
  • 응답 vs 응답 측정 : 무엇을 했느냐(Action)와 얼마나 잘했느냐(Metric)의 구분
  • 환경 : '정상 운영', '과부하', '보수 중' 등 시스템의 상황이 제시되었는지 확인

이러한 시나리오는 실제 감리 현장이나 설계 단계에서 ATAM(Architecture Trade-off Analysis Method) 같은 아키텍처 평가 방법론의 핵심 도구로 사용됩니다.

5. 기출문제

[정보시스템감리사 기출 (유사 유형)]
소프트웨어 아키텍처의 품질속성 시나리오 구성 요소에 대한 설명으로 가장 옳지 않은 것은?

① 자극원(Source of Stimulus): 시스템에 자극을 생성하는 주체로 사람, 컴퓨터 시스템 등이 해당한다. 
② 환경(Environment): 자극이 발생할 때의 조건으로 시스템의 부하 상태, 가동 시간 등이 포함된다. 
③ 응답(Response): 자극이 시스템에 도착했을 때 시스템이 나타내는 행위이다.
④ 응답 측정(Response Measure): 응답이 발생했을 때 이를 테스트하기 위한 구체적인 시험 절차를 의미한다.

 

정답: ④

응답 측정은 시험 절차(Test Procedure)를 의미하는 것이 아니라, 발생한 응답이 요구사항을 만족하는지 판단하기 위한 정량적인 척도(시간, 확률, 횟수 등)를 의미합니다. 예를 들어 "3초 이내 응답", "99.9% 가동률" 등이 응답 측정에 해당합니다.

 

[7급전산직]

다음 중 가용성(Availability) 품질속성을 설명하기 위한 시나리오의 구성 요소와 그 예시의 연결이 적절하지 않은 것은?

상황: 시스템 운영 중 서버 장애 발생 시 복구 요구사항

① 자극원 - 내부 프로세스 또는 외부 사용자
② 자극 - 하드웨어 결함으로 인한 서비스 중단
③ 대상 - 프로세서, 통신 채널, 저장 장치 등 시스템 요소
④ 응답 측정 - 장애 발생 후 관리자에게 이메일로 즉시 통보함

 

정답: ④

"관리자에게 이메일로 통보함"은 시스템이 수행하는 행위이므로 응답(Response)에 해당합니다. 이것이 응답 측정이 되려면 "장애 발생 후 5분 이내에 통보함"과 같이 측정 가능한 수치가 포함되어야 합니다.