1. DFD(Data Flow Diagram, 데이터 흐름도)
1.1. 작성규칙
- 명확한 이름 부여: 모든 프로세스·데이터·저장소에 고유하고 구체적인 이름 사용.
- 프로세스 번호 체계: 계층적 번호(예: 1.0, 1.1, 1.2)로 관리.
- 균형 유지: 상위 DFD와 하위 DFD 간 입출력 데이터 일관성 유지.
- 블랙홀 방지: 입력만 있고 출력이 없는 프로세스 금지.
- 기적 방지: 출력만 있고 입력이 없는 프로세스 금지.
- 적절한 복잡성: 한 다이어그램에 5~9개 프로세스만 포함(7±2 규칙).
- 레벨 구분
- Level 0: 컨텍스트 다이어그램 (시스템 전체와 외부 개체 관계)
- Level 1: 주요 프로세스와 데이터 저장소
- Level 2+: 세부 프로세스 분해
1.2. 기본요소와 표기
- 프로세스(Process): 원(버블) 또는 둥근 사각형, 입력 데이터를 변환해 출력. 이름은 동사구로 작성.
- 데이터 저장소(Data Store): 두 평행선(Yourdon-DeMarco) 또는 열린 직사각형(Gane-Sarson). 이름은 명사로 작성.
- 외부 개체(External Entity): 사각형, 시스템 외부의 데이터 출처/목적지.
- 데이터 흐름(Data Flow): 화살표, 데이터 이동 방향과 이름을 표시.
2. ERD(Entity-Relationship Diagram, 갸체-관계 다이어그램)
2.1. 작성규칙
- 엔터티 도출: 요구사항 분석을 통해 중복되지 않고 관리가 필요한 객체를 엔터티로 정의.
- 속성 정의: 각 엔터티가 가져야 할 기본 속성, 관계 속성, 계산 속성을 구분.
- 관계 설정: 엔터티 간 관계를 정의하고 카디널리티(1:1, 1:N, M:N)와 옵셔널리티(필수/선택)를 명확히 표시.
- M:N 관계 해소: 교차 엔터티(중간 테이블)를 추가하여 1:N, N:1 관계로 변환.
- 정규화 고려: 1NF, 2NF, 3NF를 통해 데이터 중복 제거 및 무결성 유지.
- 명명 규칙: 엔터티와 속성 이름은 일관성 있게 작성(예: USER_TB, ORDER_TB).
- 문서화 및 검토: 최종 ERD는 이해관계자와 공유하여 검토 후 확정.
2.2. 기본요소의 표기
- 엔터티(Entity): 직사각형으로 표현, 데이터베이스에서 관리해야 할 주요 객체(예: 고객, 주문, 상품).
- 속성(Attribute): 엔터티의 특성, 보통 타원형(Chen 표기법) 또는 엔터티 내부에 기재(Crow’s Foot 표기법).
- 관계(Relationship): 엔터티 간 연결, 선으로 표현하며 카디널리티(1:1, 1:N, M:N)를 표시.
- 식별자(Primary Key, PK): 각 엔터티 인스턴스를 고유하게 식별하는 속성.
- 외래키(Foreign Key, FK): 다른 엔터티와의 관계를 나타내는 속성.
2.3. 표기법 종류
- Chen 표기법: 엔터티=직사각형, 속성=타원, 관계=마름모.
- Crow’s Foot 표기법: 엔터티=직사각형, 관계선 끝에 카디널리티 표시(가장 많이 사용).
- IE 표기법: Information Engineering 방식, 관계선에 1:N, M:N 명확히 표시.
3. AD(Architecture Diagram, 아키택쳐 다이어그램)
3.1. 작성방법
- 표준 표기법 사용: 널리 인식되는 아이콘·기호를 활용해 가독성과 일관성을 확보.
- 관계 표현 일관성: 선과 화살표를 일관되게 사용, 모호한 이중 화살표는 피하고 단방향 화살표로 종속성 표현.
- 명확한 레이블: 모든 아이콘, 컨테이너, 관계선에 의미 있는 이름을 붙여 혼동 방지.
- 일관된 스타일: 색상, 아이콘 크기, 선 두께·유형을 표준화.
- 정확성 유지: 실제 구조와 다르게 단순화하지 말고, 구현과 일치하도록 표현.
- 메타데이터 포함: 제목, 설명, 작성자, 버전, 업데이트 날짜 등을 다이어그램에 기록.
- 공식 아이콘 사용: 특정 기술은 최신 공식 아이콘과 명칭을 사용 (예: Azure, AWS, DBMS 등).
- 범례 제공: 선·테두리 의미를 설명하는 범례 포함.
- 접근성 고려: 색상 대비 확보, 색상만으로 구분하지 않고 패턴 병행.
- 계층적 표현: 컨텍스트 → 컨테이너 → 컴포넌트 → 시퀀스 다이어그램 순으로 점진적 상세화.
- 버전 관리: 원본 파일을 리포지토리에 저장하고 변경 로그 유지.
3.2. 기본요소의 표기
- 데이터 저장 및 관리
- 원통형 (Cylinder): 데이터베이스 (Database / 데이터 스토어)
- 가로로 긴 육각형: 준비/초기화 (Preparation), DB 연결(Connection)을 열거나, 메모리에 특정 데이터 구조를 미리 할당하는 등의 사전 준비 작업
- 프로세스 및 데이터 흐름
- 모서리가 둥근 사각형 / 타원: 터미네이터 (Terminator), 프로세스나 워크플로우의 시작(Start)과 종료(End)표기. 외부 시스템과의 진입점을 표시
- 직사각형 (Rectangle): 프로세스 (Process / Task), 시스템 내부에서 일어나는 구체적인 작업, 연산, 명령 수행을 의미
- 마름모 (Diamond): 조건/결정 (Decision), 분기
- 평행사변형 (Parallelogram): 데이터 입출력 (Input / Output), 사용자로부터 입력을 받거나(화면 입력), 외부로 데이터를 출력(로그 기록, 메시지 전송)하는 행위
- 시스템 경계 및 관계
- 구름 모양 (Cloud): 네트워크 / 외부 서비스 (Network / Internet), 내부 시스템의 통제 범위를 벗어난 인터넷 환경, 외부 웹사이트, 서드파티 API 등
- 큰 직사각형 (System Boundary): 시스템 경계 / 서브시스템, 컴포넌트들을 하나로 묶어주는 경계
- 실선 화살표 (Solid Arrow): 제어/데이터 흐름 (Flow Line), 프로세스의 진행 방향이나 데이터가 이동하는 물리적인 경로
【참고자료】