기능 측정을 통한 소프트웨어 크기 추정: 수행 방법

기능 측정을 통한 소프트웨어 크기 추정: 수행 방법

이 기사에서는 기능을 측정하여 소프트웨어 프로젝트의 규모를 추정하는 방법에 대해 설명합니다.

소프트웨어 크기 추정은 소프트웨어 개발에 있어 필요하고 중요한 작업입니다. 제품 개발에 필요한 자원을 결정하고 최종 비용을 예측하는 데 사용할 수 있습니다.

코딩하기 전에 소프트웨어 크기를 추정할 수 있습니까?

예, 하지만 소프트웨어의 크기는 여러 요인에 따라 달라집니다. 소프트웨어의 코드 줄 수(LOC)부터 시작하는 것이 좋습니다. 추정에 도움이 되는 다른 요소로는 기능 수, 버그 또는 사용자 수 등이 있습니다.

LOC는 일반적으로 사용되지만 비기능 요소, 중복 라인 및 일부 사용되지 않는 기능을 설명하지 않습니다. 또한 프로그래밍 언어마다 코드 단위당 줄 수가 다릅니다. 따라서 이는 부정확한 추정 기법이 됩니다.

기능별로 소프트웨어 크기를 어떻게 측정합니까?

개요

이는 소프트웨어 크기를 측정하는 가장 일반적인 방법입니다. 이 기술을 사용하여 사용자에게 제공하는 데 필요한 기능을 측정합니다. 즉, 구현된 기능의 수를 계산합니다.

기능은 소프트웨어의 복잡성을 측정하므로 크기를 측정하는 좋은 척도입니다.

1. 모든 기능과 특징을 식별하십시오.

  1. 소프트웨어의 모든 기능 및 특징 목록을 작성하십시오. Microsoft Excel과 같은 도구를 사용할 수 있습니다.
  2. 다음으로, 그것이 수행하는 작업과 중요하다고 생각하는 기타 속성에 대한 설명을 포함하세요. 이 정보는 논리적 구성 요소로 그룹화할 때 유용할 것입니다.
  3. 어떤 기능/특징이 다른 기능에 종속되는지 확인합니다. 종속성이 없는 구성 요소는 독립 실행형으로 간주될 수 있으며 해당 크기는 LOC 수와 동일합니다. LOC를 수동으로 계산하거나 LOC 카운터 도구를 사용할 수 있습니다.
  4. 기능/특징에 종속성이 있는 경우 이에 종속된 모든 LOC를 합산하여 크기를 늘립니다.

2. 각 기능을 그룹에 할당

  1. 유사한 기능을 그룹화하고 하나 이상의 카테고리에 할당합니다.
  2. 복잡성과 난이도에 따라 이러한 그룹 내에서 기능별로 포인트를 할당합니다.

구성 요소의 크기는 복잡성에 비례해야 합니다. 더 복잡한 로직을 가진 컴포넌트는 단순한 로직을 가진 컴포넌트보다 더 많은 기능을 갖습니다. 예를 들어 기능을 그룹화할 때 기본 기능과 핵심 기능을 구분할 수 있습니다.

각 소프트웨어에는 기본 및 핵심 기능과 특징이 있습니다. 이는 제품이 제대로 작동하도록 하는 핵심 성분이며 필수입니다. 이렇게 하면 시간이 지남에 따라 애플리케이션 크기를 비교할 때 보다 의미 있는 측정항목을 만드는 데 도움이 됩니다.

3. 각 구성 요소의 크기를 계산합니다.

구성요소를 그룹화하고 계산에 포함해야 할 구성요소를 결정한 후에는 각 구성요소에 포함된 코드 줄(LOC) 수를 결정해야 합니다.

또는 각 구성 요소에 대한 LOC를 자동으로 계산할 수 있는 도구를 사용하여 이를 수행할 수 있습니다.

소프트웨어 크기 추정에서 기능 측정 기준을 사용하는 것의 장단점은 무엇입니까?

기존의 소프트웨어 크기 측정 방법은 코드 줄 수만 계산하므로 소프트웨어에 실제로 몇 개의 기능이 있는지는 표시되지 않습니다. 기능별로 소프트웨어 크기를 측정하는 것이 더 의미가 있으며, 특히 대규모 엔터프라이즈 수준 소프트웨어에 대해 이야기할 때 더욱 그렇습니다.

이를 통해 사용자가 사용할 수 있는 제품에 대한 보다 정확한 그림을 제공하고 제품 소유자가 경쟁 환경을 쉽게 평가할 수 있습니다.

그리고 이 방법에는 단점이 있지만 다른 크기 측정 기술에 비해 훨씬 좋습니다. 결국 최종 사용자는 적합하다고 판단하고 코드에서 허용하는 경우 언제든지 소프트웨어 크기를 줄일 수 있습니다.

당신도 알 수 있듯이 우리의 생각은 함수적 방법을 지지합니다. 하지만 모든 사람이 좋아하는 것은 아니라는 점을 인정해야 합니다. 따라서 우리는 여러분의 제안에 귀를 기울이고 있습니다. 더 나은 작업을 수행할 것이라고 생각하는 소프트웨어 지표에 대한 평가가 있습니까? 아래에 알려주세요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다