- 프로젝트 관리 (Project Management)
- 개요
- 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 활동
- 소프트웨어 개발 계획을 세우고 분석, 설계, 구현 등의 작업을 통제하는 것
- 소프트웨어 생명 주기의 전 과정에서 걸쳐 진행
- 수행할 작업의 범위, 필요 자원, 수행 업무, 이정표, 비용, 추진 일정들을 알아야 함
- 프로젝트 관리 대상
- 계획 관리
- 품질 관리
- 위험 관리
- 효과적인 프로젝트 관리를 위한 3대 요소 (3P)
: People(인적 자원) , Problem(문제 분석 및 인식) , Process(개발에 필요한 작업 계획)
- 프로젝트 관리 구성 단계
- "프로젝트 시작 - 프로젝트 계획 수립 - 프로젝트 가동 - 프로젝트 통제 - 프로젝트 종료"
- 프로젝트 계획 수립
- 특징
- 프로젝트 수행 전 개발 영역 결정, 필요 자원, 비용, 일정 등을 예측하는 작업
- 계획 수립을 통해 개발 과정에서 발생할 수 있는 여러 위험 최소화 가능
- 계획 수립 산출물 : 시스템 정의서, 프로젝트 계획서
- 계획에 따라 소프트웨어의 품질이 결정되므로, 계획단계에서 관리자가 중요함
- 소프트웨어 개발 영역(범위) 결정
- 개발 영역 결정 요소 : 데이터, 소프트웨어에 대한 기능, 성능, 제약 조건, 인터페이스, 신뢰도 등
- 자원 추산
- 인적 자원
- 재사용 소프트웨어 자원
- 환경 자원
- 소프트웨어 프로젝트 추산
- 프로젝트 수행에 필요한 비용 예측
- 신뢰할만한 비용을 예측하기 위한 방법
- 관리의 후반까지 프로젝트 예측을 가능한 한 연기한다 (현실성 부족)
- 이미 수행된 유사 프로젝트 참고
- 상대적으로 잘게 분리하여 예측하는 분해 기법 사용
- 하나 이상의 경험적 예측(실험) 모델 활용
- 자동화 도구 도입
- 계획 수립 시 고려사항
- 프로젝트 복잡도
- 프로젝트 규모
- 구조적 불확실성 정도
- 과거 정보의 가용성
- 위험성
- 소프트웨어 프로젝트 추산
- 프로젝트 수행에 필요한 소프트웨어의 직간접적 비용 예측
- 가장 어렵고 오차 발생이 심함 (정확한 예측 어려움)
- 소프트웨어 측정 요소
- 직접 측정 요소 : 노력, LOC, 투입 인원, 문서수 등
- 간접 측정 요소 : 생산성, 복잡성, 효율성, 품질, 신뢰성, 유지 보수성 등
- 소프트웨어 비용 결정 요소
- 프로젝트 요소 : 어떤 소프트웨어를 개발할 것인가에 따라 비용이 달라짐
- 제품의 복잡도 : 소프트웨어의 종류에 따라
- 시스템의 크기 : 소프트웨어의 규모에 따라
- 요구되는 신뢰도
- 자원 요소
- 인적 자원 : 관리자, 개발자 능력 및 자질
- 하드웨어 자원
- 소프트웨어 자원
- 생산성 요소
- 개발자의 능력
- 개발 기간
- 소프트웨어 비용 산정 기법
- 하향식 비용 산정 기법 : 과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한 회의를 통해 비용을 산정하는 비과학적인 방법, 전체 비용 산정 후, 각 작업별로 비용 세분화
- 전문가 감정 기법
- 두 명 이상의 전문가에게 비용 산정 의뢰
- 편리, 신속. 개인적/주관적일 수 있음
- 델파이 기법
- 전문가 감정 기법을 보완하기 위하여, 많은 전문가의 의견을 종합하여 산정하는 기법
- 상향식 비용 산정 기법
- 세부적인 작업 단위별로 비용 산정 후 집계하여 전체 비용 산정 하는 방법
- LOC(Line of code, 원시 코드 라인 수) 기법
- 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고, 이를 이용하여 비용 산정
- 비관치 : 가장 많이 측정된 코드 라인 수
- 낙관치 : 가장 적게 측정된 코드 라인 수
- 기대치 : 측정된 모든 코드 라인 수의 평균
- 산정 공식
- 예측치 = { (낙관) + 4 * (기대) + (비관) } / 6
- 노력(인월, E) = 개발 기간 * 투입 인원 = LOC / 1인당 월평균 생산 코드 라인 수
- 개발 비용 = 노력(인월) * 단위 비용 (1인당 월평균 인건비)
- 개발 기간 = 노력(인월) / 투입 인원
- 생산성 = LOC / 노력(인월)
- 개발 단계별 인월수(Effort Per Task) 기법
- LOC 기법을 보완하기 위하여, 각 기능 구현 시키는데 필요한 노력(인월)을 생명 주기이 각 단계별로 산정
- LOC 기법 보다 정확
- 수학적 산정 기법
- (= 경험적 추정 모형, 실험적 추정 모형)
- 목표 : 개발 비용 산정의 자동화
- COCOMO 모형
- Constructive Cost Model, Boehm 제안
- 원시 프로그램의 규모인 LOC에 의한 비용 산정 기법
- 특징
- 규모(LOC) 예측 후, 소프트웨어 종류에 따라 다르게 책정되는 비용 산정 공식에 대입하여 비용 산정
- 소프트웨어 개발비 견적에 널리 통용
- 같은 규모라도 성격에 따라 비용이 다르게 산정
- 비용 산정 결과는 MAN-MONTH로 나타남
- 소프트웨어 개발 유형
- 소프트웨어 복잡도 혹은 원시 프로그램 규모에 따라 분류
- 조직형 (Organic mode)
- 기관 내부에서 개발된 중소규모의 소프트웨어
- 일괄 자료 처리, 과학 기술 계산용, 비즈니스 자료 처리용
- 50KLOC(=5KDSI) 이하의 소프트웨어
- 사무 철용, 업무용, 과학용 응용 소프트웨어 개발에 적합
- 반분리형 (Semi-detached mode)
- 트랜잭션 처리 시스템, 운영체제, 데이터베이스 관리 시스템 등
- 300KLOC 이하의 소프트웨어
- 컴파일러, 인터프리터와 같은 유틸리티 개발에 적합
- 내장형 (Embedded mode)
- 최대형 규모의 트랜잭션 처리 시스템, 운영체제
- 300KLOC 이상의 소프트웨어
- 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적합
- COCOMO 모형의 종류
- 기본형 cocomo
- 소프트웨어 크기와 개발유형 만을 이용하여 비용 산정
- 중간형 cocomo
- 기본형 공식 + 4가지 특성의 15가지 요인 고려
- 제품 특성
- 컴퓨터 특성
- 개발 요원 특성
- 프로젝트 특성
- 발전형 cocomo
- 중간형 cocomo 보완
- 개발 공정별로 자세하고 정확하게 노력 산출
- Putnam 모형
- 소프트웨어 생명 주기 전 과정동안 사용될 노력의 분포를 가정해주는 모형
- putnam이 제안
- 시간에 따른 함수로 표현되는 rayleigh-norden 곡선의 노력 분포도를 기초
- 대형 프로젝트에 적합
- 개발 기간이 늘어날수록 프로젝트 적용 인원이 노력이 감소
- **cf. putnam 모형을 기초로 한 자동화 도구 : SLIM
- 기능 점수(Functional Point) 모형
- albrecht이 제안
- 기능을 증대시키는 요인별로 가중치 부여
- 요인별 가중치 합산하여 총기능 점수 산출
- 총 기능 점수와 영향도를 이용하여 기능점수(FP) 구하여, 이를 이용하여 비용 산출
- 최근에 유용성과 간편성으로 비용 산정 기법 중 좋은 평가 받음
- **cf. FP 모형을 기초로하여 개발된 자동화 도구 : ESTIMACS
'Computers > SW Engineering' 카테고리의 다른 글
day 3. 전통적 S/W 개발방법 - 요구사항 분석, 자동화 도구, 설계 (0) | 2016.03.21 |
---|---|
day 2. 프로젝트 관리 - 위험 관리, 형상 관리 (0) | 2016.03.17 |
day 2. 프로젝트 관리 - 조직 구성, 품질 보증, 신뢰성/가용성 (0) | 2016.03.17 |
day 2. 프로젝트 관리 - 일정 관리 (0) | 2016.03.17 |
day 0. 소프트웨어공학 개요 (0) | 2016.03.15 |