정보처리기사 필기 1과목 - 소프트웨어 설계 : 공통 모듈 설계
[1] 공통 모듈(Module)
1. 모듈
- 전체 프로그램의 기능 중 특정 부분의 기능을 처리할 수 있는 단위 실행 코드
- 자체적으로 컴파일 가능하며, 다른 프로그램에서 재사용 가능
* 모듈화 : 소프트웨어를 각 기능별로 분할하는 것
2. 공통 모듈
- 날짜 처리를 위한 유틸리티 모듈 등 여러 기능 및 프로그램에서 공통적으로 사용할 수 있는 모듈을 의미
[2] 모듈의 재사용
- 개발 시간 및 비용 절감을 위하여 이미 검증된 기능을 파악하고 재구성하여, 시스템에 응용하기 위해 적합하게 최적화 시키는 작업
- 공통 모듈의 재사용을 위해서는 외부 모듈과의 연관성(결합도)은 적어야 하며, 자체적인 완성도(응집도)는 높아야 함
* 재사용 규모에 따른 분류 ⭐
분류 | 내용 |
함수와 객체 재사용 | - 클래스나 메소드 단위로 사용하며, 소스 코드 등을 재사용 |
컴포넌트 재사용 | - 컴포넌트 단위로 재사용하며, 컴포넌트 자체는 수정하지 않고 인터페이스를 통해 통신 |
애플리케이션 재사용 | - 공통된 업무가 기능을 제공하도록 구현된 애플리케이션을 공유하여 재사용 |
[3] 공통 모듈 명세 기법 ⭐⭐
정확성 | 명확성 | 완전성 | 일관성 | 추적성
1. 정확성 (Correctness) : 해당 기능이 실제 시스템 구현 시 필요한지 여부를 알 수 있도록 정확하하게 작성
2. 명확성 (Clarity) : 해당 기능에 대해 일관되게 이해되고 한 가지로 해석될 수 있도록 작성
3. 완전성 (Completeness) : 시스템이 구현될 때 필요하고 요구되는 모든 것을 기술
4. 일관성 (Consistency) : 공통 기능들 간에 상호 충돌이 없도록 작성
5. 추적성 (Traceability) : 공통 기능에 대한 요구사항 출처와 관련 시스템 등의 유기적 관계에 대한 식별이 가능하도록 작성
[4] 공통 모듈 설계
1. 모듈화(Modularity)
- 시스템 기능들을 모듈 단위로 나눠 소프트웨어의 성능 및 재사용성을 향상 시키는 것
- 프로그램이 효율적으로 관리될 수 있도록 시스템을 분해하고 추상화함으로써 소프트웨어 제품의 성능을 향상시키거나 시스템의 수정 및 재사용, 유지 관리를 용이하게 하는 기법을 의미
2. 모듈화 필요성
- 모듈의 크기가 너무 작아서 모듈 개수가 많아지면 모듈 간의 통합 비용이 많이 듦
- 모듈의 크기가 너무 크면 모듈 간의 통합 비용이 상대적으로 줄어드는 대신 모듈 하나를 개발하는 데 드는 비용이 커짐
[5] 모듈의 독립성 측정 지표 (응집도, 결합도) ⭐⭐⭐
1. 응집도
- 응집도는 모듈 내부에서 구성 요소 간에 밀접한 관계를 맺고 있는 정도로 평가됨 (모듈의 내부 요소들이 서로 관련되어 있는 정도)
- 응집도가 높을수록 필요한 요소들로 구성되어 있고 낮을수록 관련이 적은 요소들로 구성되어 있음
* 응집도의 유형 및 설명
구분 | 설명 |
기능적 응집도 (Functional Cohesion) |
- 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우 |
순차적 응집도 (Sequential Cohesion) |
- 모듈 내에서 한 활동으로부터 나온 출력 값을 다른 활동이 사용할 경우 |
통신적(교환적) 응집도 (Communicaion Cohesion) |
- 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동이 모여있을 경우 |
절차적 응집도 (Procedual Cohesion) |
- 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우 |
시간적 응집도 (Temporal Cohesion) |
- 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우 |
논리적 응집도 (Logical Cohesion) |
- 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우 |
우연적 응집도 (Coincidental Cohesion) |
- 모듈 내부의 각 구성 요소들이 연관이 없을 경우 |
* 응집도와 품질
- 다양한 기준으로 모듈을 구성할 수 있으나, 품질 측면에서 기능성 응집도가 가장 품질이 높고, 우연적 응집도가 가장 낮음
* 응집도 낮음(나쁜 품질) ▶ 응집도 높음(좋은 품질)
우연적 응집도 ▶ 논리적 응집도 ▶시간적 응집도 ▶ 절차적 응집도 ▶ 통신적 응집도 ▶ 순차적 응집도 ▶기능적 응집도
2. 결합도
- 모듈과 모듈 간에 어느 정도 관련성이 있는지를 나타내며, 관련이 적으ㄹ수록 독립성이 높아 모듈 간 영향이 적어지게 됨
* 결합도의 유형 및 설명
구분 | 설명 |
자료 결합도 (Data Coupling) |
- 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호작용이 일어나는 경우 - 어떤 모듈이 다른 모듈을 호출하면서 매개 변수(파라미터)나 인수로 데이터를 넘겨주고, 호출 받은 모듈은 받은 데이터에 대한 처리 결과를 다시 돌려주는 결합도 |
스탬프 결합도 (Stamp Coupling) |
- 모듈 간의 인터페이스로 배열이나 오브젝트, 스트럭처 등이 전달되는 경우 (자료구조가 전달) |
제어 결합도 (Control Coupling) |
- 단순 처리할 대상인 값만 전달되는 게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우 |
외부 결합도 (External Coupling) |
- 어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도 |
공통 결합도 (Common Coupling) |
- 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우 - 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합 |
내용 결합도 (Content Coupling) |
- 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우 |
* 결합도와 품질
- 다양한 결합으로 모듈을 구성할 수 있으나 품질 측면에서 자료 결합도가 가장 품질이 높고, 내용 결합도가 가장 낮음
* 결합도 높음(낮은 품질) ▶ 결합도 낮음(좋은 품질)
내용 결합도 ▶ 공통 결합도 ▶ 외부 결합도 ▶ 제어 결합도 ▶ 스탬프 결합도 ▶ 자료 결합도
'자격증 > 정보처리기사 필기' 카테고리의 다른 글
[정보처리기사 필기] SW 설계 : 미들웨어 솔루션 명세 (0) | 2023.01.15 |
---|---|
[정보처리기사 필기] SW 설계 : 코드 (0) | 2023.01.15 |
[정보처리기사 필기] SW 설계 : 현행 시스템 분석 / 네트워크 분석 (0) | 2023.01.12 |
[정보처리기사 필기] SW 설계 : 품질 요구사항 (0) | 2023.01.12 |
[정보처리기사 필기] SW 설계 : 사용자 인터페이스(UI) (0) | 2023.01.12 |