계약에 의한 설계

계약에 의한 설계(Design by contract, DbC), 계약 프로그래밍, 계약에 의한 프로그래밍은 소프트웨어 설계를 위한 접근 방식이다.

이는 소프트웨어 설계자가 소프트웨어 구성 요소에 대해 형식적이고 정확하며 검증 가능한 인터페이스 사양을 정의해야 한다고 규정하며 이는 전제 조건, 사후 조건 및 불변성을 사용하여 추상 자료형의 일반적인 정의를 확장한다. 이러한 사양은 비즈니스 계약의 조건 및 의무에 대한 개념적 비유에 따라 "계약"이라고 한다.

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

분류:소프트웨어 설계
분류:프로그래밍 패러다임