[2023 정보처리기사] 1과목 – 11. 모듈, 코드

1. 모듈

: 모듈화를 통해 분리된 시스템. 하나의 기능을 하는 코드의 집합

– 단독으로 컴파일 가능, 재사용 가능

– 모듈의 독립성은 결합도⋅응집도에 의해 측정

결합도는 약하게, 응집도는 강하게 설계.

  1. 1. 결합도(Coupling)

: 모듈 간에 상호 의존 정도. 모듈 사이의 관계.

  • 자료 결합도(Data Coupling): 모듈 간의 인터페이스가 자료요소로만 구성. => 함수에 인자값 전달
  • 스탬프 결합도(Stamp Coupling): 배열이나 레코드 등의 자료구조가 전달. => 함수에 주소값 전달
  • 제어 결합도(Contrl Coupling): 다른 모듈 내부의 논리적인 흐름을 제어하는 제어 신호를 전달.
  • 외부 결합도(External Coupling): 어떤 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조. => 전역변수 사용
  • 공통 결합도(Common Coupling): 공유되는 공통 데이터 영역을 여러 모듈이 사용.
  • 내용 결합도(Content Coupling): 다른 모듈의 내부 기능 및 내부 자료를 직접 참조. *스파게티 코드

  1. 2. 응집도(Cohesion)

: 모듈의 내부 요소들의 서로 관련된 정도. 정보 은닉 개념을 확장.

  • 기능적 응집도(Functional Cohesion): 모듈 내부의 모든 기능 요소들이 단일문제와 연관되어 수행.
  • 순차적 응집도(Sequential Cohesion: 모듈 내 하나의 활동의 출력이 다른 활동의 입력으로 사용.
  • 교환(통신)적 응집도(Communication Cohesion): 동일한 입력⋅출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들을 모은 것.
  • 시간적 응집도(Temporal Cohesion): 특정 시간에 처리되는 기능을 모음.
  • 논리적 응집도(Logical Cohesion): 유사한 성격을 갖는 기능을 모음.
  • 우연적 응집도(Coincidental Cohesion): 서로 관련 없는 요소를 모음.

  1. 3. 팬인(Fan-In) / 팬아웃(Fan-Out)

– 팬인: 자신을 사용하는 모듈의 수.

– 팬아웃: 자신이 호출하는 모듈의 수

팬인은 높게, 팬아웃은 낮게 설계

<출처: https://post.naver.com/viewer/postView.nhn?volumeNo=27424202&memberNo=26040503>

  1. 4. 공통모듈

: 여러 프로그램에서 공통적으로 사용할 수 있는 모듈.

    1. 4. 1. 공통 묘듈 구현 시 준수해야 할 명세 기법

  • 정확성(Correctness): 해당 기능이 필요하다는 것을 알 수 있게  정확히 작성.
  • 명확성(Clarity): 해당 기능이 중의적으로 해석되지 않도록 명확하게 작성.
  • 완전성(Completeness): 시스템 구현을 위해 필요한 모든 것을 기술.
  • 일관성(Consistency): 기능들 간 충돌이 발생하지 않도록 작성.
  • 추적성(Traceability): 기능에 대한 요구사항의 출처, 관련 시스템 등의 관계를 파악할 수 있도록 작성.

    1. 4. 2. 재사용(Reuse)

: 이미 개발된 기능을 파악하고 재구성하여, 새로운 시스템 또는 기능 개발에 사용하기 적합하도록 최적화 시키는 작업. => 비용과 개발 시간을 절약.

  • 재사용 규모에 따른 구분
    • 함수와 객체: 클래스, 메소드 단위로 소스 코드 등을 재사용.
    • 어플리케이션: 공통 업무를 처리할 수 있도록 구현된 어플리케이션을 공유.
    • 컴포넌트: 컴포넌트 자체를 수정하지 않고 인터페이스를 통해 컴포넌트 단위로 재사용.

 

2. 코드

: 컴퓨터를 이용해 자료를 처리하는 과정에서 식별⋅분류⋅배열을 용이하게 하기 위해 사용하는 기호.

* 코드의 기능: 식별, 분류,배열

2. 1. 코드의 종류

  • 순차 코드(Sequence Code): 차례로 일련번호를 부여.

– Ex) 1, 2, 3, 4 ···

  • 블록 코드(Block Code): 공통성이 있는 것끼리 블록으로 구분.

– Ex) 1001 ~ 1100: 총무부, 1101 ~ 1200: 영업부

  • 10진 코드(Decimal Code): 항목을 0~9까지 10진 분할 후, 다시 각각에 대해 분할.

– Ex) 1000: 공학, 1100: SW공학, 1110: 소프트웨어 설계

  • 그룹 분류 코드(Group Classification Code): 일정 기준에 따라  대⋅중⋅소 등으로 구분하고, 각 그룹에서 일련번호를 부여.

– Ex) 1-01-001: 본사-총무부-인사계, 2-01-001: 지사-총무부-인사계

  • 연상 코드(Mnemonic Code): 대상 항목의 명칭이나 약호와 관계있는 숫자⋅문자⋅기호를 이용.

– Ex) TV-40: 40인치 TV

  • 표의 숫자 코드(Significant Digit Code): 대상항목의 성질⋅물리적 수치를 그대로 코드에 적용.

– Ex) 120-720-1500: 두께x폭x길이가 120x720x1500인 강판

  • 합성 코드(Combine Code): 2개 이상의 코드를 조합‎.

Leave a Comment