Equality
Introduction 추상화 함수에서 equality 연산을 정의 하는 방법 Three Ways to Regard Equality equality를 바라보는 다양한 방법 추상화 함수 사용(Using an abstraction function) 추상화 함수 $F$ 를 정의해 $F(a) = F(b)$ 인 경우에만 equ...
Introduction 추상화 함수에서 equality 연산을 정의 하는 방법 Three Ways to Regard Equality equality를 바라보는 다양한 방법 추상화 함수 사용(Using an abstraction function) 추상화 함수 $F$ 를 정의해 $F(a) = F(b)$ 인 경우에만 equ...
이 장의 목표 underdetermined specs(결정되지 않은 스펙)을 이해하고 식별하고 평가할 수 있다. 선언과 옵셔널을 이해하고 선언 사양을 작성할 수 있다. 전제조건과 사후 조건의 스펙을 이해하고 스펙 강도와 비교할 수 있다. 적절한 스펙을 논리적으로 쓸 수 있습니다. Introduction 유사한 기능에 대한 ...
Objects 체계적인 디버깅 디버깅이 선택되어 질 때가 있다. (전체 시스템이 함께 연결되거나, 배포 후에 사용자 보고) 버그가 현지화가 불가능 할때에는 디버깅이 좋은 전략이 될 수도 있다. Reproduce the Bug 고장을 야기하는 테스트케이스를 반복해서 시도한다. regr...
Code Review 본래 코드를 적은 사람이 아닌 다른 사람에게 코드를 보여주고 함께 하는것은 좋다. 코드 리뷰의 두가지 목적 Improving the code : 버그(예상되는)를 찾고 코드의 스타일을 서로 점검하면서 프로젝트의 기준의 일관성을 만든다. Improving the programmer : 코드 ...
First Defense: Make Bugs Impossible 버그에 대한 최고의 방법은 설계상 불가능하게 하는것. 이전에 이야기한 static checking → 컴파일 시간에 버그를 제거함 불변성 : 한번 생성된 값은 절대 바뀌지 못한다. → 버그를 예방하는 또 다른 원리 String은 불변이다.버그를 방지하기 위...
Objects 추상 자료형 표현 독립성 추상 데이터 유형의 위험한 문제를 해결하고, 클라이언트가 내부 표현에 대한 가정이 왜 위험하고, 어떻게 그것을 피할 수 있는가? 연산의 분류와 추상적인 데이터 유형에 대한 좋은 설계 원리를 세우는법 What Abstraction Means 추상화 데이터 유형은 소프트웨어 공학의 일반적...
Objectives Invariants representation exposure abstraction functions representation Invariants 추상화 함수 그리고 Invariants(상수)의 개념을 통해 class에 ADT를 구현하는것이 무엇을 의미하는지에 대해 공부한다. 이러한 수학적 ...