Jong_seoung 2024. 1. 11. 17:11
반응형

모듈

모듈의 개념

  • 모듈이란, 크게 독립된 하나의 소프트웨어/ 하드웨어를 지칭

모듈화를 통해 분리된 시스템의 기능

  • 서브 프로그램
  • 서브 루틴
  • 소프트웨어 내의 단위 프로그램
  • 작업 단위

 

모듈의 기본요소

  1. 입력
  2. 출력
  3. 기능
  4. 기관 - 모듈 내부 기능이 수행되는 알고리즘을 의미
  5. 내부자료 - 모듈 내부의 데이터들을 의미

 

공유도와 제어도

공유도

  • 해당 모듈을 사용하는 상위 모듈들의 개수
  • 이상적인 모듈 설계지만, 단일 실패지점이 발생할 가능성이 있다.

제어도

  • 하위 모듈들의 개수
  • 불필요한 호출이 있는지, 업무 로직을 좀 더 단순화할 수 있는지 검토해야한다.

 

모듈 설계 시 고려사항

  1. 모듈의 크기가 작을수록 모듈의 개수가 많아지므로 모듈을 통합하는 비용이 커진다.
  2. 모듈의 크기가 클수록 모듈의 개수가 적어지므로 개발 비용이 커진다.
  3. 통합 비용과 개발비용을 적절히 조절한다.

 

모듈의 특징

  1. 각각의 모듈은 상대적으로 독립성을 가지고 있다.
  2. 모듈은 단독으로 컴파일할 수 있으며, 재사용할 수 있다.
  3. 독립성이 높은 모듈일수록 수정 시 다른 모듈에 영향을 거의 미치지 않고, 오류 발생 시 쉽게 해결할 수 있다.
  4. 모듈의 독립성은 결합도와 응집도에 의해 측정된다.
  5. 모듈의 독립성을 높이는 방법
    • 모듈의 결합도는 약하게
    • 응집도는 강하게
    • 모듈의 크기는 작세

 

 공통 모듈

공통 모듈의 개념

  • 프로그램에서 공통적으로 사용할 수 있는 모듈
  • 정보 시스템 구축 시 자주 사용하는 기능들을 모듈화하여 재사용이 가능한 패키지로 제공하는 것이다.

 

공통 모듈의 설계 원칙

  • 정확성 - 시스템 구현에 필요 여부를 정확히 판단할 수 있도록 설계
  • 명확성 - 기능의 구성이 한 가지로 해석될 수 있도록 일관되게 설계
  • 완전성 - 시스템 구현에 필요한 모든 요구사항을 수행할 수 있도록 설계
  • 일관성 - 상호 충돌없이 적용될 수 있도록 설계
  • 추적성 - 요구사항의 출처, 관련 시스템등의 관계를 파악

 

공통 모듈의 재사용 범위

  1. 함수와 객체 재사용
  2. 컴포넌트 재사용
  3. 애플리케이션 재사용

 

소프트웨어 재공학

소프트웨어 재사용의 기본 기술

  1. 생성 중심(모듈화)
    • 추상화 형태로 쓰여진 명세를 구체화하여 재사용 단위를 찾아 발전시키는 기술
    • 패턴 구성 방법
  2. 합성 중심(모델화)
    • 모듈을 조립하여 소프트웨어를 완성시키는 기술
    • 블록 구성 방법

재사용 모듈 설계의 유의사항

  • 결합도는 약하게, 응집도는 높게 구성되어야 한다.
  • 누구나 쉽게 이해하고 사용할 수 있도록 사용법이 공개되어야한다.
  • 공유도는 높이고, 제어도는 낮추어 설계되었는지 검토한다.
  • 효과적인 제어를 위해 모듈 설계가 계층적으로 제시되어야 한다.
  • 모듈은 유지보수가 용이하고 지나치게 제한적이지 않아야 한다.

 

소프트웨어 재공학

  1. 소프트웨어 재공학의 개념
    • 소프트웨어의 위기를 유지보수의 생산성으로 해결하는 방법
    • 시스템에 대한 재분석을 통해 공학적으로 우수한 시스템으로 발전
    • 도구를 사용하여 정보 저장소의 정보를 충분히 활용하여 분석
    • 분석, 재구성, 역공학, 이식 활동등으로 구분 - 모두 기존 산출물을 다시 활용하여 생산성을 높이는 것이 목적
  2. 소프트웨어 재공학의 과정
    • 분석
    • 재구성
    • 역공학
    • 이식
  3. 역공학
    • 데이터 처리 과정에 대한 정보를 재발견하거나 다시 만들어내는 작업
    • 분석 및 설계 정보를 추출한다.
    • 외계인 코드를 분석하여 구성요소와 그 관계를 파악하여 설계도를 추출한다.
    • 코드의 역공학: 자료의 흐름도 생성
    • 데이터의 역공학: 자료 사전을 생성
반응형