소프트웨어 생명주기
정의 : 소프트웨어가 필요에 의하여 만들어진 후 운영되기까지의 전체 과정을 말한다.
일반적인 소프트웨어 생명주기 8단계
- 개발 타당성 > 개발 계획 수립 > 요구사항 분석 > 소프트웨어 설계 > 소프트웨어 구현 > 테스트 > 운용 > 유지보수
결합도(=의존도)(Coupling)
정의
- 어떤 모듈이 다른 모듈에 의존하는 정도를 나타내는 것.
- 결합도가 낮을수록 높은 응집도를 가진다.
결합도의 개념적인 모델
종류 | 내용 |
자료 결합도 (Data coupling) |
- 모듈들이 파라메터 등을 통해 데이터를 공유하는 경우이다. - 각 데이터가 기본적인 것(elementary piece)이고, 그 데이터들이 공유되는 유일한 데이터이여야 한다(ex. 제곱근을 계산하는 함수로 하나의 정수를 전달하는 경우). |
스탬프 결합도 (Stamp(Control) coupling) |
- 모듈들이 데이터 구조를 공유하고, 그 서로 다른 일부만을 사용하는 경우이다. - 접근할 필요가 없는 필드만 수정되는 경우에도 (데이터의 배치가 변경되므로), 레코드(필드)를 읽는 방법을 변경해야 한다. |
제어 결합도 (Control coupling) |
- 하나의 모듈이 다른 모듈으로 무엇을 해야하는지에 대한 정보를 넘겨줌으로써 다른 모듈의 흐름을 제어하는 경우이다. |
외부 결합도 (External coupling) |
- 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 때 발생한다. - 이는 기본적으로 외부 툴이나 디바이스와의 통신과 관련이 있다. |
공통 결합도 (Common(Global) coupling) |
- 두 개의 모듈이 같은 글로벌 데이터를 공유하는 상태이다(ex. 전역 변수). - 공유 자원(변수)를 변경하면, 그 자원(변수)를 사용하는 모든 모듈의 변경이 필요하다. |
내용 결합도 (Content(Pathological) coupling) |
- 하나의 모듈이 다른 모듈의 내부 동작을 수정하거나 내부 동작에 의존하는 상태이다(ex.다른 모듈의 로컬 데이터에 접근하는 경우). - 한 모듈이 데이터를 생성하는 방법(위치, 타입, 타이밍)을 변경하면, 다른 모듈의 변경이 필요하다. |
[참고] 위키백과 - 결합도 https://ko.wikipedia.org/wiki/%EA%B2%B0%ED%95%A9%EB%8F%84
'정보처리산업기사 실기 > 알고리즘' 카테고리의 다른 글
알고리즘 기출문제 파악(20년 3회 ~ 15년 1회) (0) | 2020.11.20 |
---|---|
응용 알고리즘 - 자료 구조 (0) | 2020.11.17 |
응용 알고리즘 - 배열 (0) | 2020.11.16 |
기본 알고리즘 - 수학 (0) | 2020.11.15 |
기본 알고리즘 - 수열 (0) | 2020.11.15 |