티스토리 뷰

Q1. 소프트웨어 아키텍처가 무엇일까?

현재 이 질문에 대한 완벽한 한 마디는 없다고 한다. 하지만 아키텍처에 대한 정의는 150여 가지가 존재한다고 카네기 멜론 SEI (Software Engineering Institute)에서 얘기함. 대표적인 정의로 

"프로그램 또는 시스템 컴포넌트 구조, 상호관계, 설계와 진화를 통제하는 원리와 가이드라인" - Garlan and Perry 1995


Q2. 아키텍처의 목적은 무엇일까?

아키텍처의 주요 목적은 시스템의 품질 (Qualities)과 요구사항 (Requirements) 그리고 비즈니스 골 (Business goals)의 만족을 확신시키는 것


Q3. 아키텍처는 뭐고 디자인은 뭐고 차이가 뭐지?

아키텍처적인지 아닌지에 대한 결정은 Context에 좌우하지 일반적으로 말할 수 없다. 아키텍처적이란 것은 시스템의 목적을 달성하는 데 그 결정이 어느 정도 중요하냐에 달려 있다.

그리고 아키텍처는 추상적인 것, 디자인은 구체적인 것이라고 말할 수도 없다. 물론 아키텍처가 구현 단계까지는 들어가지 않는다 하더라도 구체적인 것 중에 아키텍처적인 것도 존재할 수 있다. 그래서 

Architectural Design <-> Detailed Design 보단

Architectural Design <-> Nonarchitectural Design 이라고 하는 것이 조금 더 명확하다.


Q4. 아키텍트는 뭘 하는 사람일까?

아키텍처 개발 및 문서화에 책임을 지는 사람. 요구 사항들과 여러 가지 설계 대안들 간 트레이드 오프를 결정하고 설계 결정과 그 근거를 기록해 아키텍처가 요구 사항을 만족하는지에 대한 증거를 제공해야 한다.




[출처]

Clements, Paul, et al. Documenting software architectures: views and beyond. Pearson Education, 2002.


댓글