Architectural structure의 종류는 3개의 그룹으로 분류할 수 있다.:
Module structures : 이 구조에서 구성 요소는 모듈이라는 구현 단위이다. Module structure들은 시스템에서 필요한 코드 기반의 표현이다.
Component-and-connector structures : 시스템의 구성 요소는 실행 component와 connector이다. component는 컴퓨팅 단위이고 connector는 component간의 통신 경로이다.
Allocation structures : S/W 요소와 외부(non-software) 요소와의 관계를 보여준다. S/W는 하나나 그 이상의 외부 요소에서 만들(개발환경)어지고 실행(실행환경)된다.
Module Structure
- Decomposition structure : 모듈 구성을 보여줌. 모듈들은 “is-a-submodule-of” 관계에 의해 연관됨.
- Uses structure : 모듈들간의 관계를 보여줌. 여기서 하나나 여러 개의 모듈이 다른 모듈의 데이터나 서비스를 사용.
- Layered structure : 모듈의 계층구조를 표현함. 계층구조에서 모듈은 하향 참조만 가능함.
- Class structure or generalization : 여기서 모듈은 클래스를 의미하며 이 structure에서는 클래스나 그들 간의 관계(“inherits-from” or “is-an-instance-of)를 표현함
Component-and-Connector Structure
- Process structure : 시스템의 동적인 측면을 다룸. 구성요소는 thread나 process를 말함.
- Concurrency structure : 리소스의 경합과 같은 시스템의 동시성 문제를 표현하기 위해 사용.
- Shared data (repository) structure : 데이터의 생성, 저장, 조회를 수행하는 component와 connector에 대한 구조를 표현.
- Client-server structure : 시스템이 client-server 형태로 구현된 경우에 사용. 이때 client와 server를 component라 하고 connector는 component가 공유하는 protocol과 message를 말함.
Allocation Structure
- Deployment structure : S/W가 어떻게 H/W나 통신 element에 할당되었는지를 표현한다. Element는 software, hardware, 그리고 communication 경로이다
- Implementation structure : S/W요소가 시스템의 development, integration 또는 configuration제어에서 file 구조에 어떻게 mapping되었는지를 보여준다.
- Work assignments structure : 모듈의 개발 혹은 통합을 책임질 담당자 혹은 팀을 할당한 내역