[소프트웨어공학] Coupling(결합도)란?

2024. 4. 19. 12:31·공부/소프트웨어공학
728x90

 

Coupling이란 서로 다른 모듈이 다른 모듈에게 의존하는 정도를 따지는 것이다. 낮아야 좋다!

한 모듈이 변경 되었을 때 다른 모듈도 전부 변경해야 한다면 매우 불편할 것이다...

 

1️⃣ Data Coupling

Data Coupling에는 두 조건이 있다.

1. 두 모듈은 호출할 때 인자로 소통한다.

2. 인자는 구조체가 아닌 기본 데이터로 형성된다.

 

2️⃣ Stamp Coupling

구조체로 정보를 전달한다. 결합도를 낮추려면 구조체가 아닌 필요한 정보만 전달하면 된다.

 

3️⃣ Control Coupling

모듈끼리 전달하며 사용하는 데이터가 실제 데이터가 아닌 제어 요소로만 사용되는 형태다.

간단하게 예를 들어, if문을 조절하는 flag 변수를 서로 주고 받는 상황이다.

if문 안에 있는 두 기능을 아예 나누어 사용하면 coupling이 낮아진다.

 

4️⃣ Common Coupling

두 모듈이 전역변수를 공용으로 사용한다.

 

5️⃣ Content Coupling

한 모듈이 실행되는 도중에 다른 모듈의 기능을 사용하는 형태다.

고급 언어(Java 등)에서는 찾아보기 힘들고 어셈블리 언어에서 종종 나온다...

728x90

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

[디자인패턴] 싱글톤(Singleton) 패턴이란?  (0) 2024.11.08
[소프트웨어공학] SOLID 원칙에 대하여  (0) 2024.05.13
[소프트웨어공학] Cohesion(응집도)란?  (0) 2024.04.19
[소프트웨어공학] Lean Startup이란  (0) 2024.04.06
[소프트웨어공학] 테스팅 환경 (E2E, Integration, Unit)  (0) 2024.03.29
'공부/소프트웨어공학' 카테고리의 다른 글
  • [디자인패턴] 싱글톤(Singleton) 패턴이란?
  • [소프트웨어공학] SOLID 원칙에 대하여
  • [소프트웨어공학] Cohesion(응집도)란?
  • [소프트웨어공학] Lean Startup이란
돌멩이수프
돌멩이수프
Information technology
  • 돌멩이수프
    WHAT DOES "IT" STAND FOR?
    돌멩이수프
  • 전체
    오늘
    어제
    • 분류 전체보기 (238) N
      • 언어 (73)
        • html (3)
        • css (1)
        • java (6)
        • C (26)
        • C++ (2)
        • C# (29)
      • 공부 (7)
        • Unity (43)
        • 게임 서버 (26)
        • 네트워크 (5)
        • 데이터베이스 (7)
        • EFCore (19)
        • 기타 (14)
        • Git (5)
        • 운영체제 (1)
        • 소프트웨어공학 (21)
      • 2024-여름 (12)
      • 자기 관리 (3) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    EFCore
    EntityFramework
    coding
    디자인패턴
    HTML
    C
    C#
    네트워크
    코딩
    java
    라즈베리파이
    Entityfamework
    백준
    Python
    tcp
    유니티
    자바
    게임서버
    C언어
    unity
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
돌멩이수프
[소프트웨어공학] Coupling(결합도)란?
상단으로

티스토리툴바