개요
- Software Architecture Framework
- Based on IEEE 1471-2000, IEEE (2000)
- Viewpoint Models
- ISO RM-ODP - ISO(1994)
- Siemens Four View Model - Soni, D. et al (1995)
- 4 + 1 View Model - Kruchten, P. (1997)
- SEI View Model, Clements, P. et al. (2002b)
IEEE 1471 Framework
- 아키텍처는 유연하고 확장성을 가져야 하며 이러한 아키텍처를 개발하기 위해서 아키텍처 프레임워크가 필요
- 중요성
- 관련된 용어와 개념을 통일
- 정해진 모델링 언어, 특정 방법론을 제시하지 않기 때문에 기술적 중립성을 가지고 있음
- 기본적으로 대규모 프로젝트를 겨냥한 것이지만 프로젝트 규모에 따라 유연하게 적용가능한 프레임워크
주요 구성요소
- Mission
- Environment 내에서 Stakeholder 들이 의도하는 시스템의 목적/사용/운영방법 - Environment
- System에 영향을 주는 요인으로 개발, 운영, 정책변화 등의 외부 요인으로 시스템에 영향을 주는 요인 - System
- 각 애플리케이션들, 서브 시스템들, 시스템의 집합, 제품라인, 제품군 등의 구현체 - Stakeholder
- System에 대한 이해관계자 (다른 관점 소유, 개인/기관이 될 수 있음)
- 각 이해관계자들은 각기의 성능, 품질에 대한 다른 의견 및 관점을 가짐
- 이해관계자들의 의견을 조정하고 품질요구사항을 파악하는 것이 중요함 - Concerns (관심사항, 우려사항)
- System의 성능, 유연성, 보안, 분배 등을 포함한 Stakeholder에게 중요한 System의 개발/운영 측면의 관심사항 - Architectural Description
- System 구축 시 Environment에 적합하도록 추천하는 수행방법으로 Architecture 기록되는 방법
- 아키텍처 문서는 하나 이상의 뷰로 구성 - View
- 이해관계자들과 이들이 가지는 생각이나 견해로부터 시스템을 표현 - Viewpoint
- View를 구성하기 위한 리소스나 규칙을 정의하는 패턴이나 템플릿 - Rationale (근거/이유)
- 선택되어 설계된 아키텍처에 대한 논리적 근거
- 요구사항
> 복잡한 시스템에 많은 사람들이 참여하고, 사람마다 관점이 다르다는 현실 반영
> 고객 또는 최종사용자인 경우 특히 이러한 특징이 강함
- 특정 이해관계자를 기반으로 하는 많ㅇ느 비기능적 요구사항 측면
> 구입을 위한 경제성, 유지보수를 위한 유지보수성
> 사용자는 현재와 같은 시스템을 원함
- 이해관계자의 관심사는 여러가지 View 등을 수립 및 정당화 하는데 사용
IEEE1471 아키텍처 작성 순서
- 아키텍처 관련 문서 파악
- 이해관계자의 역할 및 아키텍처 관심사항 파악
- 뷰 포인트 선택 (시스템을 바로보는 관점)
- 뷰의 명세 (Viewpoint를 가지고 시스템을 구성하는 요소와 그 요소들 간의 관계를 표현하는 것이 View)
- 뷰들 간에 존재하는 불일치성 파악 및 기록
- 선택되어 설계된 아키텍처에 대한 논리적 근거 (Rationale) 작성
Viewpoint Model - RM-ODP (Reference Model for Open Distributed Processing)
- 대규모 기업의 경영을 지원하기 위하여 분산시스템으로 구축되어야 하는 시스템인 엔터프라이즈 통합 시스템의
아키텍처를 설계하고 문서화하는 방법을 정의한 표준 (ISO/IEC 10746) - 이기존 시스템 사이의 상호 운용성을 높이고 분산환경에서 분산 투명성을 제공하는데 초점을 맞춘
아키텍처 프레임워크 - Viewpoint
- enterprise viewpint
> 시스템의 목적, 범위 및 정책에 초점
> 시스템이 만족시켜야하는 이해관계자들의 요구사항과 시스템이 제공해야 하는 서비스 정의
- Information viewpoint (Data)
> 시스템에서 관리하는 정보와 데이터의 구조 및 내용 유형 설명
> 시스템이 정보를 다루는 규칙이나 정책을 정의
- Conputational viewpoint (Application)
> 시스템이 제공하는 기능과 기능적 분해에 대해 설명
> 시스템의 구성요소인 분산객체들이 어떻게 상호작용해서 기능요구사항을 만족시키는지 정의
- Engineering viewpoint (Runtime 관점)
> APPL 기능과 정보를 관리하는 시스템에 의해 정의된 객체들이 분산환경에서 제대로 동작할 수 있는
매커니즘과 분산투명성 제공방법을 특정기술에 종속되지 않게 정의
- Technical viewpoint
> 시스템 구현방식 (프로그래밍 언어, 미들웨어, OS, NT Protocol 등)
> 특정기술을 적용하여 각 뷰를 실현시키는 방법을 설명함
Siemens Four View Model
- Conceptual View
- Application 도메인에 밀접하게 연관
- 도메인에서 Problem과 Solution이 기본적으로 보여짐
- HW나 특정 SW에 독립적이어야 함
- Module View
- Conceptual View에서 정의된 컴퍼넌트나 커넥터가 서브시스템이나 모듈로 맵핑 됨
- Code View
- 어떻게 Deployment component로 매핑할 것인가에 대한 문제를 다룸
- 모듈뷰에서 정의된 모듈들이 소스 컴포넌트로 어떻게 매핑될 것인가에 대한 문제 다룸
- Execution View
- 각 모듈들이 실행환경에 의해 제공되는 요소들이나 하드웨어에 매핑 될 부분을 정의
- 중요한 부분은 제어의 흐름 (실행환경 제어의 흐름 / 논리적 제어의 흐름 = Conceptual View)
4 + 1 View Model
- 개요
- 여러개의 Concurrent View 사용을 기반으로 하는 SW 집약적인 시스템의 아키텍처를 설명
- 다양한 이해관계자의 관점에서 시스템을 설명하는데 사용
- 4가지 View(논리적, 개발, 프로세스, 물리적 View) 사용 + Use case 를 포함
- Logical View
- 최종 사용자에게 제공하는 기능을 구조적 구성요소와 역할로 분해하고 그 간의 관계를 명시
- 추상화 레벨에 따라 다르게 표현 가능 -> 반복적인 구조설계의 과정을 거치며 상세화
- UML DIagram은 논리적 뷰를 나타내는데 사용
- Process View
- 개발자와 시스템 통합자에게 유용
- 시스템의 동적 측면을 다룸 (시스템 프로세스와 통신방법 설명, 시스템의 런타임 동작에 중점)
- 비기능 요구사항 (동시성, Fault-tolerant, Distrubuteion, Integrator, Performance, Scalability)
- Sequence Diagram, Communication Diagram, Activity Diagram
- Development View
- 개발팀에서 개발하는 물리적인 산출물의 관정에서 구조 표현
- 물리적 시스템에서 사용하는 SW 서브시스템의 모듈(코드, 데이터파일, 컴퍼넌트, 실행파일)
- Package Diagram, Component Diagram
- Physical View (Deployment View)
- 시스템 엔지니어 관점에서 시스템을 바라봄
- 물리적 계층에 있는 SW 구성요소의 토폴로지와 이러한 구성요소 간의 물리적 연결에 초첨
- Deployment Diagram
- Scenario (Use Case) View
- 4개의 모든 View를 연결시켜주는 역할
- 시나리오는 개체 간 및 프로세스 간의 상호 작용의 시퀀스로 설명
- 아키텍처 요소를 식별하고 아키텍처 디자인을 설명하고 검증하는데 사용
아키텍처 프로토타입 테스트를 위한 출발점 역할 - Usecase Diagram
Zachman Framework vs 4+1 View Model의 결함
CMU SEI 3 View Model
- 개요
- 시스템의 SW 아키텍처는 시스템에 대해 추론하는데 필요한 구조의 집합으로
소프트웨어 구성요소와 속성으로 구성된다 - 구조는 SW 또는 HW에 존재하는 요소의 집합
- 뷰는 구조의 표현 / 뷰는 요소집합의 표현과 요소들간의 관계로 구성
- 결론적으로 SA는 뷰들을 통해서 보여주고 문서화 되어진 구조의 집합이다
그리고, 아키텍트는 구조를 설계하는데 뷰를 사용하는 것이다
- 시스템의 SW 아키텍처는 시스템에 대해 추론하는데 필요한 구조의 집합으로
- Application View
- SA와 Environment를 매핑시키는 역할
'Software Architect' 카테고리의 다른 글
[Software Architecture] Requirement Engineering - 2 (0) | 2022.04.01 |
---|---|
[Software Architecture] Requirement Engineering - 1 (0) | 2022.03.31 |
[Software Architecture] Architecture Decisions (0) | 2022.03.29 |
[Software Architecture] RUP (0) | 2022.03.29 |
[Software Architecture] TOGAF (0) | 2022.03.29 |