728x90
728x90
공통 모듈 구현
모듈은 그 자체로 하나의 완전한 기능을 수행할 수 있는 독립된 실체이다.
모듈화는 소프트웨어의 성능을 향상시키거나 복잡한 시스템의 수정, 재사용, 유지 관리 등이 용이하도록 기능 단위의 모듈로 분해나는 설계 및 구현 기법
모듈화 기법
- 루틴(Routine) : 소프트웨어에서 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령들의 모임
- 메인 루틴(Main Routine) : 전체의 개략적인 동작 절차를 표시하도록 만들어진 루틴
- 서브 루틴(Subroutine) : 메인 루틴에 의해 필요할 때마다 호출되는 루틴
소프트웨어 모듈 응집도
응집도는 모듈의 독립성을 나타내는 정도로 모듈 내부 구성요소 간 연관 정도이다.
하나의 모듈이 하나의 기능을 수행할수록 응집도가 높다.
응집도의 유형
- 우연적 응집도(Coincidental Cohesion) : 모듈 내부의 각 구성요소가 연관이 없을 경우의 응집도
- 논리적 응집도(Logical Cohesion) : 유사한 성격을 가지거나 특정 형태로 분류되는 요소들이 한 모듈에서 처리되는 경우의 응집도
- 시간적 응집도(Temporal Cohesion) : 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우의 응집도
- 절차적 응집도(Procedural Cohesion) : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도
- 통신적 응집도(Communication Cohesion) : 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우의 응집도
- 순차적 응집도(Sequential Cohesion) : 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우의 응집도
- 기능적 응집도(Functional Cohesion) : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우의 응집도
소프트웨어 모듈 결합도
모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈간의 상호의존성이다.
결합도의 유형
- 내용 결합도(Content Coupling) : 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도
- 공통 결합도(Common Coupling) : 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호 작용하는 경우의 결합도
- 외부 결합도(External Coupling) : 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 디바이스 인터페이스를 공유할 경우의 결합도
- 제어 결합도(Control Coupling) : 어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도
- 스탬프 결합도(Stamp Coupling) : 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우의 결합도
- 자료 결합도(Data Coupling) : 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우의 결합도
팬인(Fan-In) 및 팬아웃(Fan-Out)
팬인과 팬아웃 분석을 통하여 시스템의 복잡도를 측정할 수 있다.
- 팬인(Fan-In) : 어떤 모듈을 호출하는 모듈의 수
- 팬아웃(Fan-Out) : 어떤 모듈에 의해 호출되는 모듈의 수
팬인이 높으면 재사용 측면에서 설계가 잘되었지만 단일 장애점 발생 가능
팬아웃이 높으면 불필요한 모듈 호출 여부 검토 필요
728x90
반응형
'CS' 카테고리의 다른 글
서버 인증 및 접근 통제 (0) | 2023.04.09 |
---|---|
소프트웨어 개발 보안을 위한 공격기법 개념 (0) | 2023.04.09 |
개발환경 구축 (0) | 2023.04.08 |
쿼리 성능 개선과 옵티마이저 (0) | 2023.04.07 |
절차형 SQL (0) | 2023.04.07 |
댓글