ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 정보처리기사[실기 핵심 정리] - 모듈 구현
    용어 정리 2024. 4. 6. 19:33

    단위 모듈 구현

    1) 단위 모듈 구현의 개념

    • 소프트웨어를 기능 단위로 분해하여 개별적으로 구현하는 기법
    • 서브시스템, 서브루틴, 작업 단위 등으로 나누어, 각 모듈이 독립적으로 활용될 수 있게 한다.
    • 모듈은 작은 크기를 가지며, 하나의 기능만을 수행하는 것이 이상적이다.
    • 모듈의 크기가 작을수록 이해, 구현 및 테스트가 용이하다

     

    2) 단위 모듈 구현 시 장점

    • 소프트웨어의 효율적인 관리 및 성능 향상에 기여한다.
    • 전체적인 소프트웨어의 복잡성이 감소하고, 이해성이 증대된다.
    • 모듈별 테스트와 통합, 변경이 용이해진다.
    • 기능의 분리가 가능하며, 인터페이스가 단순해진다.
    • 오류의 파급효과를 최소화하고, 모듈의 재사용으로 개발 및 유지보수가 용이해진다.

     

    3) 효과적인 모듈화

    • 결합도(Coupling)를 낮추고, 응집도(Cohesion)를 높여 모듈의 독립성을 강화한다.
    • FAN-OUT(한 모듈이 호출하는 다른 모듈의 수)을 최소화하고, FAN-IN(한 모듈의 호출하는 다른 모듈의 수)을 증가시킨다.
    • 모듈 인터페이스를 평가하여 복잡성과 중복성을 줄이고, 일관성을 높인다.
    • 기능 예측이 가능한 모듈을 정의하여 효과적인 관리와 사용을 도모한다
    • 가능한 한 하나의 입력과 하나의 출력을 유지하여 모듈의 단순성과 이해성을 증대시킨다.

     

    4) 단위 모듈 설계의 원리

    원리 설명
    단계정 분해 단순한 형태로 시작하여 점진적으로 상세화
    추상화 복잡한 문제를 간단하고 일반적인 형태로 변환
    독립성 높은 응집도와 낮은 결합도로 모듈의 독립성 강화
    정보 은닉 모듈 내부의 데이터와 로직을 외부러부터 보호
    분할과 정복 큰 문제를 작은 부분으로 나누어 해결

    결합도

    1)결합도(Conpling)의 개념

    • 모듈과 모듈 간의 관련성/의존성 정도
    • 관련이 적을수록 모듈의 독립성이 높아 모듈 간 영향이 적어진다.
    • 결합도가 작을수록 잘 설계된 모듈

     

    2) 결합도 유형

    유형 설명
    자료 결합도
    (Data Coupling)
    모듈 간의 인터페이스로 값이 전달되는 경우
    스탬프 결합도
    (Stamp Coupling)
    모듈 간의 인터페이스로 배열이나 오브젝트, 스트럭처 등이 전달되는 경우
    제어 결합도
    (Control Coupling)
    단순 처리할 대상인 값만 전달되는 게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우
    외부 결합도
    (External Coupling)
    어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조하는 경우
    공통 결합도
    (Common Coupling)
    파라미터가 아닌 모듈 밖에 선언되어 있는 전언 변수를 참조하고, 전역 변수를 갱신하는 식으로 상호 작용하는 경우
    내용 결합도
    (Content Coupling)
    다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우

    응집도

    1) 응집도(Cohesion)의 개념

    • 모듈 내부에서 구성요소 간에 밀집한 관계를 맺고 있는 정도
    • 응집도가 높을수록 필요한 요소들로 구성되어 있고 낮을수록 관련이 적은 요소들로 구성
    • 응집도가 높을수록 잘 설계된 모듈

     

    2) 응집도 유형

    유형 설명
    기능적 응집도
    (Funtional Cohesion)
    모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우
    스탬프 결합도
    (Sequential Cohesion)
    모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우
    통신적 응집도
    (Communication Cohesion)
    동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우
    절차적 응집도
    (Procedural Cohesion)
    모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그기능을 순차적 으로 수행할 경우
    시간적 응집도
    (Temporal Cohesion)
    연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우
    논리적 응집도
    (Logicla Cohesion)
    유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
    우연적 응집도
    (Coincidental Cohesion)
    모듈 내부의 각 구성요소들이 연관이 없을 경우

    팬인(Fan-in), 팬아웃(Fan-out)

    1) 팬인(Fan-in),팬아웃(Fan-out)의 개념

    • 모듈의 복잡도와 상호작용을 분석하는 데 사용되는 지표
    • 시스템의 복잡도를 측정하고 이를 최적화할 수 있다.
    • 시스템 복잡도를 최적화하기 위해서는 팬인은 높게, 팬 아웃은 낮게 설계
    구분 설명
    팬인(Fan-In) ● 특정 모듈을 호출하거나 참조하는 상위 모듈의 수

    높은 팬인 값은 해당 모듈의 중요성이나 재사용성이 높음을 나타낸다.

    설계 시 팬인 값을 높게 유지하는 것이 좋다
    팬아웃(Fan-Out)   특정 모듈이 호출하거나 참조하는 하위 모듈의 수

      높은 팬아웃 값은 해다 모듈이 여러 다른 모듈들과의 상호작용이 많음을 의미한다.

    설계 시 팬아웃 값을 낮게 유지하는 것이 좋다

    공동 모듈 구현

    1) Annotation 개념

    • 사전적으로는 '주석' 이라는 의미를 가지고 있다
    • 자바코드에 주석처럼 달아 특수한 의미를 부여한다
    • 컴파일 또는 런타임에 해석된다.
Designed by Tistory.