구조적 프로그래밍
4. 구조적 프로그래밍
증명
Goto 문의 좋은 사용 방식은 if/then/else와 do/while과 같은 분기와 반복이라는 단순한 제어 구조
이러한 제어 구조는 순차 실행과 결합했을 때 좋다.
모든 프로그램은 순차, 분기, 반복으로 표현 가능하다는 사실을 증명
해로운 성명서
성명서로 인해 goto문과 논쟁
goto가 패배
기능적 분해
대규모 시스템을 모듈/컴포넌트/기능들로 세분화 가능
엄밀한 증명은 없었다
수학정 증명 불가능
그래서 과학적 방법 사용
과학이 구출
과학 이론과 법칙은 올바름을 절대 증명할 수 없음
반증은 가능하지만, 증명은 불가능
테스트
테스트는 버그가 있음을 보여줄 뿐, 버그가 없음을 보여줄 순 없다.
구조적 프로그래밍은 프로그램을 증명 가능한 세부 기능 집합으로 재귀적으로 분해할 것을 강요
거짓임을 증명하려는 테스트가 실패한다면, 이 기능들은 목표에 부합할 만큼은 충분히 참이라고 여긴다.
결론
구조적 프로그래밍이 오늘날까지 가치있는 이유는 프로그래밍에서 반증 가능한 단위를 만들어 낼 수 있는 능력때문이다.
아키텍처 관점에서는 기능적 분해를 최고의 실천법으로 여긴다.
참조
- 클린 아키텍처(Clean Architecture)
This post is licensed under CC BY 4.0 by the author.