컴퓨터(Computer Science)/소프트웨어공학(Software engineering)

프로젝트 계획 (1) [ 소프트웨어공학]

게임이 더 좋아 2020. 4. 16. 13:16
반응형
728x170

어떻게 해야하는지 청사진을 그려봤으니까 이제 자세하게 배워볼 차례다.

 

요구 분석의 전 단계인 계획부터 배워보자

 


계획을 세우는 것은 좋은데 왜 세워야하는지 알고 세우면 더 잘 세울 수 있겠지?

 

계획의 부재는 

프로젝트의 불확실성

일정의 차질, 경비의 초과, 저품질, 높은 유지보수비용, Risk

프로젝트 실패를 초래한다.

 

그래서 소프트웨어 프로젝트의 계획을 세울 때는

개발 과정과 일정, 비용, 조직, 생산 제품에 대하여 계획을 해야하고

우리가 해결해야 할 문제가 무엇인지 이해하고 정의 해야한다.

 

즉 SW개발계획서를 도출해내기 위해서는

일정예측: 문제정의>>소작업 정의>> 우선순위

비용 예측: 필요 자원의 정리 및 계산

위험 분석: 위험 요소 판별

같은 일련의 과정을 수행해야한다.

 

**SW개발계획서라는 것은 사업관리자, 개발자, 사용자들에게 사업의 범위, 필요 비용, 필요 자원, 개발 일정, 위험 요소 등에 대한 정보를 제공하는 산출문서(deliverable) 를 말한다.

 

 

프로젝트 계획 시  

우리는 시스템에 대한 충분한 이해를 바탕으로 해야하고

현실적이고 구체적인 계획을 세워야한다.

또한 한정된 자원으로 어떻게 효율적으로 활용할 것인지 득실관계를 따져봐야하며

기술적인 측면 역시 고려할 사항이다.

 

그림으로 보면서 다시 생각해보자

 

계획 프로세스

**WBS (work breakdown structrue) : 소작업 구조도

 

 

 


 

그렇다면 프로젝트의 범위(scope)는 어떻게 될까?

다시 말해 우리가 해결해야하는 문제의 범위는 어떻게 될까? 

 

++문제가 광범위하고 부수적인 문제가 많으면 시스템은 범위가 커지고 복잡하게 될 것이다.

프로젝트 범위를 정하는 이유는 상세한 문제를 정의하여 효율적으로 해결하기 위함이다.

 

문제의 범위를 정의하기 위해서는 문제의 배경과 응용 분야를 잘 이해할 필요가 있는데

사용자와 면담이나 현장 직접 관찰 또는 실제업무수행으로 관련 지식을 얻을 수 있다.

 

+계획자는 문제를 객관적으로 정의하는 능력이 있어야함. 사용자의 주관적인 관점이나 편견 등을 가려내야하기 때문

 

문제를 정의하는 문제 정의서(Statement of Work, SOW)

여기에는 먼저 현재 업무나 작업에 대한 상황을 기술한다.

현재 업무에서 문제점을 파악하여 목표를 설정하고 그 목표는 소프트웨어가 해결하게 하는 것이다.

이렇게 문제가 정의가 되면 해결하기 위한 대책을 수립한다.

 

대책이란 우리가 만드려고 하는 신규 시스템 어떠한 기능을 가져야 하는지 파악해야한다.

그 후 그 기능을 갖추는데 제약 조건들을 따져봐야한다(ex 사용자 요구, 개발 여건, 기술적 능력, 우선순위)

 

++ 제약 조건을 파악하는 것은 중요하다. 개발 도중 변경사항이 생기면 우선순위를 따져서 결정하는 것처럼

 

 

요약하자면 문제 정의서 안에는 이러한 내용들이 들어간다.

 

문제의 기술
시스템의 필요성
시스템의 목표
제약 사항
시스템의 제공 기능
사용자의 특징
개발, 운용, 유지보수 환경

 

 

 

 

 

 

반응형
그리드형