Sections
Architectural Design
Chap-ter 6.
1. Architectural Design Overview
2. Software Architecture
3. Describing Architecture
4. Software Architecture Document수정
Lecture Objectives
Architectural Design Chap-ter 6
소프트웨어 아키텍처의 기본 개념 이해 아키텍처 표현을 위한 UML 요소의 이해 및 활용 시스템의 효과적인 아키텍처를 정의 아키텍처의 문서화
Architectural Design Chap-ter 6
Architectural Design Overview
Section 1.
Architectural Design Overview
Architectural Design Chap-ter 6
Architectural Design Overview
Architectural Design Chap-ter 6
Architectural Design Chap-ter 6
Software Architecture
Section 2.
Contents
Architectural Design Chap-ter 6
Definition of Software Architecture Architectural Factors Why Is Architecture Important? Architectural Patterns Architectural Views 4+1 View Model of Architecture
Definition of Software Architecture
Architectural Design Chap-ter 6
소프트웨어 컴포넌트와 그것들의 관계로
표현되어지는 시스템의 거시적 구조
소프트웨어 시스템의 조직에 관한 중대한 결정
Definition of Software Architecture (cont.)
Architectural Design Chap-ter 6
소프트웨어 아키텍처는• 컴포넌트 (Components) 와 연결자 (Connectors) 로 구성• 시스템 수준의 주요 속성을 나타냄• 아키텍처상 중요한 (Architecturally siginificant) 요소들만 반영 (Not
all design!)
Architectural Factors
Architectural Design Chap-ter 6
Why Is Architecture Important?
Architectural Design Chap-ter 6
Communication Vehicle Early Design Decision Architectural Reuse
Architectural Patterns
Architectural Design Chap-ter 6
아키텍처의 종류를 묘사 실제 시스템에서 반복적으로 발견됨 시스템 설계의 중요 결정을 반영함 재사용 가능한 속성을 지님
Architectural Patterns (cont.)
Architectural Design Chap-ter 6
주요 아키텍처 패턴• Pipes and filters• Layers• Blackboard
Architectural Pattern: Pipes and filters
Architectural Design Chap-ter 6
파이프에 의해 전달되고 필터에 의해 처리되는 순차적 처리 프로세스를 묘사하는 패턴
예• Unix pipe, Compiler 등
효과• Reusability• Performance
Architectural Pattern: Layers
Architectural Design Chap-ter 6
시스템을 몇 개의 수평적 계층으로 분할하는 패턴 예
• OSI 7-layers, GUI Frameworks, Multi-tier systems
효과• Reusability• Portability• Maintainability
Architectural Pattern: Blackboard
Architectural Design Chap-ter 6
칠판처럼 공유된 데이터 저장소를 두고 주위의 여러 컴포넌트들이 데이터를 변화 / 조작하는 형태의 패턴
예• 공동 작업 지원 시스템 등
효과• Scalability• Integrability
Architectural Views
Architectural Design Chap-ter 6
사물을 한쪽 면만을 봐서는 정확한 구조를 알 수 없음 . 다양한 관점에서 볼 때에 사물을 이해할 수 있음 . 소프트웨어 시스템의 아키텍처도 다양한 관점이 필요
Architectural Views (cont.)
Architectural Design Chap-ter 6
What Is Architectural View?• 특정 관점 (perspective) 에서의 시스템에 대한 간략한 기술 .• 특정 이해관계자 (stakeholder) 의 의도를 반영 .• 아키텍처상 중요한 내용들만을 포함한다 .• 소프트웨어 시스템의 아키텍처는 여러 개의 아키텍처 관점
(Architectural View) 들로 구성됨 .
Architectural Views (cont.)
Architectural Design Chap-ter 6
Kinds of Architectural Views• Use Case View• Logical View• Implementation View• Deployment View• Process View• Data View• Security View• Code View• …
4+1 View Model of Architecture
Architectural Design Chap-ter 6
4+1 View Model of Architecture (cont.)
Architectural Design Chap-ter 6
Logical View• 설계 모델상의 중요한 부분을 표현• 분석가 (Analyst)/ 설계자 (Designer) 의 관점을 반영• 주요 구성 요소
• Subsystems, Layers, Packages, Classes, …• Associations, Generalizations, Dependencies, …
4+1 View Model of Architecture (cont.)
Architectural Design Chap-ter 6
Implementation View• 구현 모델의 중요한 부분을 표현• 프로그래머 (Programmer) 의 관점을 반영• 주요 구성 요소
• Modules, Software Components, Files, …• Dependencies, …
4+1 View Model of Architecture (cont.)
Architectural Design Chap-ter 6
Process View• 설계상 중요한 프로세스 / 쓰레드의
부분을 표현• 시스템 통합자 (System Integrator) 의 관점을 반영• 주요 구성 요소
• Processes, Threads, …• Communication Paths and Mechanisms, …
4+1 View Model of Architecture (cont.)
Architectural Design Chap-ter 6
Deployment View• 배치모델의 중요한 부분을 표현• 시스템 엔지니어 (System Engineer) 의 관점을 반영• 주요 구성 요소
• Computing nodes, Processors, Hardware devices, …• Communication lines, …
4+1 View Model of Architecture (cont.)
Architectural Design Chap-ter 6
Use Case View• 유스케이스 모델의 중요한 부분을 표현• 최종 사용자 (End User) 의 관점을 반영• 주요 구성 요소
• Use Cases, Actors, …• Associations, …
Architectural Design Chap-ter 6
Describing Architecture
Section 3.
Contents
Architectural Design Chap-ter 6
Activity Overview Concepts and Notations Steps Example Exercise
Activity Overview
Architectural Design Chap-ter 6
Concepts and Notations
Architectural Design Chap-ter 6
Implementation Diagrams Concepts• Component Diagram• Deployment Diagram• Interface• Dependency• Realization• Component• Node
Active Class
Component Diagram
Architectural Design Chap-ter 6
시스템의 물리적 관점을 표현하는 다이어그램 중 하나 시스템을 구성하는 컴포넌트들의 구성과 의존관계를 나타낸다 .
Deployment Diagram
Architectural Design Chap-ter 6
시스템의 물리적 관점을 표현하는 다이어그램 중 하나 컴퓨팅 능력을 갖는 노드와 그 노드에 존재하는 컴포넌트
등을 표현한다 .
Interface
Architectural Design Chap-ter 6
클래스나 컴포넌트 등의 서비스를 명세화하기 위해 사용하는 연산의 집합
Dependency
Architectural Design Chap-ter 6
요소들 간의 포괄적인 의존 관계• 패키지들 사이의 의존• 클래스들 사이의 의존• 컴포넌트 인터페이스에의 의존• 기타 요소들 간의 의존
Realization
Architectural Design Chap-ter 6
명세 요소와 구현 요소와의 관계 Realization 의 사용
• Collaboration• Class• Subsystem• Component
Component
Architectural Design Chap-ter 6
물리적 요소를 표현 교체 가능한 시스템의 한 부분
Component (cont.)
Architectural Design Chap-ter 6
컴포넌트로 주로 표현되는 개념• 소프트웨어 컴포넌트 (software component)• 실행파일 (executable)• 라이브러리 (library)• 파일 (file)• 문서 (document)
Component (cont.)
Architectural Design Chap-ter 6
인터페이스 (Interface)• 컴포넌트는 하나 이상의 인터페이스 실체화 가능
Component (cont.)
Architectural Design Chap-ter 6
의존관계 (Dependency)• 컴포넌트 자체에의 의존• 컴포넌트가 제공하는 인터페이스에 의존
Component (cont.)
Architectural Design Chap-ter 6
컴포넌트에 상주하는 요소 (Resident Elements)• 컴포넌트에 포함되어진 요소를 표현
Component (cont.)
Architectural Design Chap-ter 6
컴포넌트 인스턴스 (Component Instance)• 컴포넌트의 실제 사례 (instance)
Node
Architectural Design Chap-ter 6
메모리와 자체 처리능력을 갖는 전산자원 소프트웨어 컴포넌트가 배치될 수 있는 하드웨어 자원
Node (cont.)
Architectural Design Chap-ter 6
연관관계 (Association)• 노드와 노드는 연관으로 연결됨
Node (cont.)
Architectural Design Chap-ter 6
배치된 컴포넌트 (Deployed Components)• 노드에 배치된 컴포넌트를 표현
Node (cont.)
Architectural Design Chap-ter 6
노드 인스턴스 (Node Instance)• 노드의 실제 사례 (instance)
Active Class
Architectural Design Chap-ter 6
독립된 제어흐름을 가지는 클래스 테두리를 굵게 표현 프로세스 (Process) 나 쓰레드 (Thread) 등을 표현
Steps (Describing Architecture)
Architectural Design Chap-ter 6
1. 아키텍처상 중요한 유스케이스 / 품질속성 선택2. 아키텍처 뷰의 종류들을 결정3. 각각의 아키텍처 뷰를 정의4. 시나리오 (Scenario) 및 합리화 (Rationale) 제시
Example
Architectural Design Chap-ter 6
Exercise
Architectural Design Chap-ter 6
Develop a software architecture of your system ac-cording to 4+1 view model of architecture.
Architectural Design Chap-ter 6
Software Architecture Document
Section 4.
Contents
Architectural Design Chap-ter 6
SAD Overview SAD Contents Exercise
SAD Overview
Architectural Design Chap-ter 6
SAD (Software Architecture Document) 소프트웨어 아키텍처를 기술한 문서 IEEE Std 1471
SAD Contents
Architectural Design Chap-ter 6
Table of Contents• Introduction• Architectural Representation• Architectural Goals and Constraints• Architectural Views
• Use Case View• Logical View• Implementation View• Process View• Deployment View
• Rationale
Exercise
Architectural Design Chap-ter 6
Write a SAD of your system.
Lecture Summary
Architectural Design Chap-ter 6
소프트웨어 아키텍처는 컴포넌트들과 그 관계로 표현되어지는 거시적 구조로써 중요한 설계 결정을 반영한다 .
소프트웨어 아키텍처는 다양한 관점에서 기술되어 진다 . 소프트웨어 아키텍처는 소프트웨어 아키텍처 문서 (SAD)
로 작성되어진다 .
Top Related