SW Metrics
태그 :
- 개념
- 소프트웨어 측정 기술을 기반으로 SDLC 동안에 소프트웨어의 특성을 객관적인 수치로 정량화 할 수 있는 기술 소프트웨어의 품질 평가와 체계적이고 효율적인 개발, 유지 보수 관리를 위해 소프트웨어의 품질 특성 등을 수치화하여 측정하고 평가 하는 기준
1. 소프트웨어 메트릭과 소프트웨어 품질
가. 소프트웨어 메트릭의 정의
소프트웨어 측정 기술을 기반으로 SDLC 동안에 소프트웨어의 특성을 객관적인 수치로 정량화 할 수 있는 기술
소프트웨어의 품질 평가와 체계적이고 효율적인 개발, 유지 보수 관리를 위해 소프트웨어의 품질 특성 등을 수치화하여 측정하고 평가 하는 기준
측정할 수 있는 대상은 소프트웨어 제품, 개발, 운영 및 유지보수 프로세스, 이에 필요한 자원들
나. S/W Metrics의 유형 및 유형별 측정방법
1) 측정 대상에 따른 소프트웨어 측정 유형
-측정을 하는 대상이 어떤 것이냐에 따라 프로젝트 Metrics, 제품 Metrics, 프로세스 Metrics로 구분할 수 있음.
측정 유형 |
유형별 측정방법 |
Project Metrics |
- 프로젝트 진행 관리와 관련한 측정 - 공정 진도 준수율, 예산 준수율, 투입 공수 준수율, 교육 이행율 |
Product Metrics |
- 제품 품질 평가 및 추적과 관련한 측정 - 규모(FP, 본 수, 화면수), 복잡도 - 품질특성(기능성, 신뢰성, 사용성, 효율성, 이식성) - 소프트웨어 재사용율, 요구사항 변경율, 고객만족도 |
Process Metrics |
- 프로세스 성과 및 분석과 관련한 측정 - 프로세스 준수율(이행율), 품질 실패 비용율, 결함제거율, 인스팩션 효과성, 인스팩션 효율성, 테스트 효과성, 테스트효율성 |
2) 측정 방법에 따른 소프트웨어 측정 유형
-측정 방법에 따라 직접 Metrics와 간접 Metrics로 구분할 수 있음.
다. 소프트웨어 매트릭스(Software metrics)의 단계별 활동
원칙 |
설명 |
공식화(Formulation) |
고려 대상이 되는 소프트웨어의 표현에 적합한 소프트웨어 Measure와 Metric의 유도 |
수집(Collection) |
정형화된 척도를 얻기 위해 요구 되어진 데이터를 수집하기 위해 사용되는 기법 |
분석(Analysis) |
척도의 계산과 수학적 도구들의 적용 |
해석(Interpretation) |
표현의 품질로부터 통찰력을 얻기 위한 노력의 결과인 Metric의 평가 |
피드백(Feedback) |
소프트웨어 팀으로부터 전해진 기술 Metric의 해석으로부터 유도된 내용 |
라. 소프트웨어 매트릭스와 소프트웨어 품질
소프트웨어에 대한 측정(Metrics)는 분석과 설계 모델 평가를 돕고 절차적 설계와 소스 코드의 복잡도에 관한 지표를 제공하고 더욱 효과적인 테스트를 실시할 수 있도록 하는 기반
품질 수준에 대한 계량화 된 지표를 사용하여 결함율과 품질목표를 프로젝트 계획 시에 수립하고 이를 기반으로 사용자 기대 품질을 보장
품질 목표와 관련된 매트릭으로는 복잡성(Complexity)과 안정성, 신뢰성, MTTD
마. 품질관련 소프트웨어 매트릭스
2. 대표적인 소프트웨어 복잡도 측정 매트릭스, McCabe의 회전 복잡도의 개요
가. McCabe의 회전 복잡도의 정의
프로그램의 논리적인 복잡도의 분량상 측정을 제공하는 소프트웨어 척도(Metric)
제어 흐름에 의한 그래프를 통하여 사이클로매틱 넘버(회전수)를 구하여 복잡도를 계산 하는 방법
회전 복잡도는 그래프 이론에 기본을 두고 있으며 소프트웨어의 검사력과 신뢰성 계산을 위한 도구
나. McCabe의 회전 복잡도
다. McCabe의 복잡도 품질 평가 기준
복잡도 기준 |
설명 |
복잡도가 5 이하인 경우 |
매우 간단한 프로그램일 경우 |
복잡도가 5 ~10 인 경우 |
매우 구조적이며 안정된 프로그램 |
복잡도가 20 이하인 경우 |
문제 자체가 매우 복잡하거나 구조가 필요이상으로 복잡한 프로그램 |
복잡도가 50 이하인 경우 |
매우 비 구조적이며 불안정한 프로그램 |
-가급적 10 이하의 복잡도를 갖도록 프로그램을 구성해야 함
라. McCabe의 복잡도 계산을 위한 G그래프
마. 제어흐름도, 복잡도 및 기본경로 산출
1) 제어흐름도
2) MaCabe 복잡도 산출(세가지 방법으로 산출 가능)
a) Edge 수: 10, Node 수: 9
복잡도 = 10 – 9 + 2 = 3
b) 영역의 개수: 2
복잡도 = 영역 수 + 1 = 2 + 1 = 3
c) 분기 노드 개수: 2
복잡도 = 분기 노드 개수 + 1 = 2 + 1 = 3
5) 기본경로
프로그램상에 존재하는 선형적으로 독립된 경로 집합
{ 1-2-9-10, 1-2-3-4-6-8-9-10, 1-2-3-5-7-8-9-10 }
Ex) 기본 경로가 아닌 예
경로: 1-2-3-4-6-8-3-4-6-8-9-10 다른 기본 경로의 간선벡터의 조합으로 나타남
경로 A: 1-2-3-4-6-8-9-10 => 간선벡터 <1,1,1,1,0,1,0,1,1,1>
경로 B: 1-2-9-10 => 간선벡터 <1,1,0,0,0,0,0,0,1,1>
경로 C: 1-2-3-4-6-8-3-4-6-8-9-10 => 간선벡트 <1,1,2,2,0,2,0,2,1,1>
경로 C = 2A+(-1)B : 즉 경로 C 는 경로 A 와 경로 B 의 선형 조합으로 표현됨
3. Halstead의 소프트웨어 사이언스(Software Science)
가. Halstead의 Software Science
소프트웨어 개발, 프로그램의 복잡도를 측정하는 척도(Metric)
기본적으로 코드가 만들어진 후 또는 설계가 완성된 후에 측량할 수 있는 방법
프로그래밍 언어와 무관하게 연산자와 피 연산자의 수를 기반으로 프로그램에 내재된 논리의 규모를 산정하는 방식
Halstead는 쉽게 구해지는 원시 코드의 성질로부터 계산되어지는 여러 가지 매트릭스를 개발
나. Halstead의 Software Science의 Primitive Measure Set
다. Measure를 이용한 공식
4. 소프트웨어 신뢰성과 가용성 측정 방법
가. 소프트웨어 신뢰성 및 가용성의 정의
구분 |
내용 |
신뢰성 |
정확하고 일관된 결과로 요구된 기능을 수행하는 시스템의 능력 정해진 기간과 정해진 조건 하에서 그 성능 수준을 유지하기 위한 기업의 속성 |
가용성 |
주어진 시점에서 프로그램이 요구에 따라 작동하고 있을 가능성 |
나. 소프트웨어 신뢰성 및 가용성 측정 방법
1) 신뢰성 및 가용성 관련 개념
2)신뢰성 및 가용성 측정 공식
3) Measure 간의 관계
MTBF 신뢰성 척도는 MTTF와 MTTR에 민감
가용성 척도는 MTTR에 민감
유지 보수성 척도는 MTTR에 민감
5. 소프트웨어 매트릭스 기반의 소프트웨어 품질 향상 방안
소프트웨어 품질관리 측면의 매트릭스 활용 시 고려사항
측정의 목적은 데이터를 수집 시작 전에 확립
각 기술 Metric은 명백한 방법으로 정의
Metric은 응용 분야의 타당한 이론을 기반으로 유도되어야 함
특정한 제품과 프로세스를 잘 수용할 수 있도록 만들어져야 함
성공적인 소프트웨어 품질 향상을 위한 전략
소프트웨어 개발 라이프 사이클 전반에 각 단계에 맞는 유용한 Metric을 정의하고 목표 수립, 실제 측정 활동을 통해 소프트웨어 품질 및 프로세스 품질을 보장할 수 있도록 계획 수립
실제 구현 이전에 단계에서 소프트웨어 매트릭스를 활용하여 품질에 대한 사전 평가 가능하므로 소프트웨어 개발 비용을 절감 할 수 있는 마스터 플랜 수립
소프트웨어 매트릭스는 단순하고 계산할 수 있어야 하고 일관성 있고 객관적이면서 프로그래밍 언어와 독립적 이여야 하므로 전사적 차원의 소프트웨어 매트릭스를 정의하고 분류하여 체계적인 관리 프로세스 정립