12. 소프트웨어 아키텍처 문서화 명지대학교 융합소프트웨어학부 김정호 교수
아키텍처 기술 목적 S/W 아키텍처는 시스템 전반을 보여주는 Blueprint이다. 초기 분석의 가장 좋은 산출물 S/W 품질을 표시할 수 있는 첫번째 운반자 S/W 유지보수에도 결정적 key factor를 제공 아키텍처기술을 통해서 체계적으로 S/W 아키텍처를 개발할 수 있다. Artifact는 영원하다.
아키텍처 기술의 7가지 원칙 읽는 사람 입장에서 작성하라 불필요하게 반복되는 어구를 피하라 모호한 부분을 피하라 표준화된 포맷을 이용하라 합리적인 이유를 작성하라 Document의 버전 관리를 철저히 하라 분명한 목적을 가지고 Document를 Review해야 한다.
아키텍처 기술의 문제점 및 해결 방법 많은 부분들이 제대로 정의되지 않은 채 버려져 있다. 어떻게 피할 수 있는가? 이것은 어떤 종류의 아키텍처 요소인가? 이 relation은 어떤 의미를 가지지? 여기의 box와 저기의 화살표하고는 무슨 연관 관계가 있는거야? Layout의 명확한 의미가 뭐야? 왜 High level view에 control 프로세스가 있는거야? 어떻게 피할 수 있는가? 반드시 범례를 포함해라 화살표의 의미를 명확하게 하라(Ex. Control flow? or data flow?) View type을 목적 없이 혼합하지 마라. 그림 뒤에는 반드시 설명을 달아라.
아키텍처 문서의 품질 지표 Good Point Bad Point Line과 Box들 각각 색깔을 달리하고 설명을 달면… 표를 달아서 아키텍처 선택 요인을 표시하면… 한 장에 하나의 아키텍처 view가 나오면… Viewtype별 차이를 명확하게 하면… Bad Point Line하고 Box는 항상 일정하네…. 화살표의 의미가 없어… 화살표 하나에 의미가 너무 많아… 아키텍처를 구현 생각하고 그리네… 아키텍처 결정 사항이 없고 범례도 없네… A가 B에게 control을 전달? A가 B에게 데이터를 전달? A가 B로부터 어떤 값을 가지고 옴? A가 B에게 메시지를 전달? A가 B의 서비스를 요청? A B
Good Example of 아키텍처
아키텍처 문서에 포함되어야 할 내용 요구사항을 기술하라. Constraints를 써라. Context를 반드시 기술하라. Business Context, Product과 Domain에 대한 이해 품질 요소에 명확한 추출 Constraints를 써라. Business, implementation, deployment Context를 반드시 기술하라. 시스템과 연동되는 외부 시스템, 내부 인터페이스 아키텍처 Diagram Box, line의 구분 적정한 설명 범례 사용자는 웹 브라우저를 이용하여 시스템의 초기 화면을 요청한다. 초기 화면을 통해 로그인을 요청하면 Framework에서 EAM으로 인증 요청을 하여 처리한다. 인증이 완료되면 사용자의 웹브라우저에 X-internet 제품의 클라이언트 모듈이 탑재되고 이를 통해 Framework 연동하고 비즈니스 로직을 처리한다. 인증 및 권한 정보는 EAI 를 통하여 DB에서 EAM으로 전송된다. 리포팅은 별도의 사용자에게 특정 데이터를 DB에 바로 접속하여 분석하고 별도의 화면으로 제공한다. (Reporting 관련 로직은 X-internet, Framework과 별도의 아키텍처를 구성한다.)
Other aspects 아키텍처 Design issues Style/Product-line issues 어떻게 요구사항과 constraints를 추출했는지… Alternatives를 고려해 봤는지… Style/Product-line issues 어떤 부분은 변하지 않고 유지가 될까? 어떤 부분은 몇 가지 차원으로 구분하여서 표시해야 할까? Management issues OA&M : operations, administration, and maintenance
아키텍처 작성 기법 – Context Diagram S/W system 및 subsystem 아키텍처를 이해하기 위해, 시스템 내/외부 환경을 정리한 Picture 외부와 연동하는 환경을 작성 외부 인터페이스위주로 작성 다른 시스템과의 의존성을 표시
아키텍처 작성 기법 – Context Diagram
아키텍처 작성 기법 – View 및 Style의 혼합 Viewtype을 목적에 맞게 혼합하여 사용하는 방식 겹쳐서 사용하라 혼합하려는 양쪽의 S/W element(요소)와 relation(연관관계)을 새롭게 정의하는 hybrid style을 새롭게 정의하라 하나의 viewtype의 S/W element와 relation을 혼합되는 viewtype의 S/W element와 relation으로 mapping되는 내용을 가지는 bridging document를 가져라.
아키텍처 작성 기법 – View 및 Style의 혼합 Runtime View 와 Tier model의 혼합
아키텍처 작성 기법 – View 및 Style의 혼합 Runtime View 와 Allocation view의 혼합
아키텍처 작성 기법 – View 및 Style의 혼합 Runtime View의 Pipe-Filter Style과 Data-Shared Style의 혼합
아키텍처 작성 기법 – Hierarchy 계층적 방법을 이용해서 아키텍처를 구현하는 방식 Module Decomposition view에서의 part-whole 관계 Runtime Tiered view에서의 Substructure
아키텍처 작성 예제
아키텍처 작성 예제
아키텍처 작성 예제
아키텍처 작성 예제
아키텍처 작성 예제
Question ?