공통 모듈 구현
1. 모듈
- 하나의 완전한 기능을 수행할 수 있는 독립된 실체
2. 모듈화
- SW의 성능을 향상시키거나 프로그램을 효율적으로 관리할 수 있도록 시스템을 분해하고 추상화하는 기법
3. 모듈화 기법
기법 | 설명 |
루틴 | SW에서 특정 동작을 수행하는 일련의 코드로서 기능을 가진 명령들의 모임 |
메인 루틴 | 프로그램의 주요한 부분. 전체의 개략적인 동작 절차를 표시하도록 만들어진 루틴 |
서브 루틴 | 메인 루틴에 의해 필요할 때마다 호출되는 루틴 |
4. 응집도 (Cohesion)
- 모듈의 독립성을 타나내는 정도. 모듈 내부 구성요소간 연관 정도 (낮을수록 나쁜 품질, 높을수록 좋은 품질)
5. 응집도의 유형
유형 | 설명 |
우연적 응집도 (Coincidental Cohesion) (가장 낮음) (나쁜 품질) |
모듈 내부의 각 구성요소가 연관이 없을 경우 |
논리적 응집도 (Logical Cohesion) |
유사한 성격, 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우 |
시간적 응집도 (Temporal Cohesion) |
특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우 |
절차적 응집도 (Procedural Cohesion) |
모듈이 다수의 관련 기능을 가질 때, 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우 |
통신적 응집도 (Communication Cohesion) |
동일한 입출력을 사용하여, 다른 기능을 수행하는 활동들이 모여있는 경우 |
순차적 응집도 (Sequential Cohesion) |
한 활동으로부터 나온 출력 값이 다른 활동이 사용할 경우 |
기능적 응집도 (Functional Cohesion) (가장 높음) (좋은 품질) |
모듈 내부 모든 기능이 단일한 목적을 위해 수행되는 경우 |
6. 결합도 (Coupling)
- 모듈 내부가 아닌 외부 모듈과의 연관도 or 모듈 간의 상호 의존성 (높을수록 나쁜 품질, 낮을수록 좋은 품질)
7. 결합도의 유형
유형 | 설명 |
내용 결합도 (Content Coupling) (가장 높음) (나쁜 품질) |
다른 모듈 내부에 있는 변수 or 기능을 다른 모듈에서 사용하는 경우 |
공통 결합도 (Common Coupling) |
파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 갱신하는 식으로 상호작용하는 경우 |
외부 결합도 (External Coupling) |
두 개의 모듈이 외부에서 도입된 인터페이스를 공유할 경우 |
제어 결합도 (Control Coupling) |
어떤 모듈이 다른 모듈의 내부 논리 조작을 제어하기 위한 목적으로 제어 신호를 이용해 통신하는 경우 |
스탬프 결합도 (Stamp Coupling) |
인터페이스로 배열, 객체, 구조 등이 전달되는 경우 |
자료 결합도 (Data Coupling) (가장 낮음) (좋은 품질) |
파라미터를 통해서만 상호작용이 일어나는 경우 |
8. MVC 패턴 역할
구분 | 역할 |
모델(Model) | 애플리케이션이 무엇을 할 것인지를 정의 |
뷰(View) | 화면에 무엇인가를 보여주기 위한 역할 |
컨트롤러(Controller) | 모델이 어떻게 처리할지를 알려주는 역할 |
9. 팬인(Fan-In) 및 팬아웃(Fan-Out)
- SW의 구성요소인 모듈을 계층적으로 분석하기 위해 활용
- 팬인 : 어떤 모듈을 제어(호출)하는 모듈의 수
- 팬아웃 : 어떤 모듈에 의해 제어(호출)되는 모듈의 수
'정보처리기사 > DB' 카테고리의 다른 글
소프트웨어 개발 보안 설계 2 (0) | 2023.04.03 |
---|---|
소프트웨어 개발 보안 설계 1 (0) | 2023.04.01 |
개발환경 구축 (0) | 2023.03.30 |
집계성 SQL 작성 (0) | 2023.03.29 |
트랜잭션 2 (0) | 2023.03.29 |