3 강. 프로젝트관리 학습개요 소프트웨어프로젝트는항상예산과일정에맞춰진행되어야하므로효율적으로관리되어야한다. 프로젝트관리자는제안서를작성하고일정과비용에대한계획을세우며프로젝트를감시하고통제할책임을가진다. 또한발생할수있는위험을예측하고관리하여야한다. 이장에서는프로젝트관리자의업무를학습할것이다. 소프트웨어의규모와비용을추정하는방법, 일정계획을위한방법을알아볼것이다. 학습목표 1 소프트웨어프로젝트관리의중요성을이해한다. 2 프로젝트관리자의업무를기술할수있다. 3 프로젝트일정계획방법을사용할수있다. 4 비용산정모델인 COCOMO를설명할수있다. 5 소프트웨어프로젝트의팀구성방식을구별할수있다. 6 위험요인의분석과관리방법을기술할수있다. 주요용어 용어소프트웨어프로젝트관리인원-월 (PM) WBS 해설프로젝트를계획하고계획된시간과예산에맞추어개발이진행되는지감독하는일작업양의단위로, 1PM은보통수준의 1인이 1개월간수행해야하는작업양프로젝트수행을위한개발업무를세분화하여계층구조로표현한것 CPM 작업들의순서를정하고임계경로에기초하여프로젝트의일정을계획하기위한방법 COCOMO 프로그램의규모를가지고프로젝트비용을산정하는방법 매트릭스조직 프로젝트조직과기능별조직을혼합한형태의팀구성방식으로개발자는전문분야에속하되일정기간동안프로젝트에소속된다. 책임 프로그래머중앙집중형팀구성방식으로책임프로그래머가중요한기술적판 팀 단과관리적결정을한다. 위험관리 발생가능한위험요인들을예측하고영향력을분석하여대책을계획하고감독하는것
메뉴 학습하기 (PPT 내용 ) 3.1 프로젝트관리개요 프로젝트관리 - 예산과일정의제약으로관리가필요 - 프로젝트를계획하고프로젝트가요구되는표준을따르는지확인하고시간과예산에맞추어개발되는지감독 소프트웨어프로젝트관리의어려운점 - 소프트웨어제품이보이지않기때문에문서에의존함 - 소프트웨어개발프로세스에관한명확한표준이없음 - 기술발전속도가빨라프로젝트경험을살리기어려움 프로젝트관리자의업무 - 프로젝트착수 : 제안서작성 - 프로젝트계획 : 일정, 비용, 자원, 위험계획 - 프로젝트실행 : 계획에기초한프로젝트감시와통제 - 프로젝트종료 : 보고서작성, 프로젝트평가 프로젝트계획 - 어느정도의비용으로누구에의하여언제까지행해져야하는가를결정 - 발생가능한문제점을분석하고해결방안을모색 - 브룩스의법칙 일정이늦어진소프트웨어프로젝트에인력을추가하는것은일정을더욱늦추는결과를낳는다 <- 기존업무의이해, 의사소통경로의증가, 작업재분할 프로젝트계획서의구성 - 개요 - 개발절차계획 - 인원, 예산및일정계획 - 문서화계획 - 하드웨어와소프트웨어자원계획 - 위험관리계획 3.2 소프트웨어일정계획
일정계획을위한작업 - 작업의분할전체작업을관리가능하고측정가능한소작업들로분할작업분해구조 (WBS) - 작업의명세화소작업들에대해일의양, 필요한산출물 ( 이정표 ) 과컴퓨터자원등을결정작업의양을인원-월 (PM) 로표시함, 1PM은중급수준개발자의한달간작업량 - 작업진행순서의정의작업들의선행관계를분석하여순서를정함 PERT/CPM - 인력배정작업의양과특성에맞도록개발자를배정 - 작업비용의산정작업의양과인력에따른비용을산정 - 개발일정의수립작업별로시작시점과종료시점을설정 CPM, 간트 (Gantt) 차트 이정표 (milestone) 와결과물 (deliverable) - 이정표소프트웨어프로세스에서개별활동의종료시점또는주요단계의종료시점에서얻어지는중간산출물프로젝트진행상황의파악, 비용과일정의수정을위해필요함 - 결과물프로젝트주요단계의종료시점에서고객에게전달되는산출물 WBS(Work Breakdown Structure) - 작업분할구조 - 프로젝트수행을위해개발업무를분할하여계층구조로표현 - 최하위수준의작업을작업패키지 (work package) 라고함정량적으로측정가능한입력물과출력물을가짐 - 프로젝트계획과관리를위한기초자료 PERT - 작업들의선후관계를표현 - 작업패키지들의순서에관한정보로사이클이없는방향그래프 CPM - 임계경로방법 - 임계경로는시작에서종료작업까지의경로중가장긴경로임계경로상의작업들은프로젝트의일정준수를위해지연이허용되지않는작업
임계경로상에있지않은작업들은여유시간을가짐 [ 그림 3-6] CPM 네트워크와경계시간및임계경로 간트 (Gantt) 차트 - 막대모양으로프로젝트작업들의순차또는병행순서를보여주는차트상단에시간축을표시, 작업별로막대를표시막대는작업시간에맞추어지며길이는소요시간을의미 - 인력배정등의자원활용계획에도사용됨 [ 그림 3-7] 간트차트 3.3 소프트웨어규모의산정 소프트웨어프로젝트산정 - 프로젝트완성을위해소요되는여러요소를추정하는일소프트웨어규모, 개발비용, 기간등
- 프로젝트계획작업이며프로젝트실행과관리에기초가됨 라인수 (LOC) - 간단하며비용산정방법과의연결이용이하고가시적임 - 계획단계에서산정하기어렵고프로그래밍언어에따라다름 - 과거의경험, 전문가의판단, 구성요소별산출한후합산 기능점수 (FP) - 기능의규모를측정하기위한단위 - 프로그램의기능에초점을맞춘논리적규모척도기능적사용자요구사항을양으로표시 - 구현기술이나구현언어와무관 - 사무정보시스템의규모산정에적합함 - 조정기능점수 (AFP) 는미조정기능점수 (UFP) 와조정계수 (VAF) 의곱 미조정기능점수 (UFP) - 자료의규모로부터기능을측정 - 프로그램에서표현되거나사용된데이터의총량을계량화 - 데이터기능 ( 논리적내부파일, 외부인터페이스파일 ) 과트랜잭션기능 ( 외부출력, 외부입력, 외부조회 ) 을측정각각의개수에유형의복잡도에따른가중치를곱하고모두합함 조정계수 (VAF) - 기술적복잡도를반영하기위해 14개복잡도항목의영향도를계산하여모두합함 - VAF = 0.65 + 0.01*TDI 조정기능점수 (AFP) - AFP = UFP*VAF - 프로그래밍언어별로기능점수 1점을구현하기위해필요한라인수가존재기능점수로부터라인수를계산할수있음초기단계에서라인수추정에효과적 - 프로그래머의평균생산성 (FP/PM) 이알려져있다면전체 PM을계산할수있음 3.4 소프트웨어개발비용산정 소프트웨어프로젝트산정 - 규모추정, 개발노력 ( 비용 ) 추정, 일정계획 - 노력추정에과거데이터와프로젝트의특성을고려 - 일정계획에는투입되는인력을고려 - 추정의정확성은과거프로젝트데이터의정확성, 제공되는입력의정확성, 개발조직에서프로세스의성숙도에좌우됨
[ 그림 3-8] 프로젝트규모, 노력, 비용및일정의추정과정 비용산정방법의분류 - 판단에의한방법전문가의판단, 델파이방법, 작업분해에의한방법 - 모델을이용한방법알고리즘모델, 유추에의한산정 COCOMO(COnstructive COst MOdel) - 가장잘알려진소프트웨어비용산정모델 - 프로젝트유형을 3가지로구분하고분석정도에따른 3가지모델을제시 - 기본 COCOMO 라인수로노력을계산 - 중급 COCOMO 비용승수를고려 - 상세 COCOMO 서브시스템이나모듈별로비용을계산분석, 설계등의개발단계별로비용을계산 - 프로젝트유형기본형 : 소규모프로젝트, 경험있는개발자, 까다롭지않은요구사항중간형 : 중규모프로젝트, 중간정도의경험, 요구사항의혼재내장형 : 대규모프로젝트, 엄격한제약조건 기본 COCOMO - 대략적으로개발노력은소프트웨어규모에선형적으로비례
< 표 3-5> 기본 COCOMO 공식 총노력 (PM) 총개발기간 ( 개월 ) 기본형 Effort=(2.4*KLOC 1.05 ) T dev =2.5*(Effort) 0.38 중간형 Effort=(3.0*KLOC 1.12 ) T dev =2.5*(Effort) 0.35 내장형 Effort=(3.6*KLOC 1.20 ) T dev =2.5*(Effort) 0.32 [ 그림 3-9] 프로젝트크기에따른노력 ( 프로젝트유형별 ) -예총노력 = 2.4 * 32 1.05 = 91 PM 총개발기간 = 2.5*(91) 0.38 = 14 개월평균인력 = 91/14 = 6.5 명생산성 = 32000/91 = 352 LOC/PM 중급 COCOMO - 15개의비용승수를곱하여노력조정계수 (EAF) 를계산각비용승수는 6개의등급으로나뉨 - 총노력을계산할때 EAF를곱함
< 표 3-6> COCOMO 비용승수 승수 비용승수값매우낮음낮음보통높음매우높음극히높음 제품의속성요구되는 S/W 신뢰도 0.75 0.88 1.00 1.15 1.40 데이터베이스크기 0.94 1.00 1.08 1.16 제품의복잡도 0.70 0.85 1.00 1.15 1.30 1.65 컴퓨터속성실행시간의제약 1.00 1.11 1.30 1.66 주기억장치의제약 1.00 1.06 1.21 1.56 컴퓨터와 S/W의안정성 0.87 1.00 1.15 1.30 요구되는응답시간 0.87 1.00 1.07 1.15 개발요원의속성분석가의능력 1.46 1.19 1.00 0.86 0.71 응용에대한경험 1.29 1.13 1.00 0.91 0.82 엔지니어의능력 1.46 1.17 1.00 0.86 0.70 컴퓨터와 S/W의친숙도 1.21 1.10 1.00 0.90 프로그래밍언어경험 1.14 1.07 1.00 0.95 프로젝트속성소프트웨어공학의활용 1.24 1.10 1.00 0.91 0.82 도구의사용 1.24 1.10 1.00 0.91 0.83 요구되는개발일정 1.23 1.08 1.00 1.10 1.10 예 : 산출된노력조정계수 1.17 < 표 3-7> 중급 COCOMO 공식 총노력 (PM) 전체개발시간 ( 개월 ) 기본형 Effort=(3.2*KLOC 1.05 )*EAF T dev =2.5*(Effort) 0.38 중간형 Effort=(3.0*KLOC 1.12 )*EAF T dev =2.5*(Effort) 0.35 내장형 Effort=(2.8*KLOC 1.20 )*EAF T dev =2.5*(Effort) 0.32 - 예 총노력 = 2.8 * 4 1.20 * 1.17 = 17 PM 총개발기간 = 2.5 * 17 0.32 = 6 개월비용 = 17PM * 5,000,000원 /PM = 850,000,000원 소프트웨어의수정을위한노력 - 설계, 코드, 통합과테스트부분에서수정이필요한비율을구하여수정조정계수 (AAF) 를계산 - AAF = 0.4*( 설계수정비율 ) + 0.3*( 코드수정비율 ) + 0.3*( 통합과테스트수정비율 ) - AAF를이용하여수정이요구되는 LOC를계산한후공식에대입 3.5 팀구성방식매트릭스조직 - 프로젝트조직과기능별조직의장점을조합한형태개발자가전문분야에속하되일정기간프로젝트에소속되는형태
- 팀구성원들간에정보와경험을공유할수있으나기능부서관리자와프로젝트관리자양쪽의지배를받음 [ 그림 3-10] 매트릭스조직 의사결정방법에따른팀구성 - 비이기적인팀분산형팀구성방식구성원전체가의사결정에참여작업에대한만족도가높으나의사결정이늦고책임소재가모호함 - 책임프로그래머팀 (chief programmer team) 중앙집중형팀구성방식책임프로그래머가중요한기술적판단과관리적결정을함의사소통경로가감소하나책임프로그래머의능력에크게의존함 - 계층형팀구성중앙집중형과분산형팀구성방법을혼합 3.6 위험분석과관리 위험 - 불확실성으로인한잠재적인문제 - 비용, 품질및일정에좋지않은영향을줄수있는부정적요인 - 위험관리발생가능한위험요인들을예측하고영향력을분석하여대책을계획하고프로젝트를실행하는것 위험의분류 - 제품위험제품의품질이나성능에영향을주는위험불안정한요구사항이나성능이낮은도구등 - 조직위험조직의비즈니스에영향을주는위험기술의변화나경쟁사제품의출시등 - 프로젝트위험프로젝트일정이나자원활용에영향을주는위험
미흡한조직의지원, 중요프로젝트요원의이직등 위험관리프로세스 - 위험식별발생가능한위험요인을나열 - 위험분석위험요인별로발생가능성과충격의심각성을평가 - 위험계획회피전략 : 발생가능성을줄이는것최소화전략 : 위험발생시충격을줄이는것긴급대책 : 최악의상화에대비하는것 - 위험제어와모니터링 [ 그림 3-14] 위험관리프로세스 메뉴 연습문제 1. 브룩스의법칙이의미하는것이아닌것은? 1 투입인력의증가로의사소통경로가크게증가한다 2 1인이 12개월할일을 12인이 1개월에할수없다 3 가능한초기에많은인력을투입하는것이좋다 4 새로투입된인력은진행된작업을먼저이해해야한다 < 정답 > 3 < 해설 > 브룩스의법칙은 지연되고있는프로젝트에더많은프로그래머를투입할경우오히려더지연될수있다 는것이다. 2. 소프트웨어프로젝트의소요기간과비용을추정하는방법에관한설명으로옳지않은것은? 1 COCOMO는먼저완성될시스템의규모를추정해야한다 2 기능점수방법은구현에이용되는프로그래밍언어에독립적이다
3 기능점수방법으로비용을산정하려면프로그래머의생산성 (FP/PM) 을알아야한다 4 인원-월 (PM) 은프로젝트수행기간을나타내기위한단위이다. < 정답 > 4 < 해설 > 1PM은중간수준개발자의 1개월작업량을의미하는것으로노력을추정할때사용되는단위이다. 3. 프로젝트일정계획과관련이없는것은? 1 작업분할구조 (WBS) 2 간트 (Gantt) 차트 3 임계경로방법 (CPM) 4 자료흐름도 (DFD) < 정답 > 4 < 해설 > 일정계획을위해먼저작업분할구조가만들어져야한다. 간트차트는일정계획을표현하기위한차트이다. 4. 소프트웨어에요구되는신뢰도와개발비용과의관계는무엇인가? 1 신뢰도와개발비용은무관하다 2 신뢰도와개발비용은반비례한다 3 신뢰도가증가하면개발비용은선형적으로비례한다 4 신뢰도가높아질수록개발비용은크게증가한다 < 정답 > 4 < 해설 > 일반적으로높은신뢰도가요구되는경우정형적인요구사항명세나엄격한테스트작업이필요하여개발비용은매우크게증가하게된다. 5. 소프트웨어개발팀구성에관한설명으로적당한것은? 1 중앙집중식팀구성은비교적소규모프로젝트에적합하다 2 분산형팀의의사소통경로는계층적이다 3 분산형팀에서 1명의작업자가추가되면의사소통경로는 1만큼증가한다 4 매트릭스조직은부서를기능별로전문화하지않는다 < 정답 > 1 < 해설 > 분산형팀구성에서작업자 1인이추가되면 (n-1) 의의사소통경로가추가된다. 매트릭스조직은기능부서별로조직화하되일정기간프로젝트에소속되는형태이다.
메뉴 정리하기 1. 소프트웨어프로젝트관리자의주요업무는무엇인가? 프로젝트제안서작성, 일정 / 비용 / 자원 / 위험계획, 계획에기초한프로젝트의감시와통제, 최종보고서의작성과프로젝트평가 2. WBS 는무엇인가? 작업분할구조를의미하는것으로프로젝트수행을위한개발업무를계층적으로보여주는것 3. CPM 에서임계경로란무엇인가? 프로젝트일정을계획하기위해소작업들의선행관계를고려하여방향그래프로표현했을때시작에서종료까지의가장긴경로이다. 임계경로상의작업이지연되면전체일정이지연된다. 4. 조정계수 (VAF) 를사용하여기능점수를계산하는방법을설명하라. 열네가지항목에대해기술적복잡도에미치는영향도 (0~5) 를판단하고모두합하여총영향도 (TDI) 를계산한후이것을미조정기능점수 (UFP) 에반영한다. AFP = UFP * (0.65 + 0.01*TDI) 5. 세가지 COCOMO 모델중중급 COCOMO 를설명하라. 소프트웨어개발에영향을미치는 15개의비용승수를고려한것이다. 각비용승수의등급 ( 매우낮음 ~ 극히높음 ) 을정한후모두곱하여노력조정계수 (EAF) 를구한다음총노력을계산할때반영한다. 6. 팀구성방식중책임프로그래머팀의장단점을설명하라. 중앙집중형팀구성방식으로의사소통경로가감소하나책임프로그래머의기술적 / 관리적능력에크게의존한다.