3학년 2학기 공부 과정/소프트웨어공학

03. 프로젝트 계획과 관리

환성 2022. 12. 19. 22:46
728x90

 

3.1 프로젝트 시작

프로젝트 관리(Management)

  • 작업 수행에 필요한 여러 가지 자원, 인력, 비용, 재료, 기술 등을 가장 효과적으로 사용하여 프로젝트의 목표를 달성하는 것
  • 관리의 어려움
    • 개발 대상이 눈에 보이지 X
    • SW 분야 기술 발전 매우 빠름
    • SW 분야는 조직마다 프로세스가 다름
  • 관리 활동의 요소
    • 계획
    • 조직
    • 모니터링
    • 조정
  • 결정 요인
    • 프로젝트가 제공할 가치
    • 프로젝트와 관련된 리스크
  • 가치 평가 방법
    • 투자 회수 기간
    • ROI
    • 순수 현재 가치
    • 평가표
    • SWOT(Strength, weakness, opportunity, threat)

 

계획

  • 계획의 부재
    • 불확실성
    • 일정의 차질, 경비의 초과
    • Risk
    • 프로젝트 실패
  • 프로젝트 계획 수립(계획서)
    • 문제를 이해하고 정의
    • 소작업 정의하고 순서 결정
    • 일정 예측, 비용 예측
    • 위험 분석
  • 주의할 점
    • 시스템에 대한 충분한 이해
    • 현실적, 구체적 계획
    • 득실 관계 저울질

 

문제 정의

  • 대상 업무나 문제를 사용자가 이해하는 용어로 기술

 

  • 타당성 조사
    • 경제적 타당성
      • 투자 효율성, 시장성, 비용과 수익 비교
    • 기술적 타당성
      • 사례 연구, 실패 사례 연구, 모의 실험
    • 법적 타당성
      • 사용 도구들의 법적 권한

 

 

예측

  • 인력자원의 예측
    • 가장 중요한 개발 자원
    • 전형적인 프로젝트 인력 참여 모형
  • 하드웨어 자원의 예측
    • 개발용 시스템
      • 개발상에 필요한 컴퓨터와 주변 기기
    • 목표 시스템
      • 자동화 시스템의 한 구성요소
    • 개발상의 하드웨어 도구
      • 수치제어 SW
      • 내장용 SW
  • 소프트웨어 자원의 예측
    • 코드중심의 SW 도구
      • 문서 편집기, 컴파일러, 개발환경
    • 방법론 중심의 SW 도구
      • 소프트웨어 공학(CASE)
      • 프로젝트 관리 지원 도구
    • 기타 지원도구
      • DB 지원도구
      • 코드 생성기

 

3.2 프로젝트 계획과 스케줄링

프로젝트 범위 정하기

  • 넓은 범위
  • 작은 범위

 

WBS

  • 개발 팀이 프로젝트 목표를 달성하고 결과물 산출하기 위하여 수행작업을 계층적으로 표현

 

스케줄링

  • WBS를 기초로 하여 일정 정의
  • 작업 사이 의존 관계 파악, CPM 방법을 이용한 여유시간 계산, 소요 자원의 할당

CPM 네트워크

  • 관리자 일정 계획 수립에 도움
  • 병행 작업 계획
  • 일정 점검, 관리
  • 소프트웨어 도구
    • MS- Works

 

 

자원 할당과 간트차트

 

일정계획(Scheduling)

  • 개발 모형 결정
  • 소작업, 산출물, 이정표 설정
  • 작업 순서
    • 작업 분해(WBS)
    • CPM 네트워크 작성
    • 최소 소요 기간
    • 소요 MM, 기간 산정하여 CPM 수정
    • 간트 차트로 그림
  • 작업순서 결정 및 소요기간 예측 
  • 고려사항
    • 개발과정 중 규칙적인 기간마다 이정표 세우기
    • 병렬로 발생하는 업무간의 상호 관계 정의
    • 분석 및 설계와 테스팅 단계에 집중(40:20:40)
    • 유지보수단계 필요
    • 자동화 도구 이용

 

 

3.3 비용 예측 기법

예산계획

  • 정확한 비용 예측은 어려움
  • 과거의 데이터 필요
  • 단계적 비용 산정 방법 사용
  • 인건비 : MM(인원/월)을 기초
  • 경비 : 여비, 재료비, 인쇄비…
  • 비용에 영향을 주는 요소
    • 제품의 크기
    • 제품의 복잡도
      • 응용 : 개발지원 : 시스템 = 1 : 3 : 9
    • 프로그래머의 자질
    • 기술수준
    • 남은시간
      • Putnam : 프로젝트 노력은 남은 개발 기간의 4제곱에 반비례

 

소프트웨어의 측정

  • 측정 목적
    • 생산품의 품질 제시
    • 생산품을 생산한 사람의 생산성 평가
    • 예측을 위한 기준치 형성
  • 크기 중심의 측도
    • 인력(Man-Month)
    • 총 투자비용
    • 프로그램의 크기(KLOC, LOC)
    • 문서의 양
  • 과거 자료를 기초로 생산성 및 품질 측도 산출
    • 생산성 = 프로그램 크기/ 인력
    • 품질 = 에러 수/ 프로그램 수
    • 한 라인 작성 비용 = 총투자비용/ 프로그램 크기

 

 

기능중심의 측도

  • 기능점수(function points)
    • 정확한 라인 수는 예측 불가능
    • 각 기능에 가중 값
    • 기능 점수 1을 구현하기 위한 LOC(어셈블리 언어(324), C언어(150), pascal(91), Ada(71))
    • 총 라인수 = FP * 원하는 언어의 1점 당 LOC
    • 개발 노력 = 총 라인수 / 생산성(LOC/MM)
    • FP(기능점수) = GFP(총 기능 점수) X PCA(복잡도 보정 계수)

 

소프트웨어의 측도의 예측, 분할기법의 측도 예측

  • 역사자료 수집 시 고려사항
    • 정확하게 기록된 프로젝트로부터 수집
    • 가능한 많은 프로젝트에서 수집
    • 일관성 있는 측정에 의한 수집
  • 분할기법에 의한 예측
    • 베타분포에 의한 가중된 평균치 계산
      • 평균치 = (하한치 + 4*중간치 + 하한치)/6
    • 최하위 기능으로부터 최상위 기능까지 합산하여 최종 측도 산출
    • 예시
    • 각 단계 별 과거 인력(PM) 당 비용 수집, 각 단계별 비용 및 총 비용 계산
     

 

 

COCOMO-81

  • 규모를 기반으로 하는 수학적 공식 사용
  • 노력 = A * (Size)^B * M
  • 단점
    • 프로젝트 초기 단계에서 Size 값 예측이 어려움
    • 기본 예측 모델에서 B, M 값에 영향을 주는 요소들이 주관적

COCOMO 방법

  • Boehm이 개발
  • 표준 산정 공식
    • Organic 유형
      • PM = 2.4 * (KDSI) ** 1.05 , TDEV = 2.5 * (PM) **0.38
    • Semidatched 유형
      • PM = 3.0 * (KDSI) ** 1.12, TDEV = 2.5 * (PM) **0.35
    • Embedded 유형
      • PM = 3.6 * (KDSI) ** 1.20, TDEV = 2.5 * (PM) **0.32
  • 예시

 

국내 기능 점수 산정 가이드

  • 정보통신연구진흥원의 소프트웨어 공학에서 산정 기준을 제시
  • COCOMO II 초기 설계 모델을 따름
    • 외부 입력
    • 외부 출력
    • 내부 논리 파일
    • 외부 인터페이스 파일
    • 외부 조회

 

3.4 프로젝트 팀 조직

  • 조직의 구성
    • SW 개발 생산성에 큰 영향
    • 작업의 특성과 팀 구성원 사이의 의사교류
  • 프로젝트 팀 조직 정의
    • 역할과 책임이 어디?
    • 어떤 통로로 정보가 전달, 결정?
  • 팀 역할 나누기
    • 프로젝트 관리자, 시스템 운영자, 시스템 분석가, 시스템 개발자 , QA 관리자

 

직능별 조직

  • 서로 다른 부서가 한 프로젝트의 다른 단계에 들어와 작업 수행

 

프로젝트별 조직

  • 직능별 개발자들이 프로젝트에 배정
  • 의사 전달 경로가 짧으며 인력, 진도 등 프로젝트 관리가 수월

 

 

매트릭스 조직

  • 직능별 조직의 관리자가 프로젝트 책임을 맡고 직능별 조직 부서에 소속된 개발자가 프로젝트에 참여(강한, 약한 매트릭스)

 

애자일 조직

  • 서로 밀접하게 협력하는 5~9명의 팀
  • 결과와 이슈에 대한 오너쉽 공유

 

3.5 실행과 모니터링

 

  • 프로젝트 실행
    • 작업 시작 미팅
    • 작업 결과 수집
  • 프로젝트 모니터링
  • 어닝 밸류 분석

 

3.6 리스크 관리

  • 리스크 관리의 목적
    • 위험이 발생되었을 때의 영향을 줄이는 것
  • 리스크 찾는 방법
    • 회의
    • 문서 분석
    • 리스크 분할 구조, 체크리스트
    • 유추

리스크 평가

  • 영향도에 따라 평가하고 우선순위 매김
  • 정성적 방법
    • 확률을 모를 때

리스크 관리

  • 위험 요소를 해소하기 위한 방법을 강구하고 프로젝트 실행하는 동안 이를 적용
  • 방법
    • 계획 변경
    • 책임을 다른 기관에 맡김
    • 프로토타이핑
    • 유능한 인재 등용
    • 3자 협업

 

계획서 작성

  1. 프로젝트 개요
    1. 프로젝트 명, 목표, 책임자 비용, 일정 기술
  1. 시스템 개략 명세서
    1. SW 개발 대상 시스템의 개략적 기능, 문제점 기술
  1. 개발 자원
    1. 프로젝트 수행에 필요한 인적 물적 자원에 대해 기술
  1. 개발 일정
    1. 시스템 개발을 위한 세부적인 일정 계획 수립

 

프로젝트 개요의 내용

  • 프로젝트 명, 목표, 책임 사용자, 프로젝트 범위, 기간, 예산

 

시스템 개략 명세서의 내용

  • 업무 개요, 관련 조직 및 기능, 현 시스템의 문제점, 새로운 요구사항, 성능 요구사항, 제약사항

 

'3학년 2학기 공부 과정 > 소프트웨어공학' 카테고리의 다른 글

05. 요구 모델링  (0) 2022.12.21
04. 요구 분석  (2) 2022.12.19
02. 프로세스와 방법론  (0) 2022.12.19
01. 소프트웨어 공학 개요  (0) 2022.12.16
00. 소프트웨어 공학 소개  (0) 2022.12.16