소프트웨어 프로젝트
프로젝트의 정의
정의
- 프로젝트는 유일한 제품이나 서비스를 만들기 위해 수행되어야 할 일시적인 행동
프로젝트의 구성 요소
- 목표, 비용, 관리자, 참여자, 기간, 기술, 고객
소프트웨어 프로젝트
소프트웨어 개발의 시작
- 조직이 요구사항에 맞는 프로그램을 획득(Acquire)할 필요가 생겼을 때
- 시중에 나와있는 프로그램 구입
- 소프트웨어 개발 전문 업체에 의뢰
- 직접 개발
- 조직이 요구사항에 맞는 프로그램을 획득(Acquire)할 필요가 생겼을 때
소프트웨어 개발
- 발주자(고객)가 요구사항을 주면 수주자(개발자)가 요구사항에 맞는 프로그램을 개발
소프트웨어 프로젝트 프로세스
소프트웨어 제품 구상
- 발주자
- 소프트웨어 제품의 구상 및 가치를 검증
- 제품의 투자 대비 효과를 예측하고, 사업에 미치는 영향을 파악
- 제품의 기능상, 성능상 요구사항들을 정의
- 발주자
소프트웨어 제안 요청서 (RFP: Requers for Proposal) 배포
- 개발 회사들에게 제안 요청서를 발송 (개발을 맡아줄 회사를 찾는 과정)
제안서 제출
- 개발 회사들이 발주자에게 제안서 제출
제안서 심사
계약서 작성
프로젝트 시작 및 수행
- 마일스톤(이정표) 별로 또는 발주자의 참여 필요 시 회의를 갖고 요구사항 변경 등 중요한 사항 협의
프로젝트 종료 및 제품 인도
SW 프로젝트의 잘못된 통념
(브룩스의 법칙 : 도중에 개발자를 투입해도 개발 속도가 늘기는 커녕 줄어듬)
프로젝트 관리
정의
- 프로젝트의 요구사항을 만족시키기 위해 지식, 기술, 툴 및 기법을 프로젝트 활동에 적용하는 것
프로젝트 프로세스
PMBOK의 프로젝트 관리 영역
PM이 갖춰야할 역량
- 프로젝트 통합 관리
- 프로젝트 범위 관리 - 범위 변경 통제(고객의 요구 범위)
- 프로젝트 일정 관리
- 프로젝트 비용 관리
- 프로젝트 품질 관리
- 프로젝트 인적 자원 관리
- 프로젝트 의사소통 관리
- 프로젝트 위험 관리
- 프로젝트 조달 관리 - 수주자인 동시에 발주자인 경우 (하청의 재하청)
프로젝트 성공을 돕는 지침서
프로젝트를 잘 하는 조직은 어떻게 알 수 있을까?
CMM (Capability Maturity Model)
CMM의 등장
- 프로젝트 관리의 중요성 인식, 카네기멜론 대학에 SEI(소프트웨어공학 전문연구소) 설립 :
- SW-CMM 개발
- SEI에서는 개발 조직 프로세스의 성숙도에 따라 점진적 개선을 제시하는 SW-CMM을 개발
- 성숙도가 높은 조직이 성숙도가 낮은 조직보다 높은 품질의 소프트웨어를 생산할 수 있다는 것 (CMM은 역량이 얼마나 성숙한지를 나타냄)
성숙도의 따른 조직의 비교
CMMI (Capability Maturity Model Integrate)
등장 배경
- 여러 종류의 CMM을 합쳐 기존의 문제점을 해결. 단계별로 인증을 해줌.
CMMI의 5단계 소프트웨어 프로세스 성숙도
- 단계를 나눠서 조직의 역량을 점진적으로 높일 수 있음
CMMI의 단계별 특성
1단계: 초기(Initial)
- 조직에 정의된 프로세스가 거의 없음, 계획 없이 코딩과 시험에 집중
- 뛰어난 사람 몇에 의해 프로젝트의 성공이 좌우됨
- 능력은 조직이 아닌 개인의 특성
2단계: 관리(Managed)
- 기본적인 프로젝트 관리 프로세스가 설정됨
- 프로젝트의 중간 산출물에 대한 통제가 가능
- 이전의 성공한 프로젝트에 근거하여 새로운 프로젝트 관리가 이루어짐
3단계: 정의(Defined)
- 표준과 일관성 있는 프로세스
- 조직 전체에 걸쳐 SW의 개발 및 유지에 관한 표준 프로세스가 문서화되고 통합되는 단계
- 조직의 소프트웨어 프로세스 활동에 대한 책임이 있는 팀이 구성
4단계: 정량적관리(Quantitatively Managed)
- 정량적 프로젝트 관리를 시행
- 조직의 표준 프로세스가 안정화됨
- 각 프로세스 관련 지표들을 상향점(upper limit), 하향점(lower limit), 이상점(special cause)으로 분류하여 문제점을 파악하고 처리
5단계: 최적화(Optimizing)
- 조직은 지속적인 프로세스 개선을 추진
- 프로세스 개선에 대한 아이디어를 지속적 수집, 이에 대한 타당성 검토를 위해 파일럿(pilot)을 수행
ISO 12207
소개
- 소프트웨어 생명주기 공정 표준
- SW 개발을 위한 일관적이고 체계적인 구조(framework)를 제공하기 위하여 제정
- CMM은 미국, ISO는 국제표준
구성
기본 생명주기 프로세스
지원 프로세스
조직 생명주기 프로세스
(이하 생략)
reference
- 상명대학교 한종대교수님 소프트웨어공학 수업
'컴퓨터과학 > 소프트웨어공학' 카테고리의 다른 글
[소프트웨어공학] 프로젝트 계획 및 통제 - WBS, PERT, Gantt, EVM (0) | 2021.04.13 |
---|---|
[소프트웨어공학] 프로젝트 산정 - Delphi, LOC, COCOMO, FP (0) | 2021.04.12 |
[소프트웨어공학] 요구사항 개발 및 관리 - 요구사항, 유스케이스 다이어그램 (0) | 2021.03.29 |
[소프트웨어공학] 프로세스 - 생명주기 모델(Build-Fix/Waterfall/Prototyping/Spiral), 개발 방법론(UX/XP) (0) | 2021.03.17 |
[소프트웨어공학] 소프트웨어공학 개요 (0) | 2021.03.08 |
댓글