Study/소프트웨어공학

결합도

Gyuri 2021. 8. 22. 21:06
결합도 (Coupling) : 모듈 간의 관계. 가능한 낮게 설계해야함 (모듈 즉, 함수 간 관계 낮게 설정!)
Coupling – 모듈과 모듈 사이의 관계를 어떻게 설계할 것인가?

 

 

결합도가 높다는 것은?  A란 모듈과 B란 모듈이 서로 간의 변화가 생기면 다른 모듈에 변화를 준다는 것.

모듈이 수정될 수 있는데, 그 변경 때문에 다른 모듈들도 영향을 받아 변경해야 하면 유지보수 비용 많이 듦 -> 결합도 낮게 설계돼야함!

 

 

 

 

<정상적 결합도>

Data Coupling : 데이터 결합도

Stamp Coupling : 스탬프 결합도

Control Coupling : 제어 결합도

--------------------------------

<비정상적 결합도 – 피해야함>

Common Coupling : 공통 결합도

Content Coupling : 내용 결합도

 

 

 

 

필요하지 않은 필드들도 포함돼있음 -> stamp coupling

 

                                          produce report cards(성적표 출력 모듈)

 

calculate cumulative gpa(누적 학점 계산)                                  print report card(성적표 출력)

 

BUT, student record 안에는 학점 계산하는 정보 이외에 주소, 전화번호 등의 성적 정보와 상관없는 데이터 있음! 학점 계산할 땐 구조체에서 일부 필드만 가져다씀

 

 

 

 

외부에서 어떤 기능을 수행할지 제어할 수 있는 flag 값을 줌

A에서 B를 수행할 때 AB의 내부구조 알아야함. B는 블랙박스 아님 (A에서 내부 구조가 어떻게 돼있는지 알아야 A값이 원하는 기능 호출할 수 있음)

-> 서로 간의 결합도 높음! B의 내용이 변하면 Azem도 바뀌어야 할 가능성이 높음

 

 

'Study > 소프트웨어공학' 카테고리의 다른 글

SOLID  (0) 2021.08.22
응집도  (0) 2021.08.22
소프트웨어 아키텍처  (0) 2021.08.22
UML, 유스케이스 모델링  (0) 2021.08.22
릴리스 계획/스크럼 도구  (0) 2021.08.22