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 등