시스템
- 특정한 목적을 달성하기 위해 여러 구성 요소가 함께 상호작용하며 작동하는 단위입니다.
- 시스템은 시스템을 외부와 구별하는 경계를 가지고 인터페이스를 통해 외부와 소통합니다.
- 하나의 시스템은 여러 하위 시스템으로 구성될 수 있습니다.
- 응용프로그램, 모듈, 클래스, 함수, …
클라이언트
- 시스템이 제공하는 기능을 사용하는 주체입니다.
- 인터페이스를 통해 시스템에 접근합니다.
- 시스템을 이용하며 대가를 지불하는 고객이나 조직 내부의 동료 등 사용자가 있습니다.
- 외부 응용프로그램이나 한 클래스를 사용하는 다른 클래스 등이 있습니다.
인터페이스 설계
- 인터페이스는 클라이언트와 상호작용하기 위한 소통 약속입니다.
- 인터페이스 설계는 클라이언트의 요구사항을 반영합니다.
- 인터페이스 설계 변경은 클라이언트에 영향을 줍니다.
- 만약 클라이언트가 이런 영향을 거부한다면 인터페이스 설계 변경은 불가능합니다.
구현 설계
- 구현 설계는 인터페이스를 통해 제공되는 기능 요구사항을 충족시킵니다.
- 구현 설계는 비기능 요구사항도 충족시키며 제작공정의 품질에 영향을 줍니다.
- 변경 여파가 미치는 범위가 시스템 내부로 한정됩니다.