정보과학 IT

소프트웨어 아키텍처 (Software Architecture)

물곰탱이 2013. 9. 21. 21:43

소프트웨어 아키텍처란?

 

현재 소프트웨어 아키텍처에 대하여 가장 많은 저서를 내고 관련 교육을 주도해나가고 있는

카네기멜론 대학의 SEI에서는 소프트웨어 아키텍처에 대해 아래와 같이 정의하고 있습니다.

 

"A software architecture for a system is the structure or structures of the system,

 which compromise elements, their externally-visible properties, and the relationship among them."

 

"한 시스템의 소프트웨어 아키텍처란 그 시스템의 한 구조나 구조들로 각 요소들과 외부에 보이는 특성들 그리고 그들간의 관계를 절충한다. "

 

소프트웨어 아키텍처는 소프트웨어 요소들을 정의합니다. 상위의 설계사항으로 소프트웨어 아키텍처는 설계라고 말할 수 는 있지만 모든 설계가 소프트웨어 아키텍처는 아닙니다.

 

소프트웨어 아키텍처가 중요한 이유는

1. Communication among stakeholders.

    (소프트웨어 아키텍처가 시스템의 공통적인 추상화를 제공함으로서 관련 이해당사자들 간의 
     상호이해와 협상, 일치, 의사소통의 기본을 제공)

2. Early design decisions.

    (시스템 분석,설계 시의 초기 결정사항을 제공)

3. Transferable abstraction of a system.

    (시스템의 요약된 형태로서 향후 상세한 시스템 구성의 기본을 제공)

 

아래 그림처럼 소프트웨어 아키텍처는 요구사항을 제대로 구현하기 위해 도움을 줄 수 있는

커뮤니케이션 툴로 정의하고 싶습니다.

개발 초기의 요구사항과 실제 솔루션과의 갭을 어떻게 매울 것인가가 중요한 문제가 되어왔습니다.

이 자리를 소프트웨어 아키텍처가 훌륭하게 수행할 수 있습니다.


 

 

 

 

 

상위레벨의 시스템 설계와 시스템 레벨 추상화, 그리고 설계사상을 재사용 할 수 있습니다.

소프트웨어 아키텍처를 통해 정확한 Engineering 커뮤니케이션을 할 수 있어서

* 개발과 유지보수 비용을 줄일 수 있고

* 제품의 품질을 높일 수 있습니다.


made by jinapa 

 

Reference : Software Architecture in Practice 2nd Edition - Bass, Clemens, Kazman

[출처] 소프트웨어 아키텍처란?|작성자 지나파

http://blog.naver.com/noeundong?Redirect=Log&logNo=80028876537

--------------------------------------------------------------------------------------------------------------------------------------------

 

소프트웨어 아키텍처란 무엇인가

 

아키텍처에 대한 정의는 한 문장으로 말하기 어렵습니다. 그렇다면 아키텍처가 하는 일이 뭔가에 대해 풀어 보겠습니다.

 

아키텍처는 컴포넌트간의 인터페이스를 정의합니다. 컴포넌트는 수립된 아키텍처에 따라 개발되어야 합니다. 이렇게 개발된 컴포넌트들은 약하게 연결되어 서로에게 간섭이 적습니다. 그리고 재사용이 쉬워 이후에 다시 사용할 수 있는 모듈이 됩니다.

 

아키텍처는 소프트웨어의 행동을 정의합니다. 소프트웨어가 어떻게 행동할지, 어떤 기능을 할지 결정하여 구현에 제한을 두면, 개발자들은 더욱 의미가 명확하고 잘 동작하는 컴포넌트를 개발할 수 있습니다.

아키텍처는 컴포넌트의 외부 구현을 정의합니다. 내부 구현은 개발자의 몫이 됩니다. 아키텍처는 소프트웨어 전체 모습을 설계하지만, 세세한 부분까지 정의하지는 않습니다.

 

아키텍처는 이해관계자간의 대화를 조율합니다. 이론과 경험에 기반한 아키텍처는 이해관계자의 불가능한, 혹은 중요하지 않은 요구사항에 대해 반대할 수 있는 사실적 근거를 제공합니다.

 

위에서 논한 내용을 한 문장으로 줄여 본다면, 아래와 같이 말할 수 있을 것입니다.

 

프로그램이나 컴퓨팅 시스템의 소프트웨어 아키텍처는 소프트웨어 구성요소와 그들이 지니고 있는 특성 중에 외부에 드러나는 특성, 그리고 구성요소들의 관계를 표현하는 시스템의 구조나 구조체를 말한다.

[출처] 소프트웨어 아키텍처란 무엇인가?|작성자 피비티

http://blog.naver.com/p1ngp1ng?Redirect=Log&logNo=120064645546