사상 - 프로그래밍 이데올로기
아키텍처 기본 기법
상호 운영성
소프트웨어는 시스템의 일부이며 독립해서 존재하는것이 아니고 다른 시스템이나 환경과 빈번하게 상호작용한다. 외부 기능이나 자료구조로의 접근이 명확하게 정의된 아키텍처를 설계 표준 규격을 선택해야 된다.
효율성
- 시간 효율성
- 자원 효율성
리소스는 한정적 간접화를 고려해서 느슨한 결합을 추천
신뢰성
- 결함 허용력 - 소프트웨어 장애에도 정상적인 동작을 계속 유지하는 능력
- 견고성 - 부정한 방법이나 입력실수로 부터 보호 하는 능력
테스트 용이성
효과적으로 테스트 하는 능력 작은 단위의 테스트가 가능하게 설계하자.
재사용성
- 재사용하는 소프트웨어 개발
- 재사용을 위한 소프트웨어 개발
소프트웨어의 품질을 높이려면 가능한 만들지 않고 어디서인가 빌려와야 된다. 플러그인 아키텍쳐
재사용 가능한 모듈 작성시 2가지 3의 법칙
- 난이도 3배의 법칙
- 테스트 3종류의 법칙
탈착 가능 컴포넌트인 프레임워크