모듈의 개요

  • 모듈화를 통해 분리된 시스템의 각 기능
  • 소프트웨어 내의 프로그램, 작업 단위 등과 같은 의미로 사용된다.
  • 단독 컴파일이 가능하며, 재사용 할 수 있다.
  • 모듈의 독립성은 결합도(Coupling)과 응집도(Cohesion)에 의해 측정되며 결합도는 약하게, 응집도는 강하게, 모듈의 크기는 작게 만드는 것이 바람직하다.

결합도

  • 결합도는 강도에 따라 다음과 같이 나타난다.
  • 결합도가 약한 순서
    • 자료 결합도(Data Coupling)
    • 스탬프 결합도(Stamp Coupling)
    • 제어 결합도(Control Coupling)
    • 외부 결합도(External Coupling)
    • 공통(공유) 결합도(Common Coupling)
    • 내용 결합도(Content COupling)
  • 위부터 아래로 갈 수록 결합도가 강해지며 강할 수록 좋지 않은 모듈이다.
  • 결합도가 강하면 유지보수 작업이 어렵다.

응집도

  • 응집도는 강도에 따라 다음과 같이 나타난다.
  • 응집도가 강한 순서
    • 기능적 응집도(Functional Cohesion)
    • 순차적 응집도(Sequential Cohesion)
    • 교환(통신)적 응집도(Communication Cohesion)
    • 절차적 응집도(Procedural Cohesion)
    • 시간적 응집도(Temporal Cohesion)
    • 논리적 응집도(Logical Cohesion)
    • 우연적 응집도(Coincidental Cohesion)

팬인(Fan-In)/팬아웃(Fan-Out)

  • 팬인은 어떤 모듈을 제어(호출)하는 모듈의 수를 나타낸다.
  • 팬아웃은 어떤 모듈이 제어(호출)되는 모듈의 수를 나타낸다.
  • 팬인과 팬아웃을 이용하여 시스템의 복잡도를 알 수 있다.
  • 팬인이 높으면 재사용 측면에서 설계가 잘되었다고 할 수 있다.
  • 팬인이 높으면 단일 장애점이 발생할 수 있으므로 중점적인 관리가 필요하다.
    • 단일 장애점은 시스템의 구성 요소 중 작동하지 않으면 전체 시스템이 중단되는 요소를 의미하며 단일 실패점이라고도 한다.
  • 팬아웃이 높으면 불필요하게 다른 모듈을 호출하는지 검토하고 단순화 할 수 있는지 여부에 대한 검토가 필요하다.
  • 쉽게 모듈에서 나가면 팬아웃 들어오면 팬인이다.
  • 시스템 복잡도를 최적화하려면 팬인은 높게, 팬아웃은 낮게 설계해야 한다.

N-S차트(Nassi-Schneiderman Chart)

  • 논리의 기술에 중점을 둔 도형을 이용한 표현 방법으로 박스 다이어그램, Chapin Chart라고 한다.
  • 제어 논리 구조를 표현한다.
  • 읽기는 쉽지만 작성하기는 어렵고 임의로 제어를 전이하는 것이 불가하다.
  • 선택과 반복의 구조를 시각적으로 표현한다.

profile
비전공자 개발초보입니다!

0개의 댓글