728x90
모듈 안에 있는 기능들이 하는 일이 얼마나 연관되었는가를 보는 정도다.
Cohesion은 특징에 따라 7단계로 나눌 수 있는데 간단히 알아보자.
1️⃣ Functional Cohesion
모듈 내 기능이 하나의 기능을 하는 상태다. 모듈의 일부 코드를 삭제하면 모듈 자체가 작동하지 않는다.
*Black box 코드가 어떤 방식으로 짜여졌는지 몰라도 모듈을 그대로 사용할 수 있다.
2️⃣ Sequential Cohesion
한 모듈 안에 여러 기능이 있고 각 기능은 데이터로 연관되어 있다. 기능은 순서대로 진행된다.
3️⃣ Communicational Cohesion
각 기능은 다른 일을 수행하지만 동일한 input data를 사용한다.
4️⃣ Procedural Cohesion
다른 업무를 수행하는 기능이 순차적으로 진행된다. 예를 들어, 달의 공전 궤도를 계산하고 알람을 활성화하는 프로그램이 있다고 하자. 두 프로그램은 차례대로 진행되지만 두 기능을 나누어 사용하는 것도 가능하다. 나누면 Functional Cohesion!
5️⃣ Temporal Cohesion
여러 기능이 연관은 없지만 실행되는 순간이 같다는 이유로 묶어 놓은 모듈이다.
6️⃣ Logical Cohesion
논리적으로 유사한 기능을 수행하는 프로그램을 모아 놓은 모듈이다.
7️⃣ Coincidental Cohesion
데이터 공유, 실행 순서, 논리적으로도 전혀 연관 없는 기능을 모아 놓은 모듈이다.
728x90
'공부 > 소프트웨어공학' 카테고리의 다른 글
[소프트웨어공학] SOLID 원칙에 대하여 (0) | 2024.05.13 |
---|---|
[소프트웨어공학] Coupling(결합도)란? (0) | 2024.04.19 |
[소프트웨어공학] Lean Startup이란 (0) | 2024.04.06 |
[소프트웨어공학] 테스팅 환경 (E2E, Integration, Unit) (0) | 2024.03.29 |
[소프트웨어공학] scrum이란...! (0) | 2024.03.29 |