초보 개발자
소프트웨어의 개발비용을 어떻게 산정할까? 본문
** 본 글은 차성덕 교수님의 소프트웨어공학이야기 책을 정리한 글입니다. **
개발비용을 예측하는 것은 왜 어려울까?
누가 작업을 수행하는가에 따라 다르고, 영향을 주는 요인이 너무 많다.
이미 개발한 소프트웨어를 확장하는 경우에도 사소한 차이가 매우 큰 비용 변화를 가져오기도 한다.
(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: 소프트웨어의 개발이 여러 곳에서 이루어지면 값이 큼
- 14개의 항목을 정도에 따라서 0~5까지의 점수를 부여해서 합한다.
- Value Adjustment Factor (VAF)
- (TDI*0.01)+0.65
- 0.65~1.35 사이의 값을 가지게 됨
- (TDI*0.01)+0.65
- Function Point (FP)
- VAF * Unadjusted Function Point
- 유사한 소프트웨어 (UFP가 같아도) 환경적인 요인에 따라 +_35% 차이가 남.
IFPUG, ISBSG에 8000개 이상의 Function Point와 관련된 프로젝트 자료가 있다.
- 언제, 어떤 도메인, 개발환경, 사용 언어, 소요 시간, 기능 점수 등
추가 자료 리스트
- COCOMO 표 있는 자료
- FP 표 있는 자료
'컴퓨터공학 전공 > 소프트웨어공학' 카테고리의 다른 글
테스트 커버리지의 개념이란 (0) | 2022.12.08 |
---|---|
소프트웨어 테스팅은 정말 어려운가? 왜 어려운가? (0) | 2022.12.08 |
UML을 잘 알아야 하는 이유 (0) | 2022.12.08 |
애자일 소프트웨어 개발방법론 (0) | 2022.12.08 |
폭포수 모델과 점진적 개발방법론 (0) | 2022.12.08 |