요구사항 관리는 시스템 변경 요구사항을 찾아 문서화하고 구조화하며 추적하기 위한 조직적인 접근 방식입니다.
요구사항은 "시스템이 준수해야 하는 조건 또는 기능"으로 정의됩니다.
공식적으로 요구사항 관리는 다음 두 가지 모두에 대한 조직적인 방법으로 정의됩니다.
-
시스템 요구사항 도출, 구조화 및 문서화
-
고객 및 프로젝트 팀 간에 시스템 변경 요구사항에 대한 계약 수립 및 유지보수
효율적인 요구사항 관리의 핵심에는 다른 요구사항 및 다른 프로젝트 아티팩트에 대한 적합한 속성 및 추적성과 함께 요구사항에 대한 명확한 설명을 유지보수하는 것이 포함됩니다.
요구사항을 수집하는 것은 오히려 수월한 타스크처럼 들릴 수 있습니다. 그러나 실제로 프로젝트 수행 시 다음과 같은 이유로 어려움에 직면할 수 있습니다.
-
요구사항은 항상 명백하지 않고 많은 소스에서 제공될 수 있습니다.
-
언제나 요구사항이 말로 쉽고 명확하게 표현되는 것은 아닙니다.
-
세부사항의 여러 레벨에서 서로 다른 많은 유형의 요구사항이 있습니다.
-
제어되지 않는 경우 요구사항의 수를 관리할 수 없을 수 있습니다.
-
요구사항이 서로 연관되어 있고 소프트웨어 엔지니어링 프로세스의 다른 인도물과도 연관되어 있습니다.
-
요구사항은 고유한 특성 또는 특성 값을 가지고 있습니다. 예를 들어, 각 요구사항 충족이 똑같이 중요하거나 쉽지는 않습니다.
-
이해 관계자(interested party)가 많이 있습니다. 이는 다기능 그룹에서 요구사항을 관리해야 함을 의미합니다.
-
요구사항은 변경됩니다.
요구사항을 정의하는 데 아무리 주의를 기울여도 변경되는 것이 항상 있습니다. 요구사항 변경 관리를 복잡하게 하는 것은 변경된 요구사항이 특정 새 기능을 구현하는 데 시간이 소요되어야 함을 의미한다는 것뿐 아니라,
하나의 요구사항을 변경하면 다른 요구사항에 영향을 미칠 수 있다는 것입니다. 변경 관리에는 기준선 수립, 종속성이 추적에 중요한지 판별, 관련 항목 간의 추적성 수립 및 변경 제어 구현과 같은 활동이 포함됩니다.
기능적 요구사항을 구성하는 데 권장되는 방법은 유스 케이스를 사용하는 것입니다. 글머리표가 붙은 요구사항 목록 대신에 시스템 사용 방법의 컨텐츠를 설명하는 방법으로 기능적 요구사항을 구성하십시오. 이것은 보다 높은
완전성 및 일관성을 제공하며 사용자 관점에서 요구사항의 중요성에 대해 보다 나은 이해를 제공합니다.
전통적인 객체 지향 관점에서는 종종 시스템이 계획된 작업을 수행하는지 구분하기가 어렵습니다. 이런 어려움은 특정 타스크 수행 시 시스템에서의 "레드 스레드" 부족에서 비롯된 것입니다. Rational Unified
Process에서는 유스 케이스가 시스템에서 수행되는 동작을 정의하므로 유스 케이스가 해당 스레드입니다. 유스 케이스는 전통적인 객체 지향의 일부는 아니지만 중요성이 더욱 더 명백해집니다. 이는 유스 케이스가
UML의 일부라는 사실로 인해 한층 더 강조됩니다.
RUP는 시스템용으로 정의된 유스 케이스가 전체 개발 프로세스의 기반이 되는 "유스 케이스 기반 접근 방식"을 사용합니다.
유스 케이스는 몇몇 원칙의 일부로 역할을 합니다.
-
유스 케이스의 개념은 비즈니스 프로세스를 표시하는 데 사용될 수 있습니다. 이 유스 케이스 변형을 "비즈니스 유스 케이스"라고 합니다. 이것은 비즈니스 모델링 원칙에서 다루어집니다.
-
소프트웨어 요구사항인 유스 케이스는 요구사항 원칙에 설명됩니다. 유스 케이스는 시스템의 고객, 개발자 및 테스터 둘 다에게 용인 가능해야 하는 중요한 근본 개념을 구성합니다.
-
프로젝트 관리 원칙에서 유스 케이스는 반복적 개발 계획에 대한 기반으로 사용됩니다.
-
유스 케이스는 디자인 모델에서 분석 및 디자인 원칙의 파트로 구현됩니다. 유스 케이스 실현(realization)은 디자인 모델에서 유스 케이스가 상호작용하는 오브젝트에 따라 디자인에 의해 지원되는 방법을
설명합니다.
-
유스 케이스는 궁극적으로 구현되고 테스트 가능한 시나리오가 되므로 구현 및 테스트 원칙 모두에 초점을 맞춥니다. 유스 케이스는 테스트 케이스 및 테스트 스크립트를 도출하는 데 사용됩니다. 각 유스 케이스를
실행하는 테스트 시나리오를 실행하여 시스템의 기능이 확인됩니다.
-
개발 원칙에서 유스 케이스는 사용자의 매뉴얼에 설명된 컨텐츠에 대한 기반을 형성합니다. 유스 케이스는 제품의 주문 단위를 정의하는 데 사용될 수도 있습니다. 예를 들어, 고객은 특정 유스 케이스 혼합을
사용하여 구성된 시스템을 얻을 수 있습니다.
|