집에서 하는 공부/정보처리기사

[정보처리기사]결합도/응집도 핵심정리

집돌이 공대남 2022. 5. 12. 09:36
반응형

공대남이다.

정보처리기사 2022년 필기, 실기를 치고 나서 느낀 나올 가능성이 높고 지속적으로 나오는 개념들을 정리해보려한다.

사실 이것만 알면 어느 정도 점수(합격)는 받는다~ 를 목표로 개념을 정리해보려 한다.


1. 결합도(Coupling)

-개념

모듈간의 상호 의존하는 정도, 두 모듈 사이간의 연관 관계 (커플이라니~)

결합도가 높으면 높을수록 시스템 구현 및 유지보수가 어려움 (사랑하면 할 수록 티격태격해요~)

 

-종류(내공외제스자)

1. 내용 결합도(Content Coupling) (결합도 강함)

다른 모듈의 내부 기능이나 내부의 속성값을 직접 참조하거나 수정할 때의 결합도(속내부의 내용까지 아는 사이야~)

 

2. 공통 결합도(Common Coupling)

공유되는 공통 데이터 영역을 여러 모듈이 사용/공유 될 때의 결합도(다 공유하는 사이야~)

 

3. 외부 결합도(External Coupling)

다른 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때의 결합도(외부 지인들도 아는 사이야~)

 

4. 제어 결합도(Control Coupling)

다른 모듈 내부의 흐름제어를 위해 통신하거나 제어 요소를 전달할 때의 결합도(뭔가 통제하고 바꾸고 싶은 사이야~)

 

5. 스탬프 결합도(Stamp Coupling)

모듈 간 인터페이스로 배열 등 자료구조가 전달될 때의 결합도(쪽지(인터페이스)를 주고 받은 사이야~)

 

6. 자료 결합도(Data Coupling) (결합도 약함)

모듈 간 인터페이스가 자료 요소로만 구성되는 제일 바람직한 결합도

어떤 모듈이 다른 모듈을 호출하면서 매개 변수나 인수로 데이터를 넘겨주는 방식(옥상에서 호출하여 초콜릿(매개 변수)을 주며 데이터하자고 하는 사이야)-데이트지만 외우기 쉽게 데이터로 바꾸자


결합도(Coupling)은 사람관계로 대입보았는데

글을 보시면 내용결합도가 가장 끈끈한 사이인거로 보인다.

사실 그러면 그럴수록 서로 독립되기가 힘들다는걸로 이해하면 된다.

소프트웨어는 독립되는거일수록 좋은데(항상 그런건 아니지만 통상적으로)

그래서 내용 결합도가 가장 결합도가 높고 안 좋으며, 자료 결합도가 가장 결합도가 낮고 좋다라고

이해하면 된다.

 

2. 응집도(Cohesion)

-개념

모듈 내부 요소들이 서로 관련되어 있는 정도를 의미함.

응집도는 결합도와 다르게 높을수록 품질이 좋음

 

-종류(우논시절교순기)

1. 우연적 응집도(Coincidental Cohesion) (응집도 약함)

모듈 내부의 각 구성 요소들이 서로 관련없는 요소들로만 구성되어 있는 경우의 응집도(우연적인 만남 서로 관련이 없어서 약해)

 

2. 논리적 응집도(Logical Cohesion) 

유사한 성격을 갖는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도(비슷한것 끼리 묶어서 보내야 논리적으로 빠르고 좋다)

 

3. 시간적 응집도(Temporal Cohesion) 

특정 시간에 처리되는 기능을 모아 하나의 모듈로 작성할 경우의 응집도(시간 별로 묶어서 하나로 해~)

 

4. 절차적 응집도(Procedural Cohesion) 

모듈 내부 구성 요소들이 특정 기능을 순차적으로 수행할 경우의 응집도(순차나오면 절차적 응집도 입니다. 순차적 응집도 아닙니다~)

 

5. 교환적(통신적) 응집도(Communication Cohesion) 

동일 입출력을 사용, 서로 다른 기능을 수행하는 요소들이 모였을 경우의 응집도(동일하게 해야 교환 할 때 문제없음)

 

6. 순차적 응집도(Sequential Cohesion) 

모듈 내 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도(선임이 출력한 내용을 후임이 순차적으로 사용)

 

7. 기능적 응집도(Functional Cohesion) (응집도 강함)

모듈 내부의 모든 기능이 단일 문제와 연관될 경우의 응집도(모든 기능이 단일로 응집!)

 

3. 팬인/팬아웃(Fan-in/Fan-out)

시스템 복잡도를 최적화를 위해 팬인(Fan-in)은 높고, 팬아웃(Fan-out)은 낮게 설계하는게 좋다.

 -팬인

모듈안으로 들어오는 선의 수

-팬아웃

모듈 밖으로 나가는 선의 수

직접 그린건데 참.. 아 물론 그림판으로

A에서 나온 선의 수는 2개 그래서 A의 Fan-out수는 2개

B는 A에서 들어오는 선 1개와 D,E로 나가는 선 2개 그래서 Fan-in 1개, Fan-out 2개

C는 Fan-in 1개, Fan-out 1개


 2020년 개정된 시험 이후로 Fan-in,Fan-out이 시험에 나왔었으니,

참고로 보길 바란다.

결합도 응집도는 필기/실기에 꾸준히 나오는 개념이니 꼭 암기하길 바란다.

실기에는 영어로 나올 가능성이 있으니 참고하시길.

파이팅!

 

 

반응형