BLOG main image
분류 전체보기 (344)
NWC Consulting (1)
서비스 (173)
출판 (169)
일반 (0)
213,481 Visitors up to today!
Today 9 hit, Yesterday 217 hit
daisy rss
2013.04.18 10:44

우리는 무엇을 알아야 하는가?

소프트웨어 아키텍처란?

The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both. A structure is a set of elements and the relations among them.

필자는 수 많은 정의들 중, 이 정의를 가장 뛰어난 것으로 여긴다. 구조라는 단어를 일관적으로 사용하여 이후의 내용들을 진행해 나가는 것은 정말 멋지고 대단하다.

뷰란? 구조와 비교해서

A view is a representation of a coherent set of architectural elements, as written by and read by system stakeholders. A view is a representation of one or more structures.

관점(view)란 것은 바라보는 주체가 있어야 한다. 이해관계자들이 아키텍처 구조를 바라보는 주체다. 이들이 아키텍처 구조를 읽고 작성한다. 읽고 작성한다는 것은 이해관계자들이 이해할 수 있는 형태로 표현한다는 것이다.

구조는 세 가지 범주로 나뉜다. 어떻게?

Module structures show how a system is to be structured as a set of code or data units that have to be constructed or procured.
Component-and-connector structures show how the system is to be structured as a set of elements that have runtime behavior (components) and interactions (connectors).
Allocation structures show how the system will relate to nonsoftware structures in its environment (such as CPUs, file systems, networks, development teams, etc.).

왜 구조인가?

Structures represent the primary engineering leverage points of an architecture. Each structure brings with it the power to manipulate one or more quality attributes. They represent a powerful approach for creating the architecture (and later, for analyzing it and explaining it to its stakeholders).

더 좋은 뭔가를 만들기 위해서는 더 좋은 결정을 해야 한다. 더 좋은 결정을 하기 위해서는 더 좋은 논의가 있어야 한다. 구체적으로 표현될 수 있는 대상을 기반으로 한다면 더 좋은 논의가 될 것이다.

구조는 요소들과 그 요소들 사이의 관계들의 집합이다. 요소들과 관계들을 구체적으로 표현할 수 있다면 구조는 논의를 위한 구체적인 기반으로 사용될 수 있다.  


티스토리 툴바