[오답정리] DBC(계약에 의한 설계, Design By Contract)

1과목. 소프트웨어 설계 > 1장. 요구사항 확인 > DBC(Design By Contract) :
  • DBC의 개요
    • 아이펠 언어의 개발자인 버트란드 마이어가 개발한 개념
    • 프로그램의 정확성 보장을 위한 소프트웨어 모듈들의 권리와 책임을 문서화하는데 초점
    • 각각의 모듈이 가져야 하는 기능만큼만 동작하도록 하며, 이러한 개념을 문서화하고 검증함 
  • DBC의 세 가지 유형
    • 선행 조건(Precondition)
      • 루틴(함수, 메소드, 모듈)이 호출되기 위해 참이어야 하는 것 (루틴의 요구사항)
      • 루틴의 선행 조건이 위반된 경우 루틴이 호출되어서는 안 됨
      • 제대로 된 데이터를 전달하는 것은 호출 쪽의 책임임
    • 후행 조건(Postcondition)
      • 루틴이 자기가 할 것이라고 보장하는 것
      • 루틴이 수행된 후 만족하여야 하는 조건
    • 클래스 불변식(class invariant)
      • 호출자의 입장에서 볼 때 이 조건이 언제나 참이라고 클래스가 보장하는 것
      • 루틴의 내부 처리 중에는 불변식이 참이 아닐 수도 있으나, 루틴 종료 후 호출자로 제어권이 반환되는 때에는 불변식이 참이 되어야 함
      • 불변식에 대해서는 어떤 데이터 멤버에게도 클래스가 제한 없는 쓰기 접근권을 부여 가능 

 

1000제-21번. 다음 보기의 설명에 해당하는 DBC(Design By Contract)의 유형은?

<설명>
- 루틴(함수/메소드/모듈)이 호출되기 위해 참이어야 하는 것(루틴의 오구사항)
- 루틴의 선행조건이 위반된 경우 루틴이 호출되어서는 안 됨
- 제대로 된 데이터를 전달하는 것은 호출 쪽의 책임

① precondition
② throwing exception
③ invariant
④ postcondition 

 

정답 : 1