<๋ชฉ์ฐจ>
๐ก 5.1 Evaluating software architecture

โ 5.1.1 Qualitative evaluation
Software project evaluate 'development or operating process' and 'artifact(requirement, source code, other document)'
๐ธ 8 quality characteristics

- Functional suitability: ๊ธฐ๋ฅ ์ ํฉ์ฑ, ์์ ์ฑ (์ ์๋ ์๊ตฌ์ฌํญ์ ์ถฉ๋ถํ ๋ง์กฑํ์๋๊ฐ?)
- Reliability: ์ ๋ขฐ์ฑ - ํ๋ณต์ฑ, maturity, fault tolerance (์ ์๋ ์กฐ๊ฑด ์๋์ ์ฑ๋ฅ์ ์ ์ง ํ๋๊ฐ?)
- Usability: ์ฌ์ฉ์ฑ - ์ธ์์ฑ, ํ์ต์ฑ, ์ ๊ทผ์ฑ (ํ์ตํ๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์ด๊ฐ?)
- Performance efficiency: ์ฑ๋ฅ ํจ์จ์ฑ - ์๊ฐ ํจ์จ, ๋ฆฌ์์ค utilization, capacity (์ผ๋ง๋ ๊ฒฝ์ ์ ์ธ๊ฐ?)
- Security: ๋ณด์์ฑ - ๊ธฐ๋ฐ์ฑ, ๋ฌด๊ฒฐ์ฑ, ์ธ์ฆ, ์ธ๊ฐ (๋ฐ์ดํฐ ๋ณดํธ ์ฑ๋ฅ์ด ์ผ๋ง๋ ์ข์๊ฐ? ๊ถํ์ด ์๋ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ฐ๋ ๊ฒ์ ํ๋ฝํ์ง ์๊ณ ์๋๊ฐ?)
- Compatibility: ํธํ์ฑ (๊ฐ์ ์์คํ ํ๊ฒฝ ์์์ ์ ๋ณด ๊ตํ์ด ์ํํ๊ฐ?)
- Maintainability: ์ ์ง๋ณด์์ฑ - ๋ชจ๋ํ, ๋ณ๊ฒฝ ์ฉ์ด, ํ ์คํธ ๊ฐ๋ฅ, ๋ถ์ ๊ฐ๋ฅ, ์ฌ์ฌ์ฉ์ฑ
- Portability: ์ด์์ฑ - ์ ์ฉ์ฑ, ์ค์น ๊ฐ๋ฅ (์ํํธ์จ์ด๊ฐ ๋ค๋ฅธ ์์คํ ์์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ฐ?)
- Scalability: adaptability to an increasing volume of requirements
- Traceability: ๋ชจ๋ ์๊ตฌ์ฌํญ์ด uniqueํ identification์ ๊ฐ์ ธ์ผ ํจ
๐ธ Effects of quality characteristics
- Simplicity increases comprehensibility
- Security can reduce usability: ํน์ ๊ธฐ๋ฅ์ ํน์ ๋คํธ์ํฌ ์์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
- Flexibility can reduce testability: ๋ณต์ก๋๊ฐ ๋์ ์์คํ ์ ํ ์คํธ ํ ๊ฒ์ด ๋ ๋ง์
- Adaptability and flexibility: increased performance -> ์๊ฐ ๋ด์ ์๋ฃํ๋ ๊ฒ์ ์ ์ฝ์ด ์์ ์ ์์
๐ธ Tactics and practices for fulfilling quality requirements

Adaptability and Flexibility๋ฅผ ๋์ด๋ ๊ฒ๊ณผ performance๋ฅผ ์ฆ๊ฐ์ํค๋ ๊ฒ์ ์๋ก ์ดํด๊ด๊ณ๊ฐ ์์ถฉ๋จ!!!
๋ฐ๋ผ์, ์ด๋ค ์ธก๋ฉด(functionality, external software, interfaces, target problem....๋ฑ)์ Flexibility๋ฅผ ๋์ผ ๊ฒ์ธ์ง ๊ณ ๋ คํด์ผ ํจ
[Flexibility๋ฅผ ๋์ด๋ ๋ฐฉ๋ฒ]
- information hiding
- dependency ์ค์ด๊ธฐ
- building block ์ฌ์ฉ ์ต์ํ
- decouple system elements (interface ์ฌ์ฉ / adapter, facade, proxy)
- ์ฝ๋์ ๊ฐ๋ ์ฑ ๋์ด๊ธฐ
โ 5.1.2 Quantative evaluation
๐ธ Check architecture compliance

Static analysis tool can be configured to evaluate the compliance of the code
"architecture standards"
[Architectural problem area as an aspect of quantitativeness]
- high coupling of components
- clusters of erros in certain building block of the system
๐ธ Metrics
- Requirements: ์๊ตฌ์ฌํญ์ ๊ฐฏ์
- Source code: ์์ค์ฝ๋ ๋ผ์ธ ์ / ์์กด๋ / ๋ณต์ก์ฑ / ๊ฐ ํด๋์ค ๋ณ ๋ฉ์๋์ ๊ฐฏ์
- Software production process: implemented/tested feature์ ์ / meeting ์๊ฐ / manager, tester, developer์ ๋น์จ / ์๋ก ์ถ๊ฐ ๋ ์์ค ์ฝ๋ ๋ผ์ธ ์ / ์ฐ์ ๋ ๊ณต์
- Errors: ์๋ฌ ์์ ์ ์์ ์๊ฐ / ์๋ฌ์ ๊ฐฏ์
- Testing: test case์ ๊ฐฏ์ / ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง(๊ฐ ์๊ตฌ์ฌํญ ๋น ๋์ค๋ ํ ์คํธ ์ผ์ด์ค์ ์)
- Design: dependency / ์ถ์๋ / ๋ถ์์ ์ฑ
- System(fully or partially complete): performance characteristics(๋ฆฌ์์ค or use case or ํน์ ๊ธฐ๋ฅ์ด processing ๋๋ ๋ฐ์ ๊ฑธ๋ฆฌ๋ ์๊ฐ)
๐ธ Cyclomatic complexity (์ํ ๋ณต์ก๋)
๋ณต์ก๋ = ์ (edge)์ ์ - ๋ง๋(node)์ ์ + 2
์์ ๊ณ์ฐ์ ๋งํผ ๋ง๋ค์ด์ง TC๋ก ์ปค๋ฒํ ์ ์๋ค๋ ์ด๋ก
"๋ฎ์ ์ํ ๋ณต์ก๋" = ๋ชจ๋์ ๋ํ ์ดํด, ํ ์คํธ, ์ ์ง๋ณด์๊ฐ ์ฌ์
"๋์ ์ํ ๋ณต์ก๋" = ๋ชจ๋์ด ๋ณต์กํ๊ณ ํ ์คํธ์ ๋ถ๋ฆฌํจ
๐ก 5.2 Prototype and technical proof of concept
โ 5.2.1 Technical proof of concept
Theoretical demonstration of a product / process / concept
to check feasibility "theorically"
โ 5.2.2 Prototype
Very early draft of a product / process / concept
์ฅ์ : ์ฌ์ฉ์๊ฐ ์ค์ํ ์คํ์ ๊ฒฝํ์ ํ ์ ์๊ฒ ํด์ค, ๋ฏธ๋ฆฌ ํผ๋๋ฐฑ ์ ๊ณต ๊ฐ๋ฅ, ๊ฐ๋ฐ ๋ฆฌ์คํฌ ๊ฐ์
๋จ์ : ๊ฐ๋ฐ ๊ณต์ ์ฆ๊ฐ, ๊ฒฐ๊ตญ ํ์์๋ prototype("throwaway prototype")์ด ๋ ์ ์์, documentation ๋์์ด ๋ ์ ์์
- Demonstration prototype: ์ต์ข product์ ๋ชจ์ต ํํ
- "real" prototype: ์ค์ ๊ฐ๋ฐ๊ณผ ๋ณํ ์์ ์ ํตํด ํํ / analysis purpose
- Laboratory sample: ์คํ์ ์ธ example
- Pilot system: core prototype
๐ก 5.3 Architecture analysis
โ ATAM method
Architecture Tradeoff Analysis Method
์ํคํ ์ฒ ํ์ง ์์ฑ์ ๋ง์กฑ์ํค๋์ง ์ฌ๋ถ์ ํ์ง ์์ฑ๋ค ๊ฐ์ ์ํธ์์ฉ(trade-off)๊น์ง ๋ฐํ ํ๊ฐํ๋ ์ํคํ ์ฒ ํ๊ฐ ๋ฐฉ๋ฒ!
๋น์ฆ๋์ค ๋๋ผ์ด๋ฒ(business driver)์์ ํ์ง ์์ฑ(quality attribute)๋ฅผ ๋์ถ -> ์๋๋ฆฌ์ค์ ์ ์ฉ -> ๋ถ์ -> Architecture decision
"์ํคํ ์ฒ๊ฐ ์ฒ์์ ์๋ํ๋ ๋ฐฉํฅ๋๋ก ์ ๋๋ก ์ค๊ณ ๋์๋์ง๋ฅผ ๊ฒ์ฆํ๋ ๋ถ์ ๋ฐฉ๋ฒ๋ก "
๐ธ The evaluation procedure

1. ์ํคํ ์ฒ ์ดํด
- ํ๋์๊ฐ์ ์ญํ ์๊ฐ : ํ๊ฐ ๋ฆฌ๋๊ฐ ์ดํด๊ด๊ณ์์๊ฒ ATAM ์ ์ค๋ช
- ๋น์ฆ๋์ค/์ํคํ ์ฒ ๋ชฉํ ์ดํด : ํ๋ก์ ํธ ๊ฒฐ์ ๊ถ์(PM ๋๋ ๊ณ ๊ฐ)๊ฐ ๋น์ฆ๋์ค ๊ด์ ์์ ์์คํ ์ ๋ฐ์ ์ค๋ช
- ์์ฑ๋ ์ํคํ ์ฒ ์๊ฐ : ์์ ์ํคํ ํธ๊ฐ ํ๊ฐํ์ ์ํคํ ์ฒ๋ฅผ ์ค๋ช
2. ์ํคํ ์ฒ ๋ถ์
- ์ํคํ ์ฒ ์ ๊ทผ๋ฐฉ๋ฒ ์๋ณ : ํ์ฌ๊น์ง ํ์ ๋ ์ํคํ ์ฒ ์ ๊ทผ๋ฒ๋ฅผ ์ ๋ฆฌ
- ํ์ง์์ฑ ์๋๋ฆฌ์ค ์์ฑ : ํ๊ฐํ๊ณผ ํ๋ก์ ํธ ๊ฒฐ์ ๊ถ์๊ฐ ๋ชจ์ฌ ํ์ง์์ฑ ์๊ตฌ์ฌํญ์ ์ฐ์ ์์ ๊ฒฐ์ (์ ํธ๋ฆฌํฐ ํธ๋ฆฌ์์ฑ)
- ์๋๋ฆฌ์ค/์ํคํ ์ฒ ์์ธ๋ถ์: ์ํคํ ์ฒ ์ ๊ทผ๋ฒ์ด ํ์ง์๊ตฌ์ฌํญ์ ์ ํฉํ์ง ๊ฒ์ฌ
3. ์ํคํ ์ฒ ๊ฒ์ฆ
- ํ์ง์์ฑ ์๋๋ฆฌ์ค ๊ฒ์ฆ: ์ ํธ๋ฆฌํฐ ํธ๋ฆฌ์ ํ์ง์์ฑ, ์๋๋ฆฌ์ค ๊ฒ์ฆ(๋ธ๋ ์ธ์คํ ๋ฐ)
>> ์ํคํ ์ฒ๊ฐ ์ดํด๊ด๊ณ์์ ์์ค์ ์ผ๋ง๋ ์ ๋ฐ์ํ๋์ง ํ๋จ
- ์ํคํ ์ฒ ์ ๊ทผ๋ฐฉ๋ฒ ๊ฒ์ฆ: ๋์ถ๋ ์๋๋ฆฌ์ค ์ค ์ฐ์ ์์๊ฐ ๋์ ์๋๋ฆฌ์ค์ ์ฐ์ถ๋ฌผ ์์ฑ
- ๊ฒ์ฆ๊ฒฐ๊ณผ ๋ฐํ์ ๋ฌธ์ํ: ์ต์ข ๋ณด๊ณ ์ ์ ๊ณต, ATAM ์ฐ์ถ๋ฌผ ์ค๋ช
[์ฅ์ ]

[์๋๋ฆฌ์ค ๋ถ์์ ์ํ 4๊ฐ์ง ์ธก๋ฉด]
1. Risk
2. Sensitivity points
3. Compromises
4. Non-risks

์๋๋ฆฌ์ค ๋ฐฉ์์ผ๋ก ํ์ง ์์ฑ ๋ง์กฑ ์ฌ๋ถ๋ฅผ ํ๋จํ์ฌ ์์ถฉ ๊ด๊ณ ๋ถ์ ๋ฐ ํ๊ฐ๋ฅผ ์งํ
" SW์ํคํ ์ฒ๊ฐ ์๊ตฌ์ฌํญ, ํนํ ๋น๊ธฐ๋ฅ์ ์๊ตฌ์ฌํญ์ ๋ง์กฑํ๋๋ก ์ค๊ณ๋์๋์ง ์ฌ๋ถ ํ๋จ"
" SW์ํคํ ์ฒ๊ฐ ๋ดํฌํ๊ณ ์๋ ์ํ ํ๋จ"
๐ธ Creating a quality tree

๐ธ Scenarios

- Trigger source: ํธ๋ฆฌ๊ฑฐ์ ๊ทผ์
- Trigger: ํน์ ์ด๋ฒคํธ
- Environment: ์์คํ ์ํ
- System artifact: ํธ๋ฆฌ๊ฑฐ๋ก ์ธํด ์ํฅ ๋ฐ๋ ๊ฒ
- Response: ํธ๋ฆฌ๊ฑฐ์ ๋ํ ๋ฆฌ์ก์
- Response measure: evaluation model for measurement
๐ธ Sample(Example scenarios)
- Application scenarios: ์์คํ ์ ๋ฐฐ๊ฒฝ์ง์ ์์ด ์ฒ์ ์ด์ฉํ ๋ ํ์ํ ๊ธฐ๋ฅ ์ฌ์ฉ์ 15๋ถ ๋ด๋ก ํ ์ ์๋๋ก
- Change scenarios: ์๋ก์ด ๊ธฐ๋ฅ ๊ฐ๋ฐ์ด 30์ผ ์ด๋ด์ ๊ฐ๋ฅํ ์ ์๋๋ก
- Stress or limit scenarios: DB์ ๊ฒฐํจ์ด ์์ ๋, ์์คํ ์ ํน์ ์ฑ๋ฅ๊ณผ capacity๋ฅผ ๊ฐ์ง๊ณ ๋์ํ ์ ์๋๋ก
- Performance scenarios: ์์คํ ์คํ ๋์์ ์ํฅ์ฑ
- Reliability scenarios: ๊ฒฐํจ ๊ฐ์ง & ์์ ์ด ๊ฐ๋ฅํ๋๋ก
๐ธ Ways of achievement for quality requirements(quality analysis)
- Creating Quality tree
- Discussing or Writing quality scenarios
- Quantitative dependency analysis
- Analyze architecture models
- Check log files
Reference
Mahbouba Gharbi & Arne Koschel & Andreas Rausch - Software Architecture FundamentalsA Study Guide for the Certified Professional for Software Architecture
์ ์ฑ ๋ด์ฉ์ ์ฑํฐ๋ณ ์ค์ํ ํฌ์ธํธ ์์ฃผ๋ก ์ ๋ฆฌํ ์๋ฃ์ ๋๋ค.
์ค์ค๋ก ๊ณต๋ถํ๊ธฐ ์ํ ์์ ์ ๋ฆฌ ๋ ธํธ์ด๋ฏ๋ก ์์ ์ ์ธ ์ฌ์ฉ ๋ชฉ์ ์ ์ ํ ์์์ ์๋ ค๋๋ฆฝ๋๋ค:)
์ด ์ํ์ ๋ํ ์ ๋ณด ๋ฐ ๊ฐ์ข ์๋ฃ๋ ์๋ ์ฌ์ดํธ์์ ํ์ธํ์ค ์ ์์ต๋๋ค. โฌโฌโฌ
'SW Architecture' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ISAQB] Chapter 6. Tools for Software Architects (0) | 2024.10.26 |
---|---|
[ISAQB] Chapter 4. Description and Communication of Software Architectures (0) | 2024.10.24 |
[ISAQB] Chapter 3. Designing Software Architectures (2) | 2024.10.23 |
[ISAQB] Chapter 2. SW Architecture fundamentals (4) | 2024.10.22 |