2004. 02. 15

40
2004. 02. 15 0201. 아아아아 아아아 아아 - 아아아아 (SI 아아 )

description

0201. 아키텍처 분석과 설계 - 품질속성 (SI 트랙 ). 2004. 02. 15. 목차. 품질 품질속성 품질요구사항 품질모델 품질속성 시나리오 아키텍처가 다뤄야 하는 것들 아키텍처와 품질 아키텍처와 기능 요구사항 아키텍처와 비기능 요구사항 요약. 품질. 사람들마다 저마다 “품질 (Quality)” 을 다르게 생각한다. 품질. - PowerPoint PPT Presentation

Transcript of 2004. 02. 15

Page 1: 2004. 02. 15

2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

(SI 트랙 )

                             

                             

Page 2: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 2/39

목차 품질 품질속성 품질요구사항 품질모델 품질속성 시나리오 아키텍처가 다뤄야 하는 것들 아키텍처와 품질 아키텍처와 기능 요구사항 아키텍처와 비기능 요구사항 요약

Page 3: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 3/39

품질

사람들마다 저마다 “품질 (Quality)” 을 다르게 생각한다 .

Page 4: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 4/39

품질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

Page 5: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 5/39

품질속성품질속성이란 양이나 질로 관찰하여 수치로 측정할 수 있는 시스템의 특성이다 . 품질속성은 이해관계자들의 관심사와 요구사항을 그대로

반영한다 . 아키텍처는 이해관계자들이 원하는 수준으로 품질속성을

달성해야 한다 .

Page 6: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 6/39

품질요구사항품질요구사항이란 시스템이 제공해야 할 품질속성의 수준이다 . 품질속성은 관찰할 수 있고 측정할 수 있어야 하기 때문에 품질요구사항도 가능하면 정확한 수치로 제시되어야 한다 .

Page 7: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 7/39

품질모델 단순히 성능이 좋다거나 오류가 없다거나 쓰기 쉽다는 것으로

소프트웨어 시스템의 품질을 규정할 수 없다 . 품 질 모 델 (Quality Model) 은 품 질 속 성 을 분 류 하 고

정의하여 누구나 인정할 수 있는 품질 측정 기준을 정의한 것이다 .

품질모델을 도입하면 소프트웨어 시스템의 품질을 정식화(formalization) 할 수 있다 .

ISO/ IEC 9126

Functionality

ReliabilityUsability

Efficiency

Mai

ntai

nabi

lity

Port

abili

ty

Product Transition

Prod

uct Re

visi

on

Product Operation

McCall

Page 8: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 8/39

품질모델 소프트웨어 품질모델 – 제품 품질과 공정 품질

제품(Product)

공정(Process)

ISO 9126McCallBoëhm

HP’s FURPSIBM’s CUPRIMDSO

...

ISO 9001CMMISPICE

품질

품질

Page 9: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 9/39

품질모델 아키텍처와 품질모델

제품(Product)

ISO 9126McCallBoëhm

HP’s FURPSIBM’s CUPRIMDSO

...

Page 10: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 10/39

품질모델 제품 품질모델의 역사

McCall1977

Boëhm1978

ISO/ IEC 91261991

HP’s FURPS1987

IBM’s CUPRIMDSO?

Page 11: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 11/39

품질모델 품질모델 구조 (IEEE 1061)

Quality 목표 시스템이 충족해야 할 품질

Quality Factor 사용자나 관리자 중심 시스템이 외부에 보이는 품질 Characteristics, Factors 라고도 함

Quality Subfactor 구현자 중심 시스템 내부에서 다루는 품질 Quality Factor 를 측정할 수 있는 소프트웨어

속성으로 바꾼 것 Sub-characteristics, Criteria 라고도 함

Metric 평가자 중심 품질을 측정하는 방법과 척도

Quality

Quality Factor

Quality Subfactor

Metric

1

1..*

0..*

*

*

1

Page 12: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 12/39

품질모델 품질모델 구조 적용 예 (McCall 모델 )

Quality

Quality Factor

Quality Subfactor

Metric

1

1..*

0..*

*

*

1

Reliability

Accurateness Simplicity

SIM1ACC2ACC1

Maintainability

Page 13: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 13/39

품질모델 McCall 모델

ProductOperation

ProductOperation

UsabilityUsability

IntegrityIntegrity

EfficiencyEfficiency

CorrectnessCorrectness

ReliabilityReliability

ProductRevision

ProductRevision

MaintainabilityMaintainability

TestabilityTestability

FlexibilityFlexibility

ProductTransition

ProductTransition

ReusabilityReusability

PortabilityPortability

InteroperabilityInteroperability

Operability

Training

Communicativeness

I/O Volume

I/O Rate

Access Control

Access Audit

Storage Efficiency

Execution Efficiency

Traceability

Completeness

Accuracy

Error Tolerance

Consistency

Simplicity

Conciseness

Instrumentation

Expandability

Generality

Self Descriptiveness

Modularity

Machine Independence

Software System Independence

Communications Commonality

Data Commonality

Metric

Product Transition

Prod

uct Re

visi

on

Product Operation

McCall

Page 14: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 14/39

품질모델 Boëhm

Page 15: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 15/39

품질모델 HP’s FURPS

FURPS

Functionality

Usability

ReliabilityPerformance

Supportability

Page 16: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 16/39

품질모델 IBM’s CUPRIMDSO

Page 17: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 17/39

품질모델

ISO/ IEC 9126

Functionality

ReliabilityUsability

Efficiency

Mai

ntai

nabi

lity

Port

abili

ty

필요한 기능을 제공하는가?

믿을

만 한

가?

쓰기

쉬운

가?

효율성은 좋은가?

고치

기는

쉬운

가?

다른

환경

으로

쉽게

바꿀

수 있

는가

?

ISO/IEC 9126

Page 18: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 18/39

품질모델 ISO/IEC 9126

Functionality Suitability

Accurateness

Interoperability

Compliance

Security

Reliability Maturity

Fault Tolerance

Recoverability

Usability Understandability

Learnability

Operability

Efficiency Time Behavior

Resource Behavior

Maintainability Analyzability

Changeability

Stability

Testability

Portability Adaptability

Installability

Conformance

Replaceability

CharacteristicsSub-

characteristics

Page 19: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 19/39

품질모델 ISO/IEC 9126

기능성functionalit

y

소프트웨어가 특정 조건에서 요구를 충족시키는 기능을 제공할 수 있는 능력

적합성Suitability

특정 작업을 처리하는 기능의 적합성과 존재에 영향을 미치는 속성

정밀성Accurateness

합의한 결과나 효과 또는 명문화한 권리 조항에 영향을 미치는 속성

상호운영성 Interoperability

정해진 소프트웨어와 상호 작용하는 능력에 영향을 미치는 속성

준거성 Compliance

표준 , 관습 , 법률 , 규격 , 협정 같은 정해진 규칙을 준수하는 속성

보안성Security

소프트웨어의 프로그램이나 데이터에 사고든 고이든 적법하지 않게 접근하는 것을 막을 수 있는 능력에 영향을 주는 속성

신뢰성Reliability

소프트웨어가 특정 상황에서 특정 기간 동안 일정 수준 이상으로 동작할 수 있는 능력

성숙도Maturity

해결하지 못하고 남아있는 장애 때문에 생기는 장애 빈도에 영향을 주는 속성

오류 허용성Fault tolerance

소프트웨어에 오류가 생기거나 정해진 상호작용 방식에 문제가 생겼을 때도 최소 정해 놓은 수준으로 동작하는 능력에 영향을 미치는 속성

회복성 Recoverability

장애로 직접 영향을 받는 데이터를 복구하고 일정 수준 이상으로 다시 동작하는 능력과 이 때 필요한 시간과 노력에 영향을 미치는 속성

Page 20: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 20/39

품질모델 ISO/IEC 9126

사용성 Usability

특정 조건에서 소프트웨어를 쓰고 배우고 이해하기 쉽게 만드는 능력

이해성Understandabilit

y

소프트웨어의 개념과 활용 방법을 이해하는 데 필요한 사용자의 노력에 영향을 미치는 속성

습득성Learnability

소프트웨어의 활용 방법을 배우고 익히는 데 필요한 사용자의 노력에 영향을 미치는 속성

운영성Operability

소프트웨어를 운영하고 관리하는 데 필요한 사용자 노력에 영향을 미치는 속성

효율성Efficiency

특정 조건에서 적절한 자원을 소모하면서 적절한 성능을 제공할 수 있는 능력

실행 효율성Time behavior

소프트웨어가 기능을 수행할 때 적절한 응답시간 , 처리효율 , 처리시간을 제공할 수 있는 능력에 영향을 미치는 속성

자원 효율성Resource Behavior

소프트웨어가 기능을 수행할 때 적절 양의 자원을 소모하는 능력에 영향을 미치는 속성

Page 21: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 21/39

품질모델 ISO/IEC 9126

유지보수성Maintainabili

ty

소프트웨어를 얼마나 쉽게 수정할 수 있는지 측정한 능력 . 수정에는 정정 , 개선 , 환경변화 수용 , 요구사항 변화 수용 , 기능 추가 같은 것들이 있다 .

분석성Analyzability

장애 원인과 겸함을 분석하고 수정해야 할 부분을 찾아내는 데 필요한 노력에 영향을 미치는 속성

변경성Changeability

소프트웨어를 수정할 때 , 장애를 제거할 때 , 소프트웨어 동작 환경을 변경할 때 드는 노력에 영향을 미치는 속성

안정성Stability

수정으로 예상하지 못한 문제가 발생할 위험에 영향을 미치는 속성

시험성Testability

수정된 소프트웨어를 검증하는 데 필요한 노력에 영향을 미치는 속성

이식성 Portability소프트웨어가 다른 환경으로 이식될 수 있는 능력 .

적응성Adaptability

원래 필요한 작업이나 방법만 써서 소프트웨어가 동작하는 환경을 바꿀 수 있는 가능성에 영향을 미치는 속성

설치성Installability

특정 환경에 소프트웨어를 설치할 때 필요한 노력에 영향을 미치는 속성

일치성Conformance

소프트웨어가 이식성과 관련된 표준이나 관례를 잘 따르는지 나타내는 속성

대체성Replaceability

대상 소프트웨어를 특정한 다른 소프트웨어로 바꿔서 쓸 수 있는지 나타내는 속성

Page 22: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 22/39

품질모델

시스템 품질속성

비즈니스 품질속성 아키텍처 품질속성

SAiP

Page 23: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 23/39

품질모델 SAiP

시스템 품질속성 가용성 (Availability) 보안 (Security) 성능 (Performance) 변경가능성 (Modifiability) 사용성 (Usability) 시험가능성 (Testability)

Page 24: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 24/39

품질모델 SAiP

비즈니스 품질속성 적시성 (Time to Market) 비용과 혜택 (Cost and Benefit) 예상 시스템 수명 (Projected Lifetime of the System) 목표 시장 (Targeted Market) 공개 일정 (Rollout Schedule) 기존 시스템과 통합 (Integration with Legacy Systems)

Page 25: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 25/39

품질모델 SAiP

아키텍처 품질속성 개념 무결성 (Conceptual Integrity) 정확성과 완결성 (Correctness and Completeness) 구축가능성 (Buildability)

Page 26: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 26/39

품질속성 시나리오 시스템 결함의 15% 이상은

요 구 사 항 을 잘 못 파 악 해 서 생긴다 .

어 떤 요 구 사 항 이 어 떤 품질속성과 연관이 있을까 ?

Page 27: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 27/39

품질속성 시나리오 품질속성 정의의 어려움과 대응 방법

개념을 명확하게 정의하지 않아서 용어가 모호하다.

어떤 문제는 어떤 품질속성에 속한 것일까?

각 품질속성은 저마다 다른 용어로 표현된다.

?품질속성 시나리오로 극복한다.

각 품질속성마다 부연 설명을 한다.

Page 28: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 28/39

품질속성 시나리오 품질속성 시나리오 구조

자극원 (Source of Stimulus) 자극 (Stimulus) 환경 (Environment) 자극 대상 (Artifact) 반응 (Response) 반응 측정 (Response Measure)

Page 29: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 29/39

품질속성 시나리오 품질속성 시나리오의 종류

일반 (General) 품질속성 시나리오 모든 시스템에 적용할 수 있는 시나리오

구체 (Concrete) 품질속성 시나리오 특정 상황에서 특정 시스템에 적용할 수 있는 시나리오

품질속성 명세 테이블을 만들어 일반 품질속성 시나리오를 만 들 고 일 반 품 질 속 성 시 나 리 오 로 부 터 구 체 품 질 속 성 시나리오를 만든다 .

품질속성 명세표일반 품질속성

시나리오구체 품질속성

시나리오

Page 30: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 30/39

품질속성 시나리오

품질속성 시나리오를 만들면 ? 시스템이 달성해야 할 품질속성을 식별할 수 있다 . 시스템이 달성해야 할 품질속성의 목표를 찾을 수 있다 .

품질 요구사항을 찾아낼 수 있다 .

품질속성 목표품질속성 목표

[성능01] 시스템은 모든 사용자 요청을 5초안에 처리한다.

품질 요구사항

품질속성 목표품질속성 목표

[가용성01] 시스템은 업무 시간 동안 99.9%의 가용성을 유지한다.

시스템이 달성해야 할 품질속성과 그 목표를 명시한다.

품질속성 시나리오

Page 31: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 31/39

품질속성 시나리오 일반 품질속성 시나리오와 구체 품질속성 시나리오 예제

일반 품질속성 시나리오

구체 품질속성 시나리오

Page 32: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 32/39

아키텍처가 다뤄야 하는 것들

아키텍처는 시스템에 필요한 쓸모 , 아름다움 , 짜임새를 모두 다뤄야 한다 .

Utilitas(Fuction, 쓸모)

Venustas(Aesthetics, 아름다움)

Firmitas(Structure, 짜임새)

Page 33: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 33/39

아키텍처가 다뤄야 하는 것들

쓸모는 짜임새 , 아름다움을 주도한다 . 쓸 모 와 짜 임 새 와 아 름 다 움 은 조 화 를 이 뤄 야 한 다 . 하 지 만 ,

아키텍처가 고객이 원하는 쓸모를 충족시키지 못한다면 아무리 짜임새 있고 아름다워도 아무 소용없다 .

아키텍처는 고객이 원하는 쓸모를 충족시킬 수 있도록 아름다움과 짜임새를 결정하는 것이다 .

쓸모

아름다움

짜임새

Page 34: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 34/39

아키텍처가 다뤄야 하는 것들

고객이 원하는 쓸모가 바로 고객의 요구사항이다 . 고객의 요구사항은 기능 요구사항과 비기능 요구사항으로 나눌

수 있다

비기능

기능

쓸모

Page 35: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 35/39

아키텍처가 다뤄야 하는 것들 기능 요구사항

계좌를 개설한다 . 계좌를 통합한다 . …

비기능 요구사항 사용자 요청을 처리하는 데 5 초 이상 걸려선 안 된다 . 모든 거래는 암호화해야 한다 . …

Page 36: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 36/39

아키텍처와 기능 요구사항 시스템이 기능 요구사항을 충족시킨 정도를 기능성

(functionality) 이라고 한다 . 기능 요구사항은 시스템이 존재해야 하는 근본 원인이기

때문에 기능성이 100% 가 되도록 아키텍처를 결정해야 한다 . 기능성과 비기능 요구사항과 관련된 다른 품질속성들은 거의

연관성이 없다 .

Page 37: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 37/39

아키텍처와 비기능 요구사항

비기능 요구사항과 관련된 품질속성들은 서로 상충 (trade-off) 하 는 경 우 가 많 기 때 문 에 모 든 품 질 속 성 을 100% 만족시킬 수는 없다 . 전체 품질은 각 품질속성의 목표를 적절한 수준에서 조율한 수준에서 결정된다 .

Page 38: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 38/39

아키텍처와 품질 아키텍처는 시스템이 달성해야 하는 품질들을 실현할 때

필요한 큰 그림을 결정하기 때문에 제일 중요하다 . 따라서 , 품질을 달성할 수 있도록 아키텍처를 분석하고 설계해야 한다 .

아키텍처만으로 품질들을 달성할 수 없다 . 아키텍처가 구현 , 설계 , 배치 같은 모든 개발 공정에 제대로 반영될 때만 원하는 품질을 얻을 수 있다 . 예를 들어 , 사용성은 화면 설계와 사용자 인터페이스 프레임워크 구현에 크게 영향을 받는다 . 하지만 , 아키텍처는 시스템 전반에 걸친 품질속성을 담당한다 . 시스템 전반의 사용성은 아키텍처가 결정해야 한다 .

고객이 원하는 품질 (Quality) 을 달성하려면 시스템은 기능 요구사항과 비기능 요구사항을 모두 충족시켜야 한다 .

Page 39: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 39/39

아키텍처와 품질

성능 달성 방안 풀

동시성 확보

자원 보강

이벤트 전달 속도 조절

처리 효율성 증대

자원 수요 조절

자원 배분 정책 수립

가용성 달성 방안 풀

능동 다중화

핑 &에코

투표

체크포인트 & 롤백

수동 다중화

하트비트그림자 작업

아키텍처 판단

자원 보강

자원 배분 정책 수립

능동 다중화

핑 &에코

선택한 성능 달성 방안

선택한 가용성 달성 방안

아키텍처 스타일

아키텍처

품질속성 시나리오

품질 요구사항

Page 40: 2004. 02. 15

0201. 아키텍처 분석과 설계 - 품질속성

소프트웨어 아키텍처 40/39

요약 시스템 품질은 제품 품질과 공정 품질로 나눠진다 . 고객이 원하는 품질 (Quality) 을 달성하려면 시스템은 기능

요구사항과 비기능 요구사항을 모두 충족시켜야 한다 . 사람들마다 품질을 다르게 생각하고 있기 때문에 ISO 9126

같은 품질모델로 품질을 정의해야 한다 . 품질속성 시나리오를 만들어서 시스템이 달성해야 할 품질속성

목표를 찾아 품질 요구사항을 정의한다 . 아키텍처는 기능 요구사항과 비기능 요구사항을 충족시킬 수

있는 시스템의 기초를 제공한다 . 다음 순서로 아키텍처를 만든다 . 품질 시나리오 작성 품질

요구사항 도출 품질속성 달성 방안 선택 아키텍처 스타일 선택 아키텍처 구축 아키텍처 기술서 작성