개발 대상 시스템에 대하여 고객이 요구하는 사항들을 총칭하여 시스템 요구사항이라고 한다. 요구사항은 개발자가 시스템의 개발과 관련하여 고려하여야 할 가장 넓은 범위의 고려사항들을 일컫는다. 시스템 요구사항은 기능적 요구사항(Functional requirements)과 비기능적 요구사항(Non-functional requirements)으로 나누어진다. 비기능적 요구사항은 다시 시스템의 품질요구사항(Quality requirements)과 시스템의 기능 혹은 시스템의 개발에 대한 제약(constraints)으로 나누어 진다. 기능적 요구사항은 시스템의 기능 혹은 시스템이 제공하여야 하는 서비스에 대한 요구사항을 말한다. 기능적 요구사항은 시스템이 특정한 입력(혹은 자극(Stimulus)에 대하여 어떻게 방응하여야 하고 특정한 상황에서 어떻게 동작하여야 하는가를 기술한다. 따라서 기능적 요구사항을 사용법 혹은 쓰임새(Use Case)로 부르기도 한다.  품질요구사항은 시스템이 제공하는 시스템의 기능의 수준 혹은 품질에 대한 요구사항이다. 흔히 언급되는 품질 요구사항으로 성능(Performance), 신뢰성(Reliability), 사용자 편의성(Usability), 진화성(evolvability), 확장성(Extendibility, Scalability, etc.) 등이 있다. 제약사항의 예로는 개발시간과 개발공정에 대한 제약사항이나, 준수하여야 하는 표준들이 있다. 아키텍처를 결정하는 데에는 요구사항 가운데에도 아키텍처 적인 제약사항과 품질요구사항이 지배적인 역할을 수행하게 된다.

[출처] KAIST 강성원 교수의 S/W 설계 강의내용.

'Design' 카테고리의 다른 글

평가  (0) 2011.06.12
분석  (0) 2011.06.12
품질속성 설계전술  (0) 2011.06.12
아키텍처 패턴  (0) 2011.06.12
아키텍처 설계절차  (0) 2011.06.12
by 아놀드박 2011. 6. 12. 17:17