일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 개발프레임워크의 기술 동향
- 공간DB
- 정렬
- 객체 지향형 DB
- vector unique erase
- TOPCIT
- 계층형DB
- BOJ
- 온라인처리
- aws winscp
- 백트래킹
- 프로그래밍 언어
- 프로그래밍 언어 기술 동향
- Flutter
- compare
- boj 11659
- 개발프레임워크
- 객체관계형DB
- 소프트웨어아키텍처 기술 동향
- 시간초과
- 네트워크형DB
- 메인 메모리 DB
- 멀티미디어DB
- 소프트웨어 개발도구
- 클라우드기반 IDE
- compare구조체
- ANSI-SPARC
- sync_with_stdio(0)
- Backtracking
- c++
옐그's 코딩라이프
[TOPCIT][01] X. 소프트웨어 요구관리 (에센스 정리 요약) 본문
학습 목표
1. 소프트웨어 요구관리 개념과 프로세스에 대하여 설명할 수 있다.
2. 요구사항 추적관리와 변경관리 활용을 위한 프로세스를 설명할 수 있다.
핵심 키워드
- 요구사항 관리 프로세스
- 요구사항 명세 기법
- 요구사항 변경 관리
01 요구사항 관리
요구사항 관리의 정의
- 요구사항 공학은 크게 요구사항 개발과 요구사항 관리로 나눌 수 있음
- 요구사항 개발이란? 무엇을 할 것인가를 정의하는 것
- 요구사항 관리란? 하기로 정의된 요구사항이 제대로 반영되어 진행되는지를 확인하며, 최초 요구사항 변경에 대한 지속적인 관리를 수행하는 것
요구사항 관리의 중요성
- 다양한 이해 관계자 간에 효과적인 의사소통의 수단 제공
- 프로젝트 초반부터 체계적인 요구관리로 납기지연 및 예산초과를 방지
- 사용자 요구 명세 수행 및 관리를 가능하게 함
요구사항 관리의 목적
- 고객의 관점에서 고객의 요구를 정확히 파악하여 만족시키기
- 제한된 일정과 기간 내에 품질 높은 소프트웨어를 생산하는 것
요구사항 관리 공정
공정 | 설명 | 산출물 |
요구사항 추출 | - 비즈니스 요구사항 정의 - 참여자 식별 - 초기 요구사항 추출 |
Candidate Requirement |
요구사항 분석 | - 후보 요구사항 모델링 - 요구사항 우선순위 선정 - 요구사항 협의 |
Agreed Requirement |
요구사항 명세 | - 요구사항 명세 기준 정의, 명세서 작성 - 요구사항 추적성 관련 정보 저장 |
Formal Requirement |
요구사항 검증 | - 요구사항 명세서 검토, 용어 검증, Baseline 설정 | Baselined Requirement |
요구사항 변경관리 | - 요구사항 변경제어, 추적성 제어, 버전제어(이력관리) | Consistent Requirement |
요구사항 관리 원칙
- 고객가치기반의 요구 우선 순위 부여, 이해관계자의 요구사항에 대한 동의 획득
- 요구 시스템의 정확한 목표 식별(기대 관리/범위 관리)
- 요구사항 변경관리 위원회(CCB, Change Control Board) 운영을 통한 요구 변경의 영향 분석 및 변경 단계별 베이스라인(Baseline) 설정
02 요구사항 명세
요구사항 명세 기법
분류 | 명세 기법 | 설명 |
정형 명세 | VDM | - Vienna Development Method - 상태 기반의 그래픽 명세 방법 |
수학적 기반 기술 | - 명세 개발 및 체계적 시스템 검증 프레임워크 제공 | |
비정형 명세 | FSM | - Finite State Machine - 입력 신호에 의한 상태 전이 표현 |
SADT | - Structured Analysis and Design Technique - 그래픽 기반의 구조적 분석 모델 |
|
Usecase | - 사용자 기반의 모델링 | |
Decision Table | - 의사결정을 위한 확률과 사례 표기 | |
ER 모델링 | - Entity 관계 표현 |
요구사항 명세 원칙 및 주요 내용
원칙 | 설명 |
검증성 | 요구 명세는 증명 가능 |
수정성 | 요구사항은 수정 가능 |
명확성 | 요구 명세는 이해당사자별 명확히 제시 |
정확성 | 요구 명세는 정확히 기술 |
추적성 | 요구사항은 근원, 원리가 추정 가능 |
일관성 | 요구 명세는 요구사항 간에 충돌이 없어야 함 |
완전성 | 기능성, 성능 및 제약사항 등 모든 중요한 내용이 문서화 |
해석성 | 해석의 일관성 제공 |
이해성 | 이해 당사자 간에 이해가 용이 해야 함 |
요구사항 명세서
목차 | 설명 |
1. 개요 | - 소프트웨어의 일반적인 소개 - SW요구 명세 목적 기술 - SW요구 명세를 읽는 관계자 - SW 목적, 제한사항, 특징, 이익, 사업전략, 공동목표와의 관계 (SW 대략적 설명) |
1.1 목적 | |
1.2 관련부서 / 관계자 | |
1.3 개발 범위 | |
2. 전체 개관 | |
2.1 프로젝트 개요 | SW의 지원, 기존 시스템 대체, 독립적 제품 여부 등을 기술 |
2.2 Product Function | Function List만 기술하고 4장에서 상세 기술 |
2.3 사용자 특성 | - 사용자 특징 기술(경험, 교육 정도, 성향 등) - 사용자별 사용 빈도 기술 |
2.4 소프트웨어 운영 환경 | SW 동작할 HW 환경, OS, SW 환경 등을 기술 |
2.5 Decision과 배포 | - HW 제약사항, 메모리 제약사항, 특정기술사용, 다국어 지원, 보안 - 디자인 규약, 프로그래밍 규약 |
2.6 가정과 의존성 | 이 소프트웨어에 영향을 주는 가정 (외주 컴포넌트에 대한 의존성, 다른 프로젝트 컴포넌트의 의존성 기술) |
2.7 데이터 요구사항 | 사용자 관점에서의 기능별 Input/Output 데이터 |
2.8 사용 시나리오 | 이 시스템을 설명할 수 있는 사용자 관점의 시나리오 |
3. 인터페이스 | |
3.1 사용자 인터페이스 | Sample Screen Image, 표준 버튼, 표준 에러 메시지, Keyboard Short-cut 등 |
3.2 하드웨어 인터페이스 | 프로토콜 교류, 시스템의 HW 컴포넌트와 SW제품의 상호작용 |
3.3 소프트웨어 I/F | 다른 SW컴포넌트에서 이 SW로 출입하는 데이터나 메시지 정의 |
4. 기능 요구사항 | - 목차 2에서 나열한 Function에 대해 상세요구사항 기술 - Purpose: Function의 목적/이유 - Inputs: Function으로 들어오는 데이터 (Validation Check, 오류조치사항) - Outputs: Function에서 나오는 데이터 (프로세스 에러 메시지, 파라미터 범위, Form, Shape, 거리, 볼륨 출력) |
4.1 <Function Name> | |
5. 비기능 요구사항 | |
5.1 성능 요구사항 | 접속 유저수, 반응시간, 파일/테이블 사이즈, 단위시간당 발생 트랜잭션수 |
5.2 보안 요구사항 | 데이터 및 통신 암호화, 접근제어, 권한관리 등 |
5.3 SW품질 요구사항 | 가용성, 유연성, 상호호환성, 유지보수성, 이식성, 신뢰성, 사용성 등 SW 품질 요구사항 기술 |
5.4 비즈니스룰 | 운영 룰, 개인/조직이 SW로 업무를 진행할 때 규격들 CBP(Current Biz Process)와 FPM(Future Process Model) |
03 요구사항 변경 및 추적 관리
요구사항 추적성 개요
- 프로젝트 진행 과정에서 발생하는 요구사항 변경에 대해 공식적인 변경 통제와 추적 등의 활동으로 변경에 대한 일관성과 무결성 제공
요구사항의 변경 오류 원인
- 요구사항의 에러, 충돌, 불일치
- 참여자의 시스템에 대한 새로운 이해 및 지식 증가
- 시스템 환경 및 조직의 변화
- 기술적, 시간적, 비용적 문제 발생
'TOPCIT' 카테고리의 다른 글
[TOPCIT][01] XII. 소프트웨어 유지관리 (에센스 정리 요약) (0) | 2023.02.26 |
---|---|
[TOPCIT][01] XI. 소프트웨어 형상관리 (에센스 정리 요약) (0) | 2023.02.25 |
[TOPCIT][01] IX. 소프트웨어 테스팅과 리팩토링 (에센스 정리 요약) (0) | 2023.02.23 |
[TOPCIT][01] VIII. 프로그래밍 언어와 개발환경 (에센스 정리 요약) (1) | 2023.02.22 |
[TOPCIT][01] VII. 사용자 인터페이스(UI)/사용자 경험(UX) 설계 (에센스 정리 요약) (0) | 2023.02.10 |