요구사항 분석
위키백과 ― 우리 모두의 백과사전.
시스템 공학과 소프트웨어 공학 분야에서 요구사항 분석은 수혜자 또는 사용자와 같은 다양한 이해관계자의 상충할 수도 있는 요구사항을 고려하여 새로운 또는 변경된 제품에 부합하는 요구와 조건을 결정하는 것과 같은 업무를 포함한다.
체계적인 요구사항 분석은 요구사항 공학으로도 알려져 있다. 이것은 요구사항 수집, 요구사항 획득, 또는 요구사항 명세로도 가끔 부정확하게 언급된다.
요구사항 분석은 개발 과제의 성공에 결정적이다. 식별된 업무의 필요성과 기회와 관련하여 실행 가능하며, 측정 가능하고, 시험 가능하며 시스템 설계를 위해 충분히 상세한 수준까지 정의되어야 한다.
목차[숨기기] |
개요 [편집]
개념적으로 요구사항 분석은 다음의 세가지 유형의 행위를 포함한다.
- 요구사항의 유도: 요구사항이 무엇인지를 결정하기 위해 고객 및 사용자와 대화하는 작업. 요구사항 수집이라고도 불린다.
- 요구사항의 분석: 언급된 요구사항이 불명확하거나 불완전하거나 모호하거나 모순되는지를 결정하고 해결하는 것.
- 요구사항의 기록: 요구사항은 자연 언어 문서, 유스 케이스, 사용자 스토리 또는 공정 명세서와 같은 다양한 형식으로 문서화되어야 한다.
요구사항 분석은 지루하고 힘든 과정이며, 그 동안 많은 섬세하고 심리적인 기술이 관련된다. 새로운 시스템은 환경과 사람들간의 관계를 변경시키므로, 모든 이해 관계자를 식별하고, 그들 모두의 요구를 고려하며, 새로운 시스템의 결과를 그들에게 이해시키는 것이 중요하다.
분석가는 고객으로부터의 요구사항을 유도하기 위해 몇 가지 기술을 사용할 수 있다. 역사적으로 분석가들은 면담을 하거나 포커스 그룹과의 워크샵을 갖거나, 혹은 요구사항 목록을 작성하는 등의 기술을 사용해 왔다. 더욱 발전된 기술로는 프로토타이핑이나 유즈 케이스 작성 등을 사용할 수 있다. 분석가는 이러한 기술들 중 필요한 것을 적절히 조합하여 고객의 요구사항을 충족시켜야 한다.
요구사항의 종류 [편집]
요구사항은 몇 가지 방법으로 분류된다. 아래의 분류는 기술적 관리와 관련한 일반적인 요구사항 분류법이다.
- 고객 요구사항
- 시스템의 목적, 주어진 환경과 제한 조건, 변경의 유효성과 적합성의 관점에서 시스템의 기대 사항을 정의하는 사실 및 가정을 서술한 것(MOE/MOS).
- 기능 요구사항
- 기능 요구사항은 반드시 구현되어야 할 필수적인 작업과 동작 등을 정의함으로써 어떤 기능이 구현되어야 하는지를 설명한다.
- 비기능 요구사항
- 비기능 요구사항은 특정 기능보다는 전체 시스템의 동작을 평가하는 척도를 정의한다.
- 성능 요구사항
어떤 기능이 동작해야 하는 한계를 정의한다. 이는 보통 자료의 양이나 질, 동작의 적시성과 민첩성 등의 척도로 기술된다.
- 설계 요구사항
- 유도된 요구사항
- 할당된 요구사항
- 유도된 요구사항
함께 보기 [편집]
- 업무 분석
- 업무 공정 재공학
- 정보 기술
- 데이터 모델링
- 기능 요구사항
- 모델 기반 공학
- 모델 변환 언어
- 비기능 요구사항
- 공정 구조
- 공정 모델링
- 요구사항 유도
- 요구사항 관리
- 요구사항 추적성
- 검색 기반 소프트웨어 공학
- 소프트웨어 프로토타이핑
- 소프트웨어 요구사항 명세
- 시스템 분석
- 시스템 요구사항
바깥 고리 [편집]
- Requirements Engineering Process "Goodies"
- Requirements Engineering: A Roadmap (PDF) article by Bashar Nuseibeh and Steve Easterbrook, 2000.
- Undreamt Requirements Analysis
- Getting Started With Use Cases
[숨기기] 컴퓨터 과학의 주요 분야 | |
---|---|
수학적 기초 | 수리논리학· 집합론· 정수론· 그래프 이론· 형 이론· 범주론· 수치 해석· 이산수학 |
계산 이론 | 오토마타 이론· 계산 가능성 이론· 계산 복잡도 이론· 양자 계산 이론 |
알고리즘 & 자료 구조 | 알고리즘· 자료 구조· 계산 기하학 |
프로그래밍 언어 & 컴파일러 | 구문 분석· 컴파일러· 인터프리터· 프로그래밍 언어· 구조적 프로그래밍· 객체 지향 프로그래밍 |
병렬 & 분산 시스템 | 병렬 컴퓨팅· 클러스터 컴퓨팅· 분산 컴퓨팅· 그리드 컴퓨팅· 클라우드 컴퓨팅· IaaS· PaaS· SaaS |
소프트웨어 공학 | 요구 분석· 소프트웨어 설계· 컴퓨터 프로그래밍· 형식수법· 소프트웨어 테스트· 소프트웨어 개발 |
시스템 아키텍처 | 컴퓨터 아키텍처· 마이크로아키텍처· 운영 체계 |
통신 & 네트워크 | 컴퓨터 오디오· 라우팅· 네트워크 토폴로지· 암호학· 차세대 통신망 |
데이터베이스 | 데이터 마이닝· RDBMS· SQL |
인공 지능 | 자동추론· 전산언어학· 컴퓨터 비전· 진화 연산· 기계 학습· 자연 언어 처리· 로봇학 |
컴퓨터 그래픽 | 시각화· 영상 처리 |
인간과 컴퓨터 상호 작용 | Computer accessibility· 사용자 인터페이스· 착용 컴퓨터· 유비쿼터스 컴퓨팅· 가상현실 |
계산과학 | 인공생명· 생물정보학· 인지과학· 계산화학· 계산론적 신경과학· 계산물리학· 수치 해석· Symbolic mathematics |
정보보호 | 암호학· 물리 보안· 소프트웨어 보안· 인터넷 보안· 네트워크 보안· 해킹· 크래킹 |
'Computer Science' 카테고리의 다른 글
전자정부 표준 프레임워크 (0) | 2010.04.04 |
---|---|
전자정부법 (0) | 2010.04.04 |
IT 개발을 위한 CMMI (0) | 2010.04.03 |
CMMI - 개념 요약 (0) | 2010.04.03 |
소프트웨어 테스트 (0) | 2010.04.03 |