| –← Week 2 | 목차 | 다음: Week 4 →– |
Week 3: 구조적 분석 방법론 🔍
📌 학습 목표
이번 주차에서는 다음을 학습합니다:
- ✅ 구조적 분석의 개념과 필요성 이해
- ✅ DFD, 자료사전, Mini-Spec 등 핵심 도구 활용법 습득
- ✅ 추상화, 정형화, 분할정복의 기본 원리 이해
- ✅ 4단계 모형화(CPM→CLM→NLM→NPM) 과정 학습
- ✅ DFD 작성 실습을 통한 프로세스 모델링 능력 개발
🧩 구조적 분석의 개념과 필요성
정의 및 배경
구조적 분석(Structured Analysis)은 복잡한 시스템을 체계적이고 논리적으로 분석하기 위한 방법론입니다.
- 개발 배경: 1970년대 Tom DeMarco와 Edward Yourdon에 의해 개발
- 목적: 소프트웨어 위기 극복, 시스템 복잡도 관리
- 철학: “분할하여 정복하라(Divide and Conquer)”
왜 구조적 분석이 필요한가?
1. 복잡성 관리
- 대규모 시스템을 단계적으로 분해
- 각 단계에서 관리 가능한 크기로 축소
- 전체 시스템의 구조와 관계 파악
2. 의사소통 개선
- 표준화된 기호와 표기법 사용
- 개발팀과 사용자 간 공통 언어 제공
- 시각적 모델링으로 이해도 향상
3. 품질 향상
- 체계적인 분석 과정
- 오류 발견 및 모순 해결
- 완전성 검증 가능
🛠️ 핵심 도구 3가지
1. DFD (Data Flow Diagram) 📊
프로세스와 데이터 흐름을 시각화하는 도구
특징
- 프로세스(Process): 데이터 변환 기능
- 데이터 흐름(Data Flow): 데이터 이동 경로
- 데이터 저장소(Data Store): 데이터 보관 장소
- 외부 개체(External Entity): 시스템 외부 요소
활용 목적
- 시스템의 논리적 기능 표현
- 데이터 변환 과정 시각화
- 업무 흐름 이해 및 분석
2. 자료사전 (Data Dictionary) 📚
DFD에서 사용되는 모든 데이터를 정의하고 명세하는 도구
포함 내용
- 데이터 요소: 이름, 정의, 형식, 길이
- 데이터 구조: 복합 데이터의 구성
- 데이터 흐름: 출발지와 도착지
- 프로세스: 입력/출력 데이터
표기법 예시
고객정보 = 고객번호 + 고객명 + 주소 + 전화번호
고객번호 = [문자 5자리]
주소 = {기본주소 + 상세주소}
전화번호 = [숫자 11자리] | [숫자 10자리]
3. Mini-Spec (Process Specification) 📝
DFD의 최하위 프로세스에 대한 상세한 처리 논리를 기술하는 도구
작성 방법
- 구조적 언어 (Structured Language)
- 의사결정 표 (Decision Table)
- 의사결정 나무 (Decision Tree)
Mini-Spec 예시
프로세스 2.1: 주문 유효성 검사
IF 고객등급 = "VIP" AND 주문금액 > 100만원 THEN
할인율 = 10%
ELSE IF 고객등급 = "일반" AND 주문금액 > 50만원 THEN
할인율 = 5%
ELSE
할인율 = 0%
END IF
🎯 기본 원리
1. 추상화 (Abstraction) 🔭
복잡한 시스템을 단순화하여 핵심 요소에 집중
- 기능적 추상화: 무엇을 하는가에 집중
- 데이터 추상화: 핵심 데이터 구조 파악
- 계층적 추상화: 상위 → 하위 단계적 세분화
2. 정형화 (Formalization) 📐
표준화된 기호와 규칙 사용으로 일관성 확보
- 표준 기호: DFD, ERD 등 국제 표준 사용
- 명명 규칙: 일관된 이름 부여 방식
- 문서화 규칙: 체계적 문서 작성
3. 분할정복 (Divide and Conquer) ✂️
복잡한 문제를 작은 단위로 나누어 해결
- 기능 분해: 시스템을 기능별로 분할
- 단계별 세분화: Top-Down 방식
- 모듈화: 독립적이고 응집도 높은 모듈 설계
🔄 4단계 모형화
1단계: CPM (Current Physical Model) 🏗️
현재 시스템의 물리적 구현 방식 모델링
- 현실 그대로 표현
- 수작업 프로세스 포함
- 물리적 제약사항 반영
- 문제점 식별 목적
2단계: CLM (Current Logical Model) 💭
현재 시스템의 논리적 기능 모델링
- 무엇을 하는가에 집중
- 물리적 제약 제거
- 핵심 비즈니스 로직 추출
- 개선 기준점 제공
3단계: NLM (New Logical Model) ✨
새로운 시스템의 논리적 설계
- 개선된 비즈니스 프로세스
- 새로운 요구사항 반영
- 최적화된 데이터 흐름
- 목표 시스템 청사진
4단계: NPM (New Physical Model) 🏭
새로운 시스템의 물리적 구현 설계
- 기술적 제약사항 고려
- 하드웨어/소프트웨어 명세
- 구현 세부사항 포함
- 개발 가이드 제공
📊 DFD 작성 실습 가이드
DFD 구성 요소
| 요소 | 기호 | 설명 |
|---|---|---|
| 프로세스 | ⭕ 원형 또는 사각형 | 데이터를 변환하는 기능 |
| 데이터 흐름 | → 화살표 | 데이터의 이동 경로 |
| 데이터 저장소 | ═ 개방형 사각형 | 데이터를 저장하는 장소 |
| 외부 개체 | ⬜ 사각형 | 시스템 외부의 데이터 출처/목적지 |
DFD 레벨링
Context Diagram (Level -1)
- 시스템 전체를 하나의 프로세스로 표현
- 외부 개체와의 상호작용 표시
- 시스템 경계 명확화
Level 0 DFD
- Context Diagram을 주요 기능별로 분해
- 5-7개 프로세스 권장
- 전체 시스템 개요 제공
Level 1 DFD
- Level 0의 각 프로세스를 더 세분화
- 상세 기능 표현
- Mini-Spec 작성 준비
DFD 작성 원칙
1. 명명 규칙
- 프로세스: 동사 + 명사 (예: “주문 처리”)
- 데이터 흐름: 명사 (예: “주문서”)
- 데이터 저장소: “D1: 고객정보”, “D2: 주문내역”
- 외부 개체: 명사 (예: “고객”, “공급업체”)
2. 균형 조건 (Balancing)
- 상위 DFD의 입출력과 하위 DFD의 입출력 일치
- 데이터 흐름의 연속성 보장
3. 작성 금지 사항
- 프로세스 간 직접 연결 금지
- 외부 개체 간 직접 연결 금지
- 미라클 프로세스(입력 없이 출력) 금지
🎮 실습 예제: 온라인 주문 시스템
Context Diagram
[고객] → 주문서 → (온라인 주문 시스템) → 배송 정보 → [배송업체]
[고객] ← 주문 확인서 ← (온라인 주문 시스템) ← 재고 정보 ← [창고]
Level 0 DFD 주요 프로세스
- 주문 접수 (고객 주문서 처리)
- 재고 확인 (상품 재고 검사)
- 결제 처리 (결제 승인/거부)
- 배송 준비 (배송 지시서 작성)
- 주문 완료 (고객 알림 발송)
자료사전 예시
주문서 = 주문번호 + 고객정보 + 주문품목 + {수량 + 단가}
고객정보 = 고객ID + 성명 + 연락처 + 배송주소
주문품목 = 상품코드 + 상품명 + 재고수량
Mini-Spec 예시 (재고 확인 프로세스)
IF 주문수량 ≤ 재고수량 THEN
재고상태 = "충족"
할당재고 = 주문수량
ELSE
재고상태 = "부족"
대기주문 처리
END IF
🎯 이번 주 과제
개인 과제: DFD 작성 실습
- 주제 선택: 익숙한 업무 프로세스 1개 선정
- 예시: 도서 대출, 온라인 쇼핑, 학점 등록 등
- 작성 범위:
- Context Diagram 1개
- Level 0 DFD 1개
- 주요 데이터 흐름에 대한 자료사전 5개 이상
- 제출 형식: A4 2-3페이지, 손그림 또는 툴 사용
추천 도구
- 무료: Draw.io, Lucidchart (무료 버전)
- 유료: Visual Paradigm, Enterprise Architect
📚 참고 자료
- Tom DeMarco, “Structured Analysis and System Specification”
- Edward Yourdon, “Modern Structured Analysis”
- 한국정보처리학회, 『정보처리 기사 실기』
| **© 2024-2025 한국공학대학교 경영학부 | All Rights Reserved** |