초보 개발자

소프트웨어의 개발비용을 어떻게 산정할까? 본문

컴퓨터공학 전공/소프트웨어공학

소프트웨어의 개발비용을 어떻게 산정할까?

mandudu 2022. 12. 8. 04:55

** 본 글은 차성덕 교수님의 소프트웨어공학이야기 책을 정리한 글입니다. **

개발비용을 예측하는 것은 왜 어려울까?
누가 작업을 수행하는가에 따라 다르고, 영향을 주는 요인이 너무 많다.
이미 개발한 소프트웨어를 확장하는 경우에도 사소한 차이가 매우 큰 비용 변화를 가져오기도 한다.
(ex. 보안 관련 s/w, centralized →client-server로 환경 재구축, MMORPG 접속자 수 두 배 늘리기 등)

기존의 소프트웨어 개발 경험은 새로 만드는 소프트웨어의 개발 비용 예측에 큰 도움이 된다.
→ 프로젝트 전 과정에서 적절한 자료의 수집 및 분석이 꼭 필요하다.

소프트웨어 개발 비용은 어떻게 예측할까?

  • Top-down 방식으로 개발하려는 소프트웨어의 구조를 파악한다. (상위 설계에 해당하는 분석 시행)
  • 각 서브시스템의 개발비용을 예측한다. (문제가 조금 쉬워보이지만 본질적은 문제 해결은 아님)

그렇다면 예측 기법에는 무엇이 있을까? COCOMO & Function Point

COCOMO 기법

  • 프로젝트의 크기와 개발 기간의 상관관계를 분석하여 3개의 공식으로 정리했다.
    Organic (간단) - 1.05 / Semidetached - 1.12 / Embedded (복잡) - 1.20
  • 그러나 개발 환경이 바뀌고, 그 주제가 바뀌어도 유효할 것인가? 답은 Yes
  • 공식에서 factor들을 조정해주면 된다! 유사한 방법으로 자료를 수집하면 그에 맞는 공식을 구할 수 있다.

COCOMO ②

  • Cost Driver의 값을 통해 좀 더 많은 프로젝트의 요소를 반영할 수 있게 됨.
  • EM1~17: multiplicative factor로 작용 (정리 해야 하나? 수업 들어보기)
  • Scale Factor (SF1~5): exponent 부분에 작용
    • SF1: Precendentedness - 이전의 개발경험 정도
    • SF2: Development Flexibility -
    • SF3: Architecture and Risk Resolution - 
    • SF4: Team cohesion - 능동적이고 협력하는 팀
    • SF5: Process Maturity - CMMI 등을 통한 개발 조직의 성숙도
  • 예측모델을 처음 사용하거나 도메인에 차이가 있는 조직은 cost driver들의 초기값을 어떻게 설정해야 하는가?
    - 그에 대한 cost driver의 기본 값을 7 단계로 나누어 제시해준다.
  • 초기값 사용 후 프로젝트를 마치면, 관련 자료를 정직하고 오차없이 수집하고 관리하는 것이 좋다.
    Post-mortem 과정에서 예측이 빗나간 이유를 분석하며 정확한 cost driver 값을 찾아나갈 수 있다.

Function Point 기법

소프트웨어가 처리해야 하는 입력, 출력, 파일, 인터페이스, Query 개수, 난이도에 기반해 개발비용을 예측하는 기법

  • Unadjusted Function Point
    • 입력, 출력, 파일 등의 숫자에 가중치를 부여한다
      이때, 가중치는 사람의 경험과 직관에 의존함...
  • Total Degree of Influence (TDI)
    • 14개의 항목을 정도에 따라서 0~5까지의 점수를 부여해서 합한다.
    • Data communications:
    • Distributed data Processing:
    • Performance: 복잡한 제어기능을 실시간으로 수행해야 하면 값이 큼
    • Heavily used configuration:
    • Transaction rate:
    • ...
    • Multiple Sites: 소프트웨어의 개발이 여러 곳에서 이루어지면 값이 큼
  • Value Adjustment Factor (VAF)
    • (TDI*0.01)+0.65
    • 0.65~1.35 사이의 값을 가지게 됨
  • Function Point (FP)
    • VAF * Unadjusted Function Point
    • 유사한 소프트웨어 (UFP가 같아도) 환경적인 요인에 따라 +_35% 차이가 남.

 IFPUG, ISBSG에 8000개 이상의 Function Point와 관련된 프로젝트 자료가 있다. 
- 언제, 어떤 도메인, 개발환경, 사용 언어, 소요 시간, 기능 점수 등

 

 


추가 자료 리스트

  • COCOMO 표 있는 자료
  • FP 표 있는 자료