[소공 목차]
개념
- 프로그램이 효율적으로 관리될 수 있도록 하는 소프트웨어의 특성으로 모듈화를 수행하면 소프트웨어 복잡도가 감소하고 변경이 용이하며 프로그램 구현 편의성이 증대됨
- 시스템을 분해하고 추상화를 통하여 소프트웨어 제품의 성능을 향상시키거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하게 하는 설계 방법
- 모듈화는 구현 및 유지보수에 있어 비용 및 성능을 크게 좌우하는 요소로, 설계 및 구현 단계에 있어서도 중요한 원리로 자리 잡고 있음
모듈화의 원리
구분 | 설명 |
비용과 모듈과의 관계 | 모듈수가 증가하면 인터페이스 비용의 증가 |
모듈의 독립성 | 낮은 결합도와 높은 응집도를 가짐 |
자료 추상화 | 각 모듈 자료구조를 액세스하고 수정하는 함수 내에 자료 구조의 표현 내역을 은폐 |
모듈화의 주요 특성
구분 | 설명 | 특징 |
모듈성 (Modularity) |
프로그램을 효율적으로 관리할 수 있도록 하는 소프트웨어의 특성으로 시스템 분해 및 추상화를 통해 소프트웨어 성능 향상을 위한 적합한 프로그램 단위 | 성능향상 컴포넌트화 재사용성 |
응집도 (Cohesion) |
모듈의 독립성을 나타내는 개념으로 하나의 모듈 내부 처리 요소들간에 기능적 연관도를 측정하는 척도 | 높을수록 좋음 |
결합도 (Coupling) |
소프트웨어 구조에서 모듈간 연관성을 측정하는 척도 | 낮을수록 좋음 |
모듈화 기법의 종류
구분 | 기법 | 내용 |
설계 | Module |
|
컴포넌트 |
|
|
서비스 |
|
|
구현 | Macro |
|
Function |
|
|
Inline |
|
- Module
- 전체 프로그램을 구성할 요소인데, 기능 단위로 묶은 것이며 재사용을 용이하게 하기 위해 만든다.
Component
- 재사용 가능한 블럭, 다른 component들의 조합으로도 가능
다른 서버에 배치 가능, 서비스 위해 서로 통신 가능
응집도/결합도
fan-in/fan-out
'메가노트 > 토픽과제(정리)' 카테고리의 다른 글
function point(배준호 대리님) (0) | 2022.10.10 |
---|---|
무중단 배포(유준수 사장님) (0) | 2022.10.08 |
테스트 설계(홍진택 주무관님) (0) | 2022.10.08 |
블랙박스, 화이트박스 테스트(이강욱 선임님) (0) | 2022.10.08 |
사업타당성 평가(이재용 부장님) (0) | 2022.10.08 |