소프트웨어 비용산정 모형은 프로젝트 예산을 효과적으로 계획하고 관리하기 위해 사용하는 중요한 도구이다.
프로젝트의 특성과 크기에 따라 적합한 비용산정 모형을 선택할 수 있으며 하향식과 상향식 방식에 따라 접근할 수도 있다.
주요 비용산정 모형과 하향식·상향식 방식을 아래에 정리했다.
하향식 방식과 상향식 방식
하향식 방식 (Top-Down Estimation)
하향식 방식은 프로젝트 전체를 큰 틀에서 대략적으로 분석한 후 세부 단계별로 비용을 할당하는 방식이다.
주로 이전 유사 프로젝트의 데이터를 기반으로 전체 예산을 산정한 뒤 이를 세부 항목으로 분배한다.
- 장점: 빠르고 간편하게 예산을 산정할 수 있으며 전체적인 비용 산정을 효율적으로 수행할 수 있다.
- 단점: 세부 요소에 대한 분석이 부족할 수 있어 세부 작업에서 예측이 빗나갈 가능성이 있고 전문가가 필요하다.
상향식 방식 (Bottom-Up Estimation)
상향식 방식은 각 작업 단위에서 필요한 비용을 하나씩 산정한 후 이를 전체 비용으로 합산하는 방식이다.
주로 상세한 작업 목록이 준비된 후에 각 작업별로 인력과 자원을 할당해 총비용을 산출한다.
- 장점: 개별 작업의 세부 비용을 파악할 수 있어 예산의 정확도가 높다.
- 단점: 분석과 계산에 많은 시간과 노력이 필요하며 작업별 상세한 정보가 없는 초기 단계에서는 적용이 어려울 수 있다.
SW 비용산정 모형
1. LOC (Line of Code)
LOC 방식은 코드 라인 수에 따라 소프트웨어 규모를 측정하는 방식이다.
특정 코드 라인 수를 기준으로 프로젝트의 규모와 비용을 추정할 수 있다.
- 장점: 측정이 단순하며 소프트웨어의 물리적 크기를 직관적으로 파악할 수 있다.
- 단점: 코드의 양만으로는 소프트웨어의 복잡성을 반영하기 어렵고 효율적인 코드나 재사용 코드가 많을 경우 예측이 부정확할 수 있다.
2. Man-Month (MM)
MM은 한 사람이 한 달 동안 작업할 수 있는 양을 기준으로 전체 개발 기간을 추정하는 방식이다.
인력 자원의 투입량을 중심으로 비용을 산정한다.
Man Month = (LOC) / (프로그래머의 월간 생산성)
프로젝트 기간 = (Man Month) / (프로젝트 인력)
- 장점: 인력 기반으로 산정하여 프로젝트 일정을 예측하기 쉽다.
- 단점: 인력을 늘려도 개발 기간이 줄어들지 않을 수 있으며 커뮤니케이션 문제나 관리 부담이 증가할 수 있다.
3. COCOMO (Constructive Cost Model)
COCOMO는 Boehm이 개발한 모델로, 프로젝트 규모, 개발 환경, 인력 수준 등을 고려해 비용을 예측한다.
[소규모] Organic Mode - 5만라인 이하 (유기적)
[중규모] Semi-Detached Mode - 30만라인 이하 (중분리형)
[대규모] Embedded Mode - 30만라인 이상 (내장형)
- 장점: 다양한 요인을 고려하여 신뢰성 높은 예측이 가능하다.
- 단점: 복잡한 계산과 비용 동인 정량화 과정이 필요해 사용이 까다로울 수 있다.
4. Putnam 모형 (SLIM Model)
Putnam 모형은 Rayleigh 곡선을 기반으로 인력 배치와 시간에 따른 노력 분포를 고려해 비용을 산정한다.
프로젝트의 생산성 계수와 인력 배치 패턴을 통해 개발 시간과 비용을 추정한다.
- 장점: 리소스 배치와 프로젝트 일정 계획을 정밀하게 예측할 수 있다.
- 단점: 초기 단계에서 정확한 생산성 계수 추정이 어려울 수 있다.
5. FP (Function Point)
FP는 기능적 요구사항을 기반으로 가중치를 부여한 뒤 비용을 산정하는 방식으로 기능별 복잡성에 따라 점수를 매긴다.
FP = 총 기능점수 * [0.65 + (0.1 * 총 영향도)]
장점: 사용자 요구사항을 중심으로 측정하여 이해하기 쉽다.
단점: 가중치나 복잡도 분류가 주관적이며 기능 요구사항이 자주 변경될 경우 정확한 산정이 어려울 수 있다.

'Dev > CS' 카테고리의 다른 글
[검색엔진] Solr에 대해서 알아보자 (1) | 2024.11.27 |
---|---|
[정보처리기사] 소프트웨어 아키텍처 (2) | 2024.11.19 |
[정보처리기사] 소프트웨어 개발 방법론(SDM) (2) | 2024.11.14 |
[CS] 생성형 AI 도구의 특징과 장단점 (5) | 2024.11.13 |
[정보처리기사] 소프트웨어 생명 주기 (SDLC) (7) | 2024.11.11 |