3-1공부/소프트웨어공학론

4. 요구사항

KGW2027 2022. 4. 17. 19:07
728x90
반응형

요구사항 ( Requirement )

 - 시스템 ( SW )이 무엇을 제공해야 하는 가, 시스템의 제약사항 등..

 - 시스템은 요구사항보다 나아질 수 없음. ( 요구사항을 지켜야 한다는 것. )

 - 요구사항에 대해 정확히 파악하지 못하면 프로젝트가 실패할 수 있다.

요구사항을 정의하는것이 왜 어려울까?

 - 요구사항이라는 것이 원래도 복잡한데, 의뢰인도 요구사항을 정확히 파악하지 못한다.

 - 이해 당사자 (Stakeholder)들의 각자의 용어를 사용하므로 상호간 이해/소통에 어려움이 있다.

 - 요구사항은 정적이지 않고, 동적이며, 이해 당사자간 요구사항이 충돌할 수 있다.

 

바람직한 요구사항

 - 부족하거나 넘치지 않는 딱 중도를 지켜야 한다. ( Not Missing, Not Superfluous )

 - 모호하지 않고 분명하고 정확해야 한다. ( Unambiguous, Correct )

 - 모든 요구사항을 충족하며, 충돌하지 않아야 한다. ( Complete, Consistent )

 - 구현 가능하며, 요구사항들의 구현 여부 등을 추적가능해야 한다. ( Feasible, Traceable )

 

요구사항 분석 사례

 - 개발자 쪽에서 요구사항을 분석 한 뒤, 그것을 바탕으로 고객과 의논

 - 그러나, 개발자 측에서 작성한 요구사항 문서가 고객이 읽기에 좋지 않으면, 고객이 충분한 검토 없이 승인할 수 있음

  -> 이는 모법적이지 못하므로, 공학적 프로세스가 필요함.

 

요구사항 공학

 - 요구사항을 찾아내고, 분석하고, 문서화하고, 고객에게 검증받는 과정.

 사용자 요구사항 ( User Requirement ) : 고객이 작성하며, 기술적이지 않은 내용으로 이뤄짐.

 시스템 요구사항 ( System Requirement ) : 개발자가 작성하며, 기술적으로 정밀하고 명확함. 기능/비-기능 이 구분됨.

  -> 기능적 요구사항 : Input, Output이 명확한 것.

  -> 비-기능적 요구사항 : 성능, 보안, 설계, 구현, 규제, 표준, 윤리적 부분 등..

 

 요구사항 추출

 - 요구사항은 사용자, 이용자, 이해 관계자, 리버스 엔지니어 등.. 연관된 모든 곳에서 생긴다.

 - Stakeholder : 원하는 것이 무엇인지 정확하게 잘 모름. (표현을 못한다-)

 - Analysts : 사용자/고객보다 자신이 더 필요한 것을 정확하게 안다고 착각하기도 한다.

  -> 이해관계로 인해 요구사항 추출에 어려움이 있음.

 요구사항 추출 기법

 1. Requirement Workshop ( Customer Presentation )

  - 이해 당사자들이 모두 모여서 소프트웨어 주문자가 발표, 그걸 듣고 요구사항을 정리한다.

   -> 문제점, 필요기능, Use-case 시나리오, Risk list 등을 알아낼 수 있음.

 2. Background Reading

  - 설문, 기존 업무 프로세스 등을 참조 ( 기업 차트 및 정책, 문서화된 자료 )

   -> 기업에 대한 이해도 상승, 디테일적으로 자세해짐.

 3. Prototyping

  - 개발한 제품을  바탕으로 고객에게 확인, 만들면서 새로운 요구사항을 발견

   -> 좋은 방법이지만, 개발에 시간과 돈이 소모됨.

 4. Brainstorming

  - 회의 방법 중의 하나로, 가능성 여부와 상관없이 최대한 다양한 아이디어를 만듬.

 5. Interviews & Surveys

  - 불특정 다수의 의견을 수집하는 방법.

  - 인터뷰는 사용자와 직접 만나서 대화,질문 하므로 질 높은 정보의 획득이 가능하지만, 그만큼 전문적인 기술이 필요.

  - 설문은 한 번에 많은 정보를 취합할 수 있지만, 설문지의 완성도에 따라 정보의 질이 달라지게 된다.

 요구사항 우선순위 설정 ( Requirement Prioritization )

  - 추출한 요구사항들에 고유 번호를 매긴다.

  - 모든 요구사항을 충족할 수 없는 상황이 일반적이므로, 필수인지, 있으면 좋은 수준인지 등으로 구분한다.

 도메인 분석 ( Domain Analysis )

  - 요구사항에 대한 배경지식을 습득한다.

  - 고객이 당연하게 생각하는 비즈니스 규칙 등을 알아야함.

728x90
반응형

'3-1공부 > 소프트웨어공학론' 카테고리의 다른 글

6. 시스템 모델링  (0) 2022.04.17
5. Use-case  (0) 2022.04.17
3. 일정 계획, 팀  (0) 2022.04.17
2. 소프트웨어 개발 절차  (0) 2022.04.17
1. 소프트웨어 개요  (0) 2022.04.17