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

I. 소프트웨어의 뼈대, Software Architecture

가. 소프트웨어 아키텍처(Software Architecture)의 정의

SW 컴포넌트들과의 관계를 정의한 시스템 구조로, 컴포넌트들 간의 상호관계를 설계하고 전개하기 위한 지침과 원리

나. 소프트웨어 아키텍처의 특징

특징내용
간략성이해하고 추론할 수 있을 정도의 간결성 유지
추상화시스템의 추상적인 표현을 사용(복잡도 관리)
가시성시스템이 포함해야 하는 것들을 가시화, 청사진

 

II. 소프트웨어 아키텍처 프레임워크 및 구성요소

가. 소프트웨어 아키텍처 프레임워크

– SW 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들간의 관계를 제공하는 아키텍처 기술 표준

나. 소프트웨어 아키텍처 프레임워크 구성요소

요소내용
Architecture
Description(AD)
아키텍처를 기록하기 위한 산출물을 의미
하나의 AD는 System의 하나 이상의 View로 구성
이해관계자
(Stakeholder)
소프트웨어 시스템 개발에 관련된 모든 사람과 조직을 의미하며, 고객, 개발자, 프로젝트 관리자 등 포함
관심사
(Concerns)
동일한 시스템에 대해 서로 다른 이해관계자 의견
예) 사용자 입장: 기본기능 + 신뢰성/보안성 요구
관점
(Viewpoint)
서로 다른 역할이나 책임으로 시스템이나 산출물에 대한 서로 다른 관점

(View)
View: 이해 관계자들과 이들이 가지는 생각이나 견해로부터 전체 시스템을 표현 (4 + 1 View)

 

III. 소프트웨어 아키텍처 View

가. 소프트웨어 아키텍처 View (4 + 1 View Model) 정의

다양하고 동시적인 View를 기반으로 소프트웨어 위주 시스템 아키텍처를 묘사하는 View 모델
복잡한 소프트웨어 아키텍처를 다양한 이해관계자들이 바라보는 관점으로, 여러가지 측면을 고려하기 위한 다양한 관점을 바탕으로 정의

나. 4 + 1 View Model의 필요성

  • Box나 화살표 Diagram과 같은 단순 View 모델의 한계
  • 시스템의 기능적 또는 비기능적 요구사항을 만족시키는 아키텍처 등장

다. 4 + 1 View 모델 구성도


– 이해관계자의 다양한 관점(4 View)이 체계화되고 End-User의 시나리오 관점(1 View)이 추가되어 종합적/통합적 View 제공

 

IV. 소프트웨어 아키텍처의 발전 방향

가. 기술적 측면

  • 소프트웨어 공학 발전 측면에서도 SW Architecture는 가장 중요한 밑천
  • Architecture Pattern등 활발한 연구 진행 중

나. 프로젝트 적용 측면

  • J2EE또는 .NET, CORBA처럼 프레임워크을 근간으로 아키텍처는 발전되어 가고 있으며, 또한 이를 기반으로 적용되고 있음
  • 대부분의 CBD 프로젝트에서의 소프트웨어 아키텍처를 근간으로 하여 프로젝트가 수행되고 있으며, 더욱 활발히 전파될 것으로 예상됨

다. 대표적인 SW Framework

  • Struts: Open Source J2EE 기반 SW Framework
  • LGCNS: LAF/J, LAF/.net, LAF/UI 등
     

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^