| –← Week 6 | 목차 | 다음: Week 9 →– |
Week 8: 시스템 요구사항 구조화 1 - 프로세스 모델링 🔄
📌 학습 목표
- ✅ Use Case 다이어그램을 활용한 시스템 기능 모델링 능력 습득
- ✅ 자료흐름도(DFD) 작성을 통한 프로세스 시각화 기법 학습
- ✅ 체계적인 프로세스 분해 및 상세화 방법론 이해
- ✅ Mini-Spec 작성을 통한 프로세스 상세 명세 능력 개발
🎭 Use Case 다이어그램
Use Case 구성 요소
1. Actor (행위자) 👤
- 정의: 시스템과 상호작용하는 외부 개체
- 유형:
- 주 행위자 (Primary): 시스템을 직접 사용
- 보조 행위자 (Secondary): 시스템에 서비스 제공
- 예시: 고객, 관리자, 외부 시스템
2. Use Case (사용 사례) ⚙️
- 정의: 시스템이 제공하는 기능 단위
- 명명 규칙: 동사+명사 (예: 상품주문, 회원가입)
- 특징: 사용자에게 가치를 제공하는 완전한 기능
3. 관계 (Relationships) 🔗
Include 관계
- 용도: 공통 기능의 재사용
- 표기:
<<include>> - 예시: “상품주문”이 “로그인”을 포함
Extend 관계
- 용도: 선택적 기능 확장
- 표기:
<<extend>> - 예시: “상품주문”을 “쿠폰적용”으로 확장
Generalization 관계
- 용도: 일반화/특수화
- 표기: 속이 빈 삼각형
- 예시: “결제”를 “카드결제”, “계좌이체”로 특수화
📋 Use Case 명세서 작성
표준 템플릿
| 항목 | 내용 |
|---|---|
| Use Case ID | UC-001 |
| Use Case 명 | 상품 주문 |
| 작성자 | 홍길동 |
| 작성일 | 2024-03-15 |
| 주 행위자 | 고객 |
| 목적 | 원하는 상품을 주문하여 구매 완료 |
| 개요 | 고객이 상품을 선택하고 주문 정보를 입력하여 구매하는 과정 |
| 사전조건 | - 고객이 로그인된 상태 - 주문할 상품이 재고에 있음 |
| 사후조건 | - 주문이 시스템에 등록됨 - 재고가 감소됨 - 결제가 처리됨 |
상세 플로우
기본 플로우 (Basic Flow)
- 고객이 상품을 선택한다
- 시스템이 상품 정보를 표시한다
- 고객이 수량을 입력한다
- 고객이 주문하기를 클릭한다
- 시스템이 배송지 정보를 요청한다
- 고객이 배송지를 입력한다
- 시스템이 결제 방법을 요청한다
- 고객이 결제 정보를 입력한다
- 시스템이 주문을 처리한다
- 시스템이 주문 확인 메시지를 표시한다
대안 플로우 (Alternative Flow)
- A1: 재고 부족 시
- 4a. 시스템이 재고 부족 메시지를 표시한다
- 4b. 시스템이 대체 상품을 제안한다
예외 플로우 (Exception Flow)
- E1: 결제 실패 시
- 9a. 시스템이 결제 실패 메시지를 표시한다
- 9b. 7단계로 돌아간다
📊 자료흐름도 (DFD)
DFD 구성 요소
1. 프로세스 (Process) ⚪
- 표기: 원 또는 둥근 사각형
- 번호: 계층별 번호 부여 (1, 1.1, 1.1.1)
- 명명: 동사+목적어 (예: 주문 처리)
2. 자료 흐름 (Data Flow) ➡️
- 표기: 화살표와 레이블
- 방향: 데이터 이동 방향
- 명명: 구체적 데이터명 (예: 주문서, 고객정보)
3. 자료 저장소 (Data Store) 📁
- 표기: 평행선 또는 열린 사각형
- 번호: D1, D2, D3…
- 명명: 저장되는 데이터 (예: D1 고객파일)
4. 외부 개체 (External Entity) ⬜
- 표기: 사각형
- 역할: 시스템 외부의 데이터 소스/목적지
- 예시: 고객, 공급업체, 외부시스템
DFD 계층 구조
Context Diagram (Level -1) 🌍
[고객] --주문정보--> (주문처리시스템) --주문확인--> [고객]
↑ ↓
재고정보-[재고관리시스템] [결제시스템]-결제요청
Level 0 DFD 📈
- Context Diagram의 메인 프로세스를 상위 프로세스들로 분해
- 주요 프로세스: 주문접수, 재고확인, 결제처리, 배송준비
Level 1 DFD 📊
- Level 0의 각 프로세스를 더 세부적으로 분해
- 상세한 데이터 흐름과 저장소 표현
DFD 작성 원칙 ✅
1. 밸런싱 (Balancing)
- 상위 레벨의 입출력 = 하위 레벨의 입출력 합계
- 데이터 일관성 유지
2. 최소화 원칙
- 프로세스 수: 7±2개 권장
- 복잡도 관리
3. 명명 규칙
- 프로세스: 동사로 시작
- 데이터 흐름: 명사 사용
- 저장소: 복수형 명사
🔍 프로세스 분해 및 상세화
기능 분해 기법
1. 하향식 분해 (Top-Down)
주문 처리
├── 1. 주문 접수
│ ├── 1.1 고객 인증
│ ├── 1.2 상품 선택
│ └── 1.3 주문 정보 입력
├── 2. 주문 검증
│ ├── 2.1 재고 확인
│ └── 2.2 신용 확인
└── 3. 주문 완료
├── 3.1 결제 처리
└── 3.2 배송 준비
2. 상향식 통합 (Bottom-Up)
- 세부 기능들을 점진적으로 통합
- 공통 기능 식별 및 통합
📝 Mini-Spec 작성
1. Structured English 📖
장점: 자연어에 가까워 이해하기 쉬움
주문 유효성 검사:
IF 고객이 로그인되어 있지 않으면
THEN 로그인 페이지로 이동
ELSE IF 선택한 상품의 재고가 0이면
THEN 품절 메시지 표시
ELSE IF 주문 수량이 재고보다 많으면
THEN 재고 부족 메시지 표시
ELSE
주문 처리 계속
ENDIF
2. Decision Table 📋
상황: 할인 정책 결정
| 조건 | Rule 1 | Rule 2 | Rule 3 | Rule 4 |
|---|---|---|---|---|
| 회원 등급 = VIP | Y | Y | N | N |
| 구매 금액 ≥ 100만원 | Y | N | Y | N |
| 액션 | ||||
| 20% 할인 | X | |||
| 10% 할인 | X | X | ||
| 할인 없음 | X |
3. Decision Tree 🌳
구매금액
├── ≥100만원
│ ├── VIP → 20% 할인
│ └── 일반 → 10% 할인
└── <100만원
├── VIP → 10% 할인
└── 일반 → 할인 없음
🛍️ 실습: 온라인 쇼핑몰 프로세스 모델링
Use Case 다이어그램
- Actor: 고객, 관리자, 결제시스템
- Use Cases: 상품검색, 장바구니관리, 주문처리, 결제하기
- 관계: 주문처리 include 로그인, 결제하기 extend 할인적용
DFD Level 0
고객 → 주문정보 → [1. 주문처리] → 주문확인 → 고객
↓
주문내역 → [D1 주문파일]
↓
재고조회 → [2. 재고관리] ← 입고정보 ← 공급업체
↓
결제요청 → [3. 결제처리] → 결제결과 → 고객
Mini-Spec 예제: 주문 총액 계산
주문 총액 계산:
총액 = 0
FOR 각 주문 항목
소계 = 상품가격 × 수량
총액 = 총액 + 소계
END FOR
IF 총액 >= 50000 THEN
배송비 = 0
ELSE
배송비 = 3000
END IF
최종금액 = 총액 + 배송비 - 할인금액
📚 참고 자료
- Grady Booch, “The Unified Modeling Language User Guide”
- Tom DeMarco, “Structured Analysis and System Specification”
- 한국정보처리학회, 『정보처리기사 실기』
| **© 2024-2025 한국공학대학교 경영학부 | All Rights Reserved** |