소프트웨어 개발 영역
IT위키
더 많은 작업
소프트웨어 개발 영역(Software Scope, 소프트웨어 범위)은 소프트웨어 프로젝트를 계획할 때 무엇을 어디까지 만들지 정하기 위해 기능·성능·제약 조건·인터페이스·신뢰도 등의 요소로 기술한 개발 대상의 경계이다.
프로젝트 계획은 개발 영역(범위)을 정하는 일에서 시작한다. 영역이 정해져야 필요한 인력과 하드웨어·소프트웨어 자원을 추정하고, 그것으로 개발 비용과 기간을 산정할 수 있다(소프트웨어 비용 산정, COCOMO). 프레스먼(Roger S. Pressman)은 소프트웨어 범위를 최종 사용자에게 제공할 기능과 입출력 데이터, 그리고 시스템을 둘러싸는 성능·제약 조건·인터페이스·신뢰도로 기술한다고 정리했다. 범위는 관리자와 기술자 모두가 이해할 수 있도록 모호하지 않게 써야 한다.
| 요소 | 정하는 것 |
|---|---|
| 기능(Function) | 소프트웨어가 수행해야 할 일. 입력을 받아 무엇을 처리하고 무엇을 출력하는지 → 기능 요구사항 |
| 성능(Performance) | 처리 시간, 응답 시간, 처리량, 동시 사용자 수 등 처리 능력에 대한 요구 |
| 제약 조건(Constraint) | 개발 비용·기간, 사용할 하드웨어·운영체제, 표준·법규처럼 개발에 외부에서 주어진 제한 |
| 인터페이스(Interface) | 소프트웨어가 외부와 맞닿는 접점. 아래 항목을 포함한다 |
| 신뢰도(Reliability) | 고장 없이 정해진 기능을 수행해야 하는 정도. 안전이 중요한 시스템일수록 엄격하게 정한다 |
- 소프트웨어를 실행하는 하드웨어와, 소프트웨어에 의해 간접적으로 제어되는 장치
- 이미 있어서 새 소프트웨어와 연결해야 하는 기존 소프트웨어
- 단말기나 입출력 장치로 소프트웨어를 쓰는 사람(사용자 인터페이스)
- 소프트웨어 앞뒤로 순서적으로 이어지는 연산(절차)
"소프트웨어가 간접적으로 제어하는 장치와 실행 하드웨어", "기존 소프트웨어와 새 소프트웨어를 잇는 소프트웨어", "순서적 연산으로 소프트웨어를 실행하는 절차"는 모두 소프트웨어 바깥과의 연결을 말하므로 기능·성능·제약 조건이 아니라 인터페이스에 해당한다.
- 기능은 기능 요구사항, 성능·신뢰도·제약 조건은 대개 비기능 요구사항으로 이어진다
- 계획 단계에서 정한 영역은 요구사항 분석에서 구체화되고, 요구사항 명세로 문서화된다
- 프로젝트 관리 관점에서 해야 할 일과 하지 않을 일을 나누는 활동은 프로젝트 범위 관리가 다룬다