A logical sequence of discrete steps that describes a complete solution to a given problem computable in a finite amount of time.
A model of a complex system that includes only the details essential to the perspective of the viewer of the system.
복잡한 시스템이지만 사용자는 모든 내용을 알 필요 없고 필요한 내용만 제공하는것이 abstraction
Fuctional Decomposition: 기능분해. 문제를 여러개의 subtask로 나눠서 해결
Object-oriented Design: 문제를 해결하는데 필요한 데이터와 operation으로 구성된 객체를 식별함
Program verification is the process of determining the degree to whic a software product fulfills its specification.