X. 소프트웨어 요구관리
핵심 키워드 : 요구사항 관리 프로세스, 요구사항 명세기법, 요구사항 변경 관리
01. 프로젝트 성공의 핵심요소, 요구사항 관리
가. 정의
- 정의된 요구 사항의 반영과 진행을 확인하고, 요구사항의 변경에 대한 지속적인 관리를 수행하는 활동
* 요구사항 공학(Requirement Engineering) 구성 : 요구사항 개발(목표 설정), 요구사항 관리(목표 관리)
나. 요구사항 관리의 중요성
- 의사소통 수단 제공, 납기지연 및 예산초과 방지, 사용자 요구 명세 수행 및 관리
다. 요구사항 관리의 목적
- 고객 요구의 명확한 파악 및 만족, 고품질 소프트웨어 일정내 생산
라. 요구사항 관리 공정
- 소프트웨어 개발 생명주기 전체에서 명확한 요구 사항 정의 및 지속적인 관리 활동이 중요함
마. 요구사항 공정별 관리활동
공정 | 관리활동 | 산출물 |
요구 추출 | - 비즈니스 요구사항 정의 - 참여자 식별, 초기 요구사항 추출 |
Candidate Requirement |
요구 분석 | - 후보 요구사항 모델링 - 요구사항 우선순위 산정, 요구사항 협의 |
Agreed Requirement |
요구 명세 작성 | - 요구사항 명세 기준 정의 및 작성 - 요구사항 추적성 관련 정보 저장 |
Formal Requirement |
요구 명세 검증 | - 명세서 검토, 용어 검증 - Baseline 설정 |
Baselined Requirement |
변경 관리 | - 변경제어, 추적성 제어 - 버전제어(이력관리) |
Consistent Requirement |
- 실무측면에서는 변경제어, 추적성/버전 제어가 매우 중요하며 철저한 관리 원칙 준수가 필요함
바. 요구사항 관리 원칙
- 요구 우선순위 부여(고객 가치기반), 이해관계자의 동의
- 요구 시스템의 목표 식별(기대/범위 관리)
- CCB운영 통해 변경의 영향 분석 및 Baseline 설정
02. 요구사항 명세
가. 요구사항 명세 기법
구분 | 명세기법 | 설명 |
정형 명세 | - VDM | - Vienna Development Method - 상태 기반 그래픽 명세 방법 |
- 수학적 기반 기술 | - 명세 개발 및 체계적 시스템 검증 프레임워크 제공 | |
비정형 명세 | - FSM | - Finite State Machine - 입력 신호에 의한 상태 전이 표현 |
- SADT | - Structured Analysis and Design Technique - 그래픽 기반의 구조적 분석모델 |
|
- Usecase | - 사용자 기반 모델링 | |
- Decision Table | - 의사결정을 위한 확률과 사례표기 | |
- ER 모델링 | - Entity 관계표현 |
- 명세 방식에 따라 정형 명세, 비정형 명세로 구분 가능
나. 명세 원칙
- 명확성, 검증성, 추적성, 수정성, 일관성, 완전성, 정확성, 이해성, 해석성
다. IEEE 표준 요구사항 명세서 목차
구분 | 목차 | 내용 |
Overview | 1. 개요 | - 목적, 관련부서/관계자, 개발범위 |
2. 전체 개관 | - 프로젝트 개요, 제품 기능(List), 사용자 특성, 운영환경, 규약과 배포, 가정과 의존성, 데이터 요구사항, 사용 시나리오 | |
상세요구사항 | 3. 인터페이스 | - 사용자 인터페이스, HW 인터페이스, SW 인터페이스 |
4. 기능 요구사항 | - Function Name | |
5. 비기능 요구사항 | - 성능 / 보안 / SW품질 요구사항, 비즈니스 룰 |
- 공공 SW 사업의 경우 ‘요구사항 상세화 실무 가이드’ 참조 필요
03. 요구사항 변경 및 추적 관리
가. 요구사항 변경 관리 개요
- 정의 : 요구사항의 Baseline 기준, 모든 변경의 공식적 통제 프로세스
- 목적 : 변경에 대한 일관성, 무결성 확보
나. 요구사항 변경에 따른 오류 발생 원인
구분 | 원인 | 설명 |
환경 측면 | 이해, 지식 변화 | - 참여자의 새로운 이해, 지식 증가 |
시스템, 조직 변화 | - 운영환경 및 조직의 변화 | |
요구 측면 | 충돌, 불일치 | - 요구사항의 상호 충돌/불일치 |
에러, 불충분 | - 요구사항의 오류 및 상세화 부족 | |
자원 측면 | 기술, 시간, 비용 문제 | - 변경에 따른 필요 자원 변화 및 부족 |
- 요구 사항 추적성을 통해 오류 감소 및 예방
다. 요구사항 변경의 추적성 관리
- 정의 : 요구 사항 문서내의 요구사항 단위별로 추적성을 정의하고 구성하는 프로세스
- 특징 : 수직적/수평적 추적성, 순방향/역방향 추적성
라. 추적 관리의 효과
구분 | 효과 | 설명 |
비용 | - 재작업 감소 | - 요구사항 누락 방지 |
- 생산성 증대 | - 변경의 영향, 범위 검증 | |
품질 | - 요구사항 품질 향상 | - 요구 사항의 명확성, 추적성, 테스트 가능성 향상 |
- 제품 품질 증가 | - 요구사항과 테스트케이스 커버리지 확보 | |
의사소통 | - 일관성 확보 | - 산출물 일관성 확보 |
- 협업 촉진 | - 이해관계자간 의사소통 명확 |
[참고]
* VDM (Vienna Development Method)
- 시스템의 기능적인 요구사항만 한정하여 요구 명세와 검증 설계에 관한 검증 방법 제공하는 정형 명세 기법
* 수학적 기반 기술
- 수리, 논리 기반으로 시스템을 명세하는 기법, Z notation, B method등, 수학적 기호 사용
* FSM(Finite State Machin, 유한 상태 기계)
- 여러 제한된 상태가 존재하며, 그 존재들이 특정 조건에 따라 상태 전이하는 개념적 모델
. 장점 : ① 가질 수 있는 상태가 한정되며 ‘한 번에 한 가지 상태’만 보유
② 내부 구조와 구현 용이
③ 오류의 수정 용이, 유연성 보유
. 단점 : 규모가 커지면 설계가 복잡, 제한된 범위의 문제에만 적용 가능
* SADT(Structured Analysis and Design Technique, 구조적 분석 및 설계기법)
- 시스템을 기능의 계층 구조로 설명하기 위한 시스템 엔지니어링 및 소프트웨어 엔지니어링 방법론
. 장점 : 대규모 복잡한 문제 구조적 접근, 분할/통합 가능, 명료한 표기
'TOPCIT > TOPCIT교재' 카테고리의 다른 글
소프트웨어 유지관리 - 이상희 (0) | 2022.07.18 |
---|---|
소프트웨어 형상관리 - 권준호 (0) | 2022.07.18 |
소프트웨어 테스팅과 리팩토링 - 안혜진 (0) | 2022.07.18 |
X. 사용자 인터페이스(UI)/사용자 경험(UX) 설계 - 윤정우 (0) | 2022.07.18 |
VI. 객체 지향 설계 - 김정옥 (0) | 2022.07.18 |