| –← Week 5 | 목차 | 다음: Week 8 →– |
Week 6: 시스템 요구사항 조사 📋
📌 학습 목표
- ✅ 다양한 요구사항 수집 기법의 특징과 활용법 습득
- ✅ 기능적 요구사항과 비기능적 요구사항의 구별과 명세 방법 이해
- ✅ 체계적인 요구사항 명세서 작성 능력 개발
- ✅ 요구사항 검증 및 변경 관리 프로세스 학습
🔍 요구사항 수집 기법
1. 인터뷰 (Interview) 🎤
장점
- 심층적인 정보 획득 가능
- 개인적 의견과 경험 청취
- 유연한 질문 조정
단점
- 시간과 비용 소모
- 개인 편견 가능성
- 일관성 부족
Best Practice
- 사전 질문 리스트 준비
- 녹음/기록 허가 요청
- 후속 질문으로 심화
2. 설문조사 (Survey) 📊
활용 시기
- 대규모 사용자 의견 수집
- 정량적 데이터 필요
- 표준화된 정보 획득
설문 설계 원칙
- 명확하고 간결한 질문
- 객관식/리커트 척도 활용
- 논리적 문항 순서
3. JAD (Joint Application Design) 🤝
정의: 이해관계자들이 참여하는 구조화된 워크샵
진행 과정
- 사전 준비: 참석자, 의제, 자료 준비
- 킥오프: 목표 및 규칙 설명
- 요구사항 도출: 브레인스토밍, 토론
- 합의 도출: 우선순위 결정
- 문서화: 회의록 작성
4. 관찰법 (Observation) 👀
직접 관찰
- 실제 업무 환경에서 관찰
- 현실적인 요구사항 파악
- 숨겨진 문제점 발견
간접 관찰
- 문서 분석
- 로그 데이터 분석
- 기존 시스템 분석
5. 프로토타이핑 (Prototyping) 🛠️
유형
- 페이퍼 프로토타입: 스케치, 와이어프레임
- 디지털 프로토타입: 클릭 가능한 목업
- 기능 프로토타입: 실제 동작하는 시제품
⚙️ 기능적 vs 비기능적 요구사항
기능적 요구사항 (Functional Requirements) 🔧
정의: 시스템이 제공해야 하는 기능이나 서비스
예시
- 사용자 로그인/로그아웃 기능
- 상품 검색 및 주문 처리
- 보고서 생성 및 출력
- 데이터 입력/수정/삭제
비기능적 요구사항 (Non-Functional Requirements) 🏃♂️
1. 성능 (Performance) 📈
- 응답시간: 3초 이내 페이지 로딩
- 처리량: 초당 1,000건 거래 처리
- 동시사용자: 최대 10,000명 지원
2. 보안 (Security) 🔒
- 인증: 다중 인증 지원
- 권한: 역할 기반 접근 제어
- 암호화: 데이터 전송/저장 시 암호화
3. 사용성 (Usability) 👥
- 직관성: 5분 내 기본 기능 학습
- 접근성: 장애인 접근성 준수
- 다국어: 한/영 지원
4. 신뢰성 (Reliability) 🛡️
- 가용성: 99.9% 업타임
- 복구: 장애 시 1시간 내 복구
- 백업: 일 1회 자동 백업
📝 요구사항 명세서 작성 (IEEE 830)
문서 구조
1. 서론 (Introduction)
- 목적: 문서 작성 목적
- 범위: 시스템 범위 정의
- 정의: 용어 및 약어
- 참조: 관련 문서
2. 전체 설명 (Overall Description)
- 제품 관점: 시스템 위치
- 제품 기능: 주요 기능 개요
- 사용자 특성: 사용자 유형
- 제약사항: 기술/운영 제약
3. 구체적 요구사항 (Specific Requirements)
- 기능 요구사항: 상세 기능 명세
- 외부 인터페이스: 사용자/하드웨어/소프트웨어/통신 인터페이스
- 성능 요구사항: 정량적 성능 기준
- 논리적 데이터베이스: 데이터 요구사항
- 설계 제약사항: 표준, 하드웨어 제약
- 소프트웨어 시스템 속성: 신뢰성, 가용성, 보안, 유지보수성
작성 원칙 ✅
1. 완전성 (Completeness)
- 모든 요구사항 포함
- 누락된 기능 없음
- TBD (To Be Determined) 최소화
2. 일관성 (Consistency)
- 모순된 요구사항 없음
- 용어 사용 일관성
- 명세 수준 일관성
3. 명확성 (Clarity)
- 애매한 표현 금지
- 구체적 수치 제시
- 검증 가능한 기준
4. 추적성 (Traceability)
- 요구사항 간 연관관계
- 소스 추적 가능
- 변경 이력 관리
✅ 요구사항 검증 및 관리
검증 방법
1. 리뷰 (Review) 📖
- 동료 리뷰: 팀 내부 검토
- 고객 리뷰: 사용자 승인
- 전문가 리뷰: 도메인 전문가 검토
2. 프로토타이핑 🔄
- 요구사항 시각화
- 조기 피드백 수집
- 이해도 검증
3. 모델 검증 📐
- 일관성 검사
- 완전성 검사
- 실현가능성 검사
변경 관리 프로세스
변경 요청 → 영향도 분석 → 승인/반려 → 구현 → 검증 → 반영
변경 통제 위원회 (CCB)
- 구성: 프로젝트 관리자, 개발팀장, 사용자 대표
- 역할: 변경사항 승인/반려 결정
- 기준: 비용, 일정, 품질 영향도
요구사항 관리 도구 🛠️
1. 추적 매트릭스
| 요구사항 ID | 설명 | 우선순위 | 상태 | 담당자 | 테스트 케이스 | |————-|——|———-|——|———|—————| | REQ-001 | 사용자 로그인 | 높음 | 승인 | 김개발 | TC-001 | | REQ-002 | 비밀번호 변경 | 중간 | 검토중 | 이분석 | TC-002 |
2. 관리 도구
- JIRA: 이슈 추적 및 관리
- Confluence: 문서 관리
- ReqSuite: 전용 요구사항 관리 도구
🎯 실습: 온라인 쇼핑몰 요구사항
기능적 요구사항
- 사용자 관리
- 회원가입/로그인/로그아웃
- 개인정보 수정
- 비밀번호 변경
- 상품 관리
- 상품 조회/검색/필터링
- 상품 상세 정보 표시
- 장바구니 담기/수정/삭제
- 주문 처리
- 주문서 작성/수정
- 결제 처리
- 주문 내역 조회
비기능적 요구사항
- 성능: 동시 접속자 1,000명 지원
- 보안: SSL 암호화 통신
- 사용성: 3클릭 내 상품 구매
- 가용성: 99.5% 서비스 가용성
📚 참고 자료
- IEEE Std 830-1998, “IEEE Recommended Practice for Software Requirements Specifications”
- Karl Wiegers, “Software Requirements”
- 한국정보산업연합회, 『소프트웨어 요구사항 명세 가이드』
| **© 2024-2025 한국공학대학교 경영학부 | All Rights Reserved** |