정보처리산업기사 실기/알고리즘

소프트웨어 개발

미웡할꺼야 2020. 11. 17. 21:26

소프트웨어 생명주기

정의 : 소프트웨어가 필요에 의하여 만들어진 후 운영되기까지의 전체 과정을 말한다.

 

일반적인 소프트웨어 생명주기 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