2022-09-25 소프트웨어공학_4

2022. 9. 26. 00:23학부 강의/소프트웨어공학

 

소프트웨어 프로젝트

 

프로젝트 : 유일한 제품이나 서비스를 만들기 위해 수행하는 일시적인 행동.

 

소프트웨어 프로젝트 프로세스

  • 소프트웨어 제품 구상
    • 기능 요구사항, 성능 요구사항 정의
    • 투자 대비 효과를 예측하고 사업에 미치는 영향 파악
  • 소프트웨어 제안 요청서 배포
    • 외주를 줄 경우 개발 업체들에게 제안 요청서(RFP) 발송
  • 제안서 제출
    • 개발 업체들은 제안서를 작성, 제출
  • 제안서 심사
  • 계약서 작성
  • 프로젝트 시작 및 수행
  • 프로젝트 종료 및 제품 인도

 


소프트웨어 프로젝트 성공 요소

 

프로젝트 성공 요소 : 비용(Cost), 일정(Time), 품질(Scope/Quality)

 

이를 만족하는 성공률은 30% 정도로 낮았다. (그렇다네요?)

 

성공적으로 프로젝트를 마무리하기 위해선 프로젝트를 관리할 필요 있다.

 

이와 관련해 PMBOK, CMMI, SPICE(= ISO 15504), ISO 12207 등 지침서가 존재한다.

 

각각의 지침서에 대하여 알아보자.

 


1. PMBOK

 

Project Management Body Of Knowledge의 약자다.

 

PMI(프로젝트 관리 협회)에서 프로젝트 관리를 위해 발행한 일련의 표준 용어 및 지침이다.

 

PMI 바로가기 : https://www.pmi.org/pmbok-guide-standards/foundational/PMBOK

 


프로젝트 관리

 

PMBOK에선 프로젝트 관리를 아래와 같이 정의하고 있다.

 

프로젝트 관리란?
프로젝트의 요구사항을 만족시키기 위해 지식, 기술, 도구 및 기법을 프로젝트 활동에 적용하는 것

 


 

프로젝트 관리 프로세스

 

프로젝트 관리 프로세스는 아래와 같은 순서로 진행된다.

 

 

  • 착수
    • 새로운 프로젝트나 프로젝트 단계의 시작을 공식적으로 승인받기 위해 진행할 프로세스들로 수성
  • 계획
    • 프로젝트 계획서 작성
    • 목표 및 범위를 달성하기 위해 필요한 행동 방침 계획
  • 실행
    • 인력과 자원을 갖추고 프로젝트 계획 시행
  • 통제
    • 계획대로 잘 수행되고 있는지 주기적으로 확인
    • 필요한 시정 조치를 취함
  • 종료
    • 결과물의 인수를 공식화

 


프로젝트 관리 영역

 

 

  • 프로젝트 통합 관리
    • 프로젝트 관리 요소들을 통합하는 프로세스 및 활동
  • 프로젝트 범위 관리
    • 성공적인 프로젝트 완수를 위해 반드시 필요한 작업을 모두 프로젝트에 포함하는 활동
  • 프로젝트 일정 관리
    • 주어진 시간 내에 완료하기 위한 활동
  • 프로젝트 비용 관리
    • 주어진 비용 내에 완료하기 위한 활동
  • 프로젝트 품질 관리
    • 프로젝트 요구사항을 만족하여 수행 목표를 달성하기 위한 활동
  • 프로젝트 인적 자원 관리
    • 프로젝트 팀을 구성하고 관리하기 위한 활동
  • 프로젝트 의사소통 관리
    • 프로젝트 정보를 생성, 수집 , 배포 및 저장, 폐기하는 활동
  • 프로젝트 위험 관리
    • 프로젝트 위험 관리 업무와 관련된 활동
  • 프로젝트 조달 관리
    • 프로젝트에 필요한 준비물을 조달하는 활동

 


2. CMMI

 

CMM

 

풀네임으로 Capability Maturity Model, 한국말로는 능력 성숙도 모델이라고 한다.

 

1984년 미 국방성이 카네기멜론 대학에 소프트웨어 공학 전문연구소(SEI) 설립.

 

연구소는 프로젝트의 주요 실패는 기술적인 것뿐 아니라 관리적인 것에도 있다는 결론에 도달했다.

 

조직의 성숙도와 소프트웨어의 품질과 비례한다고 생각.

 

 

출처 : https://ko.wikipedia.org/wiki/능력_성숙도_모델

 


CMMI

 

Capability Maturity Model Integration. 즉, 능력 성숙도 통합 모델.

 

소프트웨어 개발 및 전산장비 운영 업체들의 업무 능력 및 조직의 성숙도를 평가하기 위한 모델을 말한다.

 

임베디드 소프트웨어가 많아지면서 하나의 시스템 안에 소프트웨어가 구성요소로 들어가는 개발이 늘어나게 됨.

 

변화에 적응하고 기존의 문제를 해결하기 위해서 새로운 모델의 필요성이 제기됨.

 

CMMI는 기존 능력 성숙도 모델(CMM)을 발전시킨 것으로, 기존에 소프트웨어 품질보증 기준으로 사용되던 SW-CMM과 시스템 엔지니어링 분야의 품질보증 기준으로 사용되던 SE-CMM을 통합하여 개발한 후속 평가 모델이다.

 

CMMI는 1~5단계까지 있으며, 5단계가 가장 높은 수준이다.

 

CMMI는 소프트웨어 개발 및 전산장비 운영 분야의 품질 관련 국제 공인 기준으로 사용되고 있다.

 

 

ISO 15504(SPICE)와 호환 가능.

 

(출처 : https://ko.wikipedia.org/wiki/능력_성숙도_통합_모델)

 


3. SPICE (ISO 15504)

 

ISO/IEC 15504는 ISO에서 표준으로 지정된 프로세스 수행능력 평가 표준 프레임워크이며, SPICE(Software Process Improvement and Capability dEtermination)으로도 불린다.

 

ISO 12207의 소프트웨어 생명주기 프로세스로부터 파생되었으며, 많은 아이디어를 CMMI 등과 공유하고 있다.

 

  • SW 프로세스 평가를 위한 프레임워크 제공
  • 정보 시스템 분야에 특화된 품질 표준이자 인증 규격
  • 5개의 범주로 구분된 40개 참조 프로세스
  • 프로세스의 수행 능력을 6단계로 구분
  • 5개 프로세스 범주의 40개 프로세스에 대해 기본 지침의 실행 여부와 산출물 유무로 판단

 

 

 

출처 : https://ko.wikipedia.org/wiki/ISO/IEC_15504

 


4. ISO 12207

 

ISO에서 정한 표준 소프트웨어 라이프 사이클(생명주기, SDLC, Software Development Lifecycle) 프로세스

 

소프트웨어 개발과 유지보수에 필요한 각종 작업 단계들을 정의.

 

ISO 12207 표준은 시스템(소프트웨어) 서비스를 수행하기 위한 절차, 활동, 획득, 설정에 대한 소프트웨어 개발 생명주기 단계별로 필요한

프로세스와 각 프로세스에서 나오는 산출물을 포함하고 있다.

 

소프트웨어 생명주기 공정 표준

 

 

주의점

  • 검증 프로세스 (validation process) → 이렇게 하는 거 맞음?
  • 확인 프로세스 (verification prodcess) → 이거 하는 거 맞음?

정도?

 

출처 : https://ko.wikipedia.org/wiki/ISO/IEC_12207