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

SW Architecture

[ISAQB] Chapter 4. Description and Communication of Software Architectures

728x90
๋ฐ˜์‘ํ˜•

 

 

 

 

<๋ชฉ์ฐจ>

 

 

 

๐ŸŸก 4.1 CoCoME system

 

CoCoME: Common Component Main Example

 

 

 

 

 

 

๐ŸŸก 4.2 Views and templates

 

โœ… 4.2.1 "4+1 model"

 

 

  • Context view: design the system as a black box
  • Building block view: functional and technical SW building block and their relationship
  • Runtime view: main sequence between the building blocks
  • Deployment view(= infrastructure view): mapping of the software to the physical technical infrastructure
  • Data view: detailed description of the database structures of a software system
  • "Big Picture": high-level system architecture for communication with management
  • Mask(or sequence) view: website screen sequence diagram

 

 

 

โœ… 4.2.2 UML structure diagram and UML behavior diagram

 

 

 

๐Ÿ”ธ UML structure diagram

 

     1) UML Class diagram: ํด๋ž˜์Šค์˜ ์ •์ ์ธ ๊ตฌ์กฐ ๋ฐ ํด๋ž˜์Šค๋“ค ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ ๋‹ค์ด์–ด๊ทธ๋žจ / "์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ ๋ฐ ๊ด€๊ณ„"

 

 

    2) UML Component diagram: building block์˜ ํฐ ๊ทธ๋ฆผ์„ ๋ณด์—ฌ์ฃผ๊ณ , ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ /  "์‹œ์Šคํ…œ์˜ overview"

 

 

 

 

๐Ÿ”ธ UML behavior diagram

 

    1) UML Activity diagram: ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์˜ ํ๋ฆ„์„ ๋ณด์—ฌ์ฃผ๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ /  "์‹œ์Šคํ…œ ๊ตฌ์„ฑ์š”์†Œ์˜ ํšจ๋Šฅ"

 

 

 

 

    2) UML Sequence diagram: ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ์š”์†Œ๋“ค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ /  "์ƒํ˜ธ์ž‘์šฉ"

 

 

 

 

 

 

โœ… 4.2.3 High level structure

 

๐Ÿ”ธ Template-type view description

 

1) Brief description: 'what is involved in this specific case'

 

2) Diagrams: graphical representation

 

์˜ˆ์‹œ

 

 

3) Element catalog: property, relationship, interface, behavior of elements

 

์˜ˆ์‹œ

 

 

4) Variability: changeability and flexibility

 

 

5) Background information: justification and reference and design decision

 

์˜ˆ์‹œ

 

 

 

 

โœ… 4.2.4 "4 types" of Views

 

๐Ÿ”ธ Context view

: Environment of a system and the relationships and connections with this environment

  / All relevant aspects of the interfaces be specified in the context view

๋ชจ๋“  View์˜ ๊ทผ๋ณธ์ด ๋˜๋Š” view, ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์ด black box ์ƒํƒœ๋กœ ๋‹ค๋ฅธ ๊ฒƒ๋“ค๊ณผ ์ƒํ˜ธ์ž‘์šฉ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์คŒ

"Interfaces to adjacent systems"

 

 

     [Stakeholders]

 

 

 

     [Elements]

 

  • Functional: UML component diagram / UML composite structure diagram / "black box at the center"
    • static: architecture, design, development
    • dynamic: test & operation
  • Technical: UML component diagram(using UML node) / UML package symbol / Non-UML network symbol(e.g. Visio) / "boxes and arrows"---> physical channel between system and its environment / functional context์— ๋น„ํ•ด ์ถ”๊ฐ€์ ์ธ element๋ฅผ ๊ฐ€์ง

 

 

     [Examples]

 

 

 

๐Ÿ”ธ Building block view

: show static structure of a software system & relationship between building blocks

     

     [Contents]

abstarction of source code

 

     [Stakeholder]

 

       [Elements]

 

 

     [Examples]

 

 

 

 

๐Ÿ”ธ Runtime view

: interactions between elements of the software system at runtime

"Focus on important elements of the system and examples"

 

     [Stakeholder]

 

      [Elements]

          - UML Activity, Communication, Sequence diagram

          - Traditional flow diagram

          - (pseudo) code

          -  Informal verbal sequence description

          - BPMN(Business Process Model and Notation)      

 

 

     [Examples]

     

     - UML Sequence diagram

 

 

 

      - UML Communication diagram

 

 

 

๐Ÿ”ธ Deployment/Infrastructure view

: Mapping of the software system to 'reality'

building block view์˜ ์š”์†Œ๋“ค์ด ๋ฐฐ์น˜๋จ / real software operating environment

 

     [Stakeholder]

 

     [Elements]

 

 

     [Examples]

Node, Component, Channel, DB

 

 

 

โœ… 4.2.5 Interdependencies & Hierachical refinement of architecture views

 

๐Ÿ”ธ Interdependency

 

  1. Design decisions become more comprehensible
  2. Impact of changes becomes easily recognizable
  3. Dependency between system components are easier to understand

 

 

 

 

๐Ÿ”ธ Hierachical refinement

 

context view -> decomposed -> building block view

 

 

     - Black box description

   

 

     - White box description

Design decisions: structure๊ฐ€ ์ƒ์„ฑ๋œ ์š”์ธ, alternatives๊ฐ€ ์ฑ„ํƒ๋˜์ง€ ์•Š์€ ์š”์ธ

 

 

 

 

 

 

๐ŸŸก 4.3 Technical/Cross-cutting concepts

 

โœ… 4.3.1 Technical/cross-cutting concepts: sample dimensions

 

Error handling๊ณผ Logging์€ independent ๊ด€๊ณ„

 

 

 

โœ… 4.3.2 Error handling

"how foreseeable errors can be handled during the operation of the system"

 

  1. Identification of error cases
  2. Definition of appropriate reactions to errors
  3. Minimizing the impact of errors
  4. Making diagnosis of error causes easier: ๊ธฐ๋ก ๋‚จ๊ธฐ๊ธฐ
  5. Error provention
  6. Definition of the technologies for error handling

 

 

โœ… 4.3.3 Security

 

๐Ÿ”ธ 6 types of security issues

 

  1. Authentication(์ธ์ฆ): determination of the sender's identity
  2. Authorization(ํ—ˆ๊ฐ€): granting of user rights
  3. Integrity(๋ฌด๊ฒฐ์„ฑ): recognition of manipulation of protected data
  4. Confidentiality(๊ธฐ๋ฐ€์„ฑ): not accessed by unauthorized parties
  5. Non-repudiation(๊ฑฐ์ ˆ ๋ถˆ๊ฐ€): received messages cannot be denied by the sender
  6. Availability: ์˜ˆ๊ธฐ์น˜ ์•Š๊ฑฐ๋‚˜ ๊ณ ์˜๋กœ ๋ฐœ์ƒํ•œ ์‹œ์Šคํ…œ ์˜ค์ž‘๋™์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•œ ์กฐ์น˜

 

 

 

 

 

๐ŸŸก 4.4 Architecture and implementation

 

Design -> Build -> Run

 

 

 

[Communicate aspects of software architecture]

  • Verbal communication should supplement written documentation
  • Feedback to architecture decision can be done both in writing and talking
  • There are no general rule and order between verbal and written (๋‘˜ ์ค‘ ์ˆœ์„œ ์ƒ๊ด€ ์—†์Œ & ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•ด๋„ ๋จ)

 

 

 

๐ŸŸก 4.5 Document types for Software architecture

 

โœ… 4.5.1 Central architecture description

 

core document for a software architecture / contains all information

 

<ํฌํ•จ ๋˜์–ด์•ผ ํ•  ๋‚ด์šฉ>

1. The architecture's task, objectives(vision), quality requirements and stakeholders: quality requirements help significantly with architecture decisions

2. Technical and organizational conditions and constraints

3. View, decisions, and patterns used

4. Technical concepts

5. Quality evaluations

6. Identified risks

 

---> Architecture decisions record helps to make the decision's context understood & it can be changed

 

ex) Documents, CASE/MDA/UML tools, HTML pages or wikis

 

 

 

โœ… 4.5.2 Architecture overview

 

brief, easy-to-read summary of the central architecture description

 

"no longer than 30 pages"

 

 

 

โœ… 4.5.3 Document overview

 

directory / index of all architecture-relevant documents and dependencies

 

"show the role in the project"

 

 

 

โœ… 4.5.4 Overview presentation

 

summarize the central statements and the business benefit in 10 min

 

"presents the architecture"

 

 

 

โœ… 4.5.5 Architecture wallpaper

 

complete overview of a large number of architecture aspects

 

"poster-sized prints"

 

 

 

โœ… 4.5.6 Documentation handbook

 

structure and function of the complete project documentation

 

 

 

โœ… 4.5.7 Technical Information

 

important information for project developers and testers

 

"development methods, programming guidelines, building and testing of the system"

 

 

 

โœ… 4.5.8 Documentation of external interfaces

 

interaction of the overall system with its content

 

"external interfaces become time-consuming problem area"

 

 

 

โœ… 4.5.9 Template

 

interface descriptions

 

 

 

 

 

 

 

 

๐ŸŸก 4.6 Best-practice rules for documentation

 

๐Ÿ”ธ 8 Rules

  1. Write from the readers' perspective: ์ฝ๊ธฐ ์‰ฝ๊ฒŒ
  2. Avoid unnecessary repetition: ๋ถˆํ•„์š”ํ•œ ๋ฐ˜๋ณต X
  3. Avoid ambiguity: ๋ช…ํ™•ํ•˜๊ฒŒ - use formal description language
  4. Standardized organizational structure or templates: ํŠน์ • template์— ๋งž์ถฐ์„œ
  5. Justify important decisions in writing: design decision
    • Explict, not implicit
      • make the assumption leading to decision explicit
      • make prerequisites for their decisions explicit
  6. Check the documentation's suitability for use: ์ ํ•ฉ์„ฑ ์ฒดํฌ - review process
  7. Uncluttered diagrams: avoid excessively large diagram - architecture wallpaper๋Š” ์˜ˆ์™ธ
  8. Regular updates: ์ฃผ๊ธฐ์ ์ธ ์œ ์ง€๋ณด์ˆ˜ ํ•„์š”

 

*** Architecture documentation์˜ ์ฃผ์š” ๋ชฉ์  ***
1) To support onboarding of new developers
2) To support the work of distributed teams
3) To assist in future enhacements of the projuct
4) To conform to regulatory or legal constraints (*conform: ์ง‘๋‹จ์˜ ๋‹ค๋ฅธ ๊ตฌ์„ฑ์›๋“ค๊ณผ ํ–‰๋™[์ƒ๊ฐ]์„ ๊ฐ™์ด ํ•˜๋‹ค)

 

 

 

 

 

๐ŸŸก 4.7 Alternative architecture framework

 

โœ… 4.7.1 The 4+1 framework

 

 

  • Logical view: consider the software system from a functional perspective (e.g. top-level class diagram)
  • Development view: address the system from the development perspective (e.g. UML component diagram)
  • Process view: runtime view
  • Physical view: address mapping of the software system to specific technical system (e.g. deployment or infrastructure view)

 

 

 

โœ… 4.7.2 RM-ODP

 

 

  • Enterpise viewpoint: ์‚ฌ์šฉ ๋ฒ”์œ„, ์šด์šฉ ๋ชฉ์ , rule
  • Information viewpoint: data processing ์ •์˜ (data model)
  • Computational viewpoint: ๊ธฐ๋Šฅ์  ์š”์†Œ ๋ฐ ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ˜•์‹์„ decomposition
  • Engineering viewpoint: ๋งค์ปค๋‹ˆ์ฆ˜ & function (interaction of system)
  • Technology viewpoint

 

 

 

โœ… 4.7.3 SAGA

SAGA(Standards and Architectures for e-Government Applications)

include recommendations for software architectures & orient to RM-ODP
include data and process modeling and technical requirements standards and technology

 

 

 

 

 

 

 

 

 

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
๋ฐ˜์‘ํ˜•

'SW Architecture' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€