모듈화
- 모듈화는 소프트웨어를 각 기능별로 분할하는 것을 의미하며, 각 기능별로 분할한 것을 모듈이라고 한다.
- 모듈화를 수행하면 소프트웨어의 복잡도가 감소하고, 변경이 쉬우며 프로그램 구현이 용이
잘하기 위한 조건
- 모듈이 하나의 기능만을 수행하고 다른 모듈과의 과도한 상호작용을 배제함
- 모듈을 독립성있게 만듬.(모듈을 수정하더라도 다른 모듈들에게는 거의 영향을 미치지 않으며, 오류가 발생해도 쉽게 발견할 수 있고 해결할 수 있음)
- 모듈의 독립성을 높이려면 모듈의 결합도(Coupling)를 약하게 하고 응집도(Cohension)를 강하게 하며 모듈의 크기를 작게 만들어야 한다.
결합도(Coupling)
- 결합도는 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계를 의미한다.
- 독립적인 모듈이 되기 위해서는 각 모듈 간의 결합도가 약해야 하며 의존하는 모듈이 적어야 한다.
응집도(Cohesion)
- 응집도는 정보 은닉 개념을 확장한 것으로 모듈 안의 요소들이 서로 관련되어 있는 정도, 즉 모듈이 독립적인 기능으로 정의되어 있는 정도를 의미한다.
- 독립적인 모듈이 되기 위해서는 각 모듈의 응집도가 강해야 한다.