01. 요구사항 확인
Chapter 01. 소프트웨어 개발 방법론
2. 프로젝트 관리 ⭐⭐⭐
(1) 프로젝트 관리 (Project Management)
- 프로젝트 관리는 주어진 기간 내 최소 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적 활동
- 소프트웨어 개발 계획을 세우고 분석, 설계, 구현 등의 작업을 통제하는 것으로 소프트웨어 생명 주기 전 과정에 걸쳐 진행
- 소프트웨어 프로젝트를 성공적으로 수행하기 위해 수행 작업 범위, 필요 자원, 수행 업무, 비용, 추진 일정들을 관리
[1] 프로젝트 관리 대상
1. 계획 관리
- 프로젝트 계획, 비용 산정, 일정 계획, 조직 계획에 대한 관리
2. 품질 관리
- 품질 통제 및 품질 보증
3. 범위 관리
- 이해관계자가 요청한 모든 요구사항이 프로젝트 범위에 포함되는지 보장하고, 필요 작업만 수행될 수 있게 관리
[2] 프로젝트 관리 3대 요소 (3P)
1. 사람(People)
- 프로젝트 관리에서 가장 기본이 되는 인적 자원
2. 문제(Problem)
- 사용자 입장에서 문제 분석하여 인식
3. 프로세스(Process)
- 소프트웨어 개발에 필요한 전체적 작업 계획 및 구조(Framework)
(2) 비용산정 모형
- 비용산정 모형은 소프트웨어 규모파악을 통한 투입자원, 소요시간을 파악하여 실행 가능한 계획을 수립하기 위해 비용을 산정하는 방식이다
[1] 비용산정 모형 분류
1. 하향식 산정방법
- 경험 많은 전문가에게 비용 산정을 의뢰
- 여러 전문가와 조정자를 통해 산정
▶ 전문가 판단, 델파이 기법
➕ 델파이 기법 (Delphi Method)
- 전문가의 경험적 지식을 통한 문제 해결 및 미래 예측을 위한 기법으로 전문가 합의법이라고도 한다.
2. 상향식 산정방법
- 세부적 요구사항과 기능에 따라 필요 비용을 계산하는 방식
▶ 코드 라인 수(LoC), Man Month, COCOMO 모형, 푸트남 모형, 기능점수(FP) 모형
[2] 비용산정 모형 종류
1. LoC(Lines of Code) 모형
- 소프트웨어 각 기능의 원시 코드 라인 수의 낙관치, 중간치, 비관치를 측정하여 예측치 구하고 이를 이용하여 비용을 산정하는 방식
- 측정이 쉽고 이해하기 쉬워 많이 사용
- 예측치 이용하여 생산성, 노력, 개발 기간 등의 비용 산정
✅ 예측치 = $=\frac{o+4m+p}{6}$ ($o$:낙관치, $m$:중간치, $p$:비관치)
✔ 비관치 : 가장 많이 측정된 코드 라인 수
✔ 중간치 : 측정된 모든 코드 라인 수의 평균
✔ 낙관치 : 가장 적게 측정된 코드 라인 수
2. Man Month 모형 - 2020년 1회
- 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용을 산정하는 방식
✅ (Man Month) = (LoC)/(프로그래머의 월간 생산성)
✔ 프로젝트 기간 = (Man Month) / (프로젝트 인력)
3. COCOMO(COnstructive COst MOdel) 모형
- 보헴(Boehm)이 제안한 모형으로 프로그램 규모에 따라 비용을 산정하는 방식
- 비용산정 결과는 프로젝트 완성에 필요한 노력(Man-Month)으로 산정
- 비용 견적의 강도 분석 및 비용 견적의 유연성이 높아 소프트웨어 개발비 견적에 널리 통용
- 규모에 따라 유형이 조직형(= 기본형, 단순형), 반 분리형, 임베디드형으로 나뉜다.
- COCOMO 소프트웨어 개발 유형
① 조직형 (Organic Mode)
- 기관 내부에서 개발된 중 소규모의 소프트웨어
- 일괄 자료 처리나 과학 기술 계산용, 비즈니스 자료 처리 개발에 적용
- 5만(50KDSI) 라인 이하 소프트웨어 개발 유형
② 반 분리형 (Semi-Detached Mode)
- 단순형과 임베디드형의 중간형
- 트랜잭션 처리 시스템, 데이터베이스 관리 시스템, 컴파일러, 인터프리터와 같은 유틸 개발에 적용
- 30만(300KDSI) 라인 이하 소프트웨어 개발 유형
③ 임베디드형 (Embedded Mode)
- 초대형 규모 트랜잭션 처리 시스템이나 운영체제, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적용
- 30만(300KDSI) 라인 이상의 소프트웨어 개발 유형
📌 COCOMO의 소프트웨어 개발 유형
※ 오세임 : Organic Mode / Semi-Detached Mode / Embedded Mode
4. 푸트남(Putnam) 모형
- 소프트웨어 개발주기의 단계별로 요구할 인력의 분포를 가정하는 방식
- 푸트남이 제안한 것으로 생명주기 예측 모형이라고 한다.
- 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 한다.
5. 기능점수(FP; Function Point) 모형
- 요구 기능 증가시키는 인자별 가중치 부여하고 요인별 가중치 합산하여 총 기능 점수 계산하여 비용 산정하는 방식
✅ 기능점수(FP) = 총 기능점수 x [0.65 + (0.1 x 총 영향도)]
- 경험 바탕으로 단순, 보통, 복잡 정도에 따라 가중치 부여
(3) 일정관리 모델
- 일정관리 모델은 프로젝트가 일정 기한 내에 적절하게 완료될 수 있도록 관리하는 모델
[1] 일정관리 모델 종류
1. 주 공정법 (CPM; Critical Path Method)
- 여러 작업 수행 순서가 얽혀 있는 프로젝트 일정을 계산하는 기법
- 모든 자원 제약사항 배제한 상태로 프로젝트 시작과 끝을 나타내는 노드(Node)와 노드 간 연결을 통해 공정을 계산하기 위한 액티비티(Activity) 표기법
➕ 주 공정(Critical Path; 임계 경로)
- 프로젝트 시작에서 종료까지 가장 긴 시간이 걸리는 경로
2. PERT (Program Evaluation and Review Technique)
- 일의 순서를 계획적으로 정리하기 위한 수렴 기법
- 비관치, 중간치, 낙관치의 3점 추정방식을 통해 일정을 관리하는 기법
3. 중요 연쇄 프로젝트 관리 (CCPM; Critical Chain Project Management)
- 주 공정 연쇄법으로 자원제약사항을 고려하여 일정을 작성하는 기법
📌 CPM(주 공정법) 이용 일정 계산
- 프로젝트 시작에서 종료까지 가장 긴 시간이 걸리는 경로 계산
▶ 임계 경로는 시작 > 가 > 나 > 바 > 종료 = 24일 이다.
① 시작 > 가 > 나 > 바 > 종료 = 8+10+2+4 = 24
② 시작 > 가 > 다 > 사 > 종료 = 8+5+1+4 = 18
③ 시작 > 라 > 사 > 종료 = 3+1+4 = 8
④ 시작 > 마 > 아 > 종료 = 7+6+4 = 17
(4) 위험 관리 (Risk Management)
- 프로젝트에 내재된 위험 요소를 인식하고 그 영향을 분석하여 이를 관리하는 활동
- 위험 관리는 프로젝트를 성공시키기 위해 위험 요소를 사전에 예측, 대비하는 모든 기술과 활동을 포함
[1] 위험 종류
소프트웨어 개발 시 나타나는 일반적 위험 요소에는 인력 부족, 예산 관리, 일정 관리, 사용자 요구사항 변경 등이 있음
→ 이 중 대표적 위험 요소는 사용자 요구사항 변경
- 위험 종류 3가지
1. 알려진 위험
- 프로젝트 계획서, 기술적 환경, 정보 등에 의해 발견될 수 있는 위험
2. 예측 가능한 위험
- 과거 경험으로부터 예측할 수 있는 위험
3. 예측 불가능한 위험
- 사전 예측이 매우 어려운 위험
[2] 위험 대응 전략
1. 회피(Avoidance)
- 발생 가능성 원천 제거 전략
2. 전가(Transference)
- 위험에 대한 책임을 제3자에게 넘기는 전략
3. 완화(Mitigation)
- 위험 발생 가능성을 감소시키거나 영향력을 감소시키는 전략
4. 수용(Acceptance)
- 위험을 그대로 받아들이는 전략
'WorkOut > 정보처리기사' 카테고리의 다른 글
요구사항 확인 | 현행 시스템 분석 2 (0) | 2024.04.22 |
---|---|
요구사항 확인 | 현행 시스템 분석 (0) | 2024.04.22 |
요구사항 확인 | 소프트웨어 개발 방법론 (1) | 2024.04.19 |
서버 프로그램 구현 | 배치 프로그램 (0) | 2024.04.18 |
서버 프로그램 구현 | 모듈 구현 및 테스트 (0) | 2024.04.18 |