소프트웨어 설계(4) 프로젝트 관리 및 생명주기 모형(1)

8141 단어 CSpart1CS

프로젝트 관리

    프로젝트 관리의 개념
    프로젝트의 관리
  • 프로젝트의 관리 5가지
    프로젝트 관리의 3P
    프로젝트 계획 수립
    인적 자원
    일정 계획 방법론
    위험 관리

1) 프로젝트 관리의 개념

  • 프로젝트 관리는 사업의 목적에 맞게 미리 계획된 일정과 금액 범위에서 정해진 목적을 달성하기 위한 모든 활동이다
  • 프로젝트는 시간이 정해져 있고, 업무마다 개발 방법이 다르며, 단계적으로 진행되는 특성이 있다
  • 2) 프로젝트의 관리

    일정 관리: 활동 순서, 활동 기간 산정, 일정 개발, 일정 통제
    예산 관리: 원가 산정, 예산 편성, 원가 통제
    인력 관리: 프로젝트팀 편성, 프로젝트 조직 정의, 프로젝트팀 개발, 프로젝트팀 관리, 자원 산정, 자원 통제
    위험 관리: 위험 식별, 위험 평가, 위험 대처
    품질 관리: 품질 계획, 품질 보증 수행, 품질 통제 수행

    3) 프로젝트 관리의 3P

    사람 (People): 프로젝트 계획을 관리함에 있어 가장 중요한 요소
    문제 (Problem): 프로젝트 계획을 진행하는 과정의 문제, 위험 등의 요소
    프로세스 (Process): 프로젝트 계획의 일정 계획, 단계별 기간 등의 요소

    4) 프로젝트 계획 수립

    ① 프로젝트 계획 수립 목적

    범위, 자원, 비용 측정을 통하여 위험성을 최소화한다
    여행으로 생각하면 여행 기간이 범위, 준비물이 자원, 여비가 비용에 해당한다

    ② 소프트웨어 범위(영역, Range, Scope) 측정

  • 처리 기능: 소프트웨어 기능의 범위를 측정
  • 성능: 소프트웨어의 처리 속도나 사용자 동시 접속자 수 등을 측정
  • 제한 조건: *소프트웨어의 한계, 불가능한 기능 등의 제약 조건을 측정
  • 개발 인원: 소프트웨어 개발 인력 수나 개발팀 조직의 형태를 측정
  • 일정 계획: 기간, 작업 시간, 단계별 기간을 측정
  • 소프트웨어의 한계

    소프트웨어로 개발할 수 없는 것이 있을 수 있다

    ③ 자원 측정

  • 하드웨어 자원
  • 개발자 시스템 | 소프트웨어를 개발할 개발자 환경의 컴퓨터 시스템을 파악
    목표(사용자) 시스템 | 실제 소프트웨어가 설치되고 운영될 사용자 컴퓨터 환경을 파악
    개발 지원 시스템 | 목표 시스템에는 필요 없지만 개발 시에 필요한 시스템을 파악
  • 소프트웨어 자원: 프로그램 작성 도구(C언어, 비주얼베이직 등), CASE 등을 파악한다
  • 인적 자원: 개발 조직, 팀 구성, 프로그램의 능력들을 파악한다
  • 5) 인적 자원

    ① 개발자팀 구성

    • 책임 프로그래머팀: *1인 독재 체제이다. 다수는 1인을 위해 보조 역할을 담당
    • 민주주의식팀: 다수 책임 체제이다. 개개인의 담당 분야가 독립적으로 존재
    • 혼합형팀: 책임 프로그래머팀과 민주주의식팀의 장점을 결합한 팀 구성

    1인 독재 체제

    책임 프로그래머팀은 책임 프로그래머가 모든 일을 책임지며 다른 팀원은 책임 프로그래머를 위해 존재

    ② 책임 프로그래머팀의 구성원

    • 책임 프로그래머(Chief Programmer): 요구분석과 설계, 기술적인 판단, 작업 지시와 배분을 담당
    • 보조 프로그래머(Back-up Programmer): 책임 프로그래머를 보좌, 기술적인 자문, 사용자﹒품질 보증 담당자 섭외, Chief 감독하에 분석, 설계, 구현까지도 담당
    • 프로그래머(Programmer): 책임 프로그래머의 지시에 따라 원시 코드 작성, 검사, 디버깅 및 문서 작성 등을 담당
    • 프로그램 사서(Program Librarian): 프로그램 리스트, 설계 문서, 검사 계획서 등의 문서를 관리

    ③ 책임 프로그래머팀과 민주주의식팀의 비교

    책임 프로그래머팀(중앙 집중형)

    • 소규모 소프트웨어 개발에 유리
    • 팀원들 대다수의 만족도가 낮다
    • 이직률이 높다
    • 단기적인 소프트웨어 개발에 유리
    • 쉬운 프로젝트에 유리
    • 스타형 구조

    민주주의식팀(분산형)

    • 대규모 소프트웨어 개발에 유리
    • 팀원들 대다수의 만족도가 높다
    • 이직률이 낮다
    • 장기적인 소프트웨어 개발에 유리
    • 복잡한 프로젝트에 유리
    • 링형 구조

    6) 일정 계획 방법론

    ① PERT(Program-Evaluation and Review Technique) 네트워크

    • 프로그램 평가 및 검토 기술
    • 소요 기간의 예측이 어려운 경우에 유리
    • 작업별로 *낙관치, 기대치, 비관치를 나눠어 종료 시기를 결정
    • 노드에는 작업명, 간선에는 낙관치, 기대치, 비관치를 표시
    • 예측치 공식을 이용하여 소요 기간을 정한다

    낙관치, 기대치, 비관치

    ex) 친구들이 10명이 놀러와 각각 4개, 5개, 8개, 13개, 14개, 15개, 20개, 21개, 23개의 라면을 끓여달라고 의견을 제시했을 떄 남거나 모자라지 않으려면 예측시 공식을 이용하면 된다
    가장 적은 라면의 개수가 낙관치, 가장 많은 라면의 개수가 비관치, 모든 개수의 평균이 기대치이다
    - 이 수치를 예측치 공식으로 계산하면 된다
    - 일정 계획도 마찬가지이다. 개발에 경험이 있는 사람들의 의견을 묻고 그 의견으로 예측치를 계산한다

    ② PERT를 이용한 일정 계획 순서

    1. 소프트웨어의 전체 규모를 추정한다
    2. 소프트웨어의 작업을 기능별, 특징별로 분류한다
    3. 단계별로 작업 일정을 예측한다
    4. 전체 소요 기간을 예측한다

    ③ PERT 일정 계획

    • 전체 작업을 A~G 작업으로 구분한다
    • 작업별로 낙관치, 기대치, 비관치를 간선에 표시한다
    • 예측치 공식을 사용하여 예측치를 구한다
    • 예측치 =
    • 예측치 계산 결과
    • 예측치를 간선에 표시하면 다음과 같다
    • A 작업에서 E 작업으로 넘어가기 위해서는 10일(A -> B -> C -> E) 또는 11일(A -> D -> E)이므로 11일이 걸린다
    • 프로젝트가 G 작업에서 종료된다면 11일 + 9일(E -> F -> G)=20일에 완성된다고 예측할 수 있다
    • 일정이 가장 늦은 경로인 임계경로는 A -> D -> E -> F -> G 이다

    ④ PERT에서 제공되는 항목

    • 프로젝트 개발 기간을 결정하는 임계경로를 알 수 있다
    • 통계적 모델을 적용해서 개별 작업의 가장 근접한 시간을 측정한다
    • 단계별 작업에 대한 시작 시간을 정의하여 작업 간의 경계 시간을 계산할 수 있다
    • PERT에서는 *비용 측정을 절대 하지 않는다

    비용 측정

    - 비용 측정은 프로젝트 계획에서 일정 계획보다 중요한 사안이다
    - 비용 측정을 일정 계획과 같이 할 수도 있겠지만 독립적으로 비용 측정을 하는 것이 원칙이다

    ⑤ CPM(Critical Path Method) 네트워크

    • 임계경로 기법이라고도 한다
    • 소요 기간이 확실한 경우에 유리하다
    • 노드는 작업명, 간선은 작업 사이의 전후 의존 관계를 표시한다
    • 원형 노드와 박스 노드로 구분된다
    • 원형 노드는 작업명, 박스 노드는 이정표와 예상 완료 시간을 표시한다
    • 한 이정표에서 다른 이정표에 도달하기 전에 작업을 완료해야 한다

    ⑥ CPM을 이용한 일정 계획 순서

    1. 소프트웨어의 전체 규모를 추정한다
    2. 소프트웨어의 작업을 기능별, 특징별로 분해한다
    3. 단계별 상호 의존 관계를 CPM 네트웨어로 도식한다
    4. *간트 차트를 작성한다

    간트 차트

    간트(Gantt)라는 학자가 고안한 도표로 작업을 하면서 계속 참조하게 되는 이정표

    ⑦ CPM 일정 계획

    • 전체 작업을 A~I 의 소작업으로 구분한다
    • A 가 시작 작업이고 I 가 종료 작업이다
    • B 작업은 3일, C 작업은 4일, D 작업은 5일 소요된다
    • F 작업이 진행되려면 선행 작업인 C 작업과 D 작업이 종료되어야 한다
    • H 작업이 착수되려면 F 작업을 끝마친 18일 후에나 H 작업이 진행된다
    • 이정표에는 각 작업의 소요기간에 대한 세부적인 사항이 기록된다
    • 일정이 가장 늦은 경로인 임계경로는 A -> D -> F -> H -> I 이다

    ⑧ 빠른 착수일과 늦은 착수일

    • 1 작업에서 0 작업까지 진행하는 CPM 도표이다
    • C 작업에서 빠른 착수일(Earliest Start Time)은 A 작업과 B 작업이 모두 종료되어야 가능하므로 15일이다
    • C 작업에서 늦은 착수일(Latest Start Time)은 A 작업과 B 작업이 모두 종료되어야 가능하므로 15일이다
    • F 작업은 E 작업이 완료될 떄까지 3일간의 여유 기간(Slack Time)이 존재한다

    여유 기간

    - E와 F는 0 작업에 도달한 후에 그다음으로 진행한다
    - F 작업은 37일에 끝났다
    - E 작업은 40일 동안 작업을 한다. 같이 0 작업 이후를 진행해야 하니 F 작업은 아무것도 할 수 없이 기다려야 한다. 이 시간이 3일이고, 여유시간이라는 것이다
    - 일정 계획에서는 여유 기간이 존재하지 않도록 철저한 계획이 필요하다

    ⑨ CPM에서 제공되는 항목

    • 프로젝트 개발 기간을 결정하는 임계경로를 알 수 있다
    • 통계적 모델을 적용해서 개별 작업의 가장 근접한 시간이 측정된다
    • 단계별 작업에 대한 시작 시간을 정의하여 작업 간의 경계 시간을 계산할 수 있다
    • 단, CPM에서는 비용 측정을 절대 하지 않는다

    7) 위험 관리

    ① 위험 관리의 정의

    프로젝트 추진 과정에서 예상되는 각종 돌발 상황을 예상하고 이에 대한 적절한 대책을 수립하는 일련의 활동

    ② 위험 관리 순서

    1. 위험 식별: 위험 요소가 될 사항들을 파악
    2. 위험 분석 및 평가: 위험의 비중과 영향력을 파악
    3. 위험 관리 계획: 위험을 예방하고 발생 시에 대안들을 준비하고 문서화한다
    4. 위험 감시 및 조치: 위험을 항상 관찰하고, 발생 시 조치

    ③ 위험 모니터링

    위험 요소 징후들에 대하여 계속적으로 인지하는 것

    ④ 위험표의 항목

    위험의 내용﹒위험의 종류﹒위험 발생 확률﹒영향력﹒대안

    비용 측정 실패﹒비즈니스 위험﹒5%﹒매우﹒손해 감수
    일정 계획 실패﹒프로젝트 위험﹒40%﹒보통﹒기간 연장
    기술 부족﹒기술적인 위험﹒70%﹒보통﹒개발자 섭외
    인력 부족﹒프로젝트 위험﹒75%﹒보통﹒추가 증원

    좋은 웹페이지 즐겨찾기