내부 제품 속성

내부 제품 속성은 제품 자체에만 의존하는 방식으로 소프트웨어 제품을 설명합니다. 내부 제품 속성을 측정하는 주된 이유는 개발 중에 제품을 모니터링하고 제어하는 ​​데 도움이되기 때문입니다.

내부 제품 속성 측정

주요 내부 제품 속성은 다음과 같습니다. sizestructure. 크기는 실행하지 않고도 정적으로 측정 할 수 있습니다. 제품의 크기는 제품을 만드는 데 필요한 노력을 알려줍니다. 마찬가지로 제품의 구조는 제품의 유지 관리를 설계하는 데 중요한 역할을합니다.

크기 측정

소프트웨어 크기는 세 가지 속성으로 설명 할 수 있습니다.

  • 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의 기능 점수 방법에 대해 논의 할 것입니다.