개요
Architecture와 요구 사항(Requirement)
Architectural Significant Requirement
어떤 요구 사항은 다른 것보다 Architecture에 훨씬 더 큰 영향을 미친다. 이러한 구조적 중요 요구 사항 (Architecturally Significant Requirement, ASR)은 이와 같이 아키텍처에 큰 영향을 주는 요구 사항이다. ASR을 모른다면 성공적인 아키텍처를 설계 할 수는 없다. ASR은 아키텍처가 시스템에 제공해야하는 품질 속성(Quality Attribute) 요구 사항의 형태를 취한다. Architecture에 사용할 패턴(Architecture Pattern, Architecture Style) 또는 전술(Tactics)을 선택할 때마다 품질 속성(Quality Attribute) 요구 사항을 충족해야하므로 Architecture가 변경됩니다. 그러므로 QA 요구 사항이 더 어렵고 중요할수록 아키텍처에 큰 영향을 미쳐 ASR이 될 가능성이 커진다. 다음은 ASR을 추출하는 방법들이다[2]. 필요한 경우, 이후에 상세히 살펴 보도록 한다.
- Requirement 문서에서 ASR을 추출
- Stakeholder 인터뷰를 통해 ASR을 추출
- 비즈니스 목표(Business Goals) 이해를 통한 ASR 수집
- Utility Tree를 통한 ASR의 추출
- 여러 방법의 연결
Architecture와 Quality Attribute
선택된 ASR인 Quality Attribute들과 다른 요구 사항들을 기반으로 Architecture 설계하는 방법을 [2]의 17장에서 설명한다. 이는 아키텍처를 설계하기 위한 전략(Design Strategy)와 이러한 아이디어를 하나로 패키징하는 방법, 즉 속성 중심 설계(Attribute Driven Design, ADD)을 설명한다.
디자인 전략은 아래와 같은 절차를 포함한다
- Decomposition: 충분히 시스템 내의 모듈을 분해 해야 한다.
- ASR에 대한 설계: 도리어 다른 Requirement들에 영향이 없는지 확인해야 한다.
- 가설(Hypothesis) 생성과 테스트를 통한 확인
속성 중심 설계, ADD는 5 단계 방법이다.
- 디자인 할 시스템 요소를 선택한다.
- 선택된 요소에 대한 ASR을 식별한다.
- 선택한 요소에 대한 설계 솔루션을 생성한다. : 여기서 여러 솔루션들에 대해서 비교가 필요하다.
- 나머지 요구 사항을 재고하고 다음 반복을위한 입력을 선택한다.
- 모든 ASR이 충족 될 때까지 1-4 단계를 반복한다.
위의 방법, 특히 ADD는 실재 예를 보면서 이해하는 것이 필요하다. 특히, 위의 절차는 지속적으로 반복하여 요구 되는 요구 사항들과 Quality Attribute들을 만족할 때까지 반복하여 최종 Architecture가 설계 되도록 해야 한다.
마무리 하며...
구조 설계에는 명확한 답이 있어 보이지는 않는다. 하지만, 새로운 방법들이 제안되고 있다. 이런 것들은 추후 검토하고 추가하기로 한다. 예를 들자면,
ADD 3.0 및 예제 문서들[3]이 그 예이다. 위에 예들을 이해하기 위해서는 예를 많이 살펴 보는 것이 좋고, 그 후에 실재로 설계를 진행해 보는 것이 좋다.
References
'Software Architecture' 카테고리의 다른 글
Software Architecture: 사례를 포함한 ATAM, Architecture Evaluation (0) | 2020.01.22 |
---|---|
Software Architecture를 위한 Quality Attribute (0) | 2018.10.09 |
Software Architecture: 요구 사항은 어떻게 추출하는가? (0) | 2018.10.09 |
Software Architecture: 무엇을 설명할 것인가? (2) | 2018.09.29 |
소프트웨어 아키텍처 공부를 시작하며... (0) | 2018.09.03 |