관리 메뉴

사과하는 제라스

[소프트웨어 분석 및 설계] 10. SW Architecture Design 본문

대학 전공 공부/소프트웨어 분석 및 설계

[소프트웨어 분석 및 설계] 10. SW Architecture Design

Xerath(제라스) 2022. 12. 15. 03:04
728x90
반응형

다음 4가지 순서로 배울 것임.

 

1) SW Architecture 소개 

2) Architecture Styles - 디자인 패턴 같은 거를 배움, Reusable Design임.

3) Architecture Viewpoints

4) Architecture Design for NFR - NFR이란? quality requirement(ex. security, reliability, efficiency 등)

 

SW Architecture?

: Architecture는 그냥 Structure(구조물)이다. SW Architecture는 요소(Component), 관계(Inter-component Relationship), 원칙(아키텍쳐가 어떤 컴포넌트와 그 관계들로 구성되어져 있는지)들을 지닌 시스템의 기본 개념 혹은 특징임.

SW Architecture의 요소, 관계, 원칙

 

OOAD(기능적 요구사항에 대해서 효과적으로 설계할 수 있는 기법) -> only Functional Requirement만 만족

SW Architecture -> Functional Requirement + Non-Functional Requirement 모두 만족

 

SW Acrhitecture Description(AD)

: SW Architecture를 설계한 문서

- 비기능적 요구사항까지 만족하게 설계되어 작성됨.

- AD는 시스템 전체에 대한 구조적 디자인이라 문서가 매우 길다.

- 구성요소:

1) Skeleton Architecture

-> Architecture Styles 지식을 알아야 함.

2) Design for Views

-> Architecture Viewpoints(각 View에 대한 가이드라인) 지식을 알아야 함.

3)Design for NFRs

-> NFR를 만족시키는 Architecture Tactics(기법) 

- 30+- Architecture Styles

- 7 Viewpoints

- SW Quality Model, Tactics

 

Architecture Design을 하기 위해선 우리가 알고 있는 기술 뿐만 아니라 이를 적용해서 설계할 수 있는 방법론이 필요함.

 

Architecture Styles

: 설계 명세로, 자주 발생하는 SW 구조적 문제들을 해결하기 위해 적용됨.

얘네들은 40여년 동안 개발되고 증명되어와서 신뢰해도 됨.

이렇게 많은데 이 중 일부만 공부할 것임.

Batch Sequential Architecture Style

: 데이터를 모아서 한번에 Ouput 처리하는 것.

ex. 월별 요금청구서

Pipe and Filter Architecture Style

: Batch와는 달리 pipe로 구성되어 앞에서 보내는 족족 pipe를 통해 넘어감. 이때 각 컴포넌트는 Filtering을 함.(필터링을 병렬로도 처리가 가능함.)

Shared Repository Architecture Style

: 공유 레포지토리(DB)를 두고 각 Data Accessor가 dataset들을 Read&Write하며 공유하는 형태. 이때 서로 공유하는 것은 효율적이긴 하나 업데이트된 값을 가져오려면 수동 접근을 해야 함. 이런건 좀 비효율적임.

ex. 은행 시스템

Active Repository Architecture Style

: 수동적인 메모리 공유 방식인 Shared Repository와 달리 자동적으로 datasets을 공유하는 방식임.

Layered Acrhitecture Style

: 각자 역할이 정해진 Layer들이 수직으로 구성된 형태로, 아래의 Layer는 위의 Layer에 Virtual Machine을 제공하기에 더 밑의 Layer 내용을 알 필요가 없음.

Model View Controller Architecture Style

: Layered와 비슷한데 3가지 Layer를 가짐.(Model, Controller, View)

N-Tier Architecture Style

: 네트워크로 연결된 티어들의 시스템 형태.

Client Server Architecture Style

:  두개의 tier(Client tier, Server tier)로 구성되어 있는 시스템 형태.

Server tier는 Client tier에게 공통 기능(common service)을 제공하고,

Client tier들끼리는 Server tier로부터 제공된 기능을 서로 공유할 수 있다.

Broker Architecture Style

: Client node와 여러 Server node들 사이에 Broker node가 끼어있는 것으로 높은 서비스 신뢰도와 QoS를 보장함. 이들 사이에 Broker node가 있기에 client와 server는 직접 상호작용하지 않음.

Dispatcher Architecture Style

: Broker와 비슷한데, Broker node 대신 Dispatcher node가 있음. 처음엔 Broker 처럼 굴다가 Client와 서버를 연결시켜주면 그때부턴 얘 안거치고 Client와 Server가 직접 통신함.

Microservice Architecture Style

: 현재 가장 널리 쓰이는 스타일로, Client와 Micro Service의 인터페이스가 서로 다를 경우 이걸 맞춰주는 역할(adapter)을 하는 gateway가 함.

- QoS 보장해줌(microservice A가 fail or 성능 저하 -> 다른 걸로 대체함)

- 개발 비용이 절감됨.

Publish and Subscribe Architecture Style

: Publisher와 Subscriber 사이에 Notification Broker가 있고 이를 통해 둘 사이를 연결해주기에 역할이 중요함.

728x90
반응형