소프트웨어 설계(5) 프로젝트 관리 및 생명주기 모형(2)

6538 단어 CSpart1CS

1) 비용 측정

① 직접 측정 요소

  • 수치, 양, 크기처럼 직접적으로 측정이 가능한 요소
  • 노력(인월), 비용, 라인 수(LOC), 오류 수, 투입 인원, 처리 속도, 문서 수 등

② 간접 측정 요소

  • 비교 대상이 있어야 측정이 가능한 요소
  • 생산성, 품질, 기능 점수(FP), 문서화 비율, 효율성, 신뢰도, 유지보수성 등

2) 인월(人月, MM: Man Month, PM: Person Month, 노력)

  • 한 사람이 1개월 동안 작업할 양이다
  • 24인월이면 1명이 24개월 동안 작업할 양이며, 24명이 1개월에 작업할 양이 된다
  • 비용 측정 단위로 가장 많이 사용되는 요소이다

인월 비용 측정 (Effort Per Task)

인월을 계산하여 비용을 측정하는 방법

3) 비용 측정의 원칙

① 소프트웨어 비용 측정을 *최대한 지연시킨다

  • 비용 측정의 실패는 프로젝트 전체의 실패이다
  • 가능한 최대한 늦춰서 측정해야 실패 위험이 줄어든다
  • 예를들어 여행을 떠날 때 여비를 측정한다며 하면 출발하기 직전까지 여비 계산을 늦춘다

② 분해 기술 이용한다

  • 개발할 소프트웨어를 기능별로 분리한 뒤 모아서 전체 비용을 측정해야 실패 위험이 줄어든다
  • 여행을 떠날 때 식비, 숙박비, 유흥비 등으로 구분을 한 뒤 전체 여비를 측정하는 것

③ 실험적 비용 측정 모델 이용한다

  • 이미 개발되었던 소프트웨어의 비용을 참고로 하여 측정한다
  • 여행을 떠날 때 이미 같은 코스로 여행을 다녀온 사람의 말을 참고로 여비를 측정해야 한다는 것

④ 자동화 도구를 이용한다

  • SLIM과 같은 비용 측정 프로그램을 이용하여 비용을 측정한다

최대한 지연

무작정 지연이 아닌, 프로젝트 계획 단계 내에서 지연시킨다

SLIM

SLIM은 비용 계산을 위한 필요 정보를 입력하면 프로그램이 알아서 비용 측정 결과를 자동으로 출력 해준다

4) 개발 비용과 개발 기간의 상관관계

  • 개발 기간이 짧아질수록 개발 비용은 증가하고, 개발 기간이 증가하면 개발 비용이 감소한다(반비례 그래프)

5) 간접 측정 평가 공식

생산성 = LOC / 인월
개발 기간 = 인월 / 개발 인원
개발 비용 = 인월 x 단위 비용

  • 30,000라인으로 측정된 소프트웨어를 두 사람이 5개월 동안 개발한다면 생산성은 30,000 / (2x5) = 3,000이 된다
  • 24인월로 측정된 소프트웨어를 6명이서 개발한다면 개발 기간은 24인월 / 6명 = 4개월이다
  • 급여가 200만 월일 때, 24인월로 측정된 소프트웨어 비용은 24인월 x 200만 원 = 4,800만 원이다

LOC (Line Of Code)

원시 코드 라인 수 = 프로그램의 명령어 수

6) 비용 측정 방법론의 분류


① 하향식

  • 전체 비용을 측정한 후 기능이나 단계별 비용으로 분류하는 방법

② 상향식

  • 기능이나 단계별로 비용을 측정한 후에 전체 비용을 측정하는 방법

7) 전문가 측정

  • 소프트웨어 개발 비용을 전문적으로 측정하는 사람에게 의뢰하는 방법으로 신속하게 비용 결정이 되지만 전문가의 편견이 문제가 될 수 있다

8) 델파이 (Delphi) 측정

  • 중재자는 여러 전문가에게 개발할 소프트웨어에 대하여 설명한다
  • 전문가들은 자신이 측정한 비용을 중재자에게 제출한다
  • 중재자는 전문가들의 비용 측정 결과를 익명으로 공개한다
  • ,을 반복하면서 평균치의 비용을 최종 비용으로 결정한다

9) LOC (Line Of Code) 측정

  • 소프트웨어를 기능별로 세분화한다
  • 입력 기능, 처리 기능, 출력 기능으로 세분화한 기능의 라인 수를 예측한다
  • 프로그램 개발에 경험을 가진 사람들이 예측한 라인 수 중 가장 적은 라인 수는 낙관치, 많은 라인 수는 비관치, 평균은 기대치로 측정된다
  • 예측치를 통해 라인당 비용을 측정해도 되고, 경험적인 방법으로 예측치의 인월을 산출하여도 된다

10) 단계별 인월 (Effort per Task 기법)

  • LOC 측정의 단점을 보완한 방식이다
  • LOC 측정은 라인 수로만 측정되기 때문에 단계별 중요도가 무시된다
  • 단계별 중요도를 인원로 가중치를 부여한 후 측정한다
  • 예를 들어 입력 기능을 측정할 때 요구분석 단계에서의 작업이 구현 단계에서 하는 작업의 역할이나 중요도와 다르기 때문에 다음과 같이 가중치를 인월로 부여하여 측정한다
  • 전체 인월 합계는 단위 비용(월급)을 곱하여 계산하면 된다

11) Walston 측정

  • 미국의 60개 개발업체에서 이미 개발한 소프트웨어의 자료를 수집하여 다음과 같은 통계적 공식을 만들었다
    MM(인월) = 5.2 x [KDSI]^0.91
    TDEV(개발기간) = 2.47 x [MM]^0.35
  • KDSI는 KLOC(전체 라인 수)에서 공백 라인, 주석, *라이브러리 등을 제외한 실제 수행되는 명령어 라인 수이다
  • Walston 공식은 소프트웨어 규모와 난이도에 상관없이 적용하기 때문에 오차가 많았다
  • Walston 공식의 담점을 보완하여 COCOMO 단체에서는 소프트웨어의 규모와 난이도를 고려하여 3가지 형태로 분류하였다

라이브러리

프로그램 개발 툴(Tool)에서 지원되는 단위 프로그램 또는 지원 함수로 KDSI에서는 제외되는 라인 수이다.
라이브러리의 규모가 커지고 독립적인 기능을 하게 되면 컴포넌트라고 한다

12) COCOMO 모형 (Basic COCOMO)

① 유기형(Organic)

  • 기관 내부에서 개발된 중소 규모의 소프트웨어로 일괄 처리나 과학기술 계산용, 비즈니스 자료 처리용으로 5만 라인 이하의 소프트웨어를 평가하는 유형
    MM = 2.4 x [KDSI]^1.05
    TDEV = 2.5 x [MM]^0.38

② 준 분리형(Semi-Detached)

  • 트랜잭션 처리 시스템이나 운영체제, 데이터베이스 관리 시스템 등의 30만 라인 이하의 소프트웨어를 평가하는 유형이다
    MM = 3.0 x [KDSI]^1.12
    TDEV = 2.5 x [MM]^0.35

③ 내재형(Embedded)

  • 초대형 규모의 트랜잭션 시스템이나 운영체제 등의 소프트웨어를 평가하는 유형
    MM = 3.6 x [KDSI]^1.20
    TDEV = 2.5 x [MM]^0.32

13) Putnam 모형

  • 대형 프로젝트에서 이용되는 기법이다
  • 시간에 따른 함수(Function)로 표현되는 Rayleigh-Norden 곡선의 노력 분포도 곡선으로 그려진다
  • 개발 기간이 연장될수록 프로젝트 적용 인원의 노력이 감소하므로 대형 프로젝트의 노력 분포 산정에 용이하다
  • Putnam 모형을 기초로 해서 만든 자동화 추정 도구는 SLIM이다
  • SLIM은 총인월(MM), 개발 기간 등의 비용 측정값을 입력하면 소프트웨어 비용 산출을 자동으로 출력해준다
  • Putnam 모형 공식
  • 개발 기술 지수는 임의로 부여할 수 있는 값으로 예를 들면, 최악 환경을 12000, 보통 환경은 8000, 최상 환경은 5000 정도로 적용하면 된다

14) 기능 점수 (Function Point) 모형

① 기능 점수 모형의 개념

  • 기능 점수는 논리적 설계 관점에서 사용자(고객)가 요구하고 인도받는 기능량을 정량적으로 산정하는 방식으로 소프트웨어 기능 규모를 산정하는 소프트웨어 규모 산정 방법이다
  • 기능 점수는 소프트웨어의 양과 질을 동시에 고려한 소프트웨어 규모 산정 방식의 일종으로 정보처리 규모와 기능적 복잡도에 의해 소프트웨어 규모를 사용자의 관점에서 기술적 요소는 배제하고 측정하는 방식이다
  • 물리적인 파일이나 테이블 또는 프로그램 모듈 수를 산정하는 것이 아니라, 사용자 관점의 논리적 사용자의 기능 요구사항을 산정하는 것이다
  • 산정 기준이 모두 규칙으로 정의되어 있어 비용 산정 결과의 일관성과 정확성을 확보할 수 있다
  • 국제 표준 소프트웨어 규모 산정 방법으로 애플리케이션에 적용되는 방법이나 기술과 무관하게 사용자의 기능적 요구사항을 기준으로 산정하는 방법이다

② 기능 점수 모형과 LOC 측정의 비교

③ 기능 점수의 비용 산정 요소

  • 입력 유형의 수: 형식이 다른 입력 양식의 수, 입력 파일
  • 출력 유형의 수: 형식이 다른 출력 양식의 수, 출력 보고서
  • 사용자 명령어 수: 데이터 구조 변경을 위한 명령이 아니라 프로그램을 실행하는 명령어 수, 사용자 질의 수
  • 데이터 파일의 수: 시스템에 의해 생성되는 내부 파일의 수
  • 인터페이스의 수: 외부 프로그램과의 연계되는 수

좋은 웹페이지 즐겨찾기