소프트웨어 아키텍쳐는 고수준(high-level)의 소프트웨어 시스템과, 그들 사이의 관계, 그리고 그로인한 특성에 깊이 관련되어 있습니다. 이러한 고수준의 구조는 계산능력, 커뮤니케이션, 그리고 구축을 반영한다. 물론 여기에는 긴급 동작, 성능, 신뢰성, 보안성, 유지보수성과 같은 일반적인 특성들도 함께 포함됩니다.
훌륭하게 디자인된 아키텍쳐는 시스템 설계자가 요구사항의 만족성과 절조있는 공학적 균형(tradeoffs)을 제시할 수 있도록 해줍니다. 그러한 아키텍쳐는 각 컴포넌트들의 동작 분배에 대한 확실한 원리, 개념적 통일성에 대한 원칙 수립, 그리고 시스템의 수명에 걸친 반복작업의 상당한 감소를 제공할 수 있습니다. 또한 아키텍쳐적인 설계 특징과 패턴들을 재사용할 수 있도록 해주고, 생산 라인에 접근함으로써 개발 비용을 감소시키며, 그 시스템의 장래의 유지보수자들을 위한 가이드를 제공합니다.
지난 10년간 소프트웨어 아키텍쳐를 표현하고 사용하는 방법과 아키텍쳐적 설계의 분류에 있어서 놀라운 발전이 있어왔습니다. 결과적으로 우리는 다음과 같은 뛰어난 테크닉들을 얻어낼 수 있었습니다.
(가) 아키텍쳐를 정확하고 분명하게 문서화하는 테크닉,
(나) 소프트웨어 아키텍쳐가 얼마나 잘 시스템의 주 요구사항을 드러내고 있는 지 결정할 수 있도록 평가하는 테크닉
(다) 아키텍쳐적 패턴과 스타일의 재사용에 대한 테크닉
(라) 생산 라인과 프레임워크를 생성하는 테크닉
(마) 소프트웨어 엔지니어들이 뛰어난 아키텍트가 되도록 가르치는 테크닉
이 테크닉들의 대부분들은 성공적으로 그들의 요구사항을 만족시키는 효율적인 시스템을 생성하는데 성공한 조직들의 실제 모습에서 공통적으로 발견됩니다. 그러한 조직들은 "아키텍쳐적으로 성숙합니다".
댓글 없음 :
댓글 쓰기