* 아키텍처가 튼튼한 시스템이 결국에는 성공
- 아키텍처가 튼튼한 시스템
- 결합성이 적다
- 응집력이 강한 시스템
* 품질 속성
* 시스템의 소프트웨어 아키텍처
- 시스템을 추론하는 데 필요한 구조의 집합
- 시스템은 소프트웨어 요소와 이들 사이의 관계,
그리고 이들 요소와 관계의 속성으로 구성
1. 아키텍처는 소프트웨어 구조의 집합이다
- 구조란 단순히 관계로 서로 얽혀 있는 요소들의 집합이다
- 소프트웨어 시스템은 여러 구조로 구성
- 어떤 하나의 구조가 아키텍처인 것은 아니다
- 아키텍처의 구조는 3가지
- 이들은 아키텍처의 설계와 문서화, 분석에서 중요한 역할을 수행
1. 모듈
- 모듈의 구현 단위로 시스템을 분할
- 모듈에는 특정한 컴퓨팅 책임이 할당
- 프로그래밍 팀의 작업을 할당하는 기반
- 대규모 프로젝트에서 이들 요소들은 분할되어 서브 팀에 배정
- 정적인 구조
2. 컴포넌트
- 동적인 구조
- 이 구조는 시스템의 기능을 수행하기 위해 런타임에 요소가 서로 상호작용하는 방식에 집중
3. 할당 구조
- 소프트웨어 구조로부터 시스템의 구성, 개발, 설치, 실행환경으로 매핑
- 모듈은 개발할 팀에 배정
- 구현과 통합, 테스트를 위해 파일 구조의 위치에 할당
- 컴포넌트는 실행하기 위해 하드웨어에 배포
* 아키텍처적 구조
- 시스템과 시스템의 속성에 대해 추론할 수 있게 해준다
- 추론은 이해 당사자에게 중요한 시스템의 특성에 관한 것
- 시스템에 의해 달성되는 기능성
- 결함에 맞서는 시스템의 가용성
- 시스템의 적정한 변경을 어렵게 하는 것
- 사용자 요청에 대한 시스템의 반응성
- 그 밖의 많은 것들 등등
* 시스템 아키텍처(system architecture)
- 시스템의 표현
- 하드웨어 및 소프트웨어 컴포넌트와 기능 매핑
- 하드웨어 아키텍처와 소프트웨어 아키텍처의 매핑
- 이들 컴포넌트와 사람의 상호작용
- 하드웨어, 소프트웨어, 사람을 포함하는 전체 시스템에 관심
* 전사적 아키텍처(enterprise architecture)
- 조직의 핵심 목표와 전략적인 방향이 연계된 조직의 프로세스와 정보 흐름
- 인력 및 조직 단위의 구조와 행위를 서술
- 전사적 아키텍처가 반드시 정보 시스템을 포함할 필요는 없음