용's

[Chap 8] Architecture Design 본문

Computer Science/Software Engineering

[Chap 8] Architecture Design

TaeYOng's 2014. 12. 13. 17:01

7.1 Architecture Design

- 왜 아키텍처 설계가 중요한가?

.실체(아키텍처)를 두고 얘기하게 됨으로 커뮤니케이션의 기반이 될 수 있음

.초기 디자인 결정에 중요한 부분


7.1.1 Architecture Style

- 아키텍처 디자인을 할 때 여러가지 양식(style)이 존재하며 각 스타일은 다음과 같은 카테고리를 포함

.컴포넌트 집함(데이터베이스, 컴퓨터 모듈들)

.커넥터의 집함(컴포넌트들 사이의 통신)

.제약사항(어떻게 컴포넌트가 한 시스템으로 통합될 것인가)

.의미 모델(semantic model: 설계자를 이해 시킬만한 전체적인 시스템의 특징)


- 각 양식(style)에 대해 알아보자.


Data Centered Architecture(데이터 중심 아키텍처)

.데이터 저장공간을 두고 클라이언트가 데이터를 가져다 쓰는 형태

.repository(저장소) 형태: 데이터 저장이 수동적으로 클라이언트가 필요할 때 알아서 가져다 쓰도록

.black board: 능동적으로 대이터를 클라이언트에게 알려줌

.새로운 클라이언트를 더할 것인가?


- Data flow Architecture(데이터 흐름 아키텍처)

- Call and return Architecture

- Layered Architecture(계층구조의 아키텍처)


7.1.2 Architecture Pattern

- Style이 조금더 큰 개념이고 아키텍처 패턴은 조금 더 구체적으로 아키텍처 적인 행위에 관한 것

- Concurrency, Persistence, Distribution 등으로 존재함




7.2 Architecture Design Method

- 먼저 고객의 요구사항들을 토대로 아키텍처의 디자인을 시작함

- 요구사항을 토대로 작성한 다이어그램(Data flow diagram과 같은)을 가지고 아래과 같은 하나의 프로그램으로 만듦. 이 프로그램은 아래 그림과 같이 수평적으로 또는 수직적으로 분할(Partitioning)이 가능함.

- Horizontal Partitioning(수평적 분할): 주요 함수(function)들에 대한 모듈의 계층적인 구조를 확인 할 수 있음

- Vertical Partitioning(수직적 분할): Decision making 모듈과 working 모듈을 확인할 수 있음


- 분할을 하는 이유?

.나눠서 테스트하기(testing) 위해 

.나누면 유지보수도 쉬워짐

.사이즈가 적고 다른 부분과 연결된 부분을 잘랐으므로 다른 모듈로 사이드 이펙트 전달이 적어짐


7.2.1 Structured Design

- 실제 아키텍처 디자인을 하는 방법으로 구조화된 디자인(Structured Design)을 소개한다

- 목표는 실제 분할되어진 아키텍처 프로그램을 얻어내는 것이다.


- 하는 방법으로는 DFD(Data Flow Diagram)을 아키텍처 프로그램으로 맵핑하고, STD(State Transition 

Diagram)을 각 모듈의 내용을 가르키기 위해 사용된다.


- 디자인 표기는 Structure Chart를 이용한다.

.구조 차트는 모듈, 커넥션, 모듈간의 통신(데이터, 제어) 등의 요소들을 가짐

.시스템을 모듈들로 나누어 표현할 수있음

.모듈들의 구조나 계층구조와 모듈간의 인터페이스 통신을 확인할 수 있음

.모듈의 내무적인 logic이나 데이터는 볼 수 없음





'Computer Science > Software Engineering' 카테고리의 다른 글

[Chap 10] Black Box Testing  (0) 2014.12.13
[Chap 9] Software Testing  (0) 2014.12.13
[Chap 7] Design  (0) 2014.12.11
[Chap 6] Object-Oriented Concepts  (0) 2014.12.05
[Chap 5] Behavioral Modeling  (0) 2014.12.04
Comments