요구사항의 개념 및 특징
소프트웨어가 어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명과 정상적으로 운영되는데 필요한 제약조건 등을 나타냄.
- -요구사항은 개발하려는 소프트웨어의 전반적인 내용을 확인할 수 있게 하므로 개발에 참여하는 이해관계자들 간의 의사소통을 원활하게 하는데 도움을 준다.
요구사항의 유형 - 기능요구사항, 비기능 요구사항, 시스템 요구사항, 사용자 요구사항
유형 | 내용 |
기능 요구사항 | 시스템이 무엇을 하는지, 어떤 기능을 하는지에 대한 사항 시스템이 반드시 수행해야하는 기능 사용자가 시스템을 통해 제공받기를 원하는 기능 |
비기능 요구사항 | 시스템 장비 구성 요구사항 성능 요구사항 인터페이스 요구사항 데이터 요구사항 테스트 요구사항 보안 요구사항 품질 요구사항 -> 가용성, 정합성, 상호 호환성, 대응성, 신뢰성, 사용성, 유지 관리성, 이식성, 확장성, 보안성 등으로 구분하여 기술 제약사항 프로젝트 관리 요구사항 프로젝트 지원 요구사항 |
사용자 요구사항 | 사용자 관점에서 본 시스템이 제공해야 할 요구사항 |
시스템 요구사항 | 개발자 관점에서 본 시스템 전체가 사용자와 다른 시스템에 제공해야 할 요구사항 |
요구사항 개발 프로세스
- 개발 대상에 대한 요구사항을 체계적으로 도출하고 이를 분석한 후 분석 결과를 명세서에 정리한 다음 마지막으로 이를 확인 및 검증하는 일련의 구조화된 활동
- 타당성 조사가 선행되어야 함.
요구사항 도출(Requirement Elicitation, 요구사항 수집)
- 시스템, 사용자, 그리고 시스템 개발에 관련도니 사람들이 서로 의견을 교환하여 요구사항이 어디에 있는지, 어떻게 수집할 것인지를 식별하고 이해하는 과정
- 소프트웨어 개발 생명주기 동안 지속적으로 반복
- 주요 기법으로는 인터뷰, 설문, 브레인스토밍, 워크샵, 프로토타이핑, 유스케이스 등이 있다
요구사항 분석(Requirement Analysis)
- 요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분을 발견하고 이를 걸러내기 위한 과정
- 요구사항의 타당성 조사 및 비용과 일정에 대한 제약설정
- 소프트웨어 범위 파악
요구사항 명세(Requirement Specification)
- 요구사항을 체계적으로 분석한 후 승인 될 수 있도록 문서화 하는 것
- 기능요구사항은 빠짐없이 완전하고 명확하게 기술해야 하며, 비기능 요구사항은 필요한 것만 명확하게 기술
요구사항 확인(Requirement Validation, 요구사항 검증)
- 요구사항 명세서가 정확하고 안전하게 작성 되었는지 검통하는 활동
- 요구사항 명세서의 내용이 이해하기 쉬운지, 일관성은 있는지, 회사의 기준에는 맞는지 검증하는 것이 중요
요구사항분석 기법
개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호한 부분을 걸러내기 위한 방법
요구사항 분류(Requirement Classification)
-> 요구사항을 명확히 확인할 수 있도록 다음과 같은 기준으로 분류한다.
- 1. 기능 요구사항과 비기능 요구사항으로 분류
- 2. 하나 이상의 상위 요구사항에서 유도된 것인지 또는 이해관계자나 다른 원천으로부터 직접 발생한 것인지 분류
- 3. 개발할 제품에 관한 것인지 개발 과정에 관한 것인지 분류
- 4. 우선순위에 따라 분류
- 5. 소프트웨어에 미치는 영향의 범위에 따라 분류
- 6. 소프트웨어 생명 주기 동안에 변경될 가능성이 있는지 여부에 따라 분류
개념 모델링(Conceptual Modeling)
요구사항을 보다 쉽게 이해할 수 있도록 현실 세계의 상황을 단순화하여 개념적으로 표현한 것을 모델이라고 하며, 이러한 모델을 만드는 과정을 모델링이라고 한다.
요구사항 할당
요구사항을 만족 시키기 위한 구성 요소를 식별하는 것
요구사항 협상
요구사항이 서로 충돌 될 경우 이를 적절히 해결하는 과정
정형분석
구문과 의미를 갖는 정형화된 언어를 이용해 요구사항을 수학적 기호로 표현한 후 이를 분석하는 과정
요구사항 확인 기법
-> 요구사항 개발 과정을 거쳐 문서화된 요구사항 관련 내용을 확인하고 검증하는 방법
-> 요구사항에 자원이 배정되기 전에 문제 파악을 위한 검증을 수행
요구사항 검토
-> 문서화된 요구사항을 훑어보면서 확인하는 것으로 가장 일반적인 요구사항 검증방법
프로토타이핑(Prototyping)
-> 초기 도출된 요구사항을 토대로 프로토타입을 만든 후 대상 시스템의 개발이 진행되는 동안 도출되는 요구사하을 반영하면서 지속적으로 프로토타입을 재작성하는 과정
장점 | 단점 |
1. 빠르게 제작할 수 있으며, 반복되는 제작을 통해 발전된 결과물을 얻을 수 있다. 2. 최종 시스템을 완성하기 전에 추가/변경 요구사항이나 아이디어 등에 대한 피드백이 가능 3. 의사소통 원활 4. 시스템사용에 대한 문제점을 완성전에 식별가능 5. 개선될수록 변동 가능한 요구사항이 감소 |
1. 사용자의 관심이 핵심에서 벗어나 프로토타입 제작에만 집중될 수 있다. 2. 개발 대상의 일부만을 대상으로 프로토타입이 제작된 경우 대상 범위를 잘못 이해하여 사용성이 과대평가 될 수 있다 3. 지속적이고 반복적인 프로토타입의 개선으로 인한 비용이 부담될 수 있다. |
모델 검증(Model Verification)
-> 모델 검증이란 요구사항 분석 단계에서 개발된 모델이 요구사항을 충족시키는지 검증하는 것
인수 테스트(Acceptance Tests)
-> 사용자가 실제로 사용될 환경에서 요구사항들이 모두 충족되는지 사용자 입장에서 확인하는 과정
'IT > 정보처리기사' 카테고리의 다른 글
[정처기] UI 요구사항 확인 (0) | 2022.02.06 |
---|---|
[정처기] 화면설계 (0) | 2022.02.06 |
[정처기] UML (Unified Modeling Language) (0) | 2022.02.04 |
[정처기] 플랫폼, 현행 시스템 파악 절차 (0) | 2022.02.03 |
[정보처리기사] 소프트웨어 생명주기 (0) | 2022.02.03 |