본문 바로가기
소프트웨어 공학

소프트웨어 설계 시 요구사항의 개념 및 특징

by iwuooh 2021. 11. 21.

.

요구사항

소프트웨어를 설계할 때 요구되는 사항들이 있는데, 어떤 문제들을 해결하기 위해 제공하는 서비스에 대한 정보와 정상 작동되는데 필요한 제약조건을 의미한다. 이는 소프트웨어 개발이나 유지보수의 과정에서 필요한 근거와 기준을 제시하며 개발하고자 하는 소프트웨어 전반에 걸친 내용을 파악할 수 있게 하는 근거로서, 개발에 관여하는 모든 이해관계자간의 의사소통을 원활히 하는 것에 도움을 준다. 개발 대상에 대해 요구사항을 체계적으로 도출하고 이를 분석한 결과를 명세서에 정리하고 마지막으로 이를 확인하고 테스트하는 일련의 구조화된 활동을 통해서 요구사항이 개발되는데, 이런 과정을 요구사항 개발 프로세스라고 한다. 요구사항 명세서란 분석된 요구사항을 바탕으로 작성된 문서를 의미한다. 명세서를 작성할 때는 사용자가 이해하기 쉬우며, 개발자가 효과적으로 설계할 수 있도록 작성되어야한다. 설계과정에서 잘못된 부분이 확인되면 그 내용을 추적할 수 있어야한다. 개발 프로세스가 해당 사업의 목적에 부합하는지, 예산은 적절하게 책정되었는지 등에 대한 정보를 수집하고 평가한 보고서를 토대로 타당성 조사가 우선 진행되어야 한다.

요구사항의 유형 및 특징

일반적으로 정의하는 내용에 따라서 기능 요구사항과 비기능 요구사항으로 구분하며, 기술 관점과 대상의 범위에 따라서 사용자 요구사항과 시스템 요구사항으로 구분된다. 기능 요구사항(Functional Requirements)은 시스템이 어떤 기능을 하고 무엇을 하는지에 대한 사항을 기술한다. 시스템의 입출력이 포함해야 할 내용과 시스템이 저장 또는 연산해야 할 테이터에 관한 사항도 포함한다. 시스템이 반드시 수행해야 하는 처리와 사용자가 시스템을 통해서 제공받기 원하는 기술에 관한 요구사항이다. 비기능 요구사항(Non-Functional Requirements)은 또다시 여러 종류의 요구사항으로 나뉘는데, 시스템 장비 구성 요구사항은 하드웨어, 소프트웨어 등의 시스템 장비 구성에 대한 요구사항을 나타낸다. 성능 요구 사항은 소프트웨어의 처리 속도와 처리량, 시간 등 성능에 관한 사항이다. 인터페이스 요구사항은 시스템 인터페이스와 사용자 인터페이스에 대한 요구사항으로, 다른 시스템과 이 정보 교환에 사용되는 프로토콜과의 연계도 포함하여 기술한다. 데이터 요구사항은 데이터를 구축하는데 필요한 초기자료 구축 및 데이터 변환을 위한 데이터를 위한 요구사항이다. 테스트 요구사항은 구축된 시스템이 정상 작동하는지, 도입되는 장비의 성능을 테스트하고 점검하기 위한 요구사항이다. 보안 요구사항은 시스템의 데이터나 기능, 운영 접근을 통제하기 위한 요구사항이다. 품질 요구사항은 관리가 필요하거나 품질 평가 대상에 대한 항목에 대한 요구사항으로, 가용성, 신뢰성, 사용성, 이식성, 확장성, 정합성, 보안성 등으로 구분하여 기술해야 한다. 가용성이란 사용자가 해당 시스템을 사용자고자 할 때 언제라도 사용할 수 있는 정도를 의미한다. 정합성은 데이터의 값이 서로 모순 없이 일관되는 정도, 이식성은 다양한 하드웨어 환경에서도 해달 시스템을 운용 가능하도록 쉽게 수정할 수 있는지에 대한 정도이다. 확장성은 규모나 범위를 넓힐 수 있는 정도를 측정한 것이다. 제약사항은 시스템의 설계 구축, 운영과 관련해서 사전에 파악된 기술에 관한 법이나 제도 등에 대한 제약 조건을 말한다. 프로젝트 관리 요구사항은 프로젝트의 원활한 수행을 위한 관리 방법에 대한 요구사항이다. 프로젝트 지원 요구사항은 프로젝트의 원활한 수행을 위한 방법이나 지원이 가능한 사항에 대한 내용을 포함한다. 사용자 요구사항(User Requirements)은 사용자의 관점에서 접근했을 때 시스템이 제공해야 할 요구사항이다. 사용자를 위한 것이므로 친숙한 표현과 이해하기 쉬운 단어로 기술해야 한다. 시스템 요구사항(System Requirements)은 개발자의 관점에서 바라본 것으로, 시스템 전체가 사용자와 다른 시스템에 제공해야 할 요구사항을 정의한다. 사용자 요구사항과 비교해서 전문적이고, 기술적인 용어를 사용하여 작성한다. 소프트웨어 요구사항이라고도 한다.

댓글