소프트웨어 아키텍처 소프트웨어의 골격이 되는 기본 구조 기능적 요구사항으로 나타난 제약 반영 및 구현 모듈화 소프트웨어 성능을 향상시키거나 시스템 기능들을 모듈 단위로 나누는 것 인터페이스가 단순해짐, 프로그램의 효율적 관리 추상화 문제의 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화 시키는 것 최소의 비용으로 실제 상황 대처, 시스템 구조를 대략적으로 파악 과정 추상화, 데이터 추상화, 제어 추상화 단계적 분해 : 하향식 설계 전략(상위 개념 -> 하위 개념) 정보 은닉 한 모듈 내부에 포함된 절차와 자료들의 정보를 감추어져 다른 모듈이 접근 못하게 하는 것 모듈을 독립적으로 수행. 수정, 시험, 유지보수가 용이 소프트웨어 아키텍처 품질 속성 시스템 측면, 비즈니스 측면, 아키텍처 측면..