본문 바로가기

전공/소프트웨어공학

요구 사항과 설계

요구사항이란?

: 시스템이 무엇을 하는지 언급하는 것. 그것의 동작 및 구현에 대한 제한 사항을 정의

: 기능적 요구사항  - 시스템이 제공할 서비스

: 비기능적 요구사항 - 개발되는 시스템 또는 개발 프로세스에 대한 제한 사항

: 사용자 요구사항 - 시스템이 무엇을 수행해야하는가? 에 대한 고수준의 문장

 

설계란?

: 시스템이 그것을 어떻게 하는지 설명하는 것

 

실제로는 둘이 잘 분리 되지 않음. 왜?

: 시스템 구조가 요구 사항 구조화를 위해 설계 될 수 있음

: 시스템은 설계 요구사항을 생성하는 다른 시스템들과 상호 운영 가능

: 특정한 설계 방법 사용이 도메인 요구사항이 될 수 있음

 

자연언어 명세화의 문제점

 

1. 모호성(Ambiguity)

: 요구사항의 작성자와 독자가 같은 문구를 동일한 방식으로 해석하여야 함. 자연언어는 모호하므로 어려움.

 

2. Over-flexivility

:  같은 것이 명세서 내에서 여러 다른 방식으로 언급될 수 있음

 

3. 모듈화의 부족(Lack of modularisation)

: 자연 언어의 구조가 시스템 요구사항을 구조화 하기에는 부적절하다.

 

자연언어 명세의 대안 - PDL

: 프로그래밍 언어랑 비슷함

: 언어에 관련된 지식이 있는 사람만 이해 가능, 표현력이 충분하지 않음.

: 요구사항이 시스템에 대한 이해를 돕는 모델이 아니라 설계 명세서로 받아들여짐

 

구조화된 언어 명세서

:  제한된 형식의 자연 언어로 요구사항 표현 가능

: 이는 모호함과 융통성으로 생기는 일부 문제점 제거, 명세서에 어느 정도의 일관성 부여

: 종종 폼-기반의 접근법으로 가장 잘 지원됨

 

폼 기반 명세서(Form-based specifications)

: 기능 or 개체 정의, 입출력의 출발점과 도착점, 다른 개체들의 표시 등

: 전제 조건, 사후 조건, 파급 효과 등

 

요구사항 문서

: 시스템 개발자에게 무엇이 필요한지 알려주는 문서

: 요구사항에 대한 정의, 사양 포함

: 설계 문서 X, 시스템이 무엇을 해야하는지만 기술

: 어떻게 할 것인지는 X

 

IEEE 요구사항 표준- 구조

: 서론, 용어, 사용자 요구사항 정의, 시스템 구조, 시스템 요구사항 명세서, 시스템 모델, 진화, 부록, 색인

 

 

 

 

'전공 > 소프트웨어공학' 카테고리의 다른 글

시스템 모델  (0) 2021.11.09
요구 공학 프로세스  (0) 2021.10.16
소프트웨어 요구사항  (0) 2021.10.05
소프트웨어 프로젝트 관리  (0) 2021.10.05
소프트웨어 프로세스  (0) 2021.10.04