2. 요구사항 분석
: 어떠한 문제를 해결하기 위해 필요한 조건 및 제약사항을 요구
: 소프트웨어 개발/유지 보수 과정에 필요한 기준과 근거를 제공
-
요구사항의 유형
- 기능적 요구사항 : 실제 시스템 수행에 필요한 기능 관련 요구사항
ex) 금융 시스템은 조회/인출/입금/송금 기능이 있어야 한다.
- 비기능적 요구사항 : 성능, 보안, 품질, 안정성 등 실제 수행에 보조적인 요구사항
ex) 모든 화면이 3초 이내에 사용자에게 보여야 한다.
-
요구사항 개발 프로세스(*순서 중요)
<aside>
도출/추출 → 분석 → 명세 → 확인/검증
</aside>
- 도출/추출
: 이해관계자들이 모여 요구사항 정의(식별하고 이해하는 과정)
ex) 인터뷰, 설문, 브레인스토밍, 청취, 프로토타이핑, 유스케이스
- 분석
: 사용자 요구사항에 타당성 조사 / 비용 및 일정에 대한 제약 설정
ex) 관찰, 개념 모델링, 정형 분석, 요구사항 정의 문서화
- 명세
: 요구사항 체계적 분석 후 승인 가능하도록 문서화
- 확인/검증
: 요구사항 명세서가 정확하고 완전하게 작성되었는지 검토
-
요구사항 분석 도구
- 요구사항 분석 CASE[Computer Aided SW Engineering]
- SADT : SoftTech 사에서 개발 / 구조적 분석 및 설계 분석
- SREM : 실시간 처리 SW 시스템에서 요구사항 명확한 기술 목적
- PSL/PSA : 문제 기술언어 및 요구사항 분석 보고서 출력
- TAGS : 시스템 공학 방법 응용에 대한 자동 접근 방법
- HIPO[Hierarchy Input Process Output)
: 하향식 설계 방식 / 가시적, 총체적, 세부적 다이어그램으로 구성
: 기능과 자료의 의존 관계 동시 표현 / 이해 쉽고 유지보수 간단
-
구조적 분석 모델
- 데이터/자료 흐름도[DFD, Data Flow Diagram]
: Process(원) / Flow(화살표) / Data store(평행선) / Terminator(사각형)
→ 구조적 분석 기법에 이용 / 시간 흐름 명확한 표현 불가 / 버블 차트
- 자료 사전[DD, Data Dictionary]
=: 정의, [] : 택일/선택, () : 생략, + : 구성, ** : 설명/주석, {} : 반복
→ 자료 흐름도에 기재된 모든 자료의 상세 정의/설명
- 소단위 명세서 / 개체 관계도 [ERD, Entity Relationship Diagram] / 상태 전이도
*객체지향 분석 모델
- Booch(부치) : 미시적, 거시적 개발 프로세스를 모두 사용(클래스/객체 분석 및 식별)
- Jacobson(제이콥슨) : Use case를 사용(사용자, 외부 시스템이 시스템과 상호작용)
- Coad-Yourdon : E-R 다이어그램 사용/객체의 행위 모델링
- Wirfs-Brock : 분석과 설계 구분 없으며 고객 명세서 평가 후 설계 작업까지 연속 수행
- Rumbaugh(럼바우) : 가장 일반적으로 사용, 객체/동적/기능 모델로 구분
- 객체 모델링(Object) → 객체 다이어 그램/객체들 간의 관계 규정/정의
- 동적 모델링(Dynamic) → 상태 다이어그램/시스템 동적인 행위 기술
- 기능 모델링(Function) → 자료 흐름도(DFD)/다수의 프로세스들 간의 처리 과정 표현
-
요구사항 명세
- 정형 명세
: 수학적 원리 / 정확하고 간결한 요구사항 표현 가능
: 어려운 표기법으로 사용자 이해가 어려움
ex) VDM, Z, Petri-net, CSP
- 비정형 명세
: 자연어, 그림 중심 / 쉬운 자연어 사용으로 의사소통이 용이하나 작성자에 따라 모호한 내용으로 일관성이 떨어짐
ex) FSM, Decision Table, E-R 모델, State Chart