ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 결합도/응집도
    정보처리기사 2022. 10. 13. 16:27

    응집도를 높히고, 결합도를 낮춰야 좋은 소프트웨어

     

    결합도(Coupling): 모듈과 모듈간 상호 의존 정도

    응집도(Cohesion): 모듈 내부의 기능적인 집중 정도

     

     응집도 유형

    • 기능적(Functional): 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우
    • 순차적(Sequential): 모듈 내 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우
    • 통신적(Communication): 동일한 입출력을 사용해 다른 기능을 수행하는 활동들이 모여 있을 경우
    • 절차적(Procedural): 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우
    • 시간적(Temporal): 연관된 기능이라기보다 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리하는 경우
    • 논리적(Logical): 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
    • 우연적(Coincidental): 모듈 내부의 각 구성 요소들이 연관이 없을 경우

    결합도 유형: 낮은 순 > 높은 순

    • 자료 결합도(Data) : 모듈 간의 인터페이스로 값이 전달되는 경우
      • 변수로 정수형 같은 값이 전달되는 경우 > fun a(10)
    • 스탬프 결합도(Stamp) : 모듈 간의 인터페이스로 배열이나 오브젝트,
      • 변수로 배열, 오브젝트, 구조체가 전달되는 경우 > fun a(arr[10])
    • 제어 결합도(Control) : 단순 처리할 대상인 값만 전달되는게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우
      • 전달된 매개변수가 제어 요소(if문 등) 에 사용되는 경우 > fun a(x, y) if(x > 10) ...
    • 외부 결합도(External): 어떤 모듈에서 선언한 데이터(변수)를 외부에 다른 모듈에서 참조하는 경우
    • 공통 결합도(Common) : 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고
    •                                        전역 변수를 갱신하는 식으로 상호 작용하는 경우
    • 내용 결합도(Content) : 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우(스파게티 코드)
    반응형

    '정보처리기사' 카테고리의 다른 글

    테스트 관련  (0) 2022.10.13
    소프트웨어 생명주기 V모델  (0) 2022.10.13
    객체지향 설계 원칙(SOLID)  (0) 2022.10.13
    관계대수, 관계해석  (0) 2022.10.12
    SQL, JOIN  (0) 2022.10.12

    댓글

Designed by Tistory.