공통 모듈의 개요
여러 프로그램에서 공통적으로 사용할 수 있는 모듈
- 자주 사용되는 계산식이나 매번 필요한 사용자 인증과 같은 기능을 공통 모듈로 구성
- 재사용성 확보와 중복 개발 회피를 위해 설계 과정에서 공통 부분을 식별하고 명세를 작성해야 함
- 공통 모듈을 구현할 때는 다른 개발자들이 해당 기능을 명확히 이해할 수 있도록 명세 기법을 준수해야 함
명세 기법
-
정확성(Correctness)
: 해당 기능이 필요하다는 것을 알 수 있도록 정확히 작성
-
명확성(Clarity)
: 해당 기능을 이해할 때 중의적으로 해석되지 않도록 명확하게 작성
-
완전성(Completeness)
: 시스템 구현을 위해 피요한 모든 것을 기술
-
일관성(Consistency)
: 공통 기능들 간 상호 충돌이 발생하지 않도록 작성
-
추적성(Traceability)
: 기능에 대한 요구사항의 출처, 관련 시스템 등의 관계 파악할 수 있도록 작성
재사용(Reuse)
배용과 개발 시간을 절약하기 위해 이미 개발된 기능들을 파악하고 재구성하여 새로운 시스템이나 기능 개발에 사용하기 적합하도록 최적화 시키는 작업
- 누구나 이해할 수 있고 사용이 가능하도록 사용법 공개해야 함
- 재사용되는 대상은 외부 모듈과 결합도는 낮고, 응집도는 높아야 함
규모에 따른 분류
-
함수와 객체
: 클래스나 메소드 단위의 소스 코드 재사용
-
컴포넌트
: 컴포넌트 자체에 대한 수정 없이 인터페이스 통해 통신하는 방식으로 재사용
-
애플리케이션
: 공통된 기능들을 제공하는 애플리케이션 공유하는 방식으로 재사용
효과적인 모듈 설계 방안
- 결합도↓, 응집도↑
→ 모듈의 독립성과 재사용 높임
- 제어 영역 안에서 그 모듈의 영향 영역 유지
- 복잡도와 중복성 줄이고 일관성 유지
- 모듈의 기능은 예측 가능 해야함
지나치게 제한적이어서는 안됨
- 유지보수 용이해야 함
- 모듈 크기는 전반적인 기능과 구조를 이해하기 쉬운 크기로 분해
- 하나의 입구와 하나의 출구를 갖도록 해야 함
- 인덱스 번호나 기능 코드들이 처리 논리 구조에 예기치 못한 영향을 끼치지 않도록 모듈 인터페이스 설계
- 효과적인 제어를 위해 계층적 관계 정의하는 자료가 제시되어야 함