기출 SW 프로젝트의 규모 척도인 기능점수(Function Point)의 장단점을 설명하고, LOC(Line Of Code)와 COCOMO(Constructive Cost Mode)와의 차이

agnusdei·2025년 7월 1일
0

Software Engineering

목록 보기
52/59

문제

SW 프로젝트의 규모 척도인 기능점수(Function Point)의 장단점을 설명하고, LOC(Line Of Code)와 COCOMO(Constructive Cost Mode)와의 차이를 설명하시오

답변

1. 기능점수(FP: Function Point)의 장단점

1.1 기능점수(FP)의 개념

  • 사용자 관점에서 소프트웨어의 기능적 규모를 측정하는 방법
  • 앨런 앨브레히트(Allan Albrecht)가 1979년 IBM에서 개발
  • 데이터 기능(내부 논리 파일, 외부 인터페이스 파일)과 트랜잭션 기능(외부 입력, 외부 출력, 외부 조회)으로 구성

1.2 기능점수의 장점

  • 프로그래밍 언어 독립성: 특정 프로그래밍 언어나 기술에 종속되지 않음
  • 초기 측정 가능: 요구사항 분석 단계에서부터 규모 측정 가능
  • 사용자 관점 반영: 사용자에게 제공되는 기능 중심으로 측정하여 비즈니스 가치 반영
  • 일관성: 표준화된 측정 방법으로 프로젝트 간 비교 가능
  • 국제 표준: ISO/IEC 20926으로 표준화되어 국제적으로 인정됨

1.3 기능점수의 단점

  • 측정 복잡성: 측정 절차가 복잡하고 전문 지식 필요
  • 주관적 요소: 측정자의 해석에 따라 결과가 달라질 수 있음
  • 기술적 복잡도 제한: 내부 알고리즘이나 기술적 복잡성을 완벽하게 반영하기 어려움
  • 시간 소모적: 정확한 측정에 많은 시간과 노력 소요
  • 특수 도메인 한계: 실시간 시스템, 임베디드 시스템 등 특수 영역에 적용이 제한적

2. LOC(Line Of Code) 측정 방법

2.1 LOC의 개념

  • 소스 코드의 물리적 라인 수를 기준으로 소프트웨어 규모를 측정하는 방법
  • 실행 명령문, 데이터 정의, 주석 등을 포함할 수 있음
  • SLOC(Source Lines of Code) 또는 KLOC(Kilo Lines of Code)으로 표현

2.2 LOC의 특징

  • 단순성: 이해하고 측정하기 쉬움
  • 객관성: 물리적으로 명확하게 측정 가능
  • 구현 중심: 실제 작성된 코드의 양을 직접 측정
  • 역사적 데이터: 오랜 기간 축적된 데이터로 비교 분석 용이

3. COCOMO(Constructive Cost Model)

3.1 COCOMO의 개념

  • 소프트웨어 개발 비용, 노력, 일정을 예측하는 알고리즘 모델
  • 배리 베임(Barry Boehm)이 1981년 개발, COCOMO II로 발전
  • 주로 LOC 기반으로 비용을 추정하며, 후에 기능점수도 지원

3.2 COCOMO의 주요 구성

  • 규모 요인: 소프트웨어 크기(KLOC 또는 FP 기반)
  • 비용 인자: 제품, 하드웨어, 인력, 프로젝트 특성을 반영한 15개 인자
  • 개발 모드: Organic(소규모), Semi-detached(중간규모), Embedded(대규모) 모드

3.3 COCOMO II의 주요 모델

  • 애플리케이션 구성 모델: 프로토타입 단계
  • 초기 설계 모델: 아키텍처 단계
  • 사후 아키텍처 모델: 상세 개발 단계

4. 세 가지 측정 방법의 비교

특성기능점수(FP)LOCCOCOMO
측정 기준기능적 요구사항코드 라인 수규모, 비용 인자, 규모 인자
측정 시점요구분석 단계부터 가능코딩 후 측정계획 단계부터 적용 가능
측정 관점사용자 관점개발자 관점프로젝트 관리 관점
언어 독립성언어 독립적언어 의존적직접 의존하지 않음(조정 가능)
측정 객관성다소 주관적객관적다소 주관적(조정계수)
측정 난이도상대적으로 복잡매우 단순중간 수준(파라미터 설정 필요)
주요 목적기능적 규모 측정물리적 규모 측정비용/노력/일정 예측
산출물기능점수(FP)코드 라인 수인월(Person-Month), 일정

4.1 기능점수 vs LOC

  • 추상화 수준: FP는 기능 중심의 높은 추상화, LOC는 코드 중심의 낮은 추상화
  • 시점: FP는 개발 전 측정 가능, LOC는 코딩 후에만 정확한 측정 가능
  • 언어 독립성: FP는 언어에 독립적, LOC는 언어의 특성에 따라 크게 달라짐
  • 생산성 측정: FP는 기능 단위의 생산성 측정 가능, LOC는 코드량 기준 생산성

4.2 기능점수 vs COCOMO

  • 목적: FP는 규모 측정이 주목적, COCOMO는 비용/일정 예측이 주목적
  • 범위: FP는 소프트웨어 기능만 측정, COCOMO는 프로젝트 전체 특성 고려
  • 적용: FP는 측정 자체가 목적, COCOMO는 FP나 LOC를 입력으로 사용하여 비용 산출
  • 조정 인자: FP는 기술적 복잡도만 조정, COCOMO는 다양한 비용 인자 적용

4.3 LOC vs COCOMO

  • 관계: COCOMO는 전통적으로 LOC를 기본 입력으로 사용
  • 확장성: LOC는 단순 측정값, COCOMO는 LOC에 다양한 인자를 적용해 확장
  • 적용 범위: LOC는 코드 크기만 측정, COCOMO는 프로젝트 환경 요소 포괄
  • 정교함: LOC는 단순한 측정, COCOMO는 복잡한 비용 모델 제공

5. 소프트웨어 규모 측정 트렌드와 발전 방향

  • 하이브리드 접근법: FP와 LOC를 상호보완적으로 활용
  • 애자일 환경 적응: 스토리 포인트와 기능점수의 연계
  • 자동화 도구: 기능점수 측정 자동화 도구 발전
  • 클라우드/마이크로서비스: 현대적 아키텍처에 맞는 측정 방법 개발

어린이 버전 요약

기능점수(FP)는 컴퓨터 프로그램이 할 수 있는 기능의 수와 복잡도를 측정하는 방법이에요. 마치 집의 크기를 방의 개수로 측정하는 것과 비슷해요.

코드 라인 수(LOC)는 프로그램을 만드는 데 작성한 줄 수를 세는 방법이에요. 책의 페이지 수를 세는 것처럼 단순해요.

코코모(COCOMO)는 프로그램을 만드는 데 얼마나 많은 사람과 시간이 필요한지 예측하는 방법이에요. 집을 짓는 데 필요한 인부 수와 시간을 계산하는 것과 비슷하답니다!

profile
DevSecOps ⚙️ + Pentest 🚩

0개의 댓글