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
728x90
반응형
SMALL

COCOMO II 는 실제 개발된 소스를 가지고 비용을 산정하는 고전적인 기법이다.
규모요인(Scaling Driver)과 가격요인(Cost Driver) 등을 이용하여 프로젝트의 생산성, 가격을
결정하는 모델이다.
COCOMO 는 소프트웨어를 구성하고 있는 모듈과 서브시스템의 비용합계를 계산하는 방식
으로 구조적방법론에 적합은 했지만 이후 객체지향모델이 나오면서 이에 맞게 수정보완한
것이 COCOMO II 이다. 
COCOMO II 는 소프트웨어 개발프로젝의 진행정도에 따라 아래와 같이 3단계로 나누고
각 단계별로 각각 다른 비용산정모델을 적용해서 해당 소프트웨어의 규모를 산정하는
기법이다.

Application Composition 응용 조합 모델
Early Designed Model 초기 설계 모델
Post-Architecture Model 설계 이후 모델


<참고>
   기존 COCOMO의 문제점
  -   소프트웨어 제품을 하나의 개체로 보고 승수들을 전체에 적용
  -   실제 대부분의 대형시스템은 서로 상이한 서브 시스템으로 구성
  
-   전통적인 COCOMO 모델의 문제점 극복을 위해서 COCOMO II 모델 등장

분류 응용조합모델
(Application Composition)
초기설계모델
(Early Design)
구조설계모델
(Post-Architecture Model)
설명 초기단계에서 시제품 개발시 적용. 즉 프로토타입을 보고
입출력화면 중심의 사용자UI 갯수를 파악해서 객체점수(Object Point)를 산출하고 이
를 바탕으로 SW규모를 산정
한다.
• 개발 범위에 속한 객체(입·출력 화면 등)를 찾는다.
• 객체에 의해 제공되는 기능의 복잡도를 세 가지(단순형, 보통형, 복잡형)로 분류한다.
• 객체의 개수에 가중치(단순형, 보통형, 복잡형)를 부여하여 결과 값을 산출한다
초기 설계 단계쯤 되면 1단계보다는 시스템의 구조와 기능을 좀 더 상세히 알 수 있다. 그러므로 1단계보다 더욱 정확한 예측이 가능하다.  구조 설계 이후가 되면 시스템에 대해 어느 정도 자세한 윤곽이 드러난다. COCOMO 방법이 처음부터 원시 코드의 라인 수를 계산하는 무리한 방법을 썼다면, 3단계에서는 이미 기능 점수가 나왔기 때문에 COCOMO에서 제안한 LOC에 의해 소요되는 노력을 추정하는 것이 크게 어렵지 않다. 즉 3단계에서는 기능 점수를 바탕으로 한 LOC를 추정하여 소프트웨어 규모를 산정할 수 있다.
크기 Application Points FP + 언어종류 FP + 언어 LOC
목적 UI, 3GL 컴포넌트 개수를 통해 노력 추정 자세 기능 탐구 시스템에 대한 자세한 이해
SW 개발/유지보수 노력도 측정

구조설계이후(Post-Architecture Model)  모델의 계산방식 
  : 규모요소 (규모,가격) 와 노력가중치를 사용하여 측정

구분 규모요소 설명
규모요인
(Scaling Driver)
경험성 개발하려는 소프트웨어와 비슷한 소프트웨어의 개발 경험 정도
개발유연성 소프트웨어 개발에서 허용되는 유연성 정도
프로세스 성숙도 개발 조직의 소프트웨어 개발 프로세스 성숙도
가격요인
(Cost Driver)
제품 복잡도 제품에 대한 5가지 영역의 복잡도 수준
플랫폼 가변성 OS, DB, Complier와 같은 플랫폼의 가변성 정도
소프트웨어 도구사용 프로젝트에서 사용되는 자동화 도구의 종류와 사용정 도를 나타내는 비용인자
개발일정 프로젝트 팀에게 부과되는 일정 제약 정도를 나타내는 비용인자
728x90
반응형
LIST

+ Recent posts