본문 바로가기
자기개발/정보처리기사

[정보처리기사] 요구사항 정의 :: 요구사항의 유형, 요구사항 개발 프로세스

by 램플릿 2024. 4. 2.
기능 요구사항 (Functional requirements) ★

- 시스템이 어떤 기능을 해야할지, 어떤 데이터를 연산할지, 수행해야 할 기능, 입출력 내용이 무엇인지 기술

 

비기능 요구사항 (Non-functional requirements) ★

- 시스템 장비 구성 요구사항(HW, SW, 네트워크 등) / 성능 요구사항 / 인터페이스 요구사항 / 데이터 요구사항 / 테스트 요구사항 / 보안 요구사항 / 품질 요구사항 / 제약사항(기술,표준,법,제도 등) / 프로젝트 관리 요구사항 / 프로젝트 지원 요구사항

 

<비기능 요구사항 - 품질 요구사항의 구분>

* 가용성 : 프로그램이 주어진 시점에서 요구사항에 따라 운영될 수 있는 능력(사용하고자 할 때 언제라도 사용할 수 있는 정도)
* 정합성 : 데이터의 값이 서로 모순없이 일관되게 일치하는 정도
* 상호 호환성 : 다른 소프트웨어와 정보를 교환할 수 있는 정도
* 대응성 : 발생한 상황에 대처하는 정도

* 신뢰성

* 사용성

* 유지 관리성
* 이식성 : 다양한 하드웨어 환경에서도 운용 가능하도록 쉡게 수정될 수 있는 정도
* 확장성 : 규모나 범위를 넓힐 수 있는 정도

* 보안성

 

사용자 요구사항 (User requirements)

- 사용자 관점에서 본 요구사항, 친숙한 표현으로 이해하기 쉽게 작성

 

시스템 요구사항(System requirements) (또는 소프트웨어 요구사항)

- 개발자 관점에서 본 요구사항, 전문적이고 기술적인 용어로 표현됨

 


* 요구공학(Requirements Engineering) : 무엇을 개발해야 하는지 요구사항을 정의하고, 분석 및 관리 프로세스를 연구하는 학문. 복잡하고 대형화 되는 SW개발환경, 복잡해지는 사용자 요구사항과 잦은 변경 -> 요구공학 필요성 대두

 

* 요구공학의 목표 : 요구사항 변경의 원인과 처리 방법을 이해하고 요구사항 관리 프로세스의 품질을 개선하여 소프트웨어 프로젝트 실패를 최소화하는 것.

 

 

 


 

요구사항 개발 프로세스 ★

도출 Elicitation  -  ②분석 Analysis  -  ③명세 Specification  -  ④확인 Validation

 

1) 요구사항 수집, 또는 요구사항 도출(Requirement Elicitation)

- 주요 기법 : 청취와 인터뷰, 설문, 브레인스토밍, 프로토타이핑, 유스케이스, 워크샵 등

 

2) 요구사항 분석(Requirement Analysis)

- 사용자 요구사항의 타당성을 조사하고 제약을 설정, 불분명한 부분을 발견하고 서로 상충되는 요구사항을 중재

- 자료 흐름도(DFD), 자료 사전(DD) 등의 도구가 사용됨.

 

3) 요구사항 명세(Requirement Specification)

- 분석된 요구사항을 바탕으로 모델을 작성하고 문서화. 기능 요구사항은 빠짐없이, 비기능 요구사항은 필요한 것만 명확히 기술.

- 구체적 명세를 위해 소단위 명세서(Mini-Spec)가 사용될 수 있다.

 

4) 요구사항 확인, 또는 요구사항 검증(Requirement Validation)

- 개발 자원을 요구사항에 할당하기 전에 명세서가 정확하고 완전하게 작성되었는지 검토.

- 요구사항 문서는 이해관계자들이 검토해야한다.

- 일반적으로 요구사항 관리 도구를 이용하여 요구사항 정의 문서들에 대해 형상관리를 수행한다.

 


* 소프트웨어 요구사항 명세서(SRS; Software Requirement Specification)

소프트웨어가 반드시 제공해야 하는 기능, 특징, 제약조건 등을 업계 표준 용어로 명시함.

- 시스템의 모든 동작뿐만 아니라 품질(성능, 보안, 사용성)도 기술

- 프로젝트 유형에 따라 양식이 달라질 수 있음

- SRS에 포함되는 시스템 기능, 데이터, 외부 인터페이스, 품질 요구사항은 요구사항 단위별로 개별 요구사항 명세서를 작성.

 

* 요구사항 명세 기법

1) 정형 명세 기법

- 수학적 원리 기반, 모델 기반 기법

- 수학적 기호, 정형화된 표기법으로 작성

- 특징①요구사항을 정확간결하게 표현. ②요구사항에 대한 결과가 작성자에 관계없이 일관성이 있어 완전성 검증이 가능 ③표기법이 어려워 사용자가 이해하기 어려움

-  종류 : VDM, Z, Petri-net, CSP 등

2) 비정형 명세 기법

- 상태/기능/객체 중심 기법

- 일반 명사, 동사 등의 자연어를 기반으로 서술 / 또는 다이어그램으로 작성

- 특징①자연어 사용으로 인해 요구사항에 대한 결과가 작성자마다 다를 수 있어 일관성이 떨어지고 해석이 달라질 수 있음. ②내용의 이해가 쉬워 의사소통이 용이함.

- 종류 : FSM, Decision Table, ER모델링★, StateChart(SADT) 등 

 

* 형상관리 (SCM; Software Configuration Management)

- 소프트웨어 개발 단계의 각 과정에서 만들어지는 프로그램, 프로그램을 설명하는 문서, 데이터 등을 통칭하여 형상이라고 한다.

- 형상 관리는 소프트웨어의 개발 과정에서 만들어지는 형상들의 변경 사항을 관리하는 일련의 활동을 말한다.