본문 바로가기

System & Software Engineering

일반적인 소프트웨어 측도 (Measurement)의 유형

일반적으로 소프트웨어 측도는 규모 측도, 복잡도 측도, 품질 측도, 사용 품질 측도와 같이 구분될 수 있다. (이는 절대적인 것은 아니고, 다양한 구분이 존재하고 있으나, 여기서는 일부만을 간략히 소개한다.)




1. 규모 측도

  • LOC (Line Of Code) 
    크기 중심의 소프트웨어 측정 기준으로 직접 소프트웨어 코드의 라인수를 측정하는 방식이다. (이것이 수작업으로 이루어지지 않는다는 것은 모두 알고 있으리라 생각됨..)
  • 기능점수
    소프트웨어의 크기를 결정하는 소프트웨어 기능 유형별 수량과 성능 및 품질 영향도를 고려하여 계산되는 수치로, 기능 점수 요소들은 소프트웨어 정보 영역의 가산적 척도들과 소프트웨어 복잡성에 대한 주관적인 측정을 기초로 한 실험, 관찰에 의한 관계성을 이용하여 유도된다.
  • Bang
    Demarco가 정의한 것으로 사용자에게 전달되는 소프트웨어 시스템의 전체 기능을 측정하는 것으로 소프트웨어에 대한 명세로부터 특정 알고리즘에 의해 계산되어 유도된다.

2. 복잡도 측도

  • Cyclomatic 복잡도
    한 메소드 내 제어 흐름의 복잡도를 측정한다. MaCabe (1976) 잉론으로 프로그램의 구조적 복잡도를 이해하는데, 폭 넓게 사용되는 측도 중의 하나이며, 한 메소드를 시험할 때 시험애햐 할 최소 경로 (Basis Path)의 수를 나타낸다.
  • Knots 복잡도
    순차적인 문장으로 구성된 블록이나 모든 문장에서의 노드로 구성된 프로그램 제어 흐름 그래프 (Control Flow Graph)에서 비롯된 개념으로, 해당 그래프에서 꼭 필요한 라인들로 정의된다. 프로그램의 Knots의 수는 프로그램 복잡도의 측정치로 제안되어 왔다.
  • 정보 흐름 복잡도
    프로그램 구조 내에서 정보 흐름은 프로그램 복잡도를 위한 척도로 사용된다.

3. 품질 측도

  • 결함 측도
    소프트웨어 제품에 있는 결함의 수로, 해당 소프트웨어 제품이 출시 될 수 있는지에 대한 제품 측도가 된다. 이를 위해 설계 변경 수, 코드 인스펙션에 의해 검출된 오류의 수, 프로그램 시험에서 검출된 오류의 수, 요청에 의해 발생한 코드 변경의 수 등이 측정될 수 있다.
  • 신뢰도 측도
    소프트웨어 고장이 발생할 확률이나 소프트웨어 오류가 발생 비율을 알아내는데 유용한 측도로, 신뢰도를 정량적인 값으로 표현한 수치로, 고장 밀도 함수에 의해 계산된다. MTBF, MTTF와 같은 고장 시간을 기준으로 한 함수 등이 있다.
  • 유지 보수 측도
    소프트웨어 제품의 유지 보수를 측정하거나 예측하는데 사용되는 측도로, 노력의 수를 이용하는 것으로 Halstead의 노력 측도 등을 사용한다.

4. 사용 품질 측도

  • 사용자
    최종 사용자에 있어서 사용 품질은 기능성, 신뢰도, 사용성 및 효율성의 결과이다.
  • 유지보수 담당자
    소프트웨어 유지보수 담당자에 있어서 사용 품질은 유지보수성의 결과이다.
  • 이식 담당자
    소프트웨어 이식 담당자에 있어서 사용 품질은 이식성의 결과이다.

 

본 게시물의 모든 저작권은 본인에게 있으며, 본 게시물의 일부 또는 전체를 인용할 시에는 반드시 출처를 밝혀야 합니다.