프로그래밍[Univ]/소프트웨어 공학론

[소프트웨어공학론] Project Planning part1

Cloud Travel 2012. 3. 26. 12:48
* Project planning 
 - Software는 눈에 보이지 않는다. 따라서 계획 수립의 힘들고, 예산 선정이 힘들다. 
 - 전체를 분활하고, 각 부분별로 프로젝트인원을 할당(팀을 구성) 
 - 발생 가능한 문제점을 예상하고, 해법을 제시한다.
 - Project Plan(PP, 프로젝트 계획서)
  > 프로젝트 시작단계에서 생성
  > 개발자와 고객에게 어떤 프로젝트를 수행하는지를 알려줌
  > PP는 진행 정도의 기준역할로 진행정도를 파악하도록 도와준다. 


* Planning Stage(계획 수립 단계)
 - Proposal stage
  > 계획이 포함된 제안서(project proposal(pp))를 만듬 
 - Project start-up phase
  > 프로젝트 계획서(project plan(PP))를 만듬
  > 인력, 프로젝트 분할 및 필요자원(인력, 장비, SW)을 예상
 - 일정 주기별로 수정을 함
  > Increment가 증가함에 따라 불명확 한것이 명확으로 점점 변한다.
  > 이를 반영하여 계획서를 업데이트한다.

* Proposal planning
 - Idea의 외부형틀을 만듬, Idea의 목적을 생성
 - Idea에 수반되는 돈(Software pricing)이 어느정도 되는지 파악하는 것이 목적이다.
 
* Software pricing
  > 소프트웨어의 가격을 추산할때는 hardware, software, travel, training, effort costs를 포함한다.
     (하드웨어, 소프트웨어(line당, 기능당), 여비, 기술 숙지, 개발자 인건비(quality *time))
  > 경제, 정책, 사업환경 등의 영향으로 가격은 바뀔수 있다.
  ⓐ market opportunity : 손해를 보더라도 이 손해로 미래에 더 큰 이익이 될 수 있다.
  ⓑ cost estimate uncertainty : 불확실성에 대첵요금
  ⓒ Contractual terms : Code의 소유권을 보유하면, 그에 따른 다른 것의 개발이 쉬워진다.
  ⓓ Requirements volatility : 요구사항의 휘발성, 요구사항의 변화가 크게 생길 것 같으면 낮은 금액으로
                                         최초 요구 사항을 잡은후, 요구사항 변화에 따라서 추가 비용을 요구 
  ⓔ Financial health : 회사 재정

----------> 이후 공학적 입장이 첨가됨 <--------
* Plan-driven development 
 - 프로젝트 계획서(PP)를 생성하여, 업무를 Task단위로 나누고, Task당 인력을 할당하고,
   이에대한 일정및 결과(산출물)를 정의한다. 
 - Manager는 PP를 통해 의사 결정을 하고 일의 진행 정도를 측정한다.
 - 장점 : 프로젝트 실행시 문제점과 의존관계등에 대해서 미리 예상, 대책 마련이 가능
 - 단점 : 요구사항은 언제든지 바뀔 가능성이 존재한다. overhead가 증가하게 된다. 

* Project plans(PPs) 
 - PP는 자원, 업무, 일정등을 수리반다.
 - PP section(목차)
  ⓐ Executive Summary : 문서에 대한 간략한 요약
  ⓑ Introduction : 서론(프로젝트 설명)
  ⓒ Project organization : 프로젝트 수행 조직을 생성(링형, 스타형, 상하형 ... 등이 존재)
  ⓓ Risk analysis : 인력, 프로젝트 일정, 프로덕트 상의 위험 및 위험 대처법에 대해서 기술
  ⓔ Hardware and software resource requirements : 자원의 요구사항을 기술
  ⓕ Work breakdown : 업무를 Task별로 나누고 해당 부서별로 업무를 분담한다.
  ⓖ Project schedule : ⓕ에서 나뉜 Task를 실행할 일정을 계획한다.
  ⓗ Monitoring and reporting mechanisms : 관리에 대한 계획, 문서화 계획에 대해서 기술한다.
 - PP는 보충 계획을 수반한다.(부록에 제시)
  ⓐ Quality plan : 품질 계획서. 품질유지 및 향상할 계획을 수립. 주로 테스트 방법 및 품평회 계획을 기술
  ⓑ Validation plan : 구체적인 Test방법, 순서를 계획한다.
  ⓒ Configuration management plan : 형상관리 계획서, 변화에 따른 대처 기술. 백업 방법, version control기술
  ⓓ Maintenance plan : 유지 보수 계획서
  ⓔ Staff development plan : 인력개발 계획서. Training 계획

* Planning Process(계획을 수립하는 과정)
 - Increment당 또는 그밖의 요소에 따라서 PP를 반복적으로 수정한다. 

 - 마일스톤 : Project 진행간 중요한 날(Increment 완료일, 요구사항 수립일등..)
 - 산출물 : 마일 스톤에 의해 생성된 산출물