Robert C. martin(a.k.a 밥아저씨)
소프트웨어 아키텍처의 정의란
“
시스템을 구축했던 사람들이 만들어낸 시스템의 형태
”
시스템 구성 및 동작 원리를 나타내는 것
구성 요소 간의 관계 및 시스템 외부 환경과의 관계를 묘사하는 것
시스템 구성 요소에 대한 설계 및 구현을 지원하는 수준을 기술 하는 것
요구 사양 및 시스템 수명 주기를 고려하는 것
시스템의 전체적인 최적화를 목표로 하는 것
소프트웨어 아키텍처의 목표란
“
만들고 유지보수하는 데 투입되는 시간을 최소화하기 위해
”
구조화된 설계 제공
유지보수성 증가
확장성과 유연성
재사용성
엔티티
핵심 업무 규칙(Business Rule) 캡슐화, 메서드, 데이터 구조, 함수의 집합