728x90
반응형
SMALL

소프트웨어 규모산정의 필요성

소프트웨어를 자체개발하던지 아니면 외주를 줘서 개발하던지 개발하고자 하는 소프트웨어의
규모를 대충 알아야 개발기간 및 공수산정을 할 수 있으며, 외부개발인 경우 과연 얼마의 돈을
주고 개발을 해달라고 하는게 맞는건지 측정기준이 있어야 할것이다. 그래야 개발을 요청하는
발주사나 개발을 수행할 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생명주기가 확립된 후에 사용하며, 소프트웨어를 개발하여 유지보수 하는 동안 사용
     - 시스템 설계명세화에 기반한 개발노력
     - 소스코드 라인의 수

728x90
반응형
LIST

+ Recent posts