더북(TheBook)

소프트웨어 아키텍처의 정의

소프트웨어 아키텍처를 정의한 문구는 다양합니다.4 필자는 그중 렌 바스(Len Bass)와 그가 이끄는 소프트웨어 공학 연구소5 직원들이 내린 정의를 가장 선호합니다. 렌 바스는 소프트웨어 아키텍처를 하나의 학과목으로 정착시키는 데 중요한 공헌을 한 사람입니다. 그들은 소프트웨어 아키텍처를 이렇게 정의했습니다.

컴퓨팅 시스템의 소프트웨어 아키텍처는 소프트웨어 엘리먼트(element)와 그들 간의 관계, 그리고 이 둘의 속성(property)으로 구성된 시스템을 추론하는 데 필요한 구조(structure)의 집합이다.6

<소프트웨어 아키텍처 문서화(Documenting software Architectures)>, 바스(Bass) 등

다소 추상적인 문구이지만, 핵심은 애플리케이션 아키텍처가 여러 파트(엘리먼트)로의 분해와 이런 파트 간의 관계(연관성)라는 것입니다. 분해가 중요한 이유는 다음 두 가지 때문입니다.

업무(labor)와 지식(knowledge)을 분리합니다. 덕분에 전문 지식을 보유한 사람들(또는 여러 팀)이 함께 생산적으로 애플리케이션 작업을 할 수 있습니다.

소프트웨어 엘리먼트가 어떻게 상호 작용하는지 밝힙니다.

 

 


 

 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.