요구사항이란?
요구사항(要求事項, 영어: Requirement)이란 시스템 개발 분야에서 어떤 과제를 수행하기 위하여 필요한 조건이나 능력을 말한다. 시스템 개발 및 운영 시 발주자가 특정 과제를 수행하는데 필요한 조건과 능력을 체계적으로 정리하여 요구사항 번호를 붙여서 제안요청서를 작성하고, 제안자가 해당 요구사항에 맞춰 제안서를 작성한다.
요구 사항 분석 과정
- 분석 결과의 문서화를 통해 향후 유지보수에 유용하게 활용할 수 있다.
- 자료흐름도, 자료 사전 등이 효과적으로 이용될 수 있다.
- 보다 구체적인 명세를 위해 소단위 명세서(Mini-Spec)가 활용될 수 있다.
요구사항의 검증
- 실제로 고객이 원하는 바를 정의했는지를 확인하는 과정
- 시스템을 개발하거나, 시스템이 운영 중일 경우에 발견되면 방대한 재작업 비용이 발생되기 때문에 사전에 검증하는 작업이 필요
- 시스템을 변경하여 요구사항 문제를 수정하는 비용은 설계 및 코딩오류에 비하여 비용이 많이 소요됨.
인터페이스 요구사항 검토(검증) 방법
- 동료 검토(Peer Review) : 요구사항 명세서 작성자가 요구사항 명세서를 설명하고 이해관계자들이 설명을 들으면서 결함을 발견
- 워크스루(Walk Through, CASE 도구) : 검토 회의 전, 명세서를 미리 배포하여 사전검토 후에 짧은 검토 회의를 통해 결함 발견
- 인스펙션(Inspection) : 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 명세서를 확인하면서 결함을 발견
요구사항의 체크리스트 (Requirements Checklist)
1) 유효성(Validity) : 고객의 필요를 충족하는 기능을 제공하는가?
2) 일관성(Consistency): 충돌하는 요구사항이 존재하는가?(모순되는 제약조건이 없는가?)
3) 완결성(Completeness): 고객이 요구한 모든 기능이 포함하는가?
4) 현실성(Realism): 예산과 기술적으로로 실행 가능한가?
5) 검증 가능성(Verifiability): 개발한 뒤 요구사항들을 검증할 수 있는가?
요구사항의 구분
1) 기능적 요구사항
- 시스템이 수행해야 하는 행위들을 구체화 한 것
- 시스템에서 제공해야 할 기능을 정의한 것
- 입력기능, 출력기능, 데이터베이스 기능, 통신 기능 등
2) 비기능적 요구사항
- 시스템이 가져야 하는 기능 이외의 요구사항
- 시스템의 전체적인 품질이나 고려해야 하는 제약사항 등
- 사용 용이성, 효율성, 신뢰성, 이식성, 유연성, 확장성 등
- 성능적인 면: 응답 속도, 자원 사용량 등
- 보안 측면: 침입 대응, 침입 탐지, 사용자 인증, 권한 부여 등
요구사항 개발 프로세스
도출(Elicitation) → 분석(Analysis) → 명세(Specification) → 확인(Validation)
요구사항 분석 시에 필요한 기술
- 청취와 인터뷰 질문 기술
- 분석과 중재기술
- 관찰 및 모델 작성 기술
요구사항 분석이 어려운 이유
- 개발자와 사용자 간의 지식이나 표현의 차이가 커서 상호 이해가 쉽지 않다.
- 사용자의 요구사항이 모호하고 불명확하다.
- 사용자의 요구는 예외가 많아 열거와 구조화가 어렵다
- 소프트웨어 개발 과정 중에 요구사항이 계속 변할 수 있다.
요구사항 모델링에 사용되는 도구
- Data Flow Diagram
- UML Diagram
- E-R Diagram
- 애자일(Agile) 방법
- 유스케이스 다이어그램(Use Case Diagram)
- 시퀀스 다이어그램(Sequence Diagram)
요구사항 관리 도구의 목적
- 요구사항 변경으로 인한 비용 편익 분석
- 요구사항 변경의 추적
- 요구사항 변경에 따른 영향 평가
요구 사항 명세기법
1-1) 정형 명세법의 종류
- 수학적 기반/모델링 기반
- Z, VDM, Petri-Net(모형기반)
- CSP, CCS, LOTOS(대수적방법)
1-2) 정형 명세법의 특징
- 시스템 요구특성이 정확하고 명세가 간결하다. 명세와 구현이 일치.
- 수학적 기호, 정형화된 표기법으로 작성
- 정확하고 간결하게 표현할 수 있지만 표기법이 어려워 사용자가 이해하기 어렵다.
- 일관성이 있다.
2-1) 비정형명세법의 종류
- 상태, 기능, 객체 중심 명세법
- FSM(Finite state machine)
- Decision Table, ER모델링
- State chart(SADT)
- UseCase : 사용자기반모델링
2-2) 비정형명세법의 특징
- 명세 작성이 간편하고 의사전달 방법이 다양하다.
- 일반 명사, 동사 등의 자연어를 기반으로 작성한다.
- 이해가 쉽다.
- 일관성이 떨어진다.