내부 제품 속성
내부 제품 속성은 제품 자체에만 의존하는 방식으로 소프트웨어 제품을 설명합니다. 내부 제품 속성을 측정하는 주된 이유는 개발 중에 제품을 모니터링하고 제어하는 데 도움이되기 때문입니다.
내부 제품 속성 측정
주요 내부 제품 속성은 다음과 같습니다. size 과 structure. 크기는 실행하지 않고도 정적으로 측정 할 수 있습니다. 제품의 크기는 제품을 만드는 데 필요한 노력을 알려줍니다. 마찬가지로 제품의 구조는 제품의 유지 관리를 설계하는 데 중요한 역할을합니다.
크기 측정
소프트웨어 크기는 세 가지 속성으로 설명 할 수 있습니다.
Length − 제품의 물리적 크기입니다.
Functionality − 제품이 사용자에게 제공하는 기능을 설명합니다.
Complexity − 복잡성은 다음과 같은 다양한 유형입니다.
Problem complexity − 근본적인 문제의 복잡성을 측정합니다.
Algorithmic complexity − 문제 해결을 위해 구현 된 알고리즘의 복잡성 측정
Structural complexity − 알고리즘 구현에 사용되는 소프트웨어의 구조를 측정합니다.
Cognitive complexity − 소프트웨어를 이해하는 데 필요한 노력을 측정합니다.
이 세 가지 속성의 측정은 다음과 같이 설명 할 수 있습니다.
길이
크기 측정이 예측에 필요한 노력을 예측하는 데 유용한 세 가지 개발 제품이 있습니다. 그것들은 사양, 디자인 및 코드입니다.
사양 및 디자인
이러한 문서는 일반적으로 텍스트, 그래프 및 특수 수학적 다이어그램과 기호를 결합합니다. 사양 측정은 디자인의 길이를 예측하는 데 사용할 수 있으며, 이는 코드 길이의 예측 변수입니다.
문서의 다이어그램에는 레이블이 지정된 digraph, 데이터 흐름 다이어그램 또는 Z 스키마와 같은 통일 된 구문이 있습니다. 사양 및 설계 문서는 텍스트와 다이어그램으로 구성되어 있으므로 텍스트 길이와 다이어그램 길이를 나타내는 숫자 쌍으로 길이를 측정 할 수 있습니다.
이러한 측정을 위해 원자 객체는 다양한 유형의 다이어그램 및 기호에 대해 정의됩니다.
데이터 흐름 다이어그램의 원자 적 개체는 프로세스, 외부 엔터티, 데이터 저장소 및 데이터 흐름입니다. 대수 사양의 원자 적 엔티티는 정렬, 함수, 연산 및 공리입니다. Z 스키마의 원자 적 엔티티는 사양에 나타나는 다양한 행입니다.
암호
코드는 절차 적 언어, 개체 방향 및 시각적 프로그래밍과 같은 다양한 방식으로 생성 될 수 있습니다. 가장 일반적으로 사용되는 소스 코드 프로그램 길이 측정 방법은 코드 라인 (LOC)입니다.
총 길이,
LOC = NCLOC + CLOC
즉,
LOC = Non-commented LOC + Commented LOC
코드 줄 외에도 Maurice Halsted가 제안한 크기 및 복잡성과 같은 다른 대안도 길이 측정에 사용할 수 있습니다.
Halstead의 소프트웨어 과학은 프로그램의 다양한 속성을 포착하려고 시도했습니다. 그는 크기에 대한 다양한 관점을 반영하는 길이, 어휘 및 볼륨과 같은 세 가지 내부 프로그램 속성을 제안했습니다.
그는 프로그램을 정의하는 것으로 시작했습니다. P연산자 또는 피연산자로 분류 된 토큰 모음입니다. 이 토큰에 대한 기본 메트릭은 다음과 같습니다.
μ1 = 고유 연산자 수
μ2 = 고유 한 피연산자 수
N1 = 연산자의 총 발생
N2 = 고유 연산자 수
길이 P 다음과 같이 정의 할 수 있습니다.
$$ N = N_ {1} + N_ {2} $$
어휘 P 이다
$$ \ mu = \ mu _ {1} + \ mu _ {2} $$
프로그램의 양 = 길이의 프로그램을 작성하는 데 필요한 정신적 비교 횟수 N은
$$ V = N \ times {log_ {2}} \ mu $$
프로그램의 프로그램 수준 P 볼륨 V 이다,
$$ L = \ frac {V ^ \ ast} {V} $$
여기서 $ V ^ \ ast $는 잠재적 볼륨, 즉 최소 크기 구현의 볼륨입니다. P
레벨의 역은 난이도입니다-
$$ D = 1 \ diagup L $$
Halstead 이론에 따르면 추정치를 계산할 수 있습니다. L 같이
$$ {L} '= 1 \ diagup D = \ frac {2} {\ mu_ {1}} \ times \ frac {\ mu_ {2}} {N_ {2}} $$
마찬가지로 예상 프로그램 길이는 $ \ mu_ {1} \ times log_ {2} \ mu_ {1} + \ mu_ {2} \ times log_ {2} \ mu_ {2} $입니다.
P를 생성하는 데 필요한 노력은 다음과 같습니다.
$$ E = V \ diagup L = \ frac {\ mu_ {1} N_ {2} Nlog_ {2} \ mu} {2 \ mu_ {2}} $$
측정 단위 E 이해하는 데 필요한 기본 정신적 차별입니다 P
길이를 측정하는 다른 대안은 다음과 같습니다.
프로그램 텍스트에 필요한 컴퓨터 저장 공간의 바이트 수
프로그램 텍스트의 문자 수와 관련하여
객체 지향 개발은 길이를 측정하는 새로운 방법을 제안합니다. Pfleeger et al. 객체와 메서드의 개수가 코드 줄을 사용하는 것보다 더 정확한 생산성 추정치를 이끌어내는 것을 발견했습니다.
기능성
제품에 내재 된 기능의 양은 제품 크기를 측정합니다. 소프트웨어 제품의 기능을 측정하는 방법은 매우 다양합니다. 다음 장에서 이러한 방법 중 하나 인 Albrecht의 기능 점수 방법에 대해 논의 할 것입니다.