문성준의 단단해지기

소프트웨어 요구사항과 특성 본문

QA/테스트 이야기

소프트웨어 요구사항과 특성

단단한 문성준 문성준 2018.07.20 18:49



테스팅의 필요성과 품질에 관한 이야기를 저번에 했는데


테스트 품질관련 이야기를하면서 소프트웨어의 요구사항 (기능적, 비기능적) 에 대해서 다음에 포스팅 한다고 했다.


개인공부를 하던 중 기능적, 비기능적 뿐만아니라 도메인 요구사항도 있길래 몇글자 적어보려 한다.


기본적으로 소프트웨어 요구사항과 특성에는 뭐가 있을까?


총 5가지 이다. 사용성, 효율성, 신뢰성, 이식성 , 유지보수성 이다.


사용자가 소프트웨어를 얼마나 쉽게 사용할수 있는지 또 소프트웨어의 효율은 어떠한지, 특정 기능에 대해 실패 확률은 얼


마인지, 이 소프트웨어가 다양한 환경에서도 동작하는지, 이 소프트웨어를 얼마나 오래 쓸건지에 대해 특성을 정리해 보았


다.


<<소프트웨어 요구사항과 특성>>


1.     사용성(usability)- 사용자가 소프트웨어를 어떻게 쉽게 사용할 수 있을지가 기술되는 요구 사항


2.     효율성(efficiency)- 소프트웨어는 빠를수록, 메모리를 적게 사용할수록 좋다. 이에 대한 제약 사항을 정의


3.     신뢰성(reliability) –특정한 기능을 실행할 때 실패할 가능성


4.     이식성(portability)- 소프트웨어가 다양한 플랫폼에서 작동


5.     유지 보수성(maintainability)- 소프트웨어의 수정, 개선을 용이하게 하는 능력

 

 

소프트웨어 시스템의 요구사항은 크게 기능적(functional), 비기능적(non-functional) 또는 도메인 (domain) 요구사항으로 분류될 수 있다.


 

      << 기능적 요구사항(Functional requirements)>>


- 시스템이 제공하는 기능 또는 서비스에 대한 기술


- 기능적 사용자 요구사항은 시스템 동작사항에 대한 추상적 기술이지만, 기능적 시스템 요구사항은 시스템 서비스에 대한 상세한 

기술이어야한다.


- 특정 입력에 대해 시스템이 어떻게 반응해야 하는지에 대한 기술


- 특정 상황에 대해 시스템이 어떻게 동작해야 하는지에 대한 기술 ( 시스템이 하지 말아야할 것 에 대해 기술하는 경우도 있음)


- 소프트웨어 종류, 예상되는 사용자, 소프트웨어가 사용되는 시스템의 종류에 좌우

 

   <<비기능적 요구사항 (Non-functional requirements)>>


-       시스템 속성이나 시스템에 의해 제공되는 서비스나 기능에 대한 제약사항에 대해 정의 한다.


-       신뢰도, 반응 시간, 저장소 요구사항 등 대부분 개별적 기능이 아닌 전체적 모습에 관한 요구 ( 프로세스 요구사항이 있을 수도 있다.)


   <<도메인 요구사항 ( Domain requirements)>>


-       응용 도메인 으로부터 생기는 요구사항으로 특정 도메인의 용어나 개념이 반영되어 시스템의 특성에 영향을 준다.


-       새로운 기능적 요구사항 또는 기존의 요구사항에 대한 제약사항이 되거나 특별한 계산식을 정의하는 것 등이 될 수 잇다.


-       도메인의 요구사항이 만족되지 않으면 시스템이 쓸모 없게 된다.


-       문제점 : 해당 응용 도메인의 언어로 표현되기 때문에 시스템을 개발하는 소프트웨어 공학자가 이해하기 어렵다. 도메인 전문가에게는 분명한 부분이기 때문에 생략해버린 정보를 개발자가 알 수 없다.


도메인 요구사항은 글을 작성하고 있는 나도 학교에서 배운 기억이 없는것 같다.( 내가 수업시간에 졸았나?)


정리하자면, 기능적 요구사항은 단어의 뜻대로 사용자가 원하는 기능을 말한다. 사용자는 그 기능을 시스템을 통해 제공받기를 원하며, 시스


템은 사용자에게 필요한 기능을 제공해줘야 한다.


기능적 요구사항이 소프트웨어가 제공하는 기능이라면, 비기능적 요구 사항은 수행 가능한 환경, 품질 , 제약 사항이다.













*피드백 환영 합니다* 

2 Comments
댓글쓰기 폼