개요
•
모듈화를 통해 분리된 시스템의 각 기능을 의미한다.
◦
서브루틴, 서브시스템, 소프트웨어 내의 프로그램, 작업 단위 등을 의미한다.
결합도
•
모듈 간에 상호 의존하는 정도를 의미한다.
자료 결합도(제일 약함)
•
모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도
스탬프 결합도
•
모듈 간의 인터페이스가 배열이나 레코드 등의 자료 구조로 전달될 때의 결합도
제어 결합도
•
어떤 모듈이 다른 모듈 내부의 흐름을 제어하기 위해 제어 신호나 제어 요소를 전달하는 결합도
외부 결합도
•
어떤 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때의 결합도
공통 결합도
•
공통 데이터 영역을 여러 모듈에서 사용할 때의 결합도
내용 결합도(제일 강함)
•
한 모듈이 다른 모듈의 내부 기능 및 자료를 직접 참조하거나 수정할 때의 결합도
응집도
•
모듈의 내부 요소들이 서로 관련되어 있는 정도이다.
우연적 응집도(제일 약함)
•
모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우
논리적 응집도
•
유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우
시간적 응집도
•
특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우
절차적 응집도
•
모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우
통신적 응집도
•
동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우
순차적 응집도
•
모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우
기능적 응집도
•
모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우
팬인 / 팬아웃
•
팬인은 어떤 모듈을 제어하는 모듈의 수
•
팬아웃은 어떤 모듈에 의해 제어되는 모듈의 수
N-S 차트
•
논리의 기술에 중점을 두고 도형을 이용해 표현하는 방법
•
연속, 선택 및 다중 선택, 반복의 3가지 제어 논리 구조로 표현
단위 모듈
•
소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것
IPC
•
모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합
◦
대표 메소드
▪
공유 메모리
▪
소켓
▪
세마포어
▪
파이프와 네임드 파이프
▪
메시지 큐잉
공통 모듈 명세 기법의 종류
•
여러 모듈에서 공통으로 사용할 수 있는 모듈
정확성
•
시스템 구현 시 해당 기능이 필요하다는 것을 알 수 있도록 정확히 작성
명확성
•
해당 기능을 이해할 때 중의적으로 해석되지 않도록 명확하게 작성
완전성
•
시스템 구현을 위해 필요한 모든 것을 기술
일관성
•
공통 기능들 간 상호 충돌이 발생하지 않도록 작성
추적성
•
기능에 대한 요구사항의 출처, 관련 시스템 등의 관계를 파악할 수 있도록 작성