요구 사항 분석소프트웨어 개발의 실제적인 첫 단계로 사용자의 요구에 대하여 이해하는 단계라 할 수 있어요. 소프트웨어 개발은 기본적으로 광범위한 문제의 해결이라 할 수 있습니다. 이런 문제를 해결하기 위해서는 먼저 사용자의 요구를 이해하는 단계가 있어야 하는 것이죠. 그래서 요구 사항의 성격과 범위를 이해하고 문제 해결에 있어서의 제약 사항을 알 필요가 있습니다.

 

요구 사항 분석

요구 사항 분석은 두 가지 단계로 구성됩니다. 현재의 상태를 파악하고 요구 사항을 정의한 후 문제 해결과 구현될 시스템의 목표를 정확히 도출하는 분석 단계와 명세서에 기술적 요구와 구현에 있어서 제약 조건 및 개발자와 사용자가 합의한 성능에 관한 사항이 명시되는 명세서 작성 과정입니다. 명세서는 시스템 설계에서 참조될 사항을 포함하여 구현될 시스템에 대하여 전반적으로 알아야 할 사항을 포함하는 문서이기도 해요.

 

소프트웨어 요구 사항 분석의 세부 단계

요구 사항 분서을 소프트웨어에 적용하면 4단계로 세부적으로 나눌 수 있습니다.

1) 요구 사항 추출

소프트웨어 개발 계획 단계에서 정의한 문제의 범위 안에 있는 사용자의 요구를 찾는 일입니다. 시스템의 중요한 목적을 만족시키기 위하여 시스템이 제공해야 할 사항을 찾는 것이라고 할 수 있습니다. 특히 시스템이 제공하여야 할 기능적인 요구와 기능 이외의 조건들, 예를 들어 성능, 품질, 안전, 보안, 인터페이스 요구를 찾습니다.

2) 도메인 분석

문제 영역 안에 있는 중요한 사항들을 인식하기 위해 정보를 수집하고 배경을 분석하는 단계입니다. 인식되어야 할 중요한 기능이란 사용자의 요구와 관련된 객체, 관계, 기능, 프로세스, 제약 등이 있습니다. 도메인 분석은 사용자와의 인터뷰, 설문 조사, 실사 등을 통하여 현황을 파악하고 새로운 시스템에 대한 요구를 모델링하기 위한 것입니다.

3) 모델링

도메인 분석을 통하여 찾아낸 중요한 개념, 특성, 관계에 대하여 개념화하는 작업입니다. 주로 응용문제에 대한 정보를 수집하여 분석하고 이를 다이어그램을 이용하여 모델화하는 작업이라 할 수 있습니다.

4) 프로토타이핑 및 시험

분석된 기능적 요구의 타당성을 시험하기 위해 프로토타입을 간단하게 만들어 봅니다. 이러한 결과를 걸쳐 소프트웨어 요구 분석서를 작성합니다. 요구 분석서에는 시스템의 기능, 성능, 정보 표현, 제약, 검증 평가 기준에 대하여 기술하고 검토합니다.

 

요구사항분석좌정 순서도
요구 사항 분석 4단계

 

로봇에서의 소프트웨어 요구 추출

1. 소프트웨어 요구의 정의

소프트웨어 요구 사항이란 시스템이 제공해야 할 역량으로 정의할 수 있습니다. 때로는 케파(capability)라고도 합니다. 소프트웨어 프로젝트는 시스템이 요구를 만족하고, 비용이 초과되지 않으며 일정 시간 내에 인도된다면 성공하였다고 봅니다. 따라서 진정한 요구를 찾는 일은 소프트웨어 프로젝트 성공을 위한 필수 조건이라고 볼 수 있습니다.

요구 사항이란 시스템이 외형적으로 나타내는 기능이나 성능 등의 동작을 말합니다. 예를 들어 모바일 로봇의 외형적 기능은 장애물 감지 기능이나 계단 등을 올라갈 수 있는 주행 기능 등이 될 수 있고 모바일 로봇의 성능에 관한 기능의 경우 빠른 경로 탐색, 빠른 장애물 회피 등이 될 수 있습니다. 산업용 로봇은 효율적인 동선과 빠른 처리의 동작이 될 수 있습니다.

 

이러한 요구 사항의 종류에는 기능적 요구 사항과 비기능적 요구 사항으로 나눌 수 있습니다.

1) 기능적(functional) 요구 사항

기능 요구 사항은 시스템과 외부 요소들 간의 인터랙션이라 할 수 있습니다. 기능적 요구를 결정하려면 시스템이 어떤 상태일 때 외부의 명령을 받아들여 어떤 반응을 하는지 기술하여야 합니다. 예를 들어 모바일 로봇에서 장애물을 만나면 장애물을 감지하는 방법, 장애물을 회피하여 특정 목적지로 가기 위한 방법, 로봇의 위치를 알기 위한 방법 등입니다. 산업용 로봇을 예로 들어보면, 물체를 집어 옮길 방법, 물건을 쌓아 올릴 위치, 특정 지역을 피하기 위한 방법 등이 있습니다.

2) 비기능적(non-fumctional) 요구 사항

시스템이 수행하는 기능 이외의 사항, 즉 시스템 구축에 대한 성능, 보안, 품질, 안전 등에 대한 요구 사항들을 비기능적 요구라고 합니다. 예를 들어 1초 안에 경로를 탐색해야 한다거나, 로봇을 급정지시킬 수 있는 버튼이 있어야 한다거나, 원격으로 로봇의 경로를 보여줄 수 있어야 한다거나 등이 있습니다. 산업용 로봇은, 모터 최고 속도나 방수 기능 또는 비상정지 버튼 등이 있습니다.

 

2. 요구 사항 추출

요구 사항 추출이란 사용자가 무엇을 원하는지 결정을 내리는 작업으로서 여러 가지 기법이 동원됩니다. 현재 판매되고 있는 로봇 시스템이 있다면 요구를 추출하는 작업을 비교적 수월합니다. 그러나 아직 존재하지 않아 문제에 대한 해법을 생각해 보지 않은 경우 사용자와 함께 아이디어와 해결책을 찾는 것이 어려울 수 있습니다.

 

요구를 추출하기 위해서는 다음 세 가지 단계의 작업이 필요합니다.

1) 시스템에 대한 정보 출처 파악

요구 사항을 추출하기 위해서는 정보를 모으는 일부터 시작해야 합니다. 다양한 형태의 정보원이 존재하며, 어떤 정보원으로부터 정보를 파악할 것인지를 결정해야 합니다. 이러한 정보원에는 정부나 전문 기관의 법령이나 표준, 정부나 정부 산하 기관에서 발표되는 각종 정책이나 통계, 특허청에 등록된 특허, 전문 기관 등에서 출판되는 동향 분석 보고서나 시장 분석 보고서, 학술 기관 등에서 출판되는 논문이나 세미나 자료, 전문가들의 의견이 들어있는 인터넷 정보, 책과 같은 각종 출판물, 신문이나 방송의 각종 보도 자료 등이 있습니다. 요즘에는 유튜브 영상에서도 정보를 찾는 시대가 오기도 했습니다.

2) 요구 사항에 대한 정보 수집

요구 사항에 대한 정보를 모으는 방법에는 여러 가지가 있습니다. 고객이나 사용자의 발표를 직접 듣거나 인터뷰를 하는 방법, 문헌이나 인터넷 등을 직접 조사하는 방법, 설문지를 이용해 관련자나 전문가들의 의견을 취합하는 방법, 엔지니어들 간의 브레인스토밍 회의를 통해 요구 사항을 이끌어 내는 방법, 사용 사례를 찾아서 작성해 보는 방법 등이 있습니다.

3) 요구 사항과 제한 사항의 정의

시스템의 요구란 주로 시스템이 수행하여야 하는 기능적 요구 사항과 비기능적 요구 사항, 성능적 요구 사항을 찾아내는 것입니다. 이러한 요구들은 개발될 시스템의 기능이나 성능을 구체적으로 나타내게 합니다.

 

글 봐주셔서 감사합니다.

조금이나마 도움이 되셨다면 공감, 댓글, 구독 꼭 부탁드립니다.

내용은 NCS기반이며 출처는 "NCS학습모듈" 입니다.

 

https://www.ncs.go.kr/unity/th03/ncsSearchMain.do

 

NCS 국가직무능력표준, NCS 블라인드채용

NCS 메인에서 국가직무능력표준(National Competency Standards) 및 블라인드 채용에 대한 다양한 정보와 유용한 컨텐츠를 만나 보세요

www.ncs.go.kr

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기