소프트웨어 설계 - 요구사항 / 요구사항 도출 분석
소프트웨어 설계 - 요구사항 / 요구사항 도출 분석
요구사항
- 정의 : 사용자가 시스템을 통해 무엇을 얻고자 하는지, 시스템이 어떤 기능을 수행해야 하는지, 그리고 시스템이 어떤 제약 조건 하에서 작동해야 하는지에 대한 명세
- 목적 : 개발팀이 무엇을 만들지 명확하게 정의하고, 고객과 개발자 간의 이해를 일치시키며, 개발된 제품이 최종적으로 고객의 기대에 부합하는지 검증하는 기준이 됩니다.
- 종류
- 사용자 요구사항 : 사용자가 자신의 입장에서 원하는 바를 기술한 것 (예: “로그인이 3초 안에 완료되어야 한다.”)
- 시스템/기능 요구사항 : 시스템이 반드시 수행해야 하는 구체적인 기능(예 : “사용자는 비밀번호를 재설정 할 수 있어야 한다.”)
- 비기능 요구사항 : 성능, 보안, 사용성, 안전성 등 시스템의 품질과 관련된 제약 조건(예 : “시스템은 초 당 1,000건의 트랜잭션을 처리 할수 있어야 한다.)
요구사항의 중요성
- 목표와 방향 제시
- 비용 및 시간 절감
- 이해관계자 간의 소통 및 합의
- 품질 및 검증의 기준
- 프로젝트 위험 관리
요구사항 도출 / 분석
- 소프트웨어 및 시스템 개발 프로젝트의 성공을 위한 가장 기본적인 초기 단계이며, 서로 밀접하게 연결되어 있습니다.
- 요구사항 도출
- 요구사항 도출은 시스템을 필요로 하는 사람(고객, 사용자, 이해관계자)으로부터 그들이 무엇을 원하는지, 무엇이 필요한지에 대한 정보를 찾아내고, 수집하고 ,끌어내는 과정
- 요구사항 도출 기법
- 사람 중심의 상호작용 기법 이해관계자와 직접 소통하여 정보를 얻는 기법입니다.
| 기법 | 설명 | 핵심 이점 | | :— | :— | :— | | 인터뷰 (Interviews) | 분석가와 이해관계자가 1:1 또는 소그룹으로 만나 질의응답을 진행합니다. | 깊이 있는 정보와 숨겨진(Tacit) 요구사항 파악에 용이합니다. | | 워크숍 (Workshops) | 주요 관계자를 모아 집중 토론을 통해 요구사항을 도출하고 합의합니다. (예: JAD) | 다양한 관점을 수렴하고 충돌을 즉시 해결하여 시간을 절약합니다. | | 설문조사 (Surveys) | 다수의 사용자에게 표준화된 질문지를 배포하여 응답을 수집합니다. | 광범위한 사용자층의 데이터와 의견을 효율적으로 얻습니다. | | 브레인스토밍 (Brainstorming) | 비판 없이 자유롭게 아이디어를 제시하여 잠재적 요구사항을 발굴합니다. | 창의적이고 새로운 아이디어를 제약 없이 모을 때 유용합니다. |
- 관찰 및 상황 분석 기법
- 사용자의 실제 업무 환경과 행동을 분석하여 요구사항을 파악합니다.
- 현장 관찰 (Observation)
- 설명: 사용자가 업무를 수행하는 현장을 방문하여 행동을 관찰하고 기록합니다.
- 이점: 사용자가 말로 표현하지 못하는 실제 업무 흐름과 습관을 파악합니다.
- 사용자 스토리 (User Stories)
- 설명: 사용자의 관점에서 역할, 목표, 이유를 간결하게 서술합니다.
- 형식:
나는 [역할]로서, [목표]를 하길 원한다. 왜냐하면 [이유] 때문이다. - 이점: 사용자 가치 중심으로 요구사항을 정의하며, 애자일(Agile) 환경에 적합합니다.
- 모델링 및 실험 기법
- 시각화나 실험을 통해 요구사항을 구체화하고 검증합니다.
기법 설명 핵심 이점 프로토타이핑 (Prototyping) 핵심 기능이나 UI의 시제품을 빠르게 만들어 피드백을 받습니다. 추상적인 아이디어를 시각화하여 오해를 줄이고 구체화합니다. 유스케이스 (Use Cases) 시스템과 사용자 간의 상호작용을 단계별(Step-by-Step)로 정의합니다. 기능적 요구사항의 범위와 시스템 경계를 명확히 합니다. - 요구사항 분석
- 도출과적을 통해 수집된 원시(Raw) 요구사항 정보를 검토하고, 체계화하고, 모순을 해결하여 명확하고 일관된 명세서로 변환하는 과정
- 목표
- 이해 (Understanding): 수집된 요구사항의 내용을 깊이 있게 파악합니다.
- 해결 (Resolution): 요구사항 간의 충돌, 모호성, 불완전성을 제거합니다.
- 모델링 (Modeling): 요구사항을 구조화된 형태로 표현하여 개발자들이 이해하기 쉽게 만듭니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.