소프트웨어 종류 및 개발 방법론 4

랑아·2023년 4월 12일
0
post-thumbnail
post-custom-banner

프로젝트 관리 및 생명주기 모형

01. 프로젝트 관리

1) 프로젝트 관리의 개념

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

2) 프로젝트의 관리

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

3) 프로젝트 관리의 3P

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

4) 프로젝트 계획 수립

1. 프로젝트 계획 수립 목적

  • 범위, 자원, 비용 측정을 통하여 위험성을 최소화

2. 소프트웨어 범위(영영, Range, Scope) 측정

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

3. 자원 측정

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

5) 인적 자원

1. 개발자팀 구성

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

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

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

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

책임 프로그래머팀(중앙 집중형)민주주의식팀(분산형)
소규모 소프트웨어 개발이 유리하다.
팀원들 대다수의 만족도가 낮다.
이직률이 높다.
단기적 소프트웨어 개발에 유리하다.
쉬운 프로젝트위 유리하다.
스타형 구조이다.
대규모 소프트웨어 개발에 유리하다.
팀원들 대다수의 만족도가 높다.
이직률이 낮다.
장기적인 소프트웨어 개발에 유리하다.
복잡한 프로젝트에 유리하다.
링형 구조이다.

6) 일정 계획 방법론

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

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

2. PERT를 이용한 일정 계획 순서

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

3. PERT 일정 계획

  • 전체 작업을 A~G 작업으로 구분
  • 작업별로 낙관치, 기대치, 비관치를 간선에 표시
  • 예측치 공식
    • 예측치 = (낙관치 + (4 * 기대치) + 비관치) / 6

4. PERT에서 제공되는 항복

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

5. CPM(Critical Path Method) 네트워크

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

6. CPM을 이용한 일정 계획 순서

  1. 소프트웨어의 전체 규모를 측정
  2. 소프트웨어의 작업을 기능별 특징별로 분해
  3. 단계별 상호 의존 관계를 CPM 네트워크로 도식화
  4. 간트 차트를 작성
    • 간트 차트 : 간트(Gantt)라는 학자가 고안한 도표로 작업을 하면서 계속 참조하게 되는 이정표

7. CPM 일정 계획

  • 전체 작업을 A~I의 소작업으로 구분
  • A가 시작 작업이고 I가 종료 작업
  • 이정표에는 각 작업의 소요기간에 대한 세부적인 사항을 기록
  • 다음 작업이 진행되려면 간선으로 연결되어 있는 모든 선행 작업이 종료되어야 함

8. 빠른 착수일과 늦은 착수일

  • 1 작업에서 0 작업까지 진행하는 CPM 도표
  • 다음 작업을 위한 선행 작업이 완료되지 않으면 여유 기간(Slack Time)이 존재할 수 있음

9. CPM에서 제공되는 항목

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

7) 위험 관리

1. 위험 관리의 정의

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

2. 위험 관리 순서

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

3. 위험 모니터링

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

4. 위험표의 항목

위험의 내용위험의 종류위험 발생 확률영향력대안
비용 측정 실패비즈니스 위험5%매우손해 감수
일정 계획 실패프로젝트 위험40%보통기간 연장
기술 부족기술적인 위험70%보통개발자 섭외
인력 부족프로젝트 위험75%보통추가 증원
post-custom-banner

0개의 댓글