54

Click here to load reader

StarUML NS Guide - Architectural design

  • Upload
    -

  • View
    386

  • Download
    10

Embed Size (px)

DESCRIPTION

StarUML NS Guide - Architectural design

Citation preview

Page 1: StarUML NS Guide - Architectural design

Sections

Architectural Design

Chap-ter 6.

1. Architectural Design Overview

2. Software Architecture

3. Describing Architecture

4. Software Architecture Document수정

Page 2: StarUML NS Guide - Architectural design

Lecture Objectives

Architectural Design Chap-ter 6

소프트웨어 아키텍처의 기본 개념 이해 아키텍처 표현을 위한 UML 요소의 이해 및 활용 시스템의 효과적인 아키텍처를 정의 아키텍처의 문서화

Page 3: StarUML NS Guide - Architectural design

Architectural Design Chap-ter 6

Architectural Design Overview

Section 1.

Page 4: StarUML NS Guide - Architectural design

Architectural Design Overview

Architectural Design Chap-ter 6

Page 5: StarUML NS Guide - Architectural design

Architectural Design Overview

Architectural Design Chap-ter 6

Page 6: StarUML NS Guide - Architectural design

Architectural Design Chap-ter 6

Software Architecture

Section 2.

Page 7: StarUML NS Guide - Architectural design

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

Page 8: StarUML NS Guide - Architectural design

Definition of Software Architecture

Architectural Design Chap-ter 6

소프트웨어 컴포넌트와 그것들의 관계로

표현되어지는 시스템의 거시적 구조

소프트웨어 시스템의 조직에 관한 중대한 결정

Page 9: StarUML NS Guide - Architectural design

Definition of Software Architecture (cont.)

Architectural Design Chap-ter 6

소프트웨어 아키텍처는• 컴포넌트 (Components) 와 연결자 (Connectors) 로 구성• 시스템 수준의 주요 속성을 나타냄• 아키텍처상 중요한 (Architecturally siginificant) 요소들만 반영 (Not

all design!)

Page 10: StarUML NS Guide - Architectural design

Architectural Factors

Architectural Design Chap-ter 6

Page 11: StarUML NS Guide - Architectural design

Why Is Architecture Important?

Architectural Design Chap-ter 6

Communication Vehicle Early Design Decision Architectural Reuse

Page 12: StarUML NS Guide - Architectural design

Architectural Patterns

Architectural Design Chap-ter 6

아키텍처의 종류를 묘사 실제 시스템에서 반복적으로 발견됨 시스템 설계의 중요 결정을 반영함 재사용 가능한 속성을 지님

Page 13: StarUML NS Guide - Architectural design

Architectural Patterns (cont.)

Architectural Design Chap-ter 6

주요 아키텍처 패턴• Pipes and filters• Layers• Blackboard

Page 14: StarUML NS Guide - Architectural design

Architectural Pattern: Pipes and filters

Architectural Design Chap-ter 6

파이프에 의해 전달되고 필터에 의해 처리되는 순차적 처리 프로세스를 묘사하는 패턴

예• Unix pipe, Compiler 등

효과• Reusability• Performance

Page 15: StarUML NS Guide - Architectural design

Architectural Pattern: Layers

Architectural Design Chap-ter 6

시스템을 몇 개의 수평적 계층으로 분할하는 패턴 예

• OSI 7-layers, GUI Frameworks, Multi-tier systems

효과• Reusability• Portability• Maintainability

Page 16: StarUML NS Guide - Architectural design

Architectural Pattern: Blackboard

Architectural Design Chap-ter 6

칠판처럼 공유된 데이터 저장소를 두고 주위의 여러 컴포넌트들이 데이터를 변화 / 조작하는 형태의 패턴

예• 공동 작업 지원 시스템 등

효과• Scalability• Integrability

Page 17: StarUML NS Guide - Architectural design

Architectural Views

Architectural Design Chap-ter 6

사물을 한쪽 면만을 봐서는 정확한 구조를 알 수 없음 . 다양한 관점에서 볼 때에 사물을 이해할 수 있음 . 소프트웨어 시스템의 아키텍처도 다양한 관점이 필요

Page 18: StarUML NS Guide - Architectural design

Architectural Views (cont.)

Architectural Design Chap-ter 6

What Is Architectural View?• 특정 관점 (perspective) 에서의 시스템에 대한 간략한 기술 .• 특정 이해관계자 (stakeholder) 의 의도를 반영 .• 아키텍처상 중요한 내용들만을 포함한다 .• 소프트웨어 시스템의 아키텍처는 여러 개의 아키텍처 관점

(Architectural View) 들로 구성됨 .

Page 19: StarUML NS Guide - Architectural design

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• …

Page 20: StarUML NS Guide - Architectural design

4+1 View Model of Architecture

Architectural Design Chap-ter 6

Page 21: StarUML NS Guide - Architectural design

4+1 View Model of Architecture (cont.)

Architectural Design Chap-ter 6

Logical View• 설계 모델상의 중요한 부분을 표현• 분석가 (Analyst)/ 설계자 (Designer) 의 관점을 반영• 주요 구성 요소

• Subsystems, Layers, Packages, Classes, …• Associations, Generalizations, Dependencies, …

Page 22: StarUML NS Guide - Architectural design

4+1 View Model of Architecture (cont.)

Architectural Design Chap-ter 6

Implementation View• 구현 모델의 중요한 부분을 표현• 프로그래머 (Programmer) 의 관점을 반영• 주요 구성 요소

• Modules, Software Components, Files, …• Dependencies, …

Page 23: StarUML NS Guide - Architectural design

4+1 View Model of Architecture (cont.)

Architectural Design Chap-ter 6

Process View• 설계상 중요한 프로세스 / 쓰레드의

부분을 표현• 시스템 통합자 (System Integrator) 의 관점을 반영• 주요 구성 요소

• Processes, Threads, …• Communication Paths and Mechanisms, …

Page 24: StarUML NS Guide - Architectural design

4+1 View Model of Architecture (cont.)

Architectural Design Chap-ter 6

Deployment View• 배치모델의 중요한 부분을 표현• 시스템 엔지니어 (System Engineer) 의 관점을 반영• 주요 구성 요소

• Computing nodes, Processors, Hardware devices, …• Communication lines, …

Page 25: StarUML NS Guide - Architectural design

4+1 View Model of Architecture (cont.)

Architectural Design Chap-ter 6

Use Case View• 유스케이스 모델의 중요한 부분을 표현• 최종 사용자 (End User) 의 관점을 반영• 주요 구성 요소

• Use Cases, Actors, …• Associations, …

Page 26: StarUML NS Guide - Architectural design

Architectural Design Chap-ter 6

Describing Architecture

Section 3.

Page 27: StarUML NS Guide - Architectural design

Contents

Architectural Design Chap-ter 6

Activity Overview Concepts and Notations Steps Example Exercise

Page 28: StarUML NS Guide - Architectural design

Activity Overview

Architectural Design Chap-ter 6

Page 29: StarUML NS Guide - Architectural design

Concepts and Notations

Architectural Design Chap-ter 6

Implementation Diagrams Concepts• Component Diagram• Deployment Diagram• Interface• Dependency• Realization• Component• Node

Active Class

Page 30: StarUML NS Guide - Architectural design

Component Diagram

Architectural Design Chap-ter 6

시스템의 물리적 관점을 표현하는 다이어그램 중 하나 시스템을 구성하는 컴포넌트들의 구성과 의존관계를 나타낸다 .

Page 31: StarUML NS Guide - Architectural design

Deployment Diagram

Architectural Design Chap-ter 6

시스템의 물리적 관점을 표현하는 다이어그램 중 하나 컴퓨팅 능력을 갖는 노드와 그 노드에 존재하는 컴포넌트

등을 표현한다 .

Page 32: StarUML NS Guide - Architectural design

Interface

Architectural Design Chap-ter 6

클래스나 컴포넌트 등의 서비스를 명세화하기 위해 사용하는 연산의 집합

Page 33: StarUML NS Guide - Architectural design

Dependency

Architectural Design Chap-ter 6

요소들 간의 포괄적인 의존 관계• 패키지들 사이의 의존• 클래스들 사이의 의존• 컴포넌트 인터페이스에의 의존• 기타 요소들 간의 의존

Page 34: StarUML NS Guide - Architectural design

Realization

Architectural Design Chap-ter 6

명세 요소와 구현 요소와의 관계 Realization 의 사용

• Collaboration• Class• Subsystem• Component

Page 35: StarUML NS Guide - Architectural design

Component

Architectural Design Chap-ter 6

물리적 요소를 표현 교체 가능한 시스템의 한 부분

Page 36: StarUML NS Guide - Architectural design

Component (cont.)

Architectural Design Chap-ter 6

컴포넌트로 주로 표현되는 개념• 소프트웨어 컴포넌트 (software component)• 실행파일 (executable)• 라이브러리 (library)• 파일 (file)• 문서 (document)

Page 37: StarUML NS Guide - Architectural design

Component (cont.)

Architectural Design Chap-ter 6

인터페이스 (Interface)• 컴포넌트는 하나 이상의 인터페이스 실체화 가능

Page 38: StarUML NS Guide - Architectural design

Component (cont.)

Architectural Design Chap-ter 6

의존관계 (Dependency)• 컴포넌트 자체에의 의존• 컴포넌트가 제공하는 인터페이스에 의존

Page 39: StarUML NS Guide - Architectural design

Component (cont.)

Architectural Design Chap-ter 6

컴포넌트에 상주하는 요소 (Resident Elements)• 컴포넌트에 포함되어진 요소를 표현

Page 40: StarUML NS Guide - Architectural design

Component (cont.)

Architectural Design Chap-ter 6

컴포넌트 인스턴스 (Component Instance)• 컴포넌트의 실제 사례 (instance)

Page 41: StarUML NS Guide - Architectural design

Node

Architectural Design Chap-ter 6

메모리와 자체 처리능력을 갖는 전산자원 소프트웨어 컴포넌트가 배치될 수 있는 하드웨어 자원

Page 42: StarUML NS Guide - Architectural design

Node (cont.)

Architectural Design Chap-ter 6

연관관계 (Association)• 노드와 노드는 연관으로 연결됨

Page 43: StarUML NS Guide - Architectural design

Node (cont.)

Architectural Design Chap-ter 6

배치된 컴포넌트 (Deployed Components)• 노드에 배치된 컴포넌트를 표현

Page 44: StarUML NS Guide - Architectural design

Node (cont.)

Architectural Design Chap-ter 6

노드 인스턴스 (Node Instance)• 노드의 실제 사례 (instance)

Page 45: StarUML NS Guide - Architectural design

Active Class

Architectural Design Chap-ter 6

독립된 제어흐름을 가지는 클래스 테두리를 굵게 표현 프로세스 (Process) 나 쓰레드 (Thread) 등을 표현

Page 46: StarUML NS Guide - Architectural design

Steps (Describing Architecture)

Architectural Design Chap-ter 6

1. 아키텍처상 중요한 유스케이스 / 품질속성 선택2. 아키텍처 뷰의 종류들을 결정3. 각각의 아키텍처 뷰를 정의4. 시나리오 (Scenario) 및 합리화 (Rationale) 제시

Page 47: StarUML NS Guide - Architectural design

Example

Architectural Design Chap-ter 6

Page 48: StarUML NS Guide - Architectural design

Exercise

Architectural Design Chap-ter 6

Develop a software architecture of your system ac-cording to 4+1 view model of architecture.

Page 49: StarUML NS Guide - Architectural design

Architectural Design Chap-ter 6

Software Architecture Document

Section 4.

Page 50: StarUML NS Guide - Architectural design

Contents

Architectural Design Chap-ter 6

SAD Overview SAD Contents Exercise

Page 51: StarUML NS Guide - Architectural design

SAD Overview

Architectural Design Chap-ter 6

SAD (Software Architecture Document) 소프트웨어 아키텍처를 기술한 문서 IEEE Std 1471

Page 52: StarUML NS Guide - Architectural design

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

Page 53: StarUML NS Guide - Architectural design

Exercise

Architectural Design Chap-ter 6

Write a SAD of your system.

Page 54: StarUML NS Guide - Architectural design

Lecture Summary

Architectural Design Chap-ter 6

소프트웨어 아키텍처는 컴포넌트들과 그 관계로 표현되어지는 거시적 구조로써 중요한 설계 결정을 반영한다 .

소프트웨어 아키텍처는 다양한 관점에서 기술되어 진다 . 소프트웨어 아키텍처는 소프트웨어 아키텍처 문서 (SAD)

로 작성되어진다 .