반응형
소프트웨어는 모듈화되어 개발됩니다. 각 모듈 간 결집도는 낮을수록 좋고, 모듈 내 응집도는 높을수록 좋습니다. 이러한 이유를 살펴보고, 결집도와 응집도의 종류에 대해 알아보겠습니다.
[ Contents ]
1. 모듈화 (Modulariation)
소프트웨어 설계에서 기능 단위로 분해하여 추상화한 단위를 '모듈(Module)'이라고 합니다. 소프트웨어는 각 기능 단위로 모듈화되어있으며, 각각의 독립성을 보장해야 합니다.
모듈의 독립성이 보장되어야 모듈의 디버깅 및 수정, 테스트, 통합이 용이합니다. 만약 하나의 모듈이 여러 모듈에게 영향을 끼친다면, 그 모듈들을 모두 수정해야하는 번거로움이 생깁니다.
따라서 모듈간의 결합도는 낮고, 모듈 내 응집력은 강해야 좋습니다.
2. 결합도 (Coupling)
- 자료 결합도: 파라미터로 데이터를 주고받음 (Call by value)
- 스탬프 결합도: 동일한 자료구조를 참조 (배열 등)
- 제어 결합도: 타 모듈 내 기능을 제어하는 요소 전달 (Flag, Switch)
- 외부 결합도: 동일한 외부 모듈, 데이터를 참조
- 공통 결합도: 동일한 데이터 영역 참조 (전역변수, call by reference)
- 내용 결합도: 타 모듈의 내부 기능과 데이터를 직접 참조
모듈 간 결합도는 낮을수록 좋습니다. 위 결합도는 낮은 순서대로 작성했고, 데이터만 주고받는 자료 결합도가 가장 낮습니다.
3. 응집도 (Cohesion)
- 기능적(함수적) 응집도: 모든 요소들이 단일 기능을 수행하기 위해 반드시 필요
- 순차적 응집도: 한 요소의 출력이 다른 요소의 입력으로 사용됨
- 정보적(교환적) 응집도: 모든 요소들이 동일 입력 또는 출력 자료를 이용
- 절차적 응집도: 기능 요소가 순차적으로 제어되어 수행됨
- 시간적(일시적) 응집도: 순서에 상관없이 특정 시점에 반드시 수행됨
- 논리적 응집도: 논리적으로 유사한 기능이지만, 밀접한 관련은 없음
- 우연적 응집도: 뚜렷한 관련 없이 요소들이 구성됨
모듈 내 요소간의 응집도는 높을수록 좋습니다. 위 응집도는 높은 순서대로 작성했고, 기능적 응집도가 가장 응집도가 높습니다.
반응형
'CS > SW공학' 카테고리의 다른 글
[SW공학] UML 다이어그램의 종류: 유즈케이스, 클래스, 시퀸스, 상태, 액티비티, 복합 구조, 컴포넌트, 배치 (0) | 2023.04.27 |
---|---|
[SW공학] 소프트웨어 아키텍처: MVC, 이벤트 기반, 파이프 필터 (0) | 2023.04.27 |
[SW공학] CMMi: 기존 CMM을 통합한 조직 성숙도 평가모델 (0) | 2023.04.27 |
[SW공학] ISO/IEC 9126 품질 특성: 신뢰성, 사용성, 이식성, 기능성, 유지보수성, 효율성 (0) | 2023.04.27 |
[SW공학] 일정계획: 작업분해(WBS), CPM/PERT, 간트 차트 (0) | 2023.04.27 |
댓글