: Consistency
Run time deadlock analysis works better if it is machine independent.
= 한 기계에서 deadlock걸릴거면, 다른 모든 기계에 대해서도 걸려야 한다.
: Make intention explicit
반복적인 체크는 fault를 빨리, 그리고 효과적으로 찾을 수 있게 해준다.
V-model of SW V&V에서 많은 기법들이 계속 겹친다. → product의 성능이 보장되려면 그 전 에서 testing이 잘 되어야 하기 때문
ex) Static type checking + dynamic type checking
ex) validation of requirement specifications 가 >> validation of the final software 할 때 필요
ex) Testing and proof of properties
: Make the problem easier
unsolvable한 문제를 simpler(solvable)한 문제로 바꿔준다.
Weaker spec
ex) 포인터가 잘 사용되는지 확인하기 위해서 사용하기 전에 null로 초기화되어있는지를 확인한다. (simple)
Stronger spec
ex) 타입 에러를 확인하기 위해서 dynamically typed language가 아니라 statically typed language로 작성하게 한다.
: Divide and conquer 적당히 나누자! (top-down 등으로)
: Make information accessible 필요한 정보에 접근 가능하게 하자!
: development process 수정하기 (quality process)
경험을 통해 개발 환경 발전시키기
ex) 과거 error를 통한 checklist
ex) Error Taxonomies → test selection 기준 만들기에 도움
ex) Design 가이드라인 → common pitfall 발견