정보처리기사
모듈화(1)
UTF-404
2024. 1. 23. 18:42
728x90
💡 모듈화 (Modularity)
- 모듈화는 프로그램이 효율적으로 관리될 수 있도록 시스템을 분해하고 추상화함으로써 소프트웨어 제품의 성능을 향상시키거나 시스템의 수정 및 재사용, 유지 관리를 쉽게 하는 기법이다.
- 소프트웨어의 성능을 향상시키거나 복잡한 시스템의 수정, 재사용, 유지 관리 등이 용이하도록 기능 단위의 모듈로 분해하는 설계 및 구현 기법이다.
기법 | 설명 |
루틴 (Routine) |
∙ 소프트웨어에서 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령들의 모임 |
메인 루틴 (Main Routine) |
∙ 프로그램의 주요한 부분이며, 전체의 개략적인 동작 절차를 표시하도록 만들어진 루틴 ∙ 메인 루틴은 서브 루틴을 호출 |
서브 루틴 (Subroutine) |
∙ 메인 루틴에 의해 필요할 때마다 호출되는 루틴 |
📌 모듈화 필요성
- 모듈의 크기가 너무 작아 모듈 개수가 많아지면 모듈 간 통합 비용이 많이 발생한다.
- 모듈의 크기가 너무 크면 모듈 간의 통합 비용이 줄어드는 대신 모듈 당 개발 비용이 커진다.
📌 바람직한 모듈 설계 방안
- 모듈의 독립성과 재사용성을 높이기 위하여 결합도는 낮추고 응집도는 높인다.
- 모듈의 복잡도와 중복성을 줄이고 일관성을 유지한다.
- 모듈의 기능은 예측이 가능해야 하며, 지나치게 제한적이어서는 안 된다.
- 적당한 모듈의 크기를 유지한다.
- 모듈 간의 효과적인 제어를 위해 설계에서 계층적 자료 조직이 제시되어야 한다.
- 유지보수가 용이해야 하고, 이식성을 고려해야 한다.
📌 모듈화 측정 지표
- 모듈화의 적정성을 측정하는 지표는 응집도와 결합도이다.
- 좋은 모듈화란 용도에 맞게 잘 구분된 기능을 가진 모듈들로 세분화하는 것이다.
- 개별 모듈은 독립적으로 주어진 역할만을 수행하며, 타 모듈에 의존성이 높지 않아야 한다.
지표 | 설명 |
응집도 (Cohesion) |
∙ 모듈의 내부 요소들의 서로 관련되어 있는 정도 ∙ 모듈이 독립적인 기능으로 정의되어 있는 정도 |
결합도 (Coupling) |
∙ 모듈 간에 상호 의존하는 정도 ∙ 두 모듈 사이의 연관 관계를 맺고 있는 정도 |
728x90