SlideShare a Scribd company logo
1 of 19
Download to read offline
소프트웨어 아키텍처 평가 : ATAM
(ATAM : Architecture Trade-off Analysis Method)
Software Engineering Lab
김영기 책임
resinous@gmail.com
ATAM
(Architecture Trade-off Analysis Method)
What is ATAM ?
 ATAM is
 Architecture Trade-off Analysis Method
 To assess the consequences of architectural decisions in light of quality
attribute requirements
 Primarily a risk identification mechanism
 Not a predictor of quality achievement
 Vocabulary
Vocabulary Description
Scenario
 A scenario is a shot statement describing an interaction of one of
the stakeholders with the system
Stakeholder
 An individual, team or organization (or classes thereof) with
interested in, or concerns relative to, a system
Architectural view
 A representation of a whole system from the perspective of a related
set of concerns
Functional requirements
 specify what software has to do
Non-functional requirements
 specify how well it should be done
Purpose of ATAM
 ATAM is for …
 Evaluation design decision
 Evaluate if the design decision satisfactorily address the quality requirements
 Elicit rationale of design decisions (traceability)
 Discover risks
 Alternatives that might create (future) problems in some quality attribute
 Discover sensitivity points
 Alternatives for which a slight change makes a significant difference in a quality
attribute
 Discover tradeoffs
 Decisions affecting more than one quality attribute
 Side-effect of ATAM
 Improve the architecture documentation
 Foster stakeholder communication & consensus
Output of ATAM
 ATAM Outputs …
 Precise description of the architecture
 Articulation of the business goals
 Quality requirements in terms of scenario‟s
 Risks
 Trade-off points
 Sensitivity points
 Result depends on the quality of the architecture specification
 Garbage in, Garbage out
 Not an attempt to predict quality attributes
 Quality properties that are not easily expressed quantitatively, such as usability,
interoperability …
 ATAM Weakness
 Subjective judgment that depends on the experience of the participants
 No guidelines for definition of useful change cases
 Risk : check list thinking
ATAM Benefits
 The results are improved architectures
 ATAM „buys‟ time to think about an architecture while development processes
are often under time-pressure
 Identification of risks early in the life-cycle
 Focuses on features that are essential for the stakeholders and not on
technical details
 Improved architecture documentation
 Forces stakeholder to
 Think about qualitative requirements
 Prioritize qualitative requirements
 Documented basis for architectural decisions
ATAM Structure (1/5)
-
Project
Preparation
Evaluation
Follow-up
Introduction
Analyze &
Investigate
Test Report
Phase 0
Phase 1
Phase 2
Phase 3
Introduction
1. Present method
2. Present business drivers
3. Present architecture
Analyze
4. Identify architectural approach/style
5. Generate quality attribute utility tree
6. Analyze architectural approaches
Test
7. Brainstorming and prioritize scenarios
8. Analyze architectural approaches
Report
9. Present results
ATAM Phases
ATAM Structure (2/5)
 Phase 0 : Partnership, Preparation (Informally)
 Attendee : Evaluation team leader / Project decision makers
 Activities
 Building a partnership
 평가 팀 리더는 아키텍처 평가 방법을 간단히 소개한다.
 평가대상 조직은 아키텍처에 대한 자료를 제공하고 평가 팀 리더는 프로젝트
짂행을 결정한다.
 평가대상 조직과 평가수행 조직은 계약을 체결한다.
 정보열람 권리와 정보보호 의무를 확인한다.
 아키텍처 평가 비용과 이득을 평가대상 조직이 충분히 이해하도록 해야 한다.
 Preparation of architecture evaluation
 평가 팀 구성 : 팀을 구성하고 팀원의 역할을 결정한다.
 Kick-off 미팅 : 팀원들이 자싞의 역할을 이해하고 아키텍처 평가에 대한 지식을
공유한다.
 Phase 1 준비
ATAM Structure (3/5)
 Phase 1 : Evaluation 1
 Attendee : Evaluation team leader / Project decision makers
 Period : 1 day
 Activities
 ATAM Execution : Execution from 1 step to 6 step
 Phase 2 Preparation
 Phase 2 짂행 여부 결정
 Phase 2 참여자 결정
 부족한 정보를 파악한다.
 Features
 아키텍처 중심 : 아키텍처에 대한 정보를 발굴하고 분석한다.
 아키텍처를 파악하는데 초점을 맞춘다. (자세한 분석은 Phase 2에서 수행한다.)
 파악한 아키텍처를 기반으로 아키텍처 평가팀 구성을 최종 결정한다.
 Phase 1과 Phase 2 사이에 2~3주 공백 기간을 두고 이 기간 동앆 계속 아키텍처
에 대한 정보를 발견하고 수집한다.
ATAM Structure (4/5)
 Phase 2 : 평가 국면 2
 Attendee : Evaluation team / Project decision makers / Other stakeholders
 Period : After Phase 1, 2~3 weeks later, 2 days
 Activities
 Perform ATAM Evaluation : From step 1 to step 9
 Features
 Architecture centric : 이해관계자의 관심사를 찾아내고 Phase 1에서 Phase 1을 통해
충분히 이해한 아키텍처를 분석하고 평가한다.
Phase 1 Phase 2
참가자  이해관계자 2~4명 참가  이해관계자 10~15명 참가
특징
 아키텍처 중심
 문제 해결 중심
 분석 중심
 이해관계자 중심
 문제 중심
 검증 중심
목적  아키텍처 이해를 돕는다  이해관계자들 사이의 상호작용을 돕는다.
시나리오 용도  Utility Tree를 만들기 위한 시나리오  Utility Tree 검증하기 위한 시나리오
진행방식  다양한 비공식 방법  정규 회의;
ATAM Structure (5/5)
 Phase 3 : Follow up
 Attendee : Evaluation team / Client (team)
 Period : 1 week
 Activities
 Generate the final report
 What is analyzed and assess?
 Results of analyzed and evaluated ?
 What‟s is your point ?
 Collect data for evaluation method improvement and measure to
evaluation satisfaction
 Collecting data of evaluation team and development team
 Collecting improvement points, cost data and profit data
 Upgrade deliverable repository
 Save current evaluation result for later evaluation
Architecture Evaluation Step (1/6)
1. Present method
 Architecture evaluation team leader introduce evaluation method to
stakeholders
 ATAM Steps & techniques
 Explain methods
 Explain evaluation deliverables
 Output : Architectural approaches, Utility tree, Scenarios, Risk and Non-risks …
2. Present business drivers
 Evaluation team and stakeholders are understand that why system is
developed and business drivers
 Customer representative describe the system‟s business drivers
 Business context for the system
 Most important functional requirements
 Most important quality attribute requirements
 Architectural drivers
 Quality Attributes most central to the system‟s success
Architecture Evaluation Step (2/6)
3. Present architecture
 Senior Architect introduce architecture to evaluation team
 Technical constraints & external systems must to interaction
 Architectural approaches for satisfaction of the quality attributes
 Use the important architecture view among the architecture views
 Architecture team may make initial architecture version with their
architectural approach
 Evaluation team begins probing for and capturing risks
4. Identify architectural approach/style
 Find the architectural approaches by questioning or initial architecture version
which are made in previous step
 But, Architectural decisions are not analyze, yet
 Find the architecture style by architectural approaches
 Attribute-Based Architectural Style (ABAS)
 It describes how to satisfy the specific quality attribute
Architecture Evaluation Step (3/6)
5. Generate quality attribute utility tree
 Find the most important quality attribute and set priority by evaluation team
and decision maker and share the priority of quality attribute
 Generate a document for quality attribute requirement and priority
 Utility Tree
 Utility is the qualities are supported by system
 Utility  Quality Attribute  Detailed Quality Attribute  Scenarios
 It is helpful to make decision to set a priority of quality attribute requirement
 Assign a priority score the each scenario
 Matrix for priority decision
 Scenario
 Describe how to interact between
system and stakeholder
 Consist of
 Stimuli, Response, and Environment
priority
Difficulty
[Appendix] Utility Tree
 Example of Utility Tree
Architecture Evaluation Step (4/6)
6. Analyze architectural approaches
 The evaluation team probes architectural approaches specific quality
attributes to identify risks
 Identify the approaches that pertain to the highest priority quality attribute
requirements
 Generate quality attribute specific questions for highest priority quality attribute
requirement
 Ask quality attribute specific questions
 Identify and record risks and non-risk, sensitivity points and tradeoffs
 Risk and Non-risks
 Risks are potentially important architectural decisions that need to be made explicit
 Non-risks are good decisions frequently relying on implicit assumptions
 Risk and non-risk constituents
 Architectural decision
 Quality attribute requirements
 Rationale
 Sensitivity points are candidate risks
[Appendix] Sensitivity & trade-off Point
A Sensitivity point is a parameter of the architectural to which some quality attribute is highly related
Subsystem 1 Subsystem 2
Suppose throughput depends on one channel !!!
Increase channel Speed  Increase performance
A trade-off point is a parameter of the architecture that affects multiple quality attributes in opposite
direction
A system requires high performance, high reliability, high security
Increase channel Speed  Increase performance & decrease reliability
Increase encryption  Increase security & decrease performance
Architecture Evaluation Step (5/6)
7. Brainstorming and prioritize scenarios
 Stakeholders generate scenarios using a facilitated brainstorming process
 Examples are used to facilitate the step
 The new scenarios are added to the leaves of the utility tree
8. Analyze architectural approaches
 Identify the architectural approaches impacted by the scenarios generated in
the previous step
 This step continues the analysis started in step 6 using the new scenarios
 Continue identifying risks and non-risks
 Continue annotating architectural information
 Essentially a process steps above …
 Include a larger group of stakeholders
 Extend consensus (on priorities)
 Extend confidence in completeness of scenario’s
Architecture Evaluation Step (6/6)
9. Present results
 Recapitulate steps of the ATAM
 Present ATAM outputs
 Architectural approaches
 Utility tree
 Scenarios
 Risks and “non-risks”
 Sensitivity points and trade-offs

More Related Content

What's hot

Lambda Layerの権限制御を試してみた
Lambda Layerの権限制御を試してみたLambda Layerの権限制御を試してみた
Lambda Layerの権限制御を試してみたKazukiNabasama
 
Agile Integration eBook from 2018
Agile Integration eBook from 2018Agile Integration eBook from 2018
Agile Integration eBook from 2018Kim Clark
 
Java EE vs Spring Framework
Java  EE vs Spring Framework Java  EE vs Spring Framework
Java EE vs Spring Framework Rohit Kelapure
 
Software architecture model
Software architecture modelSoftware architecture model
Software architecture modelEmmanuel Fuchs
 
Design Patterns
Design PatternsDesign Patterns
Design Patternssoms_1
 
Observer Software Design Pattern
Observer Software Design Pattern Observer Software Design Pattern
Observer Software Design Pattern Nirthika Rajendran
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) Amazon Web Services Korea
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design Arslan Anwar
 
脆弱性ハンドリングと耐える設計 -Vulnerability Response-
脆弱性ハンドリングと耐える設計 -Vulnerability Response-脆弱性ハンドリングと耐える設計 -Vulnerability Response-
脆弱性ハンドリングと耐える設計 -Vulnerability Response-Tomohiro Nakashima
 
Software architecture
Software architectureSoftware architecture
Software architecturenazn
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)NTT DATA Technology & Innovation
 
Software Product Line
Software Product LineSoftware Product Line
Software Product LineHimanshu
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General IntroductionAsma CHERIF
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 

What's hot (20)

5 architecture
5 architecture5 architecture
5 architecture
 
Lambda Layerの権限制御を試してみた
Lambda Layerの権限制御を試してみたLambda Layerの権限制御を試してみた
Lambda Layerの権限制御を試してみた
 
Agile Integration eBook from 2018
Agile Integration eBook from 2018Agile Integration eBook from 2018
Agile Integration eBook from 2018
 
Java EE vs Spring Framework
Java  EE vs Spring Framework Java  EE vs Spring Framework
Java EE vs Spring Framework
 
Software architecture model
Software architecture modelSoftware architecture model
Software architecture model
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Observer Software Design Pattern
Observer Software Design Pattern Observer Software Design Pattern
Observer Software Design Pattern
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design
 
脆弱性ハンドリングと耐える設計 -Vulnerability Response-
脆弱性ハンドリングと耐える設計 -Vulnerability Response-脆弱性ハンドリングと耐える設計 -Vulnerability Response-
脆弱性ハンドリングと耐える設計 -Vulnerability Response-
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
 
Ch7
Ch7Ch7
Ch7
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Software Product Line
Software Product LineSoftware Product Line
Software Product Line
 
グレープシティのMicrosoft Azure対応への取り組み
グレープシティのMicrosoft Azure対応への取り組みグレープシティのMicrosoft Azure対応への取り組み
グレープシティのMicrosoft Azure対応への取り組み
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 

Viewers also liked

스크럼(Scrum)
스크럼(Scrum)스크럼(Scrum)
스크럼(Scrum)영기 김
 
[SWMaestro 100+ 발표자료] 테스트하기
[SWMaestro 100+ 발표자료] 테스트하기[SWMaestro 100+ 발표자료] 테스트하기
[SWMaestro 100+ 발표자료] 테스트하기Luavis Kang
 
[Visual studio camp #1] Enterprise Software Testing
[Visual studio camp #1] Enterprise Software Testing[Visual studio camp #1] Enterprise Software Testing
[Visual studio camp #1] Enterprise Software Testing준일 엄
 
린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)영기 김
 
Linux containers
Linux containersLinux containers
Linux containersLuavis Kang
 
애자일 코치
애자일 코치애자일 코치
애자일 코치영기 김
 
[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략Ji-Woong Choi
 
소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅영기 김
 
배열과 포인터
배열과 포인터배열과 포인터
배열과 포인터영기 김
 
칸반(Kanban)
칸반(Kanban)칸반(Kanban)
칸반(Kanban)영기 김
 
Istqb 4-테스트설계기법-2015-1
Istqb 4-테스트설계기법-2015-1Istqb 4-테스트설계기법-2015-1
Istqb 4-테스트설계기법-2015-1Jongwon Lee
 
익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)영기 김
 

Viewers also liked (13)

스크럼(Scrum)
스크럼(Scrum)스크럼(Scrum)
스크럼(Scrum)
 
[SWMaestro 100+ 발표자료] 테스트하기
[SWMaestro 100+ 발표자료] 테스트하기[SWMaestro 100+ 발표자료] 테스트하기
[SWMaestro 100+ 발표자료] 테스트하기
 
[Visual studio camp #1] Enterprise Software Testing
[Visual studio camp #1] Enterprise Software Testing[Visual studio camp #1] Enterprise Software Testing
[Visual studio camp #1] Enterprise Software Testing
 
린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)
 
Linux containers
Linux containersLinux containers
Linux containers
 
애자일 코치
애자일 코치애자일 코치
애자일 코치
 
[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략
 
소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅
 
배열과 포인터
배열과 포인터배열과 포인터
배열과 포인터
 
What is agile
What is agileWhat is agile
What is agile
 
칸반(Kanban)
칸반(Kanban)칸반(Kanban)
칸반(Kanban)
 
Istqb 4-테스트설계기법-2015-1
Istqb 4-테스트설계기법-2015-1Istqb 4-테스트설계기법-2015-1
Istqb 4-테스트설계기법-2015-1
 
익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)
 

Similar to 소프트웨어 아키텍처 평가(Atam)

'Architecture Testing: Wrongly Ignored!' by Peter Zimmerer
'Architecture Testing: Wrongly Ignored!' by Peter Zimmerer'Architecture Testing: Wrongly Ignored!' by Peter Zimmerer
'Architecture Testing: Wrongly Ignored!' by Peter ZimmererTEST Huddle
 
Requirements for quality evaluation of software architecture
Requirements for quality evaluation of software architectureRequirements for quality evaluation of software architecture
Requirements for quality evaluation of software architectureJoao Albuquerque
 
Architecture Review
Architecture ReviewArchitecture Review
Architecture ReviewHimanshu
 
Slides 6 design of sw arch using add
Slides 6 design of sw arch using addSlides 6 design of sw arch using add
Slides 6 design of sw arch using addJavid iqbal hashmi
 
Planning And Monitoring The Process
Planning And Monitoring The ProcessPlanning And Monitoring The Process
Planning And Monitoring The Processahmad bassiouny
 
1 Ads
1 Ads1 Ads
1 Adslcbj
 
Core tools apqp, ppap, fmea, spc and msa
Core tools   apqp, ppap, fmea, spc and msa Core tools   apqp, ppap, fmea, spc and msa
Core tools apqp, ppap, fmea, spc and msa Mouhcine Nahal
 
System Engineering with Project & Risk Management
System Engineering with Project & Risk ManagementSystem Engineering with Project & Risk Management
System Engineering with Project & Risk ManagementRAMKUMAR P
 
Phase 3 - Task 1Task TypeDiscussion BoardDeliverable Length.docx
Phase 3 - Task 1Task TypeDiscussion BoardDeliverable Length.docxPhase 3 - Task 1Task TypeDiscussion BoardDeliverable Length.docx
Phase 3 - Task 1Task TypeDiscussion BoardDeliverable Length.docxrandymartin91030
 
Architecting Component-Based Systems
Architecting Component-Based SystemsArchitecting Component-Based Systems
Architecting Component-Based Systemsvadapav123
 
BABoK V2 Requirements Analysis (RA)
BABoK V2 Requirements Analysis (RA)BABoK V2 Requirements Analysis (RA)
BABoK V2 Requirements Analysis (RA)AMJAD SHAIKH
 

Similar to 소프트웨어 아키텍처 평가(Atam) (20)

Sda 6
Sda   6Sda   6
Sda 6
 
'Architecture Testing: Wrongly Ignored!' by Peter Zimmerer
'Architecture Testing: Wrongly Ignored!' by Peter Zimmerer'Architecture Testing: Wrongly Ignored!' by Peter Zimmerer
'Architecture Testing: Wrongly Ignored!' by Peter Zimmerer
 
Chapter 3 - Static Testing
Chapter 3 - Static TestingChapter 3 - Static Testing
Chapter 3 - Static Testing
 
3 analysis and design overview
3 analysis and design overview3 analysis and design overview
3 analysis and design overview
 
Review se
Review seReview se
Review se
 
Requirements for quality evaluation of software architecture
Requirements for quality evaluation of software architectureRequirements for quality evaluation of software architecture
Requirements for quality evaluation of software architecture
 
Architecture Review
Architecture ReviewArchitecture Review
Architecture Review
 
Slides 6 design of sw arch using add
Slides 6 design of sw arch using addSlides 6 design of sw arch using add
Slides 6 design of sw arch using add
 
Planning And Monitoring The Process
Planning And Monitoring The ProcessPlanning And Monitoring The Process
Planning And Monitoring The Process
 
1 Ads
1 Ads1 Ads
1 Ads
 
Unit 2
Unit 2Unit 2
Unit 2
 
Ray-Goodfellow.ppt
Ray-Goodfellow.pptRay-Goodfellow.ppt
Ray-Goodfellow.ppt
 
ATAM
ATAMATAM
ATAM
 
Core tools apqp, ppap, fmea, spc and msa
Core tools   apqp, ppap, fmea, spc and msa Core tools   apqp, ppap, fmea, spc and msa
Core tools apqp, ppap, fmea, spc and msa
 
ASAP Overview.ppt
ASAP Overview.pptASAP Overview.ppt
ASAP Overview.ppt
 
Architecture evaluation
Architecture evaluationArchitecture evaluation
Architecture evaluation
 
System Engineering with Project & Risk Management
System Engineering with Project & Risk ManagementSystem Engineering with Project & Risk Management
System Engineering with Project & Risk Management
 
Phase 3 - Task 1Task TypeDiscussion BoardDeliverable Length.docx
Phase 3 - Task 1Task TypeDiscussion BoardDeliverable Length.docxPhase 3 - Task 1Task TypeDiscussion BoardDeliverable Length.docx
Phase 3 - Task 1Task TypeDiscussion BoardDeliverable Length.docx
 
Architecting Component-Based Systems
Architecting Component-Based SystemsArchitecting Component-Based Systems
Architecting Component-Based Systems
 
BABoK V2 Requirements Analysis (RA)
BABoK V2 Requirements Analysis (RA)BABoK V2 Requirements Analysis (RA)
BABoK V2 Requirements Analysis (RA)
 

More from 영기 김

Ms Azure fundamentals
Ms Azure fundamentalsMs Azure fundamentals
Ms Azure fundamentals영기 김
 
AWS Certified Cloud Practitioner
AWS Certified Cloud PractitionerAWS Certified Cloud Practitioner
AWS Certified Cloud Practitioner영기 김
 
Microservices
Microservices Microservices
Microservices 영기 김
 
Dev ops Introduction
Dev ops IntroductionDev ops Introduction
Dev ops Introduction영기 김
 
통신시스템(Wcdma network)
통신시스템(Wcdma network)통신시스템(Wcdma network)
통신시스템(Wcdma network)영기 김
 
통신시스템(Cdma network)
통신시스템(Cdma network)통신시스템(Cdma network)
통신시스템(Cdma network)영기 김
 
통신시스템(Gprs network)
통신시스템(Gprs network)통신시스템(Gprs network)
통신시스템(Gprs network)영기 김
 
통신시스템(Gsm network)
통신시스템(Gsm network)통신시스템(Gsm network)
통신시스템(Gsm network)영기 김
 
통신시스템(Cellular concepts)
통신시스템(Cellular concepts)통신시스템(Cellular concepts)
통신시스템(Cellular concepts)영기 김
 
알고리즘과 자료구조
알고리즘과 자료구조알고리즘과 자료구조
알고리즘과 자료구조영기 김
 
애자일 S/W 개발
애자일 S/W 개발애자일 S/W 개발
애자일 S/W 개발영기 김
 

More from 영기 김 (11)

Ms Azure fundamentals
Ms Azure fundamentalsMs Azure fundamentals
Ms Azure fundamentals
 
AWS Certified Cloud Practitioner
AWS Certified Cloud PractitionerAWS Certified Cloud Practitioner
AWS Certified Cloud Practitioner
 
Microservices
Microservices Microservices
Microservices
 
Dev ops Introduction
Dev ops IntroductionDev ops Introduction
Dev ops Introduction
 
통신시스템(Wcdma network)
통신시스템(Wcdma network)통신시스템(Wcdma network)
통신시스템(Wcdma network)
 
통신시스템(Cdma network)
통신시스템(Cdma network)통신시스템(Cdma network)
통신시스템(Cdma network)
 
통신시스템(Gprs network)
통신시스템(Gprs network)통신시스템(Gprs network)
통신시스템(Gprs network)
 
통신시스템(Gsm network)
통신시스템(Gsm network)통신시스템(Gsm network)
통신시스템(Gsm network)
 
통신시스템(Cellular concepts)
통신시스템(Cellular concepts)통신시스템(Cellular concepts)
통신시스템(Cellular concepts)
 
알고리즘과 자료구조
알고리즘과 자료구조알고리즘과 자료구조
알고리즘과 자료구조
 
애자일 S/W 개발
애자일 S/W 개발애자일 S/W 개발
애자일 S/W 개발
 

Recently uploaded

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 

Recently uploaded (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

소프트웨어 아키텍처 평가(Atam)

  • 1. 소프트웨어 아키텍처 평가 : ATAM (ATAM : Architecture Trade-off Analysis Method) Software Engineering Lab 김영기 책임 resinous@gmail.com
  • 3. What is ATAM ?  ATAM is  Architecture Trade-off Analysis Method  To assess the consequences of architectural decisions in light of quality attribute requirements  Primarily a risk identification mechanism  Not a predictor of quality achievement  Vocabulary Vocabulary Description Scenario  A scenario is a shot statement describing an interaction of one of the stakeholders with the system Stakeholder  An individual, team or organization (or classes thereof) with interested in, or concerns relative to, a system Architectural view  A representation of a whole system from the perspective of a related set of concerns Functional requirements  specify what software has to do Non-functional requirements  specify how well it should be done
  • 4. Purpose of ATAM  ATAM is for …  Evaluation design decision  Evaluate if the design decision satisfactorily address the quality requirements  Elicit rationale of design decisions (traceability)  Discover risks  Alternatives that might create (future) problems in some quality attribute  Discover sensitivity points  Alternatives for which a slight change makes a significant difference in a quality attribute  Discover tradeoffs  Decisions affecting more than one quality attribute  Side-effect of ATAM  Improve the architecture documentation  Foster stakeholder communication & consensus
  • 5. Output of ATAM  ATAM Outputs …  Precise description of the architecture  Articulation of the business goals  Quality requirements in terms of scenario‟s  Risks  Trade-off points  Sensitivity points  Result depends on the quality of the architecture specification  Garbage in, Garbage out  Not an attempt to predict quality attributes  Quality properties that are not easily expressed quantitatively, such as usability, interoperability …  ATAM Weakness  Subjective judgment that depends on the experience of the participants  No guidelines for definition of useful change cases  Risk : check list thinking
  • 6. ATAM Benefits  The results are improved architectures  ATAM „buys‟ time to think about an architecture while development processes are often under time-pressure  Identification of risks early in the life-cycle  Focuses on features that are essential for the stakeholders and not on technical details  Improved architecture documentation  Forces stakeholder to  Think about qualitative requirements  Prioritize qualitative requirements  Documented basis for architectural decisions
  • 7. ATAM Structure (1/5) - Project Preparation Evaluation Follow-up Introduction Analyze & Investigate Test Report Phase 0 Phase 1 Phase 2 Phase 3 Introduction 1. Present method 2. Present business drivers 3. Present architecture Analyze 4. Identify architectural approach/style 5. Generate quality attribute utility tree 6. Analyze architectural approaches Test 7. Brainstorming and prioritize scenarios 8. Analyze architectural approaches Report 9. Present results ATAM Phases
  • 8. ATAM Structure (2/5)  Phase 0 : Partnership, Preparation (Informally)  Attendee : Evaluation team leader / Project decision makers  Activities  Building a partnership  평가 팀 리더는 아키텍처 평가 방법을 간단히 소개한다.  평가대상 조직은 아키텍처에 대한 자료를 제공하고 평가 팀 리더는 프로젝트 짂행을 결정한다.  평가대상 조직과 평가수행 조직은 계약을 체결한다.  정보열람 권리와 정보보호 의무를 확인한다.  아키텍처 평가 비용과 이득을 평가대상 조직이 충분히 이해하도록 해야 한다.  Preparation of architecture evaluation  평가 팀 구성 : 팀을 구성하고 팀원의 역할을 결정한다.  Kick-off 미팅 : 팀원들이 자싞의 역할을 이해하고 아키텍처 평가에 대한 지식을 공유한다.  Phase 1 준비
  • 9. ATAM Structure (3/5)  Phase 1 : Evaluation 1  Attendee : Evaluation team leader / Project decision makers  Period : 1 day  Activities  ATAM Execution : Execution from 1 step to 6 step  Phase 2 Preparation  Phase 2 짂행 여부 결정  Phase 2 참여자 결정  부족한 정보를 파악한다.  Features  아키텍처 중심 : 아키텍처에 대한 정보를 발굴하고 분석한다.  아키텍처를 파악하는데 초점을 맞춘다. (자세한 분석은 Phase 2에서 수행한다.)  파악한 아키텍처를 기반으로 아키텍처 평가팀 구성을 최종 결정한다.  Phase 1과 Phase 2 사이에 2~3주 공백 기간을 두고 이 기간 동앆 계속 아키텍처 에 대한 정보를 발견하고 수집한다.
  • 10. ATAM Structure (4/5)  Phase 2 : 평가 국면 2  Attendee : Evaluation team / Project decision makers / Other stakeholders  Period : After Phase 1, 2~3 weeks later, 2 days  Activities  Perform ATAM Evaluation : From step 1 to step 9  Features  Architecture centric : 이해관계자의 관심사를 찾아내고 Phase 1에서 Phase 1을 통해 충분히 이해한 아키텍처를 분석하고 평가한다. Phase 1 Phase 2 참가자  이해관계자 2~4명 참가  이해관계자 10~15명 참가 특징  아키텍처 중심  문제 해결 중심  분석 중심  이해관계자 중심  문제 중심  검증 중심 목적  아키텍처 이해를 돕는다  이해관계자들 사이의 상호작용을 돕는다. 시나리오 용도  Utility Tree를 만들기 위한 시나리오  Utility Tree 검증하기 위한 시나리오 진행방식  다양한 비공식 방법  정규 회의;
  • 11. ATAM Structure (5/5)  Phase 3 : Follow up  Attendee : Evaluation team / Client (team)  Period : 1 week  Activities  Generate the final report  What is analyzed and assess?  Results of analyzed and evaluated ?  What‟s is your point ?  Collect data for evaluation method improvement and measure to evaluation satisfaction  Collecting data of evaluation team and development team  Collecting improvement points, cost data and profit data  Upgrade deliverable repository  Save current evaluation result for later evaluation
  • 12. Architecture Evaluation Step (1/6) 1. Present method  Architecture evaluation team leader introduce evaluation method to stakeholders  ATAM Steps & techniques  Explain methods  Explain evaluation deliverables  Output : Architectural approaches, Utility tree, Scenarios, Risk and Non-risks … 2. Present business drivers  Evaluation team and stakeholders are understand that why system is developed and business drivers  Customer representative describe the system‟s business drivers  Business context for the system  Most important functional requirements  Most important quality attribute requirements  Architectural drivers  Quality Attributes most central to the system‟s success
  • 13. Architecture Evaluation Step (2/6) 3. Present architecture  Senior Architect introduce architecture to evaluation team  Technical constraints & external systems must to interaction  Architectural approaches for satisfaction of the quality attributes  Use the important architecture view among the architecture views  Architecture team may make initial architecture version with their architectural approach  Evaluation team begins probing for and capturing risks 4. Identify architectural approach/style  Find the architectural approaches by questioning or initial architecture version which are made in previous step  But, Architectural decisions are not analyze, yet  Find the architecture style by architectural approaches  Attribute-Based Architectural Style (ABAS)  It describes how to satisfy the specific quality attribute
  • 14. Architecture Evaluation Step (3/6) 5. Generate quality attribute utility tree  Find the most important quality attribute and set priority by evaluation team and decision maker and share the priority of quality attribute  Generate a document for quality attribute requirement and priority  Utility Tree  Utility is the qualities are supported by system  Utility  Quality Attribute  Detailed Quality Attribute  Scenarios  It is helpful to make decision to set a priority of quality attribute requirement  Assign a priority score the each scenario  Matrix for priority decision  Scenario  Describe how to interact between system and stakeholder  Consist of  Stimuli, Response, and Environment priority Difficulty
  • 15. [Appendix] Utility Tree  Example of Utility Tree
  • 16. Architecture Evaluation Step (4/6) 6. Analyze architectural approaches  The evaluation team probes architectural approaches specific quality attributes to identify risks  Identify the approaches that pertain to the highest priority quality attribute requirements  Generate quality attribute specific questions for highest priority quality attribute requirement  Ask quality attribute specific questions  Identify and record risks and non-risk, sensitivity points and tradeoffs  Risk and Non-risks  Risks are potentially important architectural decisions that need to be made explicit  Non-risks are good decisions frequently relying on implicit assumptions  Risk and non-risk constituents  Architectural decision  Quality attribute requirements  Rationale  Sensitivity points are candidate risks
  • 17. [Appendix] Sensitivity & trade-off Point A Sensitivity point is a parameter of the architectural to which some quality attribute is highly related Subsystem 1 Subsystem 2 Suppose throughput depends on one channel !!! Increase channel Speed  Increase performance A trade-off point is a parameter of the architecture that affects multiple quality attributes in opposite direction A system requires high performance, high reliability, high security Increase channel Speed  Increase performance & decrease reliability Increase encryption  Increase security & decrease performance
  • 18. Architecture Evaluation Step (5/6) 7. Brainstorming and prioritize scenarios  Stakeholders generate scenarios using a facilitated brainstorming process  Examples are used to facilitate the step  The new scenarios are added to the leaves of the utility tree 8. Analyze architectural approaches  Identify the architectural approaches impacted by the scenarios generated in the previous step  This step continues the analysis started in step 6 using the new scenarios  Continue identifying risks and non-risks  Continue annotating architectural information  Essentially a process steps above …  Include a larger group of stakeholders  Extend consensus (on priorities)  Extend confidence in completeness of scenario’s
  • 19. Architecture Evaluation Step (6/6) 9. Present results  Recapitulate steps of the ATAM  Present ATAM outputs  Architectural approaches  Utility tree  Scenarios  Risks and “non-risks”  Sensitivity points and trade-offs