
[Code Complete] CH5: Design in Construction(2)
·
Software Engineering/Code Complete, 2nd Edition
5.3 Design Building Blocks: Heuristics 개발자들은 흔히 개발 프로세스에서 A->B->C -> .... ->Y -> Z 순으로, 즉 순차적으로 처리하면 원하는 소프트웨어를 만들어낼 수 있을 것이라고 생각한다. 근본적으로 개발자는 알고리즘과 같이 결정적이고 시스템화 할 수 있는 방법을 선호하는 사람들이기 때문이다. 그러나 software design이란 전혀 다른 이야기이다. SW 설계란 비결정적(nondeterministic)하기 때문에, 휴리스틱한 스킬의 적용이야 말로 좋은 SW 디자인 방법이라고 할 수 있다. 휴리스틱한 방법은, 시행착오법과 유사하다고 보면 된다. 이후의 subsection들은 이 휴리스틱 각각을 소프트웨어의 주요 기술적 핵심 원칙인 복잡성 관리(ma..