๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

SW Architecture

[ISAQB] Chapter 5. Software architecture and quality

728x90
๋ฐ˜์‘ํ˜•

 

<๋ชฉ์ฐจ>

 

 

 

๐ŸŸก 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

 

 

 

  1. Functional suitability: ๊ธฐ๋Šฅ ์ ํ•ฉ์„ฑ, ์™„์ „์„ฑ (์ œ์•ˆ๋œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ๋ถ„ํžˆ ๋งŒ์กฑํ•˜์˜€๋Š”๊ฐ€?)
  2. Reliability: ์‹ ๋ขฐ์„ฑ - ํšŒ๋ณต์„ฑ, maturity, fault tolerance (์ •์˜๋œ ์กฐ๊ฑด ์•„๋ž˜์˜ ์„ฑ๋Šฅ์„ ์œ ์ง€ ํ•˜๋Š”๊ฐ€?)
  3. Usability: ์‚ฌ์šฉ์„ฑ - ์ธ์‹์„ฑ, ํ•™์Šต์„ฑ, ์ ‘๊ทผ์„ฑ (ํ•™์Šตํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด๊ฐ€?)
  4. Performance efficiency: ์„ฑ๋Šฅ ํšจ์œจ์„ฑ - ์‹œ๊ฐ„ ํšจ์œจ, ๋ฆฌ์†Œ์Šค utilization, capacity (์–ผ๋งˆ๋‚˜ ๊ฒฝ์ œ์ ์ธ๊ฐ€?)
  5. Security: ๋ณด์•ˆ์„ฑ - ๊ธฐ๋ฐ€์„ฑ, ๋ฌด๊ฒฐ์„ฑ, ์ธ์ฆ, ์ธ๊ฐ€ (๋ฐ์ดํ„ฐ ๋ณดํ˜ธ ์„ฑ๋Šฅ์ด ์–ผ๋งˆ๋‚˜ ์ข‹์€๊ฐ€? ๊ถŒํ•œ์ด ์—†๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ๊ฒƒ์„ ํ—ˆ๋ฝํ•˜์ง€ ์•Š๊ณ  ์žˆ๋Š”๊ฐ€?)
  6. Compatibility: ํ˜ธํ™˜์„ฑ (๊ฐ™์€ ์‹œ์Šคํ…œ ํ™˜๊ฒฝ ์•ˆ์—์„œ ์ •๋ณด ๊ตํ™˜์ด ์›ํ™œํ•œ๊ฐ€?)
  7. Maintainability: ์œ ์ง€๋ณด์ˆ˜์„ฑ - ๋ชจ๋“ˆํ™”, ๋ณ€๊ฒฝ ์šฉ์ด, ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ, ๋ถ„์„ ๊ฐ€๋Šฅ, ์žฌ์‚ฌ์šฉ์„ฑ
  8. Portability: ์ด์‹์„ฑ - ์ ์šฉ์„ฑ, ์„ค์น˜ ๊ฐ€๋Šฅ (์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—์„œ๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ๊ฐ€?)
  9. Scalability: adaptability to an increasing volume of requirements
  10. 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

 

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

Quantitative methods for quality assurance of architectures

 

Static analysis tool can be configured to evaluate the compliance of the code

"architecture standards"

 

 

[Architectural problem area as an aspect of quantitativeness]

  1. high coupling of components
  2. clusters of erros in certain building block of the system

 

 

 

๐Ÿ”ธ Metrics

 

  1. Requirements: ์š”๊ตฌ์‚ฌํ•ญ์˜ ๊ฐฏ์ˆ˜
  2. Source code: ์†Œ์Šค์ฝ”๋“œ ๋ผ์ธ ์ˆ˜ / ์˜์กด๋„ / ๋ณต์žก์„ฑ / ๊ฐ ํด๋ž˜์Šค ๋ณ„ ๋ฉ”์†Œ๋“œ์˜ ๊ฐฏ์ˆ˜
  3. Software production process: implemented/tested feature์˜ ์ˆ˜ / meeting ์‹œ๊ฐ„ / manager, tester, developer์˜ ๋น„์œจ / ์ƒˆ๋กœ ์ถ”๊ฐ€ ๋  ์†Œ์Šค ์ฝ”๋“œ ๋ผ์ธ ์ˆ˜ / ์‚ฐ์ •๋œ ๊ณต์ˆ˜
  4. Errors: ์—๋Ÿฌ ์ˆ˜์ •์‹œ ์†Œ์š” ์‹œ๊ฐ„ / ์—๋Ÿฌ์˜ ๊ฐฏ์ˆ˜
  5. Testing: test case์˜ ๊ฐฏ์ˆ˜ / ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€(๊ฐ ์š”๊ตฌ์‚ฌํ•ญ ๋‹น ๋‚˜์˜ค๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ˆ˜)
  6. Design: dependency / ์ถ”์ƒ๋„ / ๋ถˆ์•ˆ์ •์„ฑ
  7. 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 ๋Œ€์•ˆ์ด ๋  ์ˆ˜ ์žˆ์Œ

 

  1. Demonstration prototype: ์ตœ์ข… product์˜ ๋ชจ์Šต ํ‘œํ˜„
  2. "real" prototype: ์‹ค์ œ ๊ฐœ๋ฐœ๊ณผ ๋ณ‘ํ–‰ ์ž‘์—…์„ ํ†ตํ•ด ํ‘œํ˜„ / analysis purpose
  3. Laboratory sample: ์‹คํ—˜์ ์ธ example
  4. 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

Analysis๊ฐ€ ๊ฐ€์žฅ ์ค‘์‹ฌ์ด ๋œ๋‹ค!!!

 

 

์‹œ๋‚˜๋ฆฌ์˜ค ๋ฐฉ์‹์œผ๋กœ ํ’ˆ์งˆ ์†์„ฑ ๋งŒ์กฑ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜์—ฌ ์ƒ์ถฉ ๊ด€๊ณ„ ๋ถ„์„ ๋ฐ ํ‰๊ฐ€๋ฅผ ์ง„ํ–‰

" SW์•„ํ‚คํ…์ฒ˜๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ, ํŠนํžˆ ๋น„๊ธฐ๋Šฅ์  ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€ ํŒ๋‹จ"

" SW์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋‚ดํฌํ•˜๊ณ  ์žˆ๋Š” ์œ„ํ—˜ ํŒ๋‹จ"

 

 

 

๐Ÿ”ธ Creating a quality tree

 

break down quality RQ

 

 

 

๐Ÿ”ธ 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)

 

  1. Creating Quality tree
  2. Discussing or Writing quality scenarios
  3. Quantitative dependency analysis
  4. Analyze architecture models
  5. Check log files

 

 

 

 

Reference

๋”๋ณด๊ธฐ

Mahbouba Gharbi & Arne Koschel & Andreas Rausch - Software Architecture FundamentalsA Study Guide for the Certified Professional for Software Architecture

 

์œ„ ์ฑ… ๋‚ด์šฉ์„ ์ฑ•ํ„ฐ๋ณ„ ์ค‘์š”ํ•œ ํฌ์ธํŠธ ์œ„์ฃผ๋กœ ์ •๋ฆฌํ•œ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค.

์Šค์Šค๋กœ ๊ณต๋ถ€ํ•˜๊ธฐ ์œ„ํ•œ ์š”์ ์ •๋ฆฌ ๋…ธํŠธ์ด๋ฏ€๋กœ ์ƒ์—…์ ์ธ ์‚ฌ์šฉ ๋ชฉ์ ์€ ์ „ํ˜€ ์—†์Œ์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค:)

 

์ด ์‹œํ—˜์— ๋Œ€ํ•œ ์ •๋ณด ๋ฐ ๊ฐ์ข… ์ž๋ฃŒ๋Š” ์•„๋ž˜ ์‚ฌ์ดํŠธ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โฌ‡โฌ‡โฌ‡

https://www.isaqb.org/downloads/

https://isqi.org/en/

728x90
๋ฐ˜์‘ํ˜•