1과목. 소프트웨어 설계 > 1장. 요구사항 확인 > DBC(Design By Contract) :
- DBC의 개요
- 아이펠 언어의 개발자인 버트란드 마이어가 개발한 개념
- 프로그램의 정확성 보장을 위한 소프트웨어 모듈들의 권리와 책임을 문서화하는데 초점
- 각각의 모듈이 가져야 하는 기능만큼만 동작하도록 하며, 이러한 개념을 문서화하고 검증함
- DBC의 세 가지 유형
- 선행 조건(Precondition)
- 루틴(함수, 메소드, 모듈)이 호출되기 위해 참이어야 하는 것 (루틴의 요구사항)
- 루틴의 선행 조건이 위반된 경우 루틴이 호출되어서는 안 됨
- 제대로 된 데이터를 전달하는 것은 호출 쪽의 책임임
- 후행 조건(Postcondition)
- 루틴이 자기가 할 것이라고 보장하는 것
- 루틴이 수행된 후 만족하여야 하는 조건
- 클래스 불변식(class invariant)
- 호출자의 입장에서 볼 때 이 조건이 언제나 참이라고 클래스가 보장하는 것
- 루틴의 내부 처리 중에는 불변식이 참이 아닐 수도 있으나, 루틴 종료 후 호출자로 제어권이 반환되는 때에는 불변식이 참이 되어야 함
- 불변식에 대해서는 어떤 데이터 멤버에게도 클래스가 제한 없는 쓰기 접근권을 부여 가능
- 선행 조건(Precondition)
1000제-21번. 다음 보기의 설명에 해당하는 DBC(Design By Contract)의 유형은?
<설명>
- 루틴(함수/메소드/모듈)이 호출되기 위해 참이어야 하는 것(루틴의 오구사항)
- 루틴의 선행조건이 위반된 경우 루틴이 호출되어서는 안 됨
- 제대로 된 데이터를 전달하는 것은 호출 쪽의 책임
① precondition
② throwing exception
③ invariant
④ postcondition
정답 : 1
'정보처리기사 > 오답정리' 카테고리의 다른 글
[오답정리] HIPO(시스템 분석 도구) (0) | 2025.04.28 |
---|---|
[오답정리] Flynn의 컴퓨터 시스템 분류 제안(Flynn's classification) (0) | 2025.04.28 |
[오답정리] CASE (Computer-Aided Software Engineering, 자동화 도구) (0) | 2025.04.28 |
[오답정리] CRUD 매트릭스 (0) | 2025.04.25 |
[오답정리] CMM(Capability Maturity Model Intergration) (0) | 2025.04.25 |