본문 바로가기

Architecture for Software/Architecture

소프트웨어 아키텍처 연구 분야 및 IEEE 1471 국제표준

최근 소프트웨어 아키텍처 정의에 대한 글을 찾다가 좋은 문서를 찾아서 올립니다.

invalid-file

소프트웨어 아키텍처 연구 분야 및 IEEE 1471 국제표준 저자: 함동한발행일: 2004.03.22발행기관: 한국정보통신기술협회



짧게 요약하면 다음과 같습니다.

소프트웨어 아키텍처의 정의
소프트웨어 아키텍처는 한마디로 개발하려고 하는 소프트웨어의 큰 밑그림을 그리는 것으로 소프트웨어 개발에 직간접적으로 영향을 미치면서 복잡도를 높이는 다양한 요소들을 체계적으로 다루기 위한 청사진이라 할 수 있다.

소프트웨어 아키텍처의 학술적인 정의는 소프트웨어를 구성하는 컴포넌트들, 이들간의 상호작용 및 관계, 각 컴포넌트들의 특성 및 이들이 구성하는 소프트웨어의 설계 및 진화를 위한 각종 원칙들의 집합이라고 할 수 있다.

실제적으로 아키텍처는 대상이 되는 시스템에 관련된 여러 이해관계자(stakeholder)의 관심사항과 이에 따른 관점을 반영한 다양한 모델들의 집합이 된다.


소프트웨어 아키텍처 관련 국제표준

2000년에 제정된 IEEE 1471 국제표준(IEEE Recommended Practice for Architectural Description of Software-Intensive Systems)은 아키텍처가 표현해야 하는 내용 및 이들간의 관계를 제공하고 있다.

사용자 삽입 이미지

출처: http://www.ibm.com/developerworks/rational/library/nov06/ferm/



IEEE 1471은 아키텍처를 만들기 위해 다음과 같은 활동을 해야 한다고 규정하고 있다.
  • 아키텍처 관련 문서의 파악
  • 이해관계자, 그들의 역활 및 아키텍처상의 관심 사항의 파악
  • 뷰 포인트의 선택 및 명세
  • 뷰의 명세
  • 뷰들간의 존재하는 불일치성의 파악 및 기록
  • 선택되어 설계된 아키텍처에 대한 논리적 근거(Rationale) 작성

또한 위의 각 활동별로 아키텍처 명세에 포함되어야 하는 정보를 규정하고 있는데 예로 뷰 포인트 명세를 위해 다음의 정보가 다루어져야 한다.
  • 뷰 포인트의 이름
  • 뷰 포인트에 의해 다루어지는 이해관계자
  • 뷰 포인트에 의해 다루어지는 관심사항
  • 뷰 포인트에 근거한 뷰를 만들기 위한 방법론
  • 뷰 포인트 라이브러리의 출처(적용 가능한 경우)

IEEE 1471은 수년간 아키텍처 개발에 관련된 Best Practices에 기반하여 만들어진 국제표준으로 아키텍트가 유용한 아키텍처를 개발하기 위하여 필요한 정보와 불필요한 정보를 구분하고 이를 바탕으로 아키텍처 모델 및 이와 관련한 정보를 일관성있게 조직화할 수 있도록 효과적으로 활용될 수 있을 것으로 기대된다.



최근 필자는 좋은 아키텍처를 구성할 수 있는 방안에 대하여 많은 관심을 가지고 있습니다.
IEEE 1471에 대하여 앞으로 많은 공부가 필요할 듯합니다. 혹 본 포스트를 보시면서 IEEE 1471에 대하여 알고 계시거나 관련 자료가 있으신분은 공유 부탁드립니다.

감사합니다.