4과목 소프트웨어 공학 강사 이 민 욱
프로젝트 관리 프로젝트 관리 개념 프로젝트 관리 대상 ① 계획 관리 : 프로젝트 계획, 비용 산정, 일정 계획, 조직 계획 ② 품질 관리 : 품질 통제, 품질 보증 ③ 위험 관리 : 위험 식별, 위험 분석 및 평가, 위험 관리 계획, 위험 감시 및 조치 (2) 프로젝트 관리를 위한 3대요소 (3P) ① 사람(People) : 인적자원 ② 문제(Problem) : 문제 인식 ③ 프로세스(Process) : 작업계획
2. 프로젝트 계획 (1) 프로젝트 계획 수립 목적 범위, 자원, 비용 측정을 통하여 위험성을 최소화한다. (2) 소프트웨어 범위(영역, Range, Scope) 측정 ① 처리 기능 ② 성능 ③ 제한 조건 ④ 개발 인원 ⑤ 일정 계획 (3) 소프트웨어 자원 측정 ① 하드웨어 자원 : 개발자 시스템, 목표(사용자) 시스템, 개발 지원 시스템 ② 소프트웨어 자원 : 프로그램 작성 도구(C언어, 비주얼베이직,..) WP, CASE,.. ③ 인적 자원 : 개발 조직, 팀 구성, 프로그램의 능력 (4) CASE(소프트웨어 지원 도구 및 방법론) ① CASE의 정의 소프트웨어를 개발하는 시점부터 요구 분석, 설계, 개발, 유지 보수에 이르기까지 소프트웨어의 생명 주기 전반을 지원하는 프로그램 또는 소프트웨어 개발을 지원하는 자동화 도구 혹은 방법론의 결합
② CASE의 분류 ․상위(Upper) CASE : 요구 분석과 설계 지원한다. ․하위(Lower) CASE : 코드 작성(구현), 검사(테스트)를 지원한다. ․통합(Total) CASE : 개발 주기 전 과정을 지원한다. ③ CASE의 4가지 구성 요소 ․상위부 ․중위부 ․후위부 ․다중 정보 ④ CASE의 특징 ․CASE의 툴 가격은 비싸지만 개발 비용은 절감 ․분석가의 지원이 필요 ․수정이 용이, 정확 ․개발이 신속(개발 기간이 단축된다) ․프로그램 유지 보수가 간편 ․생산성 문제를 해결 ․재사용성이 높아진다. ․자동화된 검사를 통해 품질이 향상 ․CASE 툴 간의 호환성이 없다. ⑤ CASE의 종류 ․비용 측정 도구 : SLIM(Putnam 모형의 근거를 둠) ․요구 분석용 도구 : PSL/PSA, SREM, SYSREM,.. ․설계 도구 : DARTS, STATEMATE, SSD, STP, ARTFIX,.. ․통합 도구 : TAGS, PROMOD,..
(5) 인적 자원 ① 팀구성 ․중앙 집중형 팀(책임 프로그래머 팀) ․분산형 팀(민주주의식 팀) ․혼합형 팀 ② 중앙 집중형 팀(책임 프로그래머 팀)의 구성원 ․책임 프로그래머(Chief Programmer) 요구 분석과 설계, 기술적인 판단, 작업 지시와 배분을 담당 ․보조 프로그래머(Back-up Programmer) 책임 프로그래머를 보좌, 기술적인 자문, 사용자, 품질 보증 담당자 섭외, Chief 감독 하에 분석, 설계, 구현까지도 담당 ․프로그래머(Programmer) 책임 프로그래머의 지시에 따라 원시 코드 작성, 검사, 디버깅 및 문서 작성 등을 담당 ․프로그램 사서(Program Librarian) 프로그램 리스트, 설계 문서, 검사 계획서 등의 문서를 관리 ③ 중앙 집중형 팀과 분산형 팀의 비교 ․중앙 집중형 팀 : 소규모, 만족도 있다, 이직률 높다, 단기적, 쉬운 프로젝트, 스타형 ․분산형 팀 : 대규모, 만족도 있다, 이직률이 낮다, 장기적, 어려운 프로젝트, 링형
․직접 측정 요소 : 노력(인월), 비용, 라인 수(LOC), 오류 수, 투입 인원, 처리 속도, 문서 수 (6) 비용 측정 ① 비용 측정 요소 ․직접 측정 요소 : 노력(인월), 비용, 라인 수(LOC), 오류 수, 투입 인원, 처리 속도, 문서 수 ․간접 측정 요소 : 생산성, 품질, 기능 점수(FP), 문서화 비율, 효율성, 신뢰도, 유지 보수성 ② 비용 측정의 원칙 ․소프트웨어 비용 측정을 최대한 지연시킨다. ․분해 기술 이용한다. ․실험적 비용 측정 모델 이용한다. ․자동화 도구를 이용한다. ③ 개발 비용과 개발 기간의 상관 관계 개발 비용 개발 기간
④ 생산성(비용 결정의 중요 요소) ․프로그래머 능력 ․조직 간의 상호 작용 ․복잡도 ․기술 수준 ․관리 기술 ․요구되는 신뢰도 ⑤ 간접 측정 평가 공식 ․생산성 = KLOC/인월 ․품질 = 오류의 수 / KLOC ․개발 비용 = 인월 × 단위 비용 ․개발 기간 = 인월 / 투입인원 ⑥ 비용 측정 방법론 ․하향식 : 전문가 측정(신속하다), 델파이식(중재자가 반드시 필요) ․상향식 : 원시 코드 라인수(많이 사용, 간단), 개발 단계별 인월 수, 수학적 산정 기법(Walston, COCOMO, Putnam, Albrecht) ⑦ Basic COCOMO ․유기형(Organic) : 일괄 처리나 과학 기술 계산용, 비즈니스 자료 처리용의 5만 라인 이하의 소프트웨어를 평가하는 유형이다. ․준 분리형(Semi-detached) : 트랜잭션 처리 시스템이나 운영체제, 데이터베이스 관리 시스템 등의 30만 라인 이하의 S/W를 평가 ․내재형(Embedded) : 최대형 규모의 트랜잭션 시스템이나 운영체제 등의 소프트웨어를 평가하는 유형이다. ⑧ 개선된 COCOMO 비용 측정 자료의 증가, 측정 기술의 발달로 비용 산정 방정식의 사용이 개선된 방식 ․Basic COCOMO ․Intermediate COCOMO ․Detailed COCOMO
(7) 사용예 ․생산성 = LOC/인월 ․품질 = 오류의 수 / LOC ․개발 비용 = 인월 × 단위 비용 ․개발 기간 = 인월 / 투입인원 ․인월 = 개발 기간 X 투입인원 = LOC / 1인당 평균생산 코드 라인 수 ․COCOMO의 인적비용 = 노력(인월)X1인당 월평균 급여 ① 2명의 개발자가 5개월에 걸쳐 10,000라인의 코드를 개발하였을 때 월별 생산성 측정을 위한 계산방식은? ② LOC기법에 의하여 예측된 총 라인수가 25,000 라인일 경우 개발에 툴입될 프로그래머의 수가 5명이고 프로그래머의 평균 생산성이 월당 500라인일 때 개발에 소요되는 시간은? ③ COCOMO의 비용 산정에 의해 개발에 소요되는 노력이 40PM으로 계산되었다. 개발에 소요되는 기간이 5개월이고, 1인당 인건비가 100만원이라면 이 프로젝트에 소요되는 총 인건비는?