Open API/Architecture
시스템의 품질 속성 억제 또는 가능
이재만박사
2017. 3. 4. 22:45
* 시스템에 높은 성능이 필요하다면 요소의 시간 기반 행위와 공유 리소스 사용, 요소 간 커뮤니케이션 빈도와 크기를 관리하는데 주의
* 변경용이성이 중요하다면 시스템 변경이 소수의 요소에만 영향을 미치도록 요소에 책임을 배정하는데 주의
(이상적으로 각 변경은 단 하나의 요소에만 영향을 미침)
* 시스템이 고도로 안전해야 한다면 요소 간 커뮤니케이션을 관리하고 보호하며, 요소가 어떤 정보에 엑세스할 수 있는지 통제, 아키텍처에 특별한 요소를 도입
* 확장성이 시스템의 성공에 중요하다면 더 높은 기능을 제공하는 대체물을 도입할 수 있도록 리소스의 사용을 지역화, 리소스에 대한 가정과 한계를 하드 코딩
* 프로젝트가 시스템의 점증적인 서브집합을 인도할 필요가 있다면 컴포넌트 사용을 주의 깊게 관리
* 시스템의 요소를 다른 시스템에서 재사용할 수 있게 하려면 요소 간 결합성을 제한하여, 요소를 추출할 때 현재 환경에 너무 많이 결합되지 않도록 하는 것이 좋음
- 아키텍처만으로는 시스템이 요구하는 기능이나 품질을 보장할 수 없다
- 잘못된 후속 설계나 구현 결정은 항상 적절한 아키텍처 설계를 망가뜨릴 수 있다
- 설계, 구현, 배포 전체에 걸쳐 품질 속성을 달성하도록 검토
- 이상적인 아키텍처를 가졌음에도 불구하고, 불명료하고 뒤얽힌 코드를 작성함으로써 얼마든지 수정하기 어려운 시스템을 만들 수 있다