10. 소프트웨어 아키텍처 뷰 설계 명지대학교 융합소프트웨어학부 김정호 교수
Retrospect 소프트웨어 정의 소프트웨어 아키텍처 정의 소프트웨어 아키텍처 설계 순서 시스템 생각 특정 목적을 이루기 위한 구조(요소들의 관계) 소프트웨어 아키텍처 설계 순서 이해관계자와 Concerns 기능 요구사항과 비기능 요구사항 소프트웨어 설계 전략 Tactics Patterns Reference Architecture
S/W 아키텍처 요소 Structures 와 View의 관계 Human Body Structure Static View Dynamic View Dynamic View 심장 전문의 Static View 외과 전문의
S/W 아키텍처 View View 란? 시스템을 이루는 요소들의 집합과 그들의 연관 관계를 추상적으로 표현한 것 뷰 포인트 소프트웨어 시스템 소프트웨어 아키텍처 뷰
<<interface>> S/W 아키텍처 View Viewtype 란? view를 구조화 하는 방법을 viewtype이라고 한다. Module viewtype : Code unit들을 어떻게 구성하지? Runtime viewtype : S/W system 요소들의 runtime behavior와 interaction은 어떻게 표현하지? Allocation viewtype : S/W 요소들이 non-software 환경과 어떻게 mapping이 되지? Examples Semantic Definition NodeAnalyzer Expression Statement Main <<interface>> Visitor Error Module viewtype Runtime viewtype Allocation viewtype
S/W 아키텍처 style 아키텍처 style 이란? S/W 제약 사항을 표현할 수 있는 S/W 구성 요소와 연관관계의 특별한 type을 말한다. Module viewtype Decomposition Style : 계층적으로 모듈을 분리하여 작성, Concurrent System 개발에 유리한 Style Generalization Style : Reuse를 목적으로 계층을 특성화 한 Style Layered Style : Portability, Reusability을 위한 Style Runtime viewtype Data Flow Style : 데이터 이동에 목적을 둔 Style Ex. Batch sequential, pipes & filters Call & Return : S/W 요소들의 호출을 특성화 한 Style Ex. Main program/subroutines, Information hiding Interacting process : Event Based로 system이 움직이는 Style Ex. Implicit, Explicit event Data-Sharing : Data Storage를 중심으로 연동하는 Style Ex. Compound Documents Allocation viewtype Deployment Style, Implementation Style, Work assignment style
Module viewtype Decomposition Style S/W 요소(Elements) : Code에 근간을 둔 Modules 연관관계 (relationship) : “is part of ” A B C D A C B D
Module viewtype Generalization Style S/W 요소(Elements) : Code에 근간을 둔 Modules 연관관계 (relationship) : Generalize, “is a” UML 등으로 표시 A A B C D B C D
Module viewtype Layered Style S/W 요소(Elements) : Layers, a virtual machine, etc. 연관관계 (relationship) : Allowed-to-use, depends-on
Runtime viewtype S/W 요소(Elements) 연관관계 (relationship) 특성 (Properties) Components : Run-time과 연관되는 핵심 단위 Connectors : Component들 간의 연동 Mechanism을 표시 연관관계 (relationship) Ports : Component들 간의 연동을 위한 gate Roles : Component와 연동하기 위한 Connector의 역할 특성 (Properties) S/W 개발과 분석을 위해 정보를 특성화 하는 것 Ex. 품질 요구사항 port Connector Component 1 Component 2 role
Runtime viewtype Pipe and Filter Style Components => Filters Connectors => Pipes 데이터가 흘러 다니는 파이프 Constraints 데이터는 한 곳으로 흘러야 하며, Filter간의 state 정보 공유가 필요 없다. Ex>> cat etc/passwd | grep “joe” | sort > junk
Runtime viewtype Call & Return Style Components Connectors 종류 서비스를 제공하는 단위로서 서비스를 요청하거나 제공한다. Connectors 서비스를 Callee에게 요청하고 return 되는 서비스를 Caller에게 전달하는 역할을 한다. 종류 Object model, Tier model
Runtime viewtype Event-Based Style Components Connectors 종류 Event 전달을 목적으로 하는 Event Bus 종류 Explicit, Implicit Event type
Allocation viewtype S/W 요소(Elements) : Module 혹은 Runtime style을 그대로 유지, 주변 환경 요소들 연관관계 (relationship) : allocated-to Deployment style : Runtime 요소와 H/W와의 관계 Deployment style
Allocation viewtype Implementation Style : 클래스 혹은 소스 코드와 디렉토리와의 연관 관계
아키텍처 뷰 – 작성 예제
아키텍처 뷰 – 작성 예제
아키텍처 뷰 – 작성 예제
아키텍처 뷰 – 작성 예제 Architecture는 SOA를 지향하며, Scalability와 Modifiability를 위해 tiered Architecture로 총 5개의 tier 로 구성 Tier Description Client 관리자 Browser 및 가입자 단말기 Presentation UI를 제공하기 위한 로직 구현 Business Service 비즈니스 기능을 구현 Information & Secure 보안서비스 및 정보저장 서비스를 관리 Integration 대내외 시스템 통합을 담당
아키텍처 뷰 – 작성 예제 Presentation Layer : OM&A 포털이 제공하는 UI 기능을 식별 Business Logic Layer외 : 주요 Sub System별 제공 Functionality를 식별 Integration : EIS에 구현하여야할 연계 모듈 Business Common : 업무 공통 모듈
아키텍처 뷰 – 작성 예제 Allocation View – Deployment style EIS : Service Mediatior를 통한 대내외 연계 기능을 제공. MCP OMA : Presentation Layer 및 Business Functionality를 모두 포함. 운영시 Light한 구현을 지향 함. PIP : PIP의 채널특성, 성능특성을 고려하여 별도로분리
아키텍처 뷰 – 작성 예제 Allocation view - Implementation Style Interface 기반 구현 Presentation Layer와 Business Logic의 Decoupling Busniess Logic(Service)는 WebService 적용을 위한 특성 반영
Question ?