요구사항 관리
요구사항 관리 사례는 시스템 변경 요구사항을 찾아 문서화하고 구조화하며 추적하기 위한 조직적인 접근 방식입니다.
기본 설명

요구사항 관리 개념

요구사항 관리는 시스템 변경 요구사항을 찾아 문서화하고 구조화하며 추적하기 위한 조직적인 접근 방식입니다.

요구사항은 "시스템이 준수해야 하는 조건 또는 기능"으로 정의됩니다.

공식적으로 요구사항 관리는 다음 두 가지 모두에 대한 조직적인 방법으로 정의됩니다.

  • 시스템 요구사항 도출, 구조화 및 문서화
  • 고객 및 프로젝트 팀 간에 시스템 변경 요구사항에 대한 계약 수립 및 유지보수

효율적인 요구사항 관리의 핵심에는 다른 요구사항 및 다른 프로젝트 아티팩트에 대한 적합한 속성 및 추적성과 함께 요구사항에 대한 명확한 설명을 유지보수하는 것이 포함됩니다.

요구사항을 수집하는 것은 오히려 수월한 타스크처럼 들릴 수 있습니다. 그러나 실제로 프로젝트 수행 시 다음과 같은 이유로 어려움에 직면할 수 있습니다.

  • 요구사항은 항상 명백하지 않고 많은 소스에서 제공될 수 있습니다.
  • 언제나 요구사항이 말로 쉽고 명확하게 표현되는 것은 아닙니다.
  • 세부사항의 여러 레벨에서 서로 다른 많은 유형의 요구사항이 있습니다.
  • 제어되지 않는 경우 요구사항의 수를 관리할 수 없을 수 있습니다.
  • 요구사항이 서로 연관되어 있고 소프트웨어 엔지니어링 프로세스의 다른 인도물과도 연관되어 있습니다.
  • 요구사항은 고유한 특성 또는 특성 값을 가지고 있습니다. 예를 들어, 각 요구사항 충족이 똑같이 중요하거나 쉽지는 않습니다.
  • 이해 관계자(interested party)가 많이 있습니다. 이는 다기능 그룹에서 요구사항을 관리해야 함을 의미합니다.
  • 요구사항은 변경됩니다.

요구사항을 정의하는 데 아무리 주의를 기울여도 변경되는 것이 항상 있습니다. 요구사항 변경 관리를 복잡하게 하는 것은 변경된 요구사항이 특정 새 기능을 구현하는 데 시간이 소요되어야 함을 의미한다는 것뿐 아니라, 하나의 요구사항을 변경하면 다른 요구사항에 영향을 미칠 수 있다는 것입니다. 변경 관리에는 기준선 수립, 종속성이 추적에 중요한지 판별, 관련 항목 간의 추적성 수립 및 변경 제어 구현과 같은 활동이 포함됩니다.

유스 케이스의 개발 구동 방법은?

기능적 요구사항을 구성하는 데 권장되는 방법은 유스 케이스를 사용하는 것입니다. 글머리표가 붙은 요구사항 목록 대신에 시스템 사용 방법의 컨텐츠를 설명하는 방법으로 기능적 요구사항을 구성하십시오. 이것은 보다 높은 완전성 및 일관성을 제공하며 사용자 관점에서 요구사항의 중요성에 대해 보다 나은 이해를 제공합니다.

전통적인 객체 지향 관점에서는 종종 시스템이 계획된 작업을 수행하는지 구분하기가 어렵습니다. 이런 어려움은 특정 타스크 수행 시 시스템에서의 "레드 스레드" 부족에서 비롯된 것입니다. Rational Unified Process에서는 유스 케이스가 시스템에서 수행되는 동작을 정의하므로 유스 케이스가 해당 스레드입니다. 유스 케이스는 전통적인 객체 지향의 일부는 아니지만 중요성이 더욱 더 명백해집니다. 이는 유스 케이스가 UML의 일부라는 사실로 인해 한층 더 강조됩니다.

RUP는 시스템용으로 정의된 유스 케이스가 전체 개발 프로세스의 기반이 되는 "유스 케이스 기반 접근 방식"을 사용합니다.

유스 케이스는 몇몇 원칙의 일부로 역할을 합니다.

  • 유스 케이스의 개념은 비즈니스 프로세스를 표시하는 데 사용될 수 있습니다. 이 유스 케이스 변형을 "비즈니스 유스 케이스"라고 합니다. 이것은 비즈니스 모델링 원칙에서 다루어집니다.
  • 소프트웨어 요구사항인 유스 케이스는 요구사항 원칙에 설명됩니다. 유스 케이스는 시스템의 고객, 개발자 및 테스터 둘 다에게 용인 가능해야 하는 중요한 근본 개념을 구성합니다.
  • 프로젝트 관리 원칙에서 유스 케이스는 반복적 개발 계획에 대한 기반으로 사용됩니다.
  • 유스 케이스는 디자인 모델에서 분석 및 디자인 원칙의 파트로 구현됩니다. 유스 케이스 실현(realization)은 디자인 모델에서 유스 케이스가 상호작용하는 오브젝트에 따라 디자인에 의해 지원되는 방법을 설명합니다.
  • 유스 케이스는 궁극적으로 구현되고 테스트 가능한 시나리오가 되므로 구현 및 테스트 원칙 모두에 초점을 맞춥니다. 유스 케이스는 테스트 케이스 및 테스트 스크립트를 도출하는 데 사용됩니다. 각 유스 케이스를 실행하는 테스트 시나리오를 실행하여 시스템의 기능이 확인됩니다.
  • 개발 원칙에서 유스 케이스는 사용자의 매뉴얼에 설명된 컨텐츠에 대한 기반을 형성합니다. 유스 케이스는 제품의 주문 단위를 정의하는 데 사용될 수도 있습니다. 예를 들어, 고객은 특정 유스 케이스 혼합을 사용하여 구성된 시스템을 얻을 수 있습니다.