Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Douglas' Space

Application Architecture 본문

Development Diary/System Design Model

Application Architecture

똘키아빠 2024. 7. 6. 12:57

1. 들어가면서
 
Applcation Architectures는 System Architecture의 구성요소 중 Technology Architecture 위에 존재하여 궁극적인 문제 또는 서비스를 해결하는 Software Architecture의 상위 소프트웨어 구조를 의미합니다. 우리가 소프트웨어를 구분할 때 System Software대비하여 구분하는 Application Software에 대한 구조를 의미한다고도 할 수 있다.
 
이는 결국 System Analysis Model에서 모델링한 Function 들을 CSCI(Computer Software Configuration Item)로 변경하는 설계의 결과물로서 일반적으로는 Layered Architecture Pattern, Service-Oriented Architecture Pattern, Micro Service Architecture Pattern 등을 기반으로 구성하게 된다. 
 
따라서 일반적으로는 System Analysis Model의 Function을 기술한 Capability Model을 기반으로 Function들을 관련성을 고려하여 그룹핑하여 기능의 추상적인 계층구조를 구성하고 Architecture Pattern, 공통적인 기능 요소의 식별 등 CSCI의 설계 고려사항 기준으로 최종 CSCI를 식별한다.
 
2. 서비스 공통 CSCI의 식별
 
Design Decision에 따라 이용하는 미들웨어, 프레임워크 등을 제외하고 해당 서비스 또는 도메인에서 사용할 수 있는 공통 라이브러리, 응용 프레임워크 등으로 구성할 공통 기능들을 식별하여 CSCI로 별도로 구분한다. 보통은 use-case 분석시 식별되는 Included use-case나 excluded use-case를 기반으로 공통 CSCI를 식별한다. 
 
특별히 Architecture Pattern에서 Data Entity Layer에 해당하는 CSCI를 Data를 관리하는 솔루션과 Subject Area(즉, Data Architecture의 도메인)를 중심으로 CSCI를 구분하여 공통 CSCI를 식별한다. 특히 subject data area를 기반으로 구성된 CSCI들은 Data Architecture를 구성하기 위한 솔루션들과 직접적으로 연관을 갖게된다. 
 

공통 CSCI를 유스케이브 분석 및 Data Model로 부터 공통 CSCI 레이어 구성

 
 
3. 추상적인 기능구조의 식별
 
분석단계에서 Capability Model구성할 때 1차적으로 추상화된 use-case의 패키지 구조를 식별하여 Functional Architecture를 구성하였다. 특별히 무리가 없는 경우는 이 패키지를 추상화된 기능구조 중에서 적합한 수준의 패키지를 이용하여 최종 Interface 및 Business Logica Layer의 CSCI를 구성할 수 있다. 
 
또한 유스케에스 패키지의 적합성을 검증하기 위해 Modualirty를 극대화하는 Software Component를 식별하기 다양한 방법들을 활용하여 논리적인 유스케이스 패키지를 구성할 수도 있다. 이러한 방법들은 대부분 유스케이스들 간의 Affinity Analsysis를 이용하여 상호 기능적으로 관련성이 높은 즉, Cohesion은 높고 상대적으로 Coupling은 약한 유스케이스 패키지를 구성하기도 한다. 
 

use-case와 data store간의 CRUD관계를 통해 Affinity Aanalysis 통해 cohesion높은 유스패키지를 구성

 
위의 그림의 행은 use-case이고 열은 data store를 의미하며, 해당 셀들은 CRUD(Create, Read, Update, Delete)를 표시한다. 이때 CRUD관계에서 data store에 CUD의 관계를 갖는 use-case들을 행열을 조종하여 재배치하여 같은 data store를 C,D, U하는 유스케이스들을 그룹핑하여  유스패키지로 구성한다. 
 
4. 최종 Application Architecture의 설계
 
Application Architecture는 상기 그림에서 보듯이 최종적으로 Interface, Business Logic, Common, Data Entity Layer의 Layered Architecture에 존재하는 CSCI들로 구성된다. 위에서 상술한 유스패키지는 최종적으로 Interface와 Business Logic Layer의 CSCI 를 설계하기 위한 기본적인 논리적 CSCI로서 Interface Layer를 구성한 CSCI를 각 Actor를 중심으로 분리하여 최종 물리적인 CSCI를 식별한다.
 

use-case pacakge를 human 및 machine actor에 따라 inteface 담당 CSCI를 분리하여 설계

 
그림에서 논리적으로 식별된 use-case package에서 machine actor마다 MMI-CSCI를 분리하고, Human Actor마다 HMI-CSCI를 별도로 분리하여 별도의 Interface를 위한 CSCI를 설계하고, 각각 use-case pacagke마다는 별도의 Business Locia Layer를 구성하는 CSCI를 설계한다. 

'Development Diary > System Design Model' 카테고리의 다른 글

System Behavior Model  (0) 2024.07.13
System Architecture Model  (0) 2023.09.30
Design Decision Model  (0) 2023.09.30
Comments