Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 2024 정보처리기사 시나공 필기
- 스프링 db1 - 스프링과 문제 해결
- jpa 활용2 - api 개발 고급
- 스프링 mvc2 - 타임리프
- 자바 기본편 - 다형성
- 자바의 정석 기초편 ch14
- 스프링 db2 - 데이터 접근 기술
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch5
- 코드로 시작하는 자바 첫걸음
- 스프링 mvc2 - 검증
- jpa - 객체지향 쿼리 언어
- 자바의 정석 기초편 ch6
- 스프링 고급 - 스프링 aop
- 2024 정보처리기사 수제비 실기
- @Aspect
- 자바의 정석 기초편 ch4
- 자바의 정석 기초편 ch3
- 스프링 mvc1 - 서블릿
- 스프링 mvc2 - 로그인 처리
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch1
- 자바의 정석 기초편 ch8
- 자바의 정석 기초편 ch2
- 스프링 입문(무료)
- 자바의 정석 기초편 ch7
- 게시글 목록 api
- 자바의 정석 기초편 ch11
- 자바의 정석 기초편 ch9
- 자바의 정석 기초편 ch13
Archives
- Today
- Total
나구리의 개발공부기록
1장 - 소프트웨어 개발 방법론 활용 | 섹션3. 상향식 비용 산정 기법, 섹션4. 수학적 산정 기법, 섹션5. 프로젝트 일정 계획 본문
2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 5강 - 정보시스템 구축 관리
1장 - 소프트웨어 개발 방법론 활용 | 섹션3. 상향식 비용 산정 기법, 섹션4. 수학적 산정 기법, 섹션5. 프로젝트 일정 계획
소소한나구리 2024. 5. 7. 17:042024년도 시나공 필기 책 내용 정리
섹션3. 상향식 비용 산정 기법
1. 상향식 비용 산정 기법의 개요
- 프로젝트의 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정하는 방법
- LOC(원시 코드 라인 수) 기법, 개발 단계별 인월수 기법, 수학적 산정 기법 등이 있음
2. LOC(원시 코드 라인수, Source Line Of Code) 기법
- 소프트웨어 각 기능의 원시 코드 라인 수의 비관치(가장 많이 측정된 코드), 낙관치(가장 적게 측정된 코드), 기대치(측정된 모든 코드라인 수의 평균)를 측정하여 예측지를 구하고 이를 이용하여 비용을 산정하는 기법
- 측정이 용이하고 이해하기 쉬워 가장 많이 사용됨
- 예측치를 이용하여 생산성, 노력, 개발 기간 등의 비용을 산정
예측치 = a + 4m + b / 6 (a = 낙관치, b = 비관치, m = 기대치(중간치))
- 산정 공식
- 노력(인월) = 개발 기간 X 투입 인원
= LOC / 1인당 월 평균 생산 코드 라인 수 - 개발 비용 = 노력(인월) X 단위 비용(1인당 월평균 인건비)
- 개발 기간 = 노력(인월) / 투입 인원
- 생산성 = LOC / 노력(인월)
- 노력(인월) = 개발 기간 X 투입 인원
3. 개발 단계별 인월수(Effort Per Task) 기법
- LOC 기법을 보완하기 위한 기법으로 각 기능을 구현시키는데 필요한 노력을 생명 주기의 각 단계별로 산정
- LOC 기법보다 더 정확
섹션4. 수학적 산정 기법
1. 수학적 산정 기법의 개요
- 상향식 비용 산정 기법으로 경험적 추정 모형, 실험적 추정 모형이라고도 하며 개발 비용 산정의 자동화를 목표로 함
- 비용을 자동으로 산정하기 위해 사용되는 공식은 과거 유사한 프로젝트를 기반으로 하여 경험적으로 유도된 것
- COCOMO 모형, Putnam 모형, 기능 점수(FP) 모형 등이 있으며 각 모형에서는 지정된 공식을 사용하여 비용을 산정
2. COCOMO 모형
- COnstructive COst MOdel(COCOMO) 모형은 보헴 (Bohem)이 제안한 것으로 원시 프로그램의 규모인 LOC(원시 코드 라인 수)에 의한 비용 산정 기법
- 개발할 소프트웨어의 규모(LOC)를 예측한 후 이를 소프트웨어 종류에 따라 다르게 책정되는 비용 산정 방정식에 대입하여 비용을 산정
- 비교적 작은 규모의 프로젝트들을 통계 분석한 결과를 반영한 모델이므로 중소 규모 소프트웨어 프로젝트 비용 추정에 적합함
- 같은 규모의 프로그램이라도 그 성격에 따라 비용이 다르게 산정 됨
- 비용 산정 결과는 프로젝트를 완성하는데 필요한 노력(Man-Month)으로 나타냄
3. COCOMO의 소프트웨어 개발 유형
- 소프트웨어의 복잡도 혹은 원시 프로그램의 규모에 따라 조직형(Organic Mode), 반분리형(Semi-Detached Mode), 내장형(Embedded Mode)로 분류할 수 있음
- 조직형(Organic Mode)
- 기관 내부에서 개발된 중/소 규모의 소프트웨어로 일괄 자료 처리나 과학 기술 계산용, 비즈니스 자료 처리용으로 5만(50KDSI) 라인 이하의 소프트웨어를 개발하는 유형
- 사무 처리용, 업무용, 과학용 응용 소프트웨어 개발에 적합
- 노력(MM) = 2.4 X (KDSI)^1.05
- 개발기간(TDEV) = 2.5 X (MM)^0.38
- 반분리형(Semi-Detached Mode)
- 조직형과 내장형의 중간으로 트랜잭션 처리 시스템이나 운영체제, 데이터베이스 관리 시스템 등의 30만(300KDSI)라인 이하의 소프트웨어를 개발하는 유형
- 컴파일러, 인터프리터와 같은 유틸리티 개발에 적합
- 노력(MM) = 3.0 X (KDSI)^1.12
- 개발 기간 (TDEV) = 2.5 X (MM)^0.35
- 내장형(Embedded Mode)
- 초대형 규모의 트랜잭션 처리 시스템이나 운영체제 등의 30만(300KDSI) 라인 이상의 소프트웨어를 개발하는 유형
- 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적합함
- 노력(MM) = 3.6 X (KDSI)^1.20
- 개발 기간(TDEV) = 2.5 X (MM)^0.32
4. Putnam 모형
- 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 가정해주는 모형
- 푸트남(Putnam)이 제안한 것으로 생명 주기 예측 모형이라고도 함
- 시간에 따른 함수로 표현되는 Rayleigh-Norden곡선의 노력 분포도를 기초로 함
- 대형 프로젝트의 노력 분포 산정에 이용되는 기법
- 개발 기간이 늘어날수록 프로젝트 적용 인원이 노력이 감소
- 개발노력(MM) = L³ / Cₖ³ ㆍTd⁴ (L : 원시코드 라인 수, Td : 개발기간, Cₖ : 환경 상수(빈약 = 2,000, 좋음 = 8,000, 최적 = 12,000)
5. 기능 점수(FP) 모형
- 기능 점수(Function Point) 모형은 알브레히트(Albrecht)가 제안한 것으로 소프트웨어의 기능을 증대시키는 요인별로 가중치를 부여하고, 요인별 가중치를 합산하여 총 기능 점수를 산출하며 총 기능 점수와 영향도를 이용하여 기능 점수(FP)를 구한 후 이를 이용해서 비용을 산정하는 기법
- 기능 점수 (FP) = 총 기능 점수 X [0.65 + (0.1 X 총 영향도)]
- 발표 초기에는 관심을 받지 못하였으나 최근에는 그 유용성과 간편성으로 비용 산정 기법 가운데 최선의 평가를 받고 있음
- 기능별 가중치
소프트 웨어 기능 증대 요인 | 가중치 | ||
단순 | 보통 | 복잡 | |
자료 입력(입력 양식) | 3 | 4 | 6 |
정보 출력(출력 보고서) | 4 | 5 | 7 |
명령어(사용자 질의수) | 3 | 4 | 5 |
데이터 파일 | 7 | 10 | 15 |
필요한 외부 루틴과의 인터페이스 | 5 | 7 | 10 |
자동화 추정 도구
- SLIM : Rayleigh-Norden 곡선과 Putman 예측 모델을 기초로 하여 개발된 자동화 추정 도구
- ESTIMACS : 다양한 프로젝트와 개인별 요소를 수용하도록 FP 모형을 기초로 하여 개발된 자동화 추정 도구
섹션5. 프로젝트 일정 계획
1. 개요
- 프로젝트의 프로세스를 이루는 소작업을 파악하고 예측된 노력을 각 소작업에 분배하며 소작업의 순서와 일정을 정하는 것
- 소프트웨어 개발 기간의 지연을 방지하고 프로젝트가 계획대로 진행되도록 일정을 계획
- 계획된 일정은 프로젝트의 진행을 관리하는데 기초 자료가 됨
- 계획된 일정과 프로젝트의 진행도를 비교하여 차질이 있을 경우 여러 조치를 통해 조정할 수 있음
- WBS(개발 프로젝트를 여러 개의 작은 관리 단위로 분할하여 계측적으로 기술한 업무 구조), PERT/CPM, 간트 차트 등이 사용됨
2. PERT(Program Evaluation and Review Technique, 프로그램 평가 및 검토 기술)
- 프로젝트에 필요한 전체 작업의 상호 관계를 표시하는 네트워크로 각 작업별로 낙관적인 경우, 가능성이 있는 경우, 비관적인 경우로 나누어 각 단계별 종료 시기를 결정하는 방법
- 과거에 경험이 없어서 소요 기간 예측이 어려운 소프트웨어 사용함
- 노드와 간선으로 구성되면 원 노드에는 작업을, 간선(화살표)에는 낙관치(최대로 빨리 진행될 때 걸리는 시간), 기대치(성상적으로 진행 될 때 걸리는 시간), 비관치(가장 늦게 진행될 때 걸리는 시간)를 표시
- 결정 경로, 작업에 대한 경계 시간, 작업 간의 상호 관련성 등을 알 수 있음
3. CPM(Critical Path Method, 임계 경로 기법)
- 프로젝트 완성에 필요한 작업을 나열하고 작업에 필요한 소요 기간을 예측
- 노트와 간선으로 구성된 네트워크로 노드는 작업을, 간선은 작업 사이의 전후 의존 관계를 나타냄
- 원형 노드는 각 작업을 의미하며 각 작업 이름과 소요 기간을 표시하고 박스 노드는 이적표를 의미하며 박스 노드 위에는 예상 완료 시간을 표시
- 간선을 나타내는 화살표의 흐름에 따라 각 작업이 진행되며, 전 작업이 완료된 후 다음 작업을 진행할 수 있음
- 각 작업의 순서와 의존 관계, 어느 작업이 동시에 수행 될 수 있는지를 한눈에 볼 수 있음
- 경영층의 과학적인 의사 결정을 지원하며 효과적인 프로젝트의 통제를 가능하게 해줌
- 병행 작업이 가능하도록 계획할 수 있으며 이를 위한 자원 할당도 가능
- 임계 경로는 최장 경로를 의미함
CPM 네트워크를 사용한 일정 계획의 순서
- 프로젝트의 규모를 추정
- 각 단계에서 필요한 작업들을 분할
- 각 작업의 상호 의존관계를 CPM 네트워크로 나타냄
- 일정 계획을 간트차트로 나타냄
4. 간트 차트(Gantt Chart)
- 프로젝트의 각 작업들이 언제 시작하고 언제 종료되는지에 대한 작업일정을 막대 도표를 이용하여 표시하는 프로젝트 일정표로 시간선(Time-Line) 차트라고도 함
- 중간 목표 미달성 시 그 이유와 기간을 예측 할 수 있게 함
- 사용자와의 문제점이나 예산의 초과 지출 등도 관리할 수 있게 함
- 자원 배치와 인원 계획에 유용하게 사용됨
- CPM 네트워크의 데이터를 바탕으로 간트 차트를 제작할 수 있음
- 작업 경로는 표시할 수 없으며 계획의 변화에 대한 적응성이 약함
- 계획 수립 또는 수정 때 주관적 수치에 기울어지기 쉬움
- 이정표, 작업 일정, 작업 기간, 산출물로 구성되어 있음
- 수평 막대의 길이는 각 작업(Task)의 기간을 나타