[02] 아키텍처 분석과 설계

Download Report

Transcript [02] 아키텍처 분석과 설계

0201. 아키텍처 분석과 설계 - 품질속성
(SI 트랙)
2004. 02. 15
0201.아키텍처 분석과 설계 - 품질속성
목차










품질
품질속성
품질요구사항
품질모델
품질속성 시나리오
아키텍처가 다뤄야 하는 것들
아키텍처와 품질
아키텍처와 기능 요구사항
아키텍처와 비기능 요구사항
요약
소프트웨어 아키텍처
1/39
0201.아키텍처 분석과 설계 - 품질속성
품질

사람들마다 저마다 “품질(Quality)”을 다르게 생각한다.
소프트웨어 아키텍처
2/39
0201.아키텍처 분석과 설계 - 품질속성
품질
The totality of features and
characteristics of a product or a service
that bear on its ability to satisfy stated
or implied needs. - ISO/IEC 9000
소프트웨어 아키텍처
3/39
0201.아키텍처 분석과 설계 - 품질속성
품질속성
품질속성이란 양이나 질로 관찰하여 수치로
측정할 수 있는 시스템의 특성이다.


품질속성은 이해관계자들의 관심사와 요구사항을 그대로
반영한다.
아키텍처는 이해관계자들이 원하는 수준으로 품질속성을
달성해야 한다.
소프트웨어 아키텍처
4/39
0201.아키텍처 분석과 설계 - 품질속성
품질요구사항
품질요구사항이란 시스템이 제공해야 할 품
질속성의 수준이다. 품질속성은 관찰할 수
있고 측정할 수 있어야 하기 때문에 품질요
구사항도 가능하면 정확한 수치로 제시되어
야 한다.
소프트웨어 아키텍처
5/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델
ta b
Us
ab
M
y
t
a in
n
ilit
io
sit
an
ilit
Tr
y
ISO/IEC
9126
ab
a in
on
Po
r
i ty
ct
du
vis
i
b il
Pro
McCall
lia
ilit
Re
y
Functionality
Re

du
ct

단순히 성능이 좋다거나 오류가 없다거나 쓰기 쉽다는 것
으로 소프트웨어 시스템의 품질을 규정할 수 없다.
품질모델(Quality Model)은 품질속성을 분류하고 정의
하여 누구나 인정할 수 있는 품질 측정 기준을 정의한 것
이다.
품질모델을 도입하면 소프트웨어 시스템의 품질을 정식
화(formalization)할 수 있다.
Pro

Efficiency
Product Operation
소프트웨어 아키텍처
6/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

소프트웨어 품질모델 – 제품 품질과 공정 품질
제품
(Product)
ISO 9126
McCall
Boëhm
HP’s FURPS
IBM’s CUPRIMDSO
...
공정
(Process)
ISO 9001
CMMI
SPICE
소프트웨어 아키텍처
품질
품질
7/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

아키텍처와 품질모델
제품
(Product)
ISO 9126
McCall
Boëhm
HP’s FURPS
IBM’s CUPRIMDSO
...
소프트웨어 아키텍처
8/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

제품 품질모델의 역사
HP’s FURPS
1987
McCall
1977
Boëhm
1978
ISO/IEC 9126
1991
IBM’s CUPRIMDSO
?
소프트웨어 아키텍처
9/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

품질모델 구조 (IEEE 1061)

Quality


Quality Factor




사용자나 관리자 중심
시스템이 외부에 보이는 품질
Characteristics, Factors라고도 함



1
1..*
Quality
Factor
*
Quality Subfactor


목표 시스템이 충족해야 할 품질
Quality
구현자 중심
시스템 내부에서 다루는 품질
Quality Factor를 측정할 수 있는 소프트웨어
속성으로 바꾼 것
Sub-characteristics, Criteria라고도 함
0..*
Quality
Subfactor
1
Metric


평가자 중심
품질을 측정하는 방법과 척도
소프트웨어 아키텍처
*
Metric
10/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

품질모델 구조 적용 예(McCall 모델)
Quality
1
1..*
Quality
Factor
Reliability
Maintainability
*
0..*
Quality
Subfactor
Accurateness
Simplicity
1
*
Metric
ACC1
ACC2
소프트웨어 아키텍처
SIM1
11/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델
Tr
du
ct
Re
ct
du
vis
i
Pro
on
McCall 모델
McCall
io
sit
an
Pro

n
Product Operation
소프트웨어 아키텍처
12/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

Boëhm
소프트웨어 아키텍처
13/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

HP’s FURPS
Functionality
Supportability
Usability
FURPS
Performance
Reliability
소프트웨어 아키텍처
14/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

IBM’s CUPRIMDSO
소프트웨어 아키텍처
15/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델
ISO/IEC 9126
다
른
바 환경
꿀
으
로
수
쉽
있
게
는
Po
가
r ta
?
b il
i ty
필요한 기능을
제공하는가?
만
b il
i ty
b il
a
a in
int
a
M
고
운
쉬
Efficiency
가
?
기
기
쓰
Us
a
y
치
i ty
ISO/IEC
9126
b il
it
쉬
?
가
한
lia
는
을
믿
Functionality
Re
?
가
운

효율성은 좋은가?
소프트웨어 아키텍처
16/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

ISO/IEC 9126
Functionality
Suitability
Efficiency
Accurateness
Resource
Behavior
Interoperability
Compliance
Maintainability
Stability
Maturity
Testability
Fault Tolerance
Recoverability
Usability
Analyzability
Changeability
Security
Reliability
Time Behavior
Portability
Adaptability
Installability
Understandability
Conformance
Learnability
Replaceability
Operability
Characteristics
소프트웨어 아키텍처
Subcharacteristics
17/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

ISO/IEC 9126
기능성
functionality
신뢰성
Reliability
소프트웨어가
특정 조건에서
요구를 충족시
키는 기능을
제공할 수 있
는 능력
소프트웨어가
특정 상황에서
특정 기간 동
안 일정 수준
이상으로 동작
할 수 있는 능
력
적합성
Suitability
특정 작업을 처리하는 기능의 적합성과 존재
에 영향을 미치는 속성
정밀성
Accurateness
합의한 결과나 효과 또는 명문화한 권리 조항
에 영향을 미치는 속성
상호운영성
Interoperability
정해진 소프트웨어와 상호 작용하는 능력에
영향을 미치는 속성
준거성
Compliance
표준, 관습, 법률, 규격, 협정 같은 정해진 규
칙을 준수하는 속성
보안성
Security
소프트웨어의 프로그램이나 데이터에 사고든
고이든 적법하지 않게 접근하는 것을 막을 수
있는 능력에 영향을 주는 속성
성숙도
Maturity
해결하지 못하고 남아있는 장애 때문에 생기
는 장애 빈도에 영향을 주는 속성
오류 허용성
Fault tolerance
소프트웨어에 오류가 생기거나 정해진 상호
작용 방식에 문제가 생겼을 때도 최소 정해
놓은 수준으로 동작하는 능력에 영향을 미치
는 속성
회복성
Recoverability
장애로 직접 영향을 받는 데이터를 복구하고
일정 수준 이상으로 다시 동작하는 능력과 이
때 필요한 시간과 노력에 영향을 미치는 속성
소프트웨어 아키텍처
18/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

ISO/IEC 9126
사용성
Usability
효율성
Efficiency
특정 조건에
서 소프트웨
어를 쓰고 배
우고 이해하
기 쉽게 만드
는 능력
특정 조건에
서 적절한 자
원을 소모하
면서 적절한
성능을 제공
할 수 있는
능력
이해성
Understandability
소프트웨어의 개념과 활용 방법을 이해하는
데 필요한 사용자의 노력에 영향을 미치는 속
성
습득성
Learnability
소프트웨어의 활용 방법을 배우고 익히는 데
필요한 사용자의 노력에 영향을 미치는 속성
운영성
Operability
소프트웨어를 운영하고 관리하는 데 필요한
사용자 노력에 영향을 미치는 속성
실행 효율성
Time behavior
소프트웨어가 기능을 수행할 때 적절한 응답
시간, 처리효율, 처리시간을 제공할 수 있는
능력에 영향을 미치는 속성
자원 효율성
Resource
Behavior
소프트웨어가 기능을 수행할 때 적절 양의 자
원을 소모하는 능력에 영향을 미치는 속성
소프트웨어 아키텍처
19/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

ISO/IEC 9126
유지보수성
Maintainability
이식성
Portability
소프트웨어를
얼마나 쉽게 수
정할 수 있는지
측정한 능력.
수정에는 정정,
개선, 환경변화
수용, 요구사항
변화 수용, 기
능 추가 같은
것들이 있다.
소프트웨어가
다른 환경으로
이식될 수 있는
능력.
분석성
Analyzability
장애 원인과 겸함을 분석하고 수정해야 할
부분을 찾아내는 데 필요한 노력에 영향을
미치는 속성
변경성
Changeability
소프트웨어를 수정할 때, 장애를 제거할
때, 소프트웨어 동작 환경을 변경할 때 드
는 노력에 영향을 미치는 속성
안정성
Stability
수정으로 예상하지 못한 문제가 발생할 위
험에 영향을 미치는 속성
시험성
Testability
수정된 소프트웨어를 검증하는 데 필요한
노력에 영향을 미치는 속성
적응성
Adaptability
원래 필요한 작업이나 방법만 써서 소프트
웨어가 동작하는 환경을 바꿀 수 있는 가
능성에 영향을 미치는 속성
설치성
Installability
특정 환경에 소프트웨어를 설치할 때 필요
한 노력에 영향을 미치는 속성
일치성
Conformance
소프트웨어가 이식성과 관련된 표준이나
관례를 잘 따르는지 나타내는 속성
대체성
Replaceability
대상 소프트웨어를 특정한 다른 소프트웨
어로 바꿔서 쓸 수 있는지 나타내는 속성
소프트웨어 아키텍처
20/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

SAiP
비즈니스 품질속성
아키텍처 품질속성
시스템 품질속성
소프트웨어 아키텍처
21/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

SAiP

시스템 품질속성






가용성(Availability)
보안(Security)
성능(Performance)
변경가능성(Modifiability)
사용성(Usability)
시험가능성(Testability)
소프트웨어 아키텍처
22/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

SAiP

비즈니스 품질속성






적시성 (Time to Market)
비용과 혜택 (Cost and Benefit)
예상 시스템 수명 (Projected Lifetime of the System)
목표 시장 (Targeted Market)
공개 일정 (Rollout Schedule)
기존 시스템과 통합 (Integration with Legacy Systems)
소프트웨어 아키텍처
23/39
0201.아키텍처 분석과 설계 - 품질속성
품질모델

SAiP

아키텍처 품질속성



개념 무결성(Conceptual Integrity)
정확성과 완결성(Correctness and Completeness)
구축가능성(Buildability)
소프트웨어 아키텍처
24/39
0201.아키텍처 분석과 설계 - 품질속성
품질속성 시나리오


시스템 결함의 15% 이상은
요구사항을 잘 못 파악해서
생긴다.
어떤 요구사항이 어떤 품질
속성과 연관이 있을까?
소프트웨어 아키텍처
25/39
0201.아키텍처 분석과 설계 - 품질속성
품질속성 시나리오

품질속성 정의의 어려움과 대응 방법
개념을 명확하게 정의하지
않아서 용어가 모호하다.
?
품질속성 시나리오로
극복한다.
어떤 문제는 어떤
품질속성에 속한 것일까?
각 품질속성은 저마다
다른 용어로 표현된다.
소프트웨어 아키텍처
각 품질속성마다 부연
설명을 한다.
26/39
0201.아키텍처 분석과 설계 - 품질속성
품질속성 시나리오

품질속성 시나리오 구조






자극원(Source of Stimulus)
자극(Stimulus)
환경(Environment)
자극 대상(Artifact)
반응(Response)
반응 측정(Response Measure)
소프트웨어 아키텍처
27/39
0201.아키텍처 분석과 설계 - 품질속성
품질속성 시나리오

품질속성 시나리오의 종류

일반(General) 품질속성 시나리오


구체(Concrete) 품질속성 시나리오


모든 시스템에 적용할 수 있는 시나리오
특정 상황에서 특정 시스템에 적용할 수 있는 시나리오
품질속성 명세 테이블을 만들어 일반 품질속성 시나리오
를 만들고 일반 품질속성 시나리오로부터 구체 품질속성
시나리오를 만든다.
품질속성 명세표
일반 품질속성
시나리오
소프트웨어 아키텍처
구체 품질속성
시나리오
28/39
0201.아키텍처 분석과 설계 - 품질속성
품질속성 시나리오
품질 요구사항
[가용성01] 시스템은
업무 시간 동안 99.9%의
품질속성 목표
가용성을품질속성
유지한다.목표
품질속성 시나리오

시스템이 달성해야 할
품질속성과 그 목표를
명시한다.
[성능01] 시스템은 모든
사용자 요청을 5초안에
품질속성 목표
처리한다.품질속성 목표
품질속성 시나리오를 만들면?


시스템이 달성해야 할 품질속성을 식별할 수 있다.
시스템이 달성해야 할 품질속성의 목표를 찾을 수 있다.
 품질 요구사항을 찾아낼 수 있다.
소프트웨어 아키텍처
29/39
0201.아키텍처 분석과 설계 - 품질속성
품질속성 시나리오

일반 품질속성 시나리오와 구체 품질속성 시나리오 예제
일반 품질속성 시나리오
구체 품질속성 시나리오
소프트웨어 아키텍처
30/39
0201.아키텍처 분석과 설계 - 품질속성
아키텍처가 다뤄야 하는 것들
Utilitas
(Fuction, 쓸모)
Firmitas
(Structure, 짜임새)

Venustas
(Aesthetics, 아름다움)
아키텍처는 시스템에 필요한 쓸모, 아름다움, 짜임새를
모두 다뤄야 한다.
소프트웨어 아키텍처
31/39
0201.아키텍처 분석과 설계 - 품질속성
아키텍처가 다뤄야 하는 것들
쓸모
아름다움
짜임새

쓸모는 짜임새, 아름다움을 주도한다.


쓸모와 짜임새와 아름다움은 조화를 이뤄야 한다. 하지만, 아키
텍처가 고객이 원하는 쓸모를 충족시키지 못한다면 아무리 짜임
새 있고 아름다워도 아무 소용없다.
아키텍처는 고객이 원하는 쓸모를 충족시킬 수 있도록 아름다움
과 짜임새를 결정하는 것이다.
소프트웨어 아키텍처
32/39
0201.아키텍처 분석과 설계 - 품질속성
아키텍처가 다뤄야 하는 것들
비기능
쓸모
기능


고객이 원하는 쓸모가 바로 고객의 요구사항이다.
고객의 요구사항은 기능 요구사항과 비기능 요구사항으
로 나눌 수 있다
소프트웨어 아키텍처
33/39
0201.아키텍처 분석과 설계 - 품질속성
아키텍처가 다뤄야 하는 것들

기능 요구사항




계좌를 개설한다.
계좌를 통합한다.
…
비기능 요구사항



사용자 요청을 처리하는 데 5초 이상 걸려선 안 된다.
모든 거래는 암호화해야 한다.
…
소프트웨어 아키텍처
34/39
0201.아키텍처 분석과 설계 - 품질속성
아키텍처와 기능 요구사항



시스템이 기능 요구사항을 충족시킨 정도를 기능성
(functionality)이라고 한다.
기능 요구사항은 시스템이 존재해야 하는 근본 원인이기
때문에 기능성이 100%가 되도록 아키텍처를 결정해야
한다.
기능성과 비기능 요구사항과 관련된 다른 품질속성들은
거의 연관성이 없다.
소프트웨어 아키텍처
35/39
0201.아키텍처 분석과 설계 - 품질속성
아키텍처와 비기능 요구사항

비기능 요구사항과 관련된 품질속성들은 서로 상충
(trade-off)하는 경우가 많기 때문에 모든 품질속성을
100% 만족시킬 수는 없다. 전체 품질은 각 품질속성의
목표를 적절한 수준에서 조율한 수준에서 결정된다.
소프트웨어 아키텍처
36/39
0201.아키텍처 분석과 설계 - 품질속성
아키텍처와 품질



아키텍처는 시스템이 달성해야 하는 품질들을 실현할 때
필요한 큰 그림을 결정하기 때문에 제일 중요하다. 따라
서, 품질을 달성할 수 있도록 아키텍처를 분석하고 설계
해야 한다.
아키텍처만으로 품질들을 달성할 수 없다. 아키텍처가 구
현, 설계, 배치 같은 모든 개발 공정에 제대로 반영될 때
만 원하는 품질을 얻을 수 있다. 예를 들어, 사용성은 화
면 설계와 사용자 인터페이스 프레임워크 구현에 크게 영
향을 받는다. 하지만, 아키텍처는 시스템 전반에 걸친 품
질속성을 담당한다. 시스템 전반의 사용성은 아키텍처가
결정해야 한다.
고객이 원하는 품질(Quality)을 달성하려면 시스템은 기
능 요구사항과 비기능 요구사항을 모두 충족시켜야 한다.
소프트웨어 아키텍처
37/39
0201.아키텍처 분석과 설계 - 품질속성
아키텍처와 품질
자원 배분
정책 수립
자원
보강
아키텍처
스타일
능동
다중화
선택한 성능
달성 방안
품질속성
시나리오
핑&
에코
선택한 가용성
달성 방안
품질
요구사항
아키텍처 판단
이벤트 전달
속도 조절
자원 배분
정책 수립
자원
보강
자원 수요
처리 효율성
조절 동시성
증대
확보
성능 달성 방안 풀
투표
그림자
작업
핑&
에코
하트비트
능동
수동 다중화체크포인트 &
다중화
롤백
아키텍처
가용성 달성 방안 풀
소프트웨어 아키텍처
38/39
0201.아키텍처 분석과 설계 - 품질속성
요약






시스템 품질은 제품 품질과 공정 품질로 나눠진다.
고객이 원하는 품질(Quality)을 달성하려면 시스템은 기
능 요구사항과 비기능 요구사항을 모두 충족시켜야 한다.
사람들마다 품질을 다르게 생각하고 있기 때문에 ISO
9126 같은 품질모델로 품질을 정의해야 한다.
품질속성 시나리오를 만들어서 시스템이 달성해야 할 품
질속성 목표를 찾아 품질 요구사항을 정의한다.
아키텍처는 기능 요구사항과 비기능 요구사항을 충족시
킬 수 있는 시스템의 기초를 제공한다.
다음 순서로 아키텍처를 만든다. 품질 시나리오 작성 
품질 요구사항 도출  품질속성 달성 방안 선택  아키
텍처 스타일 선택  아키텍처 구축  아키텍처 기술서
작성
소프트웨어 아키텍처
39/39