-
standardized building blocks from which you can form a program
To assist programmers in working together in groups, it is necessary to break programs apart into separate pieces, which communicate with each other through well-defined interfaces. This way, each piece can be developed and tested independently of the others, making it easier for multiple programmers to work on the project.
each of your functions needs to be very specific about the type and range of data that it will or won’t accept
a facility to easily check assumptions about data correctness
to break their programs into pieces which can be independently developed and tested
One of the keys of programming is continually breaking down problems into smaller and smaller chunks until it’s small enough that you can easily solve the problem. Then you can build these chunks back up until you have a working program.
functional decomposition
전체적인 일을 여러 개의 작업으로 나누고 각각을 하나의 프로시저로 코딩
구조적 프로그래밍(structured programming)
c.f. 절차적 프로그래밍
구조화 프로그래밍
함수가 프로그램을 구성하는 기본 단위
코드의 재사용성
Encapsulation is a form of modularization that not only organizes the code into cohesive modules, but also hides the implementation details while exposing only the interface to the calling code.
프로그램을 여러 개의 소스 코드 파일(모듈)로 나눈다.
the linker can take care of combining functions exported
Have a set of functions on the system that are shared among any program that wishes to use it
having a central repository of shared code
Module Testing
drivers
stub
Law of DemeterOnly talk to your immediate friendslayered designensures that the dependency flows only in one direction