1. 공통 모듈의 개념
모듈이란?
: 크게 독립된 하나의 소프트웨어 또는 하드웨어 단위를 지칭하는 용어
모듈 특징
1) 독립성 : 결합도와 응집도에 의해 측정되며, 상대적인 독립성을 가짐
2) 다양한 조합 : 모듈을 하나로 통합하는 수많은 조합 존재
3) 재사용 : 단독 컴파일이 불가능하며, 재사용 가능
4) 영향 최소화 : 독립성이 높은 모듈일수록 다른 모듈 수정 시 영향을 미치지 않음
공통 모듈이란?
: 전체 프로그램의 기능 중 특정 기능을 처리할 수 있는 실행 코드 의미
: 자체 컴파일이 가능하고, 다른 프로그램에서 재사용 가능
: 공통으로 사용할 수 있는 모듈을 의미하며, 날짜 처리를 위한 유틸리티 모듈 등이 해당
2. 공통 모듈 원칙
1) 정확성(Correctness) : 실제 시스템 구현 시 필요한지 아닌지를 알 수 있도록 정확하게 작성
2) 명확성(Clarity) : 일관되게 이해되고 한 가지로 해석될 수 있도록 작성
3) 완전성(Conpleteness) : 필요하고 요구되는 모든 것을 작성
4) 일관성(Consistency) : 상호 충돌이 없도록 작성
5) 추적성(Traceability) : 유기적 관계에 대한 식별이 가능하도록 작성
3. 모듈화
모듈화란?
: 프로그램이 효율적으로 관리될 수 있도록 시스템을 분해하고 추상화함으로써 소프트웨어 제품의 성능을 향상시키거나 시스템의 수정 및 재사용, 유지 관리를 쉽게 하는 기법
: 수정, 재사용, 유지 관리 등이 용이하도록 기능 단위의 모듈로 분해하는 설계 및 구현 기법
모듈화 기법
- 루틴(Routine) : 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령들의 모임
1) 메인 루틴(Main Routine) : 전체의 개략적인 동작 절차를 표시하도록 만들어진 루틴으로 서브 루틴을 호출
2) 서브 루틴(Subroutine) : 메인 루틴에 의해 필요시마다 호출되는 루틴
모듈화 필요성
: 모듈의 크기가 작아 개수가 많아지면 모듈 통합 비용이 많이 발생
: 모듈의 크기가 크면 통합 비용이 줄어드는 대신 개발 비용이 커짐
바람직한 모듈 설계 방안
- 모듈의 독립성과 재사용성을 높이기 위해 결합도는 낮추고 응집도는 높여야 함
- 복잡도와 중복성을 줄이고 일관성을 유지
- 모듈 기능이 예측 가능해야 하며, 지나치게 제한적이면 안됨
- 적당한 모듈 크기 유지
- 효과적인 제어를 위해 설계에서 계층적 자료 조직이 제시되어야 함
- 유지보수가 용이해야 하며, 이식성을 고려해야 함
4. 모듈화 유형
1) 응집도
: 내부 구성요소 간에 밀접한 관계를 맺고 있는 정도
: 응집도가 높을수록 필요한 요소들로 구성, 낮을수록 관련이 적응 요소들로 구성
2) 결합도
: 모듈간에 어느정도 관련성이 있는지 나타내는 정도
: 관련이 적을수록 독립성이 높아 영향이 적어짐
5. 팬인(Fan-In) 및 팬아웃(Fan-Out)
팬인 및 팬아웃이란?
: 소프트웨어의 구성요소인 모듈을 계층적으로 분석하기 위해 활용
: 시스템 복잡도 최적화를 위해 팬인은 높게, 팬아웃은 낮게 설계
팬인(Fan-In)
- 개념 : 어떤 모듈을 제어 호출하는 모듈의 수
- 모듈 자신을 기준으로 모듈에 들어오면 팬인
- 재사용 측면에서 설계가 잘 되었으나, 장애점 발생 가능
- 팬인이 높으면 관리 비용 및 테스트 비용 증가(들어오는 모듈이 증가하고 이용하는 모듈이 많아지기 때문)
팬아웃(Fan-Out)
- 개념 : 어떤 모듈에 의해 제어 호출되는 모듈의 수
- 모듈 자신을 기준으로 모듈에서 나가면 팬아웃
- 팬아웃이 높을 경우 불필요한 모듈 호출 검토 필요 및 단순화 여부 검토 필요
팬인 및 팬아웃 계산 방법
팬인(Fan-In) : 각 모듈을 제어(호출)하는 모듈의 수 계산
A: 0, A를 제어하는 모듈 없으므로 0
B: 1, B는 A에 의해 제어됨
C: 1, C는 A에 의해 제어됨
아래는 과정이 같으므로 설명 생략
D: 1
E: 1
F: 1
G: 1
H: 2, H는 E와 F에 의해 제어됨
I: 1
J: 1
팬아웃(Fan-In) : 각 모듈이 제어(호출)하는 모듈의 수 계산
A: 3, A가 제어하는 모듈은 B, C, D이므로
B: 2, B가 제어하는 모듈은 E, F
C: 2, C가 제어하는 모듈은 F, G
D: 1, D가 제어하는 모듈은 J
아래는 과정이 같으므로 설명 생략
E: 1
F: 1
G: 1
H, J, I 는 제어하는 모듈이 없음
H: 0
I: 0
J: 0
'학습 기록 > 정보처리기사' 카테고리의 다른 글
[1. 소프트웨어 설계] 소프트웨어 설계 (0) | 2023.08.24 |
---|---|
[1. 소프트웨어 설계] 설계 모델링 (0) | 2023.08.24 |
[1. 소프트웨어 설계] 감성공학 (0) | 2023.08.22 |
[1. 소프트웨어 설계] UI 설계 도구 (0) | 2023.08.21 |
[1. 소프트웨어 설계] UI 흐름설계 및 상세 설계 (0) | 2023.08.21 |