소프트웨어 아키텍처가 이해 관계자들이 요구하는 수준의 품질을 유지하고 보장할 수 있도록 설계되었는지를 확인하기 위해 품질 요소들을 구체화시켜 놓은 것
시스템 측면
비즈니스 측면
아키텍처 측면
세기 | 종류 | 내용 |
---|---|---|
강함 | 내용 결합도 | - 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도 - 다른 모듈의 내부로 제어가 이동하는 경우도 포함 |
공통 결합도 | - 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도 - 공통 데이터 영역의 내용을 변경 시 이를 사용하는 모든 모듈에 영향을 미쳐 모듈의 독립성을 약하게 만듦 | |
외부 결합도 | - 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때의 결합도 - 참조되는 데이터의 범위를 각 모듈에서 제한 | |
제어 결합도 | - 다른 모듈 내부의 논리적 흐름을 제어하기 위해 제어 신호를 이용하여 통신하거나 제어 요소를 전달하는 결합도 - 권리 전도 현상: 하위 모듈이 상위 모듈에게 처리 명령을 내리는 현상 | |
스탬프 결합도 | - 모듈 간의 인터페이스가 배열이나 레코드 등의 자료구조가 전달할 때의 결합도 - 모듈은 호출 시 매개 변수나 인수로 데이터를 넘겨주고 처리 결과를 반환 | |
약함 | 자료 결합도 | - 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도 - 모듈은 호출 시 매개 변수나 인수로 데이터를 넘겨주고 처리 결과를 반환 |
세기 | 종류 | 내용 |
---|---|---|
강함 | 기능적 응집도 | 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도 |
순차적 응집도 | 모듈 내 하나의 활동으로부터 나온 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도 | |
통신적 응집도 | 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우의 응집도 | |
절차적 응집도 | 모듈이 다수의 관련 기능을 가질 때, 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도 | |
시간적 응집도 | 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도 | |
논리적 응집도 | 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도 | |
약함 | 우연적 응집도 | 모듈 내부의 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도 |
단위 모듈 구현 순서