2020 정처기 필기 - 1.3 애플리케이션 설계(2)

모듈

모듈의 개요

  • 모듈화를 통해 분리된 시스템의 각 기능들
  • 서브루틴, 서브시스템, 소프트웨어 내의 프로그램, 작업 단위 등과 가튼 의미로 사용
  • 단독으로 컴파일 가능하며 재사용 할 수 있음
  • 각 모듈의 기능이 서로 독립적이고 모듈이 하나의 기능만을 수행하고 다른 모듈과의 과도한 상호작용을 배제함
  • 독립성이 높을수록 모듈을 수정해도 다른 모듈에 영향이 없어 오류가 발생해도 쉽게 해결 가능
  • 모듈의 독립성을 높이기 위해서는 결합도는 약하게, 응집도는 강하게 해야함

결합도

  • 모듈 간에 상호 의존도 또는 모듈 사이의 연관 관계
  • 결합도와 품질은 반비례 관계
  • 결합도가 강하면 시스템 구현 및 유지보수 작업이 어려움

응집도

  • 정보 은닉 개념을 확장한 것으로 모듈의 내부 요소들의 서로 관련되어 있는 정도
  • 모듈이 독립적인 기능으로 정의되어 있는 정도
  • 응집도와 품질은 비례 관계

팬 인/아웃

  • 팬 인 : 호출하는 모듈의 수
  • 팬 아웃 : 호출되는 모듈의 수

공통 모듈

공통 모듈의 개요

  • 여러 프로그램에서 공통적으로 사용할 수 있는 모듈
  • 자주 사용되는 계산식이나 매번 필요한 사용자 인증 같은 기능들이 공통 모듈로 구성될 수 있음
  • 공통 모듈의 명세 기법 : 정확성, 명확성, 완전성, 일관성, 추적성

재사용

  • 비용과 시간을 절약하기 위해 이미 개발된 기능들을 파악하고 재구성하여 새로운 시스템 개발에 사용하기 적합하도록 최적화 시키는 작업
  • 재사용되는 대상은 외부 모듈과의 결합도는 낮고 응집도는 높아야 함

효과적인 모듈 설계 방안

  • 결합도는 줄이고 응집도는 높여 모듈의 독립성과 재사용성을 높임
  • 하나의 입구와 하나의 출구를 가져야 함

코드

코드의 개요

  • 컴퓨터를 이용하여 자료를 처리하는 과정에서 분류, 조합 및 집계를 용이하게 하고 특정 자료의 추출을 쉽게 하기 위해 사용하는 기호
  • 코드의 기능 : 식별 기능, 분류 기능, 배열 기능

코드의 종류

  • 순차 코드 : 일정 기준에 따라 최초의 자료부터 일련번호를 부여하는 방법
  • 블록 코드 : 대상 항목에서 공통적인 것을 블록으로 구분하고 블록 내에 일련번호를 부여하는 방법
  • 10진 코드 : 대상 항목을 0~9까지 10진 분할하고 다시 각각에 대하여 10진 분할을 필요한 만큼 반복하는 방법
  • 그룹 분류 코드 : 일정 기준에 따라 대분류, 중분류, 소분류 등으로 구분하고 그룹 안에서 일련번호를 부여하는 방법
  • 연상 코드 : 항목의 명칭이나 약호와 관계있는 숫자, 문자, 기호를 이용하여 코드를 부여하는 방법
  • 표의 숫자 코드 : 항목의 성질(길이, 넓이, 부피 등)의 물리적인 수치를 그대로 코드에 적용시키는 방법
  • 합성 코드 : 하나의 코드로 수행하기 어려운 경우 2개 이상의 코드를 조합하여 적용시키는 방법

코드 부여 체계

  • 코드(이름)만으로도 개체의 용도와 적용 범위를 알 수 있도록 코드를 부여하는 방식
  • 시스템의 고유한 코드와 개체를 나타내는 코드 등이 정의되어야 함

출처