관리 메뉴

DevBlackCat

정보처리기사 필수 학습: 모듈 구현 완전정복!! 본문

정보처리기사/소프트웨어 개발

정보처리기사 필수 학습: 모듈 구현 완전정복!!

DevBlackCat 2024. 10. 25. 14:29
728x90

모듈구현

단위모듈구현의 개념

  • 기능별로 구현하는 방식 (계산기에서 + , -  * ,/ 기능 개발)
  • 각 모듈은 독립적으로 기능하며 하나의 작업만 수행
  • 가독성,구현,용이성을 제공

 

효과적인 모듈화 

  • 결합도 감소 , 응집도 증가로 독립성강화
  • FAN-OUT은 최소 FAN-IN은 증가                                                                                                                                     ( FAN-IN  : 다른부서가 우리팀을 존나게 필요로함 , FAN-OUT : 우리팀이 다른팀없인 일을 못함)
    • FAN-IN: 하나의 모듈이 얼마나 많은 다른 모듈로부터 호출을 받는지를 나타냅니다.
    • FAN-OUT: 하나의 모듈이 얼마나 많은 다른 모듈을 호출하는지를 나타냅니다.
  • 인터페이스의 복잡성 및 중복성 감소 , 일관성 증가

 

 

이전에 했지만 다시 알아야할 사항 !!  (응집도 ,결합도)

응집도 개념 ★★ ( Cohesion )

- 모듈내부에서 구성요소간 밀접한 관계를 맺고있는정도
- 응집도가 높을수록 필요한 요소들로 구성되어 있다.

분류 설명
기능적 응집도 (Functional Cohesion) (제일 높음) 모듈내부의 모든 기능이 단일 목적으로 수행
순차적 응집도 (Sequential Cohesion) 모듈내에서 한활동으로 나온 출력값을 다른활동이 사용 
통신적 응집도 (Communicational Cohesion) 동일한 입력과 출력을 사용해서 다른기능을 수행하는 활동이 모여있는경우
절차적 응집도 (Procedural Cohesion) 모듈이 다수 기능을 가질떄 모듈 구성요소들이 순차적으로 처리되는 경우
시간적 응집도 (Temporal Cohesion) 특정 시간에 처리되어야 하는 활동을을 한모듈에서 처리하는 경우
논리적 응집도 (Logical Cohesion) 유사한 성격이나 특정형태로 분류된 경우
우연적 응집도 (Coincidental Cohesion) 연관이 없을 경우

리 놀()던시절  통한 가 막혔지

우연적응집도 < 논리적응집도<시간적응집도<절차적응집도<통신적음식접<순차적 응집도<기능적 응집도

 

결합도(Coupling )

- 모듈과 모듈간 관련성/의존성

- 관련이 적어야 독립성이 높아 모듈간 영향이 줄어든다

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

자료=데이터

데스 제외저래 유랑 가 닮았대

자료(데이터)결합도<스탭프결합도<제어결합도<외부결합도<공통 결합도<내용 결합도

 

 

 

단위모델 구현

단위 모듈 설계의 원리

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

 

단위 모듈 테스트

  • 모듈이 정상작동 하는지 확인하는 과정
  • 코드의 정적 분석과 모듈의 동적실행을 통한 테스트 포함
방법 설명
화이트박스 테스트 코드를 직접 확인하면서 내부 로직의 올바름을 검증
메서드(함수) 기반 테스트 다양한 입력값을 통해 메서드의 출력이 예상과 일치하는지 확인
화면 기반 테스트 사용자 인터페이스를 통한 입력과 상호작용을 검증

 

단위 테스트 자동화 도구

도구 설명
JUnit Java를 위한 단위 테스트 프레임워크
CppUnit C++ 언어를 위한 단위 테스트 프레임워크
Unittest Python의 표준 라이브러리 중 하나로, 자동화된 테스트를 지원
HttpUnit HTTP 서버와의 상호작용을 테스트할 수 있는 자바 라이브러리

 

 

 

 

 

728x90