<๋ชฉ์ฐจ>
๐ก 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]

[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]

โ 4.2.5 Interdependencies & Hierachical refinement of architecture views
๐ธ Interdependency
- Design decisions become more comprehensible
- Impact of changes becomes easily recognizable
- Dependency between system components are easier to understand

๐ธ Hierachical refinement

- Black box description


- White box description

๐ก 4.3 Technical/Cross-cutting concepts
โ 4.3.1 Technical/cross-cutting concepts: sample dimensions

โ 4.3.2 Error handling
"how foreseeable errors can be handled during the operation of the system"
- Identification of error cases
- Definition of appropriate reactions to errors
- Minimizing the impact of errors
- Making diagnosis of error causes easier: ๊ธฐ๋ก ๋จ๊ธฐ๊ธฐ
- Error provention
- Definition of the technologies for error handling
โ 4.3.3 Security
๐ธ 6 types of security issues
- Authentication(์ธ์ฆ): determination of the sender's identity
- Authorization(ํ๊ฐ): granting of user rights
- Integrity(๋ฌด๊ฒฐ์ฑ): recognition of manipulation of protected data
- Confidentiality(๊ธฐ๋ฐ์ฑ): not accessed by unauthorized parties
- Non-repudiation(๊ฑฐ์ ๋ถ๊ฐ): received messages cannot be denied by the sender
- 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
- Write from the readers' perspective: ์ฝ๊ธฐ ์ฝ๊ฒ
- Avoid unnecessary repetition: ๋ถํ์ํ ๋ฐ๋ณต X
- Avoid ambiguity: ๋ช ํํ๊ฒ - use formal description language
- Standardized organizational structure or templates: ํน์ template์ ๋ง์ถฐ์
- Justify important decisions in writing: design decision
- Explict, not implicit
- make the assumption leading to decision explicit
- make prerequisites for their decisions explicit
- Explict, not implicit
- Check the documentation's suitability for use: ์ ํฉ์ฑ ์ฒดํฌ - review process
- Uncluttered diagrams: avoid excessively large diagram - architecture wallpaper๋ ์์ธ
- 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
์ ์ฑ ๋ด์ฉ์ ์ฑํฐ๋ณ ์ค์ํ ํฌ์ธํธ ์์ฃผ๋ก ์ ๋ฆฌํ ์๋ฃ์ ๋๋ค.
์ค์ค๋ก ๊ณต๋ถํ๊ธฐ ์ํ ์์ ์ ๋ฆฌ ๋ ธํธ์ด๋ฏ๋ก ์์ ์ ์ธ ์ฌ์ฉ ๋ชฉ์ ์ ์ ํ ์์์ ์๋ ค๋๋ฆฝ๋๋ค:)
์ด ์ํ์ ๋ํ ์ ๋ณด ๋ฐ ๊ฐ์ข ์๋ฃ๋ ์๋ ์ฌ์ดํธ์์ ํ์ธํ์ค ์ ์์ต๋๋ค. โฌโฌโฌ
'SW Architecture' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ISAQB] Chapter 6. Tools for Software Architects (0) | 2024.10.26 |
---|---|
[ISAQB] Chapter 5. Software architecture and quality (1) | 2024.10.25 |
[ISAQB] Chapter 3. Designing Software Architectures (2) | 2024.10.23 |
[ISAQB] Chapter 2. SW Architecture fundamentals (4) | 2024.10.22 |