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

[CS] 요구사항

by backend 개발자 지망생 2024. 12. 18.

요구사항의 이해와 정의

1. 요구사항이란

💡 요구사항은 사용자 또는 이해관계자가 시스템이나 소프트웨어로부터 기대하는 기능, 서비스 및 조건을 명시하는 것이다. 프로젝트의 기초를 형성하며 개발 전반에 걸쳐 중요한 지침 역할을 한다.

 

2. 요구사항의 목적

💡 프로젝트의 목표를 명확히 하고, 무엇을 개발해야 할지를 구체적으로 안내, 프로젝트의 범위를 정의하고 이해관계자 간의 의사소통을 하는데 중요하다.

 

3. 기능 vs 비기능

💡 기능적: 시스템이 수행해야 하는 구체적인 기능 명시

 


요구사항 추출과정

  1. 인터뷰: 이해관계자들 간의 일대일로 진행하는 대화를 통해 관점 및 깊이 있는 정보를 얻을 수 있다.
  2. 워크숍: 이해관계자들 간의 집단 토론,상호작용이 많은 세션을 통해 수렴 및 합의 가능하다.
  3. 설문조사: 특정한 질문 수의 답변을 많은 수의 사용자로부터 요구사항 수집 가능한 방법이다.

요구사항 분석 및 명세서

  • 요구사항 분석 절차
    1. 요구사항 정리 및 분류: 기능적, 비기능적 요구사항 분류, 사용자 스토리 형식으로 정리 ex) ‘as a [role], i want [feature], so that[reason]’의 형식
    2. 요구사항 검토 및 우선순위 결정: 사용자 스토리를 기반으로 각 요구사항의 우선순위를 결정하며, 중요도와 프로젝트 목표에 따라 조정한다.
    3. 모델링 및 분석: 사용자 스토리를 사용하여 유스케이스, 시퀀스 다이어그램, 활동 다이어그램 등을 생성하며, 요구사항을 더 깊이 분석하고 시스템의 행동을 모델링한다.
    4. 검증 및 승인: 생성된 사용자 스토리를 이해관계자와 함께 검토하여 명확성과 완전성을 검증하고 승인을 받는다.
    5. 명세서 작성: 승인된 사용자 스토리를 요구사항 명세서에 포함시키며, 이 문서는 개발 및 테스트의 기준이 된다.
    6. 반복 및 정제: 프로젝트의 진행 상황에 따라 사용자 스토리를 계속해서 검토하고, 필요한 경우 정제하거나 업데이트한다.
  • 명세서 작성 시 지킬 사항
    • 명확성‘모든 이해관계자’가 이해할 수 있도록 명확하고 구체적인 언어를 사용한다.
    • 완전성: 모든 필수 요구사항을 포함하며, 누락된 내용이 없어야 한다.
    • 일관성: 문서 내의 정보가 서로 모순되지 않아야 한다.
    • 추적 가능성: 각 요구사항이 원본 출처로 추적될 수 있도록 한다.
    • 검증 가능성: 요구사항이 실제로 검증 가능해야 하며, 측정 가능한 기준을 포함해야 한다.

요구사항 검증 및 유지보수

  • 요구사항 검증
    1. 리뷰
    2. 문서화된 요구사항을 이해관계자와 함께 검토하여 정확성, 완전성, 가독성을 확인
    3. 테스트케이스
    4. 요구사항에 대해 테스트 케이스를 작성하고, 테스트를 실행하여 요구사항 충족되는지 확인
    5. 프로토타입
    6. 초기 단계에서 요구사항을 기반으로 프로토타입을 제작, 이해관계자에게 제시하여 피드백을 받는 방식
    7. 시뮬레이션
    8. 복잡한 시스템의 경우, 실제 운영환경에서 요구사항을 충족하는지, 어떻게 작동하는지 평가할 수 있다.

  • 요구사항 변경 관리
    • 영향 분석: 제안된 변경 사안이 프로젝트에 미칠 영향을 분석한다.변경 기록 및 추적: 모든 변경 사항은 문서화 되고 추적 가능
    • 통신 및 업데이트: 승인된 변경 사항은 모든 관련 이해관계자에게 통신, 관련 문서 및 계획은 업데이트
    • 변경 승인: 변경 사안에 대한 승인은 이해관계자나 변경 관리 위원회가 담당
    • 변경 요청 프로세스: 모든 변경 요청은 공식적인 프로세스를 통해 제출

'Computer Science > 소프트웨어 공학' 카테고리의 다른 글

[CS] 소프트웨어 개발 프로세스  (4) 2024.12.18