소프트웨어 규모산정의 필요성
소프트웨어를 자체개발하던지 아니면 외주를 줘서 개발하던지 개발하고자 하는 소프트웨어의
규모를 대충 알아야 개발기간 및 공수산정을 할 수 있으며, 외부개발인 경우 과연 얼마의 돈을
주고 개발을 해달라고 하는게 맞는건지 측정기준이 있어야 할것이다. 그래야 개발을 요청하는
발주사나 개발을 수행할 SI공급사나 서로 통일된 기준으로 비용과 원가를 산정해서 계약서에
금액을 명시 할 수 있을 것이다.
과거에는 그냥 SI공급사가 제안한 턴키 금액을 가지고 대충 업체 선정하고 했지만 지금은
'SW사업대가 산정기준" 등 정부에서 기준을 마련해서 공공기관 사업부터 적용하고 있다.
오늘은 소프트웨어 규모를 산정하는 방법에는 머가 있는 지 알아보고, 다음 편에서는 대표적인
소프트웨어 산정기준은 기능점수(Function Pointy) 에 대해서 1,2부로 나누어서 자세히 알아보고
자 한다. (Function Point 만 대충 설명할려고 해도 거의 책 한권의 분량이다.)
소프트웨어 규모산정 방법들..
방법 | 내용 |
1. 하향식 산정 | - 경험적 단언, 개발자 합의 - 전문가 감정과 델파이 방식 이용 |
2. 상향식 산정 | - 업무분류구조 정의, 각 구성요소에 대한 독립적 산정, 집계 - LOC 기법, 개발 단계별 인원수 기법 이용 |
3. 수학적 산정 | - Function Point , COCOMO |
양적 규모산정 방식 - LOC방식
방법 | 내용 |
Doty 모델 | 인터뷰와 문헌을 바탕으로 개발한 모델로 프로그램 규모가 알려졌다는 전제 하에 총공수를 구하는 방법 |
Putnam 모델 | 가설을 전제로 한 모델 (대규모 연구개발 프로젝트에 적용된 모델을 기초) |
COCOMO 모델 | - Boehm에 의해 비즈니스, 산업계, 정부, 소프트웨어하우스 등에서 엄선한 63종류의 프로젝트 데이터에 기초하여 작성된 경험적인 소트프웨어 비용 견적모델 |
양 과 질을 고려한 방식
방법 | 내용 |
Function Point | - 최종사용자 입장에서 소프트웨어의 규모를 견적하는 방식. - 프로젝트 완료 후 생산성 평가 목적으로 개발되었으나 사전 예측모델로 이용됨 |
Halstead 의 소프트웨어 과학 |
- 소트프웨어 규모와 난이도에 대한 척도를 이용하여 개발 소요공수 예측 모형 제시 - 복잡도에 대한 척도, 프로그램내의 연산자, 피연산자의 종류와 발생빈도간의 관계를 복잡도로 측정한다. - 소프트웨어 규모와 난이도에 대한 척도로 이용 |
McCabe의 회전복잡도 |
회전복잡도 = 의사결정수 + 1 - 상세설계가 완료된 다음에 사용할 수 있으며 프로그램의 제어흐름도를 기반 으로 분석 |
Software Cyclometic Number | 순차구조, 선택구조, 반복구조 로 산정 |
COCOMO 종류
1.Basic COCOMO - S/W 개발노력과 비용을 LOC형태로 추정한 후 비용을 산정하는 단일값 모형
(Static Single-Value model)
- 제안단계에서 사용
① Organic - MIS, 50KDSI (50,000라인)
② Semi-detachedd - Compliler, 개발지원도구 개발 , 300KDSI
③ Embeded - OS, DBMS,통신모티너 , 대형프로젝트
2.Intermediate COCOMO - 15개 특성치 적용한 방식
① 제품속성(3개) - S/W신뢰도, DB크기, 제품복잡도
② H/W속성(컴퓨터)(4개) - 응답시간, 실행시간 성능제약, 기억장치제약, 가상기계 환경의 휘발성
③ 인적속성(5개) - 분석가능력, 응용의 경험, 언어구사경험, S/W공학자능력, 가상기계에대한 경험
④ 프로젝트 속성(3개) - 일정, 개발도구사용, 방법론 응용
3.Detailed COCOMO - 대형인 경우 Sub시스템으로 쪼개서 별도 산정한 후 합산하는 방식
① 모듈레벨
② 서브시스템 레벨
③ 시스템 레벨
COCOMO II
1단계 : 프로토타입 만드는 단계 -> Application Point 계산해서 노력 추정 -> 응용결합모델
2단계 : 초기설계단계 -> FP 사용 -> 초기설계모듈
3단계 : 구조설계 이후 단계 -> FP 와 LOC를 규모척도로 해서 Reuse, Post Architecture
-> 포스트 아키텍쳐 모델
1. 응용결합모델 (Application Composition Model)
- 작은팀이 몇주의 기간동안 개발하는 경우에 사용, 주로 GUI Builder 나 컴포넌트들을 이용하여 조립 개발하는
경우
- 스크립트, DB, 프로그래밍을 이용하여 개발된 프로토타입시스템
- 객체점수의수
2. 초기설계모듈 (the Early Design Model )
- 비교적 개발 초기단계에 사용되어지며 실제 개발할 SW의크기 . 운영환경의 특성, 프로젝트에 참여할 관련자
, 수행할 프로세스의 세부사항 등에 대한 정보가 부족할 때 사용
- 시스템 요구사항과 설계선택방안에 기반을 둔 초기 비용 산정
- Function Point 의 수
3. 재사용 모델
- 재사용가능한 컴포넌트 혹은 자동적으로 생성되는 코드를 통합하기 위한 노력
- 재사용되거나 생산된 라인수
4. 포스트 아키텍쳐 모델 (Post Architecture Model)
- 가장 세부적인 모델로 SW생명주기가 확립된 후에 사용하며, 소프트웨어를 개발하여 유지보수 하는 동안 사용
- 시스템 설계명세화에 기반한 개발노력
- 소스코드 라인의 수
'소프트웨어공학' 카테고리의 다른 글
기능점수 (Function Point) - 3탄 (0) | 2019.10.04 |
---|---|
기능점수 (Function Point) - 2탄 (0) | 2019.10.03 |
기능점수 (Function Point) - 1탄 (0) | 2019.10.02 |
SW 변화관리와 유지관리 - Lehman의 SW 변화 원리 (0) | 2019.09.18 |
COCOMO II (0) | 2019.09.02 |