9. Architectural Design
Definition of Software Architecture (cont.)
소프트웨어 아키텍처는
• 컴포넌트(Components)와 연결자(Connectors)로 구성
• 시스템 수준의 주요 속성을 나타냄
• 아키텍처상 중요한(Architecturally siginificant) 요소들만 반영 (Not all
design!)
18. Architectural Design
Architectural Views (cont.)
What Is Architectural View?
•
•
•
•
특정 관점(perspective)에서의 시스템에 대한 간략한 기술.
특정 이해관계자(stakeholder)의 의도를 반영.
아키텍처상 중요한 내용들만을 포함한다.
소프트웨어 시스템의 아키텍처는 여러 개의 아키텍처 관점(Architectural
View)들로 구성됨.
19. Architectural Design
Architectural Views (cont.)
Kinds of Architectural Views
•
•
•
•
•
•
•
•
•
Use Case View
Logical View
Implementation View
Deployment View
Process View
Data View
Security View
Code View
…
21. Architectural Design
4+1 View Model of Architecture (cont.)
Logical View
• 설계 모델상의 중요한 부분을 표현
• 분석가(Analyst)/설계자(Designer)의 관점을 반영
• 주요 구성 요소
• Subsystems, Layers, Packages, Classes, …
• Associations, Generalizations, Dependencies, …
22. Architectural Design
4+1 View Model of Architecture (cont.)
Implementation View
• 구현 모델의 중요한 부분을 표현
• 프로그래머(Programmer)의 관점을 반영
• 주요 구성 요소
• Modules, Software Components, Files, …
• Dependencies, …
23. Architectural Design
4+1 View Model of Architecture (cont.)
Process View
• 설계상 중요한 프로세스/쓰레드의
부분을 표현
• 시스템 통합자(System Integrator)의 관점을 반영
• 주요 구성 요소
• Processes, Threads, …
• Communication Paths and Mechanisms, …
24. Architectural Design
4+1 View Model of Architecture (cont.)
Deployment View
• 배치모델의 중요한 부분을 표현
• 시스템 엔지니어(System Engineer)의 관점을 반영
• 주요 구성 요소
• Computing nodes, Processors, Hardware devices, …
• Communication lines, …
25. Architectural Design
4+1 View Model of Architecture (cont.)
Use Case View
• 유스케이스 모델의 중요한 부분을 표현
• 최종 사용자(End User)의 관점을 반영
• 주요 구성 요소
• Use Cases, Actors, …
• Associations, …
46. Architectural Design
Steps (Describing Architecture)
1.
2.
3.
4.
아키텍처상 중요한 유스케이스/품질속성 선택
아키텍처 뷰의 종류들을 결정
각각의 아키텍처 뷰를 정의
시나리오(Scenario) 및 합리화(Rationale) 제시
54. Architectural Design
Lecture Summary
소프트웨어 아키텍처는 컴포넌트들과 그 관계로 표현되어
지는 거시적 구조로써 중요한 설계 결정을 반영한다.
소프트웨어 아키텍처는 다양한 관점에서 기술되어 진다.
소프트웨어 아키텍처는 소프트웨어 아키텍처 문서(SAD)로
작성되어진다.