계약에 의한 설계
계약에 의한 설계(Design by contract, DbC), 계약 프로그래밍, 계약에 의한 프로그래밍은 소프트웨어 설계를 위한 접근 방식이다.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Design_by_contract.svg/220px-Design_by_contract.svg.png)
이는 소프트웨어 설계자가 소프트웨어 구성 요소에 대해 형식적이고 정확하며 검증 가능한 인터페이스 사양을 정의해야 한다고 규정하며 이는 전제 조건, 사후 조건 및 불변성을 사용하여 추상 자료형의 일반적인 정의를 확장한다. 이러한 사양은 비즈니스 계약의 조건 및 의무에 대한 개념적 비유에 따라 "계약"이라고 한다.
DbC 접근 방식에서는 서버 구성 요소에 대한 작업을 호출하는 모든 클라이언트 구성 요소가 해당 작업에 필요한 대로 지정된 전제 조건을 충족한다고 가정한다.
이 가정이 너무 위험한 것으로 간주되는 경우(다중 채널 또는 분산 컴퓨팅에서) 반대 접근 방식이 사용된다. 즉, 서버 구성 요소는 모든 관련 전제 조건이 참인지(클라이언트 구성 요소의 요청을 처리하기 전 또는 처리하는 동안) 테스트하고 응답한다. 그렇지 않은 경우 적절한 오류 메시지가 표시된다.
같이 보기
편집외부 링크
편집- The Power of Design by Contract(TM) A top-level description of DbC, with links to additional resources.
- Building bug-free O-O software: An introduction to Design by Contract(TM) Older material on DbC.
- Benefits and drawbacks; implementation in RPS-Obix
- Using Code Contracts for Safer Code