⚙️

[SW공학] 3. 계획

1. 계획의 이해

계획은 중요하다

2. 문제 정의

문제를 잘 정의해보자

3. 타당성 분석

경제적 타당성, 기술적 타당성, 법적 타당성

4. 개발 비용 산정

하향식 산정 기법

1) 전문가 판단 기법

ㅈㄱㄴ

2) 델파이 기법

조정자를 두어 전문가들의 편견이나 분위기에 영향을 받지 않도록 하는 기법

상향식 산정 기법

1) 원시 코드 라인 수 기법 (LOC)

낙관치 : 한 모듈의 라인 수를 가장 적게 생각할 때의 예상 라인 수
비관치 : 한 모듈의 라인 수를 가장 많게 생각할 때의 예상 라인 수
중간치 : 한 모듈의 라인 수를 보통이라고 생각할 때의 예상 라인 수
추정 LOC : (낙관치 + 4 * 중간치 + 비관치) / 6
노력 (인/월수) : (참여 인원/월 * 개발 기간) = 추정 LOC / 1인당 월 평균 생산 코드 라인 수
개발 비용 : 노력 * 단위 비용
개발 기간 : 노력 / 참여 인원
생산성 : LOC / 노력

2) 개발 단계별 노력 기법

각 개발 단계에 노력을 계산함

수학적 산정 기법

1) COCOMO 방법

Contructive Cost Model방법
완성될 소프트웨어의 LOC를 추정하고 이를 준비된 식에 대입해 필요한 노력을 예측
1.
가중치 반영하기
단순형 프로젝트 (50줄 이하) PM=2.4×(KDSI)1.05\rm PM = 2.4 \times (KDSI)^{1.05}
중간형 프로젝트 (300줄 이하) PM=3.0×(KDSI)1.12\rm PM = 3.0 \times (KDSI)^{1.12}
내장형 (임베디드) 프로젝트 (300줄 이상) PM=3.6×(KDSI)1.20\rm PM = 3.6 \times (KDSI)^{1.20}
2.
보정 계수 반영하기
프로젝트의 15가지 속성에 따라서 보정치를 부여.
Effort Adjustment Factor (EAF) 사용.
EAF=\rm EAF = 필요한 각 항목별 승수 값을 모두 곱한 값
PM\rm PM EAF\rm EAF를 곱해서 사용
3.
총 개발 기간 산정하기
단순형 프로젝트 (50줄 이하) TDEV=2.5×(PM)0.38\rm TDEV = 2.5 \times (PM)^{0.38}
중간형 프로젝트 (300줄 이하) TDEV=2.5×(PM)0.35\rm TDEV = 2.5 \times (PM)^{0.35}
내장형 (임베디드) 프로젝트 (300줄 이상) TDEV=2.5×(PM)0.32\rm TDEV = 2.5 \times (PM)^{0.32}

2) COCOMO2 방법

어플리케이션 합성 모델 : 개발 범위에 속한 객체를 찾고, 객체의 복잡도를 분류해 가중합을 산출
초기 설계 모델 : 초기 설계 단계에서 예측값을 구함
구조 설계 이후 모델 : 구조 설계 이후에 기능 점수를 바탕으로 LOC를 추정
E=b×Sc×m(X)E= b\times S^c \times m(X)

3) 기능 점수 산정 방법

사용자의 입장에서 소프트웨어의 기능을 정량화해 소프트웨어 개발 비용 산정에 활용

4) 간이 기능 점수법을 이용한 기능 점수 산정

1.
측정 유형 결정
a.
개발 프로젝트 기능 점수
b.
개선 프로젝트 기능 점수
c.
애플리케이션 기능 점수
2.
측정 범위와 애플리케이션 경계 설정
3.
데이터 기능 점수 계산
내부 논리 파일 : 이번 프로젝트에서 생성하는 데이터
외부 연계 파일 : 다른 프로젝트에서 생성해서 참조하는 데이터
데이터 기능 점수 = (내부 논리 파일 개수 * 7.5) + (외부 연계 파일 개수 * 5.4)
4.
트랜잭션 기능 점수 계산
외부 입력, 외부 출력, 외부 조회의 횟수를 세는 것
트랜잭션 기능 점수 = (외부 입력 개수 * 4) + (외부 출력 개수 * 5.2) + (외부 조회 개수 * 3.9)
5.
미조정 기능 점수 계산
데이터 기능 점수랑 트랜잭션 기능 점수 합
6.
보정 전 개발 원가 계산
보정 전 개발 원가 = 미조정 기능 점수 * 기능 점수당 단가
7.
보정 계수
a.
규모 보정 계수
b.
어플리케이션 복잡도 보정 계수
c.
보안성 수준 보정 계수
8.
보정 후 개발 원가 계산
a.
보정 전 개발 원가 * (보정 계수들의 곱)

8. 일정 계획

계획을 잘 하자

작업 분할 구조도 (WBS)

Work Breakdown Structure, WBS
목표를 달성하는 데 필요한 활동과 업무를 세분화

네트워크 차트

1) PERT

프로그램을 평가하고 검토하는 프로젝트 관리 기법

2) CPM

건설 공사 등 단위 작업이 확정적 소요 시간을 갖는 프로젝트일 경우 적합
1.
CPM 네트워크를 그린다. 노드는 작업, 간선은 의존 관계
2.
Earliest Start Time : 선행 작업이 완료되었을 때 해당 작업을 시작할 수 있는 가장 빠른 시점
3.
Earliest Finish Time : 가장 빠른 시작 시간으로 시작했을 때의 완료 시간 (ES+소요시간)
4.
Latest Start Time : 가장 늦게 시작할 수 있는 시간, 마지막 작업의 ES에서 뒤로 계산
5.
Latest Finish Time : 가장 늦게 끝나는 시간, (LS+소요시간)
6.
Slack Time : LS - ES
7.
Critical Path : Slack Time이 없는 Path

간트 차트

ㅈㄱㄴ

9. 위험 분석

위험을 잘 분석하자