IT Memory Note

[정보처리기사] 요구사항 확인 : 소프트웨어 개발 방법론(3) 본문

자격증/정보처리기사

[정보처리기사] 요구사항 확인 : 소프트웨어 개발 방법론(3)

h00ddu 2024. 1. 27. 14:07

 

2️⃣ 프로젝트 관리

 


(1) 프로젝트 관리

 

1. 프로젝트 관리(Project Management)의 개념

 

  • 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동
  • 소프트웨어 개발 계획을 세우고 분석, 설계, 구현 등의 작업을 통제하는 것으로 소프트웨어 생명 주기의 전 과정에 걸쳐서 진행됨
  • 소프트웨어 프로젝트를 성공적으로 수행하기 위해서는 수행할 작업의 범위, 필요한 자원, 수행 업무, 비용, 추진 일정들을 관리해야 함

 


2. 프로젝트 관리 대상

 

관리 대상 설명
계획 관리 프로젝트 계획, 비용 산정, 일정 계획, 조직 계획에 대한 관리
품질 관리 품질 통제 및 품질 보증
범위 관리  이해관계자가 요청한 모든 요구사항이 프로젝트 범위에 포함되었는지 보장하고, 필요한 작업만 수행될 수 있도록 관리

 


3. 프로젝트 관리 3대 요소

 

요소 설명
사람(People) 프로젝트 관리에서 가장 기본이 되는 인적 자원
문제(Problem) 사용자 입장에서 문제를 분석하여 인식함
프로세스(Process) 소프트웨어 개발에 필요한 전체적인 작업 계획 및 구조(Framework)

 


 

(2) 비용산정 모형

 

1. 비용산정 모형 개념

 

  • 소프트웨어 규모 파악을 통한 투입자원 소요시간을 파악하여 실행 가능한 계획을 수립하기 위해 비용을 산정하는 방식

2. 비용산정 모형 분류

 

분류 설명 종류
하향식
산정 방법
경험이 많은 전문가에 비용 산정을 의뢰하거나 여러 전문가와 조정자를 통해 산정하는 방식 전문가 판단, 델파이 기법
상향식
산정 방법
세부적인 요구사항과 기능에 따라 필요한 비용을 계산하는 방식 코드 라인 수(LoC), Man Month, COCOMO 모형, 푸트남 모형, 기능점수(FP) 모형

델파이 기법(Delphi Method) : 전문가의 경험적 지식을 통한 문제 해결 및 미래 예측을 위한 기법으로 전문가 합의법이라고도 함


3. 상향식 비용산정 모형의 종류

 

⓵ LoC(Lines of Code) 모형

 

  • 소프트웨어 각 기능의 원시 코드 라인 수의 낙관치, 중간치, 비관치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 방식
  • 측정이 쉽고 이해하기 쉬워 많이 사용함
  • 예측치를 이용하여 생산성, 노력, 개발 기간 등의 비용을 산정함
• 예측치 = o+4m+p/6 (o : 낙관치, m : 중간치, p : 비관치)
비관치 : 가장 많이 측정된 코드 라인 수
중간치 : 측정된 모든 코드 라인 수의 평균
낙관치 : 가장 적게 측정된 코드 라인 수

 


⓶ Man Month 모형

 

  • 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용을 산정하는 방식
• (Man Month) = (LoC)/(프로그래머의 월간 생산성)
(프로젝트 기간) = (Man Month)/(프로젝트 인력)

 


⓷ COCOMO(COnstructive COst MOdel) 모형

 

  • 보헴(Boehm)이 제안한 모형으로 프로그램 규모에 따라 비용을 산정하는 방식
  • 비용산정 결과는 프로젝트를 완성하는 데 필요한 노력(Man-Month)으로 산정함
  • 비용 견적의 강도 분석 및 비용 견적의 유연성이 높아 소프트웨어 개발비 견적에 널리 통용됨
  • 규모에 따라 유형이 조직형(= 기본형, 단순형), 반 분리형, 임베디드형으로 나뉨

< COCOMO의 소프트웨어 개발 유형 >

유형 설명
조직형
(Organic Mode)
기관 내부에서 개발된 중/소규모의 소프트웨어로 일괄 자료 처리나 과학 기술 계산용, 비즈니스 자료 처리 개발에 적용
 5만(50KDSI) 라인 이하의 소프트웨어를 개발하는 유형 
반 분리형
(Semi-Detached Mode)
 단순형과 임베디드형의 중간형
트랜잭션 처리 시스템이나, DBMS, 컴파일러, 인터프리터와 같은 유틸 개발에 적용
• 30만(300KDSI) 라인 이하의 소프트웨어를 개발하는 유형
임베디드형
(Embedded Mode)
 초대형 규모의 트랜잭션 처리 시스템이나 OS, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적용
 30만(300KDSI) 라인 이상의 소프트웨어를 개발하는 유형

 


⓸ 푸트남(Putnam) 모형

 

  • 소프트웨어 개발주기의 단계별로 요구할 인력의 분포로 가정하는 방식
  • 푸트남이 제안한 것으로 생명주기 예측 모형이라고도 함
  • 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 함

⓹ 기능점수(FP, Function Point) 모형

 

  • 요구 기능을 증가시키는 인자별로 가중치를 부여하고, 요인별 가중치를 합산하여 총 기능의 점수를 계산하여 비용을 산정하는 방식
기능점수(FP) = 총 기능점수 X [0.65 + (0.1 X 총 영향도)]
  • 경험을 바탕으로 단순, 보통, 복잡한 정도에 따라 가중치를 부여함

 

(3) 일정관리 모델

 

1. 일정관리 모델 개념

 

  • 프로젝트가 일정기한 내에 적절하게 완료될 수 있도록 관리하는 모델

2. 일정관리 모델 종류

 

모델 설명
주 공정법
(CPM, Critical Path Method)
여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정을 계산하는 기법
모든 자우너 제약사항을 배제한 상태로 프로젝트의 시작과 끝을 나타내는 노드와 노드 간을 연결을 통해 공정을 계산하기 위한 액티비티(Activity) 표기법
PERT
(Program Evaluation and Review Technique)
일의 순서를 계획적으로 정리하기 위한 수렴 기법으로 비관치, 중간치, 낙관치의 3점 추정 방식을 통해 일정을 관리하는 기법
중요 연쇄 프로젝트 관리
(CCPM, Critical Chain Project Management)
주 공정 연쇄법으로 자원 제약사항을 고려하여 일정을 작성하는 기법

※ 주 공정(Critical Path, 임계 경로) : 프로젝트의 시작에서 종료까지 가장 긴 시간이 걸리는 경로


 

(4) 위험 관리

 

1. 위험 관리(Risk Management) 개념

 

  • 프로젝트에 내재된 위험 요소를 인식하고 그 영향을 분석하여 이를 관리하는 활동
  • 프로젝트를 성공시키기 위해 위험 요소를 사전에 예측, 대비하는 모든 기술과 활동을 포함함

2. 위험의 종류

 

  • 소프트웨어 개발 시 나타나는 일반적인 위험 요소에는 인력 부족, 예산 관리, 일정 관리, 사용자 요구사항 변경 등이 있음
  • 가장 대표적인 위험 요소 : 사용자 요구사항

< 위험의 종류 >

종류 설명
알려진 위험 프로젝트 계획서, 기술적 환경, 정보 등에 의해 발견될 수 있는 위험
예측 가능한 위험 과거 경험으로부터 예측할 수 있는 위험
예측 불가능한 위험 사전 예측이 매우 어려운 위험

 


3. 위험 대응 전략

 

전략 설명
회피(Avoidance) 발생 가능성을 원천적으로 제거하는 전략
전가(Transference) 위험에 대한 책임을 제3자에게 넘기는 전략
완화(Mitigation) 위험 발생 가능성을 감소시키거나 영향력을 감소시키는 전략
수용(Acceptance) 위험을 그대로 받아들이는 전략